1、C+高校人员信息管理系统基于C+啲面向对象程序设计实例课程设计报告课程名称C+面向对象程序设计课题名称 高校人员信息管理系统专 业 计算机科学与技术 班 级 1220541 学 号 122054113 姓 名 苗鹏程 指导教师 侯欢欢 (一) 、课程设计题目:高校人员信息管理系统(二) 、目的与要求:1目的:(1) 要求学生达到熟练掌握 C+语言的基本知识和技能;(2) 基本掌握面向对象程序设计的基本思路和方法;(3) 能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2、 基本要求:(1 )要求利用面向对象的方法以及 C+勺编程思想来完成系统的设计;(2) 要求在设计的过程中,建
2、立清晰的类层次;(3) 在系统中至少要定义四个类,每个类中要有各自的属性和方法;(4) 在系统的设计中,至少要用到面向对象的一种机制。3、 创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。(三) 、设计方法和基本原理:1.功能要求添加功能程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类 别,要求人员的编号要唯一,如果添加了重复编号的记录时,则提示用户数据添加重复并取 消添加。查询功能可根据编号、姓名等信息对已添加的记录进行查询。 如果未找到,给出相应的提示信息, 如果找到,则显示相应的记录信息。显示功能可显示当前系统中所有记录。修改功能可根
3、据查询结果对相应的记录进行修改,修改时注意编号的唯一性。删除功能对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,贝U提示“记录为 空! ”并返回操作;否则输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录, 如果没有找到该人员信息,则提示相应的记录不存在。统计功能能根据多种参数进行人员的统计。例如:统计四类人员数量以及总数,统计男、女员工 的数量,统计某年龄段人员的数量等。保存功能将当前系统中各类人员记录存入文件中。读取功能将保存在文件中的人员信息读入到当前系统中,以供用户使用。在完成以上基本功能的基础上,可自行进行扩展或完善。2问题的解决方案:根据系统功能要求,可以将
4、问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系包括属性和行为;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述(包括属性和方法);(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告以及系统使用说明书摘要 错误!未定义书签。第一章绪论 51.1课程设计的目的 41.2课程设计的背景和意义 41.2. 1课程设计的背景 41.2. 2课程设计的意义 41.3课程设计环境 5第二章需求分析 62.1问题描述 62.2功能要求 62.3问题的解决方案
5、6第三章系统设计 83.1数据设计 83.1. 1类设计 83.1. 2类之间的关系 103. 1. 3函数设计 103.2结构设计 103. 2. 1系统流程图 103. 2. 2界面设计 11第四章系统实现 134.1类实现 134.2函数实现 134.3主函数实现 21第五章系统测试 235.1模块测试 235.2课程设计过程中遇到的问题 28结论 29致谢 错误!未定义书签。0参考书目 311.第一章绪论1.1课程设计的目的C+面向对象程序设计是计算机专业的基础课程,本课程按照软件程序设计所需能力 进行教学设计,提出以项目模块方式带动相关知识点、实践项目和理论并行的思路,将案例 贯穿于
6、课程始终,对原有的教学体系、教学容进行重新编排,按照从易到难的原则,将其巧 妙地融入到项目开发过程中,降低学习难度,提高学生学习的信心,有效培养学生的应用能 力和学习能力。1. 2课程设计的背景和意义随着社会的发展,各种公司规模逐渐变大,需要对公司的员工信息进行统一有效的管理, 方便的对人员的信息进行增添、查阅、修改、删除、保存,这就必须有一个实用的管理系统。1. 2. 1课程设计的背景1.理论研究基础掌握C+基本知识,具体包括:掌握面向对象基本知识和基本概念,掌握静态成员的定 义与作用,掌握友元的定义,掌握运算符重载方法,继承与派生,虚函数的定义和使用,输 人输出流操作,文件的创建、打开、读
7、写、关闭等。2.技术层面的支持(1)定义基类与派生类,将数据成员与成员函数封装在类中。(2)设计增添、显示、查询、修改、删除、保存等函数。1. 2. 2课程设计的意义(1)通过课程设计的综合训练,培养了学生分析解决实际问题和编程等实际动手能力。 帮助了同学系统的掌握C+课程的主要容。(2)通过详细的实例分析,循环渐进的描述,启发学生顺利的完成设计。课程设计将设计要 求、需求分析、算法设计、编程和实例测试运行分开,为学生创造分析问题、独立思考的条件。(3)通过编写一个较长的程序,实现了对人员信息的管理,激发了学生学习编程的兴趣1. 3课程设计环境Microsoft Visual C+ 6.02.
8、第二章需求分析2.1问题描述某高校有四类人员:教师、实验员、行政人员、教师兼行政人员;共有的信息包括:编 号、姓名、性别、年龄等。其中,教师还包含的信息有:所在系部、专业、职称;实验员还 包含的信息有:所在实验室、职务;行政人员还包含的信息有:政治面貌、职称等。2.2功能要求1) 添加功能程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类 别,要求人员的编号要唯一,如果添加了重复编号的记录时,则提示用户数据添加重复并取 消添加。2) 查询功能可根据编号、姓名等信息对已添加的记录进行查询。 如果未找到,给出相应的提示信息, 如果找到,则显示相应的记录信息。3) 显示功能
9、可显示当前系统中所有记录。4) 修改功能可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。5) 删除功能对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,贝U提示“记录为 空! ”并返回操作;否则输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录, 如果没有找到该人员信息,则提示相应的记录不存在。6) 统计功能能根据多种参数进行人员的统计。例如:统计四类人员数量以及总数,统计男、女员工 的数量,统计某年龄段人员的数量等。7) 保存功能将当前系统中各类人员记录存入文件中。8) 读取功能将保存在文件中的人员信息读入到当前系统中,以供用户使用。在完成以上基本功能的基础
10、上,可自行进行扩展或完善。2.3问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:1) 应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;2) 分析系统中的各个实体以及它们之间的关系;3) 根据问题描述,设计系统的类层次;4) 完成类层次中各个类的描述;5) 完成类中各个成员函数的定义;6) 完成系统的应用模块;7) 功能调试;8) 完成系统总结报告。3.第二章系统设计3.1数据设计3.1. 1类设计1.人员的管理需包含人员的基本信息,所以定义一个人员类如表 3-1所示:表3-1员工类类名人员类数据成员protected:num (编号)char n ame20 (姓名)c
11、har sex10( 性别)age(年龄)成员函数public:In put() :输入函数Output()输出函数GetNum()获取编号GetName():获取姓名2.根据高校人员的工作性质的不同,将所有员工分为教师、实验员、行政人员,教师兼行政人员表3-2教师类类名教师类(公有继承员工类)数据成员protected:char depart20(部门);char spec20(专业);char title20(职称);成员函数public:void In put_1()输入函数void Output_1()输出函数char GetDepart():获取部门char GetSpec()获取专
12、业char GetTitle()获取职称friend Tea Ma nage:友兀教师管理类表3-3实验员类类名实验员类(公有继承员工类)数据成员protected:char textroom20char post20(所在实验室)(职务)成员函数public:void In put_3() :输入函数void Output_3():输出函数char GetTextroom():获取实验室char GetPost():获取职务friend Exp Ma nage:友元实验人员管理类表3-4行政人员类类名行政人员类(公有继承员工类)数据成员public:char politics20char t
13、itle20:(政治面貌):(职称)成员函数public:void In put_2():输入函数void Output_2() :输出函数char GetPolitics() :获取政治面貌char GetTitle() :获取职称frie nd Sta Ma nage :友元行政人员管理类表3-5教师兼行政人员类类名 教师兼行政人员类(公有继承员工类)数据成员成员函数Public :void In put_4() :输入函数void Output_4() :输出函数frie nd Tea_Sta_Ma nage :友兀教师行政人员管理 类4、为了控制以上的类,分别建立了 4个管理类,以经理
14、的管理了为例:表3-6教师管理类类名教师管理类数据成员Teacher Tea20 (创建教师的空间);top (统计人员数和进行操作时的指针) ;3. 1. 2类之间的关系员工类派生出教师类、实验员类、行政人员类,教师类和行政人员类派生出教师兼行政 人员类。3. 1. 3函数设计根据要求,为了功能的实现,通过top实现功能。分别以8个功能函数进行对数据的操 作(下面以经理类为例)void Add();(信息的添加)void Search。;(信息的查找)void Edit();(信息的编辑)void Total();(信息的统计)void Delete();(信息的删除)void Show()
15、;(信息的显示)void Save();(信息的存储)void Read();(信息的读取)3. 2结构设计3. 2. 1系统流程图3. 2. 2界面设计1.主菜单界面,如图 3 3所示晴输入您的选择二图3 3主菜单2.教师菜单界面,如图 3-4*教师管理*+ + + + 卄* 特十*十*+ *#+ * + *# 十*十*+ *#* * + *#*十 * #廿十*十睪*!*! 1 禰加 皐查找3 .修改 乩统计5 删除 筑显示7保有 緘读取 沪退出iid *+*#*+*+*+*#*+*#*十*十*#*+*十桂睪*輸入您操作的选顶图34教师管理界面3.教师查询界面,如图3-5所示:I 1添加2查
16、找3 修改4统计5删除E显示7保存E读取“退岀;鹽叽号图35教师查询界面4.教师删除界面,如图3-6所示:椚W教师管理粉*+ + + + + + + + + + + + + + + + + + + + + * + + + + + + + + + + + + + +4-+-|- + + + + +I I! 1-添加 -查找 浜修改4.统计 畀删除显示:沢保存hi!取 4、退出;I I-fr + + + HI-e-+-fr + HH!F4F + + + + -B- + HF + -l-e- + + + -F+ + + + + + + + + *+ + 4b +-B-+ + 4b+ + +-F +
17、4h + HF + 4-+-I-+ H- + 4b +H-+-+ +旦删图36教师删除界面4.第四章系统实现人员类教师类行政人员类实验员类教师兼行政人员类教师管理类行政人员管理类实验员管理类教师兼行政人员管理类4.1类实现class Pers on /class Teacher:virtual public Person /class Governmen t:virtual public Pers on /class Experime nter:public Pers on /class Tea_Gover:public Teacher,public Government: /class Te
18、a_ma nage /class Gov_ma nage /class Exp_ma nage /class Tea_GoverMa nage /4.2函数实现In put();cout请输入所在系另U :depart;员工信息输出教师信息输出返回编号返回姓名返回性别返回年龄返回所在部门返回专业返回职称教师信息的添加:e ndl;cout请输入专业名称:spec; cout请输入职称:title;void Perso n:Output () /cout编号:numendl;cout姓名:nameendl;cout性另【J:sexendl;cout年龄:ageendl;void Teacher:
19、Output_1() / -Output();cout所在系另U: departendl;cout所在专业:specendl;cout职称:titleendl;int Perso n:GetNum() /return num;char Perso n:GetName() /return n ame20;char Perso n:GetSex() /return sex10;int Perso n:GetAge() /return age;char Teacher:GetDepart() /return depart20;char Teacher:GetSpec() /retur n spec2
20、0;char Teacher:GetTitle() /return title20;void Tea_Ma nage:Add() / _Teacher tcout请输入新增人员的信息:endl;t.Input_1();int i;for( i=0;itop;i+)if(t.GetNum()=Teai.GetNum()cout1000)cout存已满,不可添加endl;else if(top=1000)Teatop=t;cout添加成功endl;top+;return; 亠void Tea_Ma nage:Show() / 教师信息的显示 -for(i nt i=0;itop;i+)Teai.O
21、utput_1();cout e ndl; 亠void Tea_Ma nage:Search() / 教师信息的查询 -if(top=0)cout没有任何信息endl;int choice;i nt i=0;int m=0; int n=0;i nt num;cout请输入您的选择:endl;cout查询方式1.按名字 2.按编号 choice;switch(choice)case 1:char n ame20;cout请输入您所查询的人员名字: endl;cinn ame;for(i;itop;i+)if(!strcmp(name,Teai.name)Teai.Output_1();brea
22、k;if(i=top)cout查无此人endl;break;case 2:cout请输入编号:endl;cinnum;for(i=0;itop;i+)if(n um=Teai.GetNum()Teai.Output_1(); -if(i=top)cout查无此人endl;break;void Tea_Ma nage:Edit() / 教师信息的修改int i=0;Search。; cout+ e ndl;cout1.修改编号2修改姓名3.修改性别4修改年龄5修改系别6修改专业7修改职称0. 退出endl;cout+ choice;switch(choice)case 1:cout编号不可修改e
23、ndl;break;case 2:char na20;cout 请输入修改后的姓名 :e ndl; cinna;strcpy(Teai. name ,n a);cout修改成功endl;break;case 3:int m;char a10;cout输入修改后的容: a;strcpy(Teai.sex,a);cout 修改成功,是否继续 (1/2)e ndl;cinm;if(m=1)return;break;case 4:int b,m;cout请输入修改后的年龄: b;Teai.age=b;cout修改成功,是否继续(1/2)endl;cinm;if(m=1)return;break;cas
24、e 5:int m;char n20;cout请输入修改后系部:e ndl;cinn;strcpy(Teai.depart ,n);cout修改成功,是否继续 (1/2)endl;cinm;if(m=1)return;break;case 6:int m;char n20;cout 请输入修改后专业:e ndl;cinn;strcpy(Teai.spec ,n);cout修改成功,是否继续(1/2)endl;cinm; if(m=1)return;break;case 7:int m;char n20;cout请输入修改后的职称:endl;cinn;strcpy(Teai.title ,n);
25、cout修改成功,是否继续(1/2)endl;cinm; if(m=1)return;break;case O:cout退出成功!endl;break;default:cout 无此选项!请重试!endl;break;void Tea_Ma nage:Delete() / 教师信息的删除 -Teacher t;int i=0;cout请输入你想删除人员的编号 :t.num;if(top=0)cout没有人员选择endl;for(i;itop;i+)if(t .num=Teai. num)Teai=Teai+1;top-; break; if(i=top) cout查无此人endl;cout删除
26、成功endl;return;int m; cinm;if(m=1) return;教师信息的统计教师信息的保存.dat,ios:b in ary);教师信息的读出void Tea_Ma nage:Total() / -couttope ndl;void Tea_Ma nage:Save() / - 亠、ofstream outfile(c:/ 咼校管理系统之教师类if(!outfile)cerrope n error!e ndl; abort();for(i nt i=0;itop;i+)outfile.write(char *)& Teai,sizeof(Teai);cout保存成功endl;outfile.close();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1