C++项目报告之高校人事管理系统.docx

上传人:b****6 文档编号:6610648 上传时间:2023-01-08 格式:DOCX 页数:26 大小:72.05KB
下载 相关 举报
C++项目报告之高校人事管理系统.docx_第1页
第1页 / 共26页
C++项目报告之高校人事管理系统.docx_第2页
第2页 / 共26页
C++项目报告之高校人事管理系统.docx_第3页
第3页 / 共26页
C++项目报告之高校人事管理系统.docx_第4页
第4页 / 共26页
C++项目报告之高校人事管理系统.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

C++项目报告之高校人事管理系统.docx

《C++项目报告之高校人事管理系统.docx》由会员分享,可在线阅读,更多相关《C++项目报告之高校人事管理系统.docx(26页珍藏版)》请在冰豆网上搜索。

C++项目报告之高校人事管理系统.docx

C++项目报告之高校人事管理系统

C++课程项目设计说明书

项目名称:

高校人事管理系统

目录1

1项目(高校人事管理系统)需求分析1

1.1项目目标1

1.2系统主要功能概述1

1.3可行性分析1

1.4项目运行环境2

2项目(高校人事管理系统)设计3

2.1概要设计3

2.2详细设计3

2.3项目命名约定5

2.4项目分工表5

2.5项目进度表5

3项目(高校人事管理系统)功能介绍6

4项目(高校人事管理系统)功能测试6

5项目使用说明6

6项目(系统)总结7

7程序源代码7

1项目(高校人事管理系统)需求分析

1.1项目目标

1.开发一个高校人事管理系统,修改以前该系统的不足,提高系统的运作效率。

1.2系统主要功能概述

1.高校人事管理系统模块(系统流程图)

12

34

56

87

1.3可行性分析

1.系统/技术可行性:

windows安装了VC+6.0即可运行。

2.使用可行性

采用简单的GUI界面,用户经过短期培训即可方便使用系统。

1.4项目运行环境

CPU

奔腾Ⅳ1.4G或以上

内存

512M或以上

硬盘

80GB或以上

服务器端OS

Windows2000/NT/Server

客户端OS

Windows2000/XP

网络配置

局域网

2项目(高校人事管理系统)设计

2.1概要设计

设计一个person和school的类,再结合main函数实现搞笑人事管理系统的功能,大致模块如下:

 

2.2详细设计

UML图

类名:

person

私有成员变量:

Intno,chartype[20],charname[20],charsex[10],intage,chartime[20],charpos[20],chartechpos[20],charparty[20],charstudy[30]

person*mynext

公有成员函数:

person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime[],charnpos[],charntechpos[],charnparty[],charnstudy[]),person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime[],charnpos[],charntechpos[],charnparty[],charnstudy[],person*next)voidsetnext(person*next),person*getnext(),intgetnum(),char*getname(),char*getsex(),char*getpos(),char*gettechpos(),char*gettime(),char*getparty(),char*getstudy(),intgetage(),voidgetag(intas),char*gettype()。

类名:

school

私有成员变量:

person*myfirst,intfirstnum。

公有成员函数:

School(),School(intnnu,charntyp[],charnnam[],charnse[],intnag,charntim[],charnpo[],charntechpo[],charnpart[],charnstud[]),voidinsertatlast(intnnum,charntype[],charnname[],charnsex[],intnage,charntime[],charnpos[],charntechpos[],charnparty[],charnstudy[]),voidprintf(intr),voidprintf1(person*ahead),voidprintf(),voidadd(),boolremovedatnum(),boolfind1(),boolfind2(),boolupperson(),voidload(),voidsave(),~School()。

 

2.3项目命名约定

类名:

大写字母开头如:

School

类属性:

采用匈牙利命名法(即第一个字母小写并表明数据类型)如:

int

变量:

采用匈牙利命名法(即第一个字母小写并表明数据类型)如:

c

2.4项目分工表

姓名

分配任务/完成的功能模块

备注(贡献度,

设总分为60分)

喻易

人事管理系统资料的收集,让对该系统不熟的同学增加对其的了解,并协助霍擎进行类的定义。

10

霍擎

类的主编(person和school类)

10

王田

负责人事成员的信息输入,及对合并后运行时出现的一些问题进行修改和完善

10

谭继鹏

main函数主编

10

杨锏

对cpp文件进行存储模式的改编,即在系统运行中可对输入内容存储或者对已有文件的信息进行提取。

10

王美庭

word文档的初编和终编。

10

2.5项目进度表

6月15日~20日

互相学习,C++不熟练的同学帮助基础差一点的同学,以及本身C++的全面复习

6月21日

项目讨论以及做项目需求分析,功能分析。

项目概要设计,确定分工

6月22日~24日

项目详细设计,编写文档初稿、创建数据,编写CPP文件

6月25日

合并,部分功能测试和进行一些问题的修改。

整体测试并整合出最终的CPP文件

6月26日

文档编写、增添修改,形成最终文档。

3项目(高校人事管理系统)功能介绍

添加功能:

实现对新成员的添加。

删除功能:

对离校成员信息的清楚。

修改功能:

对于在校人员信息的变更加以补充和消减,创建最新信息!

查询功能:

实现对在校人员信息的提取。

数据存盘与装入功能:

对以上信息的变更加以存储,实现下一次信息的调用。

显示功能:

VC+6.0运行屏幕即可显示。

4项目(高校人事管理系统)功能测试

最主要是

1,同学基础还不牢固,在编程时出现了各种小的问题和疑惑,在之后经再次书本复习和网上查阅,解决了大部分问题。

2.合并时变量不同而出现了问题,后面经变量的修改实现统一化后,解决了问题。

5项目使用说明

运行程序后,选择1-8操作中的一种。

选1,增加人员资料。

需输入编号、职工分类码、姓名、性别、年龄、来院时间、职务、职称、加入党派、学历。

选2,删除人员信息。

输入要删除人员的编号。

假如此人员存在,会输出“编号为**的成员已被删除”假如人员不存在,会输出“要删除的成员不存在!

选3,修改人员信息。

输入要修改人员的编号,假如此人员存在,需要选择要修改的内容,包括姓名、性别、年龄、职工类型、职务、职称、学历、政治面貌、来院时间。

假如人员不存在,输出“没有此人”。

选4,查询人员信息。

要选择查询的方式。

1通过编号,2通过姓名。

选1,输入要查的编号。

假如此人员存在,会输出要相关人员信息。

假如人员不存在,会输出“无此人信息:

”选2,输如要查的姓名。

假如此人员存在,会输出要相关人员信息。

假如人员不存在,会输出“查无此人:

”。

选5,数据存盘。

会自动存盘,并输出“**人员和相关数据已经装入.....”。

选6,数据装入。

会自动装入数据,并输出“保存数据已完成”。

选7,显示所有信息。

会输出系统所存的所有员工的各项信息。

选8,退出。

6项目(系统)总结

通过程序设计,我们能够基本掌握C++程序设计的方法,并且在此基础上掌握类的构造方法,明确类中构造函数、成员函数的建立以及调用,并且,结合C++中字符串函数的编译系统给定的库函数,采用一定的逻辑编译,实现题目中要求的各项要求,达到基本实验目的,提高了团队的C++语言使用水平。

另外,最重要的是,我们在其中收获了团队协作精神,每个人都互相努力和协作,最终使我们的任务得以完成!

7程序源代码

#include

#include

#include

#include

classperson

{

private:

intno;//编号

chartype[20];//职工类型

charname[20];//姓名

charsex[10];//性别

intage;//年龄

chartime[20];//来院时间

charpos[20];//职务

chartechpos[20];//职称

charparty[20];//党派

charstudy[30];//最高学历

person*mynext;//指针语

public:

person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime[],charnpos[],charntechpos[],charnparty[],charnstudy[])

{

no=nnum;

strcpy(type,ntype);//将ntype的值复制给type

strcpy(name,nname);

strcpy(sex,nsex);

age=nage;

strcpy(time,ntime);

strcpy(pos,npos);

strcpy(techpos,ntechpos);

strcpy(party,nparty);

strcpy(study,nstudy);

mynext=NULL;

}

person(intnnum,charntype[],charnname[],charnsex[],intnage,charntime[],

charnpos[],charntechpos[],charnparty[],charnstudy[],person*next)

//某高校,主要人员有:

在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。

//现在,需要存储这些人员的人事档案信息:

编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、来院时间。

{

no=nnum;

strcpy(type,ntype);

strcpy(name,nname);

strcpy(sex,nsex);

age=nage;

strcpy(time,ntime);

strcpy(pos,npos);

strcpy(techpos,ntechpos);

strcpy(party,nparty);

strcpy(study,nstudy);

mynext=next;

}

voidsetnext(person*next)

{

mynext=next;

}

person*getnext()

{

returnmynext;

}

intgetnum()

{

returnno;

}

char*getname()

{

returnname;

}

char*getsex()

{

returnsex;

}

char*getpos()

{

returnpos;

}

char*gettechpos()

{

returntechpos;

}

char*gettime()

{

returntime;

}

char*getparty()

{

returnparty;

}

char*getstudy()

{

returnstudy;

}

intgetage()

{

returnage;

}

voidgetag(intas)

{

age=as;

}

char*gettype()

{

returntype;

}

};

classSchool

{

private:

person*myfirst;

intfirstnum;

public:

School()//无参构造函数

{

myfirst=NULL;//将指针置空

}

School(intnnu,charntyp[],charnnam[],charnse[],intnag,charntim[],charnpo[],charntechpo[],charnpart[],charnstud[])//有参构造函数

{

myfirst=newperson(nnu,ntyp,nnam,nse,nag,ntim,npo,ntechpo,npart,nstud);

}

//在信息最后添加新的信息

voidinsertatlast(intnnum,charntype[],charnname[],charnsex[],intnage,charntime[],charnpos[],charntechpos[],charnparty[],charnstudy[])

{

person*next=myfirst;//定义对象指针并付初值

if(next==NULL)

myfirst=newperson(nnum,ntype,nname,nsex,nage,ntime,npos,ntechpos,nparty,nstudy);

else

{

while(next->getnext()!

=NULL)

next=next->getnext();

next->setnext(newperson(nnum,ntype,nname,nsex,nage,ntime,npos,ntechpos,nparty,nstudy,next->getnext()));

}

}

voidprintf(intr)//获取信息

{

intnage;

charntype[20],nname[20],nsex[20],ntime[20],npos[20],ntechpos[20],nparty[20],nstudy[20];

cout<<"请输入编号为"<

cout<<"输入职工分类码[行政人员,教师,一般员工,退休人员,返聘人员,临时工]:

"<

cin>>ntype;

cout<<"输入姓名:

"<

cin>>nname;

cout<<"输入性别:

"<

cin>>nsex;

cout<<"输入年龄:

"<

cin>>nage;

cout<<"输入来院时间:

"<

cin>>ntime;

cout<<"输入职务[无,科级,处级,地级]:

"<

cin>>npos;

cout<<"输入职称[无,初级,中级,高级]:

"<

cin>>ntechpos;

cout<<"输入加入党派[群众,中共党员,民主党派]:

"<

cin>>nparty;

cout<<"输入学历[小学,初中,高中,大专,大学,硕士,博士]:

"<

cin>>nstudy;

insertatlast(r,ntype,nname,nsex,nage,ntime,npos,ntechpos,nparty,nstudy);

}

voidprintf1(person*ahead)//输出信息

{

cout<<"编号:

"<

:

left)<getnum()<<"姓名:

"<getname()<

cout<<"性别:

"<

:

left)<getsex()<<"年龄:

"<getage()<

cout<<"职工类型:

"<

:

left)<gettype()<<"职务:

"<getpos()<

cout<<"职称:

"<

:

left)<gettechpos()<<"学历:

"<getstudy()<

cout<<"政治面貌:

"<

:

left)<getparty()<<"来院时间:

"<gettime()<

}

voidprintf()

{

person*ahead=myfirst;

cout<<"编号---姓名---性别---年龄---职工类型---职务---职称---学历---政治面貌---来院时间\n"<

while(ahead!

=NULL){cout<

:

left)<getnum()<

:

left)<getname();cout<

:

left)<getsex()<

:

left)<getage();cout<

:

left)<gettype()<

:

left)<getpos();cout<

:

left)<gettechpos()<

:

left)<getstudy();

cout<

:

left)<getparty()<

:

left)<gettime()<

ahead=ahead->getnext();

}

}

voidadd()//添加新信息

{

inti,a,b;

person*p1=myfirst;

if(p1==NULL)

{

cout<<"请输入编号:

";

cin>>i;

printf(i);

}

else

{

if(p1->getnext()==NULL)//如果p1的后继指针为空,则执行“printf(a)”

{

a=p1->getnum()+1;

printf(a);

}

else

{

while(p1->getnext()!

=NULL)//p1的后继指针不为空,则执行“printf(b)”

{

p1=p1->getnext();

}

b=p1->getnum()+1;

printf(b);

}

}

}

boolremovedatnum()//删除信息

{

intbh;

person*ahead=myfirst;

person*follow=ahead;

cout<<"请输入要删除人员的编号:

";

cin>>bh;

if(ahead==NULL)

returnfalse;

else

if(ahead->getnum()==bh)

{

myfirst=myfirst->getnext();

cout<<"编号为"<

deleteahead;

returntrue;

}

else

{

ahead=ahead->getnext();

while(ahead!

=NULL)

{

if(ahead->getnum()==bh)

{

follow->setnext(ahead->getnext());

cout<<"编号为"<

deleteahead;

returntrue;

}

follow=ahead;

ahead=ahead->getnext();

}

cout<<"要删除的成员不存在!

"<

returnfalse;

}

}

boolfind1()//按编号查找

{

intid;

person*ahead=myfirst;

person*follow=ahead;

cout<<"请输入编号:

"<

cin>>id;

cout<<"**********************************"<

if(ahead==NULL)

{

cout<<"无人员信息!

"<

returnfalse;

}

else

{

while(ahead!

=NULL)

{

if(ahead->getnum()==id)

{

printf1(ahead);

returntrue;

}

else

{

follow=ahead;

ahead=ahead->getnext();

}

}

cout<<"无此人信息:

"<

returnfalse;

}

}

boolfind2()//按姓名查找

{

charnm[20];

person*ahead=myfirst;

person*follow=ahead;

cout<<"输入姓名";

cin>>nm;

cout<<"**********************************"<

if(ahead==NULL)

{

co

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1