


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于C+勺面向对象程序设计实例课程设计报告课程名称C+面向对象程序设计(一) 课题名称高校人员信息管理系统专业计算机科学与技术班级1220541学号姓名苗鹏程指导教师侯欢欢、课程设计题目:(二) 高校人员信息管理系统、目的与要求:1、目的:(1) 要求学生达到熟练掌握C+吾言的基本知识和技能;基本掌握面向对象程序设计的基本思路和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2、基本要求:(1) 要求利用面向对象的方法以及C+祐勺编程思想来完成系统的设计;要求在设计的过程中,建立清晰的类层次;在系统中至少要定义四个类,每个类中要有各自的属性和方法;在系统的设计中,至少要用到
2、面向对象的一种机制。3、创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。(三) 、设计方法和基本原理:1. 功能要求添加功能程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求人员的编号要唯一,如果添加了重复编号的记录时,则提示用户数据添加重复并取消添加。查询功能可根据编号、姓名等信息对已添加的记录进行查询。如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。显示功能可显示当前系统中所有记录。修改功能可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。删除功能对已添加的人员记录进行删除。如果当前系统中没有相应的人员记
3、录,贝提示“记录为空!”并返回操作;否则输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存在。统计功能能根据多种参数进行人员的统计。例如:统计四类人员数量以及总数,统计男、女员工的数量,统计某年龄段人员的数量等。保存功能将当前系统中各类人员记录存入文件中。读取功能将保存在文件中的人员信息读入到当前系统中,以供用户使用。在完成以上基本功能的基础上,可自行进行扩展或完善。2. 问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:(1) 应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;分析系统中的各个实体及它们之间的关系包
4、括属性和行为;根据问题描述,设计系统的类层次;完成类层次中各个类的描述(包括属性和方法);(2) 完成类中各个成员函数的定义;(3) 完成系统的应用模块;(4) 功能调试;完成系统总结报告以及系统使用说明书错误!未指定书签。目录摘要第一章绪论错误!未指定书签。1.1课程设计的目的41.2课程设计的背景和意义42.1课程设计的背景41.2.2课程设计的意义41.3课程设计环境52. 第二章需求分析61问题描述62功能要求63问题的解决方案6第三章系统设计81数据设计81.1类设计81.2类之间的关系101.3函数设计102结构设计103.2.1系统流程图103.2.2界面设计111. 第四章系统
5、实现131类实现132函数实现133主函数实现213. 第五章系统测试231模块测试232课程设计过程中遇到的问题28结论29致谢31错误!未指定书签。1. 参考书目第一章绪论1.1课程设计的目的C+浦向对象程序设计是计算机专业的基础课程,本课程按照软件程序设计所需能力进行教学设计,提出以项目模块方式带动相关知识点、实践项目和理论并行的思路,将案例贯穿于课程始终,对原有的教学体系、教学内容进行重新编排,按照从易到难的原则,将其巧妙地融入到项目开发过程中,降低学习难度,提高学生学习的信心,有效培养学生的应用能力和学习能力。1.2课程设计的背景和意义随着社会的发展,各种公司规模逐渐变大,需要对公司
6、的员工信息进行统一有效的管理,方便的对人员的信息进行增添、查阅、修改、删除、保存,这就必须有一个实用的管理系统。1.2.1课程设计的背景1. 理论研究基础掌握C+本知识,具体包括:掌握面向对象基本知识和基本概念,掌握静态成员的定义与作用,掌握友元的定义,掌握运算符重载方法,继承与派生,虚函数的定义和使用,输入、输出流操作,文件的创建、打开、读写、关闭等。(1) 技术层面的支持定义基类与派生类,将数据成员与成员函数封装在类中。(2) 设计增添、显示、查询、修改、删除、保存等函数。1.2.2课程设计的意义(1) 通过课程设计的综合训练,培养了学生分析解决实际问题和编程等实际动手能力。帮助了同学系统
7、的掌握C+!程的主要内容。通过详细的实例分析,循环渐进的描述,启发学生顺利的完成设计。课程设计将设计要求、需求分析、算法设计、编程和实例测试运行分开,为学生创造分析问题、独立思考的条件。(2) 通过编写一个较长的程序,实现了对人员信息的管理,激发了学生学习编程的兴趣。1.3课程设计环境2. MicrosoftVisualC+6.0第二章需求分析2.1问题描述某高校有四类人员:教师、实验员、行政人员、教师兼行政人员;共有的信息包括:编号、姓名、性别、年龄等。其中,教师还包含的信息有:所在系部、专业、职称;实验员还包含的信息有:所在实验室、职务;行政人员还包含的信息有:政治面貌、职称等。2.2功能
8、要求1) 添加功能程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求人员的编号要唯一,如果添加了重复编号的记录时,则提示用户数据添加重复并取消添加。2) 查询功能可根据编号、姓名等信息对已添加的记录进行查询。如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。3) 显示功能可显示当前系统中所有记录4) 修改功能可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。5) 删除功能对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,贝提示“记录为空!”并返回操作;否则输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有
9、找到该人员信息,则提示相应的记录不存在。6) 统计功能能根据多种参数进行人员的统计。例如:统计四类人员数量以及总数,统计男、女员工的数量,统计某年龄段人员的数量等。7) 保存功能将当前系统中各类人员记录存入文件中。读取功能将保存在文件中的人员信息读入到当前系统中,以供用户使用。在完成以上基本功能的基础上,可自行进行扩展或完善。2.3问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:1) 应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;2) 分析系统中的各个实体以及它们之间的关系;3) 根据问题描述,设计系统的类层次;4) 完成类层次中各个类的描述;5) 完成类中各个成员函
10、数的定义;6) 完成系统的应用模块;7) 功能调试;8) 完成系统总结报告。3. 第三章系统设计1数据设计3.1.1类设计1.人员的管理需包含人员的基本信息,所以定义一个人员类如表3-1所示:表3-1员工类类名人员类数据成员protected:num(编号)charname20(姓名)charsex10(性别)age(年龄)成员函数public:Input():输入函数Output():输出函数GetNum():获取编号GetName():获取姓名2.根据高校人员的工作性质的不同,将所有员工分为教师、实验员、行政人员,教师兼行政人员表3-2教师类类名教师类(公有继承员工类)数据成员protec
11、ted:chardepart20(部门);charspec20(专业);chartitle20(职称);成员函数public:voidInput_1():输入函数voidOutput_1():输出函数charGetDepart():获取部门charGetSpec():获取专业charGetTitle():获取职称friendTeaManage:友元教师管理类表3-3实验员类类名实验员类(公有继承员工类)数据成员protected:chartextroom20(所在实验室)charpost20(职务)成员函数public:voidInput_3():输入函数voidOutput_3()输出函数c
12、harGetTextroom():获取实验室charGetPost():获取职务friendExp_Manage:友元实验人员管理类表3-4行政人员类类名行政人员类(公有继承员工类)数据成员public:charpolitics20:(政治面貌)chartitle20:(职称)成员函数public:voidInput_2():输入函数voidOutput_2()输出函数charGetPolitics():获取政治面貌charGetTitle()获取职称friendSta_Manage:友元行政人员管理类表3-5教师兼行政人员类类名教师兼行政人员类(公有继承员工类)数据成员成员函数Public:
13、voidInput_4():输入函数voidOutput_4()输出函数friendTea_Sta_Manage:友元教师行政人员管理类4、为了控制以上的类,分别建立了4个管理类,以经理的管理了为例:表3-6教师管理类类名教师管理类数据成员TeacherTea20(创建教师的空间);top(统计人员数和进行操作时的指针);3.1.2类之间的关系员工类派生出教师类、实验员类、行政人员类,教师类和行政人员类派生出教师兼行政人员类。3.1.3函数设计根据要求,为了功能的实现,通过top实现功能。分别以8个功能函数进行对数据的操作(下面以经理类为例)voidAdd();(信息的添加)教师兼行政人员类v
14、oidSearch();(信息的查找)voidEdit();(信息的编辑voidTotal();(信息的统计)j3kvoidDelete();(信息的删除)voidShoW);师类(信息的显示)彳亍政人员类II实验员类voidSave();八(信息的存储)MvoidRead();(信息的读版)3.3.2结构设讨2.1系统点呈长人员类1. 3.2.2界面设计图33主菜单主菜单界面,如图33所示教师菜单界面,如图3-4图34教师管理界面教师查询界面,如图3-5所示:2. 图3-5教师查询界面教师删除界面,如图3-6所示:4. 图3-6教师删除界面第四章系统实现1类实现/classPersoncla
15、ssTeacher:virtualpublicPerson/classGovernment:virtualpublicPerson/classExperimenter:publicPerson/classTea_Gover:publicTeacher,publicGovernment:/classTea_manage/classGov_manage/classExp_manage/2. classTea_GoverManage/人员类教师类行政人员类实验员类教师兼行政人员类教师管理类行政人员管理类实验员管理类教师兼行政人员管理类2函数实现员工信息输入教师信息输入voidPerson:Input
16、()cout请输入编号cout请输入名字cout请输入性别cout请输入年龄voidTeacher:Input_1()/num;name;sex;age;/Input();cout请输入所在系另1J:depart;cout请输入专业名称:spec;cout请输入职称:title;员工信息输出voidPerson:Output()/cout编号:numendl;cout姓名:nameendl;cout性另ij:sexendl;cout年龄:ageendl;教师信息输出voidTeacher:Output_1()/Output();cout所在系另1J:departendl;cout所在专业:sp
17、ecendl;返回编号返回姓名返回性别返回年龄返回所在部门返回专业返回职称教师信息的添加:endl;endl;教师信息的显示cout职称:titleendl;intPerson:GetNum()/(returnnum;charPerson:GetName()/(returnname20;charPerson:GetSex()/(returnsex10;intPerson:GetAge()/(returnage;charTeacher:GetDepart()/(returndepart20;charTeacher:GetSpec()/(returnspec20;charTeacher:GetTi
18、tle()/(returntitle20;voidTea_Manage:Add()/(一Teachert;cout请输入新增人员的信息:endl;t.Input_1();inti;for(i=0;itop;i+)(if(t.GetNum()=Teai.GetNum()(cout1000)cout内存已满,不可添加elseif(top=1000)Teatop=t;cout添加成功endl;top+;return;voidTea_Manage:Show()/一for(inti=0;itop;i+)Teai.Output_1();coutendl;voidTea_Manage:Search()/教师
19、信息的查询(一if(top=0)(cout”没有任何信息”endl;intchoice;inti=0;intm=0;intn=0;intnum;cout请输入您的选择:endl;cout查询方式1.按名字2.按编号choice;switch(choice)(case1:(charname20;cout请输人您所查询的人员名字:name;for(i;itop;i+)(if(!strcmp(name,T)(Teai.Output_1();break;if(i=top)cout查无此人endl;break;case2:(cout请输入编号:num;for(i=0;itop;i+)(i
20、f(num=Teai.GetNum()(Teai.Output_1();一if(i=top)cout查无此人endl;break;工voidTea_Manage:Edit()/教师信息的修改(一inti=0;Search();cout+endl;cout1.修改编号2.修改姓名3.修改性别4.修改年龄5.修改系别6.修改专业7.修改职称0.退出endl;cout+choice;switch(choice)(case1:cout编号不可修改endl;break;case2:(charna20;cout请输入修改后的姓名:na;strcpy(T,na);cout修改成功endl;b
21、reak;case3:(intm;chara10;cout输入修改后的内容:a;strcpy(Teai.sex,a);cout修改成功,是否继续(1/2)m;if(m=1)return;break;case4:(intb,m;cout请输入修改后的年龄:b;Teai.age=b;cout修改成功,是否继续(1/2)”m;if(m=1)return;break;case5:(intm;charn20;cout请输入修改后系部:n;strcpy(Teai.depart,n);cout修改成功,是否继续(1/2)m;if(m=1)return;break;case6:(intm;charn20;co
22、ut请输入修改后专业:n;strcpy(Teai.spec,n);cout修改成切,是否继续(1/2)m;if(m=1)return;break;case7:(intm;charn20;cout请输入修改后的职称:n;strcpy(Teai.title,n);cout修改依功,是否继续(1/2)m;if(m=1)return;break;case0:cout退出成功!endl;break;default:cout无此选项!请重认!endl;break;voidTea_Manage:Delete()/(一Teachert;inti=0;cout请输入你想删除人员的编号:t.num;if(top=
23、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;voidTea_Manage:Total()/(一couttopendl;voidTea_Manage:Save()/(一if(!outfile)(cerropenerror!endl;abort();for(inti=0;itop;i+)(outfile.write(char*)&Teai,sizeof(Teai);cout保存成功endl;outfile
24、.close();voidTea_Manage:Read()/(一if(!infile)(cerropenerror!endl;abort();while(infile.read(char*)&Teatop,sizeof(Tea0)top+;cout读取成折endl;教师信息的删除教师信息的统计教师信息的保存教师信息的读出infile.close();4.3主函数实现intmain()/主函数的实现(cout*欢迎进入北华航天工业学院人员管理系统*endl;intchoice;do(cout*主菜单*nendl;coutendl;cout|endl;cout行政人员管理2=教师管理|endl;
25、cout实验人员管理4=教师兼行政人员管理|endl;cout退出系统|endl;cout|endl;coutendl;coutchoice;switch(choice)(case1:StuMenu();break;case2:TeaMenu();break;case3:ExpMenu();break;您已安全退出系统.endl;break;没有此选项.请重选.”endl;break;case4:Tea_StaMenu();break;case0:coutndefault:coutn*欢迎您下次再使用本系统!*endl;while(choice!=0);coutnreturn0;3. 第五章系
26、统测试5. 1模块测试以教师信息为例进行说明。选择对教师信息进行添加,见图5-1,图5-2图51图52选择对教师信息显示图5-3图53选择对教师信息修改图5-4图54修改后显示图55图55对教师信息的删除图56对教师信息保存图5-7图57对保存的教师信息的读取图5-8图58程序的退出图5-9图592课程设计过程中遇到的问题1、程序设计时选择了数组的方式来对数据的操作,在查询时,由于思路不明确,没有成功实现程序对教师信息的查询,在请教老师之后,巧妙地运用了变量top,终于完成了查询的功能。2、文件的存入和读出使用的2进制的方法,对此,因为掌握不是很熟练,总是存入读出错误,在查阅了课本书籍之后,仍
27、出现类似问题,请教老师后明白了2进制存入、读出的方法,实现了相关功能。结论通过本程序设计掌握了类对象、类数组、继承、派生、重载、输入输出流的定义和使用,对使用C+吾言编码有了更深层次的理解,也认识到了自己还有许多不足之处,达到了实验目的。本系统基本完成了题目的功能要求,并且还在一定程度上进行了优化,具体如下:优点:删除时可以重新选择;对无效数据的输入进行了有效的判断;在删除和查询时既可以按编号也可以按姓名;每次删除后自动将人员信息显示出来。缺点:对于重名的人员系统照旧可以添加,没有提醒;人员的编号可以重复。可以改进的地方:在添加成员时进行验证,看所输姓名和编号是否重复,若重复进行重新输入;在实
28、现七个功能的地方添加exit函数,一旦操作失误,不想继续进行,则系统跳转会主界面进行新的操作选择。2. 心得体会的设计本次课程设计主要使用了本学期学习的MicrosoftVisualC+6.0环境,内容涵盖了c和C+语言部分知识,在本次编程过程中,我学习到了很多。例如:在编程首先要有全局观念,要认识到自己是要编写怎样的程序,并且要构建相应的程序结构,否则漫无目的的编写只能造成自己后期的负担。其次要熟练的掌握老师以前所教授的相关知识,这样在编写程序的时候才能得心应手。再次,要分步进行程序的编写,实现一个功能,再实现另一个功能,不可以全部编好最后在检查,否则最终无从下手。我现在才明白一个真正好的程
29、序是需要很多人共同完成的,不是说一个人就能完成一个程序的编写,现在的程序还不是很大,但如果是一个巨型系统,任何一个人是不可能完成的,像是微软操作系统也是由很多局手一起编写的,这次编写过程中,我请教了老师和同学一些问题,是在他们的帮助下我才最终顺利地完成任务。让我深刻的认识到团队的力量。所以在以后学习过程中,我想应该多探讨,多帮助,多学习才行。1 参考书目沈炜,徐慧.VisualC+做据库编程技术与实例.北京:人民邮电出版社,2005邓阿奇,丁有和.VisualC+教程.北京:清华大学出版社,2004年9月谭浩强.C+程序设计.北京:清华大学出版社,2004年谭浩强.C语言程序设计(第2版).北
30、京:清华大学出版社,2003附录:关键程序代码#include#include#include#includePerson.h#includeExperiment.h#includeGoverment.h#includeTeacher.h#includeTea_Gov.h”#includeTea_Manage.h”#includeExp_Manage.h”#includeGov_Manage.h”#includeTeagov_Manage.h”usingnamespacestd;/voidTeaMenu();voidExpMenu();voidGovMenu();voidTea_GovMenu
31、();/*main主函数intmain()intchoice;docout【高校人员信息管理系统】endl;coutendl;coutendl;cout|endl;cout|1.教师管理2.实验员管理|endl;cout|3.行政人员管理4.教师兼行政人员|endl;cout|0.退出系统|endl;cout|endl;cout=endl;coutchoice;switch(choice)case1:TeaMenu();break;case2:ExpMenu();break;case3:GovMenu();break;case4:Tea_GovMenu();break;case0:coutn您
32、已安全退出系统.”endl;break;default:coutn没有此选项.请重选.”endl;break;while(choice!=0);coutn*欢迎您下次再使用本系统!*endl;return0;voidTeaMenu()system(cls);Tea_Managet;intchoice;while(choice!=0)coutn【教师管理】endl;cout+endl;cout|endl;cout|1.添加2.查找3.修改4.统计5.删除6.显示7.保存8.读取0.退出|endl;cout|endl;cout+endl;coutchoice;switch(choice)case1
33、:t.Add();break;case2:t.Search();break;case3:t.Edit();break;case4:t.Total();break;case5:t.Delete();break;case6:t.Show();break;case7:t.Save();break;case8:t.Read();break;case0:cout退出成功!endl;system(cls);break;default:cout无此无项!请重试!endl;break;voidExpMenu()system(cls);Exper_Managet;intchoice;while(choice!=0)coutn【实验员管理】endl;cout+endl;cout|endl;cout|1.添加2.查找3.修改4.统计5.删除6.显示7.保存8.读取0.退出|endl;cout|endl;cout+endl;coutchoice;switch(choice)case1:t.Add()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 锂辉石选矿流程自动化建设方案
- 2025教科版小学科学三年级下册校本教具创新计划
- 2025贵州岑巩县医共体总医院招聘合同制编外乡村医生考试备考试题及答案解析
- 2025年心理咨询与心理治疗技术训练试卷答案及解析
- 2025年小学英语教研组教材改革计划
- 虚拟现实研发经理岗位职责
- 2025年医学营养学院疾病与营养相互关系分析试题答案及解析
- 2025年感染科结核病患者隔离护理制度评估模拟考试卷答案及解析
- 幼儿园小班健康评估计划
- 2025年皮肤病学尋常疣的临床诊断治疗方案试题答案及解析
- 《大数据基础》 课件 项目一 走进大数据
- 橡皮障隔离术知情同意书
- 临床医学内科学-消化系统疾病-肠结核和结核性腹膜炎
- 营区物业服务投标方案(技术标)
- 小学语文人教版一年级上册《我上学了单元整备课》word版教案
- 小学生小古文100篇
- 高效能人士七个习惯
- 血浆置换在危重病人中的应用教学课件
- 六年级上册科学全册练习题(2022年新教科版)
- 沉井下沉纠偏措施
- 教师专业发展与名师成长(学校师范专业公共课)
评论
0/150
提交评论