记录——《C Primer Plus (第五版)》第七章编程练习第八题
来源:互联网 发布:淘宝助手怎么上架宝贝 编辑:程序博客网 时间:2024/05/01 19:27
修改练习7中的假设a,使程序提供一个选择工资等级的菜单。用switch选择工资等级。程序运行的开头应该像这样: ***************************************************************** Enter the number corresponding to the desired pay rate or acion: 1)$8.75/hr 2) $9.33/hr 3) $10.00/hr 4) $11.20/hr 5) quit ***************************************************************** 如果选择1到4,那么程序应该请求输入工作小时数。程序应该一直循环运行,直到输入5.如果输入1到5以外的选项,那么程序应该提醒用户合适的选项是哪些,然后再循环。用#define为各种工资等级和税率定义常量。
# include <stdio.h># define GRADE1 8.75 // 工资# define GRADE2 9.33# define GRADE3 10.00# define GRADE4 11.20# define RATE1 0.15 // 税率# define RATE2 0.20# define RATE3 0.25void wagefn(double, int); // 计算工资和税金的函数int main(void){ int grade; double hour; printf("****************************************************************\n"); printf("Enter the number corresponding to the desired pay rate or acion:\n"); printf("1')' $8.75'/'hr 2')' $9.33'/'hr\n"); printf("1')' $10.00'/'hr 2')' $11.20'/'hr\n"); printf("5')' quit\n"); printf("****************************************************************\n"); while(1) { printf("请输入工资等级:\n"); scanf("%d", &grade); //输入工资等级 if(grade <= 0 || grade>5) { printf("请输入1到5以内的数!\n"); } switch(grade) // 不同等级分开计算 { case 1 : printf("请输入工作小时数:\n"); scanf("%lf", &hour); wagefn(hour,grade); break; case 2 : printf("请输入工作小时数:\n"); scanf("%lf", &hour); wagefn(hour,grade); break; case 3 : printf("请输入工作小时数:\n"); scanf("%lf", &hour); wagefn(hour,grade); break; case 4 : printf("请输入工作小时数:\n"); scanf("%lf", &hour); wagefn(hour,grade); } if(5 == grade) break; } return 0;}void wagefn(double hour, int grade){ double wage, tax; switch(grade) { case 1: wage = GRADE1; break; case 2: wage = GRADE2; break; case 3: wage = GRADE3; break; case 4: wage = GRADE4; } if(hour < 0) return ; if(hour <= 40) { wage = wage * hour; if(wage > 450) tax = 70 + (wage - 450) * RATE3; else if(wage > 300) tax = 45 + (wage - 300) * RATE2; else if(wage >= 0) tax = wage * RATE1; } else if(hour > 40) { wage = wage * (40 + (hour-40) * 1.5); if(wage > 450) tax = 70 + (wage - 450) * RATE3; else if(wage > 300) tax = 45 + (wage - 300) * RATE2; else if(wage >= 0) tax = wage * RATE1; } printf("工资总额:%.3lf 税金:%.3lf 净工资:%.3lf\n", wage, tax, wage-tax);}
0 0
- 记录——《C Primer Plus (第五版)》第七章编程练习第八题
- 记录——《C Primer Plus (第五版)》第八章编程练习第八题
- 记录——《C Primer Plus (第五版)》第八章编程练习第五题
- 记录——《C Primer Plus (第五版)》第八章编程练习第二题
- 记录——《C Primer Plus (第五版)》第八章编程练习第三题
- 记录——《C Primer Plus (第五版)》第八章编程练习第四题
- 记录——《C Primer Plus (第五版)》第八章编程练习第六题
- 记录——《C Primer Plus (第五版)》第九章编程练习第八题
- 记录——《C Primer Plus (第五版)》第十章编程练习第八题
- 记录——《C Primer Plus (第五版)》第七章编程练习第三题
- 记录——《C Primer Plus (第五版)》第七章编程练习第四题
- 记录——《C Primer Plus (第五版)》第七章编程练习第六题
- 记录——《C Primer Plus (第五版)》第七章编程练习第九题
- 记录——《C Primer Plus (第五版)》第七章编程练习第十一题
- 记录——《C Primer Plus (第五版)》第十章编程练习第七题
- 记录——《C Primer Plus (第五版)》第十章编程练习第五题
- 记录——《C Primer Plus (第五版)》第九章编程练习第一题
- 记录——《C Primer Plus (第五版)》第九章编程练习第二题
- 【Java】Java线程的概念
- 论自动化测试是否可以完全取代手工测试?
- struts1工作原理
- Linux网络虚拟化与MLPPP多链路
- android MSM8974 上DeviceTree简介
- 记录——《C Primer Plus (第五版)》第七章编程练习第八题
- html5定位
- local_irq_save和 local_irq_disable
- SQL中的case when then else end用法
- java反射机制的理解
- Android杂谈-RelativeLayout中的baseline是什么
- 数制知识小结
- SQL Server分页存储过程的五种方法及性能比较
- Android Provider获取通信录