ĿǰΪֹдµÄ×µÄ³ÌÐòÁË...ËäÈ»ºÜ¼òµ¥...
³ÌÐò´úÂ룺/* ±àд³ÌÐò, ÒªÇóÊäÈëÒ»ÖÜÖеŤ×÷СʱÊý,È»ºó´òÓ¡¹¤×Ê×ܶî,˰½ðÒÔ¼°¾»¹¤×Ê
* ×÷ÈçϼÙÉè:
* a. »ù±¾¹¤×ʵȼ¶ ʹÓÃswitchÑ¡Ôñ¹¤×ʵȼ¶
* 1. 8.75ÃÀÔª/Сʱ
* 2. 9.33ÃÀÔª/Сʱ
* 3. 10.00ÃÀÔª/Сʱ
* 4. 11.20ÃÀÔª/Сʱ
* b. ¼Ó°à (³¬¹ý40Сʱ) = 1.5 ±¶µÄʱ¼ä
* c. ˰ÂÊ
* ǰ300ÃÀԪΪ15%
ÏÂÒ»¸ö 150 ÃÀԪΪ20%
ÓàϵÄΪ25%
*/
/*³ÌÐòÄ¿±ê: ´òÓ¡¹¤×Ê×ܶî,˰½ð,¾»¹¤×Ê */
/*
·ÖÎö:
Óû§ÊäÈë»ù±¾¹¤×ʵȼ¶
ÅжÏÊÇ·ñÓÐЧ
ÎÞЧ:(·µ»Ø¼ÌÐøÊäÈë)
ÓÐЧ:
Óû§ÊäÈëÿÖܹ¤×÷µÄСʱÊý
ÅжÏÊÇ·ñÊÇÊý×Ö
²»ÊÇ(¼ÌÐøÊäÈë)
ÊÇ
»ù±¾¹¤×Ê : ¹¤×ʵȼ¶ * СʱÊý
¼Ó°à :»ù±¾¹¤×Ê + ((СʱÊý - 40) * 1.5)
×ܹ¤×Ê = »ù±¾¹¤×Ê + ¼Ó°à·Ñ
¼ÆËã˰ÂÊ:
0 < ×ܹ¤×Ê < 300, »ù±¾Ë°: ×ܹ¤×Ê * 0.15
300 < ×ܹ¤×Ê < 450 µÚÒ»µµ¼Ó˰: »ù±¾Ë° + (×ܹ¤×Ê - 300) * 0.20
×ܹ¤×Ê > 450 : »ù±¾Ë° + µÚÒ»µµ¼Ó˰ + (×ܹ¤×Ê - 450) * 0.25
´òÓ¡ ¹¤×Ê×ܶî, ˰½ð , ¾»¹¤×Ê
*/
#include <stdio.h>
#define BASE_T 40 //»ù±¾¹¤×÷ʱ¼ä
#define OVER_T 1.5F //¼Ó°àʱ¼ä±¶Êý
#define RATE1 0.15F //µÚÒ»µµË°ÂÊ
#define RATE2 0.20F //µÚ¶þµµË°ÂÊ
#define RATE3 0.25F //µÚÈýµµË°ÂÊ
#define TAX1 300 //µÚ¶þµµË°ÆðÕ÷µã
#define TAX2 450 //µÚÈýµµË°ÆðÕ÷µã
#define BASE_TAX1 (TAX1 * RATE1) //µÚÒ»µµË°·Ñ×î´óÖµ
#define BASE_TAX2 ((TAX2-TAX1) * RATE2) //µÚ¶þµµË°·Ñ×î´óÖµ
void menu(void);
int main(void)
{
float salary; //¹¤×Ê×ܶî
float tax; //˰·Ñ
int hour; //ÿÖܹ¤×÷СʱÊý
char select; //²Ëµ¥Ñ¡Ïî
float BASE_D; //ÿСʱ»ù±¾¹¤×Ê
int flag = 1;
menu(); //´òÓ¡²Ëµ¥
while(flag)
{
select = getchar();
while(getchar() != '\n') //Çå¿Õ»º´æ
continue;
switch(select) //Ñ¡Ôñ˰ÂÊ
{
case '1':BASE_D = 8.75F; break;
case '2':BASE_D = 9.33F; break;
case '3':BASE_D = 10.00F; break;
case '4':BASE_D = 11.20F; break;
case '5':flag = 5; break;
default:flag = 0;
}
if(flag == 5) break; //Ñ¡Ôñ 5 Í˳ö³ÌÐò
if(!flag)
{
flag = 1;
printf("Please enter a number between 1~5 : ");
continue;
}
printf("Input the weekly working time(hours): ");
while(scanf("%d", &hour) != 1) //Óû§ÊäÈëÿÖܹ¤×÷ʱ¼ä
{
printf("Invalid character.\nPlease enter a number: "); //·ÇÊý×ÖÖØÐÂÊäÈë
while(getchar() != '\n') //Çå¿Õ»º´æ
continue;
}
salary = 0; //¹¤×Ê×ܶîÇåÁã
tax = 0; //˰·ÑÇåÁã
if(hour < BASE_T) //¹¤×÷ʱ¼äСÓÚ40Сʱ
salary += hour * BASE_D;
else //¹¤×÷ʱ¼ä´óÓÚ40Сʱ, 40Сʱ»ù±¾¹¤×Ê + ³¬³ö40Сʱ²¿·ÖµÄ¹¤×Ê
salary += BASE_D * BASE_T + ((hour - BASE_T) * OVER_T) * BASE_D;
if(salary <= TAX1) //×ܹ¤×ÊÔÚ300ÒÔÄÚ, Ó¦½»Ë°¿î
tax += salary * RATE1;
else if(salary <= TAX2) //×ܹ¤×ÊÔÚ300~450Ö®¼ä, Ó¦½»Ë°¿î
tax += BASE_TAX1 + (salary - TAX1) * RATE2;
else
tax += BASE_TAX1 + BASE_TAX2 + (salary - TAX2) * RATE3; //×ܹ¤×ʳ¬¹ý450²¿·Ö, Ó¦½»Ë°¿î
printf("¹¤×Ê×ܶî: %10.2f\n˰ ½ð: %10.2f\n¾» ¹¤ ×Ê: %10.2f\n",
salary, tax, salary - tax);
while(getchar() != '\n') //Çå¿Õ»º´æ
continue;
menu(); //±¾´Î¼ÆËã½áÊø,ÖØÐ´òÓ¡²Ëµ¥
}
printf("\nBye~");
return 0;
}
void menu(void)
{
printf("*****************************************************************\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");
printf("*****************************************************************\n");
printf("Please select(1 ~ 5): ");
}
[ ±¾Ìû×îºóÓÉ Ryker ÓÚ 2013-5-3 17:44 ±à¼ ]







