• 184.50 KB
  • 21页

c++项目报告之高校人事管理系统

  • 21页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'XXXXX商店仓库管理系统C++课程项目设计说明书项目名称:高校人事管理系统班级:生物技术201103班项目组长:王美庭项目成员:王田、喻易、谭继鹏、霍擎、杨锏王美庭指导教师:叶涛完成日期:2012-06-26成绩:2 高校人事管理系统目录11项目(高校人事管理系统)需求分析11.1项目目标11.2系统主要功能概述11.3可行性分析11.4项目运行环境22项目(高校人事管理系统)设计32.1概要设计32.2详细设计32.3项目命名约定52.4项目分工表52.5项目进度表53项目(高校人事管理系统)功能介绍64项目(高校人事管理系统)功能测试65项目使用说明66项目(系统)总结77程序源代码719 高校人事管理系统1项目(高校人事管理系统)需求分析1.1项目目标1.开发一个高校人事管理系统,修改以前该系统的不足,提高系统的运作效率。1.2系统主要功能概述1.高校人事管理系统模块(系统流程图)高校人事管理系统删除人员信息增加人员资料选择要进行的操作12查询人员信息修改人员信息34数据存盘数据装入56退出显示所有信息871.3可行性分析1.系统/技术可行性:windows安装了VC+6.0即可运行。2.使用可行性采用简单的GUI界面,用户经过短期培训即可方便使用系统。19 高校人事管理系统1.4项目运行环境CPU奔腾Ⅳ1.4G或以上内存512M或以上硬盘80GB或以上服务器端OSWindows2000/NT/Server客户端OSWindows2000/XP网络配置局域网19 高校人事管理系统2项目(高校人事管理系统)设计2.1概要设计设计一个person和school的类,再结合main函数实现搞笑人事管理系统的功能,大致模块如下:高校人事管理系统修改功能删除功能添加功能查询功能数据存盘与装入功能显示功能2.2详细设计UML图类名:person私有成员变量:Intno,chartype[20],charname[20],charsex[10],intage,chartime[20],charpos[20],chartechpos[20],charparty[20],charstudy[30]person*mynext公有成员函数:person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime[],charnpos[],charntechpos[],charnparty[],charnstudy[]),person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime[],charnpos[],charntechpos[],charnparty[],charnstudy[],person*next)voidsetnext(person*next),person*getnext(),intgetnum(),char*getname(),char*getsex(),char*getpos(),char*gettechpos(),char*gettime(),char*getparty(),char*getstudy(),intgetage(),voidgetag(intas),char*gettype()。19 高校人事管理系统类名:school私有成员变量:person*myfirst,intfirstnum。公有成员函数:School(),School(intnnu,charntyp[],charnnam[],charnse[],intnag,charntim[],charnpo[],charntechpo[],charnpart[],charnstud[]),voidinsertatlast(intnnum,charntype[],charnname[],charnsex[],intnage,charntime[],charnpos[],charntechpos[],charnparty[],charnstudy[]),voidprintf(intr),voidprintf1(person*ahead),voidprintf(),voidadd(),boolremovedatnum(),boolfind1(),boolfind2(),boolupperson(),voidload(),voidsave(),~School()。19 高校人事管理系统2.3项目命名约定类名:大写字母开头如:School类属性:采用匈牙利命名法(即第一个字母小写并表明数据类型)如:int变量:采用匈牙利命名法(即第一个字母小写并表明数据类型)如:c2.4项目分工表姓名分配任务/完成的功能模块备注(贡献度,设总分为60分)喻易人事管理系统资料的收集,让对该系统不熟的同学增加对其的了解,并协助霍擎进行类的定义。10霍擎类的主编(person和school类)10王田负责人事成员的信息输入,及对合并后运行时出现的一些问题进行修改和完善10谭继鹏main函数主编10杨锏对cpp文件进行存储模式的改编,即在系统运行中可对输入内容存储或者对已有文件的信息进行提取。10王美庭word文档的初编和终编。102.5项目进度表6月15日~20日互相学习,C++不熟练的同学帮助基础差一点的同学,以及本身C++的全面复习6月21日项目讨论以及做项目需求分析,功能分析。项目概要设计,确定分工6月22日~24日项目详细设计,编写文档初稿、创建数据,编写CPP文件6月25日合并,部分功能测试和进行一些问题的修改。整体测试并整合出最终的CPP文件6月26日文档编写、增添修改,形成最终文档。19 高校人事管理系统3项目(高校人事管理系统)功能介绍添加功能:实现对新成员的添加。删除功能:对离校成员信息的清楚。修改功能:对于在校人员信息的变更加以补充和消减,创建最新信息!查询功能:实现对在校人员信息的提取。数据存盘与装入功能:对以上信息的变更加以存储,实现下一次信息的调用。显示功能:VC+6.0运行屏幕即可显示。4项目(高校人事管理系统)功能测试最主要是1,同学基础还不牢固,在编程时出现了各种小的问题和疑惑,在之后经再次书本复习和网上查阅,解决了大部分问题。2.合并时变量不同而出现了问题,后面经变量的修改实现统一化后,解决了问题。5项目使用说明运行程序后,选择1-8操作中的一种。选1,增加人员资料。需输入编号、职工分类码、姓名、性别、年龄、来院时间、职务、职称、加入党派、学历。选2,删除人员信息。输入要删除人员的编号。假如此人员存在,会输出“编号为**的成员已被删除”假如人员不存在,会输出“要删除的成员不存在!”选3,修改人员信息。输入要修改人员的编号,假如此人员存在,需要选择要修改的内容,包括姓名、性别、年龄、职工类型、职务、职称、学历、政治面貌、来院时间。假如人员不存在,输出“没有此人”。选4,查询人员信息。要选择查询的方式。1通过编号,2通过姓名。选1,输入要查的编号。假如此人员存在,会输出要相关人员信息。假如人员不存在,会输出“无此人信息:”选2,输如要查的姓名。假如此人员存在,会输出要相关人员信息。假如人员不存在,会输出“查无此人:”。选5,数据存盘。会自动存盘,并输出“**人员和相关数据已经装入.....”。选6,数据装入。会自动装入数据,并输出“保存数据已完成”。选7,显示所有信息。会输出系统所存的所有员工的各项信息。选8,退出。19 高校人事管理系统6项目(系统)总结通过程序设计,我们能够基本掌握C++程序设计的方法,并且在此基础上掌握类的构造方法,明确类中构造函数、成员函数的建立以及调用,并且,结合C++中字符串函数的编译系统给定的库函数,采用一定的逻辑编译,实现题目中要求的各项要求,达到基本实验目的,提高了团队的C++语言使用水平。另外,最重要的是,我们在其中收获了团队协作精神,每个人都互相努力和协作,最终使我们的任务得以完成!7程序源代码#include#include#include#includeclassperson{private:intno;//编号chartype[20];//职工类型charname[20];//姓名charsex[10];//性别intage;//年龄chartime[20];//来院时间charpos[20];//职务chartechpos[20];//职称charparty[20];//党派charstudy[30];//最高学历person*mynext;//指针语public:person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime[],charnpos[],charntechpos[],charnparty[],charnstudy[]){no=nnum;strcpy(type,ntype);//将ntype的值复制给typestrcpy(name,nname);strcpy(sex,nsex);age=nage;strcpy(time,ntime);strcpy(pos,npos);strcpy(techpos,ntechpos);strcpy(party,nparty);19 高校人事管理系统strcpy(study,nstudy);mynext=NULL;}person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime[],charnpos[],charntechpos[],charnparty[],charnstudy[],person*next)//某高校,主要人员有:在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。//现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、来院时间。{no=nnum;strcpy(type,ntype);strcpy(name,nname);strcpy(sex,nsex);age=nage;strcpy(time,ntime);strcpy(pos,npos);strcpy(techpos,ntechpos);strcpy(party,nparty);strcpy(study,nstudy);mynext=next;}voidsetnext(person*next){mynext=next;}person*getnext(){returnmynext;}intgetnum(){returnno;}char*getname(){returnname;}char*getsex(){returnsex;19 高校人事管理系统}char*getpos(){returnpos;}char*gettechpos(){returntechpos;}char*gettime(){returntime;}char*getparty(){returnparty;}char*getstudy(){returnstudy;}intgetage(){returnage;}voidgetag(intas){age=as;}char*gettype(){returntype;}};classSchool{private:person*myfirst;intfirstnum;public:School()//无参构造函数{myfirst=NULL;//将指针置空19 高校人事管理系统}School(intnnu,charntyp[],charnnam[],charnse[],intnag,charntim[],charnpo[],charntechpo[],charnpart[],charnstud[])//有参构造函数{myfirst=newperson(nnu,ntyp,nnam,nse,nag,ntim,npo,ntechpo,npart,nstud);}//在信息最后添加新的信息voidinsertatlast(intnnum,charntype[],charnname[],charnsex[],intnage,charntime[],charnpos[],charntechpos[],charnparty[],charnstudy[]){person*next=myfirst;//定义对象指针并付初值if(next==NULL)myfirst=newperson(nnum,ntype,nname,nsex,nage,ntime,npos,ntechpos,nparty,nstudy);else{while(next->getnext()!=NULL)next=next->getnext();next->setnext(newperson(nnum,ntype,nname,nsex,nage,ntime,npos,ntechpos,nparty,nstudy,next->getnext()));}}voidprintf(intr)//获取信息{intnage;charntype[20],nname[20],nsex[20],ntime[20],npos[20],ntechpos[20],nparty[20],nstudy[20];cout<<"请输入编号为"<>ntype;cout<<"输入姓名:"<>nname;cout<<"输入性别:"<>nsex;cout<<"输入年龄:"<>nage;cout<<"输入来院时间:"<>ntime;cout<<"输入职务[无,科级,处级,地级]:"<>npos;cout<<"输入职称[无,初级,中级,高级]:"<>ntechpos;cout<<"输入加入党派[群众,中共党员,民主党派]:"<>nparty;cout<<"输入学历[小学,初中,高中,大专,大学,硕士,博士]:"<>nstudy;insertatlast(r,ntype,nname,nsex,nage,ntime,npos,ntechpos,nparty,nstudy);}voidprintf1(person*ahead)//输出信息{cout<<"编号:"<getnum()<<"姓名:"<getname()<getsex()<<"年龄:"<getage()<gettype()<<"职务:"<getpos()<gettechpos()<<"学历:"<getstudy()<getparty()<<"来院时间:"<gettime()<getnum()<getname();cout<getsex()<getage();cout<gettype()<getpos();19 高校人事管理系统cout<gettechpos()<getstudy();cout<getparty()<gettime()<getnext();}}voidadd()//添加新信息{inti,a,b;person*p1=myfirst;if(p1==NULL){cout<<"请输入编号:";cin>>i;printf(i);}else{if(p1->getnext()==NULL)//如果p1的后继指针为空,则执行“printf(a)”{a=p1->getnum()+1;printf(a);}else{while(p1->getnext()!=NULL)//p1的后继指针不为空,则执行“printf(b)”{p1=p1->getnext();}b=p1->getnum()+1;printf(b);}}}boolremovedatnum()//删除信息{intbh;person*ahead=myfirst;person*follow=ahead;cout<<"请输入要删除人员的编号:";19 高校人事管理系统cin>>bh;if(ahead==NULL)returnfalse;elseif(ahead->getnum()==bh){myfirst=myfirst->getnext();cout<<"编号为"<getnext();while(ahead!=NULL){if(ahead->getnum()==bh){follow->setnext(ahead->getnext());cout<<"编号为"<getnext();}cout<<"要删除的成员不存在!"<>id;cout<<"**********************************"<getnum()==id){printf1(ahead);returntrue;}else{follow=ahead;ahead=ahead->getnext();}}cout<<"无此人信息:"<>nm;cout<<"**********************************"<getname(),nm)==0){printf1(ahead);returntrue;}else{19 高校人事管理系统follow=ahead;ahead=ahead->getnext();}}cout<<"查无此人:"<>iid;if(ahead==NULL){cout<<"无人员信息"<getnum()==iid){printf1(ahead);intnu=-1;for(inti=1;nu!=0;i++){intml;intmll;charty[30];cout<<"请选择要修改的内容:"<>ml;switch(ml){case1:{cout<<"请输入姓名:";19 高校人事管理系统cin>>ty;strcpy(follow->getname(),ty);};break;case2:{cout<<"请输入性别:";cin>>ty;strcpy(ahead->getsex(),ty);};break;case3:{cout<<"请输入年龄:";cin>>mll;ahead->getag(mll);};break;case4:{cout<<"请输入职工类型:";cin>>ty;strcpy(ahead->gettype(),ty);};break;case5:{cout<<"请输入职务:";cin>>ty;strcpy(ahead->getpos(),ty);};break;case6:{cout<<"请输入职称:";cin>>ty;strcpy(ahead->gettechpos(),ty);};break;case7:{cout<<"请输入学历:";cin>>ty;strcpy(ahead->getstudy(),ty);};break;case8:{cout<<"请输入政治面貌:";cin>>ty;19 高校人事管理系统strcpy(ahead->getparty(),ty);};break;case9:{cout<<"请输入来院时间:";cin>>ty;strcpy(ahead->gettime(),ty);};break;}returntrue;}}else{ahead=ahead->getnext();follow=ahead;}}cout<<"没有此人"<>nnum>>ntype>>nname>>nsex>>nage>>ntime>>npos>>ntechpos>>nparty>>nstudy;insertatlast(nnum,ntype,nname,nsex,nage,ntime,npos,ntechpos,nparty,nstudy);}fperson.close();cout<<"n人员和相关数据已经装入.....n";}voidsave()//保存文件到文件中{19 高校人事管理系统ofstreamfperson;fperson.open("person.txt",ios::out);person*p=myfirst;while(p){fperson<getnum()<<"t"<gettype()<<"t"<getname()<<"t"<getsex()<<"t"<getage()<<"t"<gettime()<<"t"<getpos()<<"t"<gettechpos()<<"t"<getparty()<<"t"<getstudy();fperson<getnext();}fperson.close();cout<<"保存数据已经完成"<getnext();deletetemp;}myfirst=NULL;}};voidmain(){Schools;//定义对象intc;do{cout<<"**************************************************"<>c;switch(c){case1:s.add();break;case2:s.removedatnum();break;case3:s.upperson();break;case4:{intnm;cout<<"1-通过编号。2-通过姓名。请选择:";cin>>nm;if(nm==1)s.find1();elses.find2();};break;case5:s.save();break;case6:s.load();break;case7:s.printf();break;}}while(c!=8);}<完>19'