版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、23 / 26河南城建学院面向对象语言程序设计课程设计任务书班 级 0814102 专 业 计算机科学与技术 姓 名 李 二 萌 学 号 081410219 课程名称 面向对象语言程序设计 设计名称 高校工资管理系统 指导教师 耿永军 刘荣辉 周二强 计算机科学与工程系2012年6月20日摘要高校工资管理系统是企业管理中的一个重要内容,随着时代的进步,企业人员数量也不断增加、分工的不断细化、各个行业间联系的不断密切,对人事管理的要求也不断提高。如何管理好企业内部员工的信息,对员工实施高效的宏观管理,对企事业单位的人员构成情况和发展趋势进行统计、规划、分析并制定切实可行的人事政策,是一项繁重而艰
2、巨的任务。 本文是采用C+作为前台开发工具,SQL Server2000作为后台数据库平台的基于C/S的两层模式的管理系统。旨在实现对现有的企业人事管理工作中遇到的各种情况和大量数据在数据库存储的基础上,提供信息咨询,信息检索,信息存取等服务,在此论文中主要实现对存储在数据库中的数据表进行这些简单的操作,为提高企业人事管理效率提供了行之有效的手段。 关键词:VC+6.0;高校工资管理目录目录1第一章开发环境和开发工具11.1C/C+语言简介11.2 开发背景11.3 开发环境1第二章 算法思想22.1 系统需求分析22.2 系统总体设计22.2.1 系统设计目标22.2.2 开发设计思想32.
3、2.3 系统功能模块设计32.3 面向对象思想描述5第三章面向对象实现63.1 结构63.2 程序模块63.3 各类之间的关系63.4 源程序代码6第四章测试与分析194.1 测试数据选择194.2 测试结果分析19总 结21心得体会22参考文献23第一章 开发环境和开发工具1.1 C/ C +语言简介也可以让各种组件方便的转变为基于Web的应用,并且能够通过Internet被各种系统或是其他开发语言所开发的应用调用。1.2 开发背景 随着科学技术的不断发展,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。采用计算机进行信息化管理已成为衡
4、量企业管理科学化和现代化的重要标志,而人事管理的全面自动化、信息化则是其中重要的组成部分。人事管理的好坏对于企业的决策者和管理者来说都至关重要,在很大程度上影响着企业的经济效益和社会效益。因此,本文所研究的人事管理信息系统具有一定的使用价值和现实意义。1.3 开发环境本文所采用的开发环境主要是基于C+在Microsoft Visual C+平台上开发的系统,界面友好,功能强大,调试也很方便。这是微软出的一个C语言集成开发环境(IDE),主要有:VC+6.0、VS2005VS2008VS2010等,分为企业版和学生版等。对于初学者VC+6.0是比较容易上手的,但其对标准支持的不好可能使人养成不良
5、的编程习惯。第二章 面向对象思想2.1 系统需求分析C+不仅是一般程序设计(特别是非数值性程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序的重要基。本实验中,对不同的对象采取不同的存储结构,对参赛学校采取链式结构,而对于参赛运动员采取一个结构就可以了。本程序中主要用到线性表的一些基本操作,将各学校信息,运动员信息,项目信息都构造成线性表。具体功能通过主函数分别调用各函数实现。参考本实验的功能要求,本程序分为七个模块:主函数、信息录入函数、信息统计函数、信息查询函数,信息删除函数、存盘函数、读盘函数。信息录入函数有包括教师信息录入,实验人员信息录入,行政人员信息录入
6、,教师兼实验人员信息录入,教师兼行政人员信息录入。信息统计不再结果中显示出来,为了信息查询。信息查询函数包括按编号查询、按人员姓名查询。信息删除函数是删除无关人员信息。2.2 系统总体设计2.2.1 系统设计目标 本文研究开发的人事管理信息系统用于支持企业完成劳动人事管理工作,有如下三个方面的目标: 支持企业实现规范化的管理。支持企业高效率完成劳动人事管理的日常业务,包括新员工加入时人事档案的建立、老员工转出、辞职、退休等。 支持企业进行劳动人事管理及其相关方面的科学决策,如企业领导根据现有的员工数目决定招聘人数等。2.2.2 开发设计思想 基于以上系统设计目标,本文在开发人事管理信息系统时遵
7、循了以下开发设计思想: 采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。尽量达到操作过程中的直观、方便、实用、安全等要求。系统采用C/S体系结构,Clinet(客户端)负责提供表达逻辑、显示用户界面信息、访问数据库服务器;Server(服务器端)则用于提供数据服务。(写出三层设计思想)系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。2.2.3 系统功能模块设计 本系统有:信息录入、信息查询、信息删除、信
8、息修改、数据存盘和数据装入。得到如图3-1所示的系统功能模块图。高校工资管理系统信息录入信息查询信息删除按编号查询信息修改数据存盘数据装入系统功能模块图2.3 面向对象思想描述本实验中,通过构造类来实现功能,先构造一个person类,里面是人员的基本信息,然后通过继承person类,来实现teacher、assistant、manager、tercher_assistant和manager_teacher类。程序中还有一个college类,里面包含 void Add(); /增加职工void Delete(); /删除职工void Modify(); /修改职工void Print(); /输
9、出职工信息void Save(); /职工信息存盘void Load(); /职工信息装入六个主要函数,通过这些函数实现程序需要求的功能。并且college类是person的友元类。第三章 面向对象实现3.1 结构高校工资管理系统是一个数据库应用系统,高校人员的所有信息都保存在数据库中。 3.2程序模块 程序主要有六个模块:信息录入、信息查询、信息删除、信息修改、数据存盘和数据装入。3.3 各类之间的关系 程序开始建立了一个Person类,然后有在Person类的基础上继承了Teacher类、Assistant类和Manager类。而Teacher_ Assistant类是继承于Teacher
10、类和Assistant类上,Manager_Teacher类是继承于Manager类和Teacher类上。 由于Teacher类、Assistant类和Manager类是继承于Person类,他们也是public继承,因此Person类里面的protected类型的变量子类是可以用的。子类从中继承了No(编号)、Name20(姓名)、Duty(职位)、Salary(基本工资)和Person类next指针。而Teacher_ Assistant类和Manager_Teacher类是两个父类,多继承。 程序还有一个友元类,College类是Person类的友元类。3.4 源程序代码#include
11、#include #includeusing namespace std;#include class Person /人员类(抽象类)protected:int No; /编号char Name20; /姓名int Duty; /人员类别标志(0:教师,1:实验员,2:行政人员,3:教师兼实验员,4:行政兼教师)double Salary; /基本工资Person *next; /指针域public:Person() /基类构造next=NULL; /指针域设置为空virtual Person() /基类虚析构virtual void Input()=0; /从键盘输入数据virtual v
12、oid Input(ifstream& ifs)=0; /从文件输入数据virtual void Output()=0; /向屏幕输出数据virtual void Output(ofstream& ofs)=0; /向文件输出数据virtual double Incoming()=0; /计算收入friend class College;class Teacher:virtual public Person /教师类protected:int Hours; /教师课时public: /为对象设置数据分为两种途径,通过1)构造函数,2)一般成员函数/分开可以使得程序中应用更加灵活/本程序采用:缺
13、省构造+Input()Teacher() /构造函数,初始化部分数据Duty=0; Salary=800;void Input() /键盘补充输入其它数据coutNo;coutName;coutHours; void Input(ifstream& ifs)ifsNoNameDutyHours; void Output()coutNotNametDutytHourst工资:Incoming()endl;void Output(ofstream& ofs)ofsNotNametDutytHourst工资:Incoming()endl;double Incoming()return Salary+
14、(Hours-120)*20;class Assistant:virtual public Person /实验员protected:int Allowance;int Hours;public:Assistant()Duty=1; Salary=650;Allowance=150;void Input()coutNo;coutName;coutHours;void Input(ifstream& ifs) ifsNoNameDutyHours; void Output()coutNotNametDutytHourst工资:Incoming()endl;void Output(ofstream
15、& ofs)ofsNotNametDutytHourst工资:Incoming()endl;double Incoming()return Salary+Allowance+(Hours-70)*20;class Manager:virtual public Person /行政人员protected:int Allowance;public:Manager() Duty=2;Salary=750;Allowance=250;void Input()coutNo;coutName;void Input(ifstream& ifs) ifsNoNameDuty; void Output()cou
16、tNotNametDutyt工资:Incoming()endl;void Output(ofstream& ofs)ofsNotNametDutyt工资:Incoming()endl;double Incoming()return Salary+Allowance;class Teacher_Assistant:public Teacher,public Assistant /教师兼实验员public:Teacher_Assistant()Duty=3;Teacher:Salary=800;void Input()coutNo;coutName;coutTeacher:Hours;coutAs
17、sistant:Hours;void Input(ifstream& ifs) ifsNoNameDutyTeacher:HoursAssistant:Hours; void Output()coutNotNametDutytTeacher:HourstAssistant:Hourst工资:Incoming()endl;void Output(ofstream& ofs)ofsNotNametDutytTeacher:HourstAssistant:Hourst工资:Incoming()endl;double Incoming()return Salary+(Teacher:Hours-120
18、)*20+Allowance+(Assistant:Hours-70)*20;class Manager_Teacher:public Manager,public Teacher /行政人员兼教师public:Manager_Teacher()Duty=4;Manager:Salary=750;void Input()coutNo;coutName;coutHours;void Input(ifstream& ifs) ifsNoNameDutyHours; void Output()coutNotNametDutytHourst工资:Incoming()endl;void Output(o
19、fstream& ofs)ofsNotNametDutytHourst工资:Incoming()endl;double Incoming()return Salary+Allowance+(Hours-120)*20;class Collegeprivate:Person *PL;void Clear();int College:Find(int ID,Person *p1,Person *p2);public:College(); /构造College(); /析构void Add(); /增加职工void Delete(); /删除职工void Modify(); /修改职工void Pr
20、int(); /输出职工信息void Save(); /职工信息存盘void Load(); /职工信息装入;College:College() /构造函数(创建1个头结点的链表)Person *p=new Teacher;PL=p;coutnext;delete p;p=PL;PL=NULL;void College:Add() /增加职工coutnext)p=p-next;int ch;coutch;/创建新结点,录入数据,连接到链表Person *pt;switch(ch) case 0: pt=new Teacher; pt-Input();p-next=pt; break; case
21、 1: pt=new Assistant; pt-Input();p-next=pt; break; case 2: pt=new Manager; pt-Input();p-next=pt; break; case 3: pt=new Teacher_Assistant; pt-Input();p-next=pt; break; case 4: pt=new Manager_Teacher; pt-Input();p-next=pt;break; default: return;void College:Clear() /清除所有的职工结点(仅保留头结点)Person *p=PL-next;
22、while(p)PL-next=p-next;delete p;p=PL-next;/查找职工结点(返回1-找到,0-未找到.结点指针由p1返回,p2为前看指针)int College:Find(int ID,Person *p1,Person *p2) *p1=PL-next;*p2=PL;while(*p1)if(*p1)-No=ID)break; /找到else *p2=*p1; /继续查找*p1=(*p1)-next;return *p1?1:0;void College:Delete() /删除职工coutn* 删除职工 *n;int No;Person *p1,*p2;coutNo
23、;if(!Find(No,&p1,&p2)coutnext=p1-next; /连接delete p1;cout正确删除!n;void College:Modify() /修改职工coutn* 修改职工 *n;int No;Person *p1,*p2;coutNo;if(!Find(No,&p1,&p2)coutOutput(); /输出原来的职工信息(做提示)p1-Input(); /输入新的职工信息(更新)cout修改完成!n;void College:Print() /输出职工信息coutn* 职工信息表 *n;coutnext;if(!p)coutOutput();p=p-next;
24、void College:Save() /职工信息存盘ofstream f(Person.txt,ios:out); /打开文件/遍历输出至文件Person *p=PL-next;while(p) p-Output(f);p=p-next;f.close(); /关闭文件coutbufbufDuty;if(f)/根据人员类型创建新结点switch(Duty)case 0: p2=new Teacher; break;case 1: p2=new Assistant; break;case 2: p2=new Manager; break;case 3: p2=new Teacher_Assis
25、tant; break;case 4: p2=new Manager_Teacher; break;default: f.close(); return;p-next=p2;p=p-next;f.seekg(t);p-Input(f); elsebreak; /关闭文件f.close();void main()char ch;College c; /定义大学对象/显示主菜单,接受选择,并分支调用大学类的相应功能的成员函数do system(pause);system(cls);coutn;cout * * * * * * * * * *n;cout * * * * * * * * * * *n
26、;cout* * *n;cout * * * *n;cout* *高校工资管理系统* *n;cout * * * *n;cout* * *n;cout * *1:增加职工 *n;cout* *2:删除职工 *n;cout * *3:修改职工 *n;cout* *4:输出职工信息(工资) *n;cout * *5:数据存盘 *n;cout* *6:数据装入 *n;cout * *7:退出 *n;cout* *请选择(1-7): *n;cout * * * * * * * * * * *n;coutch;system(cls);switch(ch)case 1: c.Add(); break;ca
27、se 2: c.Delete();break;case 3: c.Modify();break;case 4: c.Print(); break;case 5: c.Save(); break;case 6: c.Load(); break;while(ch!=7); 第四章 测试与分析4.1 测试数据选择(0:教师,1:实验员,2:行政人员,3:教师兼实验员,4:行政兼教师)编号 姓名 职务 工作时间01 Zhang3 0 20002 Li4 1 12003 Wang5 204 Zhao6 3 200 12005 Qian7 4 200 4.2 测试结果分析主菜单增加职工删除职工修改职工 职
28、工信息 数据存盘 Person.txt文件总 结在今后的工作、学习中我将认真总结经验教训,努力使自己成为一名技术过硬、工作严谨、思维活跃的工程人员,为提高人们的生活质量做出更大的贡献。 本文所述高校工资管理系统特色在于能输入各个人员信息,通过输入的人员信息来计算出人员的工资,并且可以通过编号查询已输入的人员信息且可修改错误人员信息和删除无关人员的信息,并可将信息保存在txt文件中方便查询。当然,这个高校工资管理系统也有很多不足之处,例如不能更加高效的为高校提供所需,并且多余输入错误的数据不能进行判定,健壮性不好。程序在查找上也有不足,程序只能通过编号查找信息,不能通过姓名查找。 心得体会做完这个课程设计,我们的自信一下子提高了;尽管对于有些人这种程序会很简单,可对我们C+初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在很美妙啊!虽然对着电脑做程序,有点累有点热,可是当看到劳动成果时,真是别有一番滋味在心头啊!世上无难事,只怕有心人,的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年安徽房屋租赁合同模板(二篇)
- 2024年小学生寒假学习计划范本(五篇)
- 2024年学校传染病工作制度范文(二篇)
- 2024年国际劳务合同例文(四篇)
- 2024年单位租房合同样本(二篇)
- 2024年学生会秘书处工作计划样本(四篇)
- 2024年城乡劳动者临时务工劳动合同(三篇)
- 2024年小学教师年终工作总结简单版(四篇)
- 2024年单位年度工作计划样本(六篇)
- 2024年大学教师个人工作计划范本(二篇)
- 高三攻略:家长与学生
- 2024年考研英语真题及答案(完整版)
- 安全意识远离危险
- 凯乐石行业分析
- 食品质量与安全专业职业生涯规划
- 世界卫生统计报告
- 值长口试试题
- 《橡皮障的应用方法》课件
- 铁路新职人员培训计划
- 国开电大绩效与薪酬实务(河北)形考任务三参考答案
- (完整文本版)小学英语音标测试100题
评论
0/150
提交评论