15高校人事管理系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

课程设计报告课程:面向对象程序设计学号:姓名:班级:教师:Xx大学1课程设计名称:高校人事管理系统1.设计内容某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。要求:1)添加删除功能:能根据学院人事的变动情况,添加删除记录;2)查询功能:能根据编号和姓名进行查询;3)编辑功能(高级):根据查询对相应的记录进行修改,并存储;4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数);5)保存功能:能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。6)人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。2.设计目的与要求2.1目的1.达到熟练掌握C++语言的基本知识和技能。2.基本掌握面向对象程序设计的基本思路和方法。3.能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2.2要求1.要求利用面向对象的方法以及C++的编程思想来完成系统的设计。2.要求在设计的过程中,建立清晰的类层次。3.在系统的设计中,至少要用到面向对象的一种机制。3.系统分析3.1主要知识点1.链表的使用,链表能动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。链表适用于插入或删除频繁、存储空间需求不定的情况,也就是说可以随意增减元素,具有存储效率高,存取速度快的优点。2.构造函数重载,根据构造函数参数不同调用不同的构造函数,这个是C++重要思想之一,即根据不同的信息处理不同的问题,实现面向对象化。23.2关键技术程序中数据类型和函数用类来实现,共设计了2个类。人员类person,链表类School,每一种类都定义了相应的构造函数和构造函数的重载以及一些成员函数。具体定义如下所示:1.类person类person中,成员变量no表示编号,字符数组type,表示职员分类,name表示姓名,sex表示性别,age表示年龄,time1表示任职时间,time2表示来院时间,pos表示职务,techpos表示职称,party表示政治面貌,study表示最高学历,*mynext;表示对象person的指针对象。成员函数person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime1[],charntime2[],charnpos[],charntechpos[],charnparty[],charnstudy[])是构造函数,person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime1[],charntime2[],charnpos[],charntechpos[],charnparty[],charnstudy[],person*next)是构造函数2,即重载,如果下一个指针不是空的话则调用这个构造函数。voidsetnext(person*next)是关于next的函数,person*getnext()是指针函数,把数据从被调函数返回到主调函数,intgetnum()是返回编号的函数,char*gettype()是返回type的函数,char*getname()是返回name的函数,char*getsex()返回sex的函数,intgetage()是返回age的函数,char*gettime1()是返回time1的函数,char*gettime2()是返回time2的函数,char*getpos()是返回pos的函数,char*gettechpos()是返回techpos的函数,char*getparty()是返回party的函数,char*getstudy()是返回study的函数,voidgetag(intas)是带有参数,赋值函数,用来把as的值传给age2.类school类school中,*myfirst是person的对象指针,用来指向下一个指针;成员变量firstnum指的是第一个职工的编号;School()是构造函数,作用是指向链表的结尾;School(intnnu,charntyp[],charnnam[],charnse[],intnag,charntim1[],charntim2[],charnpo[],charntechpo[],charnpart[],charnstud[])是重载构造函数,作用是建立节点;voidinsertatlast(intnnum,charntype[],charnname[],charnsex[],intnage,charntime1[],charntime2[],charnpos[],charntechpos[],charnparty[],charnstudy[])成员函数是如果下一个指针指向的不是空,则调用这个成员函数;voidprintf(intr)是输入函数,即输入相关信息;voidprintf1(person*ahead)函数是一个指针对象定义为头指针的函数;voidpri()函数作用是显示所有信息;voidadd()函数作用是增加人员资料的函数;boolremovedatnum()函数作用是删除有关人员信息;boolfind1()函数作用是根据编号查找人员信息;boolfind2()函数作用是根据姓名查找人员信息;voidstat()函数作用是统计人员资料的有关信息;boolupperson()函数作用是修改有关人员资料;voidsave()函数作用是保存现有的人员资料;~School()是析构函数,作用是逐个删除结点,包括头结点。3.3基本功能要求1.功能选择用菜单实现例如:***************************************************高校人事管理系统——————————————————————————1--增加人员资料2--删除人员信息3--修改人员信息4--查询人员信息35—统计人员信息6—数据保存7—显示所有信息8—退出****************************************************请选择1--9:用户通过输入不同的数字进入不同的菜单。次级菜单主要显示本程序的功能,主要的功能有增加人员资料,删除人员信息,修改人员信息,修改人员信息,查询人员信息,统计人员信息,数据保存,显示所有信息和退出功能。2.运行时给出明确的提示信息比如,选择1,系统会提醒用户输入编号,输入完系统会进一步提醒用户输入其他信息和选择,进入相应的选择后会提醒用户选择其他子选择和输入;比如,输入增加人员,又选择“在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工”再输入信息。比如在删除人员信息中又显示“所要删除的编号是”和“无此人员”或“已被删除”等比如在查找人员信息中又显示“所要查找的编号是”或“所要查找的姓名是”和“无此人员”和显示相关信息等。在统计人员信息中又显示————————————————————————————请选择统计对象:1在职人数2党员人数3女工人数4高学历高职称人数请选择:————————————————————————————界面来供选择。比如修改功能则会出现下面的界面————————————————————————————请选择要修改的内容:1:姓名2:性别3:年龄4:职工类型5:职务6:职称7:学历8:政治面貌9:来院时间10:参加工作时间选择(1-10):————————————————————————————在实现完菜单中的子程序功能,系统会提醒用户按任意键继续(就是重新返回到主菜单进行其他操作),最后根据提示信息输入8退出系统,结束本次操作。4.系统结构设计本程序的功能结构如图1所示:4图1程序功能结构图5.源程序代码/*****************************************************************************/#includeiostream.h#includestring.h#includefstream.h//文件流,数据流输入/输出#includestdlib.h//是常用的函数system()、exit()的头文件#includeiomanip.h//参数化输入/输出是setw()函数的头文件//person类和school类的主体以及主函数由本人和合作者何婷婷共同完成//文中没有标注由谁完成的,代表由本人和合作者何婷婷共同完成classperson{private:intno;//编号chartype[20];//职员分类charname[20];//姓名charsex[10];//性别intage;//年龄chartime1[20];//任职时间chartime2[20];//来院时间charpos[20];//职务chartechpos[20];//职称charparty[20];//政治面貌charstudy[30];//最高学历person*mynext;//指向下一个指针public:高校人士管理系统删除人员资料修改人员资料查询人员资料统计人员资料保存人员资料显示人员资料增加人员资料5person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime1[],charntime2[],charnpos[],charntechpos[],charnparty[],charnstudy[])//构造函数{no=nnum;strcpy(type,ntype);//字符串的拷贝strcpy(name,nname);strcpy(sex,nsex);strcpy(time1,ntime1);age=nage;strcpy(time2,ntime2);strcpy(pos,npos);strcpy(techpos,ntechpos);strcpy(party,nparty);strcpy(study,nstudy);mynext=NULL;//下一个为空}person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime1[],charntime2[],charnpos[],charntechpos[],charnparty[],charnstudy[],person*next)//构造函数2,即重载{no=nnum;strcpy(type,ntype);strcpy(name,nname);strcpy(sex,nsex);strcpy(time1,ntime1);age=nage;strcpy(time2,ntime2);strcpy(pos,npos);strcpy(techpos,ntechpos);strcpy(party,nparty);strcpy(study,nstudy);mynext=next;//下一个为有}voidsetnext(person*next)//关于next的函数{mynext=next;}person*getnext()//指针函数,把数据从被调函数返回到主调函数{returnmynext;}6intgetnum(){returnno;}char*getname()//name是数组用指针{returnname;}char*getsex()//sex是数组用指针{returnsex;}char*getpos()//pos是数组用指针{returnpos;}char*gettechpos()//techpos是数组用指针{returntechpos;}char*gettime1()//time1是数组用指针{returntime

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功