




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE53/NUMPAGES53*******************实践教学*******************兰州理工大学计算机与通信学院2008年秋季学期面向对象课程设计题目:高校人事治理系统专业班级:06级计算机一班姓名:肖雷雷学号:06250131指导教师:刘嘉成绩:______________目录TOC\o"1-3"\h\z摘要 3第一章问题描述 4第二章需求分析 52.1需求陈述 52.2建立对象模型 52.3建立功能模型 52.4系统类层次及结构图 6第三章概要设计 73.1系统设计 73.1.2系统设计思想 73.2系统类层次及结构图 8第四章详细设计 94.1类与对象的设计 94.1.1类属性的详细设计 94.1.2类行为的详细设计 114.2类的详细继承关系 12第五章编码 12设计总结 28参考文献 29致谢 30编号摘要编号高校人事治理系统是一个信息治理系统,在开发和设计过程中要以高校人事的治理业务为背景。开发出一套“高校人事治理系统”软件。此程序包括:建立链表并显示,添加删除功能(能依照学院的变动情况,添加删除记录),查询功能(能依照编号和姓名进行查询),编辑功能(依照查询对相应的记录进行修改,并存储),统计功能(能依照多种参数进行人员的统计),保存功能(能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开)。通过链表存储结构实现数据的输入,实现各子程序过程的演示,对异常输入信息报错。关键字:链表;高校人事治理系统;查找;数据装入第一章问题描述高校人事治理系统包含查找、插入、删除、修改、输出功能。高校人事治理系统差不多情况包括的数据项有:姓名、性不、年龄、职务、职称、政治面貌、最高学历、来院时刻使用链表实现数据的录入、查找、修改、插入、追加、删除、统计、输出等功能;建立一个测试的数据表,至少要有20个测试数据,算法关于这些合法的输入数据都能产生满足规格讲明要求的结果;算法关于精心选择的典型、苛刻而带有刁难性的几组输入数据能够得出满足规格讲明要求的结果;对算法实现过程中的异常情况能给出有效信息;第二章需求分析2.1需求陈述对题目的需求分析得出:高校人事治理系统对人事档案进行治理。人事档案信息包括:编号、姓名、性不、年龄、职务、职称、政治面貌、最高学历、任职时刻、来院时刻。要求:1)添加删除功能:能依照学院人事的变动情况,添加删除记录;2)查询功能:能依照编号和姓名进行查询;3)编辑功能:依照查询对相应的记录进行修改,并存储;4)统计功能:能依照多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数);5)保存功能:能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。6)人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。C++系统作为信息治理系统的一个分支,已逐渐成为高校信息化建设的重要组成部分,为学校治理全校的院系的教职工提供了一个功能强大、安装部署方便、使用成本低、操作简捷的信息查询治理系统。2.2建立对象模型Schools;//定义对象person*next=myfirst;//定义对象指针并赋初值2.3建立功能模型voidprintf(intr)//猎取信息voidprintf1(person*ahead)//输出信息voidpri()voidadd()//添加新信息boolremovedatnum()//删除信息boolfind1()//按编号查找boolfind2()//按姓名查找boolupperson()//修改信息voidsave()//保存文件到文件中2.4系统类层次及结构图定义两个类,一个person类,包含在职人员(行政人员、教师、一般职员)、退休人员、返聘人员和临时工。职员信息包括编号、姓名、性不、年龄、职务、职称、政治面貌、最高学历、来院时刻。定义一个school类,在里面实现数据的添加、删除、修改、查找、显示和退出。类personvoidgetag(intas)intgetage()char*getname()person*getnext()intgetnum()char*getparty()char*getpos()char*getsex()char*getstudy()char*gettechpos()char*gettime()char*gettype()voidsetnext(person*next)类Schoolvoidadd()//添加新信息boolfind1()//按编号查找boolfind2()//按姓名查找voidload()voidpri()voidprintf(intr)//猎取信息voidprintf1(person*ahead)//输出信息boolremovedatnum()//删除信息voidsave()//保存文件到文件中School()//无参构造函数~School()//析构函数,删除各指针!boolupperson()//修改信息第三章概要设计3.1系统设计程序设计的差不多目标是用算法对问题的原始数据进行处理,从而获得所期望的效果。但这仅仅是程序设计的差不多要求。要全面提高程序的质量,提高编程效率,使程序具有良好的可读性、可靠性、可维护性以及良好的结构,编制出好的程序来,应当是每位程序设计工作者追求的目标。而要做到这一点,就必须掌握正确的程序设计方法和技术。而C++语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。因此采纳结构化程序设计方法,对治理系统进行自顶向下,逐步细化,模块化设计.
3.1.1系统分析高校人事治理系统所需要完成的功能要紧有:人事信息的输入,包括:编号、姓名、性不、年龄、职务、职称、政治面貌、最高学历、任职时刻、来院时刻等。人事信息的查询,包括:编号、姓名、性不、年龄、职务、职称、政治面貌、最高学历、任职时刻、来院时刻等。人事信息的修改。添加删除功能:能依照学院的变动情况,添加删除记录;保存功能:能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。3.1.2系统设计思想系统开发的总体任务是实现学生信息关系的系统化,规范化和自动化。3.2系统类层次及结构图定义两个类,一个person类,包含在职人员(行政人员、教师、一般职员)、退休人员、返聘人员和临时工。职员信息包括编号、姓名、性不、年龄、职务、职称、政治面貌、最高学历、来院时刻。定义一个school类,在里面实现数据的添加、删除、修改、查找、显示和退出。类personvoidgetag(intas)intgetage()char*getname()person*getnext()intgetnum()char*getparty()char*getpos()char*getsex()char*getstudy()char*gettechpos()char*gettime()char*gettype()voidsetnext(person*next)类Schoolvoidadd()//添加新信息boolfind1()//按编号查找boolfind2()//按姓名查找voidload()voidpri()voidprintf(intr)//猎取信息voidprintf1(person*ahead)//输出信息boolremovedatnum()//删除信息voidsave()//保存文件到文件中School()//无参构造函数~School()//析构函数,删除各指针!boolupperson()//修改信息系统功能模块图高校人事治理系统高校人事治理系统添加人员信息修改人员信息退出数据装入查找人员信息删除人员信息显示人员信息第四章详细设计4.1类与对象的设计类classpersonSchools;//定义对象类classSchool4.1.1类属性的详细设计类classpersonclassperson{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[]){no=nnum;strcpy(type,ntype);//将ntype的值复制给typestrcpy(name,nname);strcpy(sex,nsex);age=nage;strcpy(time,ntime);strcpy(pos,npos);strcpy(techpos,ntechpos);strcpy(party,nparty);strcpy(study,nstudy);mynext=NULL;}Schools;//定义对象类classSchool{private:person*myfirst;intfirstnum;public:School()//无参构造函数{myfirst=NULL;//将指针置空}4.1.2类行为的详细设计类classpersonvoidgetag(intas)intgetage()char*getname()person*getnext()intgetnum()char*getparty()char*getpos()char*getsex()char*getstudy()char*gettechpos()char*gettime()char*gettype()voidsetnext(person*next)类Schoolvoidadd()//添加新信息boolfind1()//按编号查找boolfind2()//按姓名查找voidload()voidpri()voidprintf(intr)//猎取信息voidprintf1(person*ahead)//输出信息boolremovedatnum()//删除信息voidsave()//保存文件到文件中School()//无参构造函数~School()//析构函数,删除各指针!boolupperson()//修改信息4.2类的详细继承关系personpersonSchool第五章编码#include<iostream.h>#include<string.h>#include<fstream.h>#include<iomanip.h>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[]){no=nnum;strcpy(type,ntype);//将ntype的值复制给typestrcpy(name,nname);strcpy(sex,nsex);age=nage;strcpy(time,ntime);strcpy(pos,npos);strcpy(techpos,ntechpos);strcpy(party,nparty);strcpy(study,nstudy);mynext=NULL;}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;}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;}};classSchool{private:person*myfirst;intfirstnum;public:School()//无参构造函数{myfirst=NULL;//将指针置空}School(intnnu,charntyp[],charnnam[],charnse[],intnag,charntim[],charnpo[],charntechpo[],charnpart[],charnstud[])//有参构造函数{myfirst=newperson(nnu,ntyp,nnam,nse,nag,ntim,npo,ntechpo,npart,nstud);}//在信息最后添加新的信息voidinsertatlast(intnnum,charntype[],charnname[],charnsex[],intnage,charntime[],charnpos[],charntechpos[],charnparty[],charnstudy[]){person*next=myfirst;//定义对象指针并付初值if(next==NULL)myfirst=newperson(nnum,ntype,nname,nsex,nage,ntime,npos,ntechpos,nparty,nstudy);else{while(next->getnext()!=NULL)next=next->getnext();next->setnext(newperson(nnum,ntype,nname,nsex,nage,ntime,npos,ntechpos,nparty,nstudy,next->getnext()));}}voidprintf(intr)//猎取信息{intnage;charntype[20],nname[20],nsex[20],ntime[20],npos[20],ntechpos[20],nparty[20],nstudy[20];cout<<"请输入编号为"<<r<<"的成员的信息"<<endl;cout<<"输入职工分类码[行政人员,教师,一般职员,退休人员,返聘人员,临时工]:"<<endl;cin>>ntype;cout<<"输入姓名:"<<endl;cin>>nname;cout<<"输入性不:"<<endl;cin>>nsex;cout<<"输入年龄:"<<endl;cin>>nage;cout<<"输入来院时刻:"<<endl;cin>>ntime;cout<<"输入职务[无,科级,处级,地级]:"<<endl;cin>>npos;cout<<"输入职称[无,初级,中级,高级]:"<<endl;cin>>ntechpos;cout<<"输入加入党派[群众,中共党员,民主党派]:"<<endl;cin>>nparty;cout<<"输入学历[小学,初中,高中,大专,大学,硕士,博士]:"<<endl;cin>>nstudy;insertatlast(r,ntype,nname,nsex,nage,ntime,npos,ntechpos,nparty,nstudy);}voidprintf1(person*ahead)//输出信息{cout<<"编号:"<<setiosflags(ios::left)<<setw(26)<<ahead->getnum()<<"姓名:"<<ahead->getname()<<endl;cout<<"性不:"<<setiosflags(ios::left)<<setw(26)<<ahead->getsex()<<"年龄:"<<ahead->getage()<<endl;cout<<"职工类型:"<<setiosflags(ios::left)<<setw(22)<<ahead->gettype()<<"职务:"<<ahead->getpos()<<endl;cout<<"职称:"<<setiosflags(ios::left)<<setw(26)<<ahead->gettechpos()<<"学历:"<<ahead->getstudy()<<endl;cout<<政治面貌:"<<setiosflags(ios::left)<<setw(22)<<ahead->getparty()<<"来院时刻:"<<ahead->gettime()<<endl;}voidprintf(){person*ahead=myfirst;cout<<"编号姓名性不年龄职工类型职务职称学历政治面貌来院时刻\n";while(ahead!=NULL){cout<<setiosflags(ios::left)<<setw(4)<<ahead->getnum()<<setiosflags(ios::left)<<setw(6)<<ahead->getname()cout<<setiosflags(ios::left)<<setw(5)<<ahead->getsex()<<setiosflags(ios::left)<<setw(4)<<ahead->getage()cout<<setiosflags(ios::left)<<setw(10)<<ahead->gettype()<<setiosflags(ios::left)<<setw(6)<<ahead->getpos()cout<<setiosflags(ios::left)<<setw(6)<<ahead->gettechpos()<<setiosflags(ios::left)<<setw(6)<<ahead->getstudy()cout<<setiosflags(ios::left)<<setw(9)<<ahead->getparty()<<setiosflags(ios::left)<<setw(12)<<ahead->gettime()<<endl;ahead=ahead->getnext();}}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;elseif(ahead->getnum()==bh){myfirst=myfirst->getnext();cout<<"编号为"<<bh<<"的成员以被删除"<<endl;deleteahead;returntrue;}Else{ahead=ahead->getnext();while(ahead!=NULL){if(ahead->getnum()==bh){follow->setnext(ahead->getnext());cout<<"编号为"<<bh<<"的成员以被删除\n";deleteahead;returntrue;}follow=ahead;ahead=ahead->getnext();}cout<<"要删除的成员不存在!"<<endl;returnfalse;}}boolfind1()//按编号查找{intid;person*ahead=myfirst;person*follow=ahead;cout<<"请输入编号:"<<endl;cin>>id;cout<<"**********************************"<<endl;if(ahead==NULL){cout<<"无人员信息!"<<endl;returnfalse;}else{while(ahead!=NULL){if(ahead->getnum()==id){printf1(ahead);returntrue;}else{follow=ahead;ahead=ahead->getnext();}}cout<<"无此人信息:"<<endl;returnfalse;}}boolfind2()//按姓名查找{charnm[20];person*ahead=myfirst;person*follow=ahead;cout<<"输入姓名";cin>>nm;cout<<"**********************************"<<endl;if(ahead==NULL){cout<<"无人员信息"<<endl;returnfalse;}else{while(ahead!=NULL){if(strcmp(ahead->getname(),nm)==0){printf1(ahead);returntrue;}else{follow=ahead;ahead=ahead->getnext();}}cout<<"查无此人:"<<endl;returnfalse;}}boolupperson()//修改信息{intiid;person*ahead=myfirst;person*follow=ahead;cout<<"请输入要修改人员的编号:";cin>>iid;if(ahead==NULL){cout<<"无人员信息"<<endl;returnfalse;}else{while(ahead!=NULL){if(ahead->getnum()==iid){printf1(ahead);intnu=-1;for(inti=1;nu!=0;i++){intml;intmll;charty[30];cout<<"请选择要修改的内容:"<<endl;cout<<"1:姓名2:性不3:年龄4:职工类型5:职务"<<endl;cout<<"6:职称7:学历8:政治面貌9:来院时刻"<<endl;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<<"没有此人"<<endl;returnfalse;}}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";}voidsave()//保存文件到文件中{ofstreamfperson;fperson.open("person.txt",ios::out);person*p=myfirst;while(p){fperson<<p->getnum()<<"\t"<<p->gettype()<<"\t"<<p->getname()<<"\t"<<p->getsex()<<"\t"<<p->getage()<<"\t"<<p->gettime()<<"\t"<<p->getpos()<<"\t"<<p->gettechpos()<<"\t"<<p->getparty()<<"\t"<<p->getstudy();fperson<<endl;p=p->getnext();}fperson.close();cout<<"保存数据差不多完成"<<endl;}~School()//析构函数,删除各指针!{person*next=myfirst,*temp;while(next!=NULL){temp=next;next=next->getnext();deletetemp;}myfirst=NULL;}};voidmain(){Schools;//定义对象intc;do{cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;cout<<"高校人事治理系统"<<endl;cout<<""<<endl;cout<<"1--增加人员资料"<<endl;cout<<"2-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030中国痔疮膏行业产业运行态势及投资规划深度研究报告
- 2025至2030中国电梯组件行业产业运行态势及投资规划深度研究报告
- 2025至2030中国玲珑瓷茶具行业发展研究与产业战略规划分析评估报告
- 2025至2030中国特种运输行业发展趋势分析与未来投资战略咨询研究报告
- 建筑施工图(培训课件)
- 事故教育培训课件
- 医学生岗前培训
- 教育机器人智能化教学辅助工具的发展趋势
- 门诊导诊岗前培训
- 个性化教学与激发学生兴趣的实践
- 新概念英语第4册课文(中英文对照)
- DLT-969-2023年变电站运行导则
- 人体解剖学PPT完整全套教学课件
- 《健康经济学》课件Chapter16
- 2023学年完整公开课版走进企业
- 儿童用药剂量
- 人教版高中化学必修1教师用书
- 供热工程全套
- 中小学校长公开招聘试卷
- 2023年小升初综合素质测试题及答案
- 2023年巴中市初中阶段学校招生考试语文试题全卷满分
评论
0/150
提交评论