工资计算问题,类似计算某天是一年中的第几天的问题

企业发放的奖金根据利润提成。利润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实现如下:

 

// 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;
}


 

posted @ 2012-02-26 12:43  java简单例子  阅读(199)  评论(0编辑  收藏  举报