C++课设高校人员信息管理系统附全部代码.docx
- 文档编号:29379170
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:92
- 大小:275.97KB
C++课设高校人员信息管理系统附全部代码.docx
《C++课设高校人员信息管理系统附全部代码.docx》由会员分享,可在线阅读,更多相关《C++课设高校人员信息管理系统附全部代码.docx(92页珍藏版)》请在冰豆网上搜索。
C++课设高校人员信息管理系统附全部代码
高校人员管理系统
课程设计报告
报告题目:
高校人员信息管理系统
作者所在系部:
经济与管理系
作者所在专业:
电子商务
作者所在班级:
作者姓名:
指导教师姓名:
完成时间:
C++程序设计课程设计任务书
一、课程设计目的
1、巩固并加深学生对C++语言程序设计知识的理解;
2、培养学生面向对象的程序设计思想,使学生认识面向过程和面向对象两种设计方法的区别;
3、进一步掌握和应用VC++6.0集成开发环境;
4、提高运用C++语言解决实际问题的能力;
5、初步掌握开发小型实用软件的基本方法,能独立设计、实现具有实际功能的小系统;
6、掌握书写程序设计开发文档的能力(书写课程设计实验报告)。
二、课程设计要求
1、根据分组情况对规定的课程设计题目要求进行分析、设计;
2、利用VisualC++独立编写程序代码,并调试程序使其能正确运行;
3、源程序要有适当的注释,使程序容易阅读;
4、设计完成的软件要便于操作和使用,采用模块化设计方法;
5、要求系统的用户界面尽量简单、合理,鼓励学生自动增加新功能模块(视情况可另行加分);
6、完成并提交课程设计报告,具体要求见相关说明文档。
三、课程设计内容
每个学生根据分组情况,从教师提供的课程设计题目中选择题目,独立完成,不可任意更换题目。
前言需求分析
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)完成系统总结报告。
目录
第一章概要设计4
1.1系统流程图4
1.2函数模块图4
第二章详细设计
2.1类设计9
2.2函数设计11
第三章源程序清单与结果
3.1类实现6
3.2函数实现6
3.3主函数实现6
第四章调试与测试23
4.1模块测试23
4.2课程设计过程中遇到的问题32
参考文献35
第一章概要设计
1.1系统流程图
1.2函数模块图
第二章详细设计
2.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();可从文件中将记录读取到该类的数组中;
实验员、教师、行政人员管理类中函数都相同,在此略。
2.2函数设计
在四个管理类中定义了以下相同函数,功能如其后所说
voidAdd();实现该类记录的添加;
voidShow();实现该类所有记录的显示;
voidSearch();实现该类记录的查询;
voidEdit();实现该类记录的修改;
voidDelete();实现该类记录的删除;
voidTotal();实现该类记录的统计;
voidSave();将该类记录保存到文件;
voidRead();可从文件中将记录读取到该类的数组中
第三章源程序清单和结果
3.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();//可从文件中将记录读取到该类的数组中;
};
3.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<<"无此选项! 请重试! "< } } voidTea_Manage: : Edit() { if(top==0) { cout<<"当前系统中没有存储记录! "< return; } intnum; cout<<"请输入要查找的教编号: "< cin>>num; for(inti=0;i { if(Tea[i].GetNum()==num) { cout<<"请对这位教师的信息进行修改: "< Tea[i].Input(); cout<<"修改成功"< } } cout<<"查无此人"< } 删除功能: 主要实现对已添加的人员记录进行删除。 如果当前系统中没有相应的人员记录,则提示“记录为空! ”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。 voidTea_Manage: : Delete() { if(top==0) { cout<<"当前系统中没有存储记录! "< return; } cout<<"1、按编号查找删除2、按姓名查找删除"< intchoice; cin>>choice; switch(choice) { case1: { cout<<"请输入编号: "; intnum; cin>>num; for(inti=0;i { if(num==Tea[i].num) { cout<<"是否确认删除? 1、是2、否"< intchoice; cin>>choice; switch(choice) { case1: { for(intj=i;j Tea[j]=Tea[j+1]; cout<<"删除成功! "< top--; };break; case2: return; default: cout<<"无此项,失败! "< }return; } } cout<<"无此人! "< };break; case2: { cout<<"请输入姓名: "; stringname; cin>>name; for(inti=0;i { if(name==Tea[i].name) { cout<<"是否确认删除? 1、是2、否"< intchoice; cin>>choice; switch(choice) { case1: { for(intj=i;j Tea[j]=Tea[j+1]; cout<<"删除成功! "< top--; };break; case2: return; default: cout<<"无此项,失败! "< }return; } } cout<<"无此人! "< };break; default: cout<<"没有此项,失败: "< } } 统计功能: 能根据多种参数进行人员的统计。 例如,统计类中人员数量以及总数, 或者统计男、女员工的数量,不同部门员工数量等。 voidTea_Manage: : Total() { cout<<"1按人数统计2按性别统计3按系别统计"< intchoice; cout<<"请输入你的选择"< cin>>choice; switch(choice) { case1: cout<<"教师类人数为: "< case2: { inta=0,b=0; for(inti=0;i { if(Tea[i].sex=="男")a++; if(Tea[i].sex=="女")b++; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 高校 人员 信息管理 系统 全部 代码