zoukankan
html css js c++ java
计算个税(定义一个薪水类)
(起征点800):
#include <iostream> using namespace std; #define TAX_THRESHOLD 800 struct Tax { double standard; double tax_rate; }; class Salary { double income; public: static Tax tax_array[]; Salary(int m = 0) { income = m; } void operator - (int payout) { income -= payout; cout << "工资余额:" << income << endl; } void CalculateSalary(void); }; Tax Salary::tax_array[] = { {0,0.05}, {500, 0.10}, {2000, 0.15}, {5000,0.20}, {20000,0.25}, {40000,0.30}, {60000,0.35}, {80000,0.40}, {100000,0.45} }; void Salary::CalculateSalary(void) { double tax = 0; double x = income - TAX_THRESHOLD; if(x > 0) { for(int i = sizeof(tax_array) / sizeof(*tax_array) - 1; i >= 0; i--) { if(x > tax_array[i].standard) { tax += (x - tax_array[i].standard) * tax_array[i].tax_rate; x = tax_array[i].standard; } } } cout << "税前工资为:" << income << endl; cout << "个人所得税为:" << tax << endl; income -= tax; cout << "实发工资为:" << income << endl; } int main(void) { double myincome; double mypayout; while(cout << "您的月薪为:", cin >> myincome) { Salary mysalary(myincome); mysalary.CalculateSalary(); cout << "取款金额:"; cin >> mypayout; mysalary - mypayout; // 硬性重载减号 cout << endl; } return 0; }
运行结果:
要修改的话很方便哦!(我也注意了魔数的问题)
查看全文
相关阅读:
互联网协议入门
C++解决约瑟夫环(史上最清晰)
C# 最快的逐一打印斐波那契结果数列的算法
二叉树的遍历(转载)
C# 多线程join的用法,等待多个子线程结束后再执行主线程
剖丁解牛式的快速排序分析
用CTE结合排名函数rank()删除某列值重复的记录
Http 头部属性详解
C# 冒泡排序
设计模式七大原则之依赖倒转原则
原文地址:https://www.cnblogs.com/jjtx/p/2533485.html
最新文章
sql server 中删除表中数据truncate和delete的区别(转载自.net学习网)
MVC HtmlHelper用法(一)@Html.BeginForm的使用总结
ADO.NET、NHibernate和Entity Framework的比较
[转]iphone4 短信截获
[转]解析ObjectiveC反射
IOS 开源项目(各种有用的第三方库)
监听所有的NSNotification
[转]获取iPhone通话记录(需越狱)
[转]取iphone本机ip地址方法(非调用私有api方法)
[转]iphone4 电话截获
热门文章
[转]iOS设备中WiFi、蓝牙和飞行模式的开启与关闭
[转]多线程与异步的区别
开发人员的技术支持任务
程序员如何摆脱“码农”的称谓
软件项目中如何建立和维护公共设施
Bash command line editing
思考+交流=博客
技术长青之路代码维护
【书评】观止微软创建NT和未来的夺命狂奔
C++中值类型形参、指针类型形参和引用形参的探讨
Copyright © 2011-2022 走看看