职工信息管理系统C++版 程序设计说明书Word下载.docx
- 文档编号:18465469
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:27
- 大小:70.36KB
职工信息管理系统C++版 程序设计说明书Word下载.docx
《职工信息管理系统C++版 程序设计说明书Word下载.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统C++版 程序设计说明书Word下载.docx(27页珍藏版)》请在冰豆网上搜索。
windows7
MicrosoftVisualC++6.0
主要功能:
1。
添加职工信息;
2。
删除职工信息及薪酬;
3。
修改职工信息;
4。
查询职工信息及薪酬;
5。
设置职位基本薪酬;
6。
存储职位信息;
程序说明:
准确性要求高,可靠性要求高,输入控制严格,页面响应时间短,
用户界面友好,输出准确,功能强大!
!
运行环境:
WindowsNT/2000/XP/VISTA/WIN7
文件说明:
程序源代码(职工信息管理系统.cpp);
程序运行文件(职工信息管理系统.exe);
职工信息存储文件(Employee.text);
参考资料:
《C++程序设计》谭浩强编著清华大学出版社
程序结构
函数头:
<
iostream.h>
//cin,cout,等函数
string.h>
//类,对象,等函数定义
fstream.h>
//文本文档的读/写/复制等函数
<
ctype.h>
主函数:
voidmain()
基类职工类employee
派生类:
Technician技术员类、Salesman销售员类、Salesmanager销售经理类、Manager经理类、Company公司类。
在公司类中定义六个模块功能的实现方法:
voidAdd()//添加
voidDelete()//删除
voidModify()//修改
voidQuery()//查询
voidset()//设置
voidSave()//载入
voidLoad()//储存
程序流程图
程序源程序模块设计说明
1.函数头:
#include<
iostream>
#include<
fstream>
调用系统在程序中将要用到的函数。
2.主函数:
switch(c)
{
case'
1'
:
a.Add();
break;
2'
a.Delete();
break;
3'
a.Modify();
4'
a.Query();
5'
a.Set();
6'
a.Save();
7'
a.Load();
}
在do-while循环中嵌套switch结构,用来调用构造函数,实现函数模块的功能。
3.基类及继承类:
3-1.基类:
classEmployee//职工类
protected:
intNo;
//编号
charName[20];
//姓名
charSex[10];
//性别
intDuty;
//职位
doubleEarning;
//收入
Employee*next;
public:
Employee(charID,char*Name,intDuty)
this->
Duty=Duty;
strcpy(this->
Name,Name);
No=ID;
}
virtualvoidCalcSalary()=0;
virtualvoidOutput()=0;
friendclassCompany;
};
先定义一个职工基类,设置了属于保护类的职工基本属性,以及构造函数Employee,可以给职工类型继承。
3-2.继承类:
classTechnician:
publicEmployee//技术员类
private:
doubleWorkload;
//上个月完成工作量
Technician(charID,char*Name,intDuty,doubleWorkload):
Employee(ID,Name,Duty)
Workload=Workload;
doubleGetWorkload()
returnWorkload;
voidSetWorkload(doubleAmount)
Workload=Amount;
voidCalcSalary()
Earning=Workload*100;
voidOutput()
CalcSalary();
cout<
No<
"
\t"
Name<
\t技术员\t"
\t\t"
Earning<
endl;
以技术员类为例,继承了Employee职工类。
在这个类中定义了上个月的工作量Workload,获得工作量函数doubleGetWorkload(),传入工作量函数voidSetWorkload(doubleAmount),工作量计算薪酬函数voidCalcSalary(),输出薪酬结果以及该类职工信息函数voidOutput()。
3-3.公司类:
classCompany//公司类
Employee*Worker;
//职工表
voidClear();
//清除内存中数据
Company()
Worker=0;
Load();
~Company()
Employee*p;
p=Worker;
while(p)
p=p->
next;
deleteWorker;
Worker=p;
在公司类中先定义一个职工表Worker用于存储职工信息,然后构造函数中可以构造链表,用于管理职工的信息。
析构函数用来释放存储空间,清除链表结点中的信息。
模块功能的实现方法:
voidCompany:
Add()//增加人员
//新结点指针
\n**新增员工**\n"
;
//输入员工信息
输入工号:
cin>
>
ID;
输入职位(1-技术员3-经理4-销售经理5-销售员):
Duty;
输入姓名:
Name;
输入性别:
Sex;
if(Duty!
=4)
上个月完成工作量:
Workload;
//创建新员工结点
switch(Duty)
case1:
p=newTechnician(ID,Name,Duty,Workload);
case3:
p=newManager(ID,Name,Duty,Workload);
case4:
p=newSalesmanager(ID,Name,Duty);
case5:
p=newSalesman(ID,Name,Duty,Workload);
p->
next=0;
构造添加函数Add(),在函数中先定义职工的基本信息和新节点指针,创建新的初始化构造函数,用于添加新的职工信息。
职工结点加入链表:
if(Worker)//若已经存在结点
Employee*p2;
p2=Worker;
while(p2->
next)//查找尾结点
p2=p2->
p2->
next=p;
//连接
else//若不存在结点(表空)
使用指针p和职工表Worker构造一个单链表,在if选择结构和while选择结构中添加新的结点,这个新的结点可以输入职工信息和存储信息的地址,再把职工信息添加到职工链表中。
其他模块删除函数Delete()、修改函数Modify()、查询函数Query()、载入函数Save()和存储函数Load()都使用了链表的构造方法。
具体内容可以看代码部分。
Set()//设置基础数据
\n**设置基础数据**\n"
经理的基本工资["
CSalary<
元]:
CSalary;
销售经理的基本工资["
APSalary<
APSalary;
员工工号[>
="
ID<
]:
设置经理和销售经理的基本工资,用于计算这两个职位的工资。
使用说明
这是一个关于职工信息管理系统,具有增加、输出、删除、查询、修改、保存、载入数据、计算总支出薪酬等功能,建立了一个含有工号、姓名、性别、工作量等成员的类的变量classEmployee。
系统中已预输入了5个职工的相关数据以及基本薪酬数据,调试是可按“4”键先查看输入的数据记录。
调试过程中,可按照有关提示进行相关操作:
增加职工数据按“1”键;
删除职工数据按“2”键;
修改职工数据按“3”键;
查询职工数据按“4”键;
基础数据设置按“5”键;
数据存盘按“6”键;
数据装入按“7”键;
退出系统按“8”键。
总结
经过对职工信息管理系统的分析与编写,我得到了很大的收获。
自主学习的必要性更是解决问题的基础。
这次设计使我重温了以前学过的各科知识,让我对C++编程有了更深刻的认识。
除了对系统作出正确的分析,实际的调查工作对系统的整体设计有着至关重要的作用。
所以在分析系统之前,我花了一些时间在公司的实际管理工作调查上。
也因为这样,如何编写代码逐渐变得明朗。
每一个功能模块经过调查后后,各个功能逐渐显露出来,然后,反复探讨,验证这项功能是否有存在的必要,是否可以改进得更好。
在这样的前提下,最后顺利完成了这份设计。
这次C++系统设计作业,提升了我分析问题的能力和思考问题的逻辑能力,更明白实际调研的重要性。
从这次设计学到的东西,相信会对我们日后的学习工作起到很大的指导作用
代码附录:
usingnamespacestd;
//全局数据,对象
doubleAPSalary;
doubleCSalary;
intID;
//员工工号
classEmployee//员工类
classSalesman:
publicEmployee//销售员类
Salesman(charID,char*Name,intDuty,doubleWorkload):
Earning=Workload*0.04;
\t销售员\t"
classSalesmanager:
publicEmployee//销售经理类
Salesmanager(charID,char*Name,intDuty):
Employee(ID,Name,Duty)
Earning=APSalary+Workload*0.005;
\t销售经理\t\t"
classManager:
publicEmployee//经理类
//上个月完成工作量
Manager(charID,char*Name,intDuty,doubleWorkload):
Earning=CSalary;
//固定月薪
\t经理\t"
//员工表
voidFind(charName[20]);
//按姓名查找
voidFind(intID);
//按编号查找
voidAdd();
//增加人员
voidDelete();
//删除人员
voidModify();
//修改人员
voidQuery();
//查询人员
voidSet();
//基础数据设置
voidSave();
//数据存盘(包括基础数据,人员数据)
voidLoad();
//数据装入(包括基础数据,人员数据)
Clear()//清除内存中人员数据(内部使用)
Employee*p=Worker;
Worker=p->
deletep;
Find(charName[20])
//员工结点加入链表
Delete()//删除人员
\n**删除员工**\n"
ID:
No;
//查找要删除的结点
Employee*p1,*p2;
p1=Worker;
while(p1)
if(p1->
No==No)
else
p2=p1;
p1=p1->
//删除结点
if(p1!
=NULL)//若找到结点,则删除
if(p1==Worker)//若要删除的结点是第一个结点
Worker=p1->
deletep1;
else//若要删除的结点是后续结点
next=p1->
找到并删除\n"
else//未找到结点
未找到!
\n"
Modify()//修改员工
intNo,Duty;
\n**修改员工**\n"
//查找要修改的结点
//修改结点
=NULL)//若找到结点
p1->
Output();
调整职位(1-技
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工信息管理系统C+版 程序设计说明书 职工 信息管理 系统 C+ 程序设计 说明书