大学人事管理系统范文.docx
- 文档编号:10174647
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:44
- 大小:181.10KB
大学人事管理系统范文.docx
《大学人事管理系统范文.docx》由会员分享,可在线阅读,更多相关《大学人事管理系统范文.docx(44页珍藏版)》请在冰豆网上搜索。
大学人事管理系统范文
河南城建学院
HenanUniversityofUrbanConstruction
《面向对象语言程序设计》
课程设计报告
学号:
姓名:
专业:
计算机科学与技术
题目:
高校人事管理系统
指导老师:
设计时间:
第十七周
计算机科学与工程学院
2014年6月
目录
第一章需求分析2
第二章总体设计3
2.1系统功能模块3
2.2类之间的关系4
第三章各功能模块实现5
3.1模块实现及代码5
3.2运行结果12
第四章系统调试15
第五章总结与体会15
参考文献17
附录18
第一章需求分析
高校人事管理,高校在有职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。
现在,需要存储这些人员的人事档案信息:
编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。
要求:
1)添加删除功能:
能根据学院人事的变动情况,添加删除记录;
2)查询功能:
能根据编号和姓名进行查询;
3)编辑功能(高级):
根据查询对相应的记录进行修改,并存储;
4)统计功能:
能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数);
5)保存功能:
能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。
6)人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。
第二章总体设计
2.1系统功能模块
系统流程图
12
34
56
87
系统功能分析
执行程序后,按界面的显示,选择1—8种操作。
选1,增加人员资料,资料包括编号、职工类别、姓名、性别、年龄、来院时间、职务、职称、党派、学历。
选2,删除人员信息。
选3,修改人员信息,可以选择要修改的内容。
选4,查询人员信息,可按编号或姓名查询。
选5,数据存盘。
选6,数据装入。
选7,显示所有信息。
选8,退出。
系统功能模块划分与设计
2.2类之间的关系
定义了8个类,分别为人员类(personnel类),临时工类(casuallaborer类),进入时间类(cometime类),在职人员类(incumbency类),退休时间类(retiretime类),退休人员类(retiree类),返聘时间类(retime类),返聘人员类(returnee类)等。
同时又定义一个school类,在里面实现数据的添加、删除、修改、查找、显示和退出。
*
第三章各功能模块实现
3.1模块实现及代码
添加功能
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<<"请输入要删除人员的编号:
";
cin>>bh;
if(ahead==NULL)
returnfalse;
else
if(ahead->getnum()==bh)
{
myfirst=myfirst->getnext();
cout<<"编号为"< deleteahead; returntrue; } else { ahead=ahead->getnext(); while(ahead! =NULL) { if(ahead->getnum()==bh) { follow->setnext(ahead->getnext()); cout<<"编号为"< deleteahead; returntrue; } follow=ahead; ahead=ahead->getnext(); } cout<<"要删除的成员不存在! "< returnfalse; } } 修改功能 boolupperson() { intiid; person*ahead=myfirst; person*follow=ahead; cout<<"请输入要修改人员的编号: "; cin>>iid; if(ahead==NULL) { cout<<"无人员信息"< returnfalse; } else { while(ahead! =NULL) { if(ahead->getnum()==iid) { printf1(ahead); intnu=-1; for(inti=1;nu! =0;i++) { intml; intmll; charty[30]; cout<<"请选择要修改的内容: "< cout<<"1: 姓名2: 性别3: 年龄4: 职工类型5: 职务"< cout<<"6: 职称7: 学历8: 政治面貌9: 来院时间"< cout<<"选择(1-10): "; cin>>ml; switch(ml) { case1: { cout<<"请输入姓名: "; 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; strcpy(ahead->getparty(),ty); };break; case9: { cout<<"请输入来院时间: "; cin>>ty; strcpy(ahead->gettime(),ty); };break; } returntrue; } } else { ahead=ahead->getnext(); follow=ahead; } } cout<<"没有此人"< returnfalse; } } 查询功能 1.按编号查询 boolfind1() { intid; person*ahead=myfirst; person*follow=ahead; cout<<"请输入编号: "< cin>>id; cout<<"**********************************"< if(ahead==NULL) { cout<<"无人员信息! "< returnfalse; } else { while(ahead! =NULL) { if(ahead->getnum()==id) { printf1(ahead); returntrue; } else { follow=ahead; ahead=ahead->getnext(); } } cout<<"无此人信息: "< returnfalse; } } 2.按姓名查询 boolfind2() { charnm[20]; person*ahead=myfirst; person*follow=ahead; cout<<"输入姓名"; cin>>nm; cout<<"**********************************"< if(ahead==NULL) { cout<<"无人员信息"< returnfalse; } else { while(ahead! =NULL) { if(strcmp(ahead->getname(),nm)==0) { printf1(ahead); returntrue; } else { follow=ahead; ahead=ahead->getnext(); } } cout<<"查无此人: "< returnfalse; } } 数据存盘功能 voidsave() { ofstreamfperson; fperson.open("person.txt",ios: : out); person*p=myfirst; while(p) { fperson< fperson< p=p->getnext(); } fperson.close(); cout<<"保存数据已经完成"< } 数据装入功能 voidload() { intnnum,nage; charntype[20],nname[20],nsex[20],ntime[20],npos[20],ntechpos[20],nparty[20],nstudy[20]; ifstreamfperson; fperson.open("person.txt",ios: : in); while(fperson.good()) { fperson>>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"; } 显示功能 voidprintf() { person*ahead=myfirst; cout<<"编号---姓名---性别---年龄---职工类型---职务---职称---学历---政治面貌---来院时间\n"< while(ahead! =NULL){cout< : left)< : left)< : left)< : left)< : left)< : left)< : left)< : left)< cout< : left)< : left)< ahead=ahead->getnext(); } } 3.2运行结果 开始菜单界面: 添加人员信息界面: 统计人员信息界面: 人员信息查找界面: 人员信息删除界面: 人员修改界面: 第四章系统调试 系统调试: 通过对程序的调试,发现很多问题只有通过调试以后才能被找到和发现,才能更好的美化和优化,是程序看起来更完美,让使用者更放心 第五章总结与体会 通过本次课程设计,让我对C++这门学科对有了进一步的认识,熟练掌握了类及类模板的应用。 以前对该课程的恐惧感都以消失,任何事情没有做不到只有愿不愿意去做。 刚开始接到该题,心中确实充满困惑。 不过在图书馆和网上找了一些资料看了后,便觉得思路就在眼前了,之前不过就是由于对该课程的恐惧而产生了一定的心里影响而已。 之后凭借那闪现在眼前的点点思路,慢慢在琢磨,终于想出了大体的程序内容。 然后一个一个函数的思考,一步一步的编写,调试,做起来也就越来越顺手了。 通过我的反复思考,程序中的错误得到顺利解决。 函数功能也得到了进一步的完善。 并且在本次课程设计的过程中,让我进一步认识到了团队的力量,只有团结才能发挥出一个集体的力量。 一个人的力量真的好有限,即使个人能力再强,做一个大点的项目,也会力不从心。 只有分工协作才能将事办得越快越好。 通过这次课程设计,会为我们以后进入社会提供一定的经验。 我们相信在今后的学习真的我们会更加努力,积累经验。 使自己在编程等各方面得到提高。 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。 因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。 回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。 在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢! 。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。 编写的过程也是我们发现错误的过程,毕竟我们自己专业知识掌握的不够,在设计中走了很多弯路,刚开始是根本无从下手,不知道要干嘛,如果平时课余时间多加强对这些专业知识的学习,那么在这次课程设计中将会少走很多的弯路。 虽然程序完成了,但我感觉里面可能还有很多不完善的地方,通过这次动手设计吧我还是希望自己以后办事的时候要认真,仔细,考虑周全。 这段时间里,我又学到了更多C++程序类知识,同时我也被提醒以后办事的时候要认真,仔细,考虑周全。 参考文献 [1]郑莉、傅仕星编,《C++面向对象程序设计》,清华大学出版社,2003年9月出版 [2]谭浩强编,《C++面向对象程序设计》,清华大学出版社,2005年7月出版 [3]李师贤等译,《C++精髓》,机械工业出版社,2002年8月出版 [4]DavisChapman,《学用Visualc++6.0》,清华大学出版社,2001年7月出版 [5]郑莉、傅仕星编,《C++语言面向对象程序设计习题与实验指导》,清华大学出版社,2003年9月出版。 附录 #include #include #include #include #include classperson { 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[]); person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime[],charnpos[],charntechpos[],charnparty[],charnstudy[],person*next); voidsetnext(person*next){mynext=next;} person*getnext(){returnmynext;} intgetnum(){returnno;} char*getname(){returnname;} char*getsex(){returnsex;} char*getpos(){returnpos;} char*gettechpos(){returntechpos;} char*gettime(){returntime;} char*getparty(){returnparty;} char*getstudy(){returnstudy;} intgetage(){returnage;} voidgetag(intas){age=as;} char*gettype(){returntype;} }; person: : 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; } person: : person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime[],char
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 人事管理 系统 范文