1、北 华 航 天 工 业 学 院基于 C+的面向对象程序设计实例课程设计报告报 告 题 目 :高校人员信息管理系统 作者所在系部: 计算机科学与工程系 作者所在专业: 网络工程 作者所在班级: B08522 班 作 者 姓 名 : 马洪彪 指导教师姓名: 赵辉 完 成 时 间 : 2008 年 6 月 26 日 北华航天工业学院教务处制北华航天工业学院课程设计报告2课程设计任务书课题名称 高校人员信息管理系统 完成时间 第 18周指导教师 职称 讲师 学生姓名 班 级 总体设计要求和技术要点某高校,主要人员有:领导、教师和学生,共有的信息包括:编号、姓名、性别、年龄。其中领导还应包含的信息有:任
2、职部门(学院、各系部) 、职称;教师还应包含的信息有:职称、任职时间、专业;学生还应包含的信息有:所在班级、所在宿舍等。要求:对各类人员信息完成的基本功能有:1) 添加功能:程序能够添加相应的记录;2) 查询功能:能根据编号和姓名进行查询,并显示相应的记录信息;3) 编辑功能:根据查询对相应的记录进行修改;4) 统计功能:能根据多种参数进行人员的统计(如在职人数、党员人数、女工人数等) ;5)删除功能:根据查找结果,完成具体记录的删除。6)保存功能:将对高校人员信息进行的添加、删除、修改结果保存到文本文件中。学生在完成本次课程设计的基本要求后,进一步完善程序,从如下几个方面加以考虑:1) 添加
3、人员记录时,考虑各种数据的有效性。2)组合查询功能的实现。3)编辑数据时,注意操作的方便4)删除数据时,考虑删除操作的方便工作内容及时间进度安排16 月 2 日13 日:布置任务,软件设计26 月 15 日26 日:编写代码,上机调试36 月 25、26 日:软件验收,撰写课程设计报告4各班在 6 月 29 日下午四点前将课程设计报告收齐并上交课程设计成果1课程设计报告2源程序代码北华航天工业学院课程设计报告3摘 要在信息化教育的今天,高校要想实现教育的现代化,不但要又优秀的师资力量,同时也要有好的软件系统。高校人员信息管理系统是一套完善的信息化管理系统,用来实现高校人员的统一方便的信息操作,
4、以实现高校人员流动及时更新、及时反馈校园信息、完善教育质量、提高教育效率、分析校园需求、制定招生和招聘的管理目的。本文利用 Microsoft visual c+6.0 提供的 OOP(噢把巨额彩图噢日恩特等批rogrammin,OOP 面向对象的程序设计)的编写程序,实现了校园内部人员的信息添加,查询,编辑,统计,删除,载入,保存,加载等功能。本系统主要有四个类:基类、领导类、教师类以及学生类。已经过全面的系统测试,能够很好的运行,基本达到了预期的效果。关键词:系统 类 信息管理北华航天工业学院课程设计报告4目 录课程设计任务书 摘 要 .第一章 绪论 .611 课程设计的目的 .612 课
5、程设计的背景和意义 .6121 课程设计的背景 .6122 课程设计的意义 .613 课程设计环境 .7第二章 需求分析 .721 问题描述 .722 功能要求 .723 问题的解决方案 .8第三章 系统设计 .831 数据设计 .8311 类设计 .8312 类之间的关系 .14313 函数设计 .1432 结构设计 .15321 系统流程图 .15322 界面设计 .15第四章 系统实现 .1641 类实现 .16图 4-1 类结构图 1642 函数实现 .17421 高校人员信息的添加功能的实现 .17422 高校人员信息的查询功能的实现 .18423 高校人员信息的编辑功能的实现 .2
6、4424 高校人员信息的统计功能的实现 .26北华航天工业学院课程设计报告5425 高校人员信息的删除功能的实现 .28426 高校人员信息的保存功能的实现 .30427 高校人员信息的加载功能的实现 .3243 主函数实现 .34第五章 系统测试 .3651 模块测试 .3652 课程设计过程中遇到的问题 .40总 结 .41致 谢 .42参考文献 .43附 录 .44北华航天工业学院课程设计报告6第一章 绪论11 课程设计的目的课程设计是课程教学必不可缺的一个重要环节,可加深学生对该课程所学内容的进一步的了解与巩固,是将计算机课程与实际问题相连接的关键步骤。通过课程设计,能够提高学生的分析
7、问题,解决问题,要能很好的完成课程设计,要求我们必须掌握在学习中学到的知识,所以要我们对课本中学的知识要熟悉且掌握,从而运用所学知识解决实际问题的能力,因而必须给予足够的重视。12 课程设计的背景和意义121 课程设计的背景1. 理论研究基础(1)C+语言的基本知识和技能,如:类与对象,指针,输入/ 输出流,文本文件的建立保存;(2)面向对象程序设计的基本思路和方法。2. 技术层面的支持(1)研究这些结构的存储、显示,并有查找、添加、删除、修改、查询、统计、保存信息、载入等功能。(2)类定义、类对象、继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。122 课程设计的意义(1)通过课
8、程设计的综合训练,培养了学生分析解决实际问题和编程等实际动手能力。帮助了同学系统的掌握 C+课程的主要内容。(2)综合实际应用的需求是课程设计既覆盖教学所要求的知识点,有接近工程北华航天工业学院课程设计报告7的实际需求,训练自己实际分析问题和解决问题以及编程的能力。做到理论结合实际。13 课程设计环境(1)在 Microsoft Visual C+ 6.0 开发平台上编写程序源代码,修改,增加功能,通过编译、连接,直到完全无误,最终执行程序,反复输入合理的以及不合理的数据进行测试并进一步完善。(2)硬件:学校机房(3)软件:Microsoft Visual C+ 6.0 开发平台第二章 需求分
9、析21 问题描述某高校,主要人员有:领导、教师和学生,共有的信息包括:编号、姓名、性别、年龄。其中领导还应包含的信息有:任职部门(学院、各系部) 、职称;教师还应包含的信息有:职称、任职时间、专业;学生还应包含的信息有:所在班级、所在宿舍等。22 功能要求(1)对各类人员信息完成的基本功能有:1) 添加功能:程序能够添加相应的记录;2) 查询功能:能根据编号和姓名进行查询,并显示相应的记录信息;3) 编辑功能:根据查询结果对相应的记录进行修改;4) 统计功能:能根据多种参数进行人员的统计(如在职人数、党员人数、女工人数等) ;5)删除功能:根据查找结果,完成具体记录的删除。6)保存功能:将对高
10、校人员信息进行的添加、删除、修改结果保存到文本文件中。7)载入功能:把文件中的数据导入内存中,通过显示功能把载入的数据显示在桌面上。(2)学生在完成本次课程设计的基本要求后,进一步完善程序,从如下几北华航天工业学院课程设计报告8个方面加以考虑:1) 添加人员记录时,考虑各种数据的有效性。2)组合查询功能的实现。3)编辑数据时,注意操作的方便。4)删除数据时,考虑删除操作的方便。5)载入数据时,要考虑到操作简单,快捷。23 问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: 1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;2)分析系统中的各个实体及它们之间的关系; 3)
11、根据问题描述,设计系统的类层次; 4)完成类层次中各个类的描述; 5)完成类中各个成员函数的定义; 6)完成系统的应用模块; 7)功能调试; 8)完成系统总结报告。第三章 系统设计31 数据设计311 类设计*基类:*class Person/定义基类 Personpublic:Person(int n,string nam,char s,int a):num(n),name(nam),sex(s),age(a)int num;string name;北华航天工业学院课程设计报告9protected:char sex;int age;*领导类:*class Leader:public Pers
12、on/由基类派生出 Leader(领导)类public:Leader(int n=0,string nam=“,char s=m,int a=0,string d=“,string p=“):Person(n,nam,s,a),dep(d),post(p)void set_leader()coutnum;for(int k=1;kname;coutsex;if(sex!=mcoutdep;coutpost;北华航天工业学院课程设计报告10void show_leader()coutnumnamesexagedeppost;friend void LTongJi();private:string
13、 dep;string post;led20;* 教师类:*class Teacher:public Person/由基类派生出 Teacher(老师)类public:Teacher(int n=0,string nam=“,char s=m,int a=0,string p=“,string d=“,string sp=“):Person(n,nam,s,a),post(p),day(d),spec(sp)北华航天工业学院课程设计报告11void set_teacher()coutnum;for(int k=1;kname;coutsex;if(sex!=mcoutpost;coutday;
14、coutspec;void show_teacher()coutnumnamesexagepostdayspec;friend void TTongJi();private:string post;string day;string spec;tea20;*学生类:*class Student:public Person/定义由 Person 类派生出的 Student 类public:Student(int n=0,string nam=“,char s=m,int a=0,string c=“,string d=“):Person(n,nam,s,a),cla(c),door(d)void
15、 set_student()coutnum;for(int k=1;kname;coutsex;if(sex!=mcoutcla;coutdoor;void show_student()coutnumnamesexagecladoor;friend void STongJi();private:北华航天工业学院课程设计报告14string cla;string door;stu20;312 类之间的关系基类为 Person 类。Leader 类、Teacher 类、Student 类公用继承 Person 类313 函数设计void TianJia()*添加功能函数可以对人员的信息进行添加,能
16、够防止重复编号的添加void ChaXun()*查询功能函数可按照编号或姓名进行人员信息的查询void BianJi()*编辑功能函数可对人员的信息进行修改void TongJi()*统计功能函数可统计人员的相关信息void ShanChu()*删除功能函数查询到需要删除的人员后,执行删除命令,可将其删除void BaoCun()*保存功能函数将人员信息保存在文本文档中void JiaZai()*加载功能函数将人员信息由文本文档加载到内存中int main()*主函数调用各个功能函数以及菜单函数北华航天工业学院课程设计报告1532 结构设计321 系统流程图main()主函数TianJia()
17、添加功能函数ChaXun()查询功能函数BianJi()编辑功能函数TongJi()统 计功 能 函 数ShanChu()功能 函 数BaoCun()保 存功 能 函 数JiaZai()加 载功 能 函 数图 3-1 系统流程图322 界面设计(1)进入程序界面图 3-2 进入程序的欢迎界面(2)选择操作方式界面图 3-3 选择操作方式时的界面北华航天工业学院课程设计报告16(3)选择操作对象界面图 3-4 选择操作对象时的界面(4)退出程序界面图 3-5 退出程序时的界面第四章 系统实现41 类实现定义基类 Person 类,然后由基类派生出 Leader(领导)类、Teacher (教师)
18、类、Student(学生)类。在各类中定义相关成员函数和数据成员图 4-1 类结构图Person类Leader类 Teacher类 Student类北华航天工业学院课程设计报告1742 函数实现421 高校人员信息的添加功能的实现该功能用于对高校人员信息进行添加(1)该函数分别调用(2) (3) (4)中的函数,分别实现对领导、教师、学生信息的添加void TianJia()*添加功能函数int i=1;while(i)int choice;Menu();cinchoice;switch(choice)case 1:LTianJia();break;/添加领导信息case 2:TTianJia
19、();break;/添加教师信息case 3:STianJia();break;/添加学生信息case 4:i=0;break;default:coutchoice;switch(choice)case 1:LChaXun();break;/查询领导信息case 2:TChaXun();break;/查询教师信息case 3:SChaXun();break;/查询学生信息case 4:i=0;break;default:coutn;for(int i=0;ina_s;for(int j=0;jw;switch(w)case 1:LChaXun_num();break;case 2:LChaXu
20、n_nam();break;default:北华航天工业学院课程设计报告21coutn;for(int i=0;ina_s;for(int j=0;jw;switch(w)case 1:TChaXun_num();break;case 2:TChaXun_nam();break;default:coutn;for(int i=0;ina_s;for(int j=0;jw;switch(w)case 1:北华航天工业学院课程设计报告24SChaXun_num();break;case 2:SChaXun_nam();break;default:coutchoice;switch(choice)c
21、ase 1:LBianJi();break;/编辑领导信息case 2:TBianJi();break;/编辑教师信息case 3:SBianJi();break;/编辑学生信息case 4:i=0;break;default:北华航天工业学院课程设计报告25coutn;for(int i=0;in;for(int i=0;in;for(int i=0;ichoice;switch(choice)case 1:LTongJi();break;/统计领导信息case 2:TTongJi();break;/统计教师信息case 3:STongJi();break;/统计学生信息case 4:i=0
22、;break;default:coutchoice;switch(choice)北华航天工业学院课程设计报告29case 1:LShanChu();break;/删除领导信息case 2:TShanChu();break;/删除教师信息case 3:SShanChu();break;/删除学生信息case 4:i=0;break;default:coutn;for(int i=0;in;for(int i=0;in;for(int i=0;iScount;i+)if(stui.num=n) for(;iScount;i+)stui=stui+1;Scount-;cout“succeed in deleting“endl;