小型公司管理系统

突然翻到电脑里之前做的课设,本来想打算删掉,在删掉之前,我把它保存下来,虽然没什么精华,但是记录一下原来我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();
}

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值