C企业工资管理系统课程设计报告书.doc
《C企业工资管理系统课程设计报告书.doc》由会员分享,可在线阅读,更多相关《C企业工资管理系统课程设计报告书.doc(32页珍藏版)》请在三一办公上搜索。
1、word目录一、 需求分析.1二、 概要设计.3三、 详细设计.12四、 调试分析.12五、 用户手册.13六、 测试数据.17七、 附录.31一、 需求分析1. 源文件采用多文件的工程结构。2. 数据存储采用文件形式。3. 标准C+输入输出4. 程序完成企业人事工资管理,能够实现工资的录入、统计整个单位的平均工资、最高工资、最低工资和工资均方差;各部门的平均工资、最高工资、最低工资和工资均方差、查询按工号或某某查询、修改、删除等功能。5. 程序执行的命令:(1) 录入员工工资信息;(2) 选择需要执行的操作添加、统计、删除、修改、查询;(3) 输出结果。二、 概要设计1. 设计类的数据类型定
2、义class messageprivate:char bornplace10,duty10;/籍贯 职务 int ID;/某某号public:char name10,bumen10;/某某 部门 int number; /工号int basesalary;/根本工资int jobsalary;/岗位工资int yljj;/医疗基金int sj;/税金int jiangjin;/奖金friend void modify(int x); /友员函数friend int del(int x); /友员函数 2. 程序模块(1) 录入操作:void writen(int x),该模版主要实现工资信息的
3、录入;(2) 添加操作:void add(int x),该模版主要实现工资信息的添加;(3) 删除操作:void del(int x),该模版主要实现工资信息的删除;(4) 修改操作:void modifyint x,该模版主要实现工资信息的修改;(5) 查询操作:void find(int x) ,该模版主要实现工资信息的查询按名字查询或按工号查询;(6) 统计操作:void count(int x),该模版主要实现工资信息的统计统计单位的平均工资、最高工资、最低工资、工资均方差;统计部门的平均工资、最高工资、最低工资、工资均方差。 3程序模块结构void main()菜单输入选择;操作;三
4、、详细设计1类模块class messageprivate:char bornplace10,duty10;/籍贯 职务 int ID;/某某号public:char name10,bumen10;/某某 部门 int number; /工号int basesalary;/根本工资int jobsalary;/岗位工资int yljj;/医疗基金int sj;/税金 int jiangjin;/奖金message() /*构造函数void xinxi(char a_name,char a_bornplace,char a_duty,char a_bumen,int a_ID,int a_num
5、ber,int a_basesalary,int a_jobsalary,int a_jiangjin,int a_yljj,int a_sj)strcpy(name,a_name);strcpy(bornplace,a_bornplace);strcpy(duty,a_duty);strcpy(bumen,a_bumen);ID=a_ID;number=a_number;basesalary=a_basesalary;jobsalary=a_jobsalary;jiangjin=a_jiangjin;yljj=a_yljj;sj=a_sj;message &operator=(const m
6、essage &s) /*运算符重载 strcpy(name,s.name);strcpy(bornplace,s.bornplace);strcpy(duty,s.duty);strcpy(bumen,s.bumen);ID=s.ID;number=s.number;basesalary=s.basesalary;jobsalary=s.jobsalary;jiangjin=s.jiangjin;yljj=s.yljj;sj=s.sj;return * this;friend void modify(int x); /*友元函数friend int del(int x);void put()
7、coutname bornplace duty bumen ID number basesalary jobsalary jiangjin yljj sjendl;message() /*析构;2主函数流程图 开始int b,or,i输入i值i=1录入i=2添加i=3删除i=4修改i =5查找i=6统计i=7退出完毕3录入、添加函数流程图开始cout(请输入您要添加的信息)cout(某某,工号,职务,某某号,籍贯,根本工资,岗位工资,奖金,医疗住房基金,税金)cin(name,num,duty,ID,bornplace,basesalary,jobsalary,jiangjin,yljj,sj
8、)完毕(4) 删除函数流程图开始int i,j,temp,flag=-1,char ming输入删除的名字name=mingitemp,jtemp-1aj=bi,i+,j+i+没有找到要删除的人endmessage a30;fstream ap(wenjian.txt,ios:in|ios:out); /文件打开操作 coutming;/输入要删除的人员某某 coutendl; for(j=0,i=0;itemp;i+)/判断是否删除 if(strcmp(bi.name,ming)=0)/标记要删除的信息 flag=i; if(flag=-1)cout没有要删除的信息。endl;return
9、0; for(j=0,i=0;itemp,jtemp-1; )/删除信息if(flag!=i)aj=bi;/删除信息i+;j+;elsei+;(5)修改函数流程图startint i,j,char name输入mingbi.name=ming输入修改的信息名字,工号,职务,某某号,籍贯,工资cin(name,num,duty,ID,bornplace,basesalary,jobsalary,jiangjin,yljj,sj)没找到要修改的endcoutming;coutendl;coutflagendl;cout请输入修改信息:endl;cout某某: bflag.name;cout籍贯:
10、bflag.bornplace;cout职务: bflag.duty;cout部门: bflag.bumen;cout某某号: bflag.ID;cout工号: bflag.number;cout根本工资: bflag.basesalary;cout岗位工资: bflag.jobsalary;cout奖金: bflag.jiangjin;cout医疗住房基金: bflag.yljj;cout税金: bflag.sj;coutendl;(6)查找函数流程图开始int i,j,k,num;char ming,k=1输入要查询的名字bi.name=ming输入要查询的工号bi.putBi.num=n
11、umm没有找到要查找的某某没有找到要查找的工号完毕1:按某某查询coutming; message b30;fstream sp(wenjian.txt,ios:in|ios:out); for(j=0,i=0;itemp;i+)if(strcmp(bi.name,ming)=0)cout某某籍贯职务部门某某号工号根本工资岗位工资奖金医疗住房基金税金 endl;bi.put();2.按工号查询:coutnu; message b30;for(i=0;itemp;i+)if(bi.number=nu)cout某某籍贯职务部门某某号工号根本工资岗位工资奖金医疗住房基金税金 a_bumenbi.bu
12、men=a_bumeni=0,j=0,jtempi+j+sum=sum+bi.basesalary+bi.jobsalary+bi.jiangjin-bi.yljj-bi.sj;ui=bi.basesalary+bi.jobsalary+bi.jiangjin-bi.yljj-bi.sj;i=0,j=0,jtempbi.bumen=a_bumensum=sum+basesalary+.jobsalary+.jiangjin-.yljj-.sj;ui=.basesalary+jobsalary+.jiangjin-.yljj-sj;i+j+end1. 按部门统计for(j=0,i=0;itemp
13、;i+)if(strcmp(bi.bumen,a_bumen)=0)sum=sum+bi.basesalary+bi.jobsalary+bi.jiangjin-bi.yljj-bi.sj;/实发工资ui=bi.basesalary+bi.jobsalary+bi.jiangjin-bi.yljj-bi.sj;j+;int max;int min; max=u0;min=u0;int bb;for(i=0;imax)bb=Ui;Ui=max;max=bb; /最高工资for(i=0;itemp;i+)if(Uimin)bb=Ui;Ui=min;min=Ui;/最低工资for(i=0;itemp
14、;i+) bi.basesalary=abs(sum/(j+0.0)-bi.basesalary);/工资均方差sum1=sum1+bi.basesalary;int U20;for(i=0;i20;i+)Ui=0;for(j=0,i=0;itemp;i+)sum=sum+bi.basesalary+bi.jobsalary+bi.jiangjin-bi.yljj-bi.sj;/实发工资Ui=bi.basesalary+bi.jobsalary+bi.jiangjin-bi.yljj-bi.sj;j+;int max;int min; max=U0;min=U0;int bb;for(i=0;
15、imax)bb=Ui;Ui=max;max=bb; /最高工资for(i=0;itemp;i+)if(Uimin)bb=Ui;Ui=min;min=Ui;/最低工资for(i=0;itemp;i+) bi.basesalary=abs(sum/(j+0.0)-bi.basesalary);/工资均方差sum1=sum1+bi.basesalary;四、调试分析1、开始使用文件保存时出现不能为read错误,后通过查阅资料解决了问题;2、删除局部程序开始不能判断是否找到了要删除的人员信息,后来加了flag标记后可以判断了;3、统计局部程序在求均方差的时候出现算法错误,后来查阅了均方差公式后改正了过
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 企业 工资管理 系统 课程设计 报告书
链接地址:https://www.31ppt.com/p-1163890.html