高校人员信息管理系统 课程设计报告书.docx

上传人:b****8 文档编号:27885728 上传时间:2023-07-06 格式:DOCX 页数:78 大小:119.35KB
下载 相关 举报
高校人员信息管理系统 课程设计报告书.docx_第1页
第1页 / 共78页
高校人员信息管理系统 课程设计报告书.docx_第2页
第2页 / 共78页
高校人员信息管理系统 课程设计报告书.docx_第3页
第3页 / 共78页
高校人员信息管理系统 课程设计报告书.docx_第4页
第4页 / 共78页
高校人员信息管理系统 课程设计报告书.docx_第5页
第5页 / 共78页
点击查看更多>>
下载资源
资源描述

高校人员信息管理系统 课程设计报告书.docx

《高校人员信息管理系统 课程设计报告书.docx》由会员分享,可在线阅读,更多相关《高校人员信息管理系统 课程设计报告书.docx(78页珍藏版)》请在冰豆网上搜索。

高校人员信息管理系统 课程设计报告书.docx

高校人员信息管理系统课程设计报告书

北华航天工业学院

 

《基于C++的面向对象程序设计实例》

课程设计报告

 

报告题目:

高校人员信息管理系统

作者所在系部:

计算机科学与工程系

作者所在专业:

网络工程

作者所在班级:

B08522班

作者姓名:

马洪彪

指导教师姓名:

赵辉

完成时间:

2008年6月26日

 

北华航天工业学院教务处制

课程设计任务书

课题名称

高校人员信息管理系统

完成时间

第18周

指导教师

职称

讲师

学生姓名

班级

总体设计要求和技术要点

某高校,主要人员有:

领导、教师和学生,共有的信息包括:

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

其中领导还应包含的信息有:

任职部门(学院、各系部)、职称;教师还应包含的信息有:

职称、任职时间、专业;学生还应包含的信息有:

所在班级、所在宿舍等.

要求:

对各类人员信息完成的基本功能有:

1)添加功能:

程序能够添加相应的记录;

2)查询功能:

能根据编号和姓名进行查询,并显示相应的记录信息;

3)编辑功能:

根据查询对相应的记录进行修改;

4)统计功能:

能根据多种参数进行人员的统计(如在职人数、党员人数、女工人数等);

5)删除功能:

根据查找结果,完成具体记录的删除。

6)保存功能:

将对高校人员信息进行的添加、删除、修改结果保存到文本文件中。

学生在完成本次课程设计的基本要求后,进一步完善程序,从如下几个方面加以考虑:

1)添加人员记录时,考虑各种数据的有效性。

2)组合查询功能的实现。

3)编辑数据时,注意操作的方便

4)删除数据时,考虑删除操作的方便

工作内容及时间进度安排

1.6月2日~13日:

布置任务,软件设计

2.6月15日~26日:

编写代码,上机调试

3.6月25、26日:

软件验收,撰写课程设计报告

4.各班在6月29日下午四点前将课程设计报告收齐并上交

课程设计成果

1.课程设计报告

2.源程序代码

摘要

在信息化教育的今天,高校要想实现教育的现代化,不但要又优秀的师资力量,同时也要有好的软件系统.高校人员信息管理系统是一套完善的信息化管理系统,用来实现高校人员的统一方便的信息操作,以实现高校人员流动及时更新、及时反馈校园信息、完善教育质量、提高教育效率、分析校园需求、制定招生和招聘的管理目的。

本文利用Microsoftvisualc++6.0提供的OOP(噢把巨额彩图噢日恩特等批rogrammin,OOP面向对象的程序设计)的编写程序,实现了校园内部人员的信息添加,查询,编辑,统计,删除,载入,保存,加载等功能。

本系统主要有四个类:

基类、领导类、教师类以及学生类。

已经过全面的系统测试,能够很好的运行,基本达到了预期的效果。

关键词:

系统类信息管理

第一章绪论

1.1课程设计的目的

课程设计是课程教学必不可缺的一个重要环节,可加深学生对该课程所学内容的进一步的了解与巩固,是将计算机课程与实际问题相连接的关键步骤。

通过课程设计,能够提高学生的分析问题,解决问题,要能很好的完成课程设计,要求我们必须掌握在学习中学到的知识,所以要我们对课本中学的知识要熟悉且掌握,从而运用所学知识解决实际问题的能力,因而必须给予足够的重视。

1.2课程设计的背景和意义

1.2.1课程设计的背景

1。

理论研究基础

(1)C++语言的基本知识和技能,如:

类与对象,指针,输入/输出流,文本文件的建立保存;

(2)面向对象程序设计的基本思路和方法。

2。

技术层面的支持

(1)研究这些结构的存储、显示,并有查找、添加、删除、修改、查询、统计、保存信息、载入等功能.

(2)类定义、类对象、继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容.

1.2.2课程设计的意义

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

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

(2)综合实际应用的需求是课程设计既覆盖教学所要求的知识点,有接近工程的实际需求,训练自己实际分析问题和解决问题以及编程的能力。

做到理论结合实际.

1.3课程设计环境

(1)在MicrosoftVisualC++6.0开发平台上编写程序源代码,修改,增加功能,通过编译、连接,直到完全无误,最终执行程序,反复输入合理的以及不合理的数据进行测试并进一步完善。

(2)硬件:

学校机房

(3)软件:

MicrosoftVisualC++6。

0开发平台

第二章需求分析

2.1问题描述

某高校,主要人员有:

领导、教师和学生,共有的信息包括:

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

其中领导还应包含的信息有:

任职部门(学院、各系部)、职称;教师还应包含的信息有:

职称、任职时间、专业;学生还应包含的信息有:

所在班级、所在宿舍等。

2.2功能要求

(1)对各类人员信息完成的基本功能有:

1)添加功能:

程序能够添加相应的记录;

2)查询功能:

能根据编号和姓名进行查询,并显示相应的记录信息;

3)编辑功能:

根据查询结果对相应的记录进行修改;

4)统计功能:

能根据多种参数进行人员的统计(如在职人数、党员人数、女工人数等);

5)删除功能:

根据查找结果,完成具体记录的删除。

6)保存功能:

将对高校人员信息进行的添加、删除、修改结果保存到文本文件中。

7)载入功能:

把文件中的数据导入内存中,通过显示功能把载入的数据显示在桌面上.

(2)学生在完成本次课程设计的基本要求后,进一步完善程序,从如下几个方面加以考虑:

1)添加人员记录时,考虑各种数据的有效性。

2)组合查询功能的实现.

3)编辑数据时,注意操作的方便。

4)删除数据时,考虑删除操作的方便.

5)载入数据时,要考虑到操作简单,快捷.

2.3问题的解决方案

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

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

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

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

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

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

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

7)功能调试;

8)完成系统总结报告.

第三章系统设计

3.1数据设计

3.1.1类设计

***************************************************************************

基类:

***************************************************************************

classPerson//定义基类Person

{

public:

Person(intn,stringnam,chars,inta):

num(n),name(nam),sex(s),age(a){}

intnum;

stringname;

protected:

charsex;

intage;

};

***************************************************************************

领导类:

***************************************************************************

classLeader:

publicPerson//由基类派生出Leader(领导)类

{

public:

Leader(intn=0,stringnam=””,chars='m’,inta=0,stringd=”",stringp=””):

Person(n,nam,s,a),dep(d),post(p){}

voidset_leader()

cout<<"pleaseinputthenumberofleader(1to20):

”;cin〉〉num;

for(intk=1;k<21;k++)

if(num==k)

k=21;

if(k==21)

{

cout<〈”thenumberyouputiniswrong,pleaseinputtheinformationagain"〈

set_leader();

}//如果输入数字合法,则k=22;否则,k=21

cout<〈"pleaseinputthenameofleader:

";cin>>name;

cout〈<"pleaseinputthesexofleader(morf):

”;cin〉>sex;

if(sex!

=’m'&&sex!

=’f’)

{

cout<〈"thesexyouputiniswrong,pleaseinputtheinformationagain”〈〈endl;

set_leader();

}

cout〈<”pleaseinputtheageofleader:

";cin>〉age;

cout〈<”pleaseinputthedepartmentofleader:

";cin>>dep;

cout〈〈"pleaseinputthepostofleader:

";cin〉>post;

}

voidshow_leader()

{

cout<〈”number"<〈"\t"〈〈"name”<<"\t"<〈”sex”<〈”\t”<〈"age”〈<"\t”<<"department"〈〈”\t"<<”post”<

cout<〈num<<"\t”〈〈name〈<"\t"〈〈sex<〈"\t"〈

voidsave_leader(ofstream&outf)

outf<〈"number”<<”\t”〈〈”name"<〈”\t”〈<"sex"<<"\t"<<”age"〈〈”\t"〈<"department"<<”\t”<〈”post"〈〈endl;

outf〈

}

voidload_leader(ifstream&inf)

{

inf>〉num〉〉name〉>sex〉〉age〉>dep>>post;

friendvoidLTongJi();

private:

stringdep;

stringpost;

}led[20];

***************************************************************************

教师类:

***************************************************************************

classTeacher:

publicPerson//由基类派生出Teacher(老师)类

{

public:

Teacher(intn=0,stringnam=”",chars=’m’,inta=0,stringp=”",stringd="”,stringsp=”"):

Person(n,nam,s,a),post(p),day(d),spec(sp){}

voidset_teacher()

{

cout<〈”pleaseinputthenumberofteacher(1to20):

”;cin〉>num;

for(intk=1;k〈21;k++)

if(num==k)

k=21;

if(k==21)

cout〈〈"thenumberyouputiniswrong,pleaseinputtheinformationagain"〈

set_teacher();

}//如果输入数字合法,则k=22;否则,k=21

cout〈〈"pleaseinputthenameofteacher:

";cin〉〉name;

cout<〈”pleaseinputthesexofteacher(morf):

";cin〉>sex;

if(sex!

=’m'&&sex!

='f')

cout<〈"thesexyouputiniswrong,pleaseinputtheinformationagain”<

set_teacher();

}

cout〈〈”pleaseinputtheageofteacher:

”;cin>>age;

cout<<"pleaseinputthepostofteacher:

";cin〉>post;

cout〈〈"pleaseinputthedayofteacher:

”;cin>>day;

cout<<”pleaseinputthespecialtyofteacher:

";cin〉>spec;

}

voidshow_teacher()

cout〈<”number"〈〈”\t”〈〈”name"〈<"\t”<<"sex"<<"\t”〈<”age”<〈"\t”<〈"post"〈〈"\t"〈〈"time"<〈”\t”〈<"specialty”〈〈endl;

cout<〈num<<”\t"〈

voidsave_teacher(ofstream&outf)

outf〈<"number"〈〈”\t”〈〈”name”<〈"\t"〈〈"sex"〈<"\t”<<"age”<〈”\t"<〈"post”<<"\t"<〈”time”〈〈"\t”〈<"specialty"〈〈endl;

outf<

}

voidload_teacher(ifstream&inf)

inf>>num>>name>>sex>〉age>〉post>>day〉>spec;

}

friendvoidTTongJi();

private:

stringpost;

stringday;

stringspec;

}tea[20];

***************************************************************************

学生类:

***************************************************************************

classStudent:

publicPerson//定义由Person类派生出的Student类

{

public:

Student(intn=0,stringnam=”",chars=’m',inta=0,stringc="",stringd=”"):

Person(n,nam,s,a),cla(c),door(d){}

voidset_student()

{

cout〈〈”pleaseinputthenumberofstudent(1to20):

";cin〉〉num;

for(intk=1;k〈21;k++)

if(num==k)

k=21;

if(k==21)

{

cout<〈"thenumberyouputiniswrong,pleaseinputtheinformationagain"<〈endl;

set_student();

}//如果输入数字合法,则k=22;否则,k=21

cout〈〈”pleaseinputthenameofstudent:

”;cin>〉name;

cout〈〈”pleaseinputthesexofstudent(form):

";cin>〉sex;

if(sex!

='m'&&sex!

='f’)

{

cout<<”thesexyouputiniswrong,pleaseinputtheinformationagain"〈

set_student();

}

cout〈<"pleaseinputtheageofstudent:

";cin〉>age;

cout〈<”pleaseinputtheclassofstudent:

”;cin>>cla;

cout〈<”pleaseinputthedormitoryofstudent:

”;cin>>door;

voidshow_student()

{

cout<<"number”<〈"\t"<<”name"<<"\t"〈<”sex”〈<”\t"<〈"age"〈〈”\t”<<”class"〈<”\t"〈<"dormitory"〈〈endl;

cout〈〈num〈<”\t"〈〈name〈〈"\t"〈〈sex〈〈”\t”<

}

voidsave_student(ofstream&outf)

{

outf〈<"number"〈<”\t"〈〈"name”<<”\t"<〈"sex"<<"\t”〈〈"age"〈<”\t”<<"class”〈〈"\t”〈〈”dormitory"<

outf<

voidload_student(ifstream&inf)

{

inf〉〉num〉>name>>sex〉〉age>〉cla〉〉door;

}

friendvoidSTongJi();

private:

stringcla;

stringdoor;

}stu[20];

3.1.2类之间的关系

基类为Person类。

Leader类、Teacher类、Student类公用继承Person类

3.1.3函数设计

voidTianJia()******************************************添加功能函数

可以对人员的信息进行添加,能够防止重复编号的添加

voidChaXun()*****************************************查询功能函数

可按照编号或姓名进行人员信息的查询

voidBianJi()*******************************************编辑功能函数

可对人员的信息进行修改

voidTongJi()******************************************统计功能函数

可统计人员的相关信息

voidShanChu()****************************************删除功能函数

查询到需要删除的人员后,执行删除命令,可将其删除

voidBaoCun()*****************************************保存功能函数

将人员信息保存在文本文档中

voidJiaZai()*******************************************加载功能函数

将人员信息由文本文档加载到内存中

intmain()***************************************************主函数

调用各个功能函数以及菜单函数

3.2结构设计

3.2.1系统流程图

图3-1系统流程图

3.2.2界面设计

(1)进入程序界面

图3-2进入程序的欢迎界面

(2)选择操作方式界面

图3-3选择操作方式时的界面

(3)选择操作对象界面

图3-4选择操作对象时的界面

(4)退出程序界面

图3—5退出程序时的界面

第四章系统实现

4.1类实现

定义基类Person类,然后由基类派生出Leader(领导)类、Teacher(教师)类、Student(学生)类。

在各类中定义相关成员函数和数据成员

图4—1类结构图

4.2函数实现

4.2.1高校人员信息的添加功能的实现

该功能用于对高校人员信息进行添加

(1)该函数分别调用

(2)(3)(4)中的函数,分别实现对领导、教师、学生信息的添加

voidTianJia()***************************************************添加功能函数

inti=1;

while(i)

intchoice;

Menu();

cin>>choice;

switch(choice)

case1:

LTianJia();break;//添加领导信息

case2:

TTianJia();break;//添加教师信息

case3:

STianJia();break;//添加学生信息

case4:

i=0;break;

default:

cout〈〈”error,pleaseinputitagain!

"〈

}

}

(2)对领导信息的添加

voidLTianJia()**********************************对领导类对象的添加功能函数

led[Lcount]。

set_leader();//调用领导类成员函数添加信息

cout<<”succeedinadding”<

led[Lcount].show_leader();//调用领导类成员函数显示添加的信息

Lcount++;

}

(3)对教师信息的添加

voidTTianJia()*********************************

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

当前位置:首页 > 外语学习 > 英语考试

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

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