员工管理_高校人员工资管理系统_第1页
员工管理_高校人员工资管理系统_第2页
员工管理_高校人员工资管理系统_第3页
员工管理_高校人员工资管理系统_第4页
员工管理_高校人员工资管理系统_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

北 华 航 天 工 业 学 院程序设计基本技能综合训练实践报告报告题目 : 高校人员工资管理系统 作者所在系部: 作者所在专业: 作者所在班级: 作 者 学 号 : 作 者 姓 名 : 指导教师姓名: 完 成 时 间 : 北华航天工业学院教务处制努力了的才叫梦想,不努力的就是空想!如果你一直空想的话,无论看多少正能量语录,也赶不走满满的负能量!你还是原地踏步的你,一直在看别人进步。摘 要在当前的信息大爆炸时代下,计算机的应用变得越来越广泛,各个行业都离不开计算机,如今的学校校园面积越来越大,学生越来越多,老师也越来越多。如果没有一个适合自身特点的信息化管理系统,难免会出乱子,学校的发展与学校的有效管理也密不可分。所以高校应该选择适合自己的管理系统,完善对高校各个职业人员的人员信息和工资管理等。本文利用Microsoft Visual C+ 6.0编写程序,实现了用户对教师、实验员、行政人员、教师兼实验员和行政人员兼教师的工资信息管理操作。本系统主要一共有六个功能模块:添加功能、查询功能、编辑功能、删除功能、保存功能、读取功能关键词:系统设计 类 继承 面向对象目录 目录摘 要I目录II第一章 绪论111 课程设计的目的112 课程设计的背景和意义1121 课程设计的背景11. 理论研究基础12. 技术层面的支持1122 课程设计的意义113 课程设计环境2第二章 需求分析321 问题描述322 功能要求323 问题的解决方案3第三章 系统设计431 数据设计4311 类设计4312 类之间的关系6313 函数设计632 结构设计7321 系统流程7322 界面设计7第四章 系统实现1141 类实现1142 函数实现1143 主函数实现19第五章 系统测试2052 课程设计过程中遇到的问题24总 结25致 谢26参考文献27第一章 绪论11 课程设计的目的C+面向对象程序设计是计算机专业的基础课程,本课程按照软件程序设计所需能力进行教学设计,提出以项目模块方式带动相关知识点、实践项目和理论并行的思路,将案例贯穿于课程始终,对原有的教学体系、教学内容进行重新编排,按照从易到难的原则,将其巧妙地融入到项目开发过程中,降低学习难度,提高学生学习的信心,有效培养学生的应用能力和学习能力。12 课程设计的背景和意义随着社会的发展,各个高校人员越来越多,与此同时就需要对高校的员工工资信息进行统一有效的管理,方便的对人员的信息进行增添、查找、修改、删除,这就必须有一个有效实用的管理系统。121 课程设计的背景1. 理论研究基础掌握C+基本知识,具体包括:掌握面向对象基本知识和基本概念,掌握类的定义,构造函数的使用,掌握静态成员的定义与作用,掌握友元的定义,掌握运算符重载方法,继承与派生,虚函数的定义和使用,输入、输出流操作,文件的创建、打开、读写、关闭等。2. 技术层面的支持(1)定义基类与派生类,将数据成员与成员函数封装在类中。(2)设计增添、显示、查询、修改、删除、保存等函数。122 课程设计的意义(1)通过课程设计的综合训练,培养了学生分析解决实际问题和编程等实际动手能力。帮助了同学系统的掌握C+课程的主要内容。(2)通过详细的实例分析,循环渐进的描述,启发学生顺利的完成设计。课程设计将设计要求、需求分析、算法设计、编程和实例测试运行分开,为学生创造分析问题、独立思考的条件。(3)让学生深切领悟到实验过程中的得失,积极思考实验中遇到的问题,并获得解决之后的快乐。(4)通过编写一个较长的程序,实现了对人员信息的管理,激发了学生学习编程的兴趣。13 课程设计环境Microsoft Visual C+ 6.0第二章 需求分析21 问题描述高校人员工资管理系统中有9个类:教师类、实验员类、行政人员类、教师兼实验员类、行政人员兼教师类、教师管理类、实验员管理类、行政人员管理类、教师兼实验员管理类和行政人员兼教师类。共有信息包括:包括人员的编号、姓名、性别等属性,还包括对员工基本信息的录入、对员工信息的显示和计算实月薪等功能。其中,教师类还包括:课时数属性,实验员包括:实验补助属性,行政人员包括:行政补助属性,教师类、实验员类、行政人员类、教师兼实验员类和行政人员兼教师类这五个类都公有继承人员类。22 功能要求基本功能:1) 添加功能:程序能够添加相应的记录;2) 查询功能:能根据编号和姓名进行查询,并显示相应的记录信息;3) 编辑功能:根据查询结果对相应的记录进行修改;4)删除功能:根据查找结果,完成具体记录的删除。5)保存功能:将对高校人员信息进行的添加、删除、修改结果保存到文本文件中。23 问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: 1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;2)分析系统中的各个实体及它们之间的关系; 3)根据问题描述,设计系统的类层次; 4)完成类层次中各个类的描述; 5)完成类中各个成员函数的定义; 6)完成系统的应用模块; 7)功能调试; 8)完成系统总结报告。第三章 系统设计31 数据设计311 类设计1.人员的管理需包含人员的基本信息,所以定义一个人员类如表3-1所示:表 3-1人员类类名人员类数据成员protected: num(编号) name(姓名)sex(性别)成员函数public: Input():输入函数 Output():输出函数setnum():设置编号函数2. 根据学校中员工的工作性质的不同,将所有员工分为教师、实验员、行政人员、教师兼实验员、行政人员兼教师五类。表3-2 教师类类名教师类(公有继承员工类)数据成员pubilc: class_time(课时数);成员函数public: setnum():(设置编号)Input():(输入信息)Output():(输出信息) Getnum():(返回编号) Getname():(返回姓名)表3-3 实验员类类名实验员类(公有继承员工类)数据成员pubilc: experimente_bu(实验补助);成员函数public: setnum():(设置编号)Input():(输入信息)Output():(输出信息)Getnum():(返回编号) Getname():(返回姓名)表3-4行政人员类类名行政人员类(公有继承员工类)数据成员public: administrative_bu(行政补助);成员函数public: setnum():(设置编号)Input():(输入信息)Output():(输出信息)Getnum():(返回编号) Getname():(返回姓名)表3-5教师兼实验员类类名教师兼实验员类(公有继承教师类和实验员类)数据成员无成员函数public: setnum():(设置编号)Input():(输入信息)Output():(输出信息)Getnum():(返回编号) Getname():(返回姓名)表3-6行政人员兼教师类类名行政人员兼教师类类(公有继承行政人员类和教师类)数据成员无成员函数public: setnum():(设置编号)Input():(输入信息)Output():(输出信息)Getnum():(返回编号) Getname():(返回姓名)3、为了控制以上的类,分别建立了5个管理类,以教师的管理了为例:表 3-6 教师管理类类名教师管理类数据成员Teacher_t 100 (创建教师的数据数组空间);a(存储人员编号);vc(统计人员数和进行操作时的指针); 表 3-7 实验员管理类类名教师管理类数据成员Experimenter_e 100 (创建教师的数据数组空间);a(存储人员编号);vc(统计人员数和进行操作时的指针); 表 3-6 行政人员管理类类名教师管理类数据成员Administrativer_a 100 (创建教师的数据数组空间);a(存储人员编号);vc(统计人员数和进行操作时的指针); 表 3-6 教师兼实验员管理类类名教师管理类数据成员Teacher_Experimenter_te 100 (创建教师的数据数组空间);a(存储人员编号);vc(统计人员数和进行操作时的指针); 表 3-6 行政人员兼教师管理类类名教师管理类数据成员Administrativer_Teacher_at 100 (创建教师的数据数组空间);a(存储人员编号);vc(统计人员数和进行操作时的指针); 312 类之间的关系人员类是教师、实验员、行政人员类的基类,这四类公有继承人员类,教师兼实验员共有继承教师类和实验员类,行政人员兼教师类公有继承行政人员类和教师类。313 函数设计根据要求,为了功能的实现,通过vc作为指针标记的实现功能。分别以6个功能函数进行对数据的操作(下面以经理类为例)void add(); (信息的添加) void find(); (信息的查找)void change(); (信息的编辑)void Delete(); (信息的删除)void Save(); (信息的存储) void Read() (信息的读取)32 结构设计人员类实验员类教师类行政人员类教师兼实验员类行政人员兼教师类321 系统流程322 界面设计1. 主菜单界面,如图3-1所示:2. 教师管理界面 如图3-2所示:3. 实验员管理界面 如图3-3所示:4. 行政人员管理类 如3-4所示 5. 教师兼实验员管理类 如3-5所示:6. 行政人员兼教师类管理类 如3-6所示:第四章 系统实现41 类实现class person /人员类class Teacher:virtual public person /教师类class Experimenter:virtual public person /实验员类class Administrativer:virtual public Person /行政人员类class Teacher_Experimenter:virtual public Teacher,virtual public Experimenter / 教师兼实验员class Administrativer_Teacher:virtual public Administrativer,virtual public Teacher /教师兼行政人员类 class Teacher_t /教师管理类class Experimenter_e /实验员管理类class Administrativer_a /行政人员管理类class Teacher_Experimenter_te /教师兼实验员管理类class Administrativer_Teacher_at /行政人员兼教师类42 函数实现由于5类的功能函数基本一致,下面就以教师类的函数为例:#include #include #include using namespace std;const int n=100;class personpublic:int num;char name20;char sex20; string type; /职工类别;int jibensalas; /基本工资;person() ;class Teacher:virtual public person /教师类继承人员类;public:int class_time; /课时数;Teacher():person() /对数据成员初始化;type=teacher;jibensalas=800;void setnum()cinnum;void input() /输入教师的数据;coutnum;coutname;coutsex;coutclass_time; void Output() /输出函数 cout教师的编号:numendl;cout教师的姓名:nameendl;cout教师的性别:sexendl; cout教师课时数:class_timeendl;cout教师的工资为:jibensalas+20*class_time=100) cout人员已存满!endl; return; else Teacher te;cout请输入要添加的员工编号endlendl;cout输入0 可结束添加endla; while(a) for(int i=0;ivc;i+) if(a=teacheri.Getnum() cout您输入的员工编号已存在!请再次输入员工编号:endl; break; if(i=vc) cout该员工可添加:endl; te.input(); teachervc=te; vc+; cout您已经成功添加,输入0可结束添加!a;void Teacher_t:find() /查询函数int c;cout按编号查询,请输入1。endl;cout按姓名查询,请输入2。endl;cout按0可以结束查询。c;if(c=1) int a; couta; while(a) for(int i=0;ivc;i+) if(a=teacheri.Getnum() teacheri.Output();break; if(i=vc) cout记录为空endl; couta; if(c=2) char l20,s20=0;int k=0; coutl; while(strcmp(l,s)!=0) for(int i=0;ivc;i+) if(l=teacheri.Getname() k=1; teacheri.Output(); if(k=0) cout记录为空endl; coutl;void Teacher_t:change() /编辑函数 int a;Teacher b; couta;while(a) for(int i=0;ivc;i+) if(a=teacheri.Getnum() cout人员信息为:endl;teacheri.Output();cout请输入修改后的编号endl; b.setnum(); for(int j=0;jvc;j+) if(b.Getnum()=teacherj.Getnum()&a!=teacherj.Getnum()cout输入编号已存在请重新输入:endl; b.setnum(); if(j=vc)cout该人员信息可以录入endl; teacheri.input(); cout修改成功!endl;break; if(i=vc) cout记录为空endl;couta;void Teacher_t:Delete() /删除函数cout按编号删除,请输入1。endl;cout按姓名删除,请输入2。endl;cout按0可以结束此功能。c;if(c=1)couta;while(a) for(int i=0;ivc;i+) if(a=teacheri.Getnum() teacheri.Output(); coutx;if(t=x)vc=vc-1;for(int j=i+1;j=vc;i+,j+) teacheri=teacherj;cout删除成功!endl;return;if(f=x)return; if(i=vc) cout记录为空!endl; return; if(c=2) char l20,s20=0; coutl; while(strcmp(l,s)!=0) for(int i=0;ivc;i+) if(l=teacheri.Getname() teacheri.Output(); coutx; if(t=x)vc=vc-1;for(int j=i+1;j=vc;i+,j+) teacheri=teacherj;cout删除成功!endl;return;if(f=x)return;if(i=vc) cout记录为空!endl; return; void Teacher_t:Save() /保存函数 ofstream outfile(D:Teacher.txt); if(!outfile) coutOPEN ERROR!endl; exit(1); outfile.write(char*)&teacher,vc*sizeof(teacher0); cout保存成功endl; outfile.close();void Teacher_t:Read() /读取函数ifstream infile(D:Teacher.txt);if(!infile) coutOPEN ERROR!endl; exit(1); while(infile.read(char*)&teachervc,sizeof(teacher0)vc+;coutvc的值为:vc;cout读取成功endl;infile.close();43 主函数实现int main() 主函数Menu();return 0;第五章 系统测试51 模块测试5-1 添加功能5-2 按编号查询5-3 按姓名查询5-4 修改功能5-5 按编号删除5-6 按姓名删除5-7 保存和读取功能5-8 主菜单退出52 课程设计过程中遇到的问题1、之前没有看那五个模块,最一开始编程的时候,直接就进行了编程。导致用了好多的时间却没有收到好的成效,结果最后反而重新写了,没有提前想好思路和结构。2、经过询问老师和学长,解决了很多问题,一个就是指针标记,现在链表还不会用,知道了应该如何标记。3、文件的存储也出现很大问题,最初都已经编了一半的的程序报废了,修改时文件存不进去,后来请教学长,学会了二进制的存储,才将程序完成。 总 结本次课程

温馨提示

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

评论

0/150

提交评论