高校人事管理系统设计说明书

上传人:陈** 文档编号:100001757 上传时间:2022-06-01 格式:DOC 页数:49 大小:278KB
收藏 版权申诉 举报 下载
高校人事管理系统设计说明书_第1页
第1页 / 共49页
高校人事管理系统设计说明书_第2页
第2页 / 共49页
高校人事管理系统设计说明书_第3页
第3页 / 共49页
资源描述:

《高校人事管理系统设计说明书》由会员分享,可在线阅读,更多相关《高校人事管理系统设计说明书(49页珍藏版)》请在装配图网上搜索。

1、编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第- 48 -页 共49页*实践教学* 兰州理工大学计算机与通信学院2011年秋季学期 面向对象 课程设计题 目: 高校人事管理系统 专业班级:计算机科学与技术四班姓 名: 李晓芬 学 号: 10240441 指导教师: 朱红蕾 成 绩: 摘 要在当前的全球信息化的浪潮中,无论是企业、政府机关,还是各大高校,要想完善自身的管理体系,就必须拥有一套完善的并且适合自身特点的信息化管理系统,以实现降低管理成本、及时反馈人员变动信息、节省人力资源、提高经济效益、完善管理体系等目的。 以高校为例,本文利用Microsoft Visual

2、C+ 6.0编写程序,实现了用户对学校教师、实验员、行政人员、教师兼实验员和行政人员兼职教师5类人员的工资管理,简单明了,容易操作。本程序主要有六个功能模块:添加人员信息、查询人员信息、修改人员信息、删除人员信息、显示人员信息和保存人员信息。已经过全面的系统测试,能够很好的运行,达到了预期的效果。关键词:程序设计 C+ 人员信息 工资管理目 录摘 要1第一章 绪论311 课程设计的目的312 课程设计的背景和意义3121 课程设计的背景3122 课程设计的意义313 课程设计环境3第二章 需求分析421 问题描述422 功能要求423 问题的解决方案4第三章 系统设计631 数据设计6311

3、类设计6312 类之间的关系7313 函数设计732 结构设计7第四章 系统测试1241 模块测试1242 课程设计过程中遇到的问题15参考文献16附 录17总 结42致 谢43 第一章 绪论11 课程设计的目的1、熟练掌握C+语言的基本知识和技能。2、基本掌握面向对象程序设计的基本思路和方法。3、利用所学的基本知识和技能,解决简单的面向对象程序设计问题。12 课程设计的背景和意义121 课程设计的背景1. 理论研究基础(1)c+语言的基本知识和技能,如:类与对象,输入和输出,文本文件的建立和保存等。(2)面向对象的程序设计的基本思路和方法。 2. 技术层面的支持Microsoft Visua

4、l C+ 6.0编译平台122 课程设计的意义以高校为例,本文利用Microsoft Visual C+ 6.0编写程序,实现了用户对学校教师、实验员、行政人员、教师兼实验员和行政人员兼职教师5类人员的工资管理,实现了降低管理成本、及时反馈人员变动信息、节省人力资源、提高经济效益、完善管理体系等目的。同时,锻炼自己,利用所学的基本知识和技能,解决简单的面向对象程序设计问题。1. 3 课程设计环境软件:Windows XP professional SP2操作系统 Microsoft Visual C+ 6.0第二章 需求分析21 问题描述某高校有五类职工:教师,实验员,行政人员,教师兼职实验员

5、,行政人员兼职教师。共有的信息包括:编号、姓名、性别和职工类别。每类人员特有的信息,请根据情况自行添加。职工工资的计算方法如下:教师: 基本工资+课时费;实验员: 基本工资+实验室补助;行政人员: 基本工资+行政补贴;教师兼职实验员: 基本工资+课时费+实验室补助;行政人员兼职教师:基本工资+行政补贴+课时费;其中:1)基本工资:教师800元,实验员650元,行政人员750元2)行政补贴:250元3)实验室补助:150元4)课时费的计算方法为:20*本月课时数22 功能要求(1)对各类人员信息完成的基本功能有:1) 添加功能:程序能够添加相应的记录;2) 查询功能:能根据编号和姓名进行查询,并

6、显示相应的记录信息;3) 编辑功能:根据查询结果对相应的记录进行修改;4)删除功能:根据查找结果,完成具体记录的删除。5)保存功能:将对高校人员信息进行的添加、删除、修改结果保存到文本文件中。(2)本程序处理的任务是:输入职工的相关数据,经过计算后,输出职工的月工资,并将所有信息保存在文本文件中。(3)学生在完成本次课程设计的基本要求后,进一步完善程序,从如下几个方面加以考虑:1) 添加人员记录时,考虑各种数据的有效性。2)组合查询功能的实现。3)编辑数据时,注意操作的方便4)删除数据时,考虑删除操作的方便5)输入、输出操作时的方便、易用23 问题的解决方案根据系统功能要求,可以将问题解决分为

7、以下步骤: 1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;2)分析系统中的各个实体及它们之间的关系; 3)根据问题描述,设计系统的类层次; 4)完成类层次中各个类的描述; 5)完成类中各个成员函数的定义; 6)完成系统的应用模块; 7)功能调试; 8)完成系统总结报告。 第三章 系统设计31 数据设计311 类设计1基类person:包含各类人员所共有的属性(编号num、姓名name、性别sex、职工类别title和exist(判断对象是否删除)作为数据成员,供各个派生类继承。2教师类teacher:公用虚继承person类,并包括本月课时数classnum、教师基本工资工资

8、salary1和教师工资teacher_salary作为本类数据成员。3实验员类test:公用虚继承person类,并包括实验员基本工资工资salary2、实验室补助test_allowance和实验员工资test_salary作为本类数据成员。4行政人员类official:公用虚继承person类,并包括行政人员基本工资工资salary3、行政补贴official_allowance和行政人员工资test_salary作为本类数据成员。5教师兼实验员类teacher_test:多重继承teacher类和test类,并包括教师兼实验员工资salary4作为本类数据成员。6行政人员兼教师类tea

9、cher_official:多重继承teacher类和official类,并包括行政人员兼教师工资salary5作为本类数据成员。7操作operate类:为以上各类的友元类,用于求各类对象的工资。3 12 类之间的关系PersonTestTeacherOfficialTeacher_test Teacher_officialOperate友元类公 有 虚 继 承多 重 继 承多 重 继 承如图,定义基类person,定义三个派生类teacher、test、official公有虚继承person类(虚继承是为了避免二义性),再定义teacher_test和teacher_official两个类分

10、别多重继承teacher、test和teacher、official。定义operate类为各类友元类。313 函数设计1.person类成员函数person()exist=1; 无参构造函数person(string n,string na,char s,string ti):num(n),name(na),sex(s),title(ti)exist=1; 构造函数void person_set() set函数,用于添加对象和修改对象数据void person_input(ifstream& iput) person_input函数,用于从文件读取数据void person_display(

11、) person_display函数,用于向显示器输出数据void person_output(ofstream& oput) person_output函数,用于向文件输出数据string person_getnum() string person_getnum函数,用于获取num值string person_getname() string person_getname函数,用于获取name值void changeexist() void changeexist函数,用于改变exist值int person_exist() int person_exist函数,用于获得exist值2.教师

12、类成员函数teacher() 无参构造函数teacher(string n,string na,char s,string ti,int sa,int cnum):person(n,na,s,ti),salary1(sa),classnum(cnum) 构造函数void teacher_set() set函数,用于添加对象和修改对象数据void teacher_input(ifstream& iput) teacher_input函数,用于从文件读取数据void teacher_display() teacher_display函数,用于向显示器输出数据void teacher_output(

13、ofstream& oput) teacher_output函数,用于向文件输出数据string teacher_getnum() teacher_getnum函数,用于获取num值string teacher_getname() teacher_getname函数,用于获取name值3.实验员类成员函数test() 无参构造函数test(string n,string na,char s,string ti,int sa):person(n,na,s,ti),salary2(sa) 构造函数void test_set() set函数,用于添加对象和修改对象数据void test_input(

14、ifstream& iput) test_input函数,用于从文件读取数据void test_display() test_display函数,用于向显示器输出数据void test_output(ofstream& oput) test_output函数,用于向文件输出数据string test_getnum() test_getnum函数,用于获取num值string test_getname() test_getname函数,用于获取name值4.行政人员类成员函数official() 无参构造函数official(string n,string na,char s,string ti

15、,int sa):person(n,na,s,ti),salary2(sa) 构造函数void official_set() set函数,用于添加对象和修改对象数据void official_input(ifstream& iput) official_input函数,用于从文件读取数据void official_display() official_display函数,用于向显示器输出数据void official_output(ofstream& oput) official_output函数,用于向文件输出数据string official_getnum() official_getnu

16、m函数,用于获取num值string official_getname() official_getname函数,用于获取name值5.教师兼实验员类成员函数teacher_test() 无参构造函数teacher_test(string n,string na,char s,string ti,int sa):person(n,na,s,ti),salary2(sa) 构造函数void teachertest_set() set函数,用于添加对象和修改对象数据void teachertest_input(ifstream& iput) teachertest_input函数,用于从文件读取数

17、据void teachertest_display() teachertest_display函数,用于向显示器输出数据void teachertest_output(ofstream& oput) teachertest_output函数,用于向文件输出数据string teachertest_getnum() teachertest_getnum函数,用于获取num值string teachertest_getname() teachertest_getname函数,用于获取name值6.行政人员兼教师类成员函数teacher_official() 无参构造函数teacher_offici

18、al(string n,string na,char s,string ti,int sa):person(n,na,s,ti),salary2(sa) 构造函数void teacherofficial_set() set函数,用于添加对象和修改对象数据void teacherofficial_input(ifstream& iput) teacherofficial_input函数,用于从文件读取数据void teacherofficial_display() teacherofficial_display函数,用于向显示器输出数据void teacherofficial_output(of

19、stream& oput) teacherofficial_output函数,用于向文件输出数据string teacherofficial_getnum() teacherofficial_getnum函数,用于获取num值string teacherofficial_getname() teacherofficial_getname函数,用于获取name值7.operate类成员函数void operate1(teacher &p) operate1函数,用于求教师类对象的工资void operate2(test &p) operate2函数,用于求实验员类对象的工资void operat

20、e3(official &p) operate3函数,用于求行政人员类对象的工资void operate4(teacher_test &p) operate4函数,用于求教师兼实验员类对象的工资void operate5(teacher_official &p) operate5函数,用于求行政人员兼教师类对象的工资3.2结构设计主函数从文档读入从键盘输入查询添加修改删除保存查询添加修改删除保存第四章 系统测试41 模块测试测试抓图:42 课程设计过程中遇到的问题刚开始做课设时,的确遇到了很多问题,比如对象怎么删除、怎么存档等。在老师的帮助下,自己也参考了一些书,逐渐打开了思路,解决了问题。例

21、如,定义对象时加一个变量exist,通过改变它的值来判断是否删除;把各个类的对象分开存在不同的文档,并引入计数变量来统计各个类的对象数,方便下次读入数据。解决了这些问题,感到自己的编程水平有明显提高,对于一些常见问题能够很好的解决了。参考文献1陈维兴,林小茶.c+面向对象程序设计教程. 北京: 清华大学出版社,1996.2004.2张国峰. C+程序设计实用教程. 北京: 清华大学出版社,1996. 3张松梅. C+语言教程. 电子科技大学出版社,1993. 4阎龙. C程序员的C+指南. 北京航空航天大学出版社,1992.5王博. 面向对象的建模、设计技术与方法. 北京希望电脑公司,1990

22、.附 录 程序代码: Salary.h:#include#include#includeusing namespace std;class operate;/基类“人”class personpublic: person()exist=1; person(string n,string na,char s,string ti):num(n),name(na),sex(s),title(ti)exist=1; void person_set();void person_input(ifstream& iput);void person_display();void person_output(o

23、fstream& oput);string person_getnum();string person_getname();void changeexist();int person_exist(); friend operate;private:string num;string name;char sex;string title;int exist;/教师类class teacher:virtual public personpublic:teacher()teacher(string n,string na,char s,string ti,int sa,int cnum):perso

24、n(n,na,s,ti),salary1(sa),classnum(cnum)void teacher_set();void teacher_input(ifstream& iput);void teacher_display();void teacher_output(ofstream& oput);string teacher_getnum();string teacher_getname(); friend operate;protected:int classnum;private:int salary1;static int teacher_salary;/实验员类class tes

25、t:virtual public personpublic: test() test(string n,string na,char s,string ti,int sa):person(n,na,s,ti),salary2(sa) void test_set();void test_input(ifstream& iput);void test_display();void test_output(ofstream& oput);string test_getnum();string test_getname(); friend operate;private:int salary2;sta

26、tic int test_salary;static int test_allowance;/行政人员类class official:virtual public personpublic: official() official(string n,string na,char s,string ti,int sa):person(n,na,s,ti),salary3(sa) void official_set();void official_input(ifstream& iput);void official_display();void official_output(ofstream&

27、 oput);string official_getnum();string official_getname(); friend operate;private:int salary3;static int official_salary;static int official_allowance;/教师兼职实验员class teacher_test:public teacher,public testpublic: teacher_test() teacher_test(string n,string na,char s,string ti,int sa1,int sa2,int cnum

28、,int sa3):teacher(n,na,s,ti,sa1,cnum),test(n,na,s,ti,sa2),salary4(sa3) void teachertest_set();void teachertest_input(ifstream& iput);void teachertest_display();void teachertest_output(ofstream& oput);string teachertest_getnum();string teachertest_getname(); friend operate;private:int salary4;/行政人员兼教

29、师类成员函数class teacher_official:public teacher,public officialpublic: teacher_official() teacher_official(string n,string na,char s,string ti,int sa1,int sa2,int cnum,int sa3):teacher(n,na,s,ti,sa1,cnum),official(n,na,s,ti,sa2),salary5(sa3) void teacherofficial_set();void teacherofficial_input(ifstream

30、& iput);void teacherofficial_display();void teacherofficial_output(ofstream& oput);string teacherofficial_getnum();string teacherofficial_getname(); friend operate;private:int salary5;/operate类class operatepublic: void operate1(teacher &); void operate2(test &); void operate3(official &); void opera

31、te4(teacher_test &); void operate5(teacher_official &);Salary.cpp:#include#include#include#includesalary.husing namespace std;/人类成员函数void person:person_set()cinnumnamesextitle;void person:person_input(ifstream& iput)iputnum;iputname;iputsex;iputtitle;void person:person_display()cout编号:num ;cout姓名:na

32、me ;cout性别:sex ;cout职工类别:title ;void person:person_output(ofstream& oput)oputnum ;oputname ;oputsex ;oputtitleclassnum;void teacher:teacher_input(ifstream& iput)person_input(iput);iputclassnum;iputsalary1;void teacher:teacher_display()if(person_exist()!=0)person_display();cout本月课时数:classnum ;cout工资:

33、salary1endl;void teacher:teacher_output(ofstream& oput)if(person_exist()!=0)person_output(oput);oputclassnum ;oputsalary1salary2;void test:test_display()if(person_exist()!=0)person_display();cout工资:salary2endl;void test:test_output(ofstream& oput)if(person_exist()!=0)person_output(oput);oputsalary2s

34、alary3;void official:official_display()if(person_exist()!=0)person_display();cout工资:salary3endl;void official:official_output(ofstream& oput)if(person_exist()!=0)person_output(oput);oputsalary3classnum;iputsalary4;void teacher_test:teachertest_display()if(person_exist()!=0)person_display();cout本月课时数

35、:classnum ;cout工资:salary4endl;void teacher_test:teachertest_output(ofstream& oput)if(person_exist()!=0)person_output(oput);oputclassnum ;oputsalary4classnum;iputsalary5;void teacher_official:teacherofficial_display()if(person_exist()!=0)person_display();cout本月课时数:classnum ;cout工资:salary5endl;void te

36、acher_official:teacherofficial_output(ofstream& oput)if(person_exist()!=0)person_output(oput);oputclassnum ;oputsalary5endl;string teacher_official:teacherofficial_getnum()string str;str=teacher_getnum();return str;string teacher_official:teacherofficial_getname()string str;str=teacher_getname();ret

37、urn str;/operate类成员函数void operate:operate1(teacher &p)p.salary1=p.teacher_salary+20*p.classnum;void operate:operate2(test &p)p.salary2=p.test_salary+p.test_allowance;void operate:operate3(official &p)p.salary3=p.official_salary+p.official_allowance;void operate:operate4(teacher_test &p)p.salary4=p.t

38、eacher_salary+20*p.classnum+p.test_salary+p.test_allowance;void operate:operate5(teacher_official &p)p.salary5=p.teacher_salary+20*p.classnum+p.official_salary+p.official_allowance;Main.cpp:#include#include#include#includesalary.husing namespace std;int main()/定义各类的对象数组及操作类的对象teacher t100;test te100

39、;official o100;teacher_test t_te100;teacher_official t_o100;operate op;ifstream infile,infile1,infile2,infile3,infile4,infile5;ofstream outfile,outfile1,outfile2,outfile3,outfile4,outfile5;/选择标记int a=0,b=0,c=0,d=0,x=0;/位置标记int p=0,i=0,j=0,k=0,l=0,m=0,n=0,del=0;/结束标记char CorN;/界面说明coutendl;cout endl;

40、cout endl;cout 欢 迎 使 用 endl;cout 高校人员工资管理系统 endl;cout endl;cout endl;coutendl;/数据输入cout请选择数据输入方式:1.从键盘输入 2.从文档读入x;if(x2)cout输入错误!endl;if(x=1)coutendl;cout请输入教职工信息(依次为编号、姓名、性别和职工类别,例如:0001 张明 m 实验员)endl;cout每次输入按c继续输入下一个,按n结束!endl;coutendl;for(i=0;i500;i+)cout请选择要输入的职工类别:endl;cout1.教师 2.实验员 3.行政人员 4.

41、教师兼实验员 5.行政人员兼教师a;if(a5)cout输入错误!endl;elsecout请依次输入编号、姓名、性别和职工类别。如是教师,输入本月课时数endl;if(a=1)tj.teacher_set();j+;else if(a=2)tek.test_set();k+;else if(a=3)ol.official_set();l+;else if(a=4)t_tem.teachertest_set();m+;else if(a=5)t_on.teacherofficial_set();n+;cout继续输入请按c,结束请按nCorN;while(1)if(CorN!=c&CorN!=

42、n)cout输入错误,请重新输入!CorN;elsebreak;if(CorN=n)break;coutendl;/计算所输入职工的工资for(i=0;ij;i+)op.operate1(ti);for(i=0;ik;i+)op.operate2(tei);for(i=0;il;i+)op.operate3(oi);for(i=0;im;i+)op.operate4(t_tei);for(i=0;in;i+)op.operate5(t_oi);elseif(x=2)infile.open(biaojishu.txt,ios:in);if(!infile)cerr读取文档biaojishu.tx

43、t出错!endl;exit(1);infile1.open(teacher.txt,ios:in);if(!infile1)cerr读取文档teacher.txt出错!endl;exit(1);infile2.open(test.txt,ios:in);if(!infile2)cerr读取文档test.txt出错!endl;exit(1);infile3.open(official.txt,ios:in);if(!infile3)cerr读取文档official.txt出错!endl;exit(1);infile4.open(teachertest.txt,ios:in);if(!infile4)cerr读取文档teachertest.txt出错!endl;exit(1);infile5.open(teacherofficial.txt,ios:in);if(!infile5)cerr读取文档teacherofficial.txt出错!j;infilek;infilel;infilem;infilen;/读数据for(i=0;ij;i+)

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!