高校职工管理系统毕业课程设计报告Word下载.doc
《高校职工管理系统毕业课程设计报告Word下载.doc》由会员分享,可在线阅读,更多相关《高校职工管理系统毕业课程设计报告Word下载.doc(29页珍藏版)》请在冰点文库上搜索。
![高校职工管理系统毕业课程设计报告Word下载.doc](https://file1.bingdoc.com/fileroot1/2023-4/30/d055a71e-7385-4941-a398-88960cab05f1/d055a71e-7385-4941-a398-88960cab05f11.gif)
九、心得体会 29
能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;
(2)要求在设计的过程中,建立清晰的类层次;
(3)在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法;
(4)在系统的设计中,要求运用面向对象的机制(继承、派生及多态性)来实现系统功能。
某高校,主要人员有:
在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。
现在,需要存储这些人员的人事档案信息:
编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、来院时间。
要求:
(1)添加删除功能:
能根据学院人事的变动情况,添加删除记录;
(2)查询功能:
能根据编号和姓名进行查询;
(3)编辑功能(高级):
根据查询对相应的记录进行修改,并存储;
(4)保存功能:
能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。
(5)人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1
2、问题的解决方案:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系包括属性和行为;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述(包括属性和方法);
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
四、需求分析
这个程序是高校人事的一个管理程序,通过屏幕的提示和键盘的输入来实现对于高校人事信息的添加,修改,删除,查找等效果。
并且在输入数据之后可以整理查看,实现人事系统的管理。
五、总体设计
1、系统功能模块图
添加人员信息
修改人员信息
退出
数据装入
查找人员信息
删除人员信息
显示人员信息
2、类的层次设计
定义两个类,一个person类,包含在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。
员工信息包括编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、来院时间。
定义一个school类,在里面实现数据的添加、删除、修改、查找、显示和退出。
3、功能设计
能根据人事的变动情况,添加删除记录;
(3)编辑功能:
4.系统部分流程图
开始
管理系统主页面
分别输入要输入的人员信息
添加完最后一项之后
选择要修改的人员信息
修改完之后
选择要删除的人员信息
删除之后
六、界面设计
图1:
运行首界面
图2添加人员信息界面
图3人员信息修改界面
图4人员信息查找界面
图5人员信息删除界面
七、部分代码设计
#include<
iostream.h>
string.h>
fstream.h>
iomanip.h>
classperson
{
//人员类似有数据成员
private:
intno;
chartype[20];
charname[20];
charsex[10];
intage;
chartime1[20];
chartime2[20];
charpos[20];
chartechpos[20];
charparty[20];
charstudy[30];
person*mynext;
public:
//构造函数一
person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime1[],charntime2[],charnpos[],charntechpos[],charnparty[],charnstudy[])
{
no=nnum;
strcpy(type,ntype);
strcpy(name,nname);
strcpy(sex,nsex);
strcpy(time1,ntime1);
age=nage;
strcpy(time2,ntime2);
strcpy(pos,npos);
strcpy(techpos,ntechpos);
strcpy(party,nparty);
strcpy(study,nstudy);
mynext=NULL;
}
//构造函数二
person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime1[],charntime2[],
charnpos[],charntechpos[],charnparty[],charnstudy[],person*next)
/*某高校,主要人员有:
现在,需要存储这些人员的人事档案信息:
编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。
*/
mynext=next;
voidsetnext(person*next)////
person*getnext()
returnmynext;
//获取对对象的各个私有数据函数
intgetnum()
returnno;
char*getname()
returnname;
char*getsex()
returnsex;
char*getpos()
returnpos;
char*gettechpos()
returntechpos;
char*gettime1()
returntime1;
char*gettime2()
returntime2;
char*getparty()
returnparty;
char*getstudy()
returnstudy;
intgetage()
returnage;
voidgetag(intas)
age=as;
char*gettype()
returntype;
/*------------------------------*/
};
classSchool
person*myfirst;
intfirstnum;
School()
myfirst=NULL;
//构造函数,将数据初始化
School(intnnu,charntyp[],charnnam[],charnse[],intnag,charntim1[],charntim2[],charnpo[],charntechpo[],charnpart[],charnstud[])
myfirst=newperson(nnu,ntyp,nnam,nse,nag,ntim1,ntim2,npo,ntechpo,npart,nstud);
//在最后插入新成员函数
voidinsertatlast(intnnum,charntype[],charnname[],charnsex[],intnage,charntime1[],charntime2[],charnpos[],charntechpos[],charnparty[],charnstudy[])
////
person*next=myfirst;
if(next==NULL)
myfirst=newperson(nnum,ntype,nname,nsex,nage,ntime1,ntime2,npos,ntechpos,nparty,nstudy);
else
{
while(next->
getnext()!
=NULL)
next=next->
getnext();
next->
setnext(newperson(nnum,ntype,nname,nsex,nage,ntime1,ntime2,npos,ntechpos,nparty,nstudy,next->
getnext()));
}
//-------------------------------------------------------------
//从键盘输入数据,并创建相应对象函数,
voidinput(intr)
intnage;
charntype[20],nname[20],nsex[20],ntime1[20],ntime2[20],npos[20],ntechpos[20],nparty[20],nstudy[20];
cout<
<
"
请输入编号为"
r<
的成员的信息"
endl;
cout<
输入职工分类码[行政人员,教师,一般员工,退休人员,返聘人员,临时工]:
cin>
>
ntype;
输入姓名:
cin>
nname;
输入性别:
nsex;
输入年龄:
nage;
参加工作时间:
ntime1;
输入来院时间:
ntime2;
输入职务[无,科级,处级,地级]:
npos;
输入职称[无,初级,中级,高级]:
ntechpos;
输入加入党派[群众,中共党员,民主党派]:
nparty;
输入学历[小学,初中,高中,大专,大学,硕士,博士]:
nstudy;
insertatlast(r,ntype,nname,nsex,nage,ntime1,ntime2,npos,ntechpos,nparty,nstudy);
//从键盘输入数据,并创建相应对象函数二,
voidinput1(person*ahead)
编号:
setiosflags(ios:
:
left)<
"
ahead->
getname()<
性别:
getsex()<
年龄:
getage()<
职工类型:
"
gettype()<
职务:
getpos()<
职称:
gettechpos()<
学历:
getstudy()<
政治面貌:
getparty()<
来院时间:
gettime1()<
gettime2()<
//---------------------------------------------
//
//输出数据函数二
voidpri()
person*ahead=myfirst;
编号姓名性别年龄职工类型职务职称学历政治面貌来院时间参加工作时间\n"
;
while(ahead!
cout<
setw(4)<
getnum()<
setw(6)<
getname()
<
setw(5)<
getage()
setw(10)<
getpos()
getstudy()
setw(9)<
setw(12)<
gettime1()
ahead=ahead->
//增加员工函数
voidadd()
inti,a,b;
person*p1=myfirst;
if(p1==NULL)
请输入编号:
cin>
i;
input(i);
if(p1->
getnext()==NULL)
{
a=p1->
getnum()+1;
input(a);
}
else
while(p1->
{
p1=p1->
}
b=p1->
input(b);
//删除人员函数
boolremovedatnum()
intbh;
person*follow=ahead;
cout<
请输入要删除人员的编号:
bh;
if(ahead==NULL)
returnfalse;
if(ahead->
getnum()==bh)
myfirst=myfirst->
cout<
编号为"
bh<
的成员以被删除"
deleteahead;
returntrue;
ahead=ahead->
while(ahead!
if(ahead->
{
follow->
setnext(ahead->
getnext());
cout<
的成员以被删除\n"
deleteahead;
returntrue;
}
follow=ahead;
ahead=ahead->
要删除的成员不存在!
returnfalse;
//查找人员函数
boolfind1()
intid;
id;
信息如下:
无人员信息!
while(ahead!
getnum()==id)
input1(ahead);
else
follow=ahead;
ahead=ahead->
无此人信息:
boolfind2()
charnm[20];
输入姓名"
nm;
无人员信息"
if(strcmp(ahead->
getname(),nm)==0)
input1(ahead);
returntrue;
else
查无此人:
//--------------------------------------------------------------------------------
//统计人数函数
voidstat()
intxx,sz=0;
请选择统计对象:
"
1在职人数"
2党员人数"
3女工人数"
4高学历高职称人数"
cou