1、工资发放系统设计报告程序设计语言基础课程设计报告班级: XXXXXXXXXXX姓名: XXXXXXXXXXX题目: XXXXXXXXXXX设计时间:XXXXXXXXXXX一、 需求分析:本课程主要是完成一个工资管理系统,要求用户在使用时可以正确的查询到当月实际发放的工资,完成员工基本信息数据的输入,并且在查询时能显示相关数据,方便用户了解其发放工资情况。二、 课题设计内容:1、 课程设计的基本流程:关于此课程的设计,是建立在整体问题把握的基础上进行的 面向对象程序设计的。 根据实验要求定义一个salarycountsystem类,在类中定义一个构造函数、四个重载函数和一个成员函数,定义相关变量
2、并对不同职员的薪水计算,salary为返回值。 在主函数中定义所需数据成员,将类salarycountsystem定义为对象a,在a中实现工资查询系统的界面输出。运用do while实现工资的循环查询,其中嵌套if语句,实现不同工种的选择。最后输入op,选择继续进行还是结束程序。2、 详细设计说明:首先定义常量hourlyrate(90)、monthlypay(3000)、sales(30000)、daylypay(30)、commrate(0.005)。定义一个salarycountsystem类,在公有成员public中定义工资salary,在构造函数salarycountsystem中定
3、义其初始值为0。定义四个add重载函数,一个red成员函数,并分别用公式计算四种销售员的实发工资。固定薪金职员:m(请假应扣)= holiday*daylypay; salary=monthlypay-m;计时薪金职员:b(实际工作时长)=w(工作时长)+p(加班时长);salary= hourlyrate*b; 普通销售员: sales1(实际销售额) 销售额大于30000时: salary=(sales1-sales)*2/1000; 销售额小于30000时: salary=(sales-sales1)*2/1000; 带薪销售员: sales2(实际销售额) salary=monthly
4、pay-h*daylypay+commrate*sales2; 设计main主函数,定义一个salarycountsystem类的对象a调用类的成员函数。定义一个char型op,代表输入的符号,按界面要求输出“工资查询系统”。用do while实现查询系统的循环。定义工种为k并输入。在if语句中定义所需变量,根据输入的k值的不同输出各工种的工资相关项,并实现数据成员的调用。输入op,“*”为退出,其它符号继续查询。 程序到此已基本完成,再对界面进行美化处理,就完成了程序设计。3、 界面操作流程图4、 程序流程图5、 源程序#include#includeusing namespace std;
5、const float hourlyrate(90);/时薪const float monthlypay(3000);/固定薪金const float commrate(0.005f);/带薪销售员的提成百分比const float daylypay(30);/请假一天的钱class salarycountsystempublic: float salary;/工资 salarycountsystem()salary=0;/定义构造函数使salary初始值为0 float add(int holiday)/固定薪金职员工资重载 float m=holiday*daylypay; salary=
6、monthlypay-m; return salary; /固定薪金职员 double add(int w,int a)/计时职员工资重载 int b=w+a;/w(工作时长),a(超出时长),b(实际工作时长) salary=hourlyrate*b; return salary; /计时职员 float add(float sales1)/普通销售员工资重载 salary=(30000-sales1)*2/100;/销售额小于30000 return salary; float red(float sales1)/定义成员函数 salary=(sales1-30000)*2/100;/销售
7、额大于30000 return salary; /普通销售员 float add(float sales2,float h)/带薪销售员工资重载 salary=monthlypay-h*daylypay+commrate*sales2; return salary; /带薪销售员;void main() salarycountsystem a;/定义一个类的对象 char op; do/使用循环体实现工资查询的循环 cout endl;cout 欢迎使用工资查询系统! endlendl;cout*endl;cout 菜单endl;cout 1 固定薪金职员endl;cout 2 计时职员end
8、l;cout 3 普通销售员endl;cout 4 带薪销售员endl;cout 选择*键结束运算,选其它符号继续运算 endl;cout*endlendl;cout请选择职工类型:k; if(k=1) int holiday;/请假天数 cout请输入固定薪金职员的请假天数:holiday; a.add(holiday); cout*固定薪金职员*endl; cout工种 奖励薪金 固定月薪 请假天数 应扣 实发工资endl; cout k 0 monthlypay holiday holiday*30 a.salaryendl; else if(k=2) int w; int p;/w(w
9、ork hours),p(超出时长) cout请输入工作时长:w;/workehours cout请输入加班时长:p; a.add(w,p); cout*计时职员*endl; cout工种 奖励薪金 工作时长 时薪 加班时长 实发工资endl; coutk 0 w hourlyrate p a.salaryendl; else if(k=3) float prize; float sales1; float s; cout请输入本月销售额:sales1;/输入本月销售额 if(sales1=30000) s=a.red(sales1); cout*普通销售员*endl; cout工种 奖励薪金
10、 销售额 提成比例 应扣 实发工资endl; coutk s sales1 2% 0 3000+sendl; else s=3000-a.add(sales1); prize=a.add(sales1); cout*普通销售员*endl; cout工种 奖励薪金 销售额 提成比例 应扣 实发工资endl; coutk 0 sales1 2% prize sendl; else if(k=4) float sales2; float h;/holiday float d;/应扣 cout请输入带薪销售员请假天数:h;/holiday cout请输入带薪销售员的销售额:sales2;/输入本月销售
11、额 d=h*daylypay; a.add(sales2,h); cout*带薪销售员*endl; cout工种 奖励薪金 固定月薪 销售额 提成比例 请假天数 应扣 实发工资endl; coutk commrate*sales2 monthlypay sales2 commrate h d a.salaryendl; else cout无此项!endlendl; cout选择*键结束运算,其它符号继续运算:op; while(op!=*);6、 运行结果截图:(1)、欢迎界面(2)、固定薪金职员(3)、计时销售员(4)、普通销售员销售额大于30000时:销售额小于30000时:(5)、带薪销售额(6)、退出查询系统三、 得意之处整个程序中我认为比较得意的几个地方:1、 在salarycountsystem类中运用了函数的重载 float add(int holiday)/固定薪金职员工资重载 float m=holiday*daylypay; salary=monthlypay-m; return salary; d
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1