c职工信息管理系统课程设计说明书带全部源码Word格式文档下载.docx

上传人:b****6 文档编号:17068924 上传时间:2022-11-28 格式:DOCX 页数:29 大小:188.50KB
下载 相关 举报
c职工信息管理系统课程设计说明书带全部源码Word格式文档下载.docx_第1页
第1页 / 共29页
c职工信息管理系统课程设计说明书带全部源码Word格式文档下载.docx_第2页
第2页 / 共29页
c职工信息管理系统课程设计说明书带全部源码Word格式文档下载.docx_第3页
第3页 / 共29页
c职工信息管理系统课程设计说明书带全部源码Word格式文档下载.docx_第4页
第4页 / 共29页
c职工信息管理系统课程设计说明书带全部源码Word格式文档下载.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

c职工信息管理系统课程设计说明书带全部源码Word格式文档下载.docx

《c职工信息管理系统课程设计说明书带全部源码Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c职工信息管理系统课程设计说明书带全部源码Word格式文档下载.docx(29页珍藏版)》请在冰豆网上搜索。

c职工信息管理系统课程设计说明书带全部源码Word格式文档下载.docx

说明书撰写质量

结构严谨,逻辑性强,层次清晰,文字流畅,符合规范化要求,打印精美。

结构合理,符合逻辑,文章层次分明,语言准确,达到规范化要求,打印工整。

结构基本合理,层次较分明,文理通顺,基本达到规范化要求。

结构基本合理,文字尚通顺,勉强达到规范化要求。

结构混乱,文字表达不清,错别字较多,达不到规范化要求。

学习态度

态度认真,作风严谨,严格按进度开展各项工作。

学习态度比较认真,能按期圆满完成任务书规定的任务。

遵守纪律,基本保证设计时间,按期完成各项工作。

态度尚可,在指导教师的帮助下能按期完成任务。

纪律涣散,不能保证设计时间和进度。

综合评定成绩:

指导教师:

年月日

随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。

管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。

本文介绍了在MicrosoftVisualC++6.0环境下开发一个职工信息管理系统的过程。

本系统界面友好,操作简单,比较实用。

一、系统开发相关情况

(一)开发背景

(二)系统开发的目标

为了更好地适应我校的要求,进一步提供全方位的信息服务,职工信息管理系统在实施后应该能够达到以下的目标:

★能够准确地记录职工的相关信息。

★系统界面友好、操作简单易行,查询灵活方便,数据储存安全可靠。

★系统维护安全、方便、可靠,并且能够实现实用性,先进性的要求。

二、系统以及需求分析

(一)系统目标

除了前面所述,我们所开发的系统还应该具有以下功能:

⑴原始数据修改简单方便;

⑵方便的数据查询;

⑶删除数据方便简单,稳定性好;

⑷数据计算自动完成,尽量减少人工干预;

(二)系统可行性分析

1、技术可行性分析

由于本系统管理的对象单一,都是公司职工,所以涉及的计算过程不是很复杂。

现在学校用于学生管理的微机都是Pentium(R)4CPU以上的机器,在存储量、速度方面都能满足各方面的要求。

在技术难度方面,由于有指导老师的指导和相关参考文献,因此完全可以实现。

2、开发工具可行性分析

MicrosoftVisualC++6.0简介

VisualC++是一个功能强大的可视化软件开发工具。

自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。

虽然微软公司推出了VisualC++.NET(VisualC++7.0),但它的应用的很大的局限性,只适用于Windows2000,WindowsXP和WindowsNT4.0。

所以实际中,更多的是以VisualC++6.0为平台。

VisualC++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。

VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。

这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。

根据以上对开发工具的功能的了解,我们相信,依靠MicrosoftVisualC++6.0能开发出我们所期待的系统。

因此,在开发工具方面是可行的。

三、程序功能描述以及模块结构

(一)功能模块描述及主要类描述

模块一:

增加人员函数Add();

增加职工基本信息。

模块二:

删除人员函数Delete();

删除指定的职工的基本信息以及薪酬。

模块三:

修改人员函数Modify();

修改指定的职工基本信息。

模块四:

查询职工信息函数Query();

查询指定的职工信息以及薪酬。

模块五:

基础数据设置函数Set();

设置五类职位的基本薪酬。

模块六:

数据存盘,载入函数Save()以及Load();

储存职工基本信息,薪酬以及五类职位的基本薪酬。

本系统采用了面向对象的程序设计方法。

所有的方法均以类为基础。

所涉及到的类包括:

classPerson基本员工类;

该类是一个基类,设置了属于保护类的职工基本属性,以及构造函数Person(charID,char*Name,intDuty)。

可以给职工类型继承。

classCservant文员类;

由Person类继承而来。

定义了职工上个月的工作量Workload,获得工作量函数doubleGetWorkload(),传入工作量函数voidSetWorkload(doubleAmount),以工作量计算薪酬函数voidCalcSalary(),输出薪酬结果以及该类职工信息函数voidOutput()。

classSalesman业务员类;

同Cservant文员类。

classAPman行政人员类;

classCSman文员兼职业务人员类;

classACman行政人员兼职文员类;

classCompany公司类;

该类定义了前文所述六个模块功能的实现方法,链表的使用也包括其中。

此类的作能在于将所有功能模块集成并定义本系统使用的主要方法。

(二)程序流程图

表3-1数据结构表

(三)数据结构表

序号

成员名

数据类型

长度

字段含义

1

No

int

工号

2

Name

char

20

名字

3

Sex

10

性别

4

Tel

联系方式

5

Nation

30

国籍

6

Duty

职位

7

Earning

double

收入

四、用户使用说明与调试结果

(一)使用说明

这是一个关于职工信息管理系统,具有录入、输出、删除、查询、修改、保存、载入数据、计算总支出薪酬等功能,建立了一个含有工号、姓名、性别、联系方式、国籍、工作量等成员的类的变量classPerson。

系统中已预输入了5个职工的相关数据以及基本薪酬数据,调试是可按“4”键先查看输入的数据记录。

调试过程中,可按照有关提示进行相关操作:

增加职工数据按“1”键;

删除职工数据按“2”键;

修改职工数据按“3”键;

查询职工数据按“4”键;

基础数据设置按“5”键;

数据存盘按“6”键;

数据装入按“7”键;

退出系统按“8”键。

(二)调试结果

★代码中运用了switch语句调用各子函数,数字1、2、3、4、5、6、7、8等七个数字代表不同的指令。

★系统启动时,会自动在存放该系统的磁盘根目录之下装入两个数据文件:

person.txt和base.txt。

装入成功之后会显示“人员和基础数据已经装入…”。

调试时两个数据文件都已经写入部分数据,使用功能“4-查询职工信息”,显示如下:

★各个职工最后的“工资”根据事前输入的职位,工作量自动计算生成。

并将所有的工资累加得到每个月需要支付的总工资。

以本次调试为例,系统显示“本月实发工资总数:

14110元”。

★指令“1-增加人员”代表调用增加人员函数Add(),要求操作者输入职工的相关信息,管理系统会自动地开辟一个新的节点指针,把它的结点赋给预输入数据中的最后一个节点p2->

next,使其链接起来。

★指令“2-删除人员”代表调用删除人员函数Delete(),要求操作者输入职工的相关ID,系统根据操作者输出的ID,找出对应的记录,然后删除该职工的信息,如果删除的是第一个结点,则p1->

next,指向第二个结点;

下图示范了删除第一个节点之后的显示结果:

★如果删除的是第i个(0<

i<

n)就把下一个结点地址赋给前一个结点地址;

如果找不到对应的ID,则不会删除任何一个记录,并输出“未找到!

”。

★指令“3-修改人员”代表调用修改人员函数Modify(),体统根据操作者输入的ID找到对应的记录,将新输入的数据对应地赋给要修改的各成员。

包括调整职位,修改姓名,工作量。

★如果没有找到对应的ID,则不会修改任何一个记录,并输出“未输出!

★指令“4-查询职工信息”表示调用查询职工信息函数Query(),先输出所有的职工记录,然后系统根据输入的ID找到对应的数据,并输出总支出薪酬,如果没有找到对应的记录,则输出“未找到!

★指令“5-基础数据设置”表示调用基础数据设置函数Set(),要求操作员输入文员,行政人员,业务员的基本工资,以便计算每位职工的薪酬。

★指令“6-数据存盘”表示调用存盘函数Save(),输入“Y”或者“N”以进一步操作。

★指令“7-数据装入”表示调用载入函数Load(),系统直接导入数据。

(三)优缺点分析

优点:

★系统中包含了输入、输出、保存、删除、查询、修改等多种功能,系统操作灵活性较强,功能较强大;

★可以随意地选择不同的指令进行操作;

★自动计算本月应该支出的所有薪酬;

★排版效果清晰明了,美观;

★操作简单方便。

缺点:

★在调用某些函数时,若没有找到对应记录的情况下,输出结果的处理不太完善,例如查询函数;

★录入函数的设计不完善,这也是整个程序设计中最突出的问题。

五、总结

本次设计我选择的题目是职工信息管理系统。

因为事先的计划非常明确,所以我们在完成这个设计的过程也是比较顺利的。

在系统分析和设计的部分仍然花了比较多的时间。

模块设计部分因为涉及功能的实现,要从抽象的设计转化成实际的代码,因此对于某项功能的实现方法都思考得比较详尽。

加上在开发系统之前,我阅读很多与本系统有相关内容的书籍以做参考,使得此次系统编写能顺利进行。

由于班里每个人都需要做一份设计,所以我们经常互相交流。

在交流的时候经常能够互相提出更好的建议。

经过对职工信息管理系统的分析与编写,我得到了很大的收获。

自主学习的必要性更是解决问题的基础。

这次设计使我重温了以前学过的各科知识,让我对C++编程有了更深刻的认识。

除了对系统作出正确的分析,实际的调查工作对系统的整体设计有着至关重要的作用。

所以在分析系统之前,我花了一些时间在公司的实际管理工作调查上。

也因为这样,如何编写代码逐渐变得明朗。

每一个功能模块经过调查后后,各个功能逐渐显露出来,然后,反复探讨,验证这项功能是否有存在的必要,是否可以改进得更好。

在这样的前提下,最后顺利完成了这份设计。

这次C++系统设计作业,提升了我分析问题的能力和思考问题的逻辑能力,更明白实际调研的重要性。

从这次设计学到的东西,相信会对我们日后的学习工作起到很大的指导作用

参考文献:

[1]徐士良:

C常用算法程序集,清华大学出版社,1995年版.

[2]洪永清:

面向对象建模与设计,清华大学出版社,1993年版.

[3]谭浩强:

C程序设计,清华大学出版社,1991年版.

[4]张国峰:

C++语言及其程序设计教程,电子工业出版社,1997年版.

[5]侯捷:

STL源码剖析,华中科技大学出版社,2002年版.

[6]BruceEckel:

ThinkinginC++(2nded),机械工业出版社,2003年版.

附录:

职工信息管理系统源码(C++)

#include<

iostream.h>

fstream.h>

ctype.h>

string.h>

//全局数据,对象

doubleCSalary;

//文员的基本工资

doubleSSalary;

//业务员的基本工资

doubleAPSalary;

//行政人员的基本工资

intID;

//员工工号(要保证唯一)

classPerson//员工类

{

protected:

intNo;

//编号

charName[20];

//姓名

charSex[10];

//性别

charTel[20];

//联系方式

charNation[30];

//国籍

intDuty;

//职位

doubleEarning;

//收入

Person*next;

public:

Person(charID,char*Name,intDuty)

this->

Duty=Duty;

strcpy(this->

Name,Name);

No=ID;

}

virtualvoidCalcSalary()=0;

virtualvoidOutput()=0;

friendclassCompany;

};

classCservant:

publicPerson//文员类

private:

doubleWorkload;

//上个月完成工作量

Cservant(charID,char*Name,intDuty,doubleWorkload):

Person(ID,Name,Duty)

Workload=Workload;

doubleGetWorkload()

returnWorkload;

voidSetWorkload(doubleAmount)

Workload=Amount;

voidCalcSalary()

Earning=CSalary+(Workload-20)*20;

voidOutput()

CalcSalary();

cout<

<

No<

"

\t"

Name<

\t文员\t"

\t\t"

Earning<

endl;

classSalesman:

publicPerson//业务员类

Salesman(charID,char*Name,intDuty,doubleWorkload):

Earning=SSalary+(Workload-15)*20+150;

//150为业务补贴

\t业务员\t"

classACman:

publicPerson//行政人员兼职文员类

ACman(charID,char*Name,intDuty,doubleWorkload):

voidSetWorkload(doubles)

Workload=s;

Earning=250+APSalary+CSalary+(Workload-15)*20;

\t行政人员兼职文员\t"

classAPman:

publicPerson//行政人员类

APman(charID,char*Name,intDuty):

Person(ID,Name,Duty){}

Earning=APSalary+250;

//250为行政补贴

\t行政人员\t\t"

classCSman:

publicPerson//文员兼职业务人员

//文员兼职业务人员上个月完成工作量

CSman(charID,char*Name,intDuty,doubleWorkload):

Earning=(Workload-25)*20+CSalary+150+SSalary;

//150为业务补贴

\t文员兼职业务人员\t"

classCompany//公司类

Person*Worker;

//员工表

voidClear();

//清除内存中数据

Company()

Worker=0;

Load();

~Company()

Person*p;

p=Worker;

while(p)

p=p->

next;

deleteWorker;

Worker=p;

voidFind(charName[20]);

//按姓名查找

voidFind(intID);

//按编号查找

voidAdd();

//增加人员

voidDelete();

//删除人员

voidModify();

//修改人员

voidQuery();

//查询人员

voidSet();

//基础数据设置

voidSave();

//数据存盘(包括基础数据,人员数据)

voidLoad();

//数据装入(包括基础数据,人员数据)

voidCompany:

:

Clear()//清除内存中人员数据(内部使用)

Person*p=Worker;

Worker=p->

deletep;

Find(charName[20])

Add()

//新结点指针

\n**新增员工**\n"

;

//输入员工信息

输入工号:

cin>

>

ID;

输入职位(1-文员2-行政人员兼职文员3-文员兼职业务员4-行政人员5-业务员):

Duty;

输入姓名:

Name;

输入性别:

Sex;

输入联系方式:

Tel;

输入国籍:

Nation;

if(Duty!

=4)

上个月完成工作量:

Workload;

//创建新员工结点

switch(Duty)

case1:

p=newCservant(ID,Name,Duty,Workload);

break;

case2:

p=newACman(ID,Name,Duty,Workload);

case3:

p=newCSman(ID,Name,Duty,Workload);

case4:

p=newAPman(ID,Name,Duty);

case5:

p=newSalesman(ID,Name,Duty,Workload);

p->

next=0;

//员工

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

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

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