欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    企业工资管理系统课程设计.docx

    • 资源ID:1777353       资源大小:340.30KB        全文页数:33页
    • 资源格式: DOCX        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    企业工资管理系统课程设计.docx

    目录一、 需求分析.1二、 概要设计.3三、 详细设计.12四、 调试分析.12五、 用户手册.13六、 测试数据.17七、 附录.31一、 需求分析1. 源文件采用多文件的工程结构。2. 数据存储采用文件形式。3. 标准C+输入输出4. 程序完成企业人事工资管理,能够实现工资的录入、统计(整个单位的平均工资、最高工资、最低工资和工资均方差;各部门的平均工资、最高工资、最低工资和工资均方差)、查询(按工号或姓名查询)、修改、删除等功能。5. 程序执行的命令:(1) 录入员工工资信息;(2) 选择需要执行的操作(添加、统计、删除、修改、查询);(3) 输出结果。二、 概要设计1. 设计类的数据类型定义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),该模版主要实现工资信息的录入;(2) 添加操作:void add(int x),该模版主要实现工资信息的添加;(3) 删除操作:void del(int x),该模版主要实现工资信息的删除;(4) 修改操作:void modify(int x),该模版主要实现工资信息的修改;(5) 查询操作:void find(int x) ,该模版主要实现工资信息的查询(按名字查询或按工号查询);(6) 统计操作:void count(int x),该模版主要实现工资信息的统计(统计单位的平均工资、最高工资、最低工资、工资均方差;统计部门的平均工资、最高工资、最低工资、工资均方差)。 3程序模块结构void main()菜单(输入选择);操作;三、详细设计(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_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; sj=a_sj; message &operator=(const message &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()cout<<name<<" "<<bornplace<<" "<<duty<<" "<<bumen<<" "<<ID<<" "<<number<<" "<<basesalary<<" "<<jobsalary<<" "<<jiangjin<<" "<<yljj<<" "<<sj<<endl;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)结束(4) 删除函数流程图开始int i,j,temp,flag=-1,char ming输入删除的名字name=mingi<temp,j<temp-1aj=bi,i+,j+i+没有找到要删除的人endmessage a30;fstream ap("wenjian.txt",ios:in|ios:out); /文件打开操作 cout<<"请输入要删除人员信息的名字:" cin>>ming; /输入要删除的人员姓名 cout<<endl; for(j=0,i=0;i<temp;i+) /判断是否删除 if(strcmp(bi.name,ming)=0)/标记要删除的信息 flag=i; if(flag=-1)cout<<"没有要删除的信息。"<<endl;return 0; for(j=0,i=0;i<temp,j<temp-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)没找到要修改的endcout<<"输入要修改人的名字:"cin>>ming;cout<<endl;cout<<flag<<endl;cout<<"请输入修改信息:"<<endl; cout<<"姓名: "<<endl;cin>>bflag.name;cout<<"籍贯: "<<endl;cin>>bflag.bornplace;cout<<"职务: "<<endl;cin>>bflag.duty;cout<<"部门: "<<endl;cin>>bflag.bumen;cout<<"身份证号: "<<endl;cin>>bflag.ID;cout<<"工号: "<<endl;cin>>bflag.number;cout<<"基本工资: "<<endl;cin>>bflag.basesalary;cout<<"岗位工资: "<<endl;cin>>bflag.jobsalary;cout<<"奖金: "<<endl;cin>>bflag.jiangjin;cout<<"医疗住房基金: "<<endl;cin>>bflag.yljj;cout<<"税金: "<<endl;cin>>bflag.sj;cout<<endl;(6)查找函数流程图开始int i,j,k,num;char ming,k=1输入要查询的名字bi.name=ming输入要查询的工号bi.putBi.num=numm没有找到要查找的姓名没有找到要查找的工号结束1:按姓名查询cout<<"输入要查询的姓名:"cin>>ming; message b30;fstream sp("wenjian.txt",ios:in|ios:out); for(j=0,i=0;i<temp;i+)if(strcmp(bi.name,ming)=0)cout<<"姓名 籍贯 职务 部门 身份证号 工号 基本工资 岗位工资 奖金 医疗住房基金 税金 "<<endl;bi.put();2.按工号查询:cout<<"输入要查询的工号:"cin>>nu; message b30;for(i=0;i<temp;i+)if(bi.number=nu)cout<<"姓名 籍贯 职务 部门 身份证号 工号 基本工资 岗位工资 奖金 医疗住房基金 税金 "<<endl;bi.put();(7)统计函数流程图开始int i,j,k,char a_bumen10,sum=0,sum1=0k=1输入要统计的部门k=2cin>>a_bumenbi.bumen=a_bumeni=0,j=0,j<tempi+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,j<tempbi.bumen=a_bumensum=sum+basesalary+.jobsalary+.jiangjin-.yljj-.sj;ui=.basesalary+jobsalary+.jiangjin-.yljj-sj;i+j+end1. 按部门统计 for(j=0,i=0;i<temp;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;i<temp;i+)if(Ui>max)bb=Ui;Ui=max;max=bb; /最高工资for(i=0;i<temp;i+)if(Ui<min)bb=Ui;Ui=min;min=Ui;/最低工资for(i=0;i<temp;i+) bi.basesalary=abs(sum/(j+0.0)-bi.basesalary);/工资均方差sum1=sum1+bi.basesalary;2.单位统计int U20;for(i=0;i<20;i+)Ui=0;for(j=0,i=0;i<temp;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;i<temp;i+)if(Ui>max)bb=Ui;Ui=max;max=bb; /最高工资for(i=0;i<temp;i+)if(Ui<min)bb=Ui;Ui=min;min=Ui;/最低工资for(i=0;i<temp;i+) bi.basesalary=abs(sum/(j+0.0)-bi.basesalary);/工资均方差sum1=sum1+bi.basesalary;四、调试分析1、开始使用文件保存时出现不能为read错误,后通过查阅资料解决了问题;2、删除部分程序开始不能判断是否找到了要删除的人员信息,后来加了flag标记后可以判断了;3、统计部分程序在求均方差的时候出现算法错误,后来查阅了均方差公式后改正了过来4、使用友员函数可以解决类外作用域问题。五、用户手册1.本程序的运行环境为doc操作系统;2进入界面后,按照提示输入选择;3.选择1:执行工资信息录入操作;4.选择2:执行工资信息添加操作;5.选择3:执行工资信息删除操作;6.选择4:执行工资信息修改操作;7.选择5:执行工资信息查询操作;8.选择6:执行工资信息统计操作;9.选择7:退出工资管理系统;10.输入后按回车键,即可输出信息,按提示输入即可。六、测试数据(1)选择1:工资录入选择(2):添加工资信息(3)选择3:删除工资信息(4)选择4:修改工资信息(5)选择5:查找工资信息(6)选择6:统计工资信息(7)选择7:退出七、附录#include"iostream.h"#include "stdlib.h"#include "stdio.h"#include"string.h"#include"message.h"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_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;sj=a_sj;message &operator=(const message &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() /定义put函数,以便于其他函数的调用cout<<name<<" "<<bornplace<<" "<<duty<<" "<<bumen<<" "<<ID<<" "<<number<<" "<<basesalary<<" "<<jobsalary<<" "<<jiangjin<<" "<<yljj<<" "<<sj<<endl;message() /*析构;void main()int i,b;int or;cout<<"*欢迎进入企业工资管理系统*"<<endl;cout<<"*1.工资信息录入操作*"<<endl;cout<<"*2.工资信息增加操作*"<<endl;cout<<"*3.工资信息删除操作*"<<endl;cout<<"*4.工资信息修改操作*"<<endl;cout<<"*5.工资信息查找操作*"<<endl;cout<<"*6.工资信息统计操作*"<<endl;cout<<"*7.退出*"<<endl;cout<<"*请输入你要进行的操作选项*"<<endl;cin>>i;cout<<endl;while(i!=10) switch(i) default: cout<<"你输入的有误,请重新输入。"<<endl;break; case 1: cout<<"输入企业人员的人数:" /输入信息 cin>>b; cout<<endl; writein(b); break; case 2:/添加 add(b); b+; break; case 3:/删除 del(b); b-; break; case 4:/修改 modify(b); break; case 5:/查询 cout<<" "<<endl;cout<<"请输入您要选择的查询方式:"<<endl;cout<<"1.按姓名查找操作 "<<endl;cout<<"2.按工号查找操作 "<<endl; cout<<""<<endl;cin>>or;if(or=1) namfind(b);else if(or=2)numfind(b); break; case 6:/统计int cc; cout<<""<<endl;cout<<"请输入您要选择的查询方式:"<<endl;cout<<"1.按部门统计 "<<endl;cout<<"2.按单位统计 "<<endl; cout<<""<<endl;/cin>>or;:cin>>cc;if(cc=1) bmcount(b);else if(cc=2)dwcount(); break; case 7: exit(0); cout<<"*欢迎进入企业工资管理系统*"<<endl;cout<<"*1.工资信息录入操作*"<<endl;cout<<"*2.工资信息增加操作*"<<endl;cout<<"*3.工资信息删除操作*"<<endl;cout<<"*4.工资信息修改操作*"<<endl;cout<<"*5.工资信息查找操作*"<<endl;cout<<"*6.工资信息统计操作*"<<endl;cout<<"*7.退出*"<<endl;cout<<"*请输入你要进行的操作选项*"<<endl;cin>>i;cout<<endl;void writein(int x) /工资信息录入message a10;char a_name10,a_bornplace10,a_duty10,a_bumen10; /姓名 籍贯 职务 部门int j,a_ID,a_basesalary,a_jobsalary,a_jiangjin,a_yljj,a_sj,a_number;/身份证号 基本工资 岗位工资 奖金 医疗住房基金 税金 fstream f("wenjian.txt",ios:out);/打开文件if(!f) cout<<"Can not open filen."for(j=0;j<x;j+)cout<<"姓名: "<<endl;cin>>a_name;cout<<"籍贯: "<<endl;cin>>a_bornplace;cout<<"职务: "<<endl;cin>>a_duty;cout<<"部门: "<<endl;cin>>a_bumen;cout<<"身份证号: "<<endl;cin>>a_ID;cout<<"工号: "<<endl;cin>>a_number;cout<<"基本工资: "<<endl;cin>>a_basesalary;cout<<"岗位工资: "<<endl;cin>>a_jobsalary;cout<<"奖金: "<<endl;cin>>a_jiangjin;cout<<"医疗住房基金: "<<endl;cin>>a_yljj;cout<<"税金: "<<endl;cin>>a_sj;cout<<endl;aj.xinxi(a_name,a_bornplace,a_duty,a_bumen,a_ID,a_number,a_basesalary,a_jobsalary,a_jiangjin,a_yljj,a_sj); f.write(char *)&aj,sizeof(aj );/保存录入的信息f.close(); /关闭文件cout<<endl;ifstream in("wenjian.txt",ios:in);message b10;for(j=0;j<x;j+)if(!in.eof() in.read(char *)&bj,sizeof(aj); bj.put();else exit(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<<"姓名: "<<endl;cin>>a_name;cout<<"籍贯: "<<endl;cin>>a_bornplace;cout<<"职务: "<<endl;cin>>a_duty;cout<<"部门: "<<endl;cin>>a_bumen;cout<<"身份证号: "<<endl;cin>>a_ID;cout<<"工号: "<<endl;cin>>a_number;cout<<"基本工资: "<<endl;cin>>a_basesalary;cout<<"岗位工资: "<<endl;cin>>a_jobsalary;cout<<"奖金: "<<endl;cin>>a_jiangjin;cout<<"医疗住房基金: "<<endl;cin>>a_yljj;cout<<"税金: "<<endl;cin>>a_sj;cout<<endl;c.xinxi(a_name,a_bornplace,a_duty,a_bumen,a_ID,a_number,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;j<30;j+)if(!in.eof() in.read(char *)&bj,sizeof(class message);elsetemp = j-1;break;cout<<"文件内保存的信息有:"<<endl; /输出文件内的人员信息cout<<"姓名 地址 职务 部门 身份证号 工号 工资 "<<endl;for(j=0;j<temp;j+)bj.put();in.close(); fstream sp("wenjian.txt",ios:in|ios:out);for(j=0;j<30;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); cout<<"请输入要删除人员信息的名字:" cin>>ming; cout<<endl; for(j=0,i=0;i<temp;i+) if(strcmp(bi.name,ming)=0)/标记要删除的信息 flag=i; if(flag=-1)cout<<"没有要删除的信息。"<<endl;return 0; for(j=0,i=0;i<temp,j<temp-1; )/删除信息if(flag!=i)aj=bi;i+;j+;elsei+;ap.close();ofstream np("wenjian.txt");for(i=0;i<temp-1;i+)np.write(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;j<30;j+)if(!sp.eof() sp.read(char *)&bj,sizeof(class message); /打开文件elsetemp = j-1;break; sp.close(); cout<<"输入要修改人的名字:"cin>>ming;cout<<endl; cout<<"原文件信息是:"<<endl;for(i=0;i<temp;i+) /输出文件内保存的信息if(strcmp(bi

    注意事项

    本文(企业工资管理系统课程设计.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开