工资管理实验报告附源程序.docx

上传人:b****3 文档编号:12892395 上传时间:2023-04-22 格式:DOCX 页数:26 大小:52.95KB
下载 相关 举报
工资管理实验报告附源程序.docx_第1页
第1页 / 共26页
工资管理实验报告附源程序.docx_第2页
第2页 / 共26页
工资管理实验报告附源程序.docx_第3页
第3页 / 共26页
工资管理实验报告附源程序.docx_第4页
第4页 / 共26页
工资管理实验报告附源程序.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

工资管理实验报告附源程序.docx

《工资管理实验报告附源程序.docx》由会员分享,可在线阅读,更多相关《工资管理实验报告附源程序.docx(26页珍藏版)》请在冰豆网上搜索。

工资管理实验报告附源程序.docx

工资管理实验报告附源程序

 

合肥学院

计算机科学与技术系

 

课程设计报告

2008~2009学年第二期

 

课程

程序设计语言Ⅱ课程设计

课程设计名称

企业员工工资管理系统

学生姓名

吕劝劝

学号

0804032008

专业班级

网络工程

(2)班

指导教师

高玲玲李红

2009年6月

一、题目

工资管理系统。

某小型公司,主要有四类人员:

经理、技术人员、销售经理和推销员。

要求存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。

人员编号基数为1000,每输入一位人员就加一。

经理升级三级因此为四级,技术人员和销售经理升级二级所以为三级,销售人员升级为二级。

月薪计算办法是:

经理拿固定月薪8000元;技术人员按每小时100元领取月薪;推销员的月薪按该推销员当月销售额的4%提成;销售经理既拿固定月薪也领取销售提成,固定月薪为5000元,销售提成为所管辖部门当月销售总额的0.5‰。

二、问题分析

根据题目要求,编写一个可以管理工资系统的程序,公司有四种成员:

经理,销售经理,销售人员,技术人员。

每个人员的信息有姓名,编号,级别,当前月薪,人员编号技术为1000。

1.功能选择项:

输入选择功能项,及每个功能对应的作用。

2.信息的录入:

包括姓名,级别,编号,技术人员需要本月的工作时数,销售经理需要固定月薪和本月销售额,销售人员仅需要本月的销售额,经理需要输入固定月薪。

3.显示信息:

显示各人员的姓名,级别,编号和本月应发金额。

根据题目要求设计如下:

1.设计一个主菜单大体如下:

【1】各成员信息输入一次;

【2】各成员信息输入两次;

【3】各成员信息输入三次;

2.程序运行时,首先提示输入雇员姓名;

3.对于经理直接输出其工资及其它信息;

4.对于技术人员,程序提示输入其本月工作时数,然后输出其工资及其它信息;

5.对于推销员,程序提示输入其本月销售额,然后输出其工资及其它信息;

6.对于销售经理,程序提示输入其管辖部门本月销售总额,然后输出其工资及其它信息。

三、算法的设计

根据上述需求,设计一个基类employee,然后派生出technician(技术人员)类、manager(经理)类和salesman(推销员)类。

由于销售经理(salesmanager)既是经理又是销售人员,兼具两类人员的特点,因此同时继承manager和salesman两个类。

定义一个雇员类如下:

classemployee

{

protected:

charname[20]。

//姓名

intnum。

//个人编号

intgrade。

//级别

floatsalary。

//月薪总额

staticintNo。

//静态数据:

目前编号

public:

employee()。

//构造函数

~employee()。

//析构函数

virtualvoidpay()=0。

//计算月薪函数(纯虚函数)

virtualvoidpromote(intjishu=0)。

//升级函数(虚函数)

voidSetName(char*)。

//设置姓名函数

char*GetName()。

//提取姓名函数

intGetNum()。

//提取编号函数

intGetgrade()。

//提取级别函数

floatGetsalary()。

//提取月薪函数

}。

在基类中,除了定义构造函数和析构函数以外,还应统一定义对各类人员信息都应有的操作,这样可以规范各派生类的基本行为。

但是各类人员的月薪计算方法不同,不能在基类employee中统一定义计算方法。

各类人员信息的显示内容也不同,同样不能在基类中统一定义显示方法。

因此,在employee类中用纯虚函数的方式定义了计算月薪函数pay,然后在派生类中再根据各自的同名函数实现具体的功能。

由于salesmanager的两个基类又有公共基类employee,为避免二义性,这里将employee类设计为虚基类。

基类的数据成员和函数成员描述

系统类图

属性和方法定义

类名

成员类别

类型

成员名

描述

employee

属性

char*

name

雇员姓名

int

num

个人编号

int

grade

级别

float

accumPay

月薪总额

int

No

本公司雇员编号目前最大值

方法

void

pay()

计算月薪函数(为纯虚函数)

void

promote(int)

升级函数

类名

成员类别

类型

成员名

描述

technician

属性

float

hourlyRate

每小时酬金

int

workHours

当月工作时数

方法

void

pay()

accumPay=hourlyRate*workHours

manager

属性

float

monthlyPay

固定月薪数

方法

void

pay()

accumPay=monthlyPay

salesman

属性

float

CommRate

按销售额提取酬金百分比

float

sales

当月销售额

方法

void

pay()

accumPay=sales*CommRate

salesmanager

属性

方法

void

pay()

accumPay=monthlyPay+CommRate*sales

四、调试

由于公司每增加一个雇员,无论他(她)是哪一类人员,也就是employee类的所有派生类对象创建时,都要访问同一个No,因此将No定义为静态数据成员。

经理类型时,经理拿基本工资8000,技术人员按小时计算本月拿的工资,销售人员按本月销售额并提取成本,销售经理拿基本工资5000和本月的所管辖部门的销售额提成。

在定义销售经理的类函数时可以建立在经理和销售人员的基础上,既是可以把两者作为基类使用。

classsalesmanager:

publicmanager,publicsalesman

{

public:

salesmanager()。

//构造函数

voidpay()。

//计算月薪函数

voidpromote(int)。

//升级函数

}。

进一步改进

(1)目前程序中,经理月薪,技术人员的小时酬金和销售人员的销售额提成比例均是固定的,这不适应不同公司的需要,可考虑用带参数的构造函数来解决。

(2)销售经理月薪计算中,要输入其管辖部门当月销售总额。

实际上,这可以通过将本部门所有推销员销售额相加而得到。

可以考虑在推销员类中增加所属部门等属性来完成这方面的功能。

(3)这次课程设计是我第一次面对大程序,以前只是完成课后慢的小型题目,没有牵涉到链表和文件。

C++是建立在C语言上的,上学期没怎么学习C语言所以导致这学期有点困难,其实课程设计是基于会编写和使用一些小的类和函数调用的基础上的,设计的成果是基于对这些内容的熟练掌握程度。

课程设计中有许多要求没有做到主菜单的设计和选择功能的语句都没有很好的设计,往往菜单设计好了又不知道怎么和函数或者类相结合使用。

总之自己感觉自己做的很不好,说明在大一这学年该学的知识还是没有学好。

这次我没有用到链表和文件只是简单的使用了指针。

指针调用是是指向字符串的首地址。

(4)课程设计要把握大局,在用小程序是必须合理插入和调用小程序,思路清晰。

(5)一开始输出姓名,编号,级别,本月工资时用的是如:

emp[i].Getname等形式,可是好像只是用于结构体。

(6)在传字符串是使用到指针,如:

Charname[10]

(7)将理论教案中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。

通过课程设计,学生在下述各方面的能力应该得到锻炼:

进一步巩固、加深学生所学专业课程《C++语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力,全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的,利用所学知识,开发小型应用系统,掌握运用C++语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力,对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型,掌握自顶而下的设计方法,将大问题进行模块化,领会结构化程序设计的方法,熟练掌握C++语言的基本语法,灵活运用各种数据类型。

五、测试

主函数中声明四个关于雇员类的对象,分别对对象进行输入信息。

测试结果如下:

【选择功能1】:

******************************************************************************

------------------------------功能选项[主菜单]--------------------------------

******************************************************************************

 

[1]**************-------------各成员只输入一遍-----------------***************

 

[2]**************-------------重复功能并运用两遍---------------***************

 

[3]**************-------------重复功能并运用三遍---------------***************

 

******************************请输入功能选项**********************************

1

******************************只输入一份信息**********************************

---------------------------------------------------------请输入雇员的姓名:

YU

---------------------------------------------------------请输入雇员的姓名:

WEN

---------------------------------------------------------请输入雇员的姓名:

TI

---------------------------------------------------------请输入雇员的姓名:

HU

---------------------------------------------------------请输入兼职技术人员WEN

本月的工作时数:

23

---------------------------------------------------------请输入销售经理TI所

管辖部门本月的销售总额:

78907

---------------------------------------------------------请输入推销员HU本月

的销售额:

6789

YU职工号1000级别为4级,本月工资8000

WEN职工号1001级别为3级,本月工资2300

TI职工号1002级别为3级,本月工资5394.54

HU职工号1003级别为1级,本月工资271.56

Pressanykeytocontinue

【选择功能2】:

******************************************************************************

------------------------------功能选项[主菜单]--------------------------------

******************************************************************************

 

[1]**************-------------各成员只输入一遍-----------------***************

 

[2]**************-------------重复功能并运用两遍---------------***************

 

[3]**************-------------重复功能并运用三遍---------------***************

 

******************************请输入功能选项**********************************

2

--------------------------------------------------------请输入雇员的姓名:

hua

--------------------------------------------------------请输入雇员的姓名:

yu

--------------------------------------------------------请输入雇员的姓名:

fang

--------------------------------------------------------请输入雇员的姓名:

qing

--------------------------------------------------------请输入兼职技术人员yu

本月的工作时数:

6

--------------------------------------------------------请输入销售经理fang所

管辖部门本月的销售总额:

5643780

--------------------------------------------------------请输入推销员qing本月

的销售额:

7896

hua编号1000级别为4级,本月工资8000

yu编号1001级别为3级,本月工资600

fang编号1002级别为3级,本月工资33218.9

qing编号1003级别为1级,本月工资315.84

--------------------------------------------------------请输入雇员的姓名:

li

--------------------------------------------------------请输入雇员的姓名:

xiu

--------------------------------------------------------请输入雇员的姓名:

chun

--------------------------------------------------------请输入雇员的姓名:

quan

--------------------------------------------------------请输入兼职技术人员xiu

本月的工作时数:

21

--------------------------------------------------------请输入销售经理chun所

管辖部门本月的销售总额:

12000000

--------------------------------------------------------请输入推销员quan本月

的销售额:

23100

li编号1000级别为7级,本月工资8000

xiu编号1001级别为5级,本月工资2100

chun编号1002级别为5级,本月工资65000

quan编号1003级别为1级,本月工资924

Pressanykeytocontinue

【选择功能3】:

******************************************************************************

------------------------------功能选项[主菜单]--------------------------------

******************************************************************************

 

[1]**************-------------各成员只输入一遍-----------------***************

 

[2]**************-------------重复功能并运用两遍---------------***************

 

[3]**************-------------重复功能并运用三遍---------------***************

 

******************************请输入功能选项**********************************

3

-------------------------------------------------------请输入雇员的姓名:

pan

-------------------------------------------------------请输入雇员的姓名:

feng

-------------------------------------------------------请输入雇员的姓名:

jing

-------------------------------------------------------请输入雇员的姓名:

qi

-------------------------------------------------------请输入兼职技术人员feng本

月的工作时数:

24

请输入销售经理jing所管辖部门本月的销售总额:

42967574

------------------------------------------------------请输入推销员qi本月的销

售额:

45673

pan编号1000级别为4级,本月工资8000

feng编号1001级别为3级,本月工资2400

jing编号1002级别为3级,本月工资219838

qi编号1003级别为1级,本月工资1826.92

-------------------------------------------------------请输入雇员的姓名:

ji

-------------------------------------------------------请输入雇员的姓名:

ta

-------------------------------------------------------请输入雇员的姓名:

fa

-------------------------------------------------------请输入雇员的姓名:

la

-------------------------------------------------------请输入兼职技术人员ta本月

的工作时数:

9

请输入销售经理fa所管辖部门本月的销售总额:

39074378

------------------------------------------------------请输入推销员la本月的销

售额:

846810

ji编号1000级别为7级,本月工资8000

ta编号1001级别为5级,本月工资900

fa编号1002级别为5级,本月工资200372

la编号1003级别为1级,本月工资33872.4

-------------------------------------------------------请输入雇员的姓名:

ge

-------------------------------------------------------请输入雇员的姓名:

ji

-------------------------------------------------------请输入雇员的姓名:

ku

-------------------------------------------------------请输入雇员的姓名:

nu

-------------------------------------------------------请输入兼职技术人员ji本月

的工作时数:

43

请输入销售经理ku所管辖部门本月的销售总额:

27808543

------------------------------------------------------请输入推销员nu本月的销

售额:

34795

ge编号1000级别为10级,本月工资8000

ji编号1001级别为7级,本月工资4300

ku编号1002级别为7级,本月工资144043

nu编号1003级别为1级,本月工资1391.8

Pressanykeytocontinue

输入每个成员所需要的信息,经理需要固定工资;销售经理需要固定每月工资和所管辖部门本月的销售额在提取百分比就是本月实拿的工资;技术人员需要本月的工作时数,就可以计算出本月工资;销售人员就是本月销售额在提成。

测试结果如下:

六、参考书目

[1]刘振安.等编著.C++程序设计课程设计.机械工业出版社。

[2]吴乃陵.等编著.C++程序设计.北京:

高等教育出版社。

[3]李龙澍.C++程序设计实训教程.北京:

清华大学出版社。

[4]宁正元.《数据结构(C语言)》南京:

东南大学出版社,2000年6月。

[5]严蔚敏等《数据结构(C语言版)》北京:

清华大学出版社,1997年。

[6]胡学钢等《数据结构算法设计指导》北京:

清华大学出版社,1999年。

[7]明日科技编著《VisualC++程序开发范例宝典》北京:

人民邮电出版社。

七、附录

源程序

#include

#include

usingnamespacestd。

 

classemployee//---------------------------------------------------基类

{

protected:

charname[20]。

//姓名

intnum。

//个人编号

intgrade。

//级别

floatsalary。

//月薪总额

staticintNo。

//静态数据:

目前编号

public:

employee()。

//构造函数

~employee()。

//析构函数

virtualvoidpay()=0。

//计算月薪函数(纯虚函数)

virtualvoidpromote(intjishu=0)。

//升级函数(虚函数)

voidSetNa

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

当前位置:首页 > 自然科学 > 物理

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

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