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

上传人:b****3 文档编号:18465469 上传时间:2022-12-16 格式:DOCX 页数:27 大小:70.36KB
下载 相关 举报
职工信息管理系统C++版 程序设计说明书Word下载.docx_第1页
第1页 / 共27页
职工信息管理系统C++版 程序设计说明书Word下载.docx_第2页
第2页 / 共27页
职工信息管理系统C++版 程序设计说明书Word下载.docx_第3页
第3页 / 共27页
职工信息管理系统C++版 程序设计说明书Word下载.docx_第4页
第4页 / 共27页
职工信息管理系统C++版 程序设计说明书Word下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

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

《职工信息管理系统C++版 程序设计说明书Word下载.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统C++版 程序设计说明书Word下载.docx(27页珍藏版)》请在冰豆网上搜索。

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

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模板 > 艺术创意

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

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