公司工资管理系统程序设计报告.doc

上传人:精*** 文档编号:828717 上传时间:2023-09-06 格式:DOC 页数:28 大小:375KB
下载 相关 举报
公司工资管理系统程序设计报告.doc_第1页
第1页 / 共28页
公司工资管理系统程序设计报告.doc_第2页
第2页 / 共28页
公司工资管理系统程序设计报告.doc_第3页
第3页 / 共28页
公司工资管理系统程序设计报告.doc_第4页
第4页 / 共28页
公司工资管理系统程序设计报告.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、面向对象程序设计综合实验报告目 录一、 课程设计题目2二、主要功能分析 3三、设计思路 3四、编码实现 3五、程序使用注意事项25六、运行结果25七、心得及体会28一、课程设计题目公司工资管理系统设计要求:(1)公司主要有4类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、月工资、岗位、年龄、性别等信息。(2)工资的计算办法:经理:固定月薪为8000;技术员:工作时间小时工资(100元每小时);销售员:销售额4%提成;销售经理:底薪(5000)所辖部门销售额总额0.5%;(3)类的层次结构大体如下:雇员类技术员类经理类销售员类销售经理类(4)输入数据要求每类人员不能少于4人

2、,并按以下格式输出:职工号姓名性别年龄岗位工资排名及某销售经理所辖部门各销售员的业绩及自己的工资表:职工号姓名销售额销售额合计:(5)总体设计,要有一个菜单,用于选择各项功能,其中数据录入:输入各种数据;数据统计:各销售经理的工资计算及最终按工资进行的冒泡排序;数据打印:打印上述表格;数据备份:把相关数据写入文件;退出:退出本系统;注:各项菜单都调用一个函数来实现。二、主要功能分析1、资料录入:通过键盘输入公司各项职员的各项数据;2、资料统计:统计各销售经理下属销售员的销售额及销售额之和;销售经理按工资进行冒泡排序;3、数据打印:按照表格的格式在屏幕上输出各类员工的信息;4、资料备份:把各类员

3、工的数据信息写入文件中保存;5、退出:退出本系统三、设计思路1、整体考虑程序应该实现的功能,有数据输入,数据统计,数据打印,数据备份和退出系统5个。2、首先定义了一个Employee的雇员基类,然后由此派生出Technician,Manager,Seller三个类,并且Manager类和Seller类为虚拟继承。然后定义一个Salesmanager类多重继承于Manager类和Seller类。所有的继承都为共有继承。3、通过switch语句判断进行什么操作。四、编码实现#include#include#include#include#includeusing namespace std;ofs

4、tream outfile;const int B=4;const int T=4;const int SB=2;const int S=4;double wage1(int n);void managerinformation();/经理信息void technicianinformatian();/技术员信息void salesmanagerinformation();/销售经理信息void sellerinformation();/销售员信息void total();/求工资函数void maopao();/冒泡排序进行工资排列void yejibiao();/打印业绩表格void SB

5、rank();/销售经理工资排序void excelhead();/表头void excelmiddle();/表中void excelend();/表尾void backup_yejibiao(); /void backup_SBrank(); /void backup_technicianinformatian(); /各项信息表格备份void backup_managerinformation(); /void backup_salesmanagerinformation(); /void backup_sellerinformation(); /class Employeepublic

6、:int nume() return(num);/职工号string nam()return(name);/名字char showsex() return(sex); /性别int showage() return(age);/年龄protected:int num;string name;char sex;int age;int wage;class Manager:virtual public Employeepublic:Manager() /8000元为经理固定月薪wage=8000;int managerwage() return(wage);void set_in()coutnum

7、;coutendl;coutname;coutendl;coutsex;coutendl;coutage;coutendl;class Technician:public Employeepublic:void set_in()coutnum;coutendl;coutname;coutendl;coutsex;coutendl;coutage;coutendl;coutworktime;coutendl;int get_wage()/技术员工资算法return (worktime*100); /100元为单位小时工资protected:int worktime;class Seller:vi

8、rtual public Employeepublic:int bossnume() return(bossnum);int money() return(salesmoney); void set_in()coutnum;coutendl;coutname;coutendl;coutsex;coutendl;coutage;coutendl;coutsalesmoney;coutendl;coutbossnum;coutendl; double get_wage()/销售员工资算法 return (salesmoney*0.04);protected:int salesmoney;int b

9、ossnum;class Salesmanager:public Manager,public Sellerpublic:Salesmanager()allsale=0; void set_in()coutnum;coutendl;coutname;coutendl;coutsex;coutendl;coutage;coutendl;double get_wage()/销售经理工资算法return (5000+allsale*0.005); /5000元为销售经理底薪protected:int allsale;Manager bossB;Technician techniT;Seller sa

10、lesmanS;Salesmanager salesbossSB;int salesbosstotaleSB=0;Salesmanager exchangeSB;int exchange;int b=0,t=0,sb=0,s=0;int Inputboss()for(int i=0;iB;i+)bossi.set_in(); coutendl;return 0;/经理数据处理函数int Inputtechni()for(int j=0;jT;j+)technij.set_in(); coutendl;return 0;/技术员数据处理函数int Inputsalesman()for(int n

11、=0;nS;n+)salesmann.set_in(); coutendl;return 0;/销售员数据处理函数int Inputsalesboss()for(int m=0;mSB;m+)salesbossm.set_in();return 0;/销售经理数据处理函数double wage1(int n)return(5000+n*0.005);/以下为第二步计算工资代码void total() /求总销售额for(int n=0;nS;n+)for(int m=0;mSB;m+)if(salesmann.bossnume()=salesbossm.nume()salesbosstotal

12、em+=salesmann.money(); break;void maopao() /冒泡法排序for(int n=1;nSB;n+)for(int m=1;msalesbosstotalem)exchangeSB=salesbossm-1;salesbossm-1=salesbossm;salesbossm=exchangeSB;exchange=salesbosstotalem-1;salesbosstotalem-1=exchange;salesbosstotalem=exchange;void yejibiao() /打印表格 for(int n=0;nSB;n+)cout职工号为s

13、alesbossn.nume()销售经理salesbossn.nam()下属的销售员业绩为:endl; coutendl; cout职工号 姓名 销售额 endl;for(int j=0;jS;j+)if(salesmanj.bossnume()=salesbossn.nume()coutendl;coutsetw(12)salesmanj.nume()setw(12)salesmanj.nam()setw(14)salesmanj.money()endl; coutendl; cout销售额总计: setw(28)salesbosstotalenendl; coutendl;void SBr

14、ank()cout销售经理按工资排序为:-1;n-)excelmiddle();coutsetw(8)salesbossn.nume()setw(8)salesbossn.nam()setw(6)salesbossn.showsex()setw(8)salesbossn.showage()setw(8)销售经理setw(8)wage1(salesbosstotalen)endl;excelend();/以下为职工信息一览表代码void technicianinformatian()excelhead();for(int k=0;kT;k+)excelmiddle();coutsetw(8)te

15、chnik.nume()setw(8)technik.nam()setw(6)technik.showsex()setw(8)technik.showage()setw(8)技术员setw(8)technik.get_wage()endl; excelend();void managerinformation()excelhead();for(int k=0;kB;k+) excelmiddle();coutsetw(8)bossk.nume()setw(8)bossk.nam()setw(6)bossk.showsex()setw(8)bossk.showage()setw(8) 经理 se

16、tw(8)bossk.managerwage()-1;k-) excelmiddle();coutsetw(8)salesbossk.nume()setw(8)salesbossk.nam()setw(6)salesbossk.showsex()setw(8)salesbossk.showage()setw(8)销售经理setw(8)wage1(salesbosstotalek)endl;excelend();void sellerinformation()coutendl;cout 职工号 姓名 性别 年龄 岗位 工资 所属部门经理编号endl;for(int k=0;kS;k+)coute

17、ndl;coutsetw(8)salesmank.nume()setw(8)salesmank.nam()setw(6)salesmank.showsex()setw(8)salesmank.showage()setw(8)销售员 setw(8)salesmank.get_wage()setw(16)salesmank.bossnume()endl;coutendl;/各步表格的表头,表中和表尾void excelhead()coutendl;cout 职工号 姓名 性别 年龄 岗位 工资 endl;void excelmiddle()coutendl;void excelend()coute

18、ndl;/资料备份void backup_yejibiao() outfile.open(备份资料.doc,ios:out);for(int n=0;nSB;n+)outfile职工号为salesbossn.nume()销售经理salesbossn.nam()下属的销售员业绩为:endl;outfileendl;outfile职工号 姓名 销售额 endl; for(int j=0;jS;j+)if(salesmanj.bossnume()=salesbossn.nume()outfileendl;outfilesetw(12)salesmanj.nume()setw(12)salesmanj

19、.nam()setw(14)salesmanj.money()endl; outfileendl; outfile销售额总计: setw(28)salesbosstotalenendl; outfileendl;void backup_SBrank()outfile销售经理按工资排序为:endl; outfileendl;outfile 职工号 姓名 性别 年龄 岗位 工资 -1;n-)outfileendl;outfilesetw(8)salesbossn.nume()setw(8)salesbossn.nam()setw(6)salesbossn.showsex()setw(8)sales

20、bossn.showage()setw(8)销售经理setw(8)wage1(salesbosstotalen)endl;outfileendl;void backup_technicianinformatian()outfile职工基本情况一览表如下endl;outfile技术员endl;outfileendl;outfile 职工号 姓名 性别 年龄 岗位 工资 endl;for(int k=0;kT;k+)outfileendl;outfilesetw(8)technik.nume()setw(8)technik.nam()setw(6)technik.showsex()setw(8)t

21、echnik.showage()setw(8)技术员 setw(8)technik.get_wage()endl;outfileendl;void backup_managerinformation()outfile经理endl;outfileendl;outfile 职工号 姓名 性别 年龄 岗位 工资 endl;for(int k=0;kB;k+)outfileendl;outfilesetw(8)bossk.nume()setw(8)bossk.nam()setw(6)bossk.showsex()setw(8)bossk.showage()setw(8) 经理 setw(8)bossk

22、.managerwage()endl;outfileendl;void backup_salesmanagerinformation()outfile销售经理endl;outfileendl;outfile 职工号 姓名 性别 年龄 岗位 工资 endl;for(int k=0;kSB;k+)outfileendl;outfilesetw(8)salesbossk.nume()setw(8)salesbossk.nam()setw(6)salesbossk.showsex()setw(8)salesbossk.showage()setw(8)销售经理setw(8)wage1(salesboss

23、totalek)endl; outfileendl;void backup_sellerinformation()outfile销售员endl;outfileendl;outfile 职工号 姓名 性别 年龄 岗位 工资 所属部门经理编号endl;for(int k=0;kS;k+)outfileendl;outfilesetw(8)salesmank.nume()setw(8)salesmank.nam()setw(6)salesmank.showsex()setw(8)salesmank.showage()setw(8)销售员 setw(8)salesmank.get_wage()setw

24、(16)salesmank.bossnume()endl;outfileendl;outfile.close();/资料备份int main ()for(;)/建立选项表cout 小型公司工资管理系统endl;coutendl;cout 请选择您所需要的操作 endl;cout 数据输入:1,并按回车键 endl;cout 资料统计:2,并按回车键 endl;cout 数据打印:3,并按回车键 endl;cout 资料备份:4,并按回车键 endl;cout 退出系统:5,并按回车键 endl;coutendl;coutselect;/根据序号进行选择操作switch(select)case

25、1:for(;)/输入数据选项中的子选项cout 小型公司工资管理系统endl; coutendl; cout 请选择您所需要的操作 endl; cout 经理数据输入 :1,并按回车键 endl; cout 技术员数据输入 :2,并按回车键 endl; cout 销售员数据输入 :3,并按回车键 endl; cout 销售经理数据输入:4,并按回车键 endl; cout 返回上一级 :5,并按回车键 endl; coutendl; coutchoice;switch(choice)case 1:Inputboss();b+;break;case 2:Inputtechni();t+; br

26、eak;case 3:Inputsalesman();s+;break;case 4:Inputsalesboss();sb+;break;case 5:break;default:cout输入有误,请重新输入.endl;if(choice=5) break;break;case 2:if(s=0) cout尚未输入销售员数据.endl;if(sb=0) cout尚未输入销售经理数据.endl;if(s=0|sb=0) break; total();maopao();yejibiao();SBrank(); break;case 3:cout请等待.endl;if(t!=0|b!=0|sb!=

27、0|s!=0)cout职工基本情况一览表如下endl;if(t!=0)cout技术员endl; technicianinformatian(); coutendl;if(b!=0)cout经理endl; managerinformation(); coutendl;if(sb!=0)cout销售经理endl; salesmanagerinformation(); coutendl;if(s!=0)cout销售员endl; sellerinformation(); coutendl; if(t=0&b=0&sb=0&s=0)cout尚未录入任何人员资料.endl;elseif(t=0)cout尚未录入技术员数据.endl; if(b=0)cout尚未录入经理数据.endl; if(sb=0)cout尚未录入销售经理数据.endl; if(s=0)cout尚未录入销售员数据.endl;if(t=0|b

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 技术资料 > 研究报告

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922