C++仓库管理系统.docx
《C++仓库管理系统.docx》由会员分享,可在线阅读,更多相关《C++仓库管理系统.docx(15页珍藏版)》请在冰豆网上搜索。
![C++仓库管理系统.docx](https://file1.bdocx.com/fileroot1/2022-10/13/c5970e31-3a6a-43d9-8953-cfab3398bae1/c5970e31-3a6a-43d9-8953-cfab3398bae11.gif)
C++仓库管理系统
employee.hemployee(员工)的类声明头文件
employee.cpp包含employee类的实现代码
Salesman.hSalesman(售货员)的类声明头文件
Salesman.cpp包含Salesman类的实现代码
Warehouseman.hwarehouseman(库管员)的类声明头文件
Warehouseman.cpp包含Warehouseman类的实现代码
manager.hmanager(经理)的类声明头文件
manager.cpp包含manager类的实现代码
EmployeeList.hEmployeeList类(员工链表)的类声明头文件
EmployeeList.cpp包含EmployeeList类的实现代码
main.cpp主程序
//****************************************
//employee.h*
//****************************************
#ifndefH_EMPLOYEE
#defineH_EMPLOYEE
classemployee//基类(员工)
{
private:
intnumber;//员工编号
charAddress[100];//家庭地址
protected:
charname[30];//员工姓名
floatfixedSalary;//固定工资
floatMonthSalary;//月薪
public:
employee();//构造函数,录入员工个人信息
voidShowInfor();//显示员工个人及工资信息
voidRecordInfor(char*pInfBuffer);//将个人信息写入缓冲区
//获得工作类别
virtualchar*GetWorkStyle()=0;
//计算员工工资的虚函数,因为只提供一个统一的接口,所以不需要添加任何实际的代码
virtualvoidCountSalary()=0;
};
#endif
//****************************************
//employee.cpp*
//****************************************
#include"employee.h"
#include"iostream.h"
#include"stdio.h"
//构造函数,录入员工个人信息
employee:
:
employee()
{
cout<//录入员工姓名
cout<<"请输入员工姓名:
";
cin>>name;
//录入员工编号
cout<<"请输入员工编号(1000-9999):
";
cin>>number;
//检查员工编号,保证编号正确
while(number<1000||number>9999)
{
cout<";
cin>>number;
}
//录入家庭地址
cout<<"请输入家庭地址:
";
cin>>Address;
//默认初始月薪为零
MonthSalary=0.0;
};
//显示员工个人及工资信息
voidemployee:
:
ShowInfor()
{
cout<//显示员工姓名
cout<<"员工姓名:
"<//显示员工编号
cout<<"员工编号:
"<//显示家庭地址
cout<<"家庭地址:
"<
//显示工作类别
cout<<"工作类别:
"<//显示月薪
if(MonthSalary==0.0)
cout<<"月薪:
尚未计算"<else
cout<<"月薪:
"<};
//将个人信息写入缓冲区
voidemployee:
:
RecordInfor(char*pInfBuffer)
{
intj;
j=sprintf(pInfBuffer,"员工姓名:
%s\r\n",name);
j+=sprintf(pInfBuffer+j,"员工编号:
%d\r\n",number);
j+=sprintf(pInfBuffer+j,"家庭地址:
%s\r\n",Address);
j+=sprintf(pInfBuffer+j,"工作类别:
%s\r\n",GetWorkStyle());
if(MonthSalary==0.0)
j+=sprintf(pInfBuffer+j,"月薪:
尚未计算\r\n\r\n");
else
j+=sprintf(pInfBuffer+j,"月薪:
%f\r\n\r\n",MonthSalary);
}
//****************************************
//Salesman.h*
//****************************************
#ifndefH_SALESMAN
#defineH_SALESMAN
#include"employee.h"
//售货员类
classSalesman:
publicemployee
{
private:
floatsaleSum;//售货员的销售额
floatgetRate;//售货员的提成比率
public:
Salesman();//构造函数,录入售货员个人信息
char*GetWorkStyle();//获得工作类别
voidCountSalary();//计算售货员的工资
};
#endif
//****************************************
//Salesman.cpp*
//****************************************
#include"Salesman.h"
#include"iostream.h"
//构造函数,录入售货员个人信息
Salesman:
:
Salesman()
{
cout<//录入售货员的固定月薪
cout<<"请输入售货员的固定月薪:
";
cin>>fixedSalary;
//录入售货员的当月销售额
cout<<"请输入售货员的提成比率";
cin>>getRate;
}
//获得工作类别
char*Salesman:
:
GetWorkStyle()
{
return"售货员";
}
//计算售货员的工资
voidSalesman:
:
CountSalary()
{
//得到售货员的当月销售额
cout<<"请输入售货员"<cin>>saleSum;
//工资=固定工资+营业额×提成比率
MonthSalary=fixedSalary+saleSum*getRate;
}
//****************************************
//warehouseman.h*
//****************************************
#ifndefH_WAREHOUSEMAN
#defineH_WAREHOUSEMAN
#include"employee.h"
//库管员类
classWarehouseman:
publicemployee
{
private:
floatbonus;//库管员的奖金
public:
Warehouseman();//构造函数,录入库管员个人信息
char*GetWorkStyle();//获得工作类别
voidCountSalary();//计算库管员的工资
};
#endif
//****************************************
//warehouseman.cpp*
//****************************************
#include"Warehouseman.h"
#include"iostream.h"
//构造函数,录入库管员个人信息
Warehouseman:
:
Warehouseman()
{cout<//录入库管员的固定月薪
cout<<"请输入库管员的固定月薪:
";
cin>>fixedSalary;
}
//获得工作类别
char*Warehouseman:
:
GetWorkStyle()
{
return"库管员";
}
//计算库管员的工资
voidWarehouseman:
:
CountSalary()
{
//得到库管员的当月奖金
cout<<"请输入库管员"<cin>>bonus;
//工资=固定工资+当月奖金
MonthSalary=fixedSalary+bonus;
}
//****************************************
//Manager.h*
//****************************************
#ifndefH_MANAGER
#defineH_MANAGER
#include"Employee.h"
//经理类
classManager:
publicEmployee
{
private:
floatOfficeExpense;//经理的办公费用
public:
Manager();//构造函数,录入经理个人信息
char*GetWorkStyle();//获得工作类别
voidCountSalary();//计算经理的工资
};
#endif
//****************************************
//Manager.cpp*
//****************************************
#include"Manager.h"
#include"iostream.h"
//构造函数,录入经理个人信息
Manager:
:
Manager()
{
cout<//录入经理的固定月薪
cout<<"请输入经理的固定月薪:
"<cin>>fixedSalary;
}
//获得工作类别
char*Manager:
:
GetWorkStyle()
{
return"经理";
}
//计算经