


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录一、需求分析 1二、概要设计 3三、详细设计 12四、调试分析 12五、用户手册 13六、测试数据 17七、附录 31需求分析1. 数据存储采用文件形式。2. 标准C+俞入输出3. 程序完成企业人事工资管理,能够实现工资的录入、统计(整个单位的平均 工资、最高工资、最低工资) 、查询、修改、删除等功能。4. 程序执行的命令:(1)录入员工工资信息;(2)选择需要执行的操作(添加、统计、删除、修改、查询) ;( 3) 输出结果。二、概要设计1. 设计类的数据类型定义class messageprivate:char bornplace10,duty10;/ 籍贯 职务 int ID;/ 身份
2、证号public:char name10,bume n10;/姓名部门int basesalary;/基本工资int jia ngji n; 奖金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 x),该模版主要实现工资信息的删除;(4)修改操作:void modify ( int x),该模版主要实现工资信息
3、的修改;5) 查询操作: void find(int x) ,该模版主要实现工资信息的查询统计操6) 统计操作: void count(int x),实现最高工资,最低工资等的统计;7) 退出;三、详细设计(1)类模块 class message private:char bornplace10; char duty10;int ID;public:char name10;char bumen10;int basesalary;int jiangjin;message()/*构造函数void xinxi(char a_name,char a_bornplace,char a_duty,char
4、 a_bumen,int a_ID,int a_basesalary,int a_jiangjin)strcpy(name,a_name);strcpy(bornplace,a_bornplace); strcpy(duty,a_duty); strcpy(bumen,a_bumen);ID=a_ID;basesalary=a_basesalary;jiangjin=a_jiangjin;message &operator=(const message &s) /* 运算符重载strcpy(name,);strcpy(bornplace,s.bornplace);strcpy(du
5、ty,s.duty);strcpy(bumen,s.bumen);ID=s.ID;basesalary=s.basesalary;jiangjin=s.jiangjin; return * this;friend void modify(int x);/*友元函数friend int del(int x);void put()/定义 put 函数,以便于其他函数的调用IDcoutname bornplace duty bumenbasesalary jiangjin-I I ., j J-r -r uj R-r -r uj R-r ujI I - ”Bi -I I nualj I II I.
6、., LI 11 |I I THTI lllO -r uj R-r -r uj R-r uj I - - 、 Illi | IK* 1 g|-aI I lf-ol-i I 11查窘纟黠而信OOOCK心自陋个人的信息是:陡名籍贯职务部门身份证号 基本工资奖金S S S S 77 7阳二*欢迎进入企业工资管理系统*II)XJ XJ XJ XJ XJ XJ XJ XJ XJt-t i-r i-r1-ri-ri-ri-r i-ri-ri-rt-tUT1J XJ XJUXJXJXJ UXJXJXJ 厂d-h J-h J-hJ-hd-hJ-hJ-h J-hJ-fa |_J,2 i_r urTLcSl.-n
7、fl I If?, -i-r-i-r-i-ri-r-i-r-i-r-i-ri-r-i-r-i-r-i-r n n J I .1.1 口 jIrl_| 1屮5尺 cccccccccrr t.b*1*- .| | |J 、.| -Z- L Ji1T.*r- - LJ -j I T*6 ”查看统计的信息, XXXXXXXXXX frw*7 ” 岀 JCKJOCJCKJOCJCKJOCJCKJOCJCJCJOCJCJCK 兰请输入你要进行的操作选项*慷右要增卽的人员的信息: 惰贯: 囲务: fen:倉份证号=勒本工资=F:C+12Debug12. exe,欢迎进入企业工煲彎翼系统Si. ,-DQ .!
8、介:-霽迂n . d o .!i I II ” h I il-i “俳 J 香 | pMMMMMMMMMMM 息修改1曙企 * 3 -iLLZt Tl7 o -4T_ri_rT_r2T_ri_rT_r2T_ri_ri_r产斗uY耳卩勺?也 尸mu *6 .查看统计的信息xmcxuc HJHt? ” 艮 出 XXJOXXJOXXJOOXJOOXJOOXX 请输人你要进行的操作选项*罰入企业人员的人数江m:t懵贯:职务:ffen:員份证号: 噬本工毎七、附录#in cludeiostream.h#in elude stdlib.h#include stdio.h#includestring.h#i
9、ncludemessage.h class message private: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_bu
10、men,int a_ID,int a_number,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; s
11、j=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=s.yljj;sj=s.sj; return * this;friend void modify(int x)
12、;/* 友元函数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;cout*1.工资信息录入操作 *endl;cout*2.工资信息增加操作 *endl;cout*3.工资信息删除操作 *endl;cout*4.工资信息修改操作 *endl;cou
13、t*5.工资信息查找操作 *endl;cout*6.工资信息统计操作 *endl;cout*7.退出 *endl;cout* 请输入你要进行的操作选项 *i;coutendl;while(i!=10)switch(i)default:cout 你输入的有误,请重新输入。 endl;break; case 1:coutb;coutendl;writein(b);break;case 2:/添加add(b);b+; break;case 3:/删除del(b); b-; break;case 4:/修改modify(b); break;case 5:/查询coutcoutcoutcout请输入您要
14、选择的查询方式:按1.姓名查找操作按2.工号查找操作endl; endl; endl;coutendl;or;if(or=1) namfind(b);else if(or=2) numfind(b);break;case 6:/统计int cc;coutcoutcoutcout请输入您要选择的查询方式:按1.部门统计按2.单位统计endl;endl;endl;coutendl;or; :cincc;if(cc=1)bmcount(b);else if(cc=2)dwcount();break;case 7:exit(0);cout*1.工资信息录入操作 *endl;cout*2.cout*3.
15、cout*4.工资信息增加操作 *endl; 工资信息删除操作 *endl; 工资信息修改操作 *endl;cout*5.工资信息查找操作 *endl;cout* 欢迎进入企业工资管理系统 *endl;*6.cout工资信息统计操作 *endl;cout*7.退出*endl;cout* 请输入你要进行的操作选项 *i;coutendl;void writein(int x) / 工资信息录入部门 基本工message a10;char a_name10,a_bornplace10,a_duty10,a_bumen10; / 姓名 籍贯 职务 int j,a_ID,a_basesalary,a_
16、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;cout 身份证号 : a_ID;cout 工号 : a_number;cout 基本工资 : a_basesalary;cout 岗位工资 : a_
17、jobsalary;cout 奖金 : a_jiangjin;cout 医疗住房基金 : a_yljj;cout 税金 : a_sj;coutendl;aj.xinxi(a_name,a_bornplace,a_duty,a_bumen,a_ID,a_number,a_basesalary,a_jobsalary,a_ji angjin,a_yljj,a_sj);f.write(char *)&aj,sizeof(aj ); / 保存录入的信息f.close(); / 关闭文件coutendl;ifstream in(wenjian.txt,ios:in);message b10;for(j=
18、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 输入要增加的人员的信息 :endl;cout 姓名 : a_name;cout 籍贯 : a_bornplace;c
19、out职务:a_duty;cout 部门 : a_bumen;cout 身份证号 : a_ID;cout 工号 : a_number;cout基本工资:a_basesalary;cout 岗位工资 : a_jobsalary;cout奖金:a_jiangjin;cout医疗住房基金:a_yljj;cout 税金 : a_sj;coutendl;c.xinxi(a_name,a_bornplace,a_duty,a_bumen,a_ID,a_number,a_basesalary,a_jobsalary,a_jian gjin,a_yljj,a_sj);ofstream out(wenjian.
20、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()in.read(char *)&bj,sizeof(class message);elsetemp = j-1;break;cout 文件内保存的信息有
21、 :endl;/ 输出文件内的人员信息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()sp.read(char *)&bj,sizeof(class message);elsetemp = j-1; break; sp.close(); message a30;fstream ap(wenjian.txt,ios:in|ios:out);coutming;coutendl; for(
22、j=0,i=0;itemp;i+) if(strcmp(,ming)=0) / 标记要删除的信息 flag=i;if(flag=-1)cout 没有要删除的信息。 endl; return 0;for(j=0,i=0;itemp,jtemp-1; ) / 删除信息if(flag!=i) aj=bi; i+; j+;else i+;ap.close();ofstream np(wenjian.txt); for(i=0;itemp-1;i+)np.write(char *)&ai,sizeof(class message); / 写入文件np.close();cout 删除成功 !
23、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); / 打开文件 else temp = j-1; break; sp.close(); coutming;coutendl;cout 原文件信息是 :endl;for(i=0;itemp;i+) / 输出文件内保存的信息if(strcmp(bi.
24、name,ming)=0)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;cout基本工资:bflag.basesalary;cout 岗位工资 : alary;cout奖金:bflag.jiangjin;cout医疗住房基
25、金: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; message b30;fstream sp(wenjian.tx
26、t,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)奖金 医cout 姓名 籍贯 职务 部门 身份证号 工号 基本工资 岗位工资 疗住房基金 税金 endl;bi.put();sp.close();void numfind(int x) / 按工号查找操作int nu,i,j,temp;coutnu;coutendl;cout 这个人的信息是
27、 :endl;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,sum
28、1=0,temp;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.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=abs(sum/(j+0.0)-bi.bases
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 紫云英种植与水稻提质增效技术
- 黄颡鱼池塘健康养殖技术
- 中国医学区块链场景构建及应用指南2025
- 安全法规与标准试题及答案
- 贸易术语及应用及试题及答案
- jetson 系列移植指南 nv-jetson-agx-xavier-as-jetson-xavier-nx
- 2025年宁泌泰胶囊项目建议书
- CPSM考试科目试题及答案详解
- 国际货运保险常识试题及答案
- 2024年SCMP智慧学习试题及答案
- 家乡文化渠县
- 2024-2030年中国人工智能专业人才需求行业市场全景调查及发展前景分析报告
- XX区烟草公司面向社会招聘工作人员政审表【模板】
- 压力性损伤治疗护理新进展
- 头痛疾病的国际分类
- 经纬仪的使用-观测水平角(工程测量课件)
- 辽宁省名校联盟2024年高考模拟卷(信息卷)数学(二)
- 《变色龙》38020省公开课一等奖全国示范课微课金奖课件
- 小学中队建设方案
- 最高法院第一巡回法庭关于行政审判法律适用若干问题的会议纪要
- DL∕T 2041-2019 分布式电源接入电网承载力评估导则
评论
0/150
提交评论