ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:70.36KB ,
资源ID:5477974      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5477974.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(职工信息管理系统C++版 程序设计说明书.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

职工信息管理系统C++版 程序设计说明书.docx

1、职工信息管理系统C+版 程序设计说明书高级语言程序设计说明书职工信息管理系统 系 别 专业班级 学生姓名 指导教师 注释:2010计算机工程系高级语言程序设计大作业目 录引言 (3)程序结构 (3)程序流程图 (4)程序源程序模块设计说明 (5) 1.函数头 (5)2.主函数 (5)3.基类及继承类 (5)3-1.基类 (5)3-2.继承类 (6)3-3.公司类 (6)程序使用说明 (8)总结 (9)引言程序名称:职工信息管理系统 开发平台:windows 7 Microsoft Visual C+ 6.0主要功能:1。添加职工信息; 2。删除职工信息及薪酬; 3。修改职工信息; 4。查询职工

2、信息及薪酬; 5。设置职位基本薪酬; 6。存储职位信息;程序说明:准确性要求高,可靠性要求高,输入控制严格,页面响应时间短,用户界面友好,输出准确,功能强大! 运行环境:Windows NT/2000/XP/VISTA/WIN7文件说明:程序源代码(职工信息管理系统.cpp); 程序运行文件(职工信息管理系统.exe); 职工信息存储文件(Employee.text);参考资料:C+程序设计 谭浩强 编著 清华大学出版社程序结构函数头: / cin , cout , 等函数 /类,对象,等函数定义 / 文本文档的读/写/复制 等函数 主函数:void main () 基类职工类employee

3、派生类:Technician技术员类、Salesman销售员类、Salesmanager销售经理类、Manager经理类、Company公司类。在公司类中定义六个模块功能的实现方法:void Add () /添加 void Delete () /删除 void Modify () /修改 void Query () /查询 void set () /设置 void Save() /载入 void Load() /储存 程序流程图程序源程序模块设计说明1.函数头: #include #include #include #include 调用系统在程序中将要用到的函数。2.主函数:switch(c

4、) case 1: a.Add(); break; case 2: a.Delete();break; case 3: a.Modify();break; case 4: a.Query(); break; case 5: a.Set(); break; case 6: a.Save(); break; case 7: a.Load(); break; 在do-while循环中嵌套switch结构,用来调用构造函数,实现函数模块的功能。3.基类及继承类:3-1.基类: class Employee /职工类 protected: int No; /编号 char Name20; /姓名char

5、 Sex10; /性别int Duty; /职位 double Earning; /收入 Employee *next; public: Employee(char ID,char *Name,int Duty) this-Duty=Duty; strcpy(this-Name,Name); this-No=ID; virtual void CalcSalary()=0; virtual void Output()=0; friend class Company; ;先定义一个职工基类,设置了属于保护类的职工基本属性,以及构造函数Employee,可以给职工类型继承。3-2.继承类:class

6、 Technician:public Employee /技术员类 private: double Workload; /上个月完成工作量 public: Technician(char ID,char *Name,int Duty,double Workload):Employee(ID,Name,Duty) this-Workload=Workload; double GetWorkload() return Workload; void SetWorkload(double Amount) this-Workload=Amount; void CalcSalary() Earning=W

7、orkload*100; void Output() CalcSalary(); coutNotNamet技术员tttEarningnext; delete Worker; Worker=p; Worker=0; 在公司类中先定义一个职工表Worker用于存储职工信息,然后构造函数中可以构造链表,用于管理职工的信息。析构函数用来释放存储空间,清除链表结点中的信息。模块功能的实现方法:void Company:Add() /增加人员 Employee *p; /新结点指针 int Duty; char Name20;char Sex10; /性别double Workload; coutn* 新

8、增员工 *n; /输入员工信息 coutID; coutDuty; coutName; coutSex;if(Duty!=4) coutWorkload; /创建新员工结点 switch(Duty) case 1:p=new Technician(ID,Name,Duty,Workload); break; case 3:p=new Manager(ID,Name,Duty,Workload); break; case 4:p=new Salesmanager(ID,Name,Duty); break; case 5:p=new Salesman(ID,Name,Duty,Workload);

9、 break; p-next=0;构造添加函数Add(),在函数中先定义职工的基本信息和新节点指针,创建新的初始化构造函数,用于添加新的职工信息。职工结点加入链表 :if(Worker) /若已经存在结点 Employee *p2; p2=Worker; while(p2-next) /查找尾结点 p2=p2-next; p2-next=p; /连接 else /若不存在结点(表空) Worker=p; /连接 使用指针p和职工表Worker构造一个单链表,在if选择结构和while选择结构中添加新的结点,这个新的结点可以输入职工信息和存储信息的地址,再把职工信息添加到职工链表中。其他模块删除

10、函数Delete()、修改函数Modify()、查询函数Query()、载入函数Save()和存储函数Load()都使用了链表的构造方法。具体内容可以看代码部分。void Company:Set() /设置基础数据 coutn* 设置基础数据 *n; cout经理的基本工资CSalaryCSalary; cout销售经理的基本工资APSalaryAPSalary; cout=IDID; 设置经理和销售经理的基本工资,用于计算这两个职位的工资。 使用说明这是一个关于职工信息管理系统,具有增加、输出、删除、查询、修改、保存、载入数据、计算总支出薪酬等功能,建立了一个含有工号、姓名、性别、工作量等成

11、员的类的变量class Employee。系统中已预输入了5个职工的相关数据以及基本薪酬数据,调试是可按“4”键先查看输入的数据记录。调试过程中,可按照有关提示进行相关操作:增加职工数据按“1”键;删除职工数据按“2”键;修改职工数据按“3”键;查询职工数据按“4”键;基础数据设置按“5”键;数据存盘按“6”键;数据装入按“7”键;退出系统按“8”键。总结经过对职工信息管理系统的分析与编写,我得到了很大的收获。自主学习的必要性更是解决问题的基础。这次设计使我重温了以前学过的各科知识,让我对C编程有了更深刻的认识。除了对系统作出正确的分析,实际的调查工作对系统的整体设计有着至关重要的作用。所以在

12、分析系统之前,我花了一些时间在公司的实际管理工作调查上。也因为这样,如何编写代码逐渐变得明朗。每一个功能模块经过调查后后,各个功能逐渐显露出来,然后,反复探讨,验证这项功能是否有存在的必要,是否可以改进得更好。在这样的前提下,最后顺利完成了这份设计。 这次C系统设计作业,提升了我分析问题的能力和思考问题的逻辑能力,更明白实际调研的重要性。从这次设计学到的东西,相信会对我们日后的学习工作起到很大的指导作用代码附录:#include #include #include #include using namespace std;/全局数据,对象 double APSalary; double CSa

13、lary; int ID; /员工工号 class Employee /员工类 protected: int No; /编号 char Name20; /姓名char Sex10; /性别int Duty; /职位 double Earning; /收入 Employee *next; public: Employee(char ID,char *Name,int Duty) this-Duty=Duty; strcpy(this-Name,Name); this-No=ID; virtual void CalcSalary()=0; virtual void Output()=0; frie

14、nd class Company; ; class Technician:public Employee /技术员类 private: double Workload; /上个月完成工作量 public: Technician(char ID,char *Name,int Duty,double Workload):Employee(ID,Name,Duty) this-Workload=Workload; double GetWorkload() return Workload; void SetWorkload(double Amount) this-Workload=Amount; vo

15、id CalcSalary() Earning=Workload*100; void Output() CalcSalary(); coutNotNamet技术员tttEarningWorkload=Workload; double GetWorkload() return Workload; void SetWorkload(double Amount) this-Workload=Amount; void CalcSalary() Earning=Workload*0.04; void Output() CalcSalary(); coutNotNamet销售员tttEarningWork

16、load=Workload; double GetWorkload() return Workload; void SetWorkload(double Amount) this-Workload=Amount; void CalcSalary() Earning=APSalary+Workload*0.005; void Output() CalcSalary(); coutNotNamet销售经理ttEarningWorkload=Workload; double GetWorkload() return Workload; void SetWorkload(double Amount)

17、this-Workload=Amount; void CalcSalary() Earning=CSalary;/固定月薪 void Output() CalcSalary(); coutNotNamet经理tEarningnext; delete Worker; Worker=p; Worker=0; void Find(char Name20);/按姓名查找 void Find(int ID);/按编号查找 void Add(); /增加人员 void Delete(); /删除人员 void Modify(); /修改人员 void Query(); /查询人员 void Set();

18、/基础数据设置 void Save(); /数据存盘(包括基础数据,人员数据) void Load(); /数据装入(包括基础数据,人员数据) ; void Company:Clear() /清除内存中人员数据(内部使用) Employee* p=Worker; while(p) Worker=p-next; delete p; p=Worker; void Company:Find(char Name20) void Company:Add() /增加人员 Employee *p; /新结点指针 int Duty; char Name20;char Sex10; /性别double Work

19、load; coutn* 新增员工 *n; /输入员工信息 coutID; coutDuty; coutName; coutSex;if(Duty!=4) coutWorkload; /创建新员工结点 switch(Duty) case 1:p=new Technician(ID,Name,Duty,Workload); break; case 3:p=new Manager(ID,Name,Duty,Workload); break; case 4:p=new Salesmanager(ID,Name,Duty); break; case 5:p=new Salesman(ID,Name,D

20、uty,Workload); break; p-next=0; /员工结点加入链表 if(Worker) /若已经存在结点 Employee *p2; p2=Worker; while(p2-next) /查找尾结点 p2=p2-next; p2-next=p; /连接 else /若不存在结点(表空) Worker=p; /连接 void Company:Delete() /删除人员 int No; coutn* 删除员工 *n; coutNo; /查找要删除的结点 Employee *p1,*p2; p1=Worker; while(p1) if(p1-No=No) break; else

21、 p2=p1; p1=p1-next; /删除结点 if(p1!=NULL)/若找到结点,则删除 if(p1=Worker) /若要删除的结点是第一个结点 Worker=p1-next; delete p1; else /若要删除的结点是后续结点 p2-next=p1-next; delete p1; cout找到并删除n; else /未找到结点 cout未找到!n; void Company:Modify()/修改员工 int No,Duty; char Name20; double Workload; coutn* 修改员工 *n; coutNo; /查找要修改的结点 Employee *p1,*p2; p1=Worker; while(p1) if(p1-No=No) break; else p2=p1; p1=p1-next; /修改结点 if(p1!=NULL)/若找到结点 p1-Output(); cout调整职位(1-技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1