/*
编写一个程序,提示用户输入一周的工作小时数,然后打印工资总额,税金和净收入。做如下假设
a.基本工资=10.00美元/小时
b.加班(超过40小时)=1.5倍的时间
c.税率:前300美元为15%
续150美元为20%
余下的为25%
用#define定义符号常量。不用在意是否符合当前的税法
#include<stdio.h>
#define BASIC_SLY 10.00
#define BASIC_TIME 40
#define OVERTIME 1.5
#define RATE1 0.15
#define RATE2 0.2
#define RATE3 0.25
#define BREAK1 300
#define BREAK2 450
int main(void)
{
float worktime;
float salary;
float taxes;
float net_pay;
printf("请输入您的工作时间:");
scanf("%f", &worktime);
if (worktime <= 40) {
salary = 10.00 * worktime;
}
else {
salary = 10.00 * worktime * 1.5;
}
if (salary <= BREAK1) {
taxes = salary * RATE1;
}
else if (salary <= BREAK2) {
taxes = BREAK1 * RATE1 + (salary - BREAK1) * RATE2;
}
else {
taxes = BREAK1 * RATE1 + (BREAK2 - BREAK1) * RATE2 + (salary - BREAK2) * RATE3;
}
net_pay = salary - taxes;
printf("您的工资总额为:%.2f\n", salary);
printf("您的税金为:%.2f\n", taxes);
printf("您的净收入为:%.2f\n", net_pay);
return 0;
}
修改练习七(上面),让程序可以给出一个供选择的工资等级菜单。使用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
****************************************************************************
*************
如果选择1-4其中的一个数字,程序应该询问用户工作的小时数。程序要通过循环运行,除非用户输入5。如果用户输入1-5以为的数字,
程序应提醒用户输入正确的选项,然后再重复菜单提示用户输入。使用#define创建符号常量表示各工资等级和税率。
*/
#include<stdio.h>
//#define BASIC_SLY 10.00
#define BASIC_TIME 40
#define OVERTIME 1.5
#define RATE1 0.15
#define RATE2 0.2
#define RATE3 0.25
#define BREAK1 300
#define BREAK2 450
int main(void)
{
float worktime;
float salary;
float taxes;
float net_pay;
float basic_sly;
int choise;
printf("****************************************************************************\n");
printf("*************\n");
printf("1)$8.75/hr \t\t");
printf("2)$9.33/hr \n");
printf("3)$10.00/hr \t\t");
printf("4)$11.2/hr \n");
printf("5)quit\n");
printf("****************************************************************************\n");
printf("*************\n");
//a:
if (scanf("%d", &choise) == 1) {
if (choise != 5) {
switch (choise) {
case 1:basic_sly = 8.75;
break;
case 2:basic_sly = 9.33;
break;
case 3:basic_sly = 10.00;
break;
case 4:basic_sly = 11.20;
default:while (choise > 5) {
printf("请输入1-5正确的选项!\n");
printf("****************************************************************************\n");
printf("*************\n");
printf("1)$8.75/hr \t\t");
printf("2)$9.33/hr \n");
printf("3)$10.00/hr \t\t");
printf("4)$11.2/hr \n");
printf("5)quit\n");
printf("****************************************************************************\n");
printf("*************\n");
scanf("%d", &choise);
}
// goto a;
}
printf("请输入您的工作时间:");
scanf("%f", &worktime);
if (worktime <= 40) {
salary = 10.00 * worktime;
}
else {
salary = 10.00 * worktime * 1.5;
}
if (salary <= BREAK1) {
taxes = salary * RATE1;
}
else if (salary <= BREAK2) {
taxes = BREAK1 * RATE1 + (salary - BREAK1) * RATE2;
}
else {
taxes = BREAK1 * RATE1 + (BREAK2 - BREAK1) * RATE2 + (salary - BREAK2) * RATE3;
}
net_pay = salary - taxes;
printf("您的工资总额为:%.2f\n", salary);
printf("您的税金为:%.2f\n", taxes);
printf("您的净收入为:%.2f\n", net_pay);
}
}
else
return 0;
}
C PRIMER PLUS(第六版编程练习)7.12编程练习_8题
最新推荐文章于 2023-02-20 13:02:30 发布