突然翻到电脑里之前做的课设,本来想打算删掉,在删掉之前,我把它保存下来,虽然没什么精华,但是记录一下原来我2019年上半学期的课设,此课设因为当时不会文件流,所以没有加入文件流等相关操作:
#include <iostream> //输入输出流头文件
#include <string> //字符串类头文件
#include<iomanip> //流操作符头文件:对参数进行格式化
#include<fstream> //控制文磁盘件的输入与输出
using namespace std;
void MainMenu(); //主菜单函数
void InputMenu(); //数据录入
void StatisticMenu(); //数据统计
void PrintMenu(); //数据打印
void BackupMenu(); //数据备份
void InputManager(); //经理数据录入
void InputTechnician(); //技术员数据录入
void InputSeller(); //销售员数据录入
void InputMarketing_Manager(); //销售经理数据录入
void biaotou(); //表头
void biaowei(); //表尾
void main()
{
MainMenu();
}
void MainMenu() //主菜单函数
{
cout<<" 欢迎来到工资管理系统!! "<<endl;
cout<<" ~—~—~—~—~—~—-~—~—~—~—~—~—~—~—~—~—"<<endl;
cout<<" 【*小型公司工资管理系统*】 "<<endl;
cout<<" |———————————| "<<endl;
cout<<" | 请选择接下来的操作 | "<<endl;
cout<<" |———————————| "<<endl;
cout<<" | 数据录入:请按1并回车| "<<endl;
cout<<" |———————————| "<<endl;
cout<<" | 数据统计:请按2并回车| "<<endl;
cout<<" |———————————| "<<endl;
cout<<" | 数据打印:请按3并回车| "<<endl;
cout<<" |———————————| "<<endl;
cout<<" | 数据备份:请按4并回车| "<<endl;
cout<<" |———————————| "<<endl;
cout<<" | 退出系统:请按5并回车| "<<endl;
cout<<" |———————————| "<<endl;
cout<<"请输入要选择的功能所对应的数字(并回车哦!):";
int i;
cin>>i;
if(i>0&&i<5) // 提示要选择的功能所对应的数字是否输入正确
{
switch(i)
{
case 1:InputMenu();break; //数据录入
case 2:StatisticMenu();break; //数据统计
case 3:PrintMenu();break; //数据打印
case 4:BackupMenu();break; //数据备份
}
}
else if(i==5)
{
cout<<"你已经退出系统!"; // 退出系统
}
else
{
cout<<"请重新输入小于6的正整数!";
}
}
void InputMenu() //数据录入菜单
{
cout<<" |—————————————————| "<<endl;
cout<<" | 请选择接下来的操作 | "<<endl;
cout<<" |—————————————————| "<<endl;
cout<<" | 经理数据录入:请按1并回车 | "<<endl;
cout<<" |—————————————————| "<<endl;
cout<<" | 技术员数据录入:请按2并回车 | "<<endl;
cout<<" |—————————————————| "<<endl;
cout<<" | 销售员数据录入:请按3并回车 | "<<endl;
cout<<" |—————————————————| "<<endl;
cout<<" | 销售经理数据录入:请按4并回车 | "<<endl;
cout<<" |—————————————————| "<<endl;
cout<<" | 返回上一页:请按5并回车 | "<<endl;
cout<<" |—————————————————| "<<endl;
cout<<"请输入要选择的功能所对应的数字(并回车哦!):";
int j;
cin>>j;
switch(j)
{
case 1:InputManager();break; //经理数据录入
case 2:InputTechnician();break; // 技术员数据录入
case 3:InputSeller();break; //销售员数据录入
case 4:InputMarketing_Manager();break; //销售经理数据录入
case 5:MainMenu();break; //返回上一页
}
}
class Employee //雇员类
{
protected:
int Number; //雇员的职工号
char Name[10]; //雇员的名字
double Wage; //雇员的工资(收入)
int Age; //雇员的年龄
char Sex[5]; //雇员的性别
};
class Technician:virtual public Employee //技术员类的基本信息
{
public:
void set()
{
cout<<"请输入技术员的职工号:";
cin>>Number;
cout<<"姓名:";
cin>>Name;
cout<<"性别:";
cin>>Sex;
cout<<"年龄:";
cin>>Age;
cout<<"其工作时间为:";
cin>>hour;
Wage=100*hour; //工资
cout<<"工资为:"<<Wage;
}
int Number1(){return Number;} //雇员的职工号函数
string Name1(){return Name;} //雇员的名字函数
int Age1(){return Age;} //雇员的年龄函数
string Sex1(){return Sex;} //雇员的性别函数
int Wage1(){return Wage;} //雇员的工资(收入)函数
void display1() //表格主题内容输出显示
{
cout<<"|—————————————-———————————————-|"<<endl;
cout<<"|"<<setw(9)<<Number<<"|"<<setw(8)<<Name<<"|"<<setw(8)<<Sex<<"|"<<setw(8)<<Age<<"| 技术员 |"<<setw(7)<<Wage<<"|"<<endl;
}
protected:
double hour; //技术员的工作时间
};
class Manager:virtual public Employee //经理类的基本信息
{
public:
void set()
{
cout<<"请输入经理的职工号:";
cin>>Number;
cout<<"姓名:";
cin>>Name;
cout<<"性别:";
cin>>Sex;
cout<<"年龄:";
cin>>Age;
Wage=8000; //工资
cout<<Wage;
}
int Number2(){return Number;} //雇员的职工号函数
string Name2(){return Name;} //雇员的名字函数
int Age2(){return Age;} //雇员的年龄函数
string Sex2(){return Sex;} //雇员的性别函数
int Wage2(){return Wage;} //雇员的工资(收入)函数
void display2() //表格主题内容输出显示
{
cout<<"|—————————————-———————————————-|"<<endl;
cout<<"|"<<setw(9)<<Number<<"|"<<setw(8)<<Name<<"|"<<setw(8)<<Sex<<"|"<<setw(8)<<Age<<"| 经理 |"<<setw(8)<<Wage<<"|"<<endl;
}
};
class Seller:virtual public Employee //销售员类的基本信息
{
public:
void set()
{
cout<<"请输入销售员的职工号:";
cin>>Number;
cout<<"姓名:";
cin>>Name;
cout<<"性别:";
cin>>Sex;
cout<<"年龄:";
cin>>Age;
cout<<"销售员的销售额:";
cin>>sales_amount;
cout<<"销售员所属于哪个销售经理的编号:";
cin>>number;
Wage=sales_amount*0.04; //工资
cout<<"工资为:"<<Wage;
}
int Number3(){return Number;} //雇员的职工号函数
string Name3(){return Name;} //雇员的名字函数
int Age3(){return Age;} //雇员的年龄函数
string Sex3(){return Sex;} //雇员的性别函数
int Wage3(){return Wage;} //雇员的工资(收入)函数
int NUmber(){return number;} //返回销售员所属于哪个销售经理的编号
void display3() //表格主题内容输出显示
{
cout<<"|—————————————-———————————————-|"<<endl;
cout<<"|"<<setw(9)<<Number<<"|"<<setw(8)<<Name<<"|"<<setw(8)<<Sex<<"|"<<setw(8)<<Age<<"| 销售员 |"<<setw(7)<<Wage<<"|"<<endl;
}
void infor() //销售员所属某个销售经理的表格信息
{
cout<<"|"<<setw(12)<<Number<<"|"<<setw(10)<<Name<<"|"<<setw(12)<<sales_amount<<"|"<<endl;
}
double Sales_amount() //返回销售员的销售额的函数
{
return sales_amount;
}
protected:
double sales_amount; //销售员的销售额
int number; //销售员所属于哪个销售经理,number代表的是已知销售经理的编号
};
class Marketing_manager:public Manager,public Seller //销售经理类的基本信息
{
public:
void set()
{
cout<<"请输入销售经理的职工号:";
cin>>Number;
cout<<"姓名:";
cin>>Name;
cout<<"性别:";
cin>>Sex;
cout<<"年龄:";
cin>>Age;
cout<<"基本工资为:5000";
}
int Number4(){return Number;} //雇员的职工号函数
char* Name4(){return Name;} //雇员的名字函数
int Age4(){return Age;} //雇员的年龄函数
char* Sex4(){return Sex;} //雇员的性别函数
int Wage4(){return Wage;} //雇员的工资(收入)函数
void display4() //表格主题内容输出显示
{
cout<<"|—————————————-———————————————-|"<<endl;
cout<<"|"<<setw(9)<<Number<<"|"<<setw(8)<<Name<<"|"<<setw(8)<<Sex<<"|"<<setw(8)<<Age<<"| 销售经理 |"<<setw(6)<<Wage<<"|"<<endl;
}
double Totals() //销售总额返回函数
{
totals=0;
totals+=S.Sales_amount();
return totals;
}
protected:
double totals; //所管辖的销售员的销售总额
Seller S; // 销售经理管理的销售员
};
Manager A[4]; //定义全局对象
Technician B[4];
Seller C[8];
Marketing_manager D[4];
void mainmenu() //判断是否回到主界面
{
int a;
cout<<"是否回到主界面进行其他操作?是,请输入1,否,请输入0"<<endl;
cin>>a;
switch(a)
{
case 1:MainMenu();break;
case 0:break;
}
}
void biaotou() //输出表格的头部(函数)
{
cout<<"|—————————————-———————————————-|"<<endl;
cout<<"| 职工号 | 姓名 | 性别 | 年龄 | 岗位 | 工资 |"<<endl;
}
void biaowei() //输出表格的尾部(函数)
{
cout<<"|—————————————-———————————————-|"<<endl;
}
void InputManager() //录入四个经理的基本信息
{
for(int i=0;i<4;i++)
{
A[i].set();
cout<<endl;
cout<<"|——————————————————————————————————|"<<endl;
}
mainmenu();
}
void InputTechnician() //录入四个技术员的基本信息
{
for(int i=0;i<4;i++)
{
B[i].set();
cout<<endl;
cout<<"|——————————————————————————————————|"<<endl;
}
mainmenu();
}
void InputSeller() //录入四个销售员的基本信息
{
for(int i=0;i<8;i++)
{
C[i].set();
cout<<endl;
cout<<"|——————————————————————————————————|"<<endl;
}
mainmenu();
}
void InputMarketing_Manager() //录入四个销售经理的基本信息
{
for(int i=0;i<4;i++)
{
D[i].set();
cout<<endl;
cout<<"|——————————————————————————————————|"<<endl;
}
mainmenu();
}
int salary[4]={0,0,0,0};
void StatisticMenu() //数据统计菜单
{
int s[4]={0,0,0,0}; //分别存储四个销售经理的销售额合计
for(int i=0;i<4;i++)
{
cout<<"\n职工号为:"<<D[i].Number4()<<"销售经理"<<D[i].Name4()<<"下属销售员的业绩为:"<<endl;
cout<<"\n";
cout<<"|——————————————————|"<<endl;
cout<<"| 职工号 | 姓名 | 销售额 |"<<endl;
for(int j=0;j<8;j++)
{
if(C[j].NUmber()==D[i].Number4()) //销售员与所对应的销售经理的编号对比
{
C[j].infor(); //输出销售员的三条信息:职工号、姓名、销售额,生成表格
s[i]+=C[j].Sales_amount(); //把该销售经理所管辖的销售员的销售额加起来
}
}
cout<<"|——————————————————|"<<endl;
cout<<"| 销售额合计: |"<<setw(8)<<s[i]<<"|"<<endl;
cout<<"|——————————————————|"<<endl;
salary[i]=s[i]*0005+5000;
cout<<"该销售经理的工资为:";
cout<<salary[j];
}
cout<<endl<<endl;
cout<<"销售经理的工资排序为:"<<endl;
for(int m=0;m<4;m++) //销售经理工资的冒泡排序
{
for(int n=0;n<4-m;n++)
{
if(salary[n]<salary[n+1])
{
int x;
x=salary[n];
salary[n]=salary[n+1];
salary[n+1]=x;
}
}
}
for(int q=0;q<4;q++)
{
D[q].display4();
}
mainmenu();
}
void PrintMenu() //数据打印菜单
{
cout<<"正在打印......";
cout<<"经理打印表:"<<endl;
biaotou();
for(int i=0;i<4;i++)
{
A[i].display2();
}
biaowei();
cout<<"技术员打印表:"<<endl;
biaotou();
for(int j=0;j<4;j++)
{
B[j].display1();
}
biaowei();
cout<<"销售员打印表:"<<endl;
biaotou();
for(int m=0;m<4;m++)
{
C[m].display3();
}
biaowei();
cout<<"销售经理打印表:"<<"\n";
biaotou();
for(int n=0;n<4;n++)
{
D[n].display4();
}
biaowei();
mainmenu();
}
void BackupMenu() //数据备份菜单
{
cout<<"数据备份中,请稍等片刻......"<<"\n";
for(int i=0;i<4;i++)
{
cout<<"|—————————————-———————————————-|"<<endl;
cout<<"|"<<setw(9)<<B[i].Number1()<<"|"<<setw(8)<<B[i].Name1()<<"|"<<setw(8)<<B[i].Sex1()<<"|"<<setw(8)<<B[i].Age1()<<"| 技术员 |"<<setw(7)<<B[i].Wage1()<<"|"<<endl;
}
for(int j=0;j<4;j++)
{
cout<<"|—————————————-———————————————-|"<<endl;
cout<<"|"<<setw(9)<<A[j].Number2()<<"|"<<setw(8)<<A[j].Name2()<<"|"<<setw(8)<<A[j].Sex2()<<"|"<<setw(8)<<A[j].Age2()<<"| 经理 |"<<setw(7)<<A[j].Wage2()<<"|"<<endl;
}
for(int m=0;m<4;m++)
{
cout<<"|—————————————-———————————————-|"<<endl;
cout<<"|"<<setw(9)<<C[m].Number3()<<"|"<<setw(8)<<C[m].Name3()<<"|"<<setw(8)<<C[m].Sex3()<<"|"<<setw(8)<<C[m].Age3()<<"| 销售员 |"<<setw(7)<<C[m].Wage3()<<"|"<<endl;
}
for(int n=0;n<4;n++)
{
cout<<"|—————————————-———————————————-|"<<endl;
cout<<"|"<<setw(9)<<D[n].Number4()<<"|"<<setw(8)<<D[n].Name4()<<"|"<<setw(8)<<D[n].Sex4()<<"|"<<setw(8)<<D[n].Age4()<<"| 销售经理 |"<<setw(7)<<salary[n]<<"|"<<endl;
}
cout<<"已备份!";
mainmenu();
}