《面向对象程序设计》课程设计报告小型公司工资管理系统.doc
文本预览下载声明
题目:小型公司工资管理系统
院系:
专业班级:
学号:
学生姓名:
小组成员:
2011年9月7日
引言
本题对程序有如下要求:
(1)公司主要有4类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、月工资、岗位、年龄、性别等信息。
(2)工资的计算方法:
A.经理:固定月薪为8000;
B.技术员:工作时间*小时工资(100元每小时);
C.销售员:销售额*4%提成;
D.销售经理:底薪(5000)+所辖部门销售额总额*0.5%;
(3)输入数据要求每类人员不能少于4人,并按以下格式输出:
职工号姓名性别年龄岗位工资排名
及某部门经理所辖部门各售货员的业绩及自己的工资表:
(4)菜单要求:要有一个菜单,用于选择各项功能,其中
1)数据录入:输入各种数据;
2)数据统计:各销售经理的工资计算及最终按工资进行的冒泡排序;
3)数据打印:打印上述表格;
4)数据备份:把相关数据写入文件;
退出:推出本系统;
系统功能介绍:
充分利用了类的继承与派生的知识,先定义了一个雇员类Employee,由雇员类公有派生出技术员类Tech,销售员类Seller,经理类Manager,由销售员类Seller,经理类Manager公有派生出销售经理类XManager。把基类都定义为虚基类。通过基类去写的派生类就可以调基类的公有成员。利用for循环把经理数据,技术员数据,销售员数据,销售经理数据输入,利用冒泡排序法把各销售经理的资按升序排列。利用switch进行选择系统进行的工作。在主菜单中进行调用各函数,从而实现系统各功能的运行。
模块设计:
各个成员函数间关联:
四、结果显示图:
五、程序清单:
#includefstream
#includeiostream
#includestring
#includeiomanip
#includestdlib.h
using namespace std;
//常变量(供修改用):
const int n1=2,n2=2,n3=4,n4=2; /*定义公司各类职工人数(方便修改)
(n1:技术员人数;n2:经理人数;n3:销售员人数;n4:销售经理人数 )*/
const double m_salary=8000; //经理固定月工资
const double hourpay=100; //技术员小时工资
const double basicpay=5000; //销售经理的底薪
const double s_proportion=4.0/100; //销售员的工资提成比例
const double sm_proportion=0.5/100; //销售经理的提成比例
//声明部分:
void menu(); //主菜单
void menu2(); //数据输入二级菜单
void menu3(); //数据打印二级菜单
void data_input(); //数据输入函数
void data_print(); //数据打印
void charthead1(); //制作表头1函数,统计销售额
void charthead2(); //制作表头2函数,数据打印
void chartend(); //制作表尾
void statistics(); //数据统计
double sm_salary(); //销售经理工资计算
void sm_print(); //销售经理打印数据
void data_find(); //数据查询
void data_save(); //数据备份
ofstream outfile; //打开磁盘文件流对象
string f_name; //全局变量(查询用)
//定义类:
class Employee //雇员类(基类)
{
public:
void input() //数据输入函数
{
cout编号:;
cinnum;
cout其姓名:;
cinname;
cout性别(m/w):;
cinsex;
cout年龄:;
cinage;
}
void print() //打印数据函数
{
cout├─────┼─────┼─────┼─────┼─────┤endl;
cout│setw(6)num │setw(8)name │setw(6)sex │setw(6)
age │setw(7)pay │endl;
显示全部