1、课 程 设 计 报 告课程名称 面向对象程序设计 课题名称 高校人事管理系统 专 业 通信工程 班 级 通信1101 学 号 030201 姓 名 指引教师 12 月 22 日湖南工程学院课 程 设 计 任 务 书课程名称 面向对象程序设计 课 题 高校人事管理系统 专业班级 通信工程 学生姓名 学 号 指引教师 审 批 任务书下达日期 年 12 月 22 日任务完毕日期 年 1 月 6 日一、设计内容与设计规定1.课程设计目:面向对象程序设计课程设计是集中实践性环节之一,是学习完面向对象程序设计课程后进行一次全面综合练习。规定学生达到纯熟掌握C+语言基本知识和技能;基本掌握面向对象程序设计思
2、想和办法;可以运用所学基本知识和技能,解决简朴面向对象程序设计问题,从而提高动手编程解决实际问题能力。2.课题题目公司库存管理系统高校学籍管理系统高校工资管理系统高校人事管理系统文献加密管理系统3设计规定:设计课题题目:第5个课题是扩展课题,有能力完毕同窗可以选取。别的每位同窗依照自己学号除以4所得余数加一选取相应题号课题。换题者不记成绩。依照自己相应课题完毕如下重要工作:完毕系统需求分析:涉及系统设计目与意义;系统功能需求(系统流程图);输入输出规定。完毕系统总体设计:涉及系统功能分析;系统功能模块划分与设计(系统功能模块图)。完毕系统详细设计:涉及数据库需求分析;类层次图;界面设计与各功能
3、模块实现。系统调试:调试浮现重要问题,编译语法错误及修改,重点是运营逻辑问题修改和调节。使用阐明书及编程体会:阐明如何使用你编写程序,详细列出每一步操作环节。核心源程序(带注释)按规定格式完毕课程设计报告,将其打印稿(A4纸)上交给教师存档。不得抄袭她人程序、课程设计报告,每个人应体现自己个性设计二、进度安排第 17 周 星期四 14时:00分18时:00分 星期五 19时:分21时:00分 第 18 周 星期三 19时:00分21时:00分 星期四 19时:00分21时:00分三 实验内容课题4:高校人事管理系统 (一)、课程设计题目:高校人事管理系统(二)、目与规定: 1、目: (1)规定
4、学生达到纯熟掌握C+语言基本知识和技能; (2)基本掌握面向对象程序设计基本思路和办法; (3)可以运用所学基本知识和技能,解决简朴面向对象程序设计问题。 2、基本规定: (1)规定运用面向对象办法以及C+编程思想来完毕系统设计; (2)规定在设计过程中,建立清晰类层次; (3)在系统中至少要定义四个类,每个类中要有各自属性和办法; (4)在系统设计中,至少要用到面向对象一种机制。 3、创新规定: 在基本规定达到后,可进行创新设计,如依照查找成果进行修改功能。 4、写出设计阐明书 (三)、设计办法和基本原理: 1、问题描述(功能规定): 某高校,重要人员有:在职人员(行政人员、教师、普通员工)
5、、退休人员。当前,需要存储这些人员人事档案信息:编号、姓名、性别、年龄、职务、级别、职称、政治面貌、最高学历、任职时间、来院时间、工资。其中行政人员只有职务和级别,教师只有职务和职称,普通员工只有职务,退休人员则没有职务、级别、职称,但有退休时间。规定: (1)添加删除功能:能依照学院人事变动状况,添加删除记录;(2)查询功能:能依照编号和姓名进行查询;(3)编辑功能(高档):依照查询对相应记录进行修改,并存储;(4)记录功能:能依照各种参数进行人员记录(在职人数、党员人数、女工人数、高学历高职称人数);(5)保存功能:能对输入数据进行相应存储,(扩展规定:规定重载插入和提取符以完毕数据保存和
6、打开)。(6)人员编号在生成人员信息时同步生成,每输入一种人员信息编号顺序加1。2、问题解决方案: 依照系统功能规定,可以将问题解决分为如下环节: (1)应用系统分析,建立该系统功能模块框图以及界面组织和设计;(2)分析系统中各个实体及它们之间关系涉及属性和行为; (3)依照问题描述,设计系统类层次; (4)完毕类层次中各个类描述(涉及属性和办法); (5)完毕类中各个成员函数定义; (6)完毕系统应用模块; (7)功能调试; (8)完毕系统总结报告以及系统使用阐明书。目 录1.系统需求分析12.总体设计23.详细设计33.1 功能提示43.2 添加人员功能53.3 查询功能73.4 记录功能
7、93.5 编辑功能104.系统调试115.成果分析126.总结137.附录141. 系统需求分析课题4:高校人事管理系统 (一)、课程设计题目:高校人事管理系统(二)、目与规定: 1、目: (1)规定学生达到纯熟掌握C+语言基本知识和技能; (2)基本掌握面向对象程序设计基本思路和办法; (3)可以运用所学基本知识和技能,解决简朴面向对象程序设计问题。 2、基本规定: (1)规定运用面向对象办法以及C+编程思想来完毕系统设计; (2)规定在设计过程中,建立清晰类层次; (3)在系统中至少要定义四个类,每个类中要有各自属性和办法; (4)在系统设计中,至少要用到面向对象一种机制。 3、创新规定:
8、 在基本规定达到后,可进行创新设计,如依照查找成果进行修改功能。 4、写出设计阐明书 (三)、设计办法和基本原理: 1、问题描述(功能规定): 某高校,重要人员有:在职人员(行政人员、教师、普通员工)、退休人员、返聘人员和暂时工。当前,需要存储这些人员人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。规定: (1)添加删除功能:能依照学院人事变动状况,添加删除记录;(2)查询功能:能依照编号和姓名进行查询;(3)编辑功能(高档):依照查询对相应记录进行修改,并存储;(4)记录功能:能依照各种参数进行人员记录(在职人数、党员人数、女工人数、高学历高职称人数
9、);(5)保存功能:能对输入数据进行相应存储,规定重载插入和提取符以完毕数据保存和打开。(6)人员编号在生成人员信息时同步生成,每输入一种人员信息编号顺序加1。2、问题解决方案: 依照系统功能规定,可以将问题解决分为如下环节: (1)应用系统分析,建立该系统功能模块框图以及界面组织和设计;(2)分析系统中各个实体及它们之间关系涉及属性和行为; (3)依照问题描述,设计系统类层次; (4)完毕类层次中各个类描述(涉及属性和办法); (5)完毕类中各个成员函数定义; (6)完毕系统应用模块; (7)功能调试; (8)完毕系统总结报告以及系统使用阐明书。2. 总体设计1.系统功能分析(1)资料维护:
10、系统维护涉及对各种表记录修改、删除、添加等操作。(2)资料维护:对数据表中信息进行浏览。 (3)系统查询:可以按职工编号、姓名等有关信息进行详细或模糊查询。(4)报表记录:涉及记录职工编号、职工姓名、职工性别、所在部门、职工年龄、工作日期、基本工资、职称、职务和简历等字段。(5)其他操作:系统封面、人性化提示信息。2.系统功能模块划分与设计 系统功能模块划分:数据查找与浏览、数据修改、报表显示和系统封面构成。系统各个功能大体框架如下:开始 管理系统主页面分别输入要输入人员信息添加完最后一项之后选取要修改人员信息修改完之后选取要删除人员信息删除之后图2.1 系统运营构造框图3. 详细设计功能选取
11、界面退出显示所有信息添加人员信息删除人员信息查询人员信息编辑人员信息记录人员数量图3.1 系统功能构造框图3.1 当咱们运营程序时,会浮现如下功能选取提示界面,代码已经附上。图3.2 主页面图某些代码如下:person pjk;int c;coutendl;cout-高校人事管理系统-endl;cout* *endl;cout* 1-添加人员信息并保存 *endl;cout* 2-删除人员信息 *endl;cout* 3-修改人员信息 *endl;cout* 4-查询人员信息 *endl;cout* 5-记录人员信息 *endl;cout* 6-显示所有信息 *endl;cout* 7-退出
12、*endl;cout-endl;cout 请选取(1-7): c;switch(c)case 1:pjk.tjry();menu();break;case 2:pjk.shancu();menu();break;case 6:pjk.output();menu();break;case 7:exit(1);break; void main()menu();3.2按提示输入序号,当输入1时,会浮现要操纵者输入有关信息。图3.3 添加人员图该图执行代码如下,新增人员模块,实现新人员信息添加功能:void person:tjry() /int v,l=1;char type220;char name
13、220;char sex210;char age210;char zhiwu220;char zhichen220;char zzmm220;char zgxl220;char rzsj220;char lysj230;cout请输入要添加人数k;p1.getbianhao()=ppk1.getbianhao();v=bianhao;for(int i=v+1;i=v+k;i+)cout请输入第l个人信息endl;couttype2;coutname2;coutsex2;coutage2;coutzhiwu2;coutzhichen2;coutzzmm2;coutzgxl2;coutrzsj2
14、;coutlysj2;pi.setperson(type2,name2,sex2,age2,zhiwu2,zhichen2,zzmm2,zgxl2,rzsj2,lysj2);l+;3.3 图3.4 查询功能图执行代码如下:人员查询模块,本模块提供查询方式涉及按编号和姓名2种,以便顾客查询。void person:find() /cout1:按编号查询-2:按姓名查询-请选取(1-2)m;while(m2)cout请重新输入(1-2)m;switch(m)case 1:.while(!filem.eof() filemppk.getnum();filemppk.gettype();filempp
15、k.getname();filemppk.getsex();filemppk.getage();if(strcmp(ppk.getnum(),n)=0).setw(10)来院时间ppk.getnum();.if(strcmp(ppk.getname(),nname)=0)coutppk.getnum()setw(9)ppk.gettype()setw(5)ppk.getname()setw(5)ppk.getsex()setw(5)ppk.getage()setw(5)ppk.getzhiwu()setw(5)ppk.getzhichen()setw(9)ppk.getzzmm()setw(1
16、0)ppk.getzgxl()setw(10)ppk.getrzsj()setw(10)ppk.getlysj()endl;break;k+;if(filem.eof()coutendl;coutppk.getnum();filemppk.gettype();.filemppk.getzzmm();filemppk.getzgxl();c+;if(strcmp(ppk.getzgxl(),boshi)=0)d+;k+;filem.close();cout在职人数setw(12)党员人数setw(12)女工人数setw(12)高学历人数endl;coutasetw(12)bsetw(12)cse
17、tw(12)dendl;3.5修改运营成果。图3.6 修改功能图该运营成果代码在此略掉,已在附录中补上。4. 系统调试1. 程序代码编写过程中,缺省分号,中括号不成对等基本格式错误,系统提示错误,此时做有关修改添加即可。如:图4.1 缺少分号报错图2. 缺少返回类型,如图4.2 缺返回类型报错图3.在函数调用时,出先函数未知错误,因素是函数调用在声明前,所有要在函数调用迈进行声明。程序运营界面:图4.3 程序提示界面图图4.4 添加人员功能图 4.error C2065:setw :undeclared identifier 在找预编译头文献途径时出错,c+中setw(n)设立域宽不能调用,要
18、加上头文献 #include 5.error C:unknown character 0xa3 不结识字符0xa3。(普通是中文或中文标点符号)。 6.error C2057:expected constant expression 但愿是常量表达式。(普通出当前switch语句case分支中)。7.error C2143:syntax error:missing : before 句法错误:“”前缺少“;”。5. 成果分析本程序能实现人员信息以.txt格式保存,使用到指针为实时开辟空间提供了以便。基本实现了题目规定各个功能模块,运营界面提示做一目了然,为使用者提供了以便。本程序局限性之处就是
19、功能显示界面不够完美,显示有点拥挤感觉。一种程序员精心设计程序很难为其她程序所用。界面比较单一,功能相对较少,只能逐个增长信息,不能批量增长。本代码较好实现了人员添加保存,删除,查询等功能。6. 总结本次课程设计让我初步体会到C+面向对象设计特性,该语言能编写建立对象,QQ应当就使用到了C+。通过这次课程设计自己动手编写了人事管理系统在编写过程中遇到了许多问题在解决问题同步对类、单链表、文献等进一步加深了理解强化了在上课学知识对自己提高很大。人事管理系统是典型信息管理系统涉及东西诸多涉及添加人员查询人员资料删除成员资料等。这次设计选用Win-TC通过努力较好完毕了自己设计同步理解到自己局限性因
20、此咱们还要通过不断学习不断提高自己。总之,通过这次课程设计,我收获颇丰,相信会为自己后来学习和工作带来很大好处。最重要还是激发了我编程兴趣和热情,让我从一种只懂理论变成了能做某些小型程序,让我对编程更加热爱了。整体地评价这次课程设计,我以为收获很大,正如上面所说那样,通过课程设计,既复习了此前旧知识,又学到了某些新知识;设计增强了咱们用所学知识去解决详细问题能力,进一步培养了咱们独立思考问题和解决问题能力。特别是学会了在Visual C+ 集成开发环境中如何调试程序办法。固然,教师悉心指引和同窗协助也是不可忽视,在此感谢本次课程设计中所有辅导教师对我关怀和协助,诚心诚意感谢她们对我勉励与辅导,
21、是她们在我迷茫时候给了我些许提示,激发了我编程灵感;尚有,我在此也十分感谢本次课程设计中同窗们对我协助。7. 附录程序源代码如下:#include#include#include#includeusing namespace std;int k;class personprivate: char num10; char type20; char name20; char sex10; char age10; char zhiwu20; char zhichen20; char zzmm20; char zgxl20; char rzsj20; char lysj30; static int b
22、ianhao;public:void setperson(char *type1,char *name1,char *sex1,char *age1,char *zhiwu1,char *zhichen1,char *zzmm1,char *zgxl1,char *rzsj1,char *lysj1);static int& getbianhao() return bianhao;char * gettype() return type;char * getname() return name;char * getsex() return sex;char * getage() return
23、age;char * getzhiwu() return zhiwu;char * getzhichen() return zhichen; char * getzzmm() return zzmm; char * getzgxl() return zgxl; char * getrzsj() return rzsj; char * getlysj() return lysj; char * getnum() return num; void tjry(); void find(); void output(); void shancu(); void xiugai(); void tongj
24、i();person p100;person pp100;int k1;int person:bianhao=0;void person:setperson(char *type1, char *name1, char *sex1, char *age1, char *zhiwu1, char *zhichen1, char *zzmm1, char *zgxl1, char *rzsj1, char *lysj1 )int static j=1;strcpy(type,type1);strcpy(name,name1);strcpy(sex,sex1);strcpy(age,age1);st
25、rcpy(zhiwu,zhiwu1);strcpy(zhichen,zhichen1);strcpy(zzmm,zzmm1);strcpy(zgxl,zgxl1);strcpy(rzsj,rzsj1);strcpy(lysj,lysj1);bianhao+;ofstream file(添加人员.txt,ios_base:app);filepj.getbianhao()endl;filepj.gettype()endl;filepj.getname()endl;filepj.getsex()endl; filepj.getage()endl;filepj.getzhiwu()endl;filep
26、j.getzhichen()endl;filepj.getzzmm()endl;filepj.getzgxl()endl;filepj.getrzsj()endl;filepj.getlysj()ppk.getnum();filemppk.gettype();filemppk.getname();filemppk.getsex();filemppk.getage();filemppk.getzhiwu(); filemppk.getzhichen();filemppk.getzzmm();filemppk.getzgxl();filemppk.getrzsj();filemppk.getlys
27、j();if(strcmp(ppk.gettype(),行政人员)=0|strcmp(ppk.gettype(),教师)=0|strcmp(ppk.gettype(),普通员工)=0)a+;if(strcmp(ppk.getzzmm(),党员)=0)b+;if(strcmp(ppk.getsex(),nv)=0)c+;if(strcmp(ppk.getzgxl(),boshi)=0)d+;k+;filem.close();cout在职人数setw(12)党员人数setw(12)女工人数setw(12)高学历人数endl;coutasetw(12)bsetw(12)csetw(12)dppk.g
28、etnum(); filemppk.gettype(); filemppk.getname(); filemppk.getsex(); filemppk.getage(); filemppk.getzhiwu(); filemppk.getzhichen(); filemppk.getzzmm(); filemppk.getzgxl(); filemppk.getrzsj(); filemppk.getlysj(); k+;filem.close();cout请输入要修改人编号:x;cout请输入编号为x人需要修改项目代号:endl;cout1:编号-2:人员类型-3:姓名-4:性别-5:年龄
29、-6:职务-7:职称-8:政治面貌-9:最高学历-10:任职时间-11:来院时间y;switch(y)case 1: coutppx.getnum() ; break;case 2: coutppx.gettype(); break;case 3: coutppx.getname(); break;case 4: coutppx.getsex(); break;case 5:coutppx.getage(); break;case 6: coutppx.getzhiwu(); break;case 7: coutppx.getzhichen(); break;case 8: coutppx.g
30、etzzmm(); break;case 9: coutppx.getzgxl(); break;case 10: coutppx.getrzsj();break;case 11:coutppx.getlysj(); break;ofstream file1(添加人员.txt,ios_base:trunc);for(k=1;k=bianhao;k+) file1ppk.getnum()endl; file1ppk.gettype()endl; file1ppk.getname()endl; file1ppk.getsex()endl; file1ppk.getage()endl; file1p
31、pk.getzhiwu()endl; file1ppk.getzhichen()endl; file1ppk.getzzmm()endl; file1ppk.getzgxl()endl;file1ppk.getrzsj()endl; file1ppk.getlysj()endl; file1.close();cout修改并保存完毕ppk.getnum();filemppk.gettype();filemppk.getname();filemppk.getsex();filemppk.getage();filemppk.getzhiwu();filemppk.getzhichen();filem
32、ppk.getzzmm();filemppk.getzgxl();filemppk.getrzsj();filemppk.getlysj();k+; filem.close();cout请输入要被删除信息人编号:z;while(zbianhao)cout没有找到你要删除人,请重新输入:z;for(k=1;k=bianhao;k+)if(z=k)continue;ofstream file2(添加人员.txt,ios_base:trunc);file2ppk.getnum()endl;file2ppk.gettype()endl;file2ppk.getname()endl; file2ppk.getsex()endl;file2ppk.getage()endl;file2ppk.getzhiwu()endl;file2ppk.getzhichen()endl;file2ppk.getzzmm()endl;file2ppk.getzgxl()endl;file2ppk.getrzsj()endl;file2ppk
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100