1、高校人事管理系统c样本面向对象设计办法C+ 课 程 设 计 高校人事管理系统 11计算机科与技术2班 信息工程学 院 计算机科学与技术 系 5 月 日面向对象设计办法C+课程设计任务分派院(系):信息工程学院 教研室:软件教研室课程设计题目高校人事管理系统课 程 设 计目(1)规定学生达到纯熟掌握C+语言基本知识和技能; (2)基本掌握面向对象程序设计基本思路和办法; (3)可以运用所学基本知识和技能,解决简朴面向对象程序设计问题。 (4)训练用系统观点和软件开发普通规范进行软件开发,并在此过程中培养严谨科学态度和良好工作作风。初步掌握软件开发过程问题分析、系统设计、程序编码、测试等基本办法和
2、技能。(5)纯熟掌握C+中类及类模板在程序中应用,并纯熟理解类中函数调用。小构成员及任务分派姓名学号承担任务与否组长 第一章需求分析高校人事管理,高校在有职人员(行政人员、教师、普通员工)、退休人员、返聘人员和暂时工。当前,需要存储这些人员人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。规定: 1) 添加删除功能:能依照学院人事变动状况,添加删除记录;2) 查询功能:能依照编号和姓名进行查询;3) 编辑功能(高档):依照查询对相应记录进行修改,并存储;4) 记录功能:能依照各种参数进行人员记录(在职人数、党员人数、女工人数、高学历高职称人数);5) 保
3、存功能:能对输入数据进行相应存储,规定重载插入和提取符以完毕数据保存和打开。6) 人员编号在生成人员信息时同步生成,每输入一种人员信息编号顺序加1。第二章 总体设计2.1系统功能模块2.2类之间关系 定义了8个类,分别为人员类(personnel类),暂时工类(casuallaborer类),进入时间类(cometime类),在职人员类(incumbency类),退休时间类(retiretime类),退休人员类(retiree类),返聘时间类(retime类),返聘人员类(returnee类)等。同步又定义一种school类,在里面实现数据添加、删除、修改、查找、显示和退出。 第三章 各功能模
4、块实现3.1 模块实现及代码删除功能:#include1.hschool:dele() extern int I,J,K,Z; int i; int number; int a; system(cls);A: coutwelcomeendl; coutt 【1】按编号删除 endl; coutt 【0】返回 n ; couta; switch(a) case 1:coutnumber; for(i=0;iJ;i+) if(incumbi.getnumber2()-number=0) coutincumbi.incumbencyprint()被删除endl; for(i;iJ;i+) incum
5、bi=incumbi+1; J-; for(i=0;iK;i+) if(retii.getnumber3()-number=0) coutretii.retireeprint()被删除endl; for(i;iK;i+) retii=retii+1; K-; for(i=0;iZ;i+) if(returi.getnumber4()-number=0) coutreturi.returneeprint()被删除:endl; for(i;iZ;i+) returi=returi+1; Z-; goto A; case 0:break; 添加功能:#include1.hschool:add() i
6、nt a; extern int I,J,K,Z;A: coutwelcomeendl; coutt 【1】添加暂时工信息 endl; coutt 【2】添加在职工工信息 endl; coutt 【3】添加退休人员信息 endl; coutt 【4】添加人员信息 endl; coutt 【0】返回 n ; couta; switch(a) case 1: casuallI. setcasuallaborer(); I+; goto B; case 2: incumbJ.setincumbency(); J+; goto B; case 3: retiK.setretiree(); K+; go
7、to B; case 4: returZ.setreturnee(); Z+; goto B; case 0:break; default:cout选取有误,请重新选取!;goto A;记录功能:#include1.hschool:tongji() extern int I,J,K,Z; int a; int i=0; system(cls);A:int j=0; coutwelcomeendl; coutt 【1】在职人员数记录 endl; coutt 【2】党员人数记录 endl; coutt 【3】女工人数记录 endl; coutt 【4】博士生人数记录 endl; coutt 【0】
8、返回 endl; couta; switch(a) case 1:for(i=0;iJ;i+) incumbi.incumbencyprint(); for(i=0;iZ;i+) returi.returneeprint(); j=J+Z; cout在职人数为:jendl;goto A; case 2:for(i=0;iJ;i+) if(strcmp(incumbi.getparty2(),党员)=0) incumbi.incumbencyprint(); j+; for(i=0;iK;i+) if(strcmp(retii.getparty2(),党员)=0) retii.retireepr
9、int(); j+; for(i=0;iZ;i+) if(strcmp(returi.getparty2(),党员)=0) returi.retimeprint(); j+; cout党员人数为:jendl;goto A; case 3:for(i=0;iI;i+) if(strcmp(casualli.getsex(),女)=0) casualli.casuallaborerprint(); j+; for(i=0;iJ;i+) if(strcmp(incumbi.getsex(),女)=0) incumbi.incumbencyprint(); j+; for(i=0;iK;i+) if(
10、strcmp(retii.getsex(),女)=0) retii.retireeprint(); j+; for(i=0;iZ;i+) if(strcmp(returi.getsex(),女)=0) returi.retimeprint(); j+; cout女员人数为:jendl;goto A; case 4:for(i=0;iJ;i+) if(strcmp(incumbi.getstudy2(),博士生)=0) incumbi.incumbencyprint(); j+; for(i=0;iK;i+) if(strcmp(retii.getstudy3(),博士生)=0) retii.r
11、etireeprint(); j+; for(i=0;iZ;i+) if(strcmp(returi.getstudy4(),博士生)=0) returi.retimeprint(); j+; cout博士生人数为:jendl;goto A; default:cout选取有误,请重新选取:;goto A; case 0:break; 编辑功能:#include1.hschool:push() extern int I,J,K,Z; int e;B:system(cls); coutwelcomeendl; coutt 【1】录入暂时工信息 endl; coutt 【2】录入在职工工信息 end
12、l; coutt 【3】录入退休人员信息 endl; coutt 【4】录入返聘人员信息 endl; coutt 【0】返回 n ; coute; switch(e) case 1: casuallI. setcasuallaborer(); I+; goto B; case 2: incumbJ.setincumbency(); J+; goto B; case 3: retiK.setretiree(); K+; goto B; case 4: returZ.setreturnee(); Z+; goto B; case 0:break; default:cout选取有误,请重新选取!;g
13、oto A; 查询功能:#include1.hvoid chose() coutwelcomeendl; coutt 【1】姓名查找 endl; coutt 【2】编号查找 endl; coutt 【0】返回 n ; cout从0-2中选取功能项:;school:find() int a; int i; extern int I,J,K,Z; char name20; int number;E: int j=0; system(cls); coutwelcomeendl; coutt 【1】模糊查找 endl; coutt 【2】在职工工中查找 endl; coutt 【3】退休人员中查找 e
14、ndl; coutt 【4】返聘人员中查找 endl; coutt 【0】返回 n ; couta; switch(a) case 1:chose();A:cina; switch(a) case 1:coutname; for(i=0;iI;i+) if(strcmp(casualli.getname(),name)=0) j+; incumbi.incumbencyprint(); for(i=0;iJ;i+) if(strcmp(incumbi.getname2(),name)=0) j+; incumbi.incumbencyprint(); for(i=0;iK;i+) if(str
15、cmp(retii.getname3(),name)=0) j+; retii.retireeprint(); for(i=0;iZ;i+) if(strcmp(returi.getname4(),name)=0) j+; returi.returneeprint(); if(j=0) cout没有找到该人:endl; goto A; case 2:coutnumber; for(i=0;iJ;i+) if(incumbi.getnumber2()-number=0) j+; incumbi.incumbencyprint(); for(i=0;iK;i+) if(retii.getnumbe
16、r3()-number=0) j+; retii.retireeprint(); for(i=0;iZ;i+) if(returi.getnumber4()-number=0) j+; returi.returneeprint(); if(j=0) couta; switch(a) case 1:coutname; for(i=0;iJ;i+) if(strcmp(incumbi.getname2(),name)=0) j+; incumbi.incumbencyprint(); if(j=0) cout没有找到该人:endl; goto B; case 2:coutnumber; for(i
17、=0;iJ;i+) if(incumbi.getnumber2()-number=0) j+; incumbi.incumbencyprint(); if(j=0) cout没有此编号人; goto B; default:couta; switch(a) case 1:coutname; for(i=0;iK;i+) if(strcmp(retii.getname3(),name)=0) j+; retii.retireeprint(); if(j=0) cout没有找到该人:endl; goto C; case 2:coutnumber; for(i=0;iK;i+) if(retii.ge
18、tnumber3()-number=0) j+; retii.retireeprint(); if(j=0) cout没有此编号人; goto C; default:couta; switch(a) case 1:coutname; for(i=0;iZ;i+) if(strcmp(returi.getname4(),name)=0) j+; returi.returneeprint(); if(j=0) cout没有找到该人:endl; goto D; case 2:coutnumber; for(i=0;iZ;i+) if(returi.getnumber4()-number=0) j+;
19、 returi.returneeprint(); if(j=0) cout没有此编号人; goto D; default:cout输入有误,请重新输入:;goto D; case 0:goto E; case 0:break; default:cout输入有误,请重新输入:;goto E; 3.2 运营成果开始菜单界面: 添加人员信息界面:记录人员信息界面:人员信息查找界面:人员信息删除界面:人员修改界面:第四章 系统调试系统调试:1.在建立全局变量时,无法正常使用,后添加extern才实现功能使用。通过对程序调试,发现诸多问题只有通过调试后来才干被找到和发现,才干更好美化和优化,是程序看起来
20、更完美,让使用者更放心第五章 总结与体会通过本次课程设计,让我对C+这门学科对有了进一步结识,纯熟掌握了类及类模板应用。此前对该课程恐惊感都以消失,任何事情没有做不到只有愿不乐意去做。刚开始接到该题,心中的确布满困惑。但是在图书馆和网上找了某些资料看了后,便觉得思路就在眼前了,之前但是就是由于对该课程恐惊而产生了一定心里影响而已。之后凭借那闪当前眼前点点思路,慢慢在揣摩,终于想出了大体程序内容。然后一种一种函数思考,一步一步编写,调试,做起来也就越来越顺手了。通过我重复思考,程序中错误得到顺利解决。函数功能也得到了进一步完善。并且在本次课程设计过程中,让我进一步结识到了团队力量,只有团结才干发
21、挥出一种集体力量。一种人力量真好有限,虽然个人能力再强,做一种大点项目,也会力不从心。只有分工协作才干将事办得越快越好。通过这次课程设计,会为咱们后来进入社会提供一定经验。咱们相信在此后学习真咱们会更加努力,积累经验。使自己在编程等各方面得到提高。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力重要环节,是对学生实际工作能力详细训练和考察过程.随着科学技术发展日新日异,当今计算机应用在生活中可以说得是无处不在。因而作为21世纪大学来说掌握计算机开发技术是十分重要。回顾起本次课程设计,至今我仍感触颇多,确,自从拿到题目到完毕整个编程,从理论到实践,在整整一种星期日
22、子里,可以学到诸多诸多东西,同步不但可以巩固了此前所学过知识,并且学到了诸多在课本上所没有学到过知识。通过这次课程设计使我懂得了理论与实际相结合是很重要,只有理论知识是远远不够,只有把所学理论知识与实践相结合起来,从理论中得出结论,才干真正为社会服务,从而提高自己实际动手能力和独立思考能力。在设计过程中遇到问题,这毕竟独立做,难免会遇到过各种各样问题,同步在设计过程中发现了自己局限性之处,对此前所学过知识理解得不够深刻,掌握得不够牢固。同步,对给过我协助所有同窗和各位指引教师再次表达忠心感谢!。通过这次课程设计使我懂得了理论与实际相结合是很重要,只有理论知识是远远不够,只有把所学理论知识与实践相结合起来,从理论中得出结论,才干真正为社会服务,从而提高自己实际动手能力和独立思考能力。编写过程也是咱们发现错误过程,毕竟咱们自己专业知识掌握不够,在设计中走了诸多弯路,刚开始是主线无从下手,不懂得要干嘛,如果平时课余时间多加强对这些专业知识学习,那么在这次课程设计中将会少走诸多弯路。虽然程序完毕了,但我感觉里面也许尚有诸多不完善地方,通过这次动手设计吧我还是但愿自己后来办事时候要认真,仔细,考虑周全。这段时间里,我又学到