题目:修改练习7中的假设a,使程序提供一个选择工资等级的菜单。用switch选择工资等级。程序运行的开头应该像这样:
***************************************************************************
Enter the number corresponding to the desired pay rate or action:
1)$8.75/hr 2)$9.33/hr
3)$10.00/hr 4)$11.20/hr
5)quit
***************************************************************************
//7-8
#include<stdio.h>
#define NUM_STAR 65
#define BASE_TIME 40
#define PLUS 1.5
#define RATE_1 0.15
#define RATE_2 0.20
#define RATE_3 0.25
#define BASE_RATE_1 300
#define BASE_RATE_2 150
int main(void)
{
int time=0;
float base=0;
float money=0;
float rate;
int num;
//打印第一行星星
int i;
for(i=0;i<NUM_STAR;i++){
putchar('*');
}
putchar('\n');
//打印选择框中的内容
printf("Enter the number corresponding to the desired pay rate or action:\n");
printf("1)$8.75/hr 2)$9.33/hr\n");
printf("3)$10.00/hr 4)$11.20/hr\n");
printf("5)quit\n");
//打印第二行星星
for(i=0;i<NUM_STAR;i++){
putchar('*');
}
putchar('\n');
//选择基本工资
printf("请选择基本工资:");
;
int flag=1;
while(flag&&(1==scanf_s("%d",&num))){
switch(num)
{
case 1:base=8.75;flag=0;break;
case 2:base=9.33;flag=0;break;
case 3:base=10.00;flag=0;break;
case 4:base=11.20;flag=0;break;
case 5:flag=0;break;
default:printf("请输入数字1-5!");
flag=1;
putchar('\n');
}
}
printf("请输入工作的时间:");
while(1==scanf_s("%d",&time)){
//计算工资总额
if(time<=BASE_TIME){
money=time*base;
}
else{
money=(time-BASE_TIME)*base*PLUS+BASE_TIME*base;
}
//计算税金
if(money<=300){
rate=money*RATE_1;
}
else if(money>300&&money<=450){
rate=BASE_RATE_1*RATE_1+(money-BASE_RATE_1)*RATE_2;
}
else{
rate=BASE_RATE_1*RATE_1+BASE_RATE_2*RATE_2+
(money-BASE_RATE_1-BASE_RATE_2)*RATE_3;
}
printf("总额为%.2f,税金为%.2f,净工资为%.2f。\n",money,rate,money-rate);
}
return 0;
}