C Primer Plus 练习 7-8

题目:修改练习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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值