首页 高校人员信息管理系统

高校人员信息管理系统

举报
开通vip

高校人员信息管理系统课程设计报告 ——高校人员信息管理系统 目录 1 绪论    3 1.1 课程设计目的    3 1.2 课程设计的背景和意义    3 1.2.1 课程设计的背景    3 1.2.2 课程设计的意义    3 1.3 课程设计环境    3 2 需求分析    4 2.1 问题描述    4 2.2 功能要求    4 2.3 解决步骤    5 3 系统设计     5 3.1 数据设计    5 3.1.1 类设计    5 3.1.2 类之间的关系    6 3.1.3 函数设计    6 3.2 结构...

高校人员信息管理系统
课程设计 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 ——高校人员信息管理系统 目录 1 绪论    3 1.1 课程设计目的    3 1.2 课程设计的背景和意义    3 1.2.1 课程设计的背景    3 1.2.2 课程设计的意义    3 1.3 课程设计环境    3 2 需求分析    4 2.1 问题描述    4 2.2 功能要求    4 2.3 解决步骤    5 3 系统设计     5 3.1 数据设计    5 3.1.1 类设计    5 3.1.2 类之间的关系    6 3.1.3 函数设计    6 3.2 结构设计    6 3.2.1类之间的结构关系    6 3.2.2系统流程    7 3.2.3界面设计    8 4 系统实现    9 4.1 类实现    9 4.2 函数实现    9 4.3 主函数实现    11 5 系统调试    12 5.1 模块测试    12 5.2 遇到的问题    12 6 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf     13 1 绪论 1.1 课程设计目的 课程开设计是一种独立的课程形态,以解决问题为主。它密切学生与自然、与社会、与生活的联系,它是生活性课程;它强调以学生的经验、社会实际和社会需要的问题为核心,以有效地培养和发展学生解决问题的能力。因而,它又是一种经验型课程;它注重学生多样化的实践性学习形式。 本次课程设计的目的主要是让学生们学会自主解决问题,通过对问题的思考,得出问题的解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。还有检验和锻炼学生们一年以来C++课程学习的成果。进一步提升学生的水平、加深对所学课程的理解与应用能力。 1.2 课程设计的背景和意义 1.2.1 课程设计的背景 经过近一年的课程学习与平时的上机实践,期末考后有充足时间让同学们上机开发编写复杂一点的程序。 1.2.2 课程设计的意义 1.通过课程设计的综合训练,培养了学生分析解决实际问题和编程等实际动手能力。帮助了同学系统的掌握C++课程的主要内容。 2.通过详细的实例分析,循环渐进的描述,启发学生顺利的完成设计。课程设计将设计要求、需求分析、算法设计、编程和实例测试运行分开,为学生创造分析问题、独立思考的条件。 3.通过编写一个较长的程序,实现了对人员信息的管理,激发了学生学习编程的兴趣。 1.3 课程设计环境 软件环境:Microsoft Visual Studio 2012集成开发环境。 硬件环境:计算机学院机房,个人笔记本电脑。 2 需求分析 2.1 问题描述 某高校有四类员工:教师、实验员、行政人员,教师兼行政人员;共有的信息包括:编号、姓名、性别、年龄等。其中,教师还包含的信息有:所在系部、专业、职称;实验员还包含的信息由:所在实验室、职务;行政人员还包含的信息有:政治面貌、职称等。 2.2 功能要求 添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。 查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。 显示功能:可显示当前系统中所有记录,每条记录占据一行。 编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。 删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。 统计功能:能根据多种参数进行人员的统计。能统计四类人员数量以及总数,统计男、女员工的数量。 保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意。 读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。 2.3 解决步骤 问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; (2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告。 3 系统设计 3.1 数据设计 3.1.1 类设计 通过对问题描述地分析与观察,教师、实验员、行政人员、教师兼行政人员共同拥有信息:编号、姓名、性别、年龄等,从中可以抽象出一个基类(person)包含这些共同信息方便其他类的调用。而且有利于满足对编号要唯一的要求,不用在其他类中进行判定,直接在基类中判定。 接着可以定义通过添加不同的信息派生教师类( teacher)、实验员类(laborater)、行政人员类(adminer)、教师兼行政人员类(tea_ad)。 其中由于以后数据读写的需要所有数据都设为公有的。 3.1.2 类之间的关系 通过上一小节的叙述可以知道程序中共定义了五个类。 类之间的关系很明显,由基类(person)可以派生出三个类:教师类( teacher)、实验员类(laborater)、行政人员类(adminer),再由教师类和行政人员类共同派生出教师兼行政人员类(tea_ad)。但是为了让程序更加容易实现与更加简洁,实际上程序中的教师兼行政人员类并不是由教师类和行政人员类共同派生出,而是由基类直接派生出。 3.1.3 函数设计 程序中涉及到的函数众多,主要分为类中的函数、以及类外的功能函数。 类中的函数又有基类的,派生类的。 基类:构造函数、编辑编号函数、基类编辑数据函数、基类显示函数。 派生类:构造函数、派生类编辑数据函数、派生类显示函数。 类外的功能函数可分为子功能函数、主功能函数。 子功能函数:按编号查找函数、按姓名查找函数、按编号删除函数、按姓名删除函数、统计男性数量函数。 主功能函数:添加函数、显示函数、查询函数、修改函数、删除函数、统计函数、保存函数、读取函数。 3.2 结构设计 3.2.1类之间的结构关系 3.2.2系统流程 启动程序,程序读入系统文件,若系统文件读取失败则提示创建系统文件并退出系统。读入成功后,则出现主界面即功能选择界面,有添加、显示、编辑、查询、删除、统计供程序使用者根据提示进行选择,还有退出系统选项。若输入错误则提示错误。 若选择退出,则系统自动调用保存函数,保存程序当前运行状态下系统内的数据,结束程序。 若选择添加功能,则运行添加函数,进入添加功能界面。可以依据提示选择添加人员类型,若输入错误则提示错误。选择成功调用对应类的添加函数。接着调用编辑编号函数,若出现输入的编号与系统现有的编号出现冲突即重复则终止输入、提示选择返回到添加功能界面还是终止添加返回主界面,其中系统容量为4000若超出容量则提示数据已满;再输入要添加人员的信息,输入完毕则提示返回到添加功能界面还是终止添加返回主界面。 若选择显示则运行显示函数,在屏幕输出所有信息并自行返回到主界面。 若选择编辑则运行编辑函数,请求输入一个编号用于识别要修改的人员,若存在这一人员则直接进行编辑,编辑完成后直接返回主界面;否则提示不存在这一人员并自行返回主界面。 若选择查询则运行查询主函数,依据用户输入选择调用按编号查找函数或按姓名查找函数进行查找,查找完毕后直接返回主界面。 若选择删除则运行删除主函数,依据用户输入选择调用按编号删除函数或按姓名查找删除进行查找,删除完毕后直接返回主界面;若所要删除信息不存在则提示不存在并返回主界面。 若选择统计则运行统计主函数,接着调用统计男性数量函数,统计男性数量并返回男性数量的值,接着输出四类人员数量以及总数,男、女员工的数量并返回主界面。 3.2.3界面设计 界面设计以简洁,清晰,易懂为基本原则。 主界面大致效果如下 *************************** 1.添加    2.查询  3.显示 4.编辑    5.删除  6.统计  *************************** 按9退出,数据自动保存 选择: 其它提示性界面因为选项较少而且多为少量文字提示输入并未进行较为细化的设计。主要是让提示的文字与输入的信息尽量显示在同一行,使使用者能更加直观了解自己输入的信息是要干什么的、有助于提升页面的简洁性使界面看着不会有混乱的感觉。 输出界面则大多为单行输出,其中对一部分界面进行了较大优化使之看着不会感觉唐突。如统计结果的输出界面效果大致如下 人员总数: 7  教师: 1  实验员: 2  行政人员:  3  教师兼行政人员: 1 男: 2  女: 5 4 系统实现 4.1 类实现 类的实现并不会有较大困难,主要有函数体为空的构造函数,用于向系统请求为创建的对象数组分配内存,每个类都有自己的编辑函数,用于对对象的数据进行修改,派生类的编辑函数调用了基类中的修改数据函数。至于派生类中的添加函数则是先调用基类的编辑编号函数,若返回值为真继续调用本类的修改数据函数,否返回空结束函数。 4.2 函数实现 首先简要说明类内函数的实现。 基类的编辑编号函数,在程序开头声明了一个大小为4000的整型数组用来存储程序录入的编号和一个整型变量用来作数组下标并赋初值为 -1,每次运行该函数时,先判断数组下标是否满足小于4000,不满足提醒已满并返回假;若满足判断是否与现有的编号重复,若重复提醒重复并返回假,否将数组下标增 1,向数组中存入该编号并修改当前对象的编号为该编号,返回真。 类内的编辑数据函数则是提示用户一个一个输入除编号外的所有数据,直接修改当前对象的数据,返回空。 类内的添加函数,先调用基类的编辑编号函数 ,若返回假,则返回假;否调用该类的编辑数据函数 ,返回真。 类内的显示函数,在输出数据前先输出文字说明输出数据所 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示的信息类型,输出完毕后返回空。 函数实现主要是功能函数的实现。功能函数的实现又以创建的对象数组为基础。以添加函数为例,表面上是添加一个对象,实际上是对数组中的数据成员进行修改。在类定义完后分别声明了大小为4000的四个类的对象数组及其初始值为 -1的整型变量下标。(如teacher Tea[4000];int tea=-1;) 下面的函数将用到大量for循环语句,特附部分for循环语句如下    for(int a=0;a<=tea;a++) Tea[a].display (); 添加函数,用while语句控制循环,循环体内使用switch语句来选择需要调用的对象的添加函数,其中数组下标先自增 1,如果添加函数返回假,下标自减 1 。最后中断switch语句,再次运行循环体,直到用户选择退出添加,终止循环,返回空。 显示函数,先判断是否已存入数据,否返回空,是用四个for循环依次调用对象数组中对象的显示函数,循环结束以添加函数中的被改变的数组下标为结束依据。结束后返回空。 查询函数,先确定调用哪个子函数。若调用按编号查询函数,进入子函数后,请求输入一个编号,先判断是否已存入数据,否返回空,是用四个for循环依次判断对象数组中对象的编号与输入的编号是否相等,若相等调用该对象显示函数,循环结束以添加函数中的被改变的数组下标为结束依据,之后结束查询函数。若调用按姓名查询函数,和按编号查询函数类似先请求输入一个名字,再进行判断输出,结束查询函数。 编辑函数,先请求输入一个编号,先判断是否已存入数据,否返回空,是用四个for循环依次判断对象数组中对象的编号与输入的编号是否相等,若相等调用该对象编辑函数并返回空结束编辑函数,循环结束以添加函数中被改变的数组下标为结束依据,之后结束编辑函数。 删除函数,先确定调用哪个子函数。若调用按编号删除函数,进入子函数后,请求输入一个编号,先判断是否已存入数据,否返回空,是用四个for循环依次判断对象数组中对象的编号与输入的编号是否相等,若相等将下标最大的对象赋值给当前对象,然后下标变量自减 1,编号数组也用for循环查找出该编号,将当前最大下标赋值给当前编号,然后下标变量自减 1。最后循环结束以添加函数中的被改变的数组下标为结束依据,之后结束删除函数。若调用按姓名删除函数,和按编号函数删除类似先请求输入一个名字,再进行判断赋值自减,结束删除函数。 统计函数,进入函数后先调用统计男性数量函数 ,该子函数先创建一个初值为 0的整型变量,接着用for循环语句将存储性别的数据与男性标识一一比对,若为男性则变量自增 1,最后返回变量的值。主函数获取函数返回值并保存,接着结合文字输出说明输出编号数组和各类对象数组下标加 1后的值,再输出男性数量函数返回值和编号数组下标与该返回值之差加 1后的值,结束函数。 保存函数,打开文件成功后,将文件清空,用for循环将当前系统内的对象依次输出到文件中,其中每个对象用相应的类名进行标记后再一起输入,关闭文件。 读取函数,打开文件成功后,将文件中的数据识别完类名、去掉标记后用for循环依次输入到当前系统,将数据存入到对象数组和编号数组中,结束关闭文件。 4.3 主函数实现 主函数先调用读取函数,读入系统文件内的数据,再用while语句控制循环,循环体内使用switch语句来选择需要调用的功能函数,选择退出时调用保存函数,将当前数据存入系统文件并结束循环,结束主函数。 5 系统调试 5.1 模块测试 对各个功能函数逐一调试排查解决遇到的错误。 5.2 遇到的问题 问题主要集中在添加功能函数。 开始时的添加函数为了实现连续添加而不返回到主界面,采用的是嵌套执行 ,在运行完一次添加后可以由用户选择是要结束还是继续运行,如果选择继续运行则再运行一次添加函数,否则返回空,结束添加函数。但采用这种结构时,因为是嵌套执行,每运行完一次添加函数都返回空,如果连续添加几次就会发现屏幕输出时由于结束前要输出换行,添加越多屏幕输出的空行越多,还会运行多次编辑函数。出现较为严重的错误。 最后采用的解决方案是放弃嵌套结构 ,用while语句来控制循环,当选择继续添加的时候返回到while语句内的循环体的第一行语句;选择结束时改变语句的参数结束循环,返回空结束函数。 另外的问题是关于数组的下标。程序里面的很多函数都要涉及到对数组内信息处理。而处理的依据就是数组下标的值,数组下标在有些函数中需要更改,有的则只是需要下标作为参数,有几个函数在编写的时候未处理好下标的问题导致出现异常结果,经过多次排查与修改才最终解决问题。 还有一小部分问题出现在未规划好程序,编了很多行的构造函数,最后在函数编写的时候发现很多余有全部删掉将构造函数修改为空函数,只用来向系统申请内存。 6总结 此次编程可以说是开了个头,剩下的时间都在圆这个局。 自己并未仔细规划好整个程序,只是抱着应该就是这样的心理就开始编写程序,编写过程中开始出现各种问题,接着不断地回溯到之前自认为写好的程序中去修改,甚至整个函数删掉采用新的思路重新编写。特别是添加函数前前后后做了三次重大修改,几乎每天在编写程序的时候都要去动它几下。还有其实整个程序并不会太复杂,而自己却慢慢来,晃晃悠悠编了好几天才编写完。经常出现重复劳动,效率较低。有很多时间浪费在修改开头遗留下的问题。 有失就有得。这次时间跨度挺长,在编写过程中收获了不少经验。比如,事情其实并没有你想的那么复杂或者那么简单,关键在于自己真正动手去做这件事。编写程序的时候开始明白不应纠结于一两个点,该有全局意识,从大处着手才能有大收获。当然通过自己几天不断的调试程序以及和老师同学们的交流自己对于编译器和程序编写相比以前有了更深的认识 ,发现经过自己的思考和动手已经能实现一些简单的程序,感觉自己学的终于可以派上用场了,以后里应该再接再厉,深化应用自己学到的东西。 至于所开发的系统虽然经过修修补补已经满足题目的要求仍存在很多不足,如输入异常一直未解决,定义要输入数字的地方要是输入了字符屏幕就会一直跳,只能关闭窗口。 总之,这是一门值得认真学习参与的课程,只要参加了就多少能有一点自己的收获。
本文档为【高校人员信息管理系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_471618
暂无简介~
格式:doc
大小:43KB
软件:Word
页数:14
分类:工学
上传时间:2019-06-04
浏览量:94