高校人事管理系统设计说明书_第1页
高校人事管理系统设计说明书_第2页
高校人事管理系统设计说明书_第3页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、*实践教学*兰州理工大学计算机与通信学院2011年秋季学期面向对象课程设计题 目: 高校人事管理系统 专业班级:计算机科学与技术四班 姓 名:李晓芬学 号:10240441指导教师:朱红蕾成 绩:在当前的全球信息化的浪潮中,无论是企业、政府机关,还是各大高校,要 想完善自身的管理体系,就必须拥有一套完善的并且适合自身特点的信息化管理 系统,以实现降低管理成本、及时反馈人员变动信息、节省人力资源、提高经济 效益、完善管理体系等目的。以高校为例,本文利用 Microsoft Visual C+ 6.0编写程序,实现了用户对 学校教师、实验员、行政人员、教师兼实验员和行政人员兼职教师 5类人员的工

2、资管理,简单明了,容易操作。本程序主要有六个功能模块:添加人员信息、查 询人员信息、修改人员信息、删除人员信息、显示人员信息和保存人员信息。已 经过全面的系统测试,能够很好的运行,达到了预期的效果。关键词:程序设计C+ 人员信息工资管理摘要1第一章 绪论31. 1课程设计的目的31. 2课程设计的背景和意义 31. 2. 1课程设计的背景31. 2. 2课程设计的意义 31. 3课程设计环境 3第二章需求分析.42. 1问题描述42. 2功能要求42. 3问题的解决方案 4第三章 系统设计 63. 1数据设计63. 1. 1类设计63. 1. 2类之间的关系73. 1. 3函数设计73. 2结

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

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

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

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

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

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

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

10、rso n()exist=1;无参构造函数pers on( stri ngn, stri ngn a,chars,stri ngti): num(n), name( na),sex(s),title(ti)exist=1;构造函数void pers on _set()-set函数,用于添加对象和修改对象数据void pers onn put(ifstream & iput)person_i nput函数,用于从文件读取数据void pers on _display()person_displa y函数,用于向显示器输出数据void pers on _output(ofstream & oput

11、)person_output函数,用于向文件输出数据stri ng pers on _get num()string person_getnum函数,用于获取 num 值stri ng pers on _get name() string person_getname函数,用于获取 name值void cha ngeexist()void changeexist函数,用于改变exist值int pers on _exist()int person_exist函数,用于获得 exist值2教师类成员函数一teacher()无参构造函数teacher(stri ngn, stri ngn a,ch

12、ars,stri ngti,i nt sa,i ntcnu m):pers on(n,n a,s,ti),salary1(sa),class nu m(c num)构造函数void teacher_set()set函数,用于添加对象和修改对象数据void teachernput(ifstream & iput)teacher_i nput函数,用于从文件读取数据void teacher_display()teacher_displa y函数,用于向显示器输出数据void teacher_output(ofstream& oput)teacher_output函数,用于向文件输出数据stri n

13、g teacher_get num()teacher_getnum函数,用于获取 num 值stri ng teacher_get name()teacher_getname函数,用于获取 name 值3实验员类成员函数一test()无参构造函数test(stri ng n, stri ng n a,char s,stri ng ti,i nt sa):pers on(n,n a,s,ti),salary2(sa)构造函数void test_set()- set函数,用于添加对象和修改对象数据void test_i nput(ifstrea m& iput)- test_i nput函数,用于

14、从文件读取数据void test_display()test_display函数,用于向显示器输出数据void test_output(ofstrea m& oput)test_output函数,用于向文件输出数据stri ng test_get num()test_getnum函数,用于获取 num 值stri ng test_get name()test_getname函数,用于获取 name值4. 行政人员类成员函数official()无参构造函数official(stri ng n, stri ng n a,char s,stri ng ti,i nt sa):pers on(n,n

15、a,s,ti),salary2(sa)构造函数void official_set()set函数,用于添加对象和修改对象数据void officialnput(ifstream & iput)officialnput函数,用于从文件读取数据void official_display()official_display函数,用于向显示器输出数据void official_output(ofstream& oput)official_output函数,用于向文件输出数据stri ng official_get num()official_getnum函数,用于获取num值stri ng offici

16、al_get name()official_getname函数,用于获取 name值5. 教师兼实验员类成员函数一teacher_test()无参构造函数teacher_test(stri ngn, stri ngn a,chars,stri ngti,i ntsa):pers on(n,n a,s,ti),salary2(sa)构造函数void teachertest_set()-set函数,用于添加对象和修改对象数据void teachertest_i nput(ifstream& iput)teachertest_i nput函数,用于从文件读取数据void teachertest_di

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

18、 ngn a,chars,stri ngti,i ntsa):pers on(n,n a,s,ti),salary2(sa)构造函数void teacherofficial_set()-set函数,用于添加对象和修改对象数据void teacherofficialnput(ifstream& iput)teacherofficialnput函数,用于从文件读取数据 void teacherofficial_display()teacherofficial_display函数,用于向显示器输出 数据void teacherofficial_output(ofstream& oput)teache

19、rofficial_output函数,用于向文件输出数据stri ng teacherofficial_get num()teacherofficial_getnum 函数,用于获取 num 值 stri ng teacherofficial_get name()teacherofficial_getname函数,用于获取 name值7.operate类成员函数void operate1(teacher &p)operatel函数,用于求教师类对象的工资void operate2(test &p)operate2函数,用于求实验员类对象的工资void operate3(official &p)

20、operate3函数,用于求行政人员类对象的工资 void operate4(teacher_test &p)operate4函数,用于求教师兼实验员类对象的工 资void operate5(teacher_official &p)operate5函数,用于求行政人员兼教师类对象的 工资3.2结构设计第四章系统测试4. 1模块测试测试抓图:S HC:Oocuments and Setting吐00Fez憶面、旦幻叩Debugsalary.exh-nlx*请选律数裾输入方式【从犍盘输人墾从文档读入咋锻趕疇蟲羞加询改除霉岀 審一修册显保退编号:需CDocu rtiemts a nd Setting

21、s 00京面salary Debugsalary.exe-p|x|談髒出:m性别=m0003 0011 00048010 8005姓名:张诗龙 性别 职工类别=教师兼行政人员 本月课时数注5 1:210职职职008曹贝0 0 10 2 -0 0 80;2资 :2资工名名名Irnllpolpnlpnlp-H- 0:2数 :2数时 数时课 村时聲 本=8资工员人 资工员验政 工员验实行 员人政需师 验政一实行盂山阮 -* * s- -* 类类工类工工 工工职工职职性别5林鹏宇 兵冰正程讐 饕田齋夏瘍号:00即霽勰鼠所要查询的编号号和姓岳例如换刖张明” 謨杰退出淪号:0001姓名:张杰 性别“ 职工

22、类别:敎师 本月课时数次洲 1: 3200匚咅层右舌呑吾呑各呑咅召表各妇必rr右 俞入数据完成请选择所需服务编号:MS8师110请依次输入编号、姓名、性别和职工类别。如是教师,输入本月课时数 _001张总n.2召苦杏衣 勺入数据完成,请选择所需服务编号二血C:Documents and Setting面salaryDebugakarv.exBls昕舫酣遅岀前诵保存呑磊缶幺-Pl x|编甕功能:请榜次输入所要修改的人员的编号号和姓名(例如:0001张明 =-001张杰编号:0001姓笆嚇杰 性别5 职工类别:救师 本月i果时数M20 1 = 3200 请逋择您所需要修决的数据的囲工类型:亠师器实

23、验员3 行政人贵4教师兼实验员行政人员兼教师S Hc:Documents and点而5alarYDebu9salary.邯亡“ _JL iTl Ji A jb ft hi jftit_jfciiiiiil _Jk A jl AAA A fl A A JLjflA irt jti jl A A糜娶叡V所要删除的人员的的编号号和姓名例如個迪 张明 =0001姓名:華杰 性别訥 职工类别;教师 本月课时数:1 = 3000 幸您所需要删嗓的数据的舉工类型:.教师玄-卖验贲丸行政人贵4-教师兼实验员行政人员兼教师咏心妒MS -j入数据完成请选择所需服务编号:向扌井音编号:0009姓名:张诗龙 性别E

24、职工类别:教师兼行政人员 本月课时数沁5工资汐 盘 俞入数据完成,请选择所需服一务编号:I*另另:另另另另另 QR二另另数常 时彗 冒本810:1资本 0闪右息忙人忌口 000000000 工口哥哥哥哥哥哥哥哥i:1|月本课课资:8资工0囚人 月月工资工0鑑政 本本工员验实行员岬Jfp验员人政兼师师 欝实脸政实行裝附 SBiis 工工工翼工类工工 n.i n-.r-r-fl i - FT、ri-f职职职工工职工接 职职职 nnmm m m T EflA r .J性性性翱性别性性 性性性 成君南:林,鹏Q 纯诱兵冰正程 哦昉住議:ffl嗇=1 各各各各各各各各各 L _ 匕 L _ L L 一

25、一 一 _ _ _ _ 一 - _ .一 姓姓姓姓姓姓姓姓姓0 2 0 0 - 00:2资 :2率 ?工 0:15 0:2数 :2数时00 0aw修删004I rr B 删除 显示 保存 退岀區岀前请保存?乞占吾占呑占BfeisM8. 出前请保存?-Plxl加询改除_K4W3 番一修删艮保很_显丕遛出3 *C:Docunient:s and Settings007面別13叩0亡山11544叩眉*!譽?S 啓毘4据己保存! 命入数据完成请选择所需服务编号二iR岀刖请保存,缶住右吾各盘占凸承凸层凸去凸凸盘凸去占盘凸凸凸出谢使用?r-ess anj key to continueH4. 2课程设计过

26、程中遇到的问题刚开始做课设时,的确遇到了很多问题,比如对象怎么删除、怎么存档等。 在老师的帮助下,自己也参考了一些书,逐渐打开了思路,解决了问题。例如, 定义对象时加一个变量 exist,通过改变它的值来判断是否删除;把各个类的对 象分开存在不同的文档,并引入计数变量来统计各个类的对象数,方便下次读入 数据。解决了这些问题,感到自己的编程水平有明显提高, 对于一些常见问题能够 很好的解决了。参考文献1 陈维兴,林小茶.C+面向对象程序设计教程北京:清华大学出版社,1996.2004.2 张国峰.C+程序设计实用教程.北京:清华大学出版社,1996.3 张松梅.C+语言教程.电子科技大学出版社,

27、1993.4 阎龙.C程序员的C+指南.北京航空航天大学出版社,1992. 王博.面向对象的建模、设计技术与方法.北京希望电脑公司,1990.s,stri ngsa,i nt程序代码:Salary.h:#in clude#in clude#in cludeusing n amespace std;class operate;基类“人”class pers onpublic:pers on( )exist=1;pers on( stri ngn, stri ngn a,charti): num(n), name( na),sex(s),title(ti)exist=1;void pers on

28、_set();void pers onn put(ifstream & iput);void pers on _display();void pers on _output(ofstrea m& oput);stri ng pers on _get num();stri ng pers on _get name();void cha ngeexist();int pers on _exist();frie nd operate;private:stri ng num;stri ng n ame;char sex;stri ng title;int exist;/教师类class teacher

29、:virtual public pers onpublic:teacher()teacher(stri ng n, stri ng n a,chars,stri ngti,i ntcnu m):pers on(n,n a,s,ti),salary1(sa),class nu m(c num)void teacher_set();void teachernput(ifstrea m& iput);void teacher_display();void teacher_output(ofstream& oput);stri ng teacher_get num();stri ng teacher_

30、get name();frie nd operate;protected:int class num;private:int salary1;static int teacher_salary; _/实验员类class test:virtual public pers onpublic:test()test(stri ng n, stri ng n a,char s,stri ng ti,i nt sa):pers on(n,n a,s,ti),salary2(sa)void test_set();void test_i nput(ifstrea m& iput);void test_disp

31、lay();void test_output(ofstrea m& oput);stri ng test_get num();stri ng test_get name();frie nd operate;private:int salary2;static int test_salary;static int test_allowa nee;行政人员类class official:virtual public pers onpublic:official()official(stri ngn, stri ngn a,chars,stri ngti,i ntsa):pers on(n,n a,

32、s,ti),salary3(sa)void official_set();void officialn put(ifstream & iput);void official_display();void official_output(ofstream& oput);stri ng official_get num();stri ng official_get name();frie nd operate;private:int salary3;static int official_salary;static int official_allowa nee;; _/教师兼职实验员class

33、teacher_test:public teacher,public testpublic:teacher_test()teacher_test(string n,string na,char s,string ti,int sa1,int sa2,int enum,int sa3):teacher( n,n a,s,ti,sa1,c nu m),test( n,n a,s,ti,sa2),salary4(sa3)void teachertest_set();void teachertest_i nput(ifstrea m& iput);void teachertest_display();

34、void teachertest_output(ofstream& oput);stri ng teachertest_get num();stri ng teachertest_get name();frie nd operate;private:int salary4;行政人员兼教师类成员函数class teacher_official:public teacher,public officialpublic:teacher_official()teacher_official(stri ng n, stri ng n a,char s,stri ng ti,i nt sa1,i nt s

35、a2,i nt enu m,i nt sa3):teacher( n,n a,s,ti,sa1,c nu m),official( n,n a,s,ti,sa2),salary5(sa3)void teacherofficial_set();void teacherofficial_i nput(ifstream& iput);void teacherofficial_display();void teacherofficial_output(ofstream& oput);stri ng teacherofficial_get num();stri ng teacherofficial_ge

36、t name();frie nd operate;private:int salary5;/operate 类class operatepublic:void operate1(teacher &);void operate2(test &);void operate3(official &);void operate4(teacher_test &); void operate5(teacher_official &);;Salary.cpp:#in clude#in clude#in clude#in cludesalary.husing n amespace std;人类成员函数void

37、 pers on:pers on _set() _cinnumn amesextitle;void pers on:pers on_in put(ifstream& iput) _iput num;iput n ame;iputsex;iputtitle;void pers on:pers on _display() _cout编号: nu m;cout姓名:name;cout性别:vvsexvv;cout职工类别:vvtitlevv;void perso n:pers on _output(ofstream & oput) oput num ;oput n ame class num;voi

38、d teacher:teacher_i nput(ifstrea m& iput) _ pers on_in put(iput); iputclass num; iputsalary1;void teacher:teacher_display() _ if(pers on _exist()!=0)pers on _display();cout本月课时数:classnum ” cout工资:salary1e ndl;void teacher:teacher_output(ofstrea m& oput) _ if(pers on _exist()!=0) _pers on _output(opu

39、t); oputclass num ; oputsalary1salary2;void test:test_display() _if(pers on _exist()!=0)pers on _display(); cout工资:salary2e ndl;void test:test_output(ofstream & oput) _if(pers on _exist()!=0)pers on _output(oput); oputsalary2e ndl;stri ng test:test_get num() _stri ng str;str=pers on _get num(); retu

40、rn str;stri ng test:test_get name() _stri ng str;str=pers on _get name(); return str;int test:test_salary=650;int test:test_allowa nce=150;行政人员类成员函数void official:official_set() _pers on _set(); _void official:officialn put(ifstrea m& iput) _pers on_in put(iput);iputsalary3;void official:official_dis

41、play() _if(pers on _exist()!=0)pers on _display();cout工资:salary3e ndl;void official:official_output(ofstream& oput) _if(pers on _exist()!=0)pers on _output(oput); oputsalary3class num;iputsalary4;void teacher_test:teachertest_display() 一一if(pers on _exist()!=0) _pers on _display();cout本月课时数:classnum

42、;cout工资:salary4e ndl;void teacher_test:teachertest_output(ofstream& oput) 一一if(pers on _exist()!=0) _pers on _output(oput); oputclass num ; oputsalary4class num; iputsalary5;void teacher_official:teacherofficial_display() 一 一if(pers on _exist()!=0)pers on _display();cout本月课时数:classnum;cout工资:salary5

43、e ndl;void teacher_official:teacherofficial_output(ofstream& oput)if(pers on _exist()!=0) _pers on _output(oput);oputclass num ;oputsalary5e ndl;stri ng teacher_official:teacherofficial_get num() 一 一stri ng str;str=teacher_get num();return str;stri ng teacher_official:teacherofficial_get name() 一 一s

44、tri ng str;str=teacher_get name(); return str;/operate类成员函数void operate:operate1(teacher &p)p.salary1=p.teacher_salary+20*p.class num; void operate:operate2(test &p) p.salary2=p.test_salary+p.test_allowa nee; 一 一void operate:operate3(offieial &p) p.salary3=p.official_salary+p.official_allowa nee; 一

45、一void operate:operate4(teacher_test &p)p.salary4=p.teacher_salary+20*p.class nu m+p.test_salary+p.test_allowa nee; 一 void operate:operate5(teacher_official &p) _p.salary5=p.teacher_salary+20*p.class nu m+p.official_salary+p.official_allo wan ce;Mai n.cpp:#in clude#in clude#in clude#in cludesalary.husing n amespace std;int mai n()/定义各类的对象数组及操作类的对象teacher t100;test te100;official o100;teacher_test t_te100; teacher_official t_o100; operate op;ifstream in file,i nfile1,i nfile2,i nfile3,

温馨提示

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

评论

0/150

提交评论