C课设高校人员信息管理系统附全部代码.docx
- 文档编号:3358792
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:89
- 大小:367.73KB
C课设高校人员信息管理系统附全部代码.docx
《C课设高校人员信息管理系统附全部代码.docx》由会员分享,可在线阅读,更多相关《C课设高校人员信息管理系统附全部代码.docx(89页珍藏版)》请在冰豆网上搜索。
C课设高校人员信息管理系统附全部代码
《基于C++的面向对象程序设计实例》
课程设计报告
报告题目:
高校人员信息管理系统
作者所在系部:
计算机科学与工程系
作者所在专业:
计算机科学与技术
作者所在班级:
作者姓名:
指导教师姓名:
完成时间:
2010年6月
《基于C++的面向对象程序设计实例》任务书
一.目的与要求
1、目的
(1)要求学生能够熟练掌握C++语言的基本知识和技能。
(2)基本掌握面向对象程序设计的基本思路和方法。
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2、基本要求
(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计。
(2)在系统的设计中,要求运用面向对象的机制(继承、派生及多态性)来实现系统功能,并且要建立清晰的类层次关系。
(3)在系统设计中要分析和定义各个类,每个类中要有各自的数据成员和成员函数。
(4)主函数中提供菜单选项,并给出足够的选择信息以及提示信息。
(5)程序具有一定的健壮性,不会因为用户的输入错误引起程序运行错误而中断执行。
对输入值的类型、大小范围、字符串的长度等,进行正确性检查,对不合法的输入值给出出错信息,指出错误类型,等待重新输入。
3、创新要求
在基本要求达到后,可根据实际情况进行创新设计,如根据查找结果进行修改的功能及设计出比较友好的界面等。
二.验收方式
完成设计内容之后,即可开始验收。
验收时,首先由学生简要说明所做题目的思路、设计结构及实现过程,然后运行程序并进行测试,对输出结果作出解释,同时认真回答教师提出的问题。
三.课设报告
在完成验收之后,提交课设报告。
其中报告中需包括系统设计要求,设计思路,系统功能模块图,系统流程图,类的层次图(包括类成员列表),调试过程,关键程序代码,总结,参考书目等。
另外,课设报告要严格遵守模板文件的格式要求,思路清晰,内容详实丰富。
四.成绩评定
课设总成绩=验收成绩(50%)+课程设计报告成绩(30%)+程序源代码(10%)+课设态度、考勤与遵守教学制度情况(10%)
五.说明
1、每位同学在以下的题目中任选一个来完成。
2、学生应严格遵守课堂秩序,按时上机,认真完成各项任务。
3、上机前做好充分的准备,包括事先写好主要程序代码,以保证充分利用上机的时间调试程序。
4、每位同学各自独立完成自己的题目,禁止抄袭或拷贝。
5、必须按规定时间上交课设报告。
六.课设题目
题目1“高校员工信息管理系统”
1、问题描述
某高校有四类员工:
教师、实验员、行政人员,教师兼行政人员;共有的信息包括:
编号、姓名、性别、年龄等。
其中,教师还包含的信息有:
所在系部、专业、职称;实验员还包含的信息由:
所在实验室、职务;行政人员还包含的信息有:
政治面貌、职称等。
2、功能要求
(1)基本功能
1)添加功能:
程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
2)查询功能:
可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
3)显示功能:
可显示当前系统中所有记录,每条记录占据一行。
4)编辑功能:
可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
5)删除功能:
主要实现对已添加的人员记录进行删除。
如果当前系统中没有相应的人员记录,则提示“记录为空!
”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。
6)统计功能:
能根据多种参数进行人员的统计。
例如,统计四类人员数量以及总数,
或者统计男、女员工的数量,或者统计某年龄段人员的数量等。
7)保存功能:
可将当前系统中各类人员记录存入文件中,存入方式任意。
8)读取功能:
可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。
(2)扩展功能
在完成以上基本功能的基础上,可自行进行扩展或完善,例如:
1)添加人员记录时,考虑各种数据的有效性。
2)组合查询功能的实现。
3)可按人员的某些信息进行排序。
4)对文件的读写使用二进制信息。
3、问题的解决方案
根据系统功能要求,可以将问题解决分为以下步骤:
1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
2)分析系统中的各个实体及它们之间的关系;
3)根据问题描述,设计系统的类层次;
4)完成类层次中各个类的描述;
5)完成类中各个成员函数的定义;
6)完成系统的应用模块;
7)功能调试;
8)完成系统总结报告。
摘要
在当前的学校人员管理体制下,高等学校不但要有浓厚的学风气息、雄厚的师资力量、先进精良硬件设备,与此同时,作为先进科学技术和优秀文化的承载者和传播者,更需要有一个执行效率高并且便于操作的现代信息化管理系统,以实现对高校各类人员进行添加、查找、修改、删除、统计、保存、读取等动态管理的目的。
本文利用MicrosoftVisualC++6.0的ADO编写程序,实现了高校对实验员、教师、行政人员、教师兼行政人员的管理操作。
本系统主要有四个管理模块——实验员管理系统、教师管理系统、行政人员管理系统、教师兼行政人员管理系统。
已经过全面的系统测试,能够很好的运行,达到了预期的效果。
关键词:
系统设计类信息人员管理
摘要Ⅰ
第1章绪论1
1.1课程设计的目的1
1.2课程设计的背景和意义1
1.1.1课程设计的背景1
1.1.2课程设计的意义1
1.3课程设计环境1
第2章需求分析2
2.1问题描述2
2.2功能需求2
2.3问题的解决方案3
第3章系统设计4
3.1数据设计4
3.1.1类设计4
3.1.2类之间关系5
3.2结构设计6
3.2.1系统流程图6
3.2.2界面设计6
第4章系统实现9
4.1类实现9
4.2函数实现11
4.3主函数实现21
第5章系统测试23
5.1模块测试23
5.2课程设计过程中遇到的问题32
总结33
致谢34
参考文献35
第1章绪论
1.1课程设计的目的
(1)要求学生能够熟练掌握C++语言的基本知识和技能。
(2)基本掌握面向对象程序设计的基本思路和方法。
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
1.2课程设计的背景和意义
1.2.1课程设计的背景
1.理论研究基础
(1)综合C++编程知识,结合实际加以应用。
(2)参考课本对课本熟悉,应用类、数组等内容。
2.技术层面的支持
安装MicrosoftVisualC++6.0集成开发环境。
1.2.2课程设计的意义
综合复习《C++面向对象程序设计》的所有知识点,进一步熟练面向对象程序的开发方法和流程,提高学生独立分析问题和解决问题的能力,培养学生的中、小型实践项目开发能力。
让我们提前感受到编写软件的过程和解决问题的方法。
1.3课程设计环境
软件环境:
MicrosoftVisualC++6.0集成开发环境。
硬件环境:
图书馆五楼机房,笔记本电脑。
第2章需求分析
2.1问题描述
某高校有四类员工:
教师、实验员、行政人员,教师兼行政人员;共有的信息包括:
编号、姓名、性别、年龄等。
其中,教师还包含的信息有:
所在系部、专业、职称;实验员还包含的信息由:
所在实验室、职务;行政人员还包含的信息有:
政治面貌、职称等
2.2功能要求
(1)基本功能
1)添加功能:
程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
2)查询功能:
可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
3)显示功能:
可显示当前系统中所有记录,每条记录占据一行。
4)编辑功能:
可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
5)删除功能:
主要实现对已添加的人员记录进行删除。
如果当前系统中没有相应的人员记录,则提示“记录为空!
”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。
6)统计功能:
能根据多种参数进行人员的统计。
例如,统计四类人员数量以及总数,
或者统计男、女员工的数量,或者统计某年龄段人员的数量等。
7)保存功能:
可将当前系统中各类人员记录存入文件中,存入方式任意。
8)读取功能:
可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。
(2)扩展功能
在完成以上基本功能的基础上,可自行进行扩展或完善,例如:
1)添加人员记录时,考虑各种数据的有效性。
2)组合查询功能的实现。
3)可按人员的某些信息进行排序。
4)对文件的读写使用二进制信息。
2.3问题的解决方案
根据系统功能要求,可以将问题解决分为以下步骤:
1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
2)分析系统中的各个实体及它们之间的关系;
3)根据问题描述,设计系统的类层次;
4)完成类层次中各个类的描述;
5)完成类中各个成员函数的定义;
6)完成系统的应用模块;
7)功能调试;
8)完成系统总结报告。
第3章系统设计
3.1数据设计
3.1.1类设计
此系统共设计了九个类:
基类(classPerson),实验员类(classExperimenter),教师类(classTeacher),行政人员类(classStaff),教师兼行政人员类(classTea_Sta)
基类中有
intnum;公用数据成员用于记录类成员的编号
intage;公用数据成员用于记录类成员的年龄
stringname;公用数据成员用于记录类成员的姓名
stringsex;公用数据成员用于记录类成员的性别
virtualvoidInput();公有数据成员函数用于输入成员信息
virtualvoidOutput();公有数据成员函数用于输出成员信息
intGetNum();公有数据成员函数用于获得成员编号
stringGetName();公有数据成员函数用于获得成员姓名
实验员类中添加了
stringlibrary;公有数据成员用于记录类成员的实验室
stringzw;公有数据成员用于记录类成员的职务
intchoice2;公有数据成员用于选择成员的性别
教师类中添加了
stringdepart;公有数据成员用于记录类成员的部门
stringspec;公有数据成员用于记录类成员的专业
stringtitle;公有数据成员用于记录类成员的职称
intchoice1;公有数据成员用于选择成员的部门
intchoice2;公有数据成员用于选择成员的性别
行政人员类中添加了
stringzzmm;;公有数据成员用于记录类成员的政治面貌
stringzc;公有数据成员用于记录类成员的任职职称
intchoice2;公有数据成员用于选择成员的性别
教师兼行政人员类添加了
intchoice1;公有数据成员用于选择成员的部门
intchoice2;公有数据成员用于选择成员的性别
还有四个功能相同的功能函数类,其中有Exp_Manage类Tea_Manage类Staf_Manage类Tea_Staf_Manage类。
分别实现不同的相应功能。
Tea_StaTea[TMAX];TMAX为常量,为数组中可存储的教师记录的最大数;
inttop;top表示当前系统中存储的记录个数;
Tea_Staf_Manage(){top=0;}初始时记录的个数为0,所以设置top=0;
voidAdd();实现该类记录的添加;
voidShow();实现该类所有记录的显示;
voidSearch();实现该类记录的查询;
voidEdit();实现该类记录的修改;
voidDelete();实现该类记录的删除;
voidTotal();实现该类记录的统计;
voidSave();将该类记录保存到文件;
voidRead();可从文件中将记录读取到该类的数组中;
实验员、教师、行政人员管理类中函数都相同,在此略。
3.1.2类之间的关系
基类:
(classPerson)派生类有:
(classExperimenter),(classTeacher),(classStaff)
(classTea_Sta)
四个平行关系的类,实现不同类的功能:
(classExp_Manage)(classTea_Manage)(classStaf_Manage)(classTea_Staf_Manage)
3.1.3函数设计
在四个管理类中定义了以下相同函数,功能如其后所说
voidAdd();实现该类记录的添加;
voidShow();实现该类所有记录的显示;
voidSearch();实现该类记录的查询;
voidEdit();实现该类记录的修改;
voidDelete();实现该类记录的删除;
voidTotal();实现该类记录的统计;
voidSave();将该类记录保存到文件;
voidRead();可从文件中将记录读取到该类的数组中;
3.2结构设计
3.2.1系统流程图
图3―1
3.2.2界面设计
主菜单界面
图3―2主菜单界面图
实验员类菜单界面
图3―3实验员类菜单界面图
教师类菜单界面
图3―4教师类菜单界面图
政人员管理菜单界面
图3―5政人员管理菜单界面图
教师兼行政人员管理菜单界面
图3―6教师兼行政人员管理菜单界面图
第4章系统实现
4.1类实现
对于基类的定义
classPerson
{
public:
intnum;公用数据成员用于记录类成员的编号
intage;公用数据成员用于记录类成员的年龄
stringname;公用数据成员用于记录类成员的姓名
stringsex;公用数据成员用于记录类成员的性别
public:
Person(intn=0,stringnm="",strings="",inta=0):
num(n),name(nm),sex(s),age(a){};
virtualvoidInput(){};
virtualvoidOutput(){};
intGetNum(){returnnum;}公有数据成员函数用于获得成员编号
stringGetName(){returnname;}公有数据成员函数用于获得成员姓名
};
对实验员派生类的定义
classExperimenter:
publicPerson
{
public:
stringlibrary;公有数据成员用于记录类成员的实验室
stringzw;公有数据成员用于记录类成员的职务
intchoice2;公有数据成员用于选择成员的性别
public:
Experimenter(intn=0,stringnm="",strings="男",inta=0,stringl="",stringz="")
:
Person(num,name,sex,age),library(l),zw(z){};
voidInput()成员函数用于输入成员信息
voidOutput()成员函数用于输出成员信息
};
对于教师派生类的定义
classTeacher:
virtualpublicPerson
{
public:
stringdepart;公有数据成员用于记录类成员的部门
stringspec;公有数据成员用于记录类成员的专业
stringtitle;公有数据成员用于记录类成员的职称
intchoice1;公有数据成员用于选择成员的部门
intchoice2;公有数据成员用于选择成员的性别
public:
Teacher(intn=0,stringnm="",strings="男",inta=0,stringd="电子系",stringsp="",stringt="")
:
Person(n,nm,s,a),depart(d),spec(sp),title(t){};
voidInput()成员函数用于输入成员信息
voidOutput()成员函数用于输出成员信息
对于行政人员派生类的定义
classStaff:
virtualpublicPerson
{
public:
stringzzmm;;公有数据成员用于记录类成员的政治面貌
stringzc;公有数据成员用于记录类成员的任职职称
intchoice2;公有数据成员用于选择成员的性别
public:
Staff(intn=0,stringnm="",strings="男",inta=0,stringz="",stringzc="")
:
Person(n,nm,s,a),zzmm(z),zc(zc){};
voidInput()成员函数用于输入成员信息
voidOutput()成员函数用于输出成员信息
};
对于教师兼行政人员类的定义
classTea_Sta:
publicTeacher,publicStaff
{
public:
intchoice1;公有数据成员用于选择成员的部门
intchoice2;公有数据成员用于选择成员的性别
Tea_Sta(intn=0,stringnm="",strings="男",inta=0,stringd="电子系",stringsp="",stringt="",stringz="",stringzc="")
:
Person(n,nm,s,a),Teacher(n,nm,s,a,sp,t),Staff(n,nm,s,a,z,zc){};
voidInput()成员函数用于输入成员信息
voidOutput()成员函数用于输出成员信息
};
对于在四个管理类中函数功能都相同,以教师类为例
classTea_Manage
{
TeacherTea[TMAX];TMAX为常量,为数组中可存储的教师记录的最大数;
inttop;top表示当前系统中存储的记录个数;
public:
Tea_Manage(){top=0;}初始时记录的个数为0,所以设置top=0;
voidAdd();实现该类记录的添加;
voidShow();实现该类所有记录的显示;
voidSearch();实现该类记录的查询;
voidEdit();实现该类记录的修改;
voidDelete();实现该类记录的删除;
voidTotal();实现该类记录的统计;
voidSave();将该类记录保存到文件;
voidRead();可从文件中将记录读取到该类的数组中;
};
4.2函数实现
对于在四个管理类中定义了相同的函数,以教师类为例
添加功能:
程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加
voidTea_Manage:
:
Add()
{
if(top>=TMAX)
{
cout<<"用户已满"< return; } Teachert; cout<<"输入新添加的人员的信息"< t.Input(); for(inti=0;i if(t.GetNum()==Tea[i].GetNum()) { cout<<"该编号的人员已存在"< return; } Tea[top]=t; top=top+1; cout<<"添加成功! "< } 显示功能: 可显示当前系统中所有记录,每条记录占据一行。 voidTea_Manage: : Show() { if(top==0) { cout<<"无数据! "< return; } cout< < < < < < < < for(inti=0;i Tea[i].Output(); } 查询功能: 可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。 voidTea_Manage: : Search() { if(top==0) { cout<<"当前系统中没有存储记录"< return; } intchoice; cout<<"请选择查找方式: 1.按编号查找2.按姓名查找."< cin>>choice; switch(choice) { case1: { cout<<"请输入要查找的编号: "< intnum; cin>>num; for(inti=0;i { if(Tea[i].GetNum()==num) { Tea[i].Output(); return; } } cout<<"查无此人! "< }break; case2: { cout<<"请输入要查找的姓名"< stringname; cin>>name; for(inti=0;i { if(Tea[i].GetName()==name) { Tea[i].Output(); } } for(i=0;i if(Tea[i].GetName()==name) return; cout<<"查无此人! "< }break; default: cout<<"无此选项! 请重试! "<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高校 人员 信息管理 系统 全部 代码