C++高校人员信息管理系统Word格式文档下载.docx

上传人:b****3 文档编号:17787994 上传时间:2022-12-10 格式:DOCX 页数:33 大小:246.40KB
下载 相关 举报
C++高校人员信息管理系统Word格式文档下载.docx_第1页
第1页 / 共33页
C++高校人员信息管理系统Word格式文档下载.docx_第2页
第2页 / 共33页
C++高校人员信息管理系统Word格式文档下载.docx_第3页
第3页 / 共33页
C++高校人员信息管理系统Word格式文档下载.docx_第4页
第4页 / 共33页
C++高校人员信息管理系统Word格式文档下载.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

C++高校人员信息管理系统Word格式文档下载.docx

《C++高校人员信息管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++高校人员信息管理系统Word格式文档下载.docx(33页珍藏版)》请在冰豆网上搜索。

C++高校人员信息管理系统Word格式文档下载.docx

保存功能

将当前系统中各类人员记录存入文件中。

读取功能

将保存在文件中的人员信息读入到当前系统中,以供用户使用。

在完成以上基本功能的基础上,可自行进行扩展或完善。

2.问题的解决方案:

根据系统功能要求,可以将问题解决分为以下步骤:

(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;

(2)分析系统中的各个实体及它们之间的关系包括属性和行为;

(3)根据问题描述,设计系统的类层次;

(4)完成类层次中各个类的描述(包括属性和方法);

(5)完成类中各个成员函数的定义;

(6)完成系统的应用模块;

(7)功能调试;

(8)完成系统总结报告以及系统使用说明书

1.第一章绪论

1.1课程设计的目的

《C++面向对象程序设计》是计算机专业的基础课程,本课程按照软件程序设计所需能力进行教学设计,提出以项目模块方式带动相关知识点、实践项目和理论并行的思路,将案例贯穿于课程始终,对原有的教学体系、教学内容进行重新编排,按照从易到难的原则,将其巧妙地融入到项目开发过程中,降低学习难度,提高学生学习的信心,有效培养学生的应用能力和学习能力。

1.2课程设计的背景和意义

随着社会的发展,各种公司规模逐渐变大,需要对公司的员工信息进行统一有效的管理,方便的对人员的信息进行增添、查阅、修改、删除、保存,这就必须有一个实用的管理系统。

1.2.1课程设计的背景

1.理论研究基础

掌握C++基本知识,具体包括:

掌握面向对象基本知识和基本概念,掌握静态成员的定义与作用,掌握友元的定义,掌握运算符重载方法,继承与派生,虚函数的定义和使用,输入、输出流操作,文件的创建、打开、读写、关闭等。

2.技术层面的支持

(1)定义基类与派生类,将数据成员与成员函数封装在类中。

(2)设计增添、显示、查询、修改、删除、保存等函数。

1.2.2课程设计的意义

(1)通过课程设计的综合训练,培养了学生分析解决实际问题和编程等实际动手能力。

帮助了同学系统的掌握C++课程的主要内容。

(2)通过详细的实例分析,循环渐进的描述,启发学生顺利的完成设计。

课程设计将设计要求、需求分析、算法设计、编程和实例测试运行分开,为学生创造分析问题、独立

思考的条件。

(3)通过编写一个较长的程序,实现了对人员信息的管理,激发了学生学习编程的兴趣。

1.3课程设计环境

MicrosoftVisualC++6.0

2.第二章需求分析

2.1问题描述

某高校有四类人员:

教师、实验员、行政人员、教师兼行政人员;

共有的信息包括:

编号、姓名、性别、年龄等。

其中,教师还包含的信息有:

所在系部、专业、职称;

实验员还包含的信息有:

所在实验室、职务;

行政人员还包含的信息有:

政治面貌、职称等。

2.2功能要求

1)添加功能

2)查询功能

3)显示功能

4)修改功能

5)删除功能

6)统计功能

7)保存功能

8)读取功能

2.3问题的解决方案

1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;

2)分析系统中的各个实体以及它们之间的关系;

3)根据问题描述,设计系统的类层次;

4)完成类层次中各个类的描述;

5)完成类中各个成员函数的定义;

6)完成系统的应用模块;

7)功能调试;

8)完成系统总结报告。

3.第三章系统设计

3.1数据设计

3.1.1类设计

1.人员的管理需包含人员的基本信息,所以定义一个人员类如表3-1所示:

表3-1员工类

类名

人员类

数据成员

protected:

num(编号)charname[20](姓名)

charsex[10](性别)age(年龄)

成员函数

public:

Input():

输入函数

Output():

输出函数

GetNum():

获取编号

GetName():

获取姓名

2.根据高校人员的工作性质的不同,将所有员工分为教师、实验员、行政人员,教师兼行政人员

表3-2教师类

教师类(公有继承员工类)

chardepart[20](部门);

charspec[20](专业);

chartitle[20](职称);

voidInput_1():

voidOutput_1():

charGetDepart():

获取部门

charGetSpec():

获取专业

charGetTitle():

获取职称

friendTea_Manage:

友元教师管理类

表3-3实验员类

实验员类(公有继承员工类)

chartextroom[20](所在实验室)

charpost[20](职务)

voidInput_3():

voidOutput_3():

charGetTextroom():

获取实验室

charGetPost():

获取职务

friendExp_Manage:

友元实验人员管理类

表3-4行政人员类

行政人员类(公有继承员工类)

charpolitics[20]:

(政治面貌)

chartitle[20]:

(职称)

voidInput_2():

voidOutput_2():

charGetPolitics():

获取政治面貌

获取职称

friendSta_Manage:

友元行政人员管理类

表3-5教师兼行政人员类

教师兼行政人员类(公有继承员工类)

Public:

voidInput_4():

voidOutput_4():

friendTea_Sta_Manage:

友元教师行政人员管理类

4、为了控制以上的类,分别建立了4个管理类,以经理的管理了为例:

表3-6教师管理类

教师管理类

TeacherTea[20](创建教师的空间);

top(统计人员数和进行操作时的指针);

3.1.2类之间的关系

员工类派生出教师类、实验员类、行政人员类,教师类和行政人员类派生出教师兼行政人员类。

3.1.3函数设计

根据要求,为了功能的实现,通过top实现功能。

分别以8个功能函数进行对数据的操作(下面以经理类为例)

voidAdd();

(信息的添加)

voidSearch();

(信息的查找)

voidEdit();

(信息的编辑)

voidTotal();

(信息的统计)

voidDelete();

(信息的删除)

voidShow();

(信息的显示)

voidSave();

(信息的存储)

voidRead();

(信息的读取)

3.2结构设计

3.2.1系统流程图

3.2.2界面设计

1.主菜单界面,如图3—3所示

图3—3主菜单

2.教师菜单界面,如图3-4

图3—4教师管理界面

3.教师查询界面,如图3-5所示:

图3—5教师查询界面

4.教师删除界面,如图3-6所示:

图3—6教师删除界面

4.第四章系统实现

4.1类实现

classPerson//人员类

classTeacher:

virtualpublicPerson//教师类

classGovernment:

virtualpublicPerson//行政人员类

classExperimenter:

publicPerson//实验员类

classTea_Gover:

publicTeacher,publicGovernment:

//教师兼行政人员类

classTea_manage//教师管理类

classGov_manage//行政人员管理类

classExp_manage//实验员管理类

classTea_GoverManage//教师兼行政人员管理类

4.2函数实现

voidPerson:

:

Input()//员工信息输入

{

cout<

<

"

请输入编号:

endl;

cin>

>

num;

请输入名字:

name;

请输入性别:

sex;

请输入年龄:

age;

}

voidTeacher:

Input_1()//教师信息输入

Input();

请输入所在系别:

depart;

请输入专业名称:

spec;

请输入职称:

title;

Output()//员工信息输出

编号:

num<

姓名:

name<

性别:

sex<

cout<

年龄:

age<

Output_1()//教师信息输出

Output();

所在系别:

depart<

所在专业:

spec<

职称:

title<

intPerson:

GetNum()//返回编号

returnnum;

charPerson:

GetName()//返回姓名

returnname[20];

GetSex()//返回性别

returnsex[10];

GetAge()//返回年龄

returnage;

}

charTeacher:

GetDepart()//返回所在部门

returndepart[20];

GetSpec()//返回专业

returnspec[20];

GetTitle()//返回职称

returntitle[20];

voidTea_Manage:

Add()//教师信息的添加

Teachert;

请输入新增人员的信息:

t.Input_1();

inti;

for(i=0;

i<

top;

i++)

{

if(t.GetNum()==Tea[i].GetNum())

{

cout<

编号已存在,请重新输入:

break;

}

}

if(i==top)

{

if(top>

1000)

cout<

内存已满,不可添加"

elseif(top<

=1000)

{Tea[top]=t;

添加成功"

top++;

}

return;

Show()//教师信息的显示

for(inti=0;

Tea[i].Output_1();

....................................."

Search()//教师信息的查询

if(top==0)

cout<

没有任何信息"

intchoice;

inti=0;

intm=0;

intn=0;

intnum;

请输入您的选择:

查询方式1.按名字2.按编号"

choice;

switch(choice)

case1:

charname[20];

请输入您所查询的人员名字:

cin>

for(i;

{

if(!

strcmp(name,Tea[i].name))

{

Tea[i].Output_1();

break;

}

if(i==top)

查无此人"

}break;

case2:

请输入编号:

for(i=0;

if(num==Tea[i].GetNum())

if(i==top)

cout<

Edit()//教师信息的修改

inti=0;

Search();

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"

1.修改编号2.修改姓名3.修改性别4.修改年龄5.修改系别6.修改专业7.修改职称0.退出"

cin>

编号不可修改"

charna[20];

请输入修改后的姓名:

na;

strcpy(Tea[i].name,na);

修改成功"

case3:

intm;

chara[10];

输入修改后的内容:

cin>

a;

strcpy(Tea[i].sex,a);

修改成功,是否继续(1/2)"

m;

if(m=1)

return;

case4:

intb,m;

请输入修改后的年龄:

b;

Tea[i].age=b;

return;

case5:

charn[20];

请输入修改后系部:

n;

strcpy(Tea[i].depart,n);

}break;

case6:

请输入修改后专业:

strcpy(Tea[i].spec,n);

case7:

请输入修改后的职称:

strcpy(Tea[i].title,n);

case0:

退出成功!

break;

default:

无此选项!

请重试!

Delete()//教师信息的删除

请输入你想删除人员的编号:

t.num;

没有人员选择"

for(i;

if(t.num==Tea[i].num)

Tea[i]=Tea[i+1];

top--;

break;

if(i==top)

删除成功"

intm;

if(m=1)return;

Total()//教师信息的统计

top<

Save()//教师信息的保存

ofstreamoutfile("

c:

//高校管理系统之教师类.dat"

ios:

binary);

if(!

outfile)

cerr<

openerror!

abort();

outfile.write((char*)&

Tea[i],sizeof(Tea[i]));

保存成功"

outfile.close();

Read()//教师信息的读出

ifstreaminfile("

infile)

while(infile.read((char*)&

Tea[top],sizeof(Tea[0])))top++;

读取成功"

infile.close();

4.3主函数实现

intmain()//主函数的实现

***欢迎进入北华航天工业学院人员管理系统***"

do{

*****主菜单*****\n"

||||"

||1=>

行政人员管理2=>

教师管理||"

cout

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

当前位置:首页 > 高等教育 > 理学

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

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