高校人员信息管理系统课设报告.doc_第1页
高校人员信息管理系统课设报告.doc_第2页
高校人员信息管理系统课设报告.doc_第3页
高校人员信息管理系统课设报告.doc_第4页
高校人员信息管理系统课设报告.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

. . . . .北 华 航 天 工 业 学 院基于C+的面向对象程序设计综合实践课程设计报告报告题目: 高校人员信息管理系统 作者所在系部: 计算机科学与工程系 作者所在专业: 网络工程 作者所在班级: B09521 作 者 姓 名 : * 指导教师姓名 刘海燕 完 成 时 间 : 2010年6月24日 北华航天工业学院教务处制摘 要在当代教育体制下,全国各地高校迅猛发展,面对日益庞大的高校教育科研队伍和呈几何级上升的学生队伍,原有的基于手工管理的模式严重影响了高校教育管理的质量和效率。随着计算机技术发展的成熟应用,根据学校教育行业的特点,推出了一套完备、实用、先进的高校人员信息管理系统,应用先进的高校人员信息管理系统使学校更方便有效的实现了人员信息的管理。本文利用Visual C+6.0编写程序,实现了用户对高校人员的领导信息管理、教师信息管理、学生信息管理、添加人员、查询、编辑、统计、删除、读取及保存操作,实现了学校人员信息管理的智能化及自动化,很大程度上方便了学校的管理,提高了学校教育管理的质量和效率。编程者综合各方面因素,从学校教育的特点及方便学校对人员信息的管理这样一个总体的方向出发,考虑了当前手工管理的弊端,结合当今先进的c+面向对象程序设计与计算机技术逐步解决这一弊端,参考与学习了其它完善的管理系统,完成了一套方便实用的高校人员信息管理系统。本系统主要有九个功能模块:管理系统、增加系统、查询系统、编辑系统、统计系统、删除系统、显示系统、保存系统、读取系统。已经过全面的系统测试,能够较很好的运行,达到了预期的效果。关键词:人员信息管理 类 系统设计 存盘 读取目 录摘要第1章 绪 论11.1 课程设计的目的11.2 课程设计的背景和意义11.1.1 课程设计的背景11.1.2 课程设计的意义11.3 课程设计环境1第2章 需求分析 32.1 问题描述32.2 功能描述32.2.1 基本功能32.2.2 扩展功能32.3 问题的解决方案3第3章 系统设计53.1 数据设计53.1.1 类设计53.1.2 类之间的关系53.1.3 函数设计53.2 结构设计73.2.1 系统流程图73.2.2 界面设计7第4章 系统实现94.1 类实现94.1.1 人类94.1.2 领导类94.1.3教师类94.1.4 学生类104.1.5 管理类104.1.6 管理系统类114.2 函数实现114.1.1 管理类114.1.2 管理系统类274.3 主函数实现29第5章 系统测试305.1 模块测试305.1.1 添加功能305.1.2 查询功能315.1.3 编辑功能325.1.4 统计功能325.1.5 删除功能335.1.6 显示功能335.1.7 保存功能345.1.8 读取功能345.2 课程设计中遇到的问题35总结36致谢37参考文献38 学习好帮手第1章 绪论1.1 课程设计的目的(1)体会面向对象编程的分格和特点,加深对通过类的对象启动程序的理解。(2)通过设计的综合训练,培养实际分析问题、编程和动手能力。(3)要求学生能够熟练掌握C+面向对象程序设计及C语言的基本知识和技能。1.2 课程设计的背景和意义1.2.1课程设计的背景1. 理论研究基础(1)C+语言的基本知识和技能,如:类与对象,输入/输出流,文本文件的建立和保存;(2)C+面向对象程序设计的基本思路和方法。2. 技术层面的支持应用了Visual C+6.0 环境,它提供的面向对象机制,能够兼容到应用理论和编程实践,它提供的控制台应用程序对学习和掌握C+内容非常有利,利用Visual C+进行多方面的程序开发是比较容易的,C+内容既系统化又与Visual C+相互联系,此信息管理系统就是充分应用C+面向对象程序设计的基本思路和知识在Visual C+环境下实现的高校人员信息管理系统。1.2.2 课程设计的意义掌握C+编程语言及体会面向对象编程思想的风格,联系实践综合应用能力,积累编程经验,帮助学生完成从了解、熟练到深入理解的学习过程。1.3 课程设计环境Visual C+6.0是微软公司推出的Visual Studio系列可视化开发工具家族中的一员,它引开了MFC类库应用程序框架结构和一些实用开发工具,降低了编码的复杂性,能够迅速开发出Windows应用程序,是微软公司推出的目前极为广泛的基于Windows平台的可视化编程环境。Visual C+除包括开发程序所必需的编辑器,C+编译器,连接程序,调试程序外,还包括许多为开发Windows系统下的Visual C+程序而设计的各式各样的工具,Visual C+中的集成开发环境称为Developer Stadio,由于Visual C+6.0的功能强大,灵活性好,完全扩展,以及具有强大的Internet支持,成为目前作为流行的C+语言集成开发环境。第2章 需求分析2.1 问题描述一所高校在运营中总是面对大量的人员以及人员的信息,因此,需要通过一个管理系统,实现对人员的基本信息的管理,及时了解人员信息的变更,从而有利于提高管理效率。是高校更好的运营和发展2.2 功能要求1基本功能对各类人员信息完成的基本功能有:(1)添加功能:程序能够添加相应人员的信息;(2)查询功能:能根据编号或姓名进行查询,并显示相应的人员信息;(3)编辑功能:根据查询结果对相应人员的进行修改;(4)统计功能:能根据多种参数进行人员的统计(如性别、专业、政治面貌等);(5)删除功能:根据查找结果,完成人员信息记录的删除;(6)显示功能:对已有的人员信息进行显示;(7)保存功能:将对高校人员信息进行的添加、删除、修改结果保存到文本文件中。(8)读取功能:对文本文件中的人员信息进行读取;(9)退出功能:退出当前人员信息的控制界面;2扩展功能学生在完成本次课程设计的基本要求后,进一步完善程序,从如下几个方面加以考虑:(1)添加人员记录时,考虑各种数据的有效性;(2)组合查询功能的实现;(3)编辑数据时,注意操作的方便;(4)删除数据时,考虑删除操作的方便。2.3 问题的解决方案(1)根据分析,建立对高校人员管理系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义与功能; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告。第3章 系统设计3.1 数据设计3.1.1 类设计根据人员管理过程中对人员信息的需要设计了人类、领导类、教师类、学生类、管理类以及管理系统类。人类数据成员数据有:number编号,name姓名,sex性别,age年龄;成员函数有:void input(); void output();由人类派生出领导类、教师类、学生类。领导类新增加数据成员有:department系别,position职称;成员函数有:void input_leader(); void output_leader();教师类新增加的数据成员有:positon职称,time任职时间,specially专业;成员函数有:void input_teacher();void output_teacher();学生类新增加的数据成员有:grade班级,dormitory宿舍;成员函数有:void input_student(); void output_student();管理类同时继承了领导类、教师类、学生类,其定义了三个数据成员:leamax、teamax、stumax这三个数组分别用来存储领导、教师、学生的人员信息;九个成员函数:void add()添加函数;void research()查询函数;void edit()编辑函数;void tongji();统计函数;void Delete()删除函数void show()显示函数;void save()保存函数;int read_number()读取函数;manger()构造函数;管理系统类包含两个成员函数:void xuanze(int choice);void xuanze1()。进行对系统的操作。3.1.2 类之间的关系人类派生出领导类、教师类、学生类;管理类同时继承了领导类、教师类、学生类;管理系统类继承了管理类。可以通过管理类实现系统的各个功能,通过管理系统类进行对界面的操作,从而实现高校人员信息管理系统。3.1.3 函数设计(1)在人类、领导类、教师类、学生类中分别定义了输入及输出函数,输入信息函数用于人员信息的输入;void input(); 输出函数用于人员信息的输出;void output();主要算法是应用几个“cin”语句“cout”语句。(2)管理类中的增加函数:void add();用来对人员的增加,主要算法是通过调用各个类中的输入函数来实现;(3)管理类中的查询函数:void research();用来对人员进行查询,通过根据编号查询和根据姓名查询实现,查询成功后通过调用各个类中的输出函数进行显示;(4)管理类中的编辑函数: void edit(); 用来对人员信息进行修改,主要算法是先通过调用查询函数对用户进行查找,查找成功后通过对该用户信息重新赋值对其进行编辑;(5)管理类中的统计函数:void tongji();用来对人员数量的统计, 主要算法是通过控制人员变化的变量来实现人员的统计;(6)管理类中的删除函数:void Delete();用来删除人员,主要算法是先通过调用查询函数进行对用户的查找,查找成功后,通过对象的赋值依次,将对象数组中的后一项赋值给前一项来实现人员的删除,(7)管理类中的显示函数:void show();用来显示人员的信息,显示函数通过调用各个类中的输出函数进行对用户信息的显示; (8)管理类中的保存函数:void save();用来保存人员的数量和信息,通过二进制文件形式存在D盘中来实现保存功能; (9)管理类中的读取函数:int read_number();用来读取人员的数量和信息,通过从D盘中提取信息来实现函数的读取功能;(10)在管理系统类中定义了void xuanze(int choice)函数:通过switch语句用来对主菜单的操作;(11)在管理系统类中void xuanze1()函数:用来实现高校人员信息管理系统的界面;所有的这些函数共同完成高校人员信息管理系统的主要操作。3.2 结构设计3.2.1 系统流程图系统流程图见(图3-1) 行政人员类实验员类教师兼行政人员类教师类人类 图3-1系统流程图3.2.2 界面设计主菜单主要有九个选项:1:添加,2:查询,3:编辑,4:统计,5:删除,6;显示,7:保存,8;读取,9:退出。其中每个功能进入后设有子菜单,有四个选项:1:领导,2:教师,3:学生,4退出。修改读者,5退出读者管理。主要用到了switch-case语句,if-else语句及for循环语句。截图如下: 如下图 3-2 主菜单界面如下图 3-3子菜单界面第4章 系统实现4.1 类实现4.1.1人类class person /人类public:int number; /编号 char name50; /姓名 char sex; /性别int age; /年龄void input();void output();4.1.2领导类class leader:public person /领导类public:char department50; /系别char position50; /职称 void input_leader(); void output_leader();4.1.3教师类class teacher:public person /教师类public:char position50; /职称int time; /任职时间char specially50; /专业 void input_teacher();void output_teacher();4.1.4学生类class student:public person /学生类public:int grade;/班级int dormitory;/宿舍void input_student();void output_student();4.1.5管理类class manger:public leader,public teacher,public student /管理类 分别继承了领导,教师,学生类public:leader leamax; teacher teamax; student stumax;int l;int t;int s;manger()/管理构造函数l=0;t=0;s=0;void add(); /添加函数 void research(); /查询函数 void edit(); /编辑函数void tongji();/统计函数void Delete();/删除函数void show(); /显示函数void save();/保存函数int read_number();/读取函数;4.1.6管理系统类class mangersystem:public manger /管理系统类public:void xuanze(int choice);void xuanze1(); ;4.2 函数实现4.1.1 管理类(1)添加函数实现添加功能通过调用各个类中的输入来实现 void manger:add()/增加函数int i,j,k;int shuzi;leader l1;teacher t1;student s1;cout=endl;cout请选择数字 1:领导 2:教师 3:学生 0:退出endl;cout=shuzi;switch(shuzi)case 1:cout增加领导endl;int num_l;cout输入编号:num_l;for(i=0;il;i+)if(num_l=leai.number) cout该人员已存在 请重新输入max)cout领导人员已满endl;else l+;break;case 2:cout增加教师endl;int num_t;cout输入编号num_t;for(j=0;jt;j+)if(num_t=teaj.number) cout该人员已存在 请重新输入max)cout教师人员已满endl;else t+;break; case 3:cout增加学生endl;int num_s;cout输入编号endl;for(k=0;kt;k+)if(num_s=stuk.number) cout该人员已存在 请重新输入max)cout学生人员已满endl;else s+;break;case 0:cout退出增加功能endl;break;(2)查询函数通过根据编号查询和根据姓名查询实现,查询成功后通过调用各个类中的输出函数进行显示void manger:research()/查询函数 int i,x; int shuzi,xuanze; char name150; cout=endl; cout请选择数字 1:领导 2:教师 3:学生 0:退出endl; cout=shuzi; switch(shuzi) case 1:cout请输入1:按编号查询2:按姓名查询xuanze; if(xuanze=1) cout请输入要查询人员的编号:x;for(i=0;il;i+)if(leai.number=x)cout领导中存在此人endl;leai.output_leader();else cout领导中不存在此人endl; else if(xuanze=2) cout请输入要查询人员的姓名:name1;for(i=0;il;i+)if(strcmp(,name1)=0)cout领导中存在此人endl;leai.output_leader();else cout领导中不存在此人endl; else cout输入错误!请选择1或2endl; break; case 2:cout请输入1:按编号查询2:按姓名查询xuanze; if(xuanze=1) cout请输入要查询人员的编号:x;for(i=0;it;i+)if(teai.number=x)cout教师中存在此人endl;teai.output_teacher();else cout教师中不存在此人endl; else if(xuanze=2) cout请输入要查询人员的姓名:name1;for(i=0;il;i+)if(strcmp(,name1)=0)cout教师中存在此人endl;teai.output_teacher();else cout教师中不存在此人endl; else cout输入错误!请选择1或2endl; break; case 3:cout请输入1:按编号查询2:按姓名查询xuanze;if(xuanze=1)cout请输入要查询人员的编号:x;for(i=0;is;i+)if(stui.number=x) cout学生中存在此人endl;stui.output_student();else cout学生中不存在此人endl;else if(xuanze=2) cout请输入要查询人员的姓名:name1;for(i=0;il;i+)if(strcmp(,name1)=0)cout学生中存在此人endl;stui.output_student();else cout学生中不存在此人endl; else cout输入错误!请选择1或2endl; break; case 0: cout退出查询功能endl; break; (3)编辑函数先通过调用查询函数对用户进行查找,查找成功后通过对该用户信息重新赋值对其进行编辑void manger:edit()/编辑函数 int i,j,k,shuzi; int h;/编号cout=endl;cout请选择数字 1:领导 2:教师 3:学生 0:退出endl;cout=shuzi;switch(shuzi)case 1:cout对领导进行编辑endl;cout请输入您要编辑的用户的编号:h; for(i=0;il;i+) if(leai.number=h) cout领导中存在此人endl;cout*进行用户信息的编辑*endl;;coutleah-1.sex;coutleah-1.age;coutleah-1.department;coutleah-1.position;cout恭喜:领导信息编辑成功!endl; else cout您要编辑的用户不存在!endl; break;case 2:cout对教师进行编辑endl; cout请输入您要编辑的用户的编号:h;for(j=0;jt;j+) if(teaj.number=h) cout*进行用户信息的编辑*endl;;coutteah-1.sex;coutteah-1.age;coutteah-1.position;coutteah-1.time;cout用户的新专业teah-1.specially;cout恭喜:教师信息编辑成功!endl;else cout您要编辑的用户不存在!endl;break;case 3:cout对学生进行编辑endl; cout请输入您要编辑的用户的编号:h; for(k=0;ks;k+) if(stuk.number=h) cout*进行用户信息的编辑*endl;; /通过对该用户信息重新赋值对其进行编辑coutteah-1.sex;coutteah-1.age;coutteah-1.position;coutteah-1.time;cout用户的新专业teah-1.specially;cout恭喜:学生信息编辑成功!endl;else cout您要编辑的用户不存在!endl; break;case 0: cout退出编辑功能endl; break;(4)统计函数实现人员数量的统计功能void manger:tongji()/统计函数cout领导总人数为:lendl;cout教师总人数为:tendl;cout学生总人数为:sendl;(5)删除函数删除函数先通过调用查询函数进行对用户的查找,查找成功后,通过对象的赋值依次,将对象数组中的后一项赋值给前一项来实现人员的删除void manger:Delete()/删除函数int i,j,shuzi; string answer;cout=endl;cout请选择数字 1:领导 2:教师 3:学生 0:退出endl;cout=shuzi;switch(shuzi)case 1:cout请输入要删除领导的编号:j;for(i=0;il;i+)if(leai.number=j)cout领导中存在此人endl;cout确实要删除此人吗?endl; cout选择y 或 nanswer;if(answer=y)for(j=i;j=l;j+)leaj-1=leaj; l-;cout恭喜:删除成功endl;else cout领导中不存在此人 删除失败endl;break;case 2:cout请输入要删除教师的编号:j;for(i=0;it;i+)if(teai.number=j)cout确实要删除此人吗? 选择y 或 nanswer;if(answer=y)for(j=i;j=t;j+)teaj-1=teaj; t-;cout恭喜删除成功endl;else cout教师中不存在此人 删除失败endl;break; case 3:cout请输入要删除学生的编号:j;for(i=0;is;i+)if(stui.number=j)cout确实要删除此人吗? 选择y 或 nanswer;if(answer=y)for(j=i;j=s;j+)stuj-1=stuj; t-;cout恭喜删除成功endl;else cout学生中不存在此人 删除失败endl;break;case 0: cout退出删除功能endl; break;(6)显示函数通过各个类中的输出函数进行对用户信息的显示 void manger:show()/显示函数 int i,j,k,shuzi; cout=endl;cout请选择数字 1:领导 2:教师 3:学生 0:退出endl;cout=shuzi;switch(shuzi)case 1:cout显示领导的信息:endl; for( i=0;il;i+)cout*endl; leai.output_leader();break;case 2:cout显示教师的信息:endl; for(j=0;jt;j+)cout*endl; teaj.output_teacher();break; case 3:cout显示学生的信息:endl; for( k=0;ks;k+)cout*endl; stuk.output_student();break;case 0: cout*退出显示功能!*endl; break;(7)保存函数通过保存人员数量和保存人员信息来实现的,通过二进制文件形式存在D盘中void manger:save()/保存函数int shu;cout=endl;cout请选择数字 1:领导 2:教师 3:学生 0:退出endl;cout=shu;switch(shu)case 1:preserve_lea(l);preserve1_lea();cout恭喜:领导保存成功!endl;break;case 2:preserve_tea(l);preserve1_tea();cout 恭喜:教师保存成功endl;break;case 3:preserve_stu(l);preserve1_stu();cout 恭喜:学生保存成功! endl;break;case 0: cout退出保存功能endl; break;void manger:preserve_lea(int a) /保存领导函数,保存数量ofstream outfile(d:leader_number.txt,ios:out);outfilel;outfile.close();void manger:preserve1_lea()/保存领导信息ofstream outfile(d:leader.txt,ios:out);for(int k=0;kl;k+)outfile.write(char *)&leak,sizeof(leak);outfile.close();void manger:preserve_tea(int a) /保存教师函数,保存数量ofstream outfile(d:teacher_number.txt,ios:out);outfilet;outfile.close();void manger:preserve1_tea()/保存教师信息ofstream outfile(d:teacher.txt,ios:out);for(int k=0;kt;k+)outfile.write(char *)&teak,sizeof(teak);outfile.close();void manger:preserve_stu(int a) /保存学生函数,保存数量ofstream outfile(d:student_number.txt,ios:out);outfiles;outfile.close();void manger:preserve1_stu()/保存学生信息ofstream outfile(d:student.txt,ios:out);for(int k=0;ks;k+)

温馨提示

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

评论

0/150

提交评论