编写一个税收软件,要求最精简容易明白的代码

pcjiu 2014-01-11 07:07:26
要求:编写一个税收软件,要求最精简容易明白的代码.
功能如下:
1.小于3500部分不收税。
2.大于3500小于5000部分收0.3%的税。
3.大于5000小于8000部分收0.5%的税。
4.大于8000小于10000部分收0.7%的税。
5.大于10000部分收1%的税。
...全文
210 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lpcads 2014-01-11
  • 打赏
  • 举报
回复
引用 3 楼 vipcxj 的回复:

#include <iostream>
#include <cstdlib>
using namespace std;

//1.小于3500部分不收税。
//2.大于3500小于5000部分收0.3%的税。
//3.大于5000小于8000部分收0.5%的税。
//4.大于8000小于10000部分收0.7%的税。
//5.大于10000部分收1%的税。

//利用递归
double jisuanSui(double ShouRu)
{
	if (ShouRu > 10000)
	{
		return jisuanSui(10000) + (ShouRu - 10000)*0.01; //大于10000部分收1%的税。
	}
	else if (ShouRu > 8000)
	{
		return jisuanSui(8000) + (ShouRu - 8000)*0.007; //大于8000小于10000部分收0.7%的税。
	}
	else if (ShouRu > 5000)
	{
		return jisuanSui(5000) + (ShouRu - 5000)*0.005; //大于5000小于8000部分收0.5%的税。
	}
	else if (ShouRu > 3500)
	{
		return jisuanSui(3500) + (ShouRu - 3500)*0.003; //小于3500部分不收税。
	}
	else
		return 0;
}
不用递归的版本

tax = 0;
if (income > 10000)
{
	tax += (income - 10000)*0.01; //大于10000部分收1%的税。
	income = 10000;
}
if (income > 8000)
{
	tax += (income - 8000)*0.007; //大于8000小于10000部分收0.7%的税。
	income = 8000;
}
if (income > 5000)
{
	tax += (income - 5000)*0.005; //大于5000小于8000部分收0.5%的税。
	income = 5000;
}
if (income > 3500)
{
	tax += (income - 3500)*0.003; //小于3500部分不收税。
	//income = 3500;
}
return tax;
vipcxj 2014-01-11
  • 打赏
  • 举报
回复

#include <iostream>
#include <cstdlib>
using namespace std;

//1.小于3500部分不收税。
//2.大于3500小于5000部分收0.3%的税。
//3.大于5000小于8000部分收0.5%的税。
//4.大于8000小于10000部分收0.7%的税。
//5.大于10000部分收1%的税。

//利用递归
double jisuanSui(double ShouRu)
{
	if (ShouRu > 10000)
	{
		return jisuanSui(10000) + (ShouRu - 10000)*0.01; //大于10000部分收1%的税。
	}
	else if (ShouRu > 8000)
	{
		return jisuanSui(8000) + (ShouRu - 8000)*0.007; //大于8000小于10000部分收0.7%的税。
	}
	else if (ShouRu > 5000)
	{
		return jisuanSui(5000) + (ShouRu - 5000)*0.005; //大于5000小于8000部分收0.5%的税。
	}
	else if (ShouRu > 3500)
	{
		return jisuanSui(3500) + (ShouRu - 3500)*0.003; //小于3500部分不收税。
	}
	else
		return 0;
}


int main()
{
	double ShouRu;
	cout << "请输入你的收入:";
	cin >> ShouRu;
	cout << "你所要缴纳的税收为:" << jisuanSui(ShouRu) << endl;
	system("pause");
	return 0;
}
程序猫的世界 2014-01-11
  • 打赏
  • 举报
回复
其实也可以用最笨最简单的不断if判断的方式,不过我当时被要求是简洁的代码 看来都是学生啊
程序猫的世界 2014-01-11
  • 打赏
  • 举报
回复
之前我也做过这道题。只要修改两个数组里面相应的税率和收税的点就可以了
#include<stdio.h>
int main()
{
	double a[4] = {12500,8000,5000,3500};
	double b[4] = {0.25,0.2,0.1,0.03};
	/*数组a作为每次判断的标准(点),数组b作为每次判断之后的税收*/ 
	
	double earn,temp,shui,rest;
	int i;
	/*earn是用户输入赚了多少钱,temp是earn赋值过来用来计算的,shui是税收总额,rest是每次减去税收点的税收计算额*/
	
	printf("请输入你这个月赚了多少钱:");
	scanf("%lf",&earn);
	
	/*计算主体*/
	for(temp=earn,i=0,shui=0;i<4;i++)
	{
		if(temp - a[i] <= 0)
		{
			continue;
		}
		/*这里主要判断目前的钱是否大于a[i]的这个税收点,如果结果小于0,则表明不在该点,程序i++跳到下一个判断点*/
		
		else
		{
			rest = temp - a[i];
			shui += rest * b[i];
			temp -= rest;
		}
		/*税收计算主体,如果不是上面的条件了,就是表明符合了这个条件*/
		/*首先将目前的钱减去这个点,剩下的就是这个点需要计算这个点的税收的钱*/
		/*下一个需要判断的点其实是从这个点开始的,不过目前可以用temp -= rest来计算*/
		
	}
	printf("收入为:%.2lf\t所需交税:%.2lf\t税后收入为:%.2lf\n\n",earn,shui,earn-shui);	
	main();
}

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧