版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 设 计 报 告课程名称 面向对象程序设计 课题名称 高校人事管理系统 专 业 通信工程 班 级 通信1101 学 号 201103020127 姓 名 皮锋 指导教师 李峰、谭晓兰、张益星 2012年 12 月 22 日湖南工程学院课 程 设 计 任 务 书课程名称 面向对象程序设计 课 题 高校人事管理系统 专业班级 通信工程 学生姓名 皮锋 学 号 201103020127 指导老师 李峰、谭晓兰、张益星 审 批 任务书下达日期 2012 年 12 月 22 日任务完成日期 2013 年 1 月 6 日二、进度安排第 17 周 星期四 14时:00分18时:00分 星期五 19时:
2、分21时:00分 第 18 周 星期三 19时:00分21时:00分 星期四 19时:00分21时:00分实验内容课题4:高校人事管理系统 (一)、课程设计题目:高校人事管理系统(二)、目的与要求: 1、目的: (1)要求学生达到熟练掌握C+语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 2、基本要求: (1)要求利用面向对象的方法以及C+的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次; (3)在系统中至少要定义四个类,每个类中要有各自的属性和方法; (4)在系统的设计中,
3、至少要用到面向对象的一种机制。 3、创新要求: 在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。 4、写出设计说明书 (三)、设计方法和基本原理: 1、问题描述(功能要求): 某高校,主要人员有:在职人员(行政人员、教师、一般员工)、退休人员。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、级别、职称、政治面貌、最高学历、任职时间、来院时间、工资。其中行政人员只有职务和级别,教师只有职务和职称,一般员工只有职务,退休人员则没有职务、级别、职称,但有退休时间。要求: (1)添加删除功能:能根据学院人事的变动情况,添加删除记录;(2)查询功能:能根据编号和姓名进
4、行查询;(3)编辑功能(高级):根据查询对相应的记录进行修改,并存储;(4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数);(5)保存功能:能对输入的数据进行相应的存储,(扩展要求:要求重载插入和提取符以完成数据的保存和打开)。(6)人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。2、问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系包括属性和行为; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个
5、类的描述(包括属性和方法); (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告以及系统使用说明书。目 录 TOC o 1-2 h z u HYPERLINK l _Toc171224774 1.系统需求分析 PAGEREF _Toc171224774 h 1 HYPERLINK l _Toc171224775 2.总体设计1 HYPERLINK l _Toc171224776 3.详细设计2 HYPERLINK l _Toc171224777 4.系统调试18 HYPERLINK l _Toc171224778 5.结果分析20 HYPE
6、RLINK l _Toc171224779 6.总结20系统需求分析1.用户需求:(1)添加删除功能:能根据学院人事的变动情况,添加删除记录;(2)查询功能:能根据编号和姓名进行查询;(3)编辑功能(高级):根据查询对相应的记录进行修改,并存储;(4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数);(5)保存功能:能对输入的数据进行相应的存储,(扩展要求:要求重载插入和提取符以完成数据的保存和打开)。(6)人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。2.系统设计目标:(1)要求学生达到熟练掌握C+语言的基本知识和技能; (2)基本
7、掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 3.系统拟实现的功能: 对高校人事系统进行添加,编辑,查询,统计,保存功能。2.总体设计1.系统功能分析(1)资料维护:系统维护包括对各种表记录的修改、删除、添加等操作。(2)资料维护:对数据表中的信息进行浏览。 (3)系统查询:可以按职工编号、姓名等相关信息进行详细或模糊查询。(4)报表统计:包括统计职工编号、职工姓名、职工性别、所在部门、职工年龄、工作日期、 基本工资、职称、职务和简历等字段。(5)其它操作:系统封面、人性化提示信息。2.系统功能模块划分与设计 系统功能模块划分:数
8、据查找与浏览、数据修改、报表显示和系统封面构成。 开始 管理系统主页面分别输入要输入的人员信息添加完最后一项之后选择要修改的人员信息修改完之后选择要删除的人员信息删除之后图1-1 系统功能模块详细设计 高校人事管理系统保存功能查询功能修改功能添加功能显示功能删除功能图1-2 各功能模块实现程序源代码:#include#include/对外存文件的输入输出操作#include#include/字符串模板类#include/流操作using namespace std; int k;/全局变量 class personprivate: char num10;/编号char type20;/类型 c
9、har name20;/姓名 char sex10;/性别 char zhiwu20;/职务 char age10;/年龄 char zhichen20;/职称 char zzmm20;/政治面貌 char zgxl20;/最高学历 char rzsj20;/任职时间 char lysj30;/来院时间 static int bianhao;/编号public:void setperson(char *type1,char *name1,char *sex1,char *age1,char *zhiwu1,char *zhichen1,char *zzmm1,char *zgxl1,char
10、*rzsj1,char *lysj1);static int& getbianhao() return bianhao;char * gettype() return type;char * getname() return name;char * getsex() return sex;char * getage() return age;char * getzhiwu() return zhiwu;char * getzhichen() return zhichen; char * getzzmm() return zzmm; char * getzgxl() return zgxl; c
11、har * getrzsj() return rzsj; char * getlysj() return lysj; char * getnum() return num; void tjry(); void find(); void output(); void shancu(); void xiugai(); void tongji();person p100;person pp100;int k1;int person:bianhao=0;void person:setperson(char *type1,char *name1,char *sex1,char *age1, char *
12、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);strcpy(zhiwu,zhiwu1);strcpy(zhichen,zhichen1);strcpy(zzmm,zzmm1);strcpy(zgxl,zgxl1);strcpy(rzsj,rzsj1);strcpy(lysj,lysj1);bianhao+;ofstream fil
13、e(添加人员.txt,ios_base:app);/向外存文件的输入操作filepj.getbianhao()endl;filepj.gettype()endl;filepj.getname()endl;filepj.getsex()endl; filepj.getage()endl;filepj.getzhiwu()endl;filepj.getzhichen()endl;filepj.getzzmm()endl;filepj.getzgxl()endl;filepj.getrzsj()endl;filepj.getlysj()ppk.getnum();filemppk.gettype();
14、filemppk.getname();filemppk.getsex();filemppk.getage();filemppk.getzhiwu(); filemppk.getzhichen();filemppk.getzzmm();filemppk.getzgxl();filemppk.getrzsj();filemppk.getlysj();if(strcmp(ppk.gettype(),行政人员)=0|strcmp(ppk.gettype(),教师)=0|strcmp(ppk.gettype(),一般员工)=0)a+;if(strcmp(ppk.getzzmm(),党员)=0)b+;if
15、(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.getnum(); filemppk.gettype(); filemppk.getname(); filemppk.getsex(); filemppk.getage(); filemppk.getzhiwu(); filemppk.getzhichen();
16、 filemppk.getzzmm(); filemppk.getzgxl(); filemppk.getrzsj(); filemppk.getlysj(); k+;filem.close();cout请输入要修改的人的编号:x;cout请输入编号为x的人需要修改的项目的代号:endl;cout1:编号-2:人员类型-3:姓名-4:性别-5:年龄-6:职务-7:职称-8:政治面貌-9:最高学历-10:任职时间-11:来院时间y;switch(y)case 1: coutppx.getnum() ; break;case 2: coutppx.gettype(); break;case 3:
17、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.getzzmm(); break;case 9: coutppx.getzgxl(); break;case 10: coutppx.getrzsj();break;case 11:coutppx.getlysj(); break;ofstream f
18、ile1(添加人员.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; file1ppk.getzhiwu()endl; file1ppk.getzhichen()endl; file1ppk.getzzmm()endl; file1ppk.getzgxl()endl; file1ppk.getrzsj()endl; file1pp
19、k.getlysj()endl; file1.close(); cout修改并保存完毕ppk.getnum();filemppk.gettype();filemppk.getname();filemppk.getsex();filemppk.getage();filemppk.getzhiwu();filemppk.getzhichen();filemppk.getzzmm();filemppk.getzgxl();filemppk.getrzsj();filemppk.getlysj();k+; filem.close();cout请输入要被删除信息的人的编号:z;while(zbianha
20、o)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.get
21、zgxl()endl;file2ppk.getrzsj()endl;file2ppk.getlysj()endl;file2.close();cout删除记录完毕endl; void person:find() /查找人员cout1:按编号查询-2:按姓名查询-请选择(1-2)m;while(m2)cout请重新输入(1-2)m;switch(m)case 1:char n10;coutn;ifstream filem(添加人员.txt,ios_base:in);int k=1;cout编号setw(9)人员类型setw(5)姓名setw(5)性别setw(5)年龄setw(5)职务setw(
22、5)职称setw(9)政治面貌setw(10)最高学历setw(10)任职时间setw(10)来院时间ppk.getnum();filemppk.gettype();filemppk.getname();filemppk.getsex();filemppk.getage();filemppk.getzhiwu();filemppk.getzhichen();filemppk.getzzmm();filemppk.getzgxl();filemppk.getrzsj();filemppk.getlysj();if(strcmp(ppk.getnum(),n)=0)coutppk.getnum()
23、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(10)ppk.getzgxl()setw(10)ppk.getrzsj()setw(10)ppk.getlysj()endl;break;k+;if(filem.eof()coutendl;cout 警告:没有要查找的人!;filem.close(); break;case 2:char nname20;
24、coutnname;ifstream filem(添加人员.txt,ios_base:in);int k=1;cout编号setw(9)人员类型setw(5)姓名setw(5)性别setw(5)年龄setw(5)职务setw(5)职称setw(9)政治面貌setw(10)最高学历setw(10)任职时间setw(10)来院时间ppk.getnum();filemppk.gettype();filemppk.getname();filemppk.getsex();filemppk.getage();filemppk.getzhiwu();filemppk.getzhichen();filempp
25、k.getzzmm();filemppk.getzgxl();filemppk.getrzsj();filemppk.getlysj();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(10)ppk.getzgxl()setw(10)ppk.getrzsj
26、()setw(10)ppk.getlysj()endl;break;k+;if(filem.eof()coutendl;cout 警告:没有要查找的人!;filem.close();break; void person:tjry() /添加人数int v,l=1;char type220;char name220;char sex210;char age210;char zhiwu220;char zhichen220;char zzmm220;char zgxl220;char rzsj220;char lysj230;cout请输入要添加的人数k;p1.getbianhao()=ppk1.
27、getbianhao();v=bianhao;for(int i=v+1;i=v+k;i+)cout请输入第l个人的信息endl;couttype2;coutname2;coutsex2;coutage2;coutzhiwu2;coutzhichen2;coutzzmm2;coutzgxl2;coutrzsj2;coutlysj2;pi.setperson(type2,name2,sex2,age2,zhiwu2,zhichen2,zzmm2,zgxl2,rzsj2,lysj2);l+; void person:output() /ifstream filem(添加人员.txt,ios_bas
28、e:in);int k=1;cout编号setw(9)人员类型setw(5)姓名setw(5)性别/在输出前增加空格setw(5)年龄setw(5)职务setw(5)职称setw(9)政治面貌setw(10)最高学历setw(10)任职时间setw(10)来院时间ppk.getbianhao();filemppk.gettype();filemppk.getname();filemppk.getsex();filemppk.getage();filemppk.getzhiwu();filemppk.getzhichen();filemppk.getzzmm();filemppk.getzgxl
29、();filemppk.getrzsj();filemppk.getlysj();coutppk.getbianhao()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(10)ppk.getzgxl()setw(10)ppk.getrzsj()setw(10)ppk.getlysj()endl; k+;k1=-k;filem.close();void
30、menu()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-退出 *endl;coutendl;cout 请选择(1-7): c;switch(c)case 1: pjk.tjry();menu();break;case 2:pjk.shancu();menu()
31、; break;case 3:pjk.xiugai();menu(); break;case 4:pjk.find() ;coutendlendl; menu();break;case 5:pjk.tongji();menu(); break;case 6:pjk.output();menu();break;case 7:exit(1);break; void main()system(color 5F);menu();序运行结果:图2-1 程序运行结果 图2-1 存入人事信息系统调试(调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修改和调整) 1.error C2065: set
32、w : undeclared identifier 在找预编译头文件路径时出错,c+中的setw(n)设置域宽不能调用,要加上头文件 #include 2.error C2018: unknown character 0 xa3 不认识的字符0 xa3。(一般是汉字或中文标点符号)。 3.error C2057: expected constant expression 希望是常量表达式。(一般出现在switch语句的case分支中)。4.error C2143: syntax error: missing : before 句法错误:“”前缺少“;”。在编写查找功能时,本来用for循环。但要求达到条件再循环,且条件是(!filem.eof(),而不是一个数,所以后来改成了while。while(!filem.eof() filemppk.getnum();filemppk.gettype();filemppk.getname();filemppk.getsex();filemppk.getag
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 侧向测井课程设计报告
- 斑马餐饮运营课程设计
- 煤气管理系统课程设计
- 画室消课活动课程设计
- 融合课程设计数学
- 湖南研学旅行课程设计
- 批判性课程设计
- 菱形垫片落料模课程设计
- 医共体的数字化转型:某县域医共体整体规划建设方案
- 美心集团UERP信息化解决方案
- 《婴幼儿常见疾病预防与照护》课程标准
- 《让我们的学校更美好》课件ppt
- JTGT-3833-2018-公路工程机械台班费用定额
- 疗效精油轻图典
- 工业机器人的手部-末端执行器 课件
- 数学课堂如何提高学生的学习主动性
- 工务劳安培训课件
- 初中英语新课程标准及教材分析省一等奖课件
- 音乐治疗专业培养方案
- 莎士比亚在近现代中国的接受-河南大学中国大学mooc课后章节答案期末考试题库2023年
- 车间机修工绩效考核细则制度
评论
0/150
提交评论