企业人事管理系统实验报告.doc_第1页
企业人事管理系统实验报告.doc_第2页
企业人事管理系统实验报告.doc_第3页
企业人事管理系统实验报告.doc_第4页
企业人事管理系统实验报告.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

面向对象程序设计课程设计报告 企业人事管理系统 目录一、 软件需求分析二、 总体方案设计三、 详细设计四、 程序的调试与运行结果说明五、 课程设计总结六、 附录 一、软件需求分析一、需求分析1、 实现人员信息的增、删、改操作,并实现按姓名、工号进行查询功能,按照部门、工资统计、排序功能能够实现人员的部门间的调动功能2、 源文件采用多文件的工程结构3、 数据存储采用多文件形式4、 标准的C+输入输出二、 操作手册运行程序后,按1键进入系统,要实现多种操作只需按照功能菜单上的提示输入相应的数字选择即可 二、总体方案设计一、系统总共能模块显示记录查找记录 按编号按姓名按编号按姓名追加信息新建记录按编号按姓名企业人员信息表企业人员信息表二、定义的函数及说明void deldate() /删除指定的单个员工的资料void adperson() /将输入的资料赋值给相映的数据void pprintn() /输出所有员工的资料people *query() /将系统中的编号与输入的编号比较people *qu() /将系统中的姓名与输入的姓名比 void disp() /输出所有员工的资料void disp2() /输出指定的单个员工的资料void peopledata(); /主要功能实现函数void main() /主函数void jiemian1() /界面1,进入程序时输出void jiemian3() /界面3,程序结束后输出qiye() /qiye类的构造函数三、 详细设计以下为我完成的具体功能函数及函数的详细分析和所用算法:1、 void deldate()函数该函数是删除指定的单个员工的资料,以后在其他程序模块如删除、修改等都需要调用void deldate() kg=1;2、void adperson()函数该函是数将输入的资料赋值给相映的数据void people:addperson(int b,int a,long int t,char *na,char *dizhi,char *zhiwei) kg=0; bh=b; strcpy(name,na); strcpy(adr,dizhi); strcpy(duty,zhiwei); ID_num=a; salary=t;3、void pprintn()函数该函数是输出所有员工的资料的函数在如查询、修改等功能模块中通过调用该函数可实现显示所有员工资料的功能void pprintn() if(Getkg()=0) coutsetw(10)bhsetw(10)namesetw(10)ID_numsetw(10)dutysetw(15)salarysetw(15)adrendl;4、 people *query()函数该函数实现的是将系统中的编号与输入的编号比较功能在新增、删除和修改模块中调用该函数可实现判断该员工是否已经存在而在查询模块在调用该函数可实现在已存在的记录中查找该成员的作用people *query(int personid) for(int i=0;i=top;i+) if(mani.GetNo()=personid&mani.Getkg()=0) return &mani;in=i; return NULL; 5、people *qu()函数该函数实现的是将系统中的姓名与输入的姓名比较功能在新增、删除和修改模块中调用该函数可实现判断该员工是否已经存在而在查询模块在调用该函数可实现在已存在的记录中查找该成员的作用people *qw(char na) for(int i=0;i=top;i+) if(strcmp(mani.GetName(),na)=0&mani.Getkg()=0) return &mani;in=i; return NULL; 5、 void disp()函数该函数在新增模块中使用,该函数通过循环判断输出所有员工资料void disp() for(int i=0;i=top;i+) if(mani.Getkg()=0) if(i%5=0) coutendl; mani.pprintn(); 6、 void disp2()函数输出指定的单个员工的资料void disp2() coutendl; manin.pprintn(); 7、void peopledata();函数该函数为菜单函数,通过此函数进行相应的操作,首先按1键进入功能菜单界面,然后进行6种选择,6退出;1新增职工的信息(1、新建;2、增加);2显示员工信息;3查找员工信息(1、按姓名;2、按编号);4修改员工信息(1、按姓名;2、按编号);5删除员工信息(1、逐个删除2、全部删除);void qiye:peopledata()/对qiye类的成员函数peopledata的类外声名char choice=0; char ch,peoplen20,addr40,dutyt30; int worherbh; int m; int k; people *w;while(choice!=6)coutendlendl; cout 菜单 endl; coutendl; cout 1:新增endl; cout 2:显示endl; cout 3:查找endl; cout 4:修改endl; cout 5:删除endl; cout 6:退出endl; coutendlchoice;if(choice=6) /clear();break; switch(choice)case 1: char ch1;system(cls); coutendlt欢迎进入新增系统!endlendl; cout1.新建endlendl; cout2.增加endlendl; coutendlch1;if(ch1=1)char chi; cout确定新建?(Y/N)chi; switch(chi) case Y|y:clear(); break; case N|n:goto loop_1b; default:cout输入错误,请重新输入!endl; goto loop_1i; if(ch1!=1&ch1!=2)cout输入错误,请重新输入!endl;goto loop_1;dodocoutendl请输入员工编号:worherbh; w=query(worherbh);if(w!=NULL)cout错误:该编号资料已存在,请重新输入。endl;while(w!=NULL);cout请输入员工姓名:peoplen; cout身份证号:m; cout职位:dutyt; cout工资:k; cout籍贯:addr; addperson(worherbh,m,k,peoplen,addr,dutyt); coutch;while(ch=y|ch=Y);loop_1b:break;case 2:coutendlsetw(11)所有员工资料:endlendl; coutsetw(10)编号setw(10)姓名setw(10)身份证号setw(10)职位setw(15)工资setw(15)籍贯endl; disp(); coutendl;break; case 3:char xz3; char na10;docoutendl; system(cls); coutt欢迎进入查询系统!endlendl; cout1.按编号查找:endl; cout2.按姓名查找:endl; cout请输入相应的数字选择:xz3;switch(xz3)case 1:coutworherbh; w=query(worherbh);if(w=NULL)cout该员工不存在!endlendl;break;coutendlsetw(11)所找员工资料:endlendl; coutsetw(10)编号setw(10)姓名setw(10)身份证号setw(10)职位setw(15)工资setw(15)籍贯pprintn(); coutendl;break; case 2:coutna; w=qu(na);if(w=NULL)cout该员工不存在!endlendl;break;coutendlsetw(11)所找员工资料:endlendl; coutsetw(10)编号setw(10)姓名setw(10)身份证号setw(10)职位setw(15)工资setw(15)籍贯pprintn(); coutendl;break;default:cout输入错误,请重新输入!endl;goto loop_3; cout是否还要继续查找(Y/N):endlch;while(ch=y|ch=Y);break;case 4:char choice,peoplen10;docoutendl; system(cls); coutt欢迎进入修改系统!endl; coutendl;loop_4:cout1.按员工编号修改:endl; cout2.按员工姓名修改:endl; coutchoice;switch(choice)case 1:coutworherbh; w=query(worherbh);if(w=NULL)cout该员工资料不存在!pprintn(); w-deldate();dodocoutendl请输入新员工编号:worherbh; w=query(worherbh);if(w!=NULL)cout该编号资料已存在,请重新输入。endl;while(w!=NULL);cout请输入员工姓名:peoplen; cout身份证号:m; cout职位:dutyt; cout工资:k; cout籍贯:addr; addperson(worherbh,m,k,peoplen,addr,dutyt); coutch;while(ch=y|ch=Y);break;case 2:coutpeoplen; w=qw(peoplen);if(w=NULL)cout该员工资料不存在!pprintn(); w-deng();dodocoutendl请输入员工新编号:worherbh; w=query(worherbh);if(w!=NULL)cout该编号资料已存在,请重新输入.endl;while(w!=NULL);cout请输入员工姓名:peoplen; cout身份证号:m; cout职位:dutyt; cout工资:k; cout籍贯:addr; addperson(worherbh,m,k,peoplen,addr,dutyt); coutch;while(ch=y|ch=Y);default:cout输入错误,请重新输入!endl; goto loop_4;coutch; coutendl;while(ch=y|ch=Y);break;case 5:char xz5;system(cls); coutt欢迎进入删除系统!endl; cout1.逐个删除.endl; cout2.全部删除.endl; cout请输入选择:xz5;switch(xz5)case 1:coutworherbh; w=query(worherbh);if(w=NULL)cout该员工资料不存在!deldate(); cout删除成功endl; break; case 2: char xz52; cout确定删除(Y/N)?xz52;switch(xz52)case Y|y:cout删除成功.endl; clear(); break; case N|n: cout不删除!endl; break;default:cout输入错误,请重新输入!endl; goto loop_52;break;default:cout:输入错误,请重新输入!endl; goto loop_5;break;default:cout输入错误,请重新输入!endl; goto loop_0;8、void jiemian1()函数界面1,进入程序时输出void jiemian1() coutendl; cout 欢迎使用人事管理系统endlendl; coutendl; cout 请按1键进入系统endlendl; /cout T:退出系统endlendl; coutnnnn; 9、void jiemian3()函数界面3,程序结束后输出void jiemian3() coutendlendl; cout 输入任意键退出; do exit(0); while(1); 10、qiye()函数qiye类的构造函数,将文件以输入的方式打开,用s给所有员工资料赋初值,并且实现关闭文件的作用qiye:qiye()people s; top=-1; fstream file(people.dat,ios:in);while(1)file.read(char *)&s,sizeof(s);if(!file)break;top+; mantop=s; file.close();11、qiye()函数qiye类的析构函数,作用:释放空间,并将数据存入文件中qiye() fstream file(people.dat,ios:out); for(int i=0;i=top;i+) if(mani.Getkg()=0) file.write(char *)&mani,sizeof(mani); file.close(); 四、程序的运行结果及说明1、运行程序后可如界面显示输入1后进入系统2、进入系统可如图显示菜单界面可通过数字选择进行相应的操作,例如选择1进行公司人员信息的录入3、按1进入新增系统后如图所示可选择1、新建2、增加,新建将删除原有记录4、选择1确认新建再输入员工信息,如图所示5、退出新建按2进入增加选项输入员工信息6、退出增加,进入菜单界面,选择2,显示所有员工信息五、课程设计总结本次课设基本上满足了题目的要求,比如说修改及删除职工信息等功能都能实现,但从实验中我仍然发现了自己的许多不足之处,例如审题不清、逻辑混乱、程序可读性较差等问题。通过这次课设,不管是在动手能力还是在程序理解能力上我都得到了很大的提高,我很高兴可以学到如此多的知识,总的来说,这次课设对我来说还是相当成功的六、附录全部代码#include stdafx.h#include#include #include #include #include class people/员工类char name5;int kg;int bh;int salary; int ID_num; char adr15; char duty10;public:people() char *GetName()return name; int Getkg()return kg; int GetNo()return bh; int Getsalary()return salary; int GetID_num()return ID_num; char *GetAdr()return adr; char *Getduty()return duty; void SetNum(int num)bh=num; void SetID_num(int pxid)pxid=ID_num; void SetName(char na) strcpy(name,na); void SetAdr(char dizhi) strcpy(adr,dizhi); void Setduty(char zhiwei) strcpy(duty,zhiwei); void deldate() kg=1; void addperson(int b,int a,long int t,char *na,char *dizhi,char *zhiwei);void printw() coutsetw(10)编号setw(10)姓名setw(10)身份证号setw(10)职位setw(15)工资setw(15)籍贯endl; void pprintn() if(Getkg()=0) coutsetw(10)bhsetw(10)namesetw(10)ID_numsetw(10)dutysetw(15)salarysetw(15)adrendl; ;void people:addperson(int b,int a,long int t,char *na,char *dizhi,char *zhiwei) kg=0; bh=b; strcpy(name,na); strcpy(adr,dizhi); strcpy(duty,zhiwei); ID_num=a; salary=t;class qiye/ qiye类int top,in; people man1000;public:qiye();void clear()top=-1; int addperson(int n,int m,int k,char *na,char *dizhi,char *zhiwei) people *p=query(n),*q=query(m),*j=query(k); if(p=NULL) top+; mantop.addperson(n,m,k,na,dizhi,zhiwei); return 1; return 0; people *query(int personid) for(int i=0;i=top;i+) if(mani.GetNo()=personid&mani.Getkg()=0) return &mani;in=i; return NULL; people *qu(char na) for(int i=0;i=top;i+) if(strcmp(mani.GetName(),na)=0&mani.Getkg()=0) return &mani;in=i; return NULL; people *qw(char na) for(int i=0;i=top;i+) if(strcmp(mani.GetName(),na)=0&mani.Getkg()=0) return &mani;in=i; return NULL; people *pq(int qxid) for(int i=0;i=top;i+) if(mani.GetID_num()=qxid&mani.Getkg()=0) coutendl; mani.pprintn(); return NULL; people *qp(char zhiwei) coutendlsetw(11)所找员工资料:endlendl; coutsetw(10)编号setw(10)姓名setw(10)身份证号setw(10)职位setw(15)工资setw(15)籍贯endl; for(int i=0;i=top;i+) if(strcmp(mani.Getduty(),zhiwei)=0&mani.Getkg()=0) coutendl; mani.pprintn(); return NULL; void disp() for(int i=0;i=top;i+) if(mani.Getkg()=0) if(i%5=0) coutendl; mani.pprintn(); void disp2() coutendl; manin.pprintn(); void jiemian1() coutendl; cout 欢迎使用人事管理系统endlendl; coutendl; cout 请按1键进入系统endlendl; /cout T:退出系统endlendl; coutnnnn; void jiemian3() coutendlendl; cout 输入任意键退出; do exit(0); while(1); void peopledata(); qiye() fstream file(people.dat,ios:out); for(int i=0;i=top;i+) if(mani.Getkg()=0) file.write(char *)&mani,sizeof(mani); file.close(); ;qiye:qiye()people s; top=-1; fstream file(people.dat,ios:in);while(1)file.read(char *)&s,sizeof(s);if(!file)break;top+; mantop=s; file.close();void qiye:peopledata()char choice=0; char ch,peoplen20,addr40,dutyt30; int worherbh; int m; int k; people *w;while(choice!=6)coutendlendl; cout 菜单 endl; coutendl; cout 1:新增endl; cout 2:显示endl; cout 3:查找endl; cout 4:修改endl; cout 5:删除endl; cout 6:退出endl; coutendlchoice;if(choice=6) /clear();break; switch(choice)case 1: char ch1;sy

温馨提示

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

评论

0/150

提交评论