企业工资管理系统课程设计_第1页
企业工资管理系统课程设计_第2页
企业工资管理系统课程设计_第3页
企业工资管理系统课程设计_第4页
企业工资管理系统课程设计_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、需求分析 1k二、概要设计 3三、详细设计 12四、调试分析 12五、用户手册 13、亠六、测试数据 17七、附录31一、需求分析源文件采用多文件的工程结构。1.2.数据存储采用文件形式。3.标准C+俞入输出4.方差)、查询(按工号或姓名查询)、修改、删除等功能。5.程序执行的命令:1)录入员工工资信息;2)选择需要执行的操作(添加、3)输出结果。程序完成企业人事工资管理,能够实现工资的录入、统计(整个单位的平均工资、最 高工资、最低工资和工资均方差;各部门的平均工资、最高工资、最低工资和工资均概要设计1.设计类的数据类型定义class message private:籍贯 职务char

2、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)2)添加操作:void add(int x)3)删除操作:void del(int

3、 x)4)修改操作:void modify (i5)查询操作:void find(int x)按工号查询);6)统计操作:void count(int x),该模版主要实现工资信息的录入;,该模版主要实现工资信息的添加;,该模版主要实现工资信息的删除;x ),该模版主要实现工资信息的修改;,该模版主要实现工资信息的查询(按名字查询或,该模版主要实现工资信息的统计(统计单位的平均工资、最高工资、最低工资、工资均方差;统计部门的平均工资、最高工资、最低工资、工资均方差) 。3程序模块结构 void main()菜单(输入选择); 操作;三、详细设计1)类模块class message privat

4、e:char bornplace10,duty10;/籍贯 职务int ID;/身份证号public:char name10,bumen10;/ 姓名 部门int number; /工号int basesalary;/基本工资int jobsalary;/岗位工资int yljj;/ 医疗基金int sj;/ 税金int jiangjin;/奖金message() /*构造函数void xinxi(chara_name,chara_bornplace,chara_duty,chara_bumen,int a_ID,int a_number,inta_basesalary,inta_jobsal

5、ary,int II I、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 message &s)/*运算符重strcpy(name,

6、);strcpy(bornplace,s.bornplace);strcpy(duty,s.duty);strcpy(bumen,s.bumen);ID=s.ID;number=s.number;basesalary=s.basesalary;jobsalary=alary;jiangjin=s.jiangjin;yljj=s.yljj;sj=s.sj;return * this;友元函数friend void modify(int x);/*friend int del(int x);void put()coutv n amevv bor np laceduty bu

7、me nw IDwnu mber basesalary jobsalary jia ngjin yljjming;/ 输入要删除的人员姓名i+;coutendl;for(j=0,i=0;itemp;i+)/ 判断是否删除/ 标记要删除的信息cout 没有要删除的信息。endl;if(strcmp(,ming)=0)flag=i;if(flag=-1)/ 删除信息return 0;for(j=0,i=0;itemp,jming;coutvve ndl;coutvvfiagvve ndl;coutvv请输入修改信息:endl;coutvv姓名: bflag. name;coutvv籍

8、贯: bflag.bor np lace;coutvv职务:vvendl;cinbflag.duty;cout 部门: bflag.bumen;cout 身份证号 : bflag.ID;cout 工号: bflag.number;cout 基本工资 : bflag.basesalary;cout 岗位工资 : alary;cout 奖金: bflag.jiangjin;cout 医疗住房基金 : bflag.yljj;cout 税金: bflag.sj;coutming;message b30;fstream sp (wenjia n. txt,ios:i n|ios:ou

9、t);for(j=0,i=0;ite mp ;i+)if(strc mp (bi. name,mi ng)=0)CoutVV姓名籍贯职务部门身份证号工号基本工资岗位工资奖金医疗住房基金税金endl;bi.put();2. 按工号查询:coutnu;message b30;for(i=0;itemp;i+)if(bi.number=nu)cout 姓名 籍贯 职务 部门 身份证号 工号 基本工资 岗位工资 奖金 医疗住房基金 税金 endl;bi.put();7)统计函数流程图1.按部门统计for(j=0,i=0;ivte mp ;i+)if(strc mp (bi.bume n, a_bume

10、 n)=0)sum=sum+bi.basesalary+alary+bi.jiangjin-bi.yljj-bi.sj; / 实发工资ui=bi.basesalary+alary+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;i+)bi.basesalary

11、=abs(sum/(j+0.0)-bi.basesalary);sum1=sum1+bi.basesalary;2. 单位统计int U20;for(i=0;i20;i+)Ui=0;for(j=0,i=0;itemp;i+)sum=sum+bi.basesalary+alary+bi.jiangjin-bi.yljj-bi.sj; / 实发工资Ui=bi.basesalary+alary+bi.jiangjin-bi.yljj-bi.sj;j+;int max;int min;max=U0;min=U0;int bb;for(i=0;imax)bb=Ui;Ui=ma

12、x;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、统计部分程序在求均方差的时候出现算法错误,后来查阅了均方差公式后改正了过来 4、使用友员函

13、数可以解决类外作用域问题。五、用户手册1. 本程序的运行环境为 doc 操作系统;2进入界面后,按照提示输入选择;3. 选择 1:执行工资信息录入操作;4. 选择 2:执行工资信息添加操作;5. 选择 3:执行工资信息删除操作;6. 选择 4:执行工资信息修改操作;7. 选择 5:执行工资信息查询操作;8. 选择 6:执行工资信息统计操作;9.选择 7:退出工资管理系统;10. 输入后按回车键,即可输出信息,按提示输入即可。六、测试数据1)选择 1:工资录入 选择(3)(4)(5)(6)(7)2):添加工资信息 选择 选择 选择 选择 选择34567删除工资信息 修改工资信息 查找工资信息 统

14、计工资信息 退出七、附录#includeiostream.h#include stdlib.h#include stdio.h#includestring.h#includemessage.hclass messageprivate:char bornplace10,duty10;/ 籍贯 职务int ID; / 身份证号public:char name10,bumen10; / 姓名 部门int number; /工号int basesalary;/ 基本工资int jobsalary;/ 岗位工资int yljj; / 医疗基金int sj; / 税金int jiangjin;/ 奖金me

15、ssage()/*构造函数void xinxi(char a_name,chara_bornplace,chara_duty,chara_bumen,int a_ID,int a_number,inta_basesalary,inta_jobsalary,int II I、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_bas

16、esalary;jobsalary=a_jobsalary;jiangjin=a_jiangjin;yljj=a_yljj;sj=a_sj;message &operator=(const message &s)/*运算符重载strcpy(name,);strcpy(bornplace,s.bornplace);strcpy(duty,s.duty);strcpy(bumen,s.bumen);ID=s.ID;number=s.number;basesalary=s.basesalary;jobsalary=alary;jiangjin=s.jiangjin;yljj=

17、s.yljj;sj=s.sj;return * this;friend void modify(int x);/*友元函数friend int del(int x);void put()/ 定义 put 函数,以便于其他函数的调用coutname bornplace duty bumen ID number basesalary jobsalary jiangjin yljj sjendl;message()/*析构;void main()int i,b;int or;cout*欢迎进入企业工资管理系统*endl;coutendl;cout*工资信息录入操作*endl;cout*2.工资信息增

18、加操作*endl;cout*3.工资信息删除操作*endl;cout*4.工资信息修改操作*endl;cout*5.工资信息查找操作*endl;cout*6.工资信息统计操作*endl;cout*7.cout*请输入你要进行的操作选项*endl;退出 *i;coutendl;while(i!=10)switch(i)default:cout你输入的有误,请重新输入。 endl;break;case 1:coutb;writein(b);break;case 2:/ 添加add(b);b+;break;case 3:/删除del(b);b-;break;case 4:/修改modify(b);b

19、reak;coutcase 5:/ 查询endl;endl;cout1请输入您要选择的查询方式:1 e ndl;cout1 1.按姓名查找操作1 e ndl;cout1 2.按工号查找操作1 e ndl;coutor;if(or=1)namfind(b);else if(or=2)numfind(b);break;case 6:/ 统计COUtVV 1endl;COUtVV 1请输入您要选择的查询方式:1 e ndl;COUtVV 11. 按部门统计1 vve ndl;COUtVV 12. 按单位统计1 vve ndl;int cc;coutor;cincc;if(cc=1)bmcount(b

20、);else if(cc=2)dwcount();break;case 7:exit(0);cout*cout*1.cout*3.endl;工资信息录入操作 *endl;工资信息删除操作 *endl;欢迎进入企业工资管理系统*endl;cout*2.工资信息增加操作 *endl;cout*4.工资信息修改操作*endl;cout*5.工资信息查找操作*endl;cout*6.工资信息统计操作*endl;cout*7.退出 *endl;cout*请输入你要进行的操作选项 *i;coutendl;void writein(int x)/ 工资信息录入message a10;char a_name1

21、0,a_bornplace10,a_duty10,a_bumen10;/ 姓 名 籍 贯职务 部门intj,a_ID,a_basesalary,a_jobsalary,a_jiangjin,a_yljj,a_sj,a_number; 证号 基本工资 岗位工资 奖金 医疗住房基金 税金/ 身 份fstream f(wenjian.txt,ios:out);/ 打开文件if(!f)coutCan not open filen.;for(j=0;jx;j+)cout 姓名: a_name;cout 籍贯 : a_bornplace;cout 职务: a_duty;cout 部门: a_bumen;c

22、out 身份证号 : a_ID;cout 工号 : a_number;cout 基本工资 : a_basesalary;cout 岗位工资 : a_jobsalary;cout 奖金: a_jiangjin;cout 医疗住房基金 : a_yljj;cina_sj;aj.xinxi(a_name,a_bornplace,a_duty,a_bumen,a_ID,a_number,a_basesal/ 保存录入的信息ary,a_jobsalary,a_jiangjin,a_yljj,a_sj);f.write(char *)&aj,sizeof(aj );f.close(); / 关闭文件cout

23、endl;ifstream in(wenjian.txt,ios:in);message b10;for(j=0;jx;j+)if(!in.eof()in.read(char *)&bj,sizeof(aj);bj.put();elseexit(0);in.close();void add(int x) / 工资信息添加char a_name10,a_bornplace10,a_duty10,a_bumen10;int a_ID,a_basesalary,a_jobsalary,a_jiangjin,a_yljj,a_sj,a_number,temp=30;message c;cout 输入要

24、增加的人员的信息 :endl;cout 姓名: a_name;cout 籍贯: a_bornplace;cout 职务: a_duty;cout 部门: a_bumen;cout 身份证号 : a_ID;cout 工号: a_number;cout 基本工资 : a_basesalary;cina_jobsalary;cina_jiangjin;cout 岗位工资 : endl;cout 奖金: endl;cout 医疗住房基金 : a_yljj;cout 税金: a_sj;coutendl;c.xinxi(a_name,a_bornplace,a_duty,a_bumen,a_ID,a_nu

25、mber,a_basesalary ,a_jobsalary,a_jiangjin,a_yljj,a_sj);/ 保存到文件中ofstream out(wenjian.txt,ios:app);out.write(char *)&c,sizeof(class message);out.close();cout 增加成功 !endl;int del(int x)/ 工资信息删除int i,j,temp,flag=-1;char ming10;system(cls);ifstream in(wenjian.txt);message b30,c;for(j=0;j30;j+)if(!in.eof()

26、in.read(char *)&bj,sizeof(class message);elsetemp = j-1;break;/ 输出文件内的人员信息cout 文件内保存的信息有 :endl;sp.read(char *)&bj,sizeof(class message);cout 姓名地址职务部门身份证号工号资 endl;for(j=0;jtemp;j+)bj.put();in.close();fstream sp(wenjian.txt,ios:in|ios:out);for(j=0;j30;j+)if(!sp.eof()elsetemp = j-1;break;sp.close();mes

27、sage a30;fstream ap(wenjian.txt,ios:in|ios:out);cout 请输入要删除人员信息的名字.11.cout 没有要删除的信息。ming;coutendl;for(j=0,i=0;itemp;i+)if(strcmp(,ming)=0)flag=i;if(flag=-1)return 0;for(j=0,i=0;itemp,jtemp-1; )if(flag!=i)aj=bi;i+;j+;elsei+;ap.close();ofstream np(wenjian.txt);/ 写入文件for(i=0;itemp-1;i+)np.write(

28、char *)&ai,sizeof(class message);np.close();cout 删除成功 !endl;return 1;void modify(int x) / 工资信息修改char ming10;int i,j,temp,flag;message b30;ifstream sp(wenjian.txt);for(j=0;j30;j+)/ 打开文件if(!sp.eof()sp.read(char *)&bj,sizeof(class message);elsetemp = j-1;break;sp.close();coutming;coutendl;for(i=0;itemp

29、;i+) / 输出文件内保存的信息if(strcmp(,ming)=0)cout 原文件信息是 :endl;flag = i;bi.put();coutendl;coutflagendl;coutendl;cout 请输入修改信息 :endl;cout 姓名 : ;cout 籍贯: bflag.bornplace;cout 职务: bflag.duty;cout 部门: bflag.bumen;cout 身份证号 : bflag.ID;cout 工号: bflag.number;cinbflag.basesalary;alary;co

30、ut 奖金: bflag.jiangjin;cout 医疗住房基金 : bflag.yljj;cout 税金: bflag.sj;coutendl;ofstream in(wenjian.txt);for(i=0;itemp;i+)if(!in)coutCan not open!endl;in.write(char *)&bi,sizeof(class message);coutendl;in.close();void namfind(int x)/ 按姓名查找操作int j,temp,i;char ming10;coutming;coutendl;cout 这个人的信息是 :endl;mes

31、sage b30;fstream sp(wenjian.txt,ios:in|ios:out);for(j=0;j30;j+)if(!sp.eof()sp.read(char *)&bj,sizeof(class message);elsetemp = j-1;break;for(j=0,i=0;itemp;i+)if(strcmp(,ming)=0)金 医疗住房基金 税金 endl;bi.put();sp.close();void numfind(int x)/ 按工号查找操作int nu,i,j,temp;coutnu;coutendl;cout 这个人的信息是 :endl;

32、message b30;fstream sp(wenjian.txt,ios:in|ios:out);for(j=0;j30;j+)if(!sp.eof()sp.read(char *)&bj,sizeof(class message);elsetemp = j-1;break;for(i=0;itemp;i+)if(bi.number=nu)cout 姓名 籍贯 职务 部门 身份证号 工号 基本工资 岗位工资 奖金 医疗住房基金 税金 endl;bi.put();sp.close();void bmcount(int x) / 按部门统计操作int i,j,sum=0,sum1=0,temp

33、;char a_bumen10;couta_bumen;coutendl;message b30;fstream sp(wenjian.txt,ios:in|ios:out);for(j=0;j30;j+)if(!sp.eof()sp.read(char *)&bj,sizeof(class message);elsetemp = j-1;break;int U20;for(i=0;i20;i+)Ui=0;for(j=0,i=0;itemp;i+)if(strcmp(bi.bumen,a_bumen)=0)sum=sum+bi.basesalary+alary+bi.jiangjin-bi.yljj-bi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论