已阅读5页,还剩78页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+课设高校人员信息管理系统课程设计报告第1章 绪论1.1 课程设计的目的(1)要求学生能够熟练掌握C+语言的基本知识和技能。(2)基本掌握面向对象程序设计的基本思路和方法。(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。1.2 课程设计的背景和意义1.2.1课程设计的背景 1. 理论研究基础(1)综合C+编程知识,结合实际加以应用。(2)参考课本对课本熟悉,应用类、数组等内容。2. 技术层面的支持安装Microsoft Visual C+ 6.0集成开发环境。1.2.2 课程设计的意义综合复习C+面向对象程序设计的所有知识点,进一步熟练面向对象程序的开发方法和流程,提高学生独立分析问题和解决问题的能力,培养学生的中、小型实践项目开发能力。让我们提前感受到编写软件的过程和解决问题的方法。1.3 课程设计环境软件环境:Microsoft Visual C+ 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 类设计此系统共设计了九个类:基类(class Person),实验员类(class Experimenter),教师类(class Teacher),行政人员类(class Staff),教师兼行政人员类(class Tea_Sta)基类中有int num; 公用数据成员用于记录类成员的编号int age; 公用数据成员用于记录类成员的年龄string name; 公用数据成员用于记录类成员的姓名string sex; 公用数据成员用于记录类成员的性别virtual void Input(); 公有数据成员函数用于输入成员信息virtual void Output(); 公有数据成员函数用于输出成员信息int GetNum(); 公有数据成员函数用于获得成员编号string GetName(); 公有数据成员函数用于获得成员姓名实验员类中添加了string library; 公有数据成员用于记录类成员的实验室string zw; 公有数据成员用于记录类成员的职务int choice2; 公有数据成员用于选择成员的性别教师类中添加了string depart; 公有数据成员用于记录类成员的部门string spec; 公有数据成员用于记录类成员的专业string title; 公有数据成员用于记录类成员的职称 int choice1; 公有数据成员用于选择成员的部门int choice2; 公有数据成员用于选择成员的性别行政人员类中添加了string zzmm; 公有数据成员用于记录类成员的政治面貌string zc; 公有数据成员用于记录类成员的任职职称int choice2; 公有数据成员用于选择成员的性别教师兼行政人员类添加了int choice1; 公有数据成员用于选择成员的部门int choice2; 公有数据成员用于选择成员的性别还有四个功能相同的功能函数类,其中有Exp_Manage 类Tea_Manage 类 Staf_Manage 类Tea_Staf_Manage类。分别实现不同的相应功能。 Tea_Sta TeaTMAX; TMAX为常量,为数组中可存储的教师记录的最大数;int top; top表示当前系统中存储的记录个数;Tea_Staf_Manage()top=0;初始时记录的个数为0,所以设置top=0;void Add(); 实现该类记录的添加;void Show(); 实现该类所有记录的显示; void Search(); 实现该类记录的查询;void Edit(); 实现该类记录的修改;void Delete(); 实现该类记录的删除;void Total(); 实现该类记录的统计;void Save(); 将该类记录保存到文件;void Read(); 可从文件中将记录读取到该类的数组中;实验员、教师、行政人员管理类中函数都相同,在此略。3.1.2 类之间的关系基类:(class Person)派生类有:(class Experimenter),(class Teacher),(class Staff)(class Tea_Sta)四个平行关系的类,实现不同类的功能:(class Exp_Manage)(class Tea_Manage)(class Staf_Manage)(class Tea_Staf_Manage)3.1.3 函数设计在四个管理类中定义了以下相同函数,功能如其后所说void Add(); 实现该类记录的添加;void Show(); 实现该类所有记录的显示; void Search(); 实现该类记录的查询;void Edit(); 实现该类记录的修改;void Delete(); 实现该类记录的删除;void Total(); 实现该类记录的统计;void Save(); 将该类记录保存到文件;void Read(); 可从文件中将记录读取到该类的数组中;3.2 结构设计3.2.1 系统流程图人员类教师类实验员类行政人员类教师兼行政人员类 图313.2.2 界面设计主菜单界面 图32 主菜单界面图实验员类菜单界面 图33 实验员类菜单界面图教师类菜单界面 图34教师类菜单界面图政人员管理菜单界面 图35 政人员管理菜单界面图教师兼行政人员管理菜单界面 图36 教师兼行政人员管理菜单界面图第4章 系统实现4.1 类实现对于基类的定义class Personpublic:int num; 公用数据成员用于记录类成员的编号int age; 公用数据成员用于记录类成员的年龄string name; 公用数据成员用于记录类成员的姓名string sex; 公用数据成员用于记录类成员的性别public:Person(int n=0,string nm=,string s=,int a=0):num(n),name(nm),sex(s),age(a);virtual void Input();virtual void Output();int GetNum()return num; 公有数据成员函数用于获得成员编号string GetName()return name; 公有数据成员函数用于获得成员姓名;对实验员派生类的定义class Experimenter:public Personpublic:string library; 公有数据成员用于记录类成员的实验室string zw; 公有数据成员用于记录类成员的职务int choice2; 公有数据成员用于选择成员的性别public:Experimenter(int n=0,string nm=,string s=男,int a=0,string l=,string z=):Person(num,name,sex,age),library(l),zw(z); void Input() 成员函数用于输入成员信息 void Output() 成员函数用于输出成员信息;对于教师派生类的定义class Teacher:virtual public Personpublic:string depart; 公有数据成员用于记录类成员的部门string spec; 公有数据成员用于记录类成员的专业string title; 公有数据成员用于记录类成员的职称 int choice1; 公有数据成员用于选择成员的部门int choice2; 公有数据成员用于选择成员的性别public:Teacher(int n=0,string nm=,string s=男,int a=0,string d=电子系,string sp=,string t=):Person(n,nm,s,a),depart(d),spec(sp),title(t);void Input() 成员函数用于输入成员信息 void Output() 成员函数用于输出成员信息对于行政人员派生类的定义class Staff:virtual public Personpublic:string zzmm; 公有数据成员用于记录类成员的政治面貌string zc; 公有数据成员用于记录类成员的任职职称int choice2; 公有数据成员用于选择成员的性别public:Staff(int n=0,string nm=,string s=男,int a=0,string z=,string zc=):Person(n,nm,s,a),zzmm(z),zc(zc);void Input() 成员函数用于输入成员信息 void Output() 成员函数用于输出成员信息;对于教师兼行政人员类的定义class Tea_Sta:public Teacher,public Staffpublic:int choice1; 公有数据成员用于选择成员的部门int choice2; 公有数据成员用于选择成员的性别Tea_Sta(int n=0,string nm=,string s=男,int a=0,string d=电子系,string sp=,string t=,string z=,string zc=):Person(n,nm,s,a),Teacher(n,nm,s,a,sp,t),Staff(n,nm,s,a,z,zc);void Input() 成员函数用于输入成员信息 void Output() 成员函数用于输出成员信息;对于在四个管理类中函数功能都相同,以教师类为例class Tea_Manage Teacher TeaTMAX; TMAX为常量,为数组中可存储的教师记录的最大数;int top; top表示当前系统中存储的记录个数;public:Tea_Manage()top=0; 初始时记录的个数为0,所以设置top=0;void Add(); 实现该类记录的添加;void Show(); 实现该类所有记录的显示; void Search(); 实现该类记录的查询;void Edit(); 实现该类记录的修改;void Delete(); 实现该类记录的删除;void Total(); 实现该类记录的统计;void Save(); 将该类记录保存到文件;void Read(); 可从文件中将记录读取到该类的数组中;;4.2 函数实现对于在四个管理类中定义了相同的函数,以教师类为例添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加void Tea_Manage:Add()if(top=TMAX) cout用户已满endl;return; Teacher t;cout输入新添加的人员的信息endl;t.Input();for(int i=0;itop;i+)if (t.GetNum()=Teai.GetNum()cout该编号的人员已存在endl;return; Teatop=t; top=top+1;cout添加成功!endl;显示功能:可显示当前系统中所有记录,每条记录占据一行。void Tea_Manage:Show()if(top=0)cout无数据!endl;return;coutsetw(10)编号setw(10)姓名setw(10)性别setw(10)年龄setw(10)系部setw(10)专业setw(10)职称endl;for(int i=0;itop;i+)Teai.Output();查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。void Tea_Manage:Search()if(top=0)cout当前系统中没有存储记录endl;return; int choice;cout请选择查找方式:1.按编号查找 2.按姓名查找.choice;switch(choice)case 1:cout请输入要查找的编号:num; for(int i=0;itop;i+)if(Teai.GetNum()=num) Teai.Output(); return;cout查无此人!endl; break;case 2:cout请输入要查找的姓名name; for(int i=0;itop;i+) if(Teai.GetName()=name) Teai.Output();for( i=0;itop;i+)if(Teai.GetName()=name)return;cout查无此人!endl; break;default :cout无此选项!请重试!endl;break;void Tea_Manage:Edit()if(top=0)cout当前系统中没有存储记录!endl;return;int num;cout请输入要查找的教编号:num; for(int i=0;itop;i+)if(Teai.GetNum()=num)cout请对这位教师的信息进行修改:endl;Teai.Input();cout修改成功endl;return; cout查无此人endl;删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。void Tea_Manage:Delete()if(top=0) cout当前系统中没有存储记录!endl;return;cout1、按编号查找删除 2、按姓名查找删除choice; switch(choice) case 1: coutnum; for(int i=0;itop;i+) if(num=Teai.num) cout是否确认删除? 1、是 2、否 choice; switch(choice) case 1: for(int j=i;jtop-1;j+) Teaj=Teaj+1; cout删除成功!endl; top-; ;break; case 2:return; default:cout无此项,失败!endl;break; return; cout无此人!endl; ;break; case 2: coutname; for(int i=0;itop;i+) if(name=T) cout是否确认删除? 1、是 2、否 choice; switch(choice) case 1: for(int j=i;jtop-1;j+) Teaj=Teaj+1; cout删除成功!endl; top-; ;break; case 2:return; default:cout无此项,失败!endl;break; return; cout无此人!endl; break;default:cout没有此项,失败:endl;break;统计功能:能根据多种参数进行人员的统计。例如,统计类中人员数量以及总数,或者统计男、女员工的数量,不同部门员工数量等。void Tea_Manage:Total()cout1 按人数统计 2 按性别统计 3 按系别统计 endl;int choice;cout请输入你的选择choice;switch(choice)case 1:cout教师类人数为:topendl;break;case 2:int a=0,b=0;for(int i=0;itop;i+)if(Teai.sex=男) a+;if(Teai.sex=女) b+;cout男教师人数为aendl;cout女教师人数为bendl;break;case 3:int a1=0,a2=0,a3=0,a4=0,a5=0,a6=0,a7=0,a8=0,a9=0;for(int i=0;itop;i+)if(Teai.depart=电子系) a1+;if(Teai.depart=机械系) a2+;if(Teai.depart=经管系) a3+;if(Teai.depart=建工系) a4+;if(Teai.depart=计算机系) a5+;if(Teai.depart=外语系) a6+;if(Teai.depart=财会系) a7+;if(Teai.depart=材料系) a8+;if(Teai.depart=文法系) a9+;cout电子系教师人数为a1endl;cout机械系教师人数为a2endl;cout经管系教师人数为a3endl;cout建工系教师人数为a4endl;cout计算机系教师人数为a5endl;cout外语系教师人数为a6endl;cout财会系教师人数为a7endl;cout材料系教师人数为a8endl;cout文法系教师人数为a9endl;break;default:cout输入错误。请重新输入endl;break;保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意。void Tea_Manage:Save()ofstream out(D:ying2.txt,ios:out);if(!out)cout打开失败!endl;return;cout打开成功!endl;for(int i=0;itop;i+)outTeai.num T Teai.sex Teai.age Teai.depart Teai.spec Teai.title endl;cout写入成功!endl;out.close();读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。void Tea_Manage:Read()ifstream in(D:ying2.txt,ios:in);if(!in)cout打开失败!Teai.num TTeai.sexTeai.age Teai.departTeai.specTeai.title)Teai.Output(); i+;top+;in.close();教师函数主界面的定义void TeaMenu()Tea_Manage t;int choice;while(choice!=0)cout n *教师管理* endl;cout+endl;cout| |endl;cout退出 |endl;cout| |endl;cout+endl;coutchoice;switch(choice)case 1:t.Add();break;case 2:t.Search();break;case 3:t.Edit();break;case 4:t.Delete();break;case 5:t.Show();break;case 6:t.Save();break; case 7:t.Read();break; case 8:t.Total();break;case 0:cout退出成功!endl;break;default:cout无此选项!请重试!endl;break;系统主菜单函数定义,根据不同人选择不同的子系统int main()cout *欢迎进入北华航天工业学院人员管理系统*endl;int choice;docout *主菜单*nendl; coutendl;cout| |endl;cout实验员管理2=教师管理3=行政管理4=教师行政管理0=退出系统 |endl;cout| |endl;coutendl;coutchoice;switch(choice) case 1:ExpMenu();break;case 2:TeaMenu();break;case 3:StafMenu();break;case 4:Tea_StafMenu();break;case 0:coutn您已安全退出系统.endl;break;default:coutn没有此选项.请重选.endl;break;while(choice!=0);coutn *欢迎您下次再使用本系统!*endl;return 0;4.3 主函数实现#include#include#include#includeconst int TMAX=50;using namespace std;int main()cout *欢迎进入北华航天工业学院人员管理系统*endl;int choice;docout *主菜单*nendl;coutendl;cout| |endl;cout实验员管理 2=教师管理 3=行政管理 4=教师行政管理 0=退出系统 |endl;cout| |endl;coutendl;coutchoice;switch(choice) case 1:ExpMenu();break;case 2:TeaMenu();break;case 3:StafMenu();break;case 4:Tea_StafMenu();break;case 0:coutn您已安全退出系统.endl;break;default:coutn没有此选项.请重选.endl;break;while(choice!=0);coutn *欢迎您下次再使用本系统!*endl;return 0;第5章 系统测试5.1 模块测试(由于实验员类,教师类,行政人员类,教师兼行政人员类系统功能一样,在此以教师类为例)1. 添加模块(输入正确添加信息) 图51 正确添加界面(输入错误信息) 图52 错误添加界面2.查找模块(正确编号查找) 图53 正确编号查找界面(错误编号查找) 图54 错误编号查找界面(正确姓名查找) 图55 正确姓名查找界面(错误姓名查找) 图56 错误姓名查找界面 3.修改模块(正确修改) 图57 正确修改界面(错误修改) 图58 错误修改界面4.删除模块(正确编号删除) 图59 正确编号删除界面(错误编号删除) 图510 错误编号删除界面(正确姓名删除) 图511正确姓名删除界面(错误姓名删除) 图512 错误姓名删除界面5.显示模块 图513 显示信息界面6.保存模块 图514 保存信息界面7.读取模块 图515 读取信息界面8.统计模块(类内人数统计) 图516 类内人数统计界面(性别统计) 图517 性别统计界面 (系别统计) 图518 系别统计界面5.2 课程设计过程中遇到的问题遇到的问题:1开始编写程序时,不知道如何将这些功能进行实现;2添加新成员时未考虑到编号能否重复; 3查询时未考虑到进行多条件查询;4完成读取函数后,不知道如何调用;5应用数组形式编写程序时,应考虑尽量大的分配空间;解决办法:通过参考大量资料和老师的辅导,函数功能的实现通过switch语句在主菜单进行操作来实现;添加新成员时首先通过编号进行查询,来说明编号不重复,查询后若编号存在则提示“该人员已存在”若不存在则进行添加;查询时可以通过编号和姓名两种途径实现;读取函数编写完毕后,可通过主菜单的操作来实现信息的读取;总 结通过两星期的C+语言程序设计的商上机实践,在老师、同学和有关资料的帮助下顺利完成了课程设计的任务,加深了对C+面向对象程序设计的认识,还能够把这学期所学的理论知识和实践联系起来,在所要编写的程序和设计的管理系统中渐渐成长。虽然我们对这些C+语言知识运用得还不是很熟练,但在此次课程设计的基础上可使我们发现很多问题,使我们从不足之处出发,弥补我们的缺点,从而能够更好的对C+面向对象程序设计进行学习和实践。 该系统的优点:本系统为高校人员信息管理系统,本系统较好的完成了题目所给要求,能够分别对实验员、教师、行政人员、教师兼行政人员四类人员进行人员信息的添加、查询、编辑、统计、删除、信息的显示多种功能,并能够实现人员信息的存盘和读取,能够很好的队人员的信息进行管理;缺陷:界面设计并不太完善,操作过于繁琐和复杂;课题改进的地方:可以添加一些可以方便管理人员的操作,在以下方面还有改进的空间:(1)、可以使界面更完美,给管理人员优美感。(2)、简化一些繁琐的操作,更方便管理人员。(3)、增加一些操作,使系统更加完善简便。 致 谢通过这次课设,加深了对C+面向对象程序设计的认识,使我对知识有了更深的理解,以便以后更灵活运用。课设期间虽是累了点,但很有收获,我们学会了面对问题如何解决,是问老师还是问同学或者自己仔细分析。首先,我对面对对象思想和语言有了更深刻的了解和认识,对于已学习的C+语言的理解也更加透彻深入,同时通过系统设计体会到面对对象程序设计的强大优势。其次,通过这次课程设计,能够把以前学习的知识和编程经验进行总结、整合。一方面,从程序运行机制层次上对以前的知识是一个很好的理解复习,另一方面,是对自己学习的程度和深度的一个检测,可以对自己以后的学习起到一个指导性的作用 。最后,在程序测试时遇到了许多以前未遇到过的问题,在解决问题的过程中不将系统功能成功实现,而且又学会了许多调试程序的方法,积累了对常见错误进行调试的大量经验参考文献1耿祥义,张跃平. JSP实用教程. 北京:清华大学出版社,20032王珊,萨师煊. 数据库系统概论. 北京:高等教育出版社,20063李春葆. C+语言习题与解析. 北京:清华大学出版社,20014张岳新. Visual C+程序设计基础. 苏州:苏州大学出版社,20005陈清华, 朱红. Visual C+程序设计案例精选与编程指导. 南京:东南大学出版社,20036祁云嵩. Visual C+程序设计.南京:东南大学出版社,20037周霭如, 林伟健. C+程序设计基础. 北京:电子工业出版社,20038谭浩强. C程序设计. 北京:清华大学出版社,20059谭浩强.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年七年级数学上学期函数基础卷
- 初中卫生管理制度
- 初中体育教师期末工作总结
- 2024-2025 学年成都市小学五年级历史期中模拟冲刺卷(附答案)
- 2024-2025 学年成都市小学五年级地理期中复习模拟试卷及答案
- 2025年护理员知识试题及答案
- 2025年小学五年级数学上学期分数运算强化培训卷
- 2025年卫计培训试题及答案
- 2025年功能食品加工试题及答案
- 2025年财务知识测评试题及答案
- 学校暗访活动方案
- 2025药物警戒培训
- (项目管理)建设项目后评价报告书
- 导管室设备管理制度
- 社区警务介绍课件
- AI大模型赋能应急管理数字化建设方案
- 《健身指导》课件
- 飞书合作伙伴管理制度
- 防雷防汛防台风培训课件
- 中国城市新分级名单(共337个)
- 大学生心理健康教育(第三版)教案:第四章 调适情绪 拥抱快乐
评论
0/150
提交评论