高校人事管理系统
- 格式:docx
- 大小:147.39 KB
- 文档页数:33
课程设计报告
姓
指导教师
2012 年 12 月 22 日
丨0
课程名称 面向对象程序设计 课题名称
高校人事管理系统
专
业 通信工程 班 级 通信1101
学
口 号 2011030201
名
湖南工程学院
课程设计任务书
课程名称面向对象程序设计课题高校人事管理系统
专业班级通信工程
学生姓名
指导老师
任务书下达日期2012 年12 月22 日
任务完成日期2013年1 月
、设计内容与设计要求
1.课程设计目的:
面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》
课程后进行的一次全面的综合练习。
要求学生达到熟练掌握C++语言的基本知识和技能; 基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。
2.课题题目
⑴公司库存管理系统
⑵高校学籍管理系统⑶高校工资管理系统
⑷高校人事管理系统⑸文件加密管理系统
3.设计要求:
⑴设计课题题目:第5个课题是扩展课题,有能力完成的同学可以选择。
其余每位同学根
据自己学号除以4所得的余数加一选择相应题号的课题。
换题者不记成绩。
⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括系统设计目的与
意义;系统功能需求(系统流程图);输入输出的要求。
②完成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模块图)。
③完成系统详细设计:包括数据库需求分析;类层次图;界面设计与各功能模块实现。
④系统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修改和调整。
⑤使用说明书及编程体会:说明如何使用你编写的程序,详细列出每一步的操作步骤。
⑥关键源程序(带注释)
⑶按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。
⑷不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计
进度安排
第17周
星期四 14 时:00分一 —18时:00分
星期五
19
时:分一一 21时:00分
第18周
星期三 19 时:00分— -一21 时:00 分
星期四
19
时:00分 ――21 时:00 分
三.实验内容
课题4:高校人事管理系统
(一)、课程设计题目:
高校人事管理系统
(二八目的与要求:
1、 目的:
(1) 要求学生达到熟练掌握 (2) 基本掌握面向对象程序
设计的基本思路和方法;
(3) 能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2、 基本要求:
要求利用面向对象的方法以及C++勺编程思想来完成系统的设计; 要求在设计的过程中,建立清晰的类层次;
在系统中至少要定义四个类,每个类中要有各自的属性和方法; 在系统的设计中,至少要
用到面向对象的一种机制。
(三)、设计方法和基本原理:
1、问题描述(功能要求):
某高校,主要人员有:在职人员(行政人员、教师、一般员工)、退休人员。
现在, 需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、级别、职称、政 治面貌、最高学历、任职时间、来院时间、工资。
其中行政人员只有职务和级别,教师只有职务和职称,一般员工只有职务,退休人 员则没有职
C++语言的基本知识和技能; (3) (4)
3、 创新要求:
在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
4、 写出设计说明书
务、级别、职称,但有退休时间。
要求:
添加删除功能:能根据学院人事的变动情况,添加删除记录; 查询功能:能根据编号和姓
名进行查询;
编辑功能(高级):根据查询对相应的记录进行修改,并存储;
统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人
数、高学历高职称人数);
(5) 保存功能:能对输入的数据进行相应的存储,(扩展要求:要求重载插入和提 取符以完
成数据的保存和打开)。
(6) 人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加
2、问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤:
应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; 分析系统中的各个实体及它们之间的关系包括属性和行为; 根据问题描述,设计系统的类层次;
完成类层次中各个类的描述(包括属性和方法);
完成类中各个成员函数的定义; 完成系统的应用模块;
功能调试;
完成系统总结报告以及系统使用说明书。
(1) ⑵ (3) 1。
(5) (6) (8)
精品文档
1.系统需求分析
2.总体设计 2..
3.详细设计 3..
3.1 功能提示
3.2 添加人员功能 5.
3.3 查询功能
3.4 统计功能9..
3.5 编辑功能10
4.系统调试11
5.结果分析12
6.总结 1.3
7. 附录,14
.
精品文档
1.系统需求分析
课题4:高校人事管理系统
(一)、课程设计题目:
高校人事管理系统
(二)、目的与要求:
(1)要求学生达到熟练掌握C++语言的基本知识和技能;
(2)基本掌握面向对象程序设计的基本思路和方法;
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2、基本要求:
要求利用面向对象的方法以及C++勺编程思想来完成系统的设计;要求在设计
的过程中,建立清晰的类层次;
在系统中至少要定义四个类,每个类中要有各自的属性和方法;
在系统的设计中,至少要用到面向对象的一种机制。
1、目的:
(4)
3、创新要求:
在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
4、写出设计说明书
(三)、设计方法和基本原理:
1、问题描述(功能要求):
某高校,主要人员有:在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。
现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。
要求:
咼学历咼职称人数);
(5)保存功能:能对输入的数据进行相应的存储,要求重载插入和提取符以完成数
(1) (2) (3) (4) 添加删除功能:能根据学院人事的变动情况,添加删除记录; 查询功能:能根据编号和姓名进行查询;
编辑功能(高级):根据查询对相应的记录进行修改,并存储;
统计功能:能根据多种参数进行人员的统计 (在职人数、党员人数、女工人数、
可以按职工编号、姓名等相关信息进行详细或模糊查询。
包括统计职工编号、职工姓名、职工性别、所在部门、职工年龄、工 作日期、基本工资、职称、职务和简历等字段。
(5)其它操作:系统封面、人性化提示信息。
2.系统功能模块划分与设计
系统功能模块划分:数据查找与浏览、数据
修改、报表显示和系统封面构成。
系统的各个功能大体框架如下:
据的保存和打开。
(6)人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加 1。
2、问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1) 应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; (2) 分析系统中的各个实体及它们之间的关系包括属性和行为; 根据问题描述,设计系统的类层次;
完成类层次中各个类的描述(包括属性和方法)
(5) (6) 完成类中各个成员函数的定义; 完成系统的应用模块;
功能调试;
完成系统总结报告以及系统使用说明书。
2.总体设计
1.系统功能分析 (1) 资料维护:
系统维护包括对各种表记录的修改、删除、添加等操作。
(2) 资料维护: 对数据表中的信息进行浏览。
系统查询: 报表统计:
图2.1系统运行结构框图3.详细设计
图3.1系统功能结构框图
3.
1
当我们运行程序时,会出现如下的功能选择提示界面,代码已经附上。
图3.2主页面图
coutvv"*
2--删
除 人 员 信 息
*"vven dl;
coutvv"*
3--修
改 人 员 信 息
*"vven dl;
coutvv"*
4--查
询 人 员 信 息
*"vven dl;
coutvv"*
5--统
计 人 员 信 息
*"vven dl;
coutvv"*
6--显
示 所 有 信 息
*"vven dl;
coutvv"*
7-- 退 出
*"vven dl;
coutvv" ----------------------------- -------------------------- "vve ndl;
coutvv"
请 选 择 (1-7):
部分代码如下:
{
person pjk; in t c; coutvve ndl; coutvv"—— cout<<"* *"<<e ndl;
coutvv"* *"<<e ndl;
高校人事管理系统
"wendl;
1--添加人员信息并保存
1
请输入要添加的人数
1
请输A 策丄个人的信息 A 员类型止
mo Ilk 图3.3添加人员图
该图的执行代码如下,新增人员模块,实现新人员的信息添加功能:
void person::tjry() //
{
in t v,l=1;
char typ e2[20];char name2[20];char sex2[10];char age2[10];char zhiwu2[20];
"<<e ndl;
cin> >c; switch(c) {
case 1: pjk.tjry();me nu ();break; case 2:pjk.sha ncu();me nu(); break; case 6:pjk.out put();me nu ();break; case 7:exit(1);break; } }
void mai n() {
menu(); }
3.2
按提示输入序号,当输入1时,会出现要操纵者输入相关信息。
I ■ C:\U 詔o1 ii\iDe 5 kt&p 、De bug'l .
高校人事管理系纟左■
12 3 4 5 6
员员员员员有 人人-<
人人所岀 加艶询计一菠
显一
------7
存 保 并 ........... 息自a
息息息自3
亠一目一旦一一罗一冒云 ser
char zhiche n2[20];char zzmm2[20];char zgxl2[20];char rzsj2[20];char lysj2[30]; coutvv"请输入要添加的人数"vvendl; cin> >k;
p [1].getbia nhao ()=pp[ k1].getbia nhao(); v=bia nhao;
for(i nt i=v+1;iv=v+k;i++) {
P [i].set person(typ e2, name2,sex2,age2,zhiwu2,zhiche n2,zzmm2,zgxl2,rzsj2,lysj2); l++;
3.3
coutvv"请输入第"vvivv"个人的信息"<<endl; coutvv"人员类型";cin>>type2; coutvv"姓名 coutvv"性别 coutvv"年龄 coutvv"职务
coutvv"职称
";cin>>n ame2; ";cin> >sex2; ";cin> >age2;
cin> >zhiwu2; cin> >zhiche n2; :";cin> >zzmm2;
cin> >zgxl2; cin>> rzsj2; cin>>l ysj2;
II
II
coutvv"政治面貌 coutvv"最高学历 coutvv"任职时间
coutvv"来院时间
11.
11.
11.
----------------------------------------
■ ' C%Uw 亡 rs'lM O I i\De 5 kto p\De bug\l . exe'
4
1:按编号查询按姓名查询■请选择<1-2 > 1
请输人要查找的编号:丄 编号X
员类型姓名性别年龄职务职称政治面貌 最髙学历 任职时间 来院时间
f
------ 高校人事管理系统
保存 图3.4查询功能图
执行代码如下:
人员查询模块,本模块提供的查询方式包括按编号和姓名
2种,方便用户的查询。
void person::fi nd() //
{
coutvv"1:按编号查询--2:按姓名查询-请选择(1-2)"<<endl; int m; cin>>m; while(mv1||m>2) {
coutvv"请重新输入(1-2)"<<endl;cin>>m; } switch(m) {
case 1: {
while(!filem.eof()) {
filem >>pp [k].get num(); filem >>pp[ k].gett yp e(); filem >>pp[ k].get name(); filem >>pp [k].getsex();
存
保 并 ........... 息息息息息息
亠一目一亘一旦刍二豆刍 员员员员员有
人
人人人所岀
加鸵询廿一菠 显
一
------7
12 3 4 5 6
sad sd sf sf sf sf
filem >>pp [k].getage();
if(strc mp(pp[ k].get nu m(), n)==0) {
<<setw(10)<<"来院时间"<<endl;
while(!filem.eof())
{
filem >>pp [k].get num();
if(strc mp(pp[ k].get name(), nn ame)==O) {
cout< vpp[ k].get num( )vvsetw(9)v vpp[ k].gett yp e()<<setw(5)< vpp[ k].get name()
<<setw(5)< vpp[ k].getsex()vvsetw(5)v vpp[ k].getage()
<<setw(5)< vpp [k].getzhiwu()vvsetw(5)v vpp [k].getzhiche n()
<<setw(9)< vpp[ k].getzzmm()vvsetw(10) vvpp[ k].getzgxl()
<<setw(10) vvpp[ k].getrzsj()<<setw(10) vvpp[ k].getlysj()<<e ndl;break;} k++;
if(filem.eof())
{
coutvve ndl; cout<<"
警告:没有要查找的人!";}
} filem.close();
}
break;
3.4
代码如下:
人数统计模块,实现总人数的统计功能。
void person::t ongji() //
{
int a=0;i nt b=0;i nt c=0;i nt d=0; int k=1;
ifstream filem("添加人员.txt",ios_base::in); while(!filem.eof()) {
filem >>pp [k].get num(); filem >>pp[ k].gett yp e();
filem >>pp [k].getzzmm(); filem >>pp [k].getzgxl();
C++;
if(strc mp(pp [k].getzgxl(),"boshi")==0) d++; k++; }
filem.close();
coutvv"在职人数"vvsetw(12)vv"党员人数"<<setw(12)<<"女工人数"<<setw(12)<<"高
IT 回
■ ■ C:\Uwers\IM □ I i\De s kto p\De bug,\l . exe'
学历人数"<<endl; coutvvavvsetw(12)vvbvvsetw(12)vvcvvsetw(12)vvdvve ndl;
}
3.5
修改运行结果。
高校人事管理系纟社
高校人事管理系纟充
图3.6修改功能图 该运行结果的代码在此略掉,已在附
录中补上。
4. 系统调试
1.程序代码编写过程中,缺省分号,中括号不成对等基本格式错误,系统提示错误, 此时做相
关修改添加即可。
■ C:\U 黑 o h\De 5 kto p\De bugi\l .exe'
12 3 4 5 6
存
保
并 .......... 自a 息息息
息息
亠一目一m 一豆刍二豆孟
人久S
人人馮岀 加甕询
计-菠
显一
F*-
请选择<1-7
>:
3
请输入要修改的人的编号:
2
请》入编号力2的人需
"I 号
-2=XM MS J-3
职时向-11:莱氐;时间
1
畧盘翌闕璽姦7 =职务T:职称T ’政治面貌-9:最高学历-伯:任
■W
i-一添加人员信息幵保存
*
Figuration: 1 - Ilin32 Debug
[cpp(即e 即):error C21>t3 : syntax error : inl:5si ng
图4.1缺少分号报错图
2.缺少返回类型,如
:pp(42》:
j-fc J H j-fc ■- -5 H-fc -5 4- -■ n i-h ■ aH ■■ M~ ■" n M n n -I
图4.2缺返回类型报错图
3.在函数调用时,出先函数未知的错误,原因是函数的调用在声明前,所有要在函数
调用前进行声明。
程序运行界面:
■ ' 'C:\Use rs\M ol(\Des kto p\D亡bug'l.e灼"
高校人事管理系统
thiscall person::Dutput{UDid}* : overloaded function
存
保
自
3
自
』
自
3
自
亠
自
亠
自
3
亠
一
一
昼
亘
亘
二
寥
人
人
人
人
人
所
出
加
專
询
计
一
菠
显
一
二
二
二
请选择
图4.3程序提示界面图
■ ~ 'C:\Use r5\M ol(\Des kto p\Debug\lHe)fe" V*
高校人事管理系统
请选择d-
A鄂个人的信息卜八,类型laoshl 姓名:noli 恒别:boy 年静:21 职房:laoshi 5
E 称:gao j ij iao shi 團迨画貌3 最髙孚历:血乂皿任聪时间:2012 t/ear
图4.4添加人员功能图
4.error C2065: 'setw' : un declared ide ntifier
在找预编译头文件路径时出错,C++中的setw(n)设置域宽不能调用,要加上头文件
#in cludevioma nip>
5.error C2018: unknown character '0xa3'
不认识的字符'0xa3'。
(一般是汉字或中文标点符号)。
6.error C2057: exp ected con sta nt exp ressi on
希望是常量表达式。
(一般出现在switch语句的case分支中)。
7. error C2143: syntax error: missing ':' before '{' 句法错误:“{”前缺少“;”。
5.结果分析
本程序的能实现人员信息以.txt格式保存,使用到的指针为实时开辟空间提供了方便。
基本的实现了题目要求的各个功能模块,运行界面的提示做的一目了然,为使用者提供了方便。
本程序的不足之处就是功能显示界面不够完美,显示有点拥挤的感觉。
一个程序员精心设计的程序很难为其他程序所用。
界面比较的单一,功能相对较少,
只能逐一增加信息,不能批量的增加。
本代码很好的实现了人员的添加保存,删除,查询等功能。
6.总结
本次课程设计让我初步体会到C++面向对象设计的特性,该语言能编写建立对象,
QC应该就使用到了C++
通过这次课程设计自己动手编写了人事管理系统在编写过程中遇到了许多的问
存
保
并
' '
自
3
自
3
自
S
自
4
自
S
自
3
兰
B
一
色
-
昼
乩
兰
宜
刍
人
人
人
人
人
所
出
加
屠
询
计
一
菠
添
统
显
一
------
7
请输入要添加的人数
1
请
题在解决问题的同时对类、单链表、文件等进一步加深了了解强化了在上课学的知识对自己提高很大。
人事管理系统是典型的信息管理系统涉及的东西很多包括添加人员查询
人员资料删除成员资料等。
这次设计选用Win-TC通过努力较好的完成了自己的设计同
时了解到自己的不足所以我们还要通过不断的学习不断的提高自己。
总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。
最重要的还是激发了我编程的兴趣和热情,让我从一个只懂理论变成了能做一些小型程序,让我对编程更加热爱了。
整体地评价这次课程设计,我认为收获很大,正如上面所说的那样,通过课程设计,既复习了以前的旧知识,又学到了一些新的知识;设计增强了我们用所学知识去解决具体问题的能力,进一步培养了我们独立思考问题和解决问题的能力。
特别是学会了在Visual C++集成开发环境中如何调试程序的方法。
当然,老师的悉心指导和同学的帮助也是不可忽视的,在此感谢本次课程设计中所有辅导老师对我的关心和帮助,诚心诚意感谢他们对我的鼓励与教导,是她们在我迷茫的时候给了我些许提示,激发了我编程的灵感;还有,我在此也十分感谢本次课程设计中同学们对我的帮助。
7.附录
程序的源代码如下: #in clude<iostream> #in clude<fstream>
#in clude<cstri ng>
#in clude<ioma nip> using n ames pace std;
int k;
class person
{
p rivate:
char num[10];
char typ e[20];
char n ame[20];
char sex[10];
char age[10];
char zhiwu[20];
char zhiche n[ 20];
char zzmm[20];
char zgxl[20];
char rzsj[20];
char lysj[30];
static int bia nhao;
public:
void set person( char *typ e1,char *n ame1,char *sex1,char *age1,char *zhiwu1, char *zhiche n1,char *zzmm1,char *zgxl1,char *rzsj1,char *lysj1);
static int& getbia nhao() {return bia nhao;} char * gett yp e() { retur n typ e;} char * get name() {return n ame;} char * getsex() {retur n sex;} char * getage() {retu rn age;} char * getzhiwuO {retur n zhiwu;} char * getzhiche n() {retu rn zhiche n;} char * getzzmm() {retu rn zzmm;} char * getzgxl() {retu rn zgxl;} char * getrzsj() {return rzsj;} char * getlysj() {return lysj;} char * get num() {retu rn nu m;}
void tjryO; void fin d(); void out put(); void sha ncu(); void xiugai(); void ton gji();
};
person p[100];
person pp [100];
int k1;
int person::bia nhao=0;
void person::set person( char *typ e1, char *n ame1, char *sex1, char *age1, char *zhiwu1, char *zhiche
n1, char *zzmm1, char *zgxl1, char *rzsj1, char *lysj1 )
{
int static j=1;
strcpy(t yp e,t yp e1);
strc py( name, namel);
strc py(sex,sex1);
strcpy(age,age1);
strc py (zhiwu,zhiwu1);
strc py (zhiche n, zhiche n1);
strc py(zzmm,zzmm1);
strcpy(zgxl,zgxl1);
strc py(rzsj,rzsj1);
strcpy(lysj,lysj1);
bia nhao++;
ofstream file("添加人员.txt",ios_base::app); file< vp [j].getbia nhao()vve ndl; file< vp [j].gett yp e()<<e ndl;
filev vp [j].get name()vve ndl;
filev vp [j].getsex()vve ndl;
filev vp [j].getage()vve ndl;
filev vp [j].getzhiwu()vve ndl;
filev vp [j].getzhiche n() vve ndl;
filev vp [j].getzzmm()vve ndl;
filev vp [j].getzgxl()vve ndl;
filev vp [j].getrzsj()vve ndl;
filev vp [j].getlysj()vve ndl;
j++;
file.closeO;
}
void person::t on gji()
{
int a=0;i nt b=0;i nt c=0;i nt d=0;
int k=1;
ifstream filem("添加人员.txt",ios_base::in);
while(!filem.eof())
{
filem >>pp [k].get num();
filem >>pp[ k].gett yp e();
filem >>pp[ k].get name();
filem >>pp [k].getsex();
filem >>pp[ k].getage();
filem >>pp[ k].getzhiwu();
filem >>pp[ k].getzhiche n();
filem >>pp [k].getzzmm();
filem >>pp [k].getzgxl();
filem >>pp[ k].getrzsj();
filem >>pp[ k].getlysj();
if(strcmp(pp[k].gettype(),"行政人员")==0||strcmp(pp[k].gettype(),"教师")==0||
strcmp(pp[k].gettype(),"一般员工")==0) a++;
if(strcmp(pp[k].getzzmm(),"党员")==0)
b++;
if(strc mp(pp [k].getsex()," nv")==0)
c++;
if(strc mp(pp [k].getzgxl(),"boshi")==0)
d++;
k++;
}
filem.close();
coutvv"在职人数"vvsetw(12)vv"党员人数"<<setw(12)<<"女工人数"<<setw(12)<<"高 学历人数"<<endl; cout<<a<<setw(12)<<b<<setw(12)<<c<<setw(12)<<d<<e ndl;
}
void person::xiugai()
{
int k=1;
ifstream filem("添加人员.txt",ios_base::in);
while(!filem.eof())
{
filem >>pp [k].get num();
filem >>pp[ k].gett yp e();
filem >>pp[ k].get name();
filem >>pp [k].getsex(); //
//
filem >>pp[ k].getage();
filem >>pp[ k].getzhiwu();
filem >>pp[ k].getzhiche n();
filem >>pp [k].getzzmm();
filem >>pp [k].getzgxl();
filem >>pp[ k].getrzsj();
filem >>pp[ k].getlysj();
k++;
}
filem.close();
coutvv"请输入要修改的人的编号:"<<endl;
int x,y;
cin> >x;
coutvv"请输入编号为"vvxvv"的人需要修改的项目的代号:"<<endl;
cout<<"1:编号-2:人员类型-3:姓名-4:性别-5:年龄-6:职务-7:职称-8:政治面貌-9:最高学历-10:任职时间-11:来院时间"vvendl;
cin>>y;
switch(y)
{
case 1:
{coutvv"请输入新的编号";cin>>pp[x].getnum() ;}
break;
case 2:
{coutvv"请输入新的人员类型";cin>>pp[x].gettype();}
break;
case 3:
{coutvv"请输入新的姓名";cin>>pp[x].getname();}
break;
case 4:
{coutvv"请输入新的性别";cin>>pp[x].getsex();}
break;
case 5:
{coutvv"请输入新的年龄";cin>>pp[x].getage();}
break;
case 6:
{coutvv"请输入新的职务";cin>>pp[x].getzhiwu();}
break;
case 7:
{coutvv"请输入新的职称";cin>>pp[x].getzhichen();}
break;
case 8:
{coutvv"请输入新的政治面貌";cin>>pp[x].getzzmm();}
break;
case 9:
{coutvv"请输入新的最高学历";cin>>pp[x].getzgxl();} break;
case 10:
{coutvv"请输入新的任职时间";cin>>pp[x].getrzsj();} break;
case 11:
{coutvv"请输入新的来院时间";cin>>pp[x].getlysj();} break;
}
ofstream file1("添加人员.txt",ios_base::trunc);
for(k=1;kv=bia nhao;k++)
{
filelv vpp[ k].get num( )vve ndl; filelv vpp[ k].gett yp e()vve ndl; filelv vpp[ k].get
name()vve ndl; filelv vpp[ k].getsex()vve ndl; filelv vpp[ k].getage()vve ndl;
filelv vpp[ k].getzhiwu()vve ndl; filelv vpp[ k].getzhiche n() vve ndl; filelv
vpp[ k].getzzmm()vve ndl;
filelv vpp[ k].getzgxl()vve ndl; filelv vpp[ k].getrzsj()vve ndl;
filelv vpp[ k].getlysj()vve ndl;
} file1.close();
coutvv"修改并保存完毕"vvendl;
}
void person::sha ncu()
//
{
int乙ifstream filem("添加人员.txt",ios_base::in); int k=1;
while(!filem.eof())
{
filem >>pp [k].get num(); filem >>pp[ k].gett yp e(); filem >>pp[ k].get name();
filem >>pp [k].getsex(); filem >>pp[ k].getage();
filem >>pp[ k].getzhiwu(); filem >>pp[ k].getzhiche n();
filem >>pp [k].getzzmm(); filem >>pp [k].getzgxl();
filem >>pp[ k].getrzsj();
filem >>pp[ k].getlysj(); k++;
}
filem.closeO;
coutvv"请输入要被删除信息的人的编号:"<<e ndl;
cin> >z;
while(z<1||z>bia nhao)
{
coutvv"没有找到你要删除的人,请重新输入:"<<e ndl;c in >>z;} for(k=1;k<=bia nhao;k++) {
if(z==k)
con ti nue;
ofstream file2("添加人员.txt",ios_base::trunc);
file2v vpp[ k].get num( )vve ndl;
file2v vpp[ k].gett yp e()vve ndl;
file2v vpp[ k].get name()vve ndl;
file2v vpp[ k].getsex()vve ndl;
file2v vpp[ k].getage()vve ndl;
file2v vpp[ k].getzhiwu()vve ndl;
file2v vpp[ k].getzhiche n() vve ndl;
file2v vpp [k].getzzmm()vve ndl;
file2v vpp[ k].getzgxl()vve ndl;
file2v vpp[ k].getrzsj()vve ndl;
file2vv pp[ k].getlysj()vve ndl;
file2.close();
}
coutvv"删除记录完毕"vvendl;
void person::fi nd()
//
{
coutvv"1:按编号查询--2:按姓名查询-请选择(1-2)"vvendl; int m;
cin>>m;
while(mv1||m>2)
{
coutvv"请重新输入(1-2)"vvendl;cin>>m;
}
switch(m)
{
case 1:
{
char n[10];
coutvv"请输入要查找的编号:";
cin>>n;
ifstream filem("添加人员.txt",ios_base::in);
int k=1;
coutvv"编号"vvsetw(9)vv"人员类型"<<setw(5)<<"姓名"<<setw(5)<<"性别" <<setw(5)<<"年龄"vvsetw(5)vv"职务"<<setw(5)<<"职称" <<setw(9)<<"政治面貌"vvsetw(10)vv"最高学历
"<<setw(10)<<"任职时vvsetw(10)vv"来院时间"vvendl;
while(!filem.eof())
{
filem >>pp [k].get num();
filem >>pp[ k].gett yp e();
filem >>pp[ k].get name();
filem >>pp [k].getsex();
filem >>pp [k].getage();
filem >>pp[ k].getzhiwu();
filem >>pp[ k].getzhiche n();
filem >>pp [k].getzzmm();
filem >>pp [k].getzgxl();
filem >>pp[ k].getrzsj();
filem >>pp[ k].getlysj();
if(strc mp(pp[ k].get nu m(), n)==0)
{
cout< vpp[ k].get num( )vvsetw(9)v vpp[ k].gett yp e()<<setw(5)< vpp[ k].get name()
<<setw(5)< vpp[ k].getsex()vvsetw(5)v vpp[ k].getage()
<<setw(5)< vpp[ k].getzhiwu()vvsetw(5)v vpp[ k].getzhiche n()
<<setw(9)< vpp[ k].getzzmm()vvsetw(10) vvpp[ k].getzgxl()
vvsetw(10) vvpp[ k].getrzsj()vvsetw(10) vvpp[ k].getlysj()vve ndl;break;} k++;
if(filem.eof())
{
coutvve ndl;
coutvv"
}
} filem.close();} break; case 2:
{
char nn ame[20];
coutvv"请输入要查找的姓名
cin>>nn ame;
ifstream filem("添加人员.txt",ios_base::in); int k=1; 警告:没有要查找的人!";
.11.
coutvv"编号"<<setw(9)<<"人员类型"<<setw(5)<<"姓名"<<setw(5)<<"性别" <<setw(5)<<"年龄
"<<setw(5)<<"职务"<<setw(5)<<"职称" <<setw(9)<<"政治面貌"<<setw(10)<<"最高学历
"<<setw(10)<<"任职时 vvsetw(10)vv"来院时间"vvendl;
while(!filem.eof())
{
filem >>pp [k].get num();
filem >>pp[ k].gett yp e();
filem >>pp[ k].get name();
filem >>pp [k].getsex();
filem >>pp [k].getage();
filem >>pp[ k].getzhiwu();
filem >>pp[ k].getzhiche n();
filem >>pp [k].getzzmm();
filem >>pp [k].getzgxl();
filem >>pp[ k].getrzsj();
filem >>pp[ k].getlysj();
if(strc mp(pp[ k].get name(), nn ame)==0) {
coutv vpp[ k].get num( )vvsetw(9)v vpp[ k].gett yp e()vvsetw(5)v vpp[ k].get name()
vvsetw(5)v vpp[ k].getsex()vvsetw(5)v vpp[ k].getage()
<<setw(5)< vpp [k].getzhiwu()vvsetw(5)v vpp [k].getzhiche n()
<<setw(9)< vpp[ k].getzzmm()vvsetw(10) vvpp[ k].getzgxl()
<<setw(10) vvpp[ k].getrzsj()vvsetw(10) vvpp[ k].getlysj()vve ndl;break;} k++;
if(filem.eof())
{
coutvve ndl; coutvv"
} filem.close();
}
break; void person::tjry()
{
in t v,l=1; char typ e2[20];char name2[20];char sex2[10];char age2[10];char zhiwu2[20]; char zhiche n2[20];char
zzmm2[20];char zgxl2[20];char rzsj2[20];char Iysj2[30]; coutvv"请输入要添加的人数"<<endl; 警告:没有要查找的人!";}
//
cin> >k;
p [1].getbia nhao ()=pp[ k1].getbia nhao(); v=bia nhao; for(i nt i=v+1;iv=v+k;i++) {
P [i].set person(typ e2, name2,sex2,age2,zhiwu2,zhiche n2,zzmm2,zgxl2,rzsj2,lysj2); l++;
void person ::out pu t() {
ifstream filem("添加人员.txt",ios_base::in); int k=1;
coutvv"编号"vvsetw(9)vv"人员类型"vvsetw(5)vv"姓名"vvsetw(5)vv"性别" vvsetw(5)vv"年龄
"vvsetw(5)vv"职务"vvsetw(5)vv"职称" vvsetw(9)vv"政治面貌"vvsetw(10)vv"最高学历"vvsetw(10)vv"任职时间" vvsetw(10)vv"来院时间"vvendl; while(!filem.eof()) {
filem >>pp[ k].getbia nhao(); filem >>pp[ k].gett yp e(); filem >>pp[ k].get name(); filem >>pp [k].getsex(); filem >>pp[ k].getage(); filem >>pp[ k].getzhiwu(); filem >>pp[ k].getzhiche n(); filem >>pp [k].getzzmm(); filem >>pp [k].getzgxl(); filem >>pp[ k].getrzsj(); filem >>pp[ k].getlysj();
coutv vpp[ k].getbia nhao()vvsetw(9)v vpp[ k].gett yp e()vvsetw(5)v vpp[ k].get name()
vvsetw(5)v vpp[ k].getsex()vvsetw(5)v vpp[ k].getage() vvsetw(5)v vpp[ k].getzhiwu()vvsetw(5)v vpp[ k].getzhiche n()
coutvv"请输入第"vvivv"个人的信息"<<endl;
coutvv"人员类型";cin>>type2;
coutvv"姓名
coutvv"性别
coutvv"年龄
coutvv"职务
coutvv"职称
";cin>>n ame2;
";cin> >sex2;
";cin> >age2;
cin> >zhiwu2;
cin> >zhiche n2;
:";cin> >zzmm2;
:";
cin> >zgxl2; :";ci
n>> rzsj2;
cin>>l ysj2;
II
II
coutvv"政治面貌
coutvv"最高学历
coutvv"任职时间
coutvv"来院时间
H ・ H ・
H. //
wsetw^v vpp] kl.getzzmmOvvsetwOO) vvpp] k].getzgxl() wsetw^O) vvpp] kl.getrzsjOvvsetwOO) vvpp] kl.getlysjOvve ndl; k++; } k1=--k; filem.close(); }
coutvv"*
2--删
除 人 员 信 息
*"vve ndl;
coutvv"*
3--修
改 人 员 信 息
*"vve ndl;
coutvv"*
4--查
询 人 员 信 息
*"vve ndl;
coutvv"*
5--统
计 人 员 信 息
*"vve ndl;
coutvv"*
6--显
示 所 有 信 息
case 1: pjk.tjry();me nu ();break;
case 2:pjk.sha ncu();me nu(); break; case 3:pjk.xiugai();me nu(); break;
case 4:pjk.fi nd() Qoutvve ndlvve ndl; menu( );break; case 5:pjk.t on gji();me nu(); break; case 6:pjk.out put();me nu ();break; case 7:exit(1);break;
void mai n() {
menu(); }
void menu() {
person pjk; in t c; coutvve ndl; coutvv" ----- coutvv"* *"<<6 ndl;
coutvv"* *"vve ndl;
高校人事管理系统
"vvendl;
1--添加人员信息并保存
*"vve ndl;
coutvv"* *"vve ndl;
coutvv"-- coutvv" "vve ndl;
cin> >c; switch(c) {
"vve ndl;
7--
选择(1-7):
计算机与通信学院课程设计评分表
教师签名:
期:。