C++高校人员信息管理系统

上传人:a**** 文档编号:153623630 上传时间:2022-09-19 格式:DOC 页数:35 大小:662KB
收藏 版权申诉 举报 下载
C++高校人员信息管理系统_第1页
第1页 / 共35页
C++高校人员信息管理系统_第2页
第2页 / 共35页
C++高校人员信息管理系统_第3页
第3页 / 共35页
资源描述:

《C++高校人员信息管理系统》由会员分享,可在线阅读,更多相关《C++高校人员信息管理系统(35页珍藏版)》请在装配图网上搜索。

1、北 华 航 天 工 业 学 院基于C+的面向对象程序设计实例课程设计报告报告题目: 高校人员信息管理系统 作者所在系部: 计算机科学与工程系 作者所在专业: 计算机科学与技术专业 作者所在班级: B1152126 作 者 姓 名 : 苏雪源 指导教师姓名: 刘海燕 完 成 时 间 : 北华航天工业学院教务处制摘 要在当前的市场经济体制下,企业间竞争不断,企业的发展与企业的有效管理密不可分,一个企业要偶适合自身特点的信息化管理系统,以实现企业降低成本、及时反馈市场信息、完善服务质量、提高经济效益、分析市场需求、制定销售计划和目标等管理目的。本文利用编写程序,实现了用户对公司经理、技术人员、销售人

2、员和销售经理管理操作。本系统主要有八个功能模块:添加功能、查询功能、显示功能、 编辑功能、删除功能、 统计功能、保存功能、读取功能关键词:系统设计 类 信息 面向对象目录摘 要2第一章 绪论211 课程设计的目的412 课程设计的背景和意义4121 课程设计的背景4122 课程设计的意义413 课程设计环境5第二章 需求分析621 问题描述622 功能要求623 问题的解决方案6第三章 系统设计831 数据设计8311 类设计8312 类之间的关系10313 函数设计1032 结构设计10321 系统流程图10322 界面设计11第四章 系统实现1341 类实现1342 函数实现1343 主函

3、数实现21第五章 系统测试2351 模块测试2352 课程设计过程中遇到的问题28总 结29 致谢30参考文献31任务书32第一章 绪论11 课程设计的目的C+面向对象程序设计是计算机专业的基础课程,本课程按照软件程序设计所需能力进行教学设计,提出以项目模块方式带动相关知识点、实践项目和理论并行的思路,将案例贯穿于课程始终,对原有的教学体系、教学内容进行重新编排,按照从易到难的原则,将其巧妙地融入到项目开发过程中,降低学习难度,提高学生学习的信心,有效培养学生的应用能力和学习能力。12 课程设计的背景和意义随着社会的发展,各种公司规模逐渐变大,需要对公司的员工信息进行统一有效的管理,方便的对人

4、员的信息进行增添、查阅、修改、删除、保存,这就必须有一个实用的管理系统。121 课程设计的背景1. 理论研究基础掌握C+基本知识,具体包括:掌握面向对象基本知识和基本概念,掌握静态成员的定义与作用,掌握友元的定义,掌握运算符重载方法,继承与派生,虚函数的定义和使用,输入、输出流操作,文件的创建、打开、读写、关闭等。2. 技术层面的支持(1)定义基类与派生类,将数据成员与成员函数封装在类中。(2)设计增添、显示、查询、修改、删除、保存等函数。122 课程设计的意义(1) 通过课程设计的综合训练,培养了学生分析解决实际问题和编程等实际动手能力。帮助了同学系统的掌握C+课程的主要内容。(2)通过详细

5、的实例分析,循环渐进的描述,启发学生顺利的完成设计。课程设计将设计要求、需求分析、算法设计、编程和实例测试运行分开,为学生创造分析问题、独立思考的条件。(3)通过编写一个较长的程序,实现了对人员信息的管理,激发了学生学习编程的兴趣。13 课程设计环境第二章 需求分析21 问题描述某高校有四类员工:教师、实验员、行政人员,教师兼行政人员;共有的信息包括:编号、姓名、性别、年龄等。其中,教师还包含的信息有:所在系部、专业、职称;实验员还包含的信息由:所在实验室、职务;行政人员还包含的信息有:政治面貌、职称等。22 功能要求(1)基本功能1) 添加功能:程序能够任意添加上述四类人员的记录,可提供选择

6、界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。2) 查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。3) 显示功能:可显示当前系统中所有记录,每条记录占据一行。4) 编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录

7、不存。6) 统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,或者统计男、女员工的数量,或者统计某年龄段人员的数量等。7)保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意。8)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。23 问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: 1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;2)分析系统中的各个实体及它们之间的关系; 3)根据问题描述,设计系统的类层次; 4)完成类层次中各个类的描述; 5)完成类中各个成员函数的定义; 6)完成系统的应用模块; 7)功能调试;

8、 8)完成系统总结报告。第三章 系统设计31 数据设计311 类设计1.人员的管理需包含人员的基本信息,所以定义一个人员类如表3-1所示:表 3-1员工类类名人员类数据成员protected: num(编号) char name20(姓名)char sex10(性别) age(年龄)成员函数public: Input():输入函数Output():输出函数GetNum():获取编号 GetName(): 获取姓名2. 根据高校人员的工作性质的不同,将所有员工分为教师、实验员、行政人员,教师兼行政人员表3-2教师类类名教师类(公有继承员工类)数据成员protected: char depart2

9、0(部门); char spec20(专业); char title20(职称);成员函数public: void Input_1():输入函数 void Output_1():输出函数 char GetDepart(): 获取部门char GetSpec(): 获取专业char GetTitle(): 获取职称 friend Tea_Manage:友元教师管理类表3-3实验员类类名实验员类(公有继承员工类)数据成员protected: char textroom20(所在实验室) char post20(职务)成员函数public: void Input_3():输入函数void Outpu

10、t_3():输出函数char GetTextroom(): 获取实验室char GetPost(): 获取职务friend Exp_Manage: 友元实验人员管理类表3-4行政人员类类名行政人员类(公有继承员工类)数据成员public: char politics20:(政治面貌) char title20:(职称)成员函数public: void Input_2():输入函数void Output_2():输出函数char GetPolitics():获取政治面貌char GetTitle():获取职称friend Sta_Manage:友元行政人员管理类表3-5教师兼行政人员类类名教师兼

11、行政人员类(公有继承员工类)数据成员成员函数Public: void Input_4():输入函数void Output_4():输出函数friend Tea_Sta_Manage:友元教师行政人员管理 类4、为了控制以上的类,分别建立了4个管理类,以经理的管理了为例:表 3-6 教师管理类类名教师管理类数据成员Teacher Tea20 (创建教师的空间); top(统计人员数和进行操作时的指针); 312 类之间的关系员工类派生出教师类、实验员类、行政人员类,教师类和行政人员类派生出教师兼行政人员类。313 函数设计根据要求,为了功能的实现,通过top实现功能。分别以8个功能函数进行对数据

12、的操作(下面以经理类为例)void Add(); (信息的添加) void Search(); (信息的查找)void Edit(); (信息的编辑)void Total(); (信息的统计)void Delete(); (信息的删除)void Show(); (信息的显示)void Save(); (信息的存储) void Read(); (信息的读取)32 结构设计321 系统流程图人员类教师类实验员类行政人员类教师兼行政人员类 322 界面设计1. 主菜单界面,如图33所示 图33 主菜单2. 教师菜单界面,如图3-4 图34 教师管理界面3. 教师查询界面,如图3-5所示: 图35 教

13、师查询界面4. 教师删除界面,如图3-6所示: 图36 教师删除界面第四章 系统实现41 类实现class Person /人员类class Teacher:virtual public Person /教师类class Staff:virtual public Person /行政人员类class Experimenter:public Person /实验员类class Tea_Sta:public Teacher,public Staff /教师兼行政人员类class Tea_manage /教师管理类 class Sta_manage /行政人员管理类class Exp_manage

14、/实验员管理类class Tea_Sta_manage /教师兼行政人员管理类42 函数实现void Person:Input() /员工信息输入cout请输入编号:num;cout请输入名字:name;cout请输入性别:sex;cout请输入年龄:age;void Teacher:Input_1() /教师信息输入Input();cout请输入所在系别:depart;cout请输入专业名称:spec;cout请输入职称:title;void Person:Output () /员工信息输出cout编号:numendl;cout姓名:nameendl;cout性别:sexendl;cout年

15、龄:ageendl;void Teacher:Output_1() /教师信息输出Output();cout所在系别:departendl;cout所在专业:specendl;cout职称:titleendl;int Person:GetNum() /返回编号return num;char Person:GetName() /返回姓名return name20;char Person:GetSex() /返回性别return sex10;int Person:GetAge() /返回年龄return age; char Teacher:GetDepart() /返回所在部门return dep

16、art20;char Teacher:GetSpec() /返回专业return spec20;char Teacher:GetTitle() /返回职称return title20;void Tea_Manage:Add() /教师信息的添加Teacher t;cout请输入新增人员的信息:endl;t.Input_1();int i;for( i=0;itop;i+)if(t.GetNum()=Teai.GetNum()cout编号已存在,请重新输入:1000)cout内存已满,不可添加endl;else if(top=1000)Teatop=t; cout添加成功endl;top+; r

17、eturn;void Tea_Manage:Show() /教师信息的显示for(int i=0;itop;i+)Teai.Output_1(); cout.endl;void Tea_Manage:Search() /教师信息的查询if(top=0)cout没有任何信息endl;int choice;int i=0;int m=0; int n=0;int num;cout请输入您的选择:endl; cout查询方式 1.按名字 2.按编号choice;switch(choice)case 1: char name20;cout请输入您所查询的人员名字:name;for(i;itop;i+)

18、if(!strcmp(name,Teai.name )Teai.Output_1();break;if(i=top)cout查无此人endl;break;case 2:cout请输入编号:num;for(i=0;itop;i+)if(num=Teai.GetNum()Teai.Output_1();if(i=top)cout查无此人endl;break;void Tea_Manage:Edit() /教师信息的修改int i=0; Search();cout+endl;cout1.修改编号 2.修改姓名 3.修改性别 4.修改年龄 5.修改系别 6.修改专业 7.修改职称 0.退出endl;c

19、out+choice;switch(choice)case 1:cout编号不可修改endl;break;case 2:char na20; cout请输入修改后的姓名:na; strcpy(Teai.name,na); cout修改成功endl;break;case 3: int m; char a10;cout输入修改后的内容:a; strcpy(Teai.sex,a); cout修改成功,是否继续(1/2)m; if(m=1) return;break;case 4: int b,m;cout请输入修改后的年龄:b; Teai.age=b;cout修改成功,是否继续(1/2)m; if(

20、m=1)return;break;case 5: int m; char n20; cout请输入修改后系部:n; strcpy(Teai.depart,n);cout修改成功,是否继续(1/2)m; if(m=1) return; break;case 6: int m; char n20; cout请输入修改后专业:n; strcpy(Teai.spec,n);cout修改成功,是否继续(1/2)m; if(m=1)return; break;case 7: int m; char n20; cout请输入修改后的职称:n; strcpy(Teai.title,n); cout修改成功,是

21、否继续(1/2)m; if(m=1) return; break;case 0:cout退出成功!endl;break;default:cout无此选项!请重试!endl;break;void Tea_Manage: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删除成功m;if(m=1) return;void Tea

22、_Manage:Total() /教师信息的统计couttopendl;void Tea_Manage:Save() /教师信息的保存ofstream outfile(c:/高校管理系统之教师类.dat,ios:binary);if(!outfile)cerropen error!endl;abort();for(int i=0;itop;i+)outfile.write(char *)&Teai,sizeof(Teai);cout保存成功endl;outfile.close();void Tea_Manage:Read() /教师信息的读出ifstream infile(c:/高校管理系统之

23、教师类.dat,ios:binary);if(!infile)cerropen error!endl;abort();while(infile.read(char *)&Teatop,sizeof(Tea0)top+;cout读取成功endl;infile.close();4.3 主函数实现int main() /主函数的实现cout *欢迎进入北华航天工业学院人员管理系统*endl;int choice;docout *主菜单*nendl;coutendl;cout| |endl;cout 行政人员管理 2 = 教师管理 |endl; cout 实验人员管理 4 =教师兼行政人员管理 |en

24、dl;cout 退出系统 |endl;cout| |endl;coutendl; coutchoice;switch(choice)case 1:StuMenu();break;case 2:TeaMenu();break;case 3:ExpMenu();break;case 4:Tea_StaMenu();break;case 0:coutn您已安全退出系统.endl;break;default:coutn没有此选项.请重选.endl;break;while(choice!=0);coutn *欢迎您下次再使用本系统!*endl; return 0;第五章 系统测试51 模块测试以教师信息

25、为例进行说明。(1) 选择对教师信息进行添加 ,见图51 ,图52 图51 图52(2) 选择对教师信息显示 图53 图53(3) 选择对教师信息修改 图54 图54(4)修改后显示 图55 图55(5)对教师信息的删除 图56 图56(6) 对教师信息保存 图57 图57(7) 对保存的教师信息的读取 图58 图58(8) 程序的退出 图59 图5952 课程设计过程中遇到的问题1、程序设计时选择了数组的方式来对数据的操作,在查询时,由于思路不明确,没有成功实现程序对教师信息的查询,在请教老师之后,巧妙地运用了变量top,终于完成了查询的功能。2、文件的存入和读出使用的2进制的方法,对此,因

26、为掌握不是很熟练,总是存入读出错误,在查阅了课本书籍之后,仍出现类似问题,请教老师后明白了2进制存入、读出的方法,实现了相关功能。总 结通过本程序设计掌握了类对象、类数组、继承、派生、重载、输入输出流的定义和使用,对使用C+语言编码有了更深层次的理解,也认识到了自己还有许多不足之处,达到了实验目的。本系统基本完成了题目的功能要求,并且还在一定程度上进行了优化,具体如下:优点:删除时可以重新选择;对无效数据的输入进行了有效的判断;在删除和查询时既可以按编号也可以按姓名;每次删除后自动将人员信息显示出来。缺点:对于重名的人员系统照旧可以添加,没有提醒;人员的编号可以重复。可以改进的地方:在添加成员

27、时进行验证,看所输姓名和编号是否重复,若重复进行重新输入;在实现七个功能的地方添加exit函数,一旦操作失误,不想继续进行,则系统跳转会主界面进行新的操作选择。致 谢本次课程设计主要使用了本学期学习的Microsoft Visual C+ 6.0的设计环境,内容涵盖了c和c+语言部分知识,在本次编程过程中,我学习到了很多。例如:在编程首先要有全局观念,要认识到自己是要编写怎样的程序,并且要构建相应的程序结构,否则漫无目的的编写只能造成自己后期的负担。其次要熟练的掌握老师以前所教授的相关知识,这样在编写程序的时候才能得心应手。再次,要分步进行程序的编写,实现一个功能,再实现另一个功能,不可以全部

28、编好最后在检查,否则最终无从下手。我现在才明白一个真正好的程序是需要很多人共同完成的,不是说一个人就能完成一个程序的编写,现在的程序还不是很大,但如果是一个巨型系统,任何一个人是不可能完成的,像是微软操作系统也是由很多高手一起编写的,这次编写过程中,我请教了老师和同学一些问题,是在他们的帮助下我才最终顺利地完成任务。让我深刻的认识到团队的力量。所以在以后学习过程中,我想应该多探讨,多帮助,多学习才行。参考文献1 沈炜,徐慧. Visual C+数据库编程技术与实例 . 北京:人民邮电出版社,20052 邓阿奇,丁有和. Visual C+ 教程 . 北京:清华大学出版社,2004年9月3 谭浩

29、强. C+程序设计. 北京:清华大学出版社,2004年4 谭浩强.C语言程序设计(第2版). 北京:清华大学出版社, 2003 基于C+的面向对象程序设计实例任务书一目的与要求1、目的(1)要求学生能够熟练掌握C+语言的基本知识和技能。(2)基本掌握面向对象程序设计的基本思路和方法。(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2、基本要求(1)要求利用面向对象的方法以及C+的编程思想来完成系统的设计。 (2)在系统的设计中,要求运用面向对象的机制(继承、派生及多态性)来实现系统功能,并且要建立清晰的类层次关系。 (3)在系统设计中要分析和定义各个类,每个类中要有各自的数

30、据成员和成员函数。 (4)主函数中提供菜单选项,并给出足够的选择信息以及提示信息。(5) 程序具有一定的健壮性,不会因为用户的输入错误引起程序运行错误而中断执行。对输入值的类型、大小范围、字符串的长度等,进行正确性检查,对不合法的输入值给出出错信息,指出错误类型,等待重新输入。3、创新要求在基本要求达到后,可根据实际情况进行创新设计,如根据查找结果进行修改的功能及设计出比较友好的界面等。二验收方式完成设计内容之后,即可开始验收。验收时,首先由学生简要说明所做题目的思路、设计结构及实现过程,然后运行程序并进行测试,对输出结果作出解释,同时认真回答教师提出的问题。三课设报告在完成验收之后,提交课设

31、报告。其中报告中需包括系统设计要求,设计思路,系统功能模块图,系统流程图,类的层次图(包括类成员列表),调试过程,关键程序代码,总结,参考书目等。另外,课设报告要严格遵守模板文件的格式要求,思路清晰,内容详实丰富。四成绩评定课设总成绩=验收成绩(50%)+课程设计报告成绩(30%)+程序源代码(10%)+课设态度、考勤与遵守教学制度情况 (10%)五说明1、每位同学在以下的题目中任选一个或自拟题目来完成。2、学生应严格遵守课堂秩序,按时上机,认真完成各项任务。3、上机前做好充分的准备,包括事先写好主要程序代码,以保证充分利用上机的时间调试程序。4、每位同学各自独立完成自己的任务,禁止抄袭或拷贝

32、。5、必须按规定时间上交课设报告。六课设题目题目1 “高校人员信息管理系统”1、问题描述某高校有四类员工:教师、实验员、行政人员,教师兼行政人员;共有的信息包括:编号、姓名、性别、年龄等。其中,教师还包含的信息有:所在系部、专业、职称;实验员还包含的信息由:所在实验室、职务;行政人员还包含的信息有:政治面貌、职称等。2、功能要求(1)基本功能1) 添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。2) 查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相

33、应的提示信息,如果找到,则显示相应的记录信息。3) 显示功能:可显示当前系统中所有记录,每条记录占据一行。4) 编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。6) 统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,或者统计男、女员工的数量,或者统计某年龄段人员的数量等。7)保存功能:可将当前系统中各类人员记录存入文件中,存

34、入方式任意。8)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。(2)扩展功能在完成以上基本功能的基础上,可自行进行扩展或完善,例如: 1) 添加人员记录时,考虑各种数据的有效性。2)组合查询功能的实现。3)可按人员的某些信息进行排序。4)对文件的读写使用二进制信息。3、问题的解决方案 根据系统功能要求,可以将问题解决分为以下步骤: 1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;2)分析系统中的各个实体及它们之间的关系; 3)根据问题描述,设计系统的类层次; 4)完成类层次中各个类的描述; 5)完成类中各个成员函数的定义; 6)完成系统的应用模块; 7)功能调试; 8)完成系统总结报告。指导教师评语及设计成绩 评 语 课程设计成绩: 指导教师: 日期: 年 月 日

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!