C++课程设计《工资管理系统》

              

                  目录

 

 

一、课程设计要求及其内容 1

1.课题设计《实现一个工资管理系统》 1

2.设计说明与要求2

二、设计思路 3

三、程序清单 4

四、运行结果 23

五、程序的使用说明 31

六、总结及心得体会 32

 

 

 

一、课程设计要求及其内容

1.课题设计《实现一个工资管理系统》

系统的主要功能是计算职工当月工资并要求存档案。

公司是一个不大不小公司,职工有种5类型,他们是技术人员,销售人员,文秘,技术经理,销售经理。

世界从来就不是公平的,在公司内部也一样,不同职位工资不同。

技术人员工资是按小时算,薪酬为40元。

销售人员工资是按销售提成,月工资为销售总额的5%。

文秘为有4000元底薪,奖金要看当月的工作情况而定。

技术经理和销售经理,均有每月5000元固定工资。

技术经理工作业绩分为三个等级,每级有1000元奖金,

销售经理资金由他管理团队销售业绩而定,为总经额的0.3%。

 

2.设计说明与要求

(1) 公司主要有4类人员:技术经理、技术员、销售员、销售经理、文秘。要求存储这些人的职工号、姓名、月工资、年龄、性别等信息。

(2) 工资的计算方法

A、技术经理 (technical manager):固定月薪为5000元+(ABC等级,每个等级差1000)元;

B、技术员(technician):工作时间*小时工资(40元/小时);

C、销售员(seller):销售额*5%提成;

D、销售经理(sellmanager):底薪(5000元)+所辖部门销售总额*0.3%

E、文秘(secretary)固定月薪为4000元+(表现情况(A=1000元,B=700元,C=500元,D=0元))

(3) 输入员工数据,要求每类人员不能少于4人,员工信息输出格式参考运行效果。

(4) 实现功能

① 数据录入:输入各种数据;

② 销售业绩:统计各销售经理下属销售员的销售额之和;销售经理按工资进行的冒泡排序;

③ 资料存档:打印各类员工的数据信息;

④ 数据备份:把各类员工的数据信息写入文件中保存;

⑤ 退出:推出本系统;

(5) 菜单说明

数据录入指通过键盘输入各类员工的各项数据;

销售业绩指统计各销售经理下身书销售员的销售额及销售额之和;销售按工资进行冒泡排序;

资料存档指按照表格的格式在屏幕上输出各员工的信息;

数据备份指将所有员工的信息保存到文件;

系统退出:结束程序的运行。

二、设计思路

从课本上的运行效果可以看出主函数是一个选择结构,可以确定主函数的内容;再根据课本给出的类的层次结构合理的定义类及其对象,在类中声明成员函数来完成对保护数据成员的调用,输出数据。

根据运行效果的菜单来看知道有5个功能,于是编类里的成员函数来一个一个实现所要求的功能,总之就是将系统分块来做。

注:其中涉及到公有继承:

继承<继承方式>可以有三种:公有继承方式public、保护继承方式protected及默认的私有继承方式private<继承方式>默认时的继承方式是默认的private。 

 

单继承:class classB:public classA {sentence;};

多继承:class classC:public class1,

           public class2,...

        { sentences....;};

1)公有继承(public

  派生类定义时通过关键字public指定公有的继承方式。 基类的公开成员还是公开的,包含的还是保护的。

 

 

 

三、程序清单

#include <iostream>

#include <string>

#include <iomanip>

#include <fstream>

using namespace std;

 

const A=2;

const B=4;

int a,b,c,d,s;

 

/*--------------------------------------------------*/

/*------------------------------------------------*/

/*--------------------------------------------------*/

class employee //员工(基类)

{

protected:

string name;

int num;

int age;

char sex;

double pay;

public:

employee()

name="\0";

num=0;

age=0;

sex='\0';

pay=0;

}

 

void set()

{

cout<<"其姓名:"; cin>>name;

cout<<"性别(M/W:"; cin>>sex;

cout<<"年龄:";cin>>age;

}

 

int numshow()

{

return num;

}

 

string nameshow()

{

return name;

}

 

char sexshow()

{

return sex;

}

 

int ageshow()

{

return age;

}

double payment()

{

return pay;

}

};

 

 

/*--------------------------------------------------*/

/*------------------------------------------------*/

/*--------------------------------------------------*/

class technician:public employee//技术员

{

protected:

int workhour;

public:

void set()

{

cout<<"技术员的编号:"; cin>>num;

employee::set();

cout<<"工作时间:"; cin>>workhour;

cout<<endl;

pay=40*workhour; 

}

};technician te[A]; 

/*--------------------------------------------------*/

/*------------------------------------------------*/

/*--------------------------------------------------*/

 

class manager:public employee //技术经理

{

protected:

char situation;

public:

void set()

{

cout<<"技术经理的编号:";

cin>>num;

employee::set();

cout<<endl;

cout<<"技术等级(A=3000,B=2000,C=1000D=0):"<<endl;

cin>>situation;

switch(situation)

{

case 'A':pay=3000;break;

case 'B':pay=2000;break;

case 'C':pay=1000;break;

default :pay=0;

}

pay=5000+pay;

cout<<endl;

}

};manager mana[A];

  • 36
    点赞
  • 263
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值