高校人事管理系统.docx

上传人:牧羊曲112 文档编号:1929651 上传时间:2022-12-26 格式:DOCX 页数:46 大小:168.49KB
返回 下载 相关 举报
高校人事管理系统.docx_第1页
第1页 / 共46页
高校人事管理系统.docx_第2页
第2页 / 共46页
高校人事管理系统.docx_第3页
第3页 / 共46页
高校人事管理系统.docx_第4页
第4页 / 共46页
高校人事管理系统.docx_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《高校人事管理系统.docx》由会员分享,可在线阅读,更多相关《高校人事管理系统.docx(46页珍藏版)》请在三一办公上搜索。

1、河南城建学院面向对象语言程序设计课程设计报告书班 级 专 业 计算机科学与技术 姓 名 学 号 课程名称 面向对象语言程序设计设计名称 高校人事管理系统 指导教师 计算机科学与工程系2012年6月摘要高校人事管理系统,基于目前高校的人士录用情况,便于高校的人事信息化管理。该系统基于C+语言,以及数据结构的算法设计思想。为方便用户程序设有添加功能、删除功能、查找功能(姓名查找、编号查找)、修改功能、查看功能和人员信息统计功能(对行政人员、教师、一般员工、退休人员、返聘人员和临时工)进行统计,包含对党员人数、女职工人数、高学历人数(研究生、硕士、博士)进行统计。系统的各个功能主要通过函数之间的相互

2、调用实现,主要有添加函数、查找函数、修改函数、显示函数、统计函数。所有函数都是基于文件操作进行,直接对各种操作进行保存。系统设有两个类、两个类为继承关系。体现了C+的多态性。具体信息将在下文详细的剖析概括。系统的开发与设计是基于VC6.0平台实现的编译,根据数据结构算法设计原理,对程序的功能系统分步在VC6.0平台上编译实现。设计中参考了多项有关文件操作与类的继承派生、多态性的书籍。进行了仔细认真的源代码书写,保证程序的健壮性与高效性,各种功能也考虑了用户的需求,做大最大限度的满足用户的需求,并对各种出现异常进行了分析与解决。 关键词:高校人事管理; C+; VC6.0; 数据结构;文件操作目

3、录第一章开发环境和开发工具11.1C+语言简介11.2 开发背景11.3 开发环境1第二章 算法思想22.1 系统需求分析22.2 系统总体设计22.2.1 系统设计目标22.2.2 开发设计思想32.2.3 系统功能模块设计32.3 面向对象思想描述7第三章面向对象实现83.1 结构83.2 程序模块93.3 各类之间的关系193.4 源程序代码20第四章测试与分析354.1 测试数据选择354.2 测试结果分析35总 结40心得体会41参考文献42 第一章 开发环境和开发工具1.1 C +语言简介在C的基础上,一九八三年又由贝尔实验室的Bjarne Strou-strup推出了C+。 C+

4、进一步扩充和完善了C语言,成为一种面向 对象的程序设计语言。C+目前流行的最新版本是Borland C+4.5,Symantec C+6.1,和Microsoft VisualC+ 2.0。C+提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性,掌握起来有一定难度。1.2 开发背景 高校人事管理系统,基于目前高校的人士录用情况,便于高校的人事信息化管理。该系统基于C+语言,以及数据结构的算法设计思想。为方便用户程序设有添加功能、删除功能、查找功能(姓名查找、编号查找

5、)、修改功能、查看功能和人员信息统计功能(对行政人员、教师、一般员工、退休人员、返聘人员和临时工)进行统计,包含对党员人数、女职工人数、高学历人数(研究生、硕士、博士)进行统计。系统能够满足高校实现人事的简单管理操作,便于高校对在校人事进行各种及时合理的调度,满足高校简单的运行机制。1.3 开发环境本文所采用的开发环境主要是基于C+环境的信息技术极大地扩展了全人类教育的时空界限,空前地提高了人们学习的兴趣、效率和主动性,已经成为开发人类能力的创造性工具。在计算机科学中,数据结构不仅是一般应用程序设计的基础,而且也是操作系统、数据库系统、网络系统设计及其它大型计算机应用工程重要的实施基础。在编程

6、实现操作系统是基于VC6.0 之上实现,按照了C+语言设计的基本内容。第二章 面向对象思想 2.1 系统需求分析高校人事管理,高校在有职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。要求: 1) 添加删除功能:能根据学院人事的变动情况,添加删除记录;2) 查询功能:能根据编号和姓名进行查询;3) 编辑功能(高级):根据查询对相应的记录进行修改,并存储;4) 统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数);5) 保存功能:能对

7、输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。6) 人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。 2.2 系统总体设计2.2.1 系统设计目标(1)要求学生达到熟练掌握C+语言的基本知识和技能; (2)基本掌握C+程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的C+程序设计问题。2.2.2 开发设计思想 基于以上系统设计目标,本文在开发高校人事管理系统时遵循了以下开发设计思想: 采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。尽量达到操作过程中的直观、方便、实用、安

8、全等要求。系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。系统应具备文件操作,及时根据用户需求进行数据的添加、删除、修改、备份等操作。2.2.3 系统功能模块设计图3-1系统整体功能模块图 系统的菜单函数menu函数如下:/菜单函数void menu() cout endl;cout endl; cout *1.添加记录* endl; cout *2.查找记录* endl; cout *3.修改记录* endl; cout *4.统计显示* endl; cout *5.删除记录* endl; cout *6.查看记录* endl; cout

9、 *7.退出系统* endl;cout (istream &strm, Informaion &obj) /冲在流体去操作符friend ostream &operator (istream &strm, Informaion &obj);friend ostream &operator (ostream &strm, Informaion &obj);;class tatolMaion : public Informaion /功能统计类 继承类private:int onjobPerson; /在职员工统计int polictical; /党员int womenWork; / 女工人数in

10、t hightDegee; /统计高学历人数public:void setOnjobPerson() onjobPerson+; void setPolictical() polictical+; void setWomenWork() womenWork+; void setHightDegee() hightDegee+; int getOnjobPerson() return onjobPerson; int getPolictical() return polictical; int getWomenWork() return womenWork; int getHightDegee(

11、) return hightDegee; tatolMaion() /构造函数onjobPerson = 0;polictical = 0;womenWork = 0;hightDegee = 0; main 函数:int main()fstream DataFile;int choise, choiseagain; /选择与在选择Informaion person;DataFile.open(Informaion.txt, ios:out | ios:in | ios:binary);if( !DataFile )cout 文件打开失败! endl;exit(0);while(true)me

12、nu();cout choise;cin.ignore();if( choise 7 | choise =0 )cout 7 | choise =0);cout endl;if(1 = choise)Addmaion(DataFile, 1); /调用添加函数else if(2 = choise)cout n请选择查找方式 1.编号查找 2.姓名查找 endl;cout choiseagain;cin.ignore();if( choiseagain != 1 & choiseagain != 2 )cout 输入有误!请重新输入: ;while(choiseagain != 1 & choi

13、seagain != 2);if( 1 = choiseagain )NumbersFindmaion(DataFile); /调用号码查找函数elseNameFindmaion(DataFile); /调用姓名查找函数else if(3 = choise)editMaion(DataFile); /调用修改函数else if(4 = choise)recondMaion(DataFile);else if(5 = choise)deleteMaion(DataFile);else if(6 = choise)showDataFile(DataFile); /调用显示函数else if(7 =

14、 choise)cout 谢谢使用!按任意键退出! endl;exit(0); DataFile.close();return 0;/姓名查找函数void NameFindmaion(fstream & file)char choise, inchoise; /选择继续与选择是否插入未找到信息人员信息doInformaion person;char name11;file.clear();file.seekg(0L, ios:beg); /将读指针至于文件首if( !file )cout 打开文件失败! endl;exit(0);cout 请输入要查找的姓名:;cin.getline(name

15、, 11);while( !file.eof()file.read(char *)&person, sizeof(person);if(file.fail()cout 未找到该用户信息!n endl;cout inchoise;cin.ignore();if(Y = toupper(inchoise)Addmaion(file, 0);break;elsebreak;if(strcmp(name, person.getName() = 0)cout 该用户信息已找到! endl;cout person endl;break;cout choise;cin.ignore();while(toup

16、per(choise) = Y);/编号查找函数void NumbersFindmaion(fstream & file)char choise, inchoise;doInformaion person;int number;file.clear();file.seekg(0L, ios:beg); /将读指针至于文件首if( !file )cout 打开文件失败! endl;exit(0);cout number;cin.ignore(); /掠过后面的换行符while( !file.eof()file.read(char *)&person, sizeof(person);if(file

17、.fail()cout 未找到该用户信息! endl;cout inchoise;cin.ignore();if(Y = toupper(inchoise)Addmaion(file, 0);break;elsebreak;if( person.getNumbers() = number)if( person.getAge() = 0 )cout 编号 person.getNumbers() 的信息已删除! endl;break;elsecout 该用户信息已找到! endl;cout person endl;break;cout choise;cin.ignore();while(toupp

18、er(choise) = Y);删除函数 deletaMaion:void deleteMaion(fstream & file)Informaion person, insteadPerson;char name10;int number; int choise; /选择删除方式姓名/编号int recondNumbers; /记录要删除人员的编号int count = 0; /记录找到信息时提取的次数 file.clear();file.seekg(0L, ios:beg);if( !file )cout 打开文件失败! endl;exit(0);cout 请输入要删除人员的姓名或编号 e

19、ndl *1.输入姓名 *2.输入编号 endl choise;cin.ignore(); if(choise != 1 & choise != 2)cout 输入有误!请重新输入:;while(choise != 1 & choise != 2);if(choise = 1)cout 请输入要删除的姓名:;cin.getline(name, 11);while( !file.eof()file.read(char *)&person, sizeof(person);count+;if( file.fail()cout 未找到该用户信息! endl;break;if(strcmp(name,

20、person.getName() = 0)cout 该用户信息已找到! endl;recondNumbers = person.getNumbers(); /获取原编号cout person endl;insteadPerson.setNumbers(recondNumbers); /将获取的编号赋值与新数据file.seekp( (count-1)*sizeof(insteadPerson), ios:beg);file.write(char *)&insteadPerson, sizeof(insteadPerson);file.flush();cout 用户 person.getName

21、() 的信息已删除! endl;break;elsecout number;cin.ignore(); while( !file.eof()file.read(char *)&person, sizeof(person);count+;if(file.fail()cout 未找到该用户信息! endl;break;if( person.getNumbers() = number)cout 该用户信息已找到! endl;recondNumbers = person.getNumbers(); /获取原编号cout person endl;insteadPerson.setNumbers(reco

22、ndNumbers); /将获取的编号赋值与新数据file.seekp( (count-1)*sizeof(insteadPerson), ios:beg);file.write(char *)&insteadPerson, sizeof(insteadPerson);file.flush();cout 编号 insteadPerson.getNumbers() 用户信息已删除! endl;break;/显示函数void showDataFile(fstream & file)Informaion person;long posn, posu;file.clear();file.seekg(0

23、L, ios:beg); /检测是否为空文件posn = file.tellg();file.seekg(0L, ios:end);posu = file.tellg();if( posu = posn )cout 文件为空! endl;elsefile.clear();file.seekg(0L, ios:beg);while( !file.eof() )file.read(char *)&person, sizeof(person);if( file.fail()break;if( person.getAge() = 0 )cout 编号 person.getNumbers() 的信息已删

24、除!可写入新数据!n endl;elsecout person endl;/功能统计函数void recondMaion(fstream & file)Informaion person;tatolMaion recond;file.clear();file.seekg(0L, ios:beg);if(!file)cout 打开文件失败! endl;exit(0);while(!file.eof()file.read(char *)&person, sizeof(person);if(file.fail()break;if(strcmp(person.getPersonProperties(), 行政人员) = 0 | strcmp(person.getPersonProperties(),教师 ) = 0 | strcmp(person.getPersonProperties(), 一般员工) = 0 )recond.setOnjobPerson();if(strcmp(person.getPolitical(), 党员) = 0)recond.setPolictical();if(strcmp(person.getGader(), 女) = 0 )recond.setWomenWork();if(strcmp(person.get

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号