c++高级程序设计课程设计高校人事管理系统.docx
《c++高级程序设计课程设计高校人事管理系统.docx》由会员分享,可在线阅读,更多相关《c++高级程序设计课程设计高校人事管理系统.docx(47页珍藏版)》请在冰点文库上搜索。
c++高级程序设计课程设计高校人事管理系统
课程设计
设计题目:
高级程序设计课程设计
-----高校人事管理系统
系别信息工程系班级
学生姓名学号
指导教师职称讲师讲师
起止日期:
2011年12月05日起——至2009年12月16日止
沈阳工程学院
课程设计成绩评定表
系(部):
信息工程系班级:
学生姓名:
指导教师评审意见
评价内容
具体要求
权重
评分
加权分
调研
论证
能独立查阅文献,收集资料;能制定课程设计方案和日程安排。
0.1
5
4
3
2
工作能力
态度
工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,
0.2
5
4
3
2
工作量
按期圆满完成规定的设计任务,工作量饱满,难度适宜。
0.2
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.5
5
4
3
2
指导教师评审成绩
(加权分合计乘以8)
分
加权分合计
指导教师签名:
年月日
评阅教师评审意见
评价内容
具体要求
权重
评分
加权分
查阅
文献
查阅文献有一定广泛性;有综合归纳资料的能力
0.2
5
4
3
2
工作量
工作量饱满,难度适中。
0.5
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.3
5
4
3
2
评阅教师评审成绩
(加权分合计乘以4)
分
加权分合计
评阅教师签名:
年月日
答辩小组评审意见
评价内容
具体要求
权重
评分
加权分
学生汇报
汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。
0.5
5
4
3
2
答辩
思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。
0.5
5
4
3
2
答辩小组评审成绩
(加权分合计乘以8)
分
加权分合计
答辩小组教师签名:
年月日
课程设计总评成绩
分
沈阳工程学院
课程设计任务书
课程设计题目:
系别信息工程系班级计本091
学生姓名学号
课程设计进行地点:
实训楼F606
任务下达时间:
2011年11月30日
起止日期:
2011年12月05日起——至2011年12月16日止
教研室主任年月日批准
一、课程设计的原始资料及依据
查阅有关资料,进一步理解面向对象程序设计的思想,并编写一个简单的windows系统。
通过本设计可以加深理解使用面向对象程序设计思想开发一个系统的方法,提高分析问题、解决问题和实际动手的能力。
二、课程设计主要内容及要求
设计内容:
(根据自己的任务填写内容)
设计要求:
(1)要求利用面向对象的方法完成系统的设计;
(2)要求在设计的过程中建立清晰的类层次,并画出类图;
(3)设计功能满足要求、易于操作的友好界面;
(4)界面中需有菜单、工具栏、状态栏;
(5)在系统的设计中,至少要用到面向对象的一种机制:
继承、多态等;
(6)在完成该题目时,小组人员进行详细的任务分工,并要在报告中体现出来。
三、对课程设计说明书撰写内容、格式、字数的要求
1.课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:
设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、参考文献等。
一般不应少于3000字。
2.在适当位置配合相应的实验原理图、功能模块图、算法流程图等图表进行说明。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
3.设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。
4.课程设计说明书手写或打印均可。
手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。
文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。
5.课程设计说明书装订顺序为:
封面、任务书、成绩评定表、目录、正文、参考文献。
四、设计完成后应提交成果的种类、数量、质量等方面的要求
1.完成“任务书”中指定的功能,运行结果正确。
2.课程设计说明书。
五、时间进度安排
顺序
阶段日期
计划完成内容
备注
1
第1天
进行设计准备,阅读资料,分析设计任务书,明确设计要求、内容和步骤
2
第2天
需求分析
3
第3天
概要设计
4
第4-5天
详细设计
5
第5—8天
编码、调试
6
第9-10天
程序答辩,撰写课程设计报告
六、主要参考资料(文献)
[1]郑莉董渊张瑞丰编着.《C++语言程序设计》(第4版).北京:
清华大学出版社.2010
[2]陈维兴,林小茶.《C++高级程序设计教程》.北京:
清华大学出版社
[3]谭浩强.《C++程序设计教程》.北京:
中国科学技术出版社
[4]王燕.《面向对象的理论与C++实践》.北京:
清华大学出版社
[5]马石安,魏文平.主编《VisualC++程序设计与应用教程》.北京:
清华大学出版社
[6]王育坚.主编《VisualC++面向对象编程教程》(第二版).北京:
清华大学出版
摘要
随着高等学校的快速发展,高校的规模越来越大,教职工的数量也越来越多,从而对高校的人事管理显得越来越重要。
高校人事管理系统就是一套辅助管理人员的系统,它能够方便、快捷的帮助管理人员管理整个高校的人员,有一个好的高校人事管理系统,能够很大程度上帮助高校管理好人事的变更。
计算机应用正沿着硬件和软件两条主线相互促进,不断发展。
如果说硬件是计算机的躯体,那么软件就是计算机的灵魂,软件和信息服务业将成为世界第一大产业。
VisualC++是一个功能强大的可视化软件开发工具,它不仅仅是一个C++编译器,还是一种基于Windows操作系统的集成开发环境。
VisualC++中源程序采用C/C++语言编写,它支持面向对象程序设计,利用VisualC++开发出来的软件具有稳定性好、可移植性强的特点。
设计的主要目的是提高实际操作能力,结合VisualC++开发环境进行Windows应用程序的开发,去解决各类实际问题。
在设计中,我们利用VisualC++开发了高校人事管理系统。
设计的功能主要有八项,添加员工信息、删除员工信息、修改以及查询员工信息、显示人员信息、统计人员信息、以及数据的装入与存盘,通过对文件的操作,更好的实现了信息的安全性。
功能的实现主要是利用对话框的方式来实现的,利用命令行窗口提供友好的交互界面,通过学习以及了解Windows操作系统的消息处理机制,完成了用户和对话框的交互。
这次设计的实践性强,对动手能力要求较高,必须在掌握基本理论和基本方法的基础上,相互沟通相互合作才能解决实际问题。
关键词:
高校人事管理系统添加查询删除修改显示统计装入存盘
第1章绪论
1.1课程设计的目的
课程设计是课程教学必不可缺的一个重要环节,可加深学生对该课程所学内容的进一步的了解与巩固,是将计算机课程与实际问题相连接的关键步骤。
此次程序设计综合运用所学知识解决实际问题,将课堂的书本知识有效的在程序中体现出来,让学生更理解了C++功能之强大,进一步让学生对面向对象的方法以及C++的编程思想有了较好了解和认识。
1.2课程设计的背景和意义
1.2.1课程设计的背景
本次课程设计,主要研究类的继承、抽象类、多态、基类以及对文件进行各项操作(如添加、修改、删除、查询、显示等)。
通过这次课程设计掌握面向对象的程序设计思路,着重掌握在C++中对文件进行查找、删除、修改等操作。
1.理论研究基础
(1)C++面向对象程序设计中类与对象的使用
(2)类的封装性和继承性。
(3)C++I/O流库的处理,二进制文件的创建与保存。
2.技术层面的支持
(1)定义基类与派生类,将数据成员与成员函数封装在类中。
(2)定义指向对象的指针,设计删除、查询、更改的算法。
(3)C++异常处理的功能与输入输出流。
1.2.2课程设计的意义
(1)通过课程设计的综合训练,培养了学生分析解决实际问题和编程等实际动手能力。
帮助了同学系统的掌握C++课程的主要内容。
(2)通过详细的实例分析,循环渐进的描述,启发学生顺利的完成设计。
课程设计将设计要求、需求分析、算法设计、编程和实例测试运行分开,为学生创造分析问题、独立思考的条件。
(3)通过编写一个较长的程序,实现了对人员信息的管理,激发了学生学习编程的兴趣。
1.3课程设计环境
在MicrosoftVisualC++6.0开发平台上编写程序源代码,修改,增加功能,通过编译、连接,直到完全无误,最终执行程序,反复输入新的数据进行验证并进一步完善。
第2章需求分析
2.1问题描述
某高校主要人员有:
在职人员(行政人员,教师,一般员工),退休人员,返聘人员和临时工。
现在需要存储这些人员的人事档案信息:
编号,姓名,性别,年龄,职务,职称,政治面貌,最高学历,任职时间,来院时间。
2.2功能要求
对各类人员信息完成的基本功能有:
1)添加删除功能:
能根据学院人事的变动情况,添加删除记录;
2)查询功能:
能根据编号和姓名进行查询;
3)编辑功能(高级):
根据查询对相应的记录进行修改,并存储;
4)统计功能:
能根据多种参数进行人员的统计(在职人数,党员人数,女工人数,高学历高职称人数);
5)保存功能:
能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。
人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1
2.3问题的解决方案
根据系统功能要求,可以将问题解决分为以下步骤:
1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
2)分析系统中的各个实体及它们之间的关系;
3)根据问题描述,设计系统的类层次;
4)完成类层次中各个类的描述;
5)完成类中各个成员函数的定义;
6)完成系统的应用模块;
7)功能调试;
8)完成系统总结报告。
第3章概要设计
3.1系统分析
3.1.1编写目的
为了提高高校管理人事的效率,方便高校管理人员了解员工各项信息,各高校需要通过高校人事管理软件来进行人事管理。
从该阶段开发正式进入软件的实际开发阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构。
在软件设计阶段主要是把一个软件需求转化为软件表示的过程,这种表示只是描绘出软件的总的概貌。
本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示。
3.1.2开发背景
a.待开发软件系统的名称:
高校人事管理系统
b.任务的提出者:
郑龙华、李明明、邱恒凤、
c.开发者:
郑龙华、李明明、邱恒凤、
d.用户:
国内各高校
3.1.3需求规定
1软件支持
本软件将在以下环境下编写完成:
操作系统:
WindowsXPprofessional
编程软件:
MicrosoftVisualC++6.0
2系统功能
运行系统之后,就可以对员工的信息进行添加、查询、修改、删除等操作。
3系统性能
(1)时间特性要求
系统的速度要在用户可接受的范围内,对资源实时搜索的速度可以有较低的要求。
(2)可靠性
系统要有较高的可靠性,可恢复性。
(3)灵活性
系统要有良好的接口,以适应增加员工信息录入功能的需求;员工信息的修改、删除、查询等功能。
3.1.4运行环境
1设备
普通pc机。
2支持软件
操作系统:
Windows98以上系统
3.2系统模块
3.2.1功能模块图
高校人事管理系统包括8个主要的功能模块,即添加人员模块、修改人员模块、删除人员模块、查找人员模块、统计人员模块、数据存盘级装入模块、显示信息模块。
高校人事管理系统模块图如图3-1所示。
图3-1药品销售管理系统模块图
3.2.2模块功能说明
1)添加人员功能
该系统中,高校管理人员应该对员工的基本档案信息进行记录存储,这样,在确定好高校人员对象后,才能正确的进行进一步操作动作,如在职人员(行政人员,教师,一般员工),退休人员,返聘人员和临时工.现在,需要存储这些人员的人事档案信息:
编号,姓名,性别,年龄,职务,职称,政治面貌,最高学历,任职时间,来院时间。
2)修改人员功能
高校管理人员可以通过员工的编号进行修改员工的信息。
3)删除人员功能
管理人员可使用该系统,对高校的人事变动进行相应的调整,删除员工信息。
4)查找功能
通过该系统,管理人员可以查询员工各项信息。
包括按编号查询和按姓名查询两种查询方式。
5)显示人员功能
通过该系统,高校管理人员可以清晰的查看高校员工的各项信息,如职务、姓名、编号、年龄等。
6)数据装入功能
系统可以在启动时,导入相应的人员信息;在退出的时候可以导出变化后的人员信息,并保存至硬盘上。
7)统计人员功能
统计模块功能可以根据多种参数进行人员的统计。
这里根据在职人数,党员人数,女工人数,高学历高职称人数四个对象进行统计。
8)数据存盘
在添加完人员资料后,为了保存所输入的信息,这时需要将数据存盘。
3.3接口设计
用户界面:
在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。
外观上也要做到合理化,考虑到用户多对WINDOW风格较熟悉,应尽量向这一方向靠拢。
3.3.1外部接口
本系统设有人机操作界面,考虑到操作简单,易于管理方面,主要硬件接口设备为PC,鼠标,键盘。
而软件接口主要以windows平台为基本平台。
3.3.2内部接口
见系统框图,各模块之间相互独立又彼此关联,主要通过函数调用实现各部分的连接。
3.4运行设计
3.4.1运行控制
软件运行时有较友好的界面,基本能够实现用户的数据处理要求。
3.4.2运行时间
系统的运行时间基本可以达到用户所提出的要求。
3.5维护设计
由于系统较小,没有外加维护模块,因为维护工作比较简单,仅靠数据库的一些基本维护措施即
第4章详细设计
4.1类的层次设计
4.1.1person类设计
定义一个person类,包含在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。
员工信息包括编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、来院时间。
类图如下所示。
图4-1“person”类图
4.1.2school类
定义一个school类,在里面实现数据的添加、删除、修改、查找、保存、统计、显示和退出。
类图如下图4-2所示。
图4-2“school”类图
4.2系统界面设计
当首次运行高校人事管理系统软件时会进入主界面。
系统主界面如下图4-3所以。
图4-3系统主界面
4.3添加与修改设计
4.3.1添加人员信息
进入主界面后,当输入“1”时便可进入添加员工信息的功能模块。
员工信息包括编号,姓名,性别,年龄,职务,职称,政治面貌,最高学历,任职时间,来院时间等基本信息。
添加人员功能界面如下图4-4所以。
图4-4添加人员功能图
4.3.2修改人员信息
修改员工信息,顾名思义,就是在已有员工信息的基础上,将错误的信息进行修该的一个模块。
系统界面如图4-5所示。
图4-5修改人员信息图
在输入要修改的编号之后,如果此编号已经存在,则会跳转到把相应的员工被添加后的全部信息显示出来的界面,在输入要修改的员工信息;如果职工号不存在,则提示“没有此人”,系统跳转到主界面。
4.4删除与查询设计
4.4.1删除人员信息
当高校人员发生变动时,原来的员工信息将不再需要,此时需将这类人员的信息删除。
所以系统必须具有此模块。
当在主菜单中选择删除功能模块对应的数字时,便可进入删除员工信息界面。
删除界面如下图4-6所示。
图4-6删除人员信息图
在删除界面中输入要修删除的员工编号,点击“Enter”按钮,如果该员工数据信息不存在,没有此信息的记录,将提示“要删除的人员不存在”。
如果存在,系统将会把相应编号的信息从盘中删除。
在界面中使用者可以看到提示信息“编号为此的成员已被删除”。
如下图4-7所示。
图4-7删除人员信息操作图
4.4.2查询人员信息
查询人员信息包括按姓名与按员工编号查找。
当输入“查询人员信息”相应的数字时,将进入查询功能。
当输入“按姓名查找”相应的数字时,在点Enter键。
在下面的文本框中必须输入要查找员工的姓名,否则,将在文件中查找不到此类信息。
同样,当选择按员工编号查找时,必须输入要查找的员工的编号。
查询界面如图4-8所示。
图4-8查询人员信息界面图
当用户输入正确的查找信息后,点击“Enter”,将通过文件查找并显示用户要查找的信息。
如下图4-9所示。
图4-9查找结果图
4.5显示与统计设计
4.5.1显示人员信息
当高校管理人员想看所有员工信息时,可以通过显示人员信息功能将全部人员信息显示出来。
在系统主界面输入“显示所有信息”相应的数字,就可以实现显示所有信息的功能。
显示界面如图4-10所示。
图4-10显示界面图
4.5.2统计人员信息
统计模块功能可以根据多种参数进行人员的统计。
这里根据在职人数,党员人数,女工人数,高学历高职称人数四个对象进行统计。
统计界面如图4-11所示。
图4-11统计界面图
当要按在职人数进行统计时,输入“在职人数”相应的数字,便可以进行按在职人数进行计。
如下图4-12所示。
图4-12统计在职人数图
如果要按党员人数进行统计时,输入“党员人数”相应的数字,便可以进行按党员人数进行计。
如下图4-13所示。
图4-13统计党员人数图
当要按女工人数进行统计时,在统计界面输入“女工人数”相应的数字,便可以进行按女工人数进行计。
如下图4-14所示。
图4-14统计女工人数图
如果想要按高学历高职称人数进行统计时,输入“高学历高职称人数”相应的数字,便可以进行按高学历高职称人数进行计。
统计界面如下图4-15所示。
图4-15统计高学历高职称人数图
4.6数据存盘与装入设计
4.6.1数据存盘
在增加完人员资料后,为了保存所输入的信息,这时需要将数据存盘。
在主界面中,点击“6.数据存盘”,点击完后,显示“保存数据已经完成”。
如下图4-16所示:
图4-16数据存盘图
4.6.2数据装入
在完成数据存盘后,信息将以TXT的格式记录在盘。
当重新进入主界面后,要查询到人员的信息,需要数据装入,点击“7.数据装入”,此时会显示“人员和相关数据已经装入,”如下图4-17所示:
图4-17数据装入图
再点击“4.查询人员信息”,就能显示。
如下图4-18所示:
图4-18数据装入后查询图
第5章代码与调试
5.1系统主菜单
5.1.1主菜单界面部分代码
创建主菜单界面。
#include
#include
#include
#include
#include"person.h"
#include"School.h"
voidmain()
{
Schoolobj;
intc;
do
{
//选择界面
cout<<"\t\t高校人事管理系统"<cout<<"\t1.增加人员资料"<cout<<"\t2.删除人员信息"<cout<<"\t3.修改人员信息"<cout<<"\t4.查询人员信息"<cout<<"\t5.统计人员信息"<cout<<"\t6.数据存盘"<cout<<"\t7.数据装入"<cout<<"\t8.显示所有信息"<cout<<"\t9--退出"<cout<<"请选择(1-9):
";
cin>>c;
switch(c)
{
case1:
obj.add();break;//调用添加函数,添加爱人员
case2:
obj.removedatnum();break;//调用删除函数,删除人员
case3:
obj.upperson();break;//调用修改函数,修改人员信息
//按选定参数查询
case4:
{
intnm;
cout<<"1-通过编号。
2-通过姓名。
请选择:
";
cin>>nm;
if(nm==1)
obj.find1();
else
obj.find2();
};break;
case5:
obj.stat();break;//调用统计函数,统计人员信息
case6:
obj.save();break;//调用保存数据函数,数据存盘
case7:
obj.load();break;//调用载入数据函数,数据装入
case8:
obj.pri();break;//调用输出函数,显示所有信息到屏幕
}
}while(c!
=9);
}
5.2添加与修改
5.2.1添加部分代码
//添加员工函数代码
voidadd()
{inti,a,b;
person*p1=myfirst;
if(p1==NULL)
{
cout<<"请输入编号:
";
cin>>i;
input(i);
}
else
{
if(p1->getnext()==NULL)
{
a=p1->getnum()+1;
input(a);
}
else
{
while(p1->getnext()!
=NULL)
{
p1=p1->getnext();
}
b=p1->getnum()+1;
input(b);
}
}
}
voidinput(intr)
{
intnage;
charntype[20],nname[20],nsex[20],ntime1[20],ntime2[20],npos[20],ntechpos[20],nparty[20],nstudy[20];
cout<<"请输入编号为"<cout<<"输入职工分类码[行政人员,教师,一般员