高等院校人员管理系统.docx
- 文档编号:6063380
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:11
- 大小:134.90KB
高等院校人员管理系统.docx
《高等院校人员管理系统.docx》由会员分享,可在线阅读,更多相关《高等院校人员管理系统.docx(11页珍藏版)》请在冰豆网上搜索。
高等院校人员管理系统
中国农业大学
面向对象程序设计
课程设计报告
(2015/2016学年第二学期)
高等院校人员管理系统
专业计算机
学生姓名张三
班级学号0000000000
指导教师康丽
指导单位计算机工程系
日期2016年6月
1.系统设计内容和要求
本系统要完成一个高等院校的人员信息管理系统,能够实现学校中各类人员的信息录入、查询、修改、删除、统计、保存、显示等操作。
假设高校中有三类人员:
授课教师、行政人员、行政人员兼职教师(既上课又完成行政人员的工作)。
2.需求分析
系统具体实现的功能如下:
1)从文件中加载员工信息:
系统可以实现把存储在文件中的学校人员基本信息加载到系统中,可以避免数据的重复录入。
2)增加学校员工信息:
系统可以实现键盘录入新员工信息,员工信息包括员工编号、类型、姓名、性别、年龄、政治面貌、学历、工资等。
如果目前学校无员工,则直接录入员工信息;如果有员工,则自动生成新员工的编号(增加1)。
学校人员分为授课教师、行政人员、行政人员兼职教师三类,各类员工的工资计算方法如下:
授课教师工资=基本工资+课时费(30*学时数)
行政人员工资=基本工资+行政补贴
行政人员兼职教师工资=基本工资+行政补贴+课时费(20*学时数)
3)查询学校员工信息:
系统可以实现按“编号”或“姓名”查询员工,并输出相关信息。
4)修改学校员工信息:
系统可以实现对录入的员工信息重新进行编辑、修改,分别修改员工的姓名、性别、年龄、政治面貌、学历和工资信息。
5)删除学校员工信息:
系统可以实现当员工离开学校时删除相关信息。
6)统计学校员工信息:
系统可以统计学校中的党员人数和女员工人数。
7)学校员工信息存盘:
系统可以实现把员工基本信息存储到磁盘文件中,方便用户以后读取数据,避免重复录入。
8)显示所有员工信息:
系统可以输出学校所有员工的信息,包括员工编号、姓名、性别、年龄、政治面貌、学历、工资、人员类型等。
9)系统界面采用文本菜单方式,交互性好,系统界面如图1所示:
图1高等院校人员管理系统界面图
3.概要设计
系统数据存盘文件的格式如下:
编号姓名性别年龄政治面貌学历工资员工类型
1000张莉女32党员博士75001
1001白飞女28群众硕士25002
1002孟丹男40党员博士105003
其中员工类型为1表示授课教师,2表示行政人员,3表示行政人员兼职教师
(1)类定义
系统使用类来组织管理数据,共包括五个类,分别是学校类school、员工类person、任课教师类teacher、行政人员类staff、行政人员兼职教师类staffteacher。
员工类person用来描述学校内各类人员具有的公共属性及操作,由于学校里授课教师、行政人员、行政人员兼职教师这三类人员工资的计算方法不同,表现出多态性,因此以person类为基类,分别派生出授课教师类teacher、行政人员类staff,再以teacher类和staff类为基类,派生出行政人员兼职教师类staffteacher。
由于学校里人员总数允许变动、不确定,因此学校类school采用链表保存所有人员信息,并用共同的方法操作所有人员,类school与类person之间是类的聚合关系,上述类关系用UML标识如图2所示:
学校类school
员工类person
授课教师类teacher
行政人员类staff
行政人员兼职教师类staffteacher
图2高等院校人员管理系统类关系的UML图
员工类person。
类属性包括编号(no)、姓名(name)、性别(sex)、年龄(age)、政治面貌(party)、学历(study)、工资(pay)、员工类型(type)、指向下一个员工的指针(mynext),实现对员工类的描述。
成员函数包括提取员工编号(getnum)、提取姓名(getname)、提取性别(getsex)、提取年龄(getage)、设置年龄(getagee)、提取政治面貌(getparty)、提取学历(getstudy)、提取员工类型(gettype)、提取工资(getpay)、设置工资(getpayy)、提取指向下一个员工指针(getnext)、设置指向下一个员工指针(setnext)、输出员工信息(output)等。
授课教师类teacher。
类属性包括职称(teachpos)、每小时课时费(coursefee)、课时数(coursenum)。
成员函数包括提取工资(getpay)。
行政人员类staff。
类属性包括职务级别(pos)、行政补贴(stafffee)。
成员函数包括提取工资(getpay)。
行政人员兼职教师类staffteacher。
成员函数包括提取工资(getpay)。
学校类school。
类属性包括指向学校中第一位员工的指针(myfirst)。
成员函数包括从文件中加载员工信息(load)、增加员工信息(add、input、insert)、按编号查询员工信息(findnum)、按姓名查询员工信息(findname)、修改员工信息(modify)、删除员工信息(deleteperson)、统计员工信息(count)、员工信息存盘(save)、显示学校所有员工信息(showall)等。
在基于UML的可视化建模工具RationalRose中高等院校人员管理系统各类关系的UML图形标识如图3所示:
图3RationalRose中系统类关系的UML图
(2)系统主要功能模块流程图
1)主函数main的流程图(见图4)
2)从文件中加载员工信息school:
:
load流程图(见图5)
3)增加员工信息school:
:
add、school:
:
input、school:
:
insert流程图(见图6)
4)按编号或姓名查询员工信息school:
:
findnum、school:
:
findname流程图(见图7)
5)修改员工信息school:
:
modify流程图(见图8)
6)删除员工信息school:
:
deleteperson流程图(见图9)
7)统计员工信息school:
:
count流程图(见图10)
8)员工信息存盘school:
:
save流程图(见图11)
(3)详细设计
整个程序包含5个文件:
、是学校类的类定义文件和类实现文件;、是员工类及其派生类的类定义文件和类实现文件;是主函数文件。
1)员工类person的定义()
#include
#include
#include
<<"**"<<'\n'
<<"*2.统计学校中女职工人数*"<<'\n'
<<"**"<<'\n'
<<"*************************************************"<<'\n'
<<"请您选择上面的选项:
"< cin>>i; person*ahead=myfirst; person*follow=ahead; if(ahead==NULL)cout<<"学校无人员信息"< else {switch(i) {case1: {while(ahead! =NULL) {if(strcmp(ahead->getparty(),"党员")==0) {ahead=ahead->getnext();amount++;} else ahead=ahead->getnext();} cout<<"学校中的党员人数: "< break; case2: {while(ahead! =NULL) {if(strcmp(ahead->getsex(),"女")==0) {ahead=ahead->getnext();amount++;} else ahead=ahead->getnext();} cout<<"学校中的女员工人数: "< break; } } } voidschool: : save()从文件中加载员工信息"< cout<<"2.增加学校员工信息"< cout<<"3.按编号查询学校员工信息"< cout<<"4.按姓名查询学校员工信息"< cout<<"5.修改学校员工信息"< cout<<"6.删除学校员工信息"< cout<<"7.统计学校员工信息"< cout<<"8.学校员工信息存盘"< cout<<"9.显示所有员工信息"< cout<<"10.退出系统"< cout<<"================================"< cout<<"请选择上面的选项(1~10): "< cin>>i; switch(i) {case1: ();break; case2: ();break; case3: ();break; case4: ();break; case5: ();break; case6: ();break; case7: ();break; case8: ();break; case9: ();break; case10: exit (1);break;} } } (4)测试数据及其结果分析 (a)设计数据如下: 编号姓名性别年龄政治面貌学历工资人员类型 1张红梅女40群众博士50001 2李玉和男45党员硕士38002 3王选男30党员博士42003 4孙扬男20党员硕士30001 5李明男30群众硕士36001 6文红燕女45党员博士30001 7英若诚男50党员博士40002 8党育红男40党员硕士44003 9贝宁宁女30群众硕士36001 10高乐高男45党员博士40003 (b)经程序运行测试结果正确。 (c)运行后发现程序操作不方便,尤其是输入汉字不舒服,其实,只有姓名一栏的输入是无法预料的,其他的汉字数据,如政治面貌,完全可以用输入”1”代表“群众”,输入“2”代表“党员”,所以需要修改,使之操作更加简便。 其他存在的问题有: 数据输入、修改、删除后,是否成功没有提示,是否将文件中的数据也做改动没有提示,应该增加提示。 查询和统计功能不够方便,如,查询“姓王”的人实现不了。 没有考虑数据检查功能,如工资应该有数据区间,不能随意录入。 等等 (5)调试过程中的问题 调试中的问题包括: 数据没有加载时就不好操作等等。 (6)程序设计总结 通过C++课程设计,使我对软件的设计开发有了新的认识,提高了自己的实际问题解决能力。 附录: 源程序(略)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高等院校 人员 管理 系统