第1页共19页课程设计任(论)务书学专业班一、课程设计(论文)题目高校教职工人事管理系统二、课程设计(论文)工作自2011年6月20日起至2011年6月26日止。三、课程设计(论文)地点:创新大楼四、课程设计(论文)内容要求:1.本课程设计的目的(1)熟练掌握C++语言的基本知识和技能;(2)掌握面向对象程序设计的基本思路和方法;(3)了解指针、类的继承、文件的打开和保存、链表应用(4)利用所学的基本知识和技能,解决面向对象程序设计问题(5)培养分析、解决问题的能力;提高学生的科技论文写作能力。2.课程设计的任务及要求1)基本要求:(1)设计一个的菜单将在实现的功能显示出来,并有选择提示(2)教师的基本信息包括编号、职工分类(行政人员,教师,一般员工,退休人员,返聘人员,临时工)、性别、年龄,职务(无,科级,处级,厅级);、职称(无,初级,中级,高级);、政治面貌(群众,中共党员,民主党派)、学历(中专,大专,大学,硕士,博士)(3)能够实现教职工信息增加、删除、修改、查找。(4)能够统计在职人员、中共党员、女教职工、高职称、高学历的人数。(5)要求有错误提示功能,例如输入日期,输入错误提示重新输入2)创新要求:教职工的信息可以通过文件保存,并可能载入。3)课程设计论文编写要求(1)要按照课程设计模板的规格书写课程设计论文(2)论文包括目录、正文、心得体会、参考文献等(3)课程设计论文用B5纸统一打印,装订按学校的统一要求完成4)答辩与评分标准:第2页共19页(1)完成原理分析:20分;(2)完成设计过程:40分;(3)完成调试:20分;(4)回答问题:20分。5)参考文献:(1)谭浩强.C++程序设计.北京:清华大学出版社,2004(2)(3))课程设计进度安排内容天数地点构思及收集资料2图书馆编程设计与调试5实验室撰写论文3图书馆、实验室学生签名:2011年6月日课程设计(论文)评审意见(1)完成原理分析(20分):优()、良()、中()、一般()、差();(2)设计分析(20分):优()、良()、中()、一般()、差();(3)完成调试(20分):优()、良()、中()、一般()、差();(4)翻译能力(20分):优()、良()、中()、一般()、差();(5)回答问题(20分):优()、良()、中()、一般()、差();(6)格式规范性及考勤是否降等级:是()、否()评阅人:职称:2011年6月日目录第3页共19页一、问题描述.................................................................................4二、内容简介.................................................................................42.1基本要求:............................................................................42.2.算法思想:...........................................................................42.3.模块划分:...........................................................................72.4.源程序:...............................................................................82.5.测试情况:.........................................................................15三、小结...........................................................................................17四、参考文献...................................................................................19第4页共19页问题描述(1)编辑一个菜单并需要选择功能:需要运用到swich语句进行菜单的编辑,以及实现选择功能(2)录入教师的各项信息:运用到了voidset(inti)函数即信息的录入(3)能够实现教职工信息增加、删除、修改、查找。运用到了voidadd(teacherp)//增加资料voidmodification()//修改资料voidexpurgate()//删除资料intcheckout(intn,intage1);//查找资料函数。(4)能够统计在职人员,中党人员,女教职工,高职称,高学历人数。我在这一方面并未使用函数,而是在输出时运用if语句和循环语句实现的。(5)错误提示功能主要也是通过if…else语句实现。内容简介2.1基本要求:(1)设计一个的菜单将在实现的功能显示出来,并有选择提示(2)教师的基本信息包括编号、职工分类(行政人员,教师,一般员工,退休人员,返聘人员,临时工)、性别、年龄,职务(无,科级,处级,厅级);、职称(无,初级,中级,高级);、政治面貌(群众,中共党员,民主党派)、学历(中专,大专,大学,硕士,博士)(3)能够实现教职工信息增加、删除、修改、查找。(4)能够统计在职人员、中共党员、女教职工、高职称、高学历的人数。(5)要求有错误提示功能,例如输入日期,输入错误提示重新输入2.2.算法思想:这个程序实现时需要注意的是头文件的不同string文件是用来实现姓名,政治面貌,等string型数据的定义。string是C++中的字符串。字符串对象是一种特殊类型的容器,专门设计来操作的字符序列。不像传统的c-strings,只是在数组中的一个字符序列,我们称之为字符数组,而C++字符串对象属于一个类,这个类有很多内置的特点,在操作方式,更直观,另外还有很多有用的成员函数。#includeiomanip主要是对cin,cout之类的一些操纵运算子,比如setfill,setw,setbase,setprecision等等。它是I/O流控制头文件,就像C里面的格式化输出一样。本程序主要设计了一个类即teacher类,它包含了所需的各类私有成员包括intnumber//教工号stringsex//性别intage//年龄stringname,stringzhengzhimianmao//政治第5页共19页面貌stringcall//职称stringzhiwu//职务stringxueli//学历以及增加函数,录入函数,删除函数,修改函数,查找函数。修改函数由于要修改的变量种类很多并且需要选择所以运用了swich语句来实现。录入函数先录入数据判断对错最后进行数据的存储。整个函数的流程就是先定义一个类然后对类中的各个函数进行定义,最后在菜单实现的时候开始将函数进行运用。在类之前还有定义了一些全局变量,常变量主要是用来实现统计,和循环语句。主函数实现如下:voidmain(){intn,m=0,a,i,flag=1;teacherp[N],pt;intage1=0;stringcourseform1=0;cout首先输入教师信息endl;for(i=0;iN-5;i++)p[i].set(i+1);do{cout***************endl主菜单endl***************endl(1)修改资料(2)增加资料(3)删除资料(4)显示资料(5)根据工龄查找并显示(6)显示统计结果(7)退出endl然后选择1-6进行操作:;cinn;switch(n){case1:cout输入要修改的教师的教工号:;cina;for(i=0;iN-5;i++){if(p[i].fanhui(a))p[i].modification();}break;case2:第6页共19页pt.add(p[N-5+m]);m++;break;case3:cout输入要删除的教师的教工号:;cina;for(i=0;iN-5;i++){if(p[i].fanhui(a))p[i].expurgate();}break;case4:cout输入要显示的教师的教工号:;cina;for(i=0;iN-5;i++){if(p[i].fanhui(a))p[i].show();}break;case5:cout***子菜单:查找资料***endl1按教工年龄查找endl输入1;cinn;if(n==1){cout输入教工年龄:;cinage1;}for(i=0;iN-5;i++)if(p[i].checkout(n,age1)){cout已查找到endl;p[i].show();}break;case6:cout***子菜单:显示统计结果***;cout中共党员人数为:dangendl;第7页共19页cout女教职工人数为:nvendl;cout高职称人数为:gaozhiendl;cout搞学历人数为:gaoliendl;cout(说明:1.在职人员不包括退休人员。endl;cout2.高学历包括硕士及博士。)endlendl;for(i=0;iN-5;i++){if(p[i].fanhui(a))p[i].show();}break;case7:flag=0;break;default:cout输入错误,不在1-6之间endl;flag=0;}}while(flag!=0);cout!!!程序运行结束!!!endl;}2.3.模块划分:这个程序的函数主要有录入,增加,删除,修改,查找。录入函数主要是运用了输入输出语句将所需的教职工信息通过输入输出语句实现录入。1增加函数主要是通过“p.set(N-4)”来实现增加,系统设置实际录入的函数个数为(N-5)增加一个即(N-4);2删除信息函数主要是将所需删除的变量值赋值为0来实现的即name=0;number=0;sex='\0';age=0;call=0;zhengzhimianmao='\0';xueli=0;zhiwu=0;3修改函数主要是先建立一个子菜单表明要修改的内容利用swich语句进行选择修改。主要顺序是先选择要修改的项目,然后将修改过后的值赋给初值例如number=renumber。4查找函数主要是通过年龄查找这一条线索来进行资料查找主要利用if…else语句来实现。最后菜单的实现是通过swich语句来建立的主要是将修改,查找,显示,删除,统计作为swich的几种情况最后在菜单内进行输出选择。第8页共19页2.4.源程序:#includeiostream#includeiomanip#includestringusingnamespacestd;constintN=7;intt=0;intdang=0;//统计中共党员人数intgaozhi=0;//统计高职称人数intgaoli=0;//统计高学历人数intnv;classteacher{public:voidset(inti);//录入信息voidadd(teacherp);//增加资料voidmodification();//修改资料voidexpurgate();//删除资料intcheckout(intn,intage1);//查找资料voidshow();//输出该