加班加班加班

发布时间 2023-04-05 16:19:13作者: 去移动互联吧

题目描述

编写一个程序,计算员工的周薪。薪水的计算是以小时为单位,如果在一周的时间内,员工工作的时间不超过 40 个小时,那么他 / 她的总收入等于工作时间乘以每小时的薪水。如果员工工作的时间在 40 到 50 个小时之间,那么对于前 40 个小时,仍按常规方法计算;而对于剩余的超额部分,每小时的薪水按 1.5 倍计算。如果员工工作的时间超过了 50 个小时,那么对于前 40 个小时,仍按常规方法计算;对于 40~50 个小时之间的部分,每小时的薪水按 1.5 倍计算;而对于超出 50 个小时的部分,每小时的薪水按 2 倍计算。请编写一个程序,输入员工的工作时间和每小时的薪水,然后计算并显示他 / 她应该得到的周薪。

 

输入格式

输入数据有多组,每组数据只有一行,包括一个整数和一个实数,分别表示工作时间和每小时薪水。

 

输出格式

对于每组数据,输出只有一个实数,表示周薪,保留小数点后 2 位。

 

代码

#include <iostream>
#include <iomanip>                   //设置小数精度
using namespace std;
int main( )
{
int hour;
float hour_salary,week_salary;
while(cin>>hour>>hour_salary)          //题目要求可以计算很多组数据
{
if(hour<=40)
week_salary=hour_salary*hour;
if(hour>40&&hour<=50)
week_salary=hour_salary*40+hour_salary*1.5*(hour-40);
if(hour>50)
week_salary=hour_salary*40+hour_salary*1.5*10+hour_salary*2*(hour-50);
cout<<fixed<<setprecision(2)<<week_salary;                //设置小数精度
cout<<endl;
}

return 0;
}

// < iomanip >作用

1.设置字段宽度  setw(int n)    

例:cout<<setw(5)<<248<<endl;

       运行结果

        _ _248

2.流输出进制

dex 置基数:10  ~  "%d"

hex 置基数:16  ~  "%X"

oct  置基数: 8   ~  "%o"

若调用二进制需要 #include <bitset.h>,调用bitset<int size>(int n)将十进制输出为二进制

例:cout<<hex<<255<<endl;

       cout<<bitset<11>(255)<<endl;

       运行结果

       f f

       00011111111

3.填充字符    setfill(char c)

例:cout<< setfill('0') << setw(6) << 248<<endl;

        运行结果

         000248

4.进制转换    setbase(int n)

使用 #include <stdlib.h>,调用itoa( )函数,任意进制转换

例:cout<<setbase(8)<<setw(5)<<255<<endl;

        运行结果

        377

5.设置小数精度   setprecision(int n)

默认输出数值有效位为6

例:cout<<setprecision(3)<<22.123<<endl;

       运行结果

       22.1

6.设置格式标志    setiosflags(ios_base::fmtflags mask)

用setiosflags(ios::fixed)/fixed

7.重置格式标志    resetiosflags(ios_base::fmtflags mask)