高校人事管理系统说明书_第1页
高校人事管理系统说明书_第2页
高校人事管理系统说明书_第3页
高校人事管理系统说明书_第4页
高校人事管理系统说明书_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录TOC\o"1-1"\h\z\u1问题描述42外形设计52.1系统设计52.2系统类层次结构图53.1类和对象的设计83.1.1类属性详细设计83.1.2类行为详细设计104系统测试和结果12总结17参考文献18概括人事系统作为信息化管理系统的一个分支,逐渐成为高校信息化建设的重要组成部分。信息查询管理系统。实现数据的添加、查找、修改、删除等操作,对异常信息进行错误提示。关键字:添加、删除、修改、读取、显示、搜索、计数、保存。前言本设计以计算机与通信学院教师人事管理为背景,设计了一套易于操作的人事管理系统。按照任务书的要求,分步进行设计,最终基本完成了课程设计的要求。由于本人水平有限,有些高要求还没有实现。人事管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发。对于前者,要求建立一个数据一致性和完整性强、数据安全性好的库。对于后者,要求应用程序功能齐全且易于使用。在本课程设计中,先后使用了TC2.0、VC++6.0等开发工具。最后在VC下进行调试和生成可执行文件。在这个简单的人事管理程序中,使用了链表的动态数据结构。链表是最简单的动态数据结构类型。它是由前后链指针连接的几个有限节点的集合。连接是前一个节点的尾指针指向下一个节点的起始地址,从而形成链,所以是链的一种。线性动态数据结构。本方案采用动态存储分配技术,可以有效利用有限的存储空间。要实现它,必须使用malloc()和free()函数。本程序主要使用链表的插入、删除和查询。使用链表。文本1问题描述编写一个C++程序,包含高校在职人员(行政人员、教师、普通人员)、离退休人员、再就业人员、临时工等主要教职工类型,并存储高校教职工的人事档案信息。这些人员:编号、性别、年龄、职务、职称、政治面貌、最高学历、来院时间等。提供功能强大、安装部署方便、使用成本低的信息查询管理系统,为学校全校管理的教职员工提供简便的操作。实现数据的添加、查找、修改、删除等操作,对异常信息进行错误提示。系统可增删人员变更,可修改查询,可存储操作记录。2外形设计2.1系统设计编程的基本目标是利用算法对问题的原始数据进行处理,以获得预期的效果。但这只是编程的基本要求。全面提高程序质量,提高编程效率,使程序具有良好的可读性、可靠性、可维护性和良好的结构,编写出好的程序应该是每个程序员追求的目标。为此,我们必须掌握正确的编程方法和技术。而C++语言是一种结构化语言。它层次结构清晰,易于以模块化方式组织程序,易于调试和维护。因此,采用结构化编程方法,对管理系统进行自上而下、逐步细化、模块化的设计。

2.1.1系统分析高校人事管理系统需要完成的主要功能有:人员信息录入,包括:编号、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、住院时间等。人员信息查询,包括:编号、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间等。修改人事信息。增删功能:可根据学院的变化增删记录;保存功能:可以对输入的数据进行相应的存储,需要重载插入和提取器才能完成数据的保存和打开。2.2系统类层次结构图定义两个类,一个人类,其中包含在职人员(行政人员、教师、普通职员)、退休人员、重新雇用人员和临时工。员工信息包括序列号、性别、年龄、职位、头衔、政治派别、最高学历、入职时间。定义一个学校班级,在其中添加、删除、修改、搜索、显示和退出数据。班级人无效getag(intas)整数getage()字符*getname()人*getnext()整数getnum()字符*getparty()字符*getpos()字符*getsex()字符*getstudy()字符*gettechpos()字符*gettime()字符*gettype()无效setnext(人*下一个)班级学校voidadd()//添加新信息boolfind1()//按数字查找boolfind2()//搜索依据无效负载()无效pri()voidprintf(intr)//获取信息voidprintf1(person*ahead)//输出信息boolremovedatnum()//删除信息voidsave()//将文件保存到文件中School()//无参构造函数~School()//析构函数,删除每个指针!boolupperson()//修改信息类结构图personpersonSchool系统功能框图高校人事管理系统高校人事管理系统添加人员信息修改人员信息退出数据装入查找人员信息删除人员信息显示人员信息3详细设计3.1类和对象的设计班级人schools;//定义对象班级班级学校3.1.1类属性的详细设计班级人班级人{私人的:诠释没有;//数字字符类型[20];//员工类型字符名称[20];//字符性[10];//性别年龄;//年龄字符时间[20];//入院时间字符位置[20];//位置字符技术[20];//标题炭党[20];//聚会字符研究[30];//最高学位人*mynext;//指针语言上市:person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime[],charnpos[],charntechpos[],charnparty[],charnstudy[]){没有=nnum;strcpy(type,ntype);//将ntype的值复制到typestrcpy(名称,名称);strcpy(性别,nsex);年龄=nage;strcpy(时间,ntime);strcpy(pos,npos);strcpy(techpos,ntechpos);strcpy(派对,nparty);strcpy(研究,研究);我的下一个=NULL;}schools;//定义对象班级班级学校{私人的:人*myfirst;intfirstnum;上市:School()//无参构造函数{myfirst=NULL;//空指针}3.1.2类行为的详细设计班级人无效getag(intas)整数getage()字符*getname()人*getnext()整数getnum()字符*getparty()字符*getpos()字符*getsex()字符*getstudy()字符*gettechpos()字符*gettime()字符*gettype()无效setnext(人*下一个)班级学校voidadd()//添加新信息boolfind1()//按数字查找boolfind2()//搜索依据无效负载()无效pri()voidprintf(intr)//获取信息voidprintf1(person*ahead)//输出信息boolremovedatnum()//删除信息voidsave()//将文件保存到文件中School()//无参构造函数~School()//析构函数,删除每个指针!boolupperson()//修改信息4系统测试和结果1.运行第一个界面:2.人员增删人员3.修饰语和询问者4统计学家和数据存储5显示信息和退出界面总结三周的算法和数据结构设计让我受益匪浅。尤其是对编程的相关知识有更深入的了解。在课程设计中,我们可以将所学的理论知识与实践相结合,在待开发的项目中逐步成长。虽然我们对使用这些编程语言知识不是很精通,但我相信我们也在成长。发现问题,提出问题,然后解决问题,这样我们才能弥补自己的不足,找到新的学习方向。在本课程设计中,我设计了一个人事管理系统,基本满足了人员的增删、查询、编辑、保存和统计功能。感觉更方便用户操作,操作简单,从而达到更有效的对高校人员进行系统管理的目的,而且速度更快更直接,可以达到用户想要的效果达到。在本次课程设计中,我一边设计课程一边探索,发现要理论与实践充分结合,达到一个新的水平,不仅需要扎实的基本功,还需要扎实的实践训练。这说明学习基础知识是理论付诸实践的前提。在这次课程设计中,我对之前的知识进行了很多的巩固和深化。当然,在此基础上,我学到了很多新的实用技能。我希望将来学校或学院可以提供更多关于学生的信息。这方面的实训机会,虽然学生们学到了一点基础知识,但我觉得这对于计算机专业的学生来说还远远不够。参考[1]魏星,林小茶。C++面向对象编程教程。:清华大学,1996.2004.[2]国丰.C++编程实践课程。:清华大学,1996.[3]松梅.C++语言教程。中国电子科技大学,1993.[4]严龙.C++程序员C++指南。航空航天大学,1992年。[5]王博.面向对象的建模、设计技术和方法。希望计算机公司,1990年。至经过这三周的课程设计,我们收获了很多课堂上学不到的知识。首先要感受一下学校给我们安排的算法和数据结构设计实践,然后再感受一下老师对我们的热情。指导和帮助,他教会了我们如何解决问题,让我的编程更加顺利,我完全掌握了设计程序的方法。我们也感谢许多同学的帮助,他们的帮助对我们来说也是必不可少的。总之,正是在他的帮助下,我才能顺利完成程序设计,在这里我想对他说:我很感动!感谢所有帮助过我的老师和同学们!附录-源程序#include<iostream.h>#include<字符串.h>#include<fstream.h>#include<iomanip.h>班级人{//persons类似于拥有数据成员私人的: 诠释没有;字符类型[20]; 字符名称[20]; 字符性[10]; 年龄; 字符时间1[20]; 字符时间2[20]; 字符位置[20]; 字符技术[20]; 炭党[20]; 字符研究[30]; 人*mynext;上市://构造函数一person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime1[],charntime2[],charnpos[],charntechpos[],charnparty[],charnstudy[]){没有=nnum;strcpy(类型,ntype);strcpy(名称,名称);strcpy(性别,nsex);strcpy(time1,ntime1);年龄=nage;strcpy(time2,ntime2);strcpy(pos,npos);strcpy(techpos,ntechpos);strcpy(派对,nparty);strcpy(研究,研究);我的下一个=NULL;}//构造函数二person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime1[],charntime2[],charnpos[],charntechpos[],charnparty[],charnstudy[],person*next)/*在一所大学中,主要人员有:在职人员(行政人员、教师、普通职员)、退休人员、再聘用人员和临时工。现在,需要存储这些人员的人事档案信息:编号、性别、年龄、职位、职称、政治面貌、最高文化程度、在职时间、住院时间。*/{没有=nnum;strcpy(类型,ntype);strcpy(名称,名称);strcpy(性别,nsex);strcpy(time1,ntime1);年龄=nage;strcpy(time2,ntime2);strcpy(pos,npos);strcpy(techpos,ntechpos);strcpy(派对,nparty);strcpy(研究,研究);我的下一个=下一个;}无效setnext(人*下一个){我的下一个=下一个;}人*getnext(){返回我的下一个;}//获取对象的各个私有数据函数整数getnum(){返回不;}字符*getname(){返回名称;}字符*getsex(){返回性别;}字符*getpos(){返回位置;}字符*gettechpos(){返回techpos;}字符*gettime1(){返回时间1;}字符*gettime2(){返回时间2;}字符*getparty(){回归方;}字符*getstudy(){回国学习;}整数getage(){返回年龄;}无效getag(intas){年龄=as;}字符*gettype(){返回类型;}};班级学校{私人的:人*myfirst;intfirstnum;上市:学校(){我的第一个=NULL;}//构造函数,初始化数据School(intnnu,charntyp[],charnnam[],charnse[],intnag,charntim1[],charntim2[],charnpo[],charntechpo[],charnpart[],charnstud[]){我的第一个=新人(nnu,ntyp,nnam,nse,nag,ntim1,ntim2,npo,ntechpo,npart,nstud);}//在末尾插入新的成员函数voidinsertatlast(intnnum,charntype[],charnname[],charnsex[],intnage,charntime1[],charntime2[],charnpos[],charntechpos[],charnparty[],char研究[]){人*下一个=我的第一个;如果(下一个==NULL)我的第一个=新人(nnum,ntype,nname,nsex,nage,ntime1,ntime2,npos,ntechpos,nparty,nstudy);别的{而(下一个->getnext()!=NULL)下一个=下一个->getnext();next->setnext(新人(nnum,ntype,nname,nsex,nage,ntime1,ntime2,npos,ntechpos,nparty,nstudy,next->getnext()));}}//从键盘输入数据并创建相应的对象函数,无效输入(intr){诠释;charntype[20],nname[20],nsex[20],ntime1[20],ntime2[20],npos[20],ntechpos[20],nparty[20],nstudy[20];cout<<"请输入编号为"<<r<<""<<endl;cout<<"输入员工分类代码[行政人员、教师、普通人员、离退休人员、再聘用人员、临时工]:"<<endl;cin>>n型;cout<<"输入:"<<endl;cin>>nname;cout<<"请输入性别:"<<endl;cin>>nsex;cout<<"请输入年龄:"<<endl;肉桂;cout<<"加入工作时间:"<<endl;cin>>ntime1;cout<<"请输入住院时间:"<<endl;cin>>ntime2;cout<<"输入标题[无,部门级,处级,地级]:"<<endl;cin>>npos;cout<<"输入职位[无,初级,中级,高级]:"<<endl;cin>>ntechpos;cout<<"进入入党[群众、党员、党员]:"<<endl;cin>>nparty;cout<<"进入教育[小学、初中、高中、学院、大学、硕士、博士]:"<<endl;cin>>研究;insertatlast(r,ntype,nname,nsex,nage,ntime1,ntime2,npos,ntechpos,nparty,nstudy);}//从键盘输入数据,并创建对应的对象函数2,无效输入1(人*提前){cout<<"编号:"<<setiosflags(ios::left)<<""<<ahead->getname()<<endl;cout<<"性别:"<<setiosflags(ios::left)<<""<<ahead->getsex()<<endl;cout<<"年龄:"<<setiosflags(ios::left)<<""<<ahead->getage()<<endl;cout<<"员工类型:"<<setiosflags(ios::left)<<""<<ahead->gettype()<<endl;cout<<"位置:"<<setiosflags(ios::left)<<""<<ahead->getpos()<<endl;cout<<"标题:"<<setiosflags(ios::left)<<""<<ahead->gettechpos()<<endl;cout<<"教育:"<<setiosflags(ios::left)<<""<<ahead->getstudy()<<endl;cout<<"政治:"<<setiosflags(ios::left)<<""<<ahead->getparty()<<endl;cout<<"到医院的时间:"<<setiosflags(ios::left)<<""<<ahead->gettime1()<<endl;cout<<"工作时间:"<<setiosflags(ios::left)<<ahead->gettime2()<<endl;}//输出数据函数二无效pri(){人*ahead=myfirst;cout<<"人数、性别、年龄、员工类型、职称、学历、政治面貌而(提前!=NULL){cout<<setiosflags(ios::left)<<setw(4)<<ahead->getnum()<<setiosflags(ios::left)<<setw(6)<<ahead->getname()<<setiosflags(ios::left)<<setw(5)<<ahead->getsex()<<setiosflags(ios::left)<<setw(4)<<ahead->getage()<<setiosflags(ios::left)<<setw(10)<<ahead->gettype()<<setiosflags(ios::left)<<setw(6)<<ahead->getpos()<<setiosflags(ios::left)<<setw(6)<<ahead->gettechpos()<<setiosflags(ios::left)<<setw(6)<<ahead->getstudy()<<setiosflags(ios::left)<<setw(9)<<ahead->getparty()<<setiosflags(ios::left)<<setw(12)<<ahead->gettime1()<<ahead->gettime2()<<endl;前进=前进->getnext();}}//添加员工功能无效添加(){整数i,a,b;人*p1=我的第一个;如果(p1==NULL){cout<<"请输入号码:";辛>>我;输入(一);}别的{如果(p1->getnext()==NULL){a=p1->getnum()+1;输入(一);}别的{而(p1->getnext()!=NULL){p1=p1->getnext();}b=p1->getnum()+1;输入(b);}}}//删除人员函数bool删除atnum(){诠释bh;人*ahead=myfirst;人*跟随=前进;cout<<"请输入您要删除的人的号码:";辛>>bh;如果(提前==NULL)返回假;别的如果(提前->getnum()==bh){myfirst=myfirst->getnext();cout<<"编号为"<<bh<<"的成员将被删除"<<endl;提前删除;返回真;}别的{前进=前进->getnext();而(提前!=NULL){如果(提前->getnum()==bh){跟随->setnext(ahead->getnext());cout<<"编号为"<<bh<<"的成员将被删除\n";提前删除;返回真;}跟随=前进;前进=前进->getnext();}cout<<"要删除的成员不存在!"<<endl;返回假;}}//找人功能布尔find1(){内部标识;人*ahead=myfirst;人*跟随=前进;cout<<"请输入号码:"<<endl;cin>>id;cout<<endl;cout<<"信息如下:"<<endl;如果(提前==NULL){cout<<"没有人员信息!"<<endl;返回假;}别的{而(提前!=NULL){如果(提前->getnum()==id){输入1(提前);返回真;}别的{跟随=前进;前进=前进->getnext();}}cout<<"没有关于此人的信息:"<<endl;返回假;}}//找人功能布尔find2(){字符纳米[20];人*ahead=myfirst;人*跟随=前进;cout<<"输入";辛>>纳米;cout<<endl;cout<<"信息如下:"<<endl;如果(提前==NULL){cout<<"无人员信息"<<endl;返回假;}别的{而(提前!=NULL){if(strcmp(ahead->getname(),nm)==0){输入1(提前);返回真;}别的{跟随=前进;前进=前进->getnext();}}cout<<"查无此人:"<<endl;返回假;}}//计数函数无效统计(){诠释xx,sz=0;cout<<"请选择统计对象:"<<endl;cout<<"1名员工"<<endl;cout<<"2个党员人数"<<endl;cout<<"3名女工"<<endl;cout<<"4具有高学历和职称人数"<<endl;cout<<"请选择:";辛>>xx;开关(xx){情况1:{人*ahead=myfirst;如果(提前==NULL)cout<<"无人员信息"<<endl;别的{而(提前!=NULL){if(strcmp(ahead->gettype(),"管理员")==0||strcmp(ahead->gettype(),"教师")==0||strcmp(ahead->gettype(),"普通员工")==0){前进=前进->getnext();sz++;}别的前进=前进->getnext();}}cout<<"员工人数:"<<sz<<endl;};休息;案例2:{人*ahead=myfirst;如果(提前==NULL)cout<<"没有人员信息\n";别的{而(提前!=NULL){if(strcmp(ahead->getparty(),"CCP成员")==0){前进=前进->getnext();sz++;}别的前进=前进->getnext();}}cout<<"中共党员人数:"<<sz<<endl;};休息;案例3:{人*ahead=myfirst;人*跟随=前进;如果(提前==NULL)cout<<"没有人员信息\n";别的{而(提前!=NULL){if(strcmp(ahead->getsex(),"female")==0){前进=前进->getnext();sz++;}别的前进=前进->getnext();}}cout<<"女性员工人数:"<<sz<<endl;};休息;案例4:{人*ahead=myfirst;人*跟随=前进;如果(提前==NULL)cout<<"无人员信息"<<endl;别的{而(提前!=NULL){if(strcmp(ahead->getstudy(),"PhD")==0||strcmp(ahead->getstudy(),"Master")==0&&strcmp(ahead->gettechpos(),"Advanced")==0){前进=前进->getnext();sz++;}别的前进=前进->getnext();}}cout<<"高学历及职称人数:"<<sz<<endl;};休息;}cout<<"统计结果:"<<sz<<endl;}boolupperson(){国际身份证;人*ahead=myfirst;人*跟随=前进;cout<<"请输入要修改的人的号码:";cin>>iid;如果(提前==NULL){cout<<"无人员信息"<<endl;返回假;}别的{而(提前!=NULL){如果(提前->getnum()==iid){输入1(提前);诠释nu=-1;for(inti=1;nu!=0;i++){国际毫升;诠释;字符[30];cout<<"请选择要修改的内容:"<<endl;cout<<"1:2:性别3:年龄4:员工类型5:职位"<<endl;cout<<"6:职称7:学历8:政治观9:来院时间10:上班时间"<<endl;cout<<"选择(1-10):";辛>>毫升;开关(毫升){情况1:{cout<<"请输入:";辛>>十;strcpy(follow->getname(),ty);};休息;案例2:{cout<<"请输入性别:";辛>>十;strcpy(ahead->getsex(),ty);};休息;案例3:{cout<<"请输入年龄:";辛>>毫升;前进->getag(mll);};休息;案例4:{cout<<"请输入员工类型:";辛>>十;strcpy(ahead->gettype(),ty);};休息;案例5:{cout<<"请输入标题:";辛>>十;strcpy(ahead->getpos(),ty);};休息;案例6:{cout<<"请输入标题:";辛>>十;strcpy(ahead->gettechpos(),ty);};休息;案例7:{cout<<"请输入学位:";辛>>十;strcpy(ahead->getstudy(),ty);};休息;案例8:{cout<<"请输入政治状态:";辛>>十;strcpy(ahead->getparty(),ty);};休息;案例9:{cout<<"请输入您访问的时间:";辛>>十;strcpy(ahead->gettime1(),ty);};休息;案例10:{cout<<"请输入工作时间:";辛>>十;strcpy(ahead->gettime2(),ty);};休息;}返回真;}}别的{前进=前进->getnext();跟随=前进;}}cout<<"没有这样的人"<<endl;返回假;}}//加载数据函数无效负载(){intnnum,nage;charntype[20],nname[20],nsex[20],ntime1[20],ntime2[20],npos[20],ntechpos[20],nparty[20],nstudy[20];ifstreamfperson;fperson.open("person.txt",ios::in);而(fperson.good()){fperson>>nnum>>ntype>>nname>>nsex>>nage>>ntim

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论