工资计算问题,类似计算某天是一年中的第几天的问题
2012-02-26 12:43
375 查看
企业发放的奖金根据利润提成。利润I低于或者等于10万元时,奖金可提成10%;利润高于10万元且低于20万元时,其中10万元按10%提成,高于10万元的部分,可提成7.5%;200000<I<=400000时,其中20万仍按上述办法提成(下同),高于20万的部分按5%提成;400000<I<=600000时,高于40万部分按3%提成;600000<I<=1000000时,高于60万的部分按1.5%提成;I>1000000时,超过100万的部分按1%提成。从键盘输入当月利润I,求出应发放奖金总数。
要求:用if语句和switch语句分别设计程序实现。
if实现如下:
switch 实现:
要求:用if语句和switch语句分别设计程序实现。
if实现如下:
// test.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int t_nPrize = 0; //奖金 int t_nProfit = 0; //利润 int t_nTempPro = 0; //临时空间存放利润 cout << "请输入利润:"; cin >> t_nProfit; t_nTempPro = t_nProfit;//将输入的数值保留起来,用临时值进行操作 //大于1000000情况 if(t_nTempPro > 1000000) { t_nPrize = 0.01 * (t_nTempPro - 1000000) + t_nPrize;//超过一百万部分的奖金 t_nTempPro = t_nTempPro - (t_nTempPro - 1000000); //剩余部分 } //600000到1000000 if ( t_nTempPro >600000 ) //此处不能用else if,因为当条件满足上一个if并运行完后,需要进入这一个if继续进行计算 { t_nPrize = 0.015 * (t_nTempPro - 600000) + t_nPrize;//超过六十万部分的奖金 t_nTempPro = t_nTempPro - (t_nTempPro - 600000); //剩余部分 } //400000到600000 if ( t_nTempPro >400000 ) { t_nPrize = 0.03 * (t_nTempPro - 400000) + t_nPrize;//超过四十万部分的奖金 t_nTempPro = t_nTempPro - (t_nTempPro - 400000); //剩余部分 } //200000到400000 if ( t_nTempPro >200000 ) { t_nPrize = 0.05 * (t_nTempPro - 200000) + t_nPrize;//超过三十万部分的奖金 t_nTempPro = t_nTempPro - (t_nTempPro - 200000); //剩余部分 } //100000到200000 if ( t_nTempPro >100000 ) { t_nPrize = 0.075 * (t_nTempPro - 100000) + t_nPrize;//超过三十万部分的奖金 t_nTempPro = t_nTempPro - (t_nTempPro - 100000) ; //剩余部分 } //小于100000 if ( t_nTempPro <= 100000 ) { t_nPrize = 0.1 * t_nTempPro + t_nPrize;//超过三十万部分的奖金 } cout << "工资数:" << t_nPrize << endl; system("pause"); return 0; }
switch 实现:
// test.cpp : 定义控制台应用程序的入口点。 // /* * 作者:王利宝 */ #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int t_nPrize = 0; //奖金 int t_nProfit = 0; //利润 cout << "请输入利润:"; cin >> t_nProfit; int n = 0;//标记利润范围 if( t_nProfit <= 100000) { n = 1; } //10万到20万的情况 else if ( t_nProfit>100000 && t_nProfit <= 200000 ) { n = 2; } //20万到40万的情况 else if ( t_nProfit>200000 && t_nProfit <= 400000 ) { n = 3; } //40万到60万的情况 else if ( t_nProfit>400000 && t_nProfit <= 600000 ) { n = 4; } //60万到100万的情况 else if ( t_nProfit>600000 && t_nProfit <= 1000000 ) { n = 5; } //100万以上的情况 else if ( t_nProfit > 1000000 ) { n = 6; } //计算工资 switch (n) { case 6: { t_nPrize += (t_nProfit- 1000000) * 0.01; t_nProfit = t_nProfit- (t_nProfit- 1000000); } case 5: { t_nPrize += (t_nProfit- 600000) * 0.015; t_nProfit = t_nProfit- (t_nProfit- 600000); } case 4: { t_nPrize += (t_nProfit- 400000) * 0.03; t_nProfit = t_nProfit- (t_nProfit- 400000); } case 3: { t_nPrize += (t_nProfit- 200000) * 0.05; t_nProfit = t_nProfit- (t_nProfit- 200000); } case 2: { t_nPrize += (t_nProfit- 100000) * 0.075; t_nProfit = t_nProfit- (t_nProfit- 100000); } case 1: { t_nPrize += t_nProfit* 0.1; } } cout << "工资数:" << t_nPrize << endl; system("pause"); return 0; }
相关文章推荐
- 工资计算问题,类似计算某天是一年中的第几天的问题
- 计算某天是一年中的第几天 很经典
- 计算某天是一年中的第几天 很经典
- C语言之计算某天为一年中第几天
- 计算某天是一年中的第几天 很经典
- C语言计算某天是一年中的第几天(熟练使用状态位flag)
- 按如下函数原型用函数编程解决如下的日期转换问题(要求考虑闰年的问题): 输入某年某月某日,计算并输出它是这一年的第几天。 /* 函数功能: 对给定的某年某月某日,计算它是这一年的第几天 函数参数:
- NYOJ_75 日期计算 (推断这一天是这一年中的第几天)
- 华为OJ ---计算日期到天数的转换(给定一个日期,输出为这一年的第几天)
- 输入某年某月某日,计算并输出它是这一年的第几天
- 请分别输入年月日三个数值,计算出这是这一年的第几天?
- 定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天?注意闰年问题
- [C#]数字颠倒输出;判断某天是一年中的第几天
- 财务人员给员工发工资时经常遇到这样一个问题, 即根据每个人的工资额(以元作为单位)计算出各种面值的钞票的张数,且要求总张数最少。 例如,某职工工资为3436元,发放方案为: 100元34张,20元1张
- 请分别输入年月日三个数值,计算出这是这一年的第几天?(提示:要考虑闰年和2月的情况)
- 计算该天是一年中的第几天
- 用户输入一个日期计算是星期几以及是一年中的第几天
- C#8—写一个测试标准身高体重的程序、输入日期年月日, 计算这一天是一年中的第几天(考虑闰年)
- [C#]数字颠倒输出;判断某天是一年中的第几天