C++switch语句怎么应用到此题???急求!!!

编写一个程序,循环从标准输入读入某雇员的工作时间(以小时计)和每小时的工资数,计算并输出他的工资。若雇员月工作小时超过40小时,则超过部分按原工资的1.5倍的加班工资来计... 编写一个程序,循环从标准输入读入某雇员的工作时间(以小时计)和每小时的工资数,计算并输出他的工资。若雇员月工作小时超过40 小时,则超过部分按原工资的1.5
倍的加班工资来计算。若雇员月工作小时超过50 小时,则超过部分按原工资的3
倍的加班工资来计算。
(参考下面测试数据进行测试)
分支控制部分使用switch。。。case实现
测试数据:
输入工作时数及单位时间基本工资:30 4
输出:120
输入工作时数及单位时间基本工资:45
4.5
输出:213.75
输入工作时数及单位时间基本工资 :60 5
输出:425
输入工作时数及单位时间基本工资:0
0
程序结束
展开
 我来答
houliang120450
2013-10-06 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:140
采纳率:0%
帮助的人:104万
展开全部
switch不能用在范围中,只能是整型数据,所以这个程序用不上switch,下面是一个参考程序,需要退出输入q
#include <iostream>
using namespace std;
int main()
{
    int time = 0, salary = 0;
    while ( true )
    {
        cout<<"请输入工作时数、小时工资,结束请输入q:"<<endl;
        cin<<time<<salary;
        if ( time == 'q' || salary == 'q' ) break;
        if ( time <= 40 )
        {
            cout<<"该人工资为:"<<time * salary<<endl;
            continue;
        }
        if ( time > 40 && time <= 50 )
        {
            cout<<"该人工资为:"<<40 * salary + (time - 40) * 1.5 * salary<<endl;
            continue;
        } 
        if ( time > 50 )
        {
            cout<<"该人工资为:"
            <<40 * salary + 10 * 1.5 * salary + (time - 50)*3*salary
            <<endl;
            continue;
        }        
    }
    return 0;
}
追问
啊?那为什么我们作业要求用SWITCH...CASE实现。。。
追答
int main()
{
   int time = 0, salary = 0;
    while ( true ){
        cout<<"请输入工作时数、小时工资:"<<endl;
        cin<<time<<salary;
        if ( time == 'q' || salary == 'q' ) break;
        switch( time )
        {
                case 41: case 42: case 43:
                case 44: case 45: case 46:
                case 47: case 48: case 49:
                case 50:
                      cout<<"该人工资为:"
                      <<40 * salary + (time - 40) * 1.5 * salary<<endl;
                      break;
                default:
                    if ( time <= 40 ){
                        cout<<"该人工资为:"<<time * salary<<endl;
                        continue;
                    }
                    else{
                        cout<<"该人工资为:"
                        <<40 * salary + 10 * 1.5 * salary + (time - 50)*3*salary
                        <<endl;                    
                    }
         }            
  } return 0;    
}
威孚半导体技术
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层... 点击进入详情页
本回答由威孚半导体技术提供
帐号已注销
2013-10-06 · TA获得超过301个赞
知道小有建树答主
回答量:223
采纳率:0%
帮助的人:205万
展开全部
#include <iostream>
using namespace std;
int main()
{
double Hour,PayPer,Pay;
do
{
cout<<"输入工作时数及单位时间基本工资:";
cin>>Hour>>PayPer;
bool f1=(Hour>40);
bool f2=(Hour>50);
switch(f1)
{
case 0:
Pay=Hour*PayPer;
cout<<"输出:"<<Pay<<endl;
break;
case 1:
switch(f2)
{
case 0:
Pay=40*PayPer+(Hour-40)*1.5*PayPer;
cout<<"输出:"<<Pay<<endl;
break;
case 1:
Pay=40*PayPer+10*1.5*PayPer+(Hour-50)*3*PayPer;
cout<<"输出:"<<Pay<<endl;
break;
}
break;
}
}while(Hour!=0&&PayPer!=0);
return 0;
}
符合你的要求,输入0 0程序结束,满意请采纳!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式