⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 17.txt

📁 这个是关于公司人事管理系统的原代码
💻 TXT
📖 第 1 页 / 共 2 页
字号:
#include <iostream>
#include <cstring>
using namespace std;
enum zhiwu{jingli,salermanager,saler,jishuyuan};
static int number;//员工编号
static int no1=0;//no1(经理),2,3,4分别记录了4种不同的职位,各自包含的人数
static int no2=0;//兼职推销员
static int no3=0;//销售经理
static int no4=0;//兼职技术员

class pepole//人员类
{
public:
 int n;//人员编号
 int grade1;
 char *name;

public:
 int getn()
 {return n;}
 void promet(int n)//升级函数
	{grade1+=n;}
 int getgrade()
	{return grade1;}
 char *getname()
 {return name;}

};
class jl:public pepole//经理类
{
public:
	jl *next;
 int salary;
 zhiwu grade;
public:
 int getsalary()
 {return salary;}
 jl()
 {salary=-1;name="null";grade1=1;}
 void print()
 {cout<<"-------------------------------------"<<endl;
  cout<<"职务:  经理"<<endl;
  cout<<"级别:"<<"\t"<<grade1<<endl;
  cout<<"编号:"<<"\t"<<n<<endl;
  cout<<"姓名:"<<"\t"<<name<<endl;
  cout<<"工资:"<<"\t"<<salary<<endl;
  cout<<"-------------------------------------"<<endl;
  cout<<""<<endl;
 }
 void set(char *a,int c=0,int g=1)
 {name=a;
 salary=c;
 grade1=g;
 }
};
class xsy:public pepole//销售员(推销员)类
{
public:
	xsy *next;
 int all;
 double ticheng;
 int salary;
public:
 int getsalary()
 {return salary;}
 xsy()
 {salary=-1;name="null";}
 void print()
 {cout<<"-------------------------------------"<<endl;
  cout<<"职务:  推销员"<<endl;
  cout<<"级别:"<<"\t"<<grade1<<endl;
  cout<<"编号:"<<"\t"<<n<<endl;
  cout<<"姓名:"<<"\t"<<name<<endl;
  cout<<"工资:"<<"\t"<<salary<<endl;
  cout<<"-------------------------------------"<<endl;
  cout<<""<<endl;
 }
 void set(char *a,int c=0,double d=0,int g=1)
 {name=a;
  all=c;
  ticheng=d;
  salary=int(all*ticheng);
  grade1=g;
 }
};
class xsjl:public pepole//销售经理类
{
public:
	xsjl *next;
 int all;
 int sal;
 double ticheng;
 int salary;
public:
 int getsalary()
 {return salary;}
 xsjl()
 {salary=-1;name="null";}
 void print()
 {cout<<"-------------------------------------"<<endl;
  cout<<"职务:  销售经理"<<endl;
  cout<<"级别:"<<"\t"<<grade1<<endl;
  cout<<"编号:"<<"\t"<<n<<endl;
  cout<<"姓名:"<<"\t"<<name<<endl;
  cout<<"工资:"<<"\t"<<salary<<endl;
  cout<<"-------------------------------------"<<endl;
  cout<<""<<endl;
 }
 void set(char *a,int c=0,int d=0,double e=0,int g=1)
 {name=a;
 all=c;
 sal=d;
 ticheng=e;
 grade1=g;
 salary=int(sal+all*ticheng);
}
};
class jsy:public pepole//技术员类
{
public:
	jsy *next;
 int time;
 int timepay;
 int salary;
public:
 int getsalary()
 {return salary;}
 jsy()
 {salary=-1;name="null";}
 void print()
 {cout<<"-------------------------------------"<<endl;
  cout<<"职务:兼职技术员"<<endl;
  cout<<"级别:"<<"\t"<<grade1<<endl;
  cout<<"编号:"<<"\t"<<n<<endl;
  cout<<"姓名:"<<"\t"<<name<<endl;
  cout<<"工资:"<<"\t"<<salary<<endl;
  cout<<"-------------------------------------"<<endl;
  cout<<""<<endl;
 }
 void set(char *a,int c=0,int d=0,int g=1)
 {name=a;
 time=c;
 timepay=d;
 grade1=g;
 salary=time*timepay;
 }
};


void main()//main函数
{int i;
 int j;//按姓名查找时存储输入的编号
 int k;
 int g;//级别
 int ng=0;//提升级别
 char m[20];//按姓名查找时存储输入的姓名
 double y;
 int select1;//存储用户在顶级菜单的选择
 int select2;//存储用户在二级菜单的选择
 int select3;//存储用户在三级菜单的选择
jl *pjl=new jl();//数组用于存储经理信息
jl *headjl,*tailjl;//头节点,当前节点,尾节点
pjl=pjl->next=NULL;
xsy *pxsy=new xsy();//数组用于存储销售员信息
xsy *headxsy,*tailxsy;
pxsy=pxsy->next=NULL;
xsjl *pxsjl=new xsjl();//数组用于存储销售经理信息
xsjl *headxsjl,*tailxsjl;
pxsjl=pxsjl->next=NULL;
jsy *pjsy=new jsy();//数组用于存储技术员信息
jsy *headjsy,*tailjsy;
pjsy=pjsy->next=NULL;

loop1:cout<<"                          欢迎进入公司人员管理系统            "<<endl;
  cout<<"********************************************************************************"<<endl;
  cout<<"你可以进行以下操作,请选择:"<<endl;
  cout<<endl;
  cout<<"1.查询    2.修改    3.添加    4.删除   5.退出"<<endl;
     cout<<endl;
  cout<<"********************************************************************************"<<endl;
  cin>>select1;
  if(select1==1||select1==2||select1==4)
	  if(pjl==NULL&&pxsy==NULL&&pxsjl==NULL&&pjsy==NULL)
	  {
		  cout<<"未曾有任何数据输入!请先添加人员信息。"<<endl;
		  goto loop1;
	  }
  switch (select1)
  {//选择查询功能
	case 1:{
			loop2:cout<<"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"<<endl;
                cout<<"请选择具体的查询方式:"<<endl;
                cout<<"1.按姓名    2.按编号    3.主菜单"<<endl;
				cout<<"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"<<endl;
				cin>>select2;
           switch(select2)
			{
			   //按姓名查
			case 1:{cout<<"=====请输入你要查询的职员的姓名:====="<<endl;
			cin>>m;
			jl *fjl;
			fjl=headjl;
			xsy *fxsy;
			fxsy=headxsy;
			xsjl *fxsjl;
			fxsjl=headxsjl;
			jsy *fjsy;
			fjsy=headjsy;
			while(fjl->next!=NULL)
			{
			if(strcmp(fjl->getname(),m)==0)
			{
				cout<<"查找结果:"<<endl;
				fjl->print();break;
			}
			 else
			 {fjl=fjl->next;cout<<" * "<<endl;}
			}//在经理链表里查找
			{
			if(strcmp(fxsy->getname(),m)==0)
			{
				cout<<"查找结果:"<<endl;
				fxsy->print();
			}
			 else
				fxsy=fxsy->next;
			}while(fxsy->next!=NULL)//在销售员链表里查找
			{
			if(strcmp(fjsy->getname(),m)==0)
			{
				cout<<"查找结果:"<<endl;
				fjsy->print();
			}
			 else
				fjsy=fjsy->next;
			}while(fjsy->next!=NULL)//在技术员链表里查找
			{
			if(strcmp(fxsjl->getname(),m)==0)
			{
				cout<<"查找结果:"<<endl;
				fxsjl->print();
			}
			 else
				fxsjl=fxsjl->next;
			}while(fxsjl->next!=NULL)//在销售经理链表里查找
			if(fjl->next==NULL&&fxsy->next==NULL&&fjsy->next==NULL&&fxsjl->next==NULL)
			{
				cout<<"未找到该员工!"<<endl;
			}//未查找到
				goto loop1;}
			//按编号查
			case 2:{
                   cout<<"=====请输入你要查询的职员的编号:====="<<endl;
                   int j;
				   cin>>j;
                   if(j<1||j>number)
				{cout<<"~编号输入超出范围!请重新输入!"<<endl;cin>>j;}
			jl *fjl;
			fjl=headjl;
			xsy *fxsy;
			fxsy=headxsy;
			xsjl *fxsjl;
			fxsjl=headxsjl;
			jsy *fjsy;
			fjsy=headjsy;
			{
			if(fjl->getn()==j)
			{
				cout<<"查找结果:"<<endl;
				fjl->print();
			}
			 else
				fjl=fjl->next;
			}while(fjl->next!=NULL)//在经理链表里查找
			{
			if(fxsy->getn()==j)
			{
				cout<<"查找结果:"<<endl;
				fxsy->print();
			}
			 else
				fxsy=fxsy->next;
			}while(fxsy->next!=NULL)//在销售员链表里查找
			{
			if(fjsy->getn()==j)
			{
				cout<<"查找结果:"<<endl;
				fjsy->print();
			}
			 else
				fjsy=fjsy->next;
			}while(fjsy->next!=NULL)//在技术员链表里查找
			{
			if(fxsjl->getn()==j)
			{
				cout<<"查找结果:"<<endl;
				fxsjl->print();
			}
			 else
				fxsjl=fxsjl->next;
			}while(fxsjl->next!=NULL)//在销售经理链表里查找
			if(fjl->next==NULL&&fxsy->next==NULL&&fjsy->next==NULL&&fxsjl->next==NULL)
			{
				cout<<"未找到该员工!"<<endl;
			}//未查找到
			goto loop1;
					  }
				//返回主菜单
				 case 3:{cout<<endl;goto loop1;break;}
				default:{
						 cout<<"输入错误请重新输入"<<endl;
						 goto loop2;
						}//loop2为选择查询方式的菜单
						 }
						 break;
						 }
						 //以上为查询功能
	
	 //选择修改功能
	case 2:{ cout<<"=====请输入你要修改的职员的编号:====="<<endl;
			cin>>j;
			jl *fjl,*qjl;
			fjl=qjl=headjl;//*q..用于指向*fjl节点的前一节点,在后面删除*fjl节点时要用到
			xsy *fxsy,*qxsy;
			fxsy=qxsy=headxsy;
			xsjl *fxsjl,*qxsjl;
			fxsjl=qxsjl=headxsjl;
			jsy *fjsy,*qjsy;
			fjsy=qjsy=headjsy;
			{
			if((qjl->next)->getn()==j)
				fjl=qjl->next;
			 else
				qjl=qjl->next;
			}while(qjl->next!=NULL)//在经理链表里查找
			{
			if((qxsy->next)->getn()==j)
				fxsy=qxsy->next;
			 else
				qxsy=qxsy->next;
			}while(qxsy->next!=NULL)//在销售员链表里查找
			{
			if((qjsy->next)->getn()==j)
				fjsy=qjsy->next;
			 else
				qjsy=qjsy->next;
			}while(qjsy->next!=NULL)//在技术员链表里查找
			{
			if((qxsjl->next)->getn()==j)
				fxsjl=qxsjl->next;
			 else
				qxsjl=qxsjl->next;
			}while(qxsjl->next!=NULL)//在销售经理链表里查找

			if(qjl->next!=NULL)//按编号找到的为经理
			{
				cout<<"查找结果:"<<endl;
				fjl->print();
			cout<<"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"<<endl;
			 cout<<"将该对象修改为:"<<endl;
                  cout<<"1.推销员       2.销售经理      3.兼职技术员    4.主菜单"<<endl;
			 cout<<"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"<<endl;
			 cin>>select3;
		  switch(select3)
				//选择修改为销售员
		  {      case 1:
				 {cout<<"输入该推销员的销售总额:"<<endl;
			  	 int l;
				 cin>>l;
				 cout<<"输入该推销员的提成:"<<endl;
				 cin>>y;
				 cout<<"输入级别:"<<endl;
				 cin>>g;
				 xsy *pxsy=new xsy();
				 pxsy->set(fjl->getname(),l,y,g);
				 no1--;//经理数减少一个
				 no2++;//推销员加一个
				 tailxsy->next=pxsy;
				 tailxsy=pxsy;
				 pxsy->next=NULL;
				  cout<<"=====修改后数据为:====="<<endl;
				  pxsy->print();
				  qjl->next=fjl->next;//将查找到的经理对象从链表中删除
				  goto loop1;
				 }
				 //选择修改为销售经理
				 case 2:
					{
					 cout<<"输入该销售经理的固定工资:"<<endl;
					int w;
					  cin>>w;
					 cout<<"输入该销售经理的销售总额:"<<endl;
					 int e;
					 cin>>e;
					cout<<"输入该销售经理的提成:"<<endl;
					cin>>y;
					cout<<"输入该销售经理的级别:"<<endl;
					cin>>g;
					xsjl *pxsjl=new xsjl();
				 pxsjl->set(fjl->getname(),e,w,y,g);
				 no1--;//经理数减少一个
				 no3++;
				 tailxsjl->next=pxsjl;
				 tailxsjl=pxsjl;
				 pxsjl->next=NULL;
					 no1--;
					cout<<"=====修改后数据为:====="<<endl;
                    pxsjl->print();
				   qjl->next=fjl->next;//将查找到的经理对象从链表中删除
					goto loop1;
					 }
				//选择修改为兼职技术员
				 case 3:
					{
						cout<<"输入该兼职技术总的工作时间:"<<endl;
						int w;
						cin>>w;
						cout<<"输入该兼职技术员的工作时薪:"<<endl;
						 int e;
						 cin>>e;
						cout<<"输入该兼职技术员的级别:"<<endl;
						 cin>>g;
						jsy *pjsy=new jsy();
						pjsy->set(fjl->getname(),w,e,g);
						 no1--;
						 no4++;
						 tailjsy->next=pjsy;
						 tailjsy=pjsy;
						 pjsy->next=NULL;
						 cout<<"=====修改后数据为:====="<<endl;
						 pjsy->print();
						 qjl->next=fjl->next;//将查找到的经理对象从链表中删除
						 goto loop1;
							}
				//选择返回主菜单
				 case 4:goto loop1;
						 }
			}


	if(qxsy->next!=NULL)//找到的为销售员
{cout<<"将该对象修改为:"<<endl;
      cout<<"1.经理       2.销售经理      3.兼职技术员"<<endl;
    cin>>select3;
     switch(select3)
  {case 1:
    {cout<<"输入该经理的月薪:"<<endl;
    int l;
    cin>>l;
	cout<<"输入该经理的级别:"<<endl;
    cin>>g;
	jl *pjl=new jl();
	pjl->set(fxsy->getname(),l,g);
	tailjl->next=pjl;
	tailjl=pjl;
	pjl->next=NULL;
    no2--;
	no1++;
	cout<<"=====修改后数据为:====="<<endl;
    pjl->print();
	qxsy->next=fxsy->next;//将找到的销售员对象从链表中删除
    goto loop1;
     }
    case 2:
    {
    loop10: cout<<"输入该销售经理的固定工资:"<<endl;
     int w;
     cin>>w;
     cout<<"输入该销售经理的销售总额:"<<endl;
     int e;
     cin>>e;
     cout<<"输入该销售经理的提成:"<<endl;
     cin>>y;
	  cout<<"输入该销售经理的级别:"<<endl;
     cin>>g;
	 xsjl *pxsjl=new xsjl();
	 pxsjl->set(fxsy->getname(),e,w,y,g);
	tailxsjl->next=pxsjl;
	 tailxsjl=pxsjl;
	 pxsjl->next=NULL;
     no2--;
	 no3++;
     cout<<"=====修改后数据为:====="<<endl;
     pxsjl->print();
	 qxsy->next=fxsy->next;//将找到的销售员对象从链表中删除
     goto loop1;
    }
         case 3:
           {
             cout<<"输入该兼职技术总的工作时间:"<<endl;
             int w;
             cin>>w;
             cout<<"输入该兼职技术员的工作时薪:"<<endl;
              int e;
             cin>>e;
			 cout<<"输入该兼职技术员的级别:"<<endl;
             cin>>g;
			jsy *pjsy=new jsy();
			 pjsy->set(fxsy->getname(),w,e,g);
			tailjsy->next=pjsy;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -