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

📄 1.cpp

📁 小型公司的工资管理系统程序 the salary management
💻 CPP
字号:
#include<iomanip.h>
#include<iostream.h>
#include<fstream.h>
#include<stdlib.h>
class Employ//基类-雇员类
{
protected:
          int num;
    char name[10];
    char sex;
    int age;
    int wage;
public:
virtual void set()=0;
virtual void print()=0;
virtual void reserved()=0;

};

class Manager:public Employ//经理类
{
public:
    void set();
    void print();
void reserved();
};

class Salesman:public Employ//销售员类
{
protected:
int salesvolume;
int snum;
public:
    void set();
    void print();
void reserved();
void printinfor();
int getsales()
{return salesvolume;}
int getsnum()
{return snum;}
};


class MarketMan:public Manager//销售经理类
{
protected:
int salesvolume;
public: 
    void set();
    void print();
void reserved();
    int resetwage();
int getnum()
{return num;}
char*getname()
{return name;}
int getamount(Salesman s[],int n)
{
salesvolume=0;
for(int i=0;i<n;i++)
{if(s[i].getsnum()==num)
salesvolume+=s[i].getsales();}
return salesvolume;
}
};


class Technician:public Employ//技术员类
{
protected:
int worktime;
public:
    void set();
    void print();
void reserved();
};

void Manager::set()
{
wage=8000;
cout<<"经理的编号:";
cin>>num;
cout<<"其姓名:";
cin>>name;
cout<<"性别(m/w):";
cin>>sex;
cout<<"年龄:";
cin>>age;
}

void Manager::print()//经理类成员函数
{
cout<<"┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫"<<endl;
cout<<"┃"<<setw(12)<<num<<"┃"<<setw(12)<<name<<"┃"<<setw(12)<<sex;
cout<<"┃"<<setw(12)<<age<<"┃"<<setw(12)<<wage<<"┃"<<endl;
}
void Manager::reserved()
{
ofstream employf("E:\\05-29\\gzglxt.txt",ios::app);
employf<<"经理的编号:"<<num<<endl
           <<"其姓名:"<<name<<endl
        <<"性别(m/w):"<<sex<<endl
        <<"年龄:"<<age<<endl;
}

void MarketMan::set()
{
wage=resetwage();
cout<<"销售经理的编号:";
cin>>num;
cout<<"其姓名:";
cin>>name;
cout<<"性别(m/w):";
cin>>sex;
cout<<"年龄:";
cin>>age;
}
    void MarketMan::print()
{
   resetwage();
cout<<"┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫"<<endl;
cout<<"┃"<<setw(12)<<num<<"┃"<<setw(12)<<name<<"┃"<<setw(12)<<sex;
cout<<"┃"<<setw(12)<<age<<"┃"<<setw(12)<<wage<<"┃"<<endl;
}
void MarketMan::reserved()
{
   ofstream employf("E:\\05-29\\gzglxt.txt",ios::app);
employf<<"销售经理的编号:"<<num<<endl
           <<"其姓名:"<<name<<endl
        <<"性别(m/w):"<<sex<<endl
        <<"年龄:"<<age<<endl;
}
int MarketMan::resetwage()
{
wage=5000+int(salesvolume*0.005);
return wage;
}

void Salesman::set()//销售员类定义
{
cout<<"销售员的编号:";
cin>>num;
cout<<"其姓名:";
cin>>name;
cout<<"性别(m/w):";
cin>>sex;
cout<<"年龄:";
cin>>age;
cout<<"销售额:";
cin>>salesvolume;
cout<<"所属销售经理的编号:";
cin>>snum; 
wage=int(salesvolume*0.04);
}
void Salesman::printinfor()
{
cout<<"┣━━━━━━━╋━━━━━━━╋━━━━━━━┫"<<endl;
cout<<"┃"<<setw(14)<<num<<"┃"<<setw(14)<<name<<"┃"<<setw(14)<<salesvolume<<"┃"<<endl;
}
void Salesman::print()
{
cout<<"┣━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━━━┫"<<endl;
cout<<"┃"<<setw(8)<<num<<"┃"<<setw(10)<<name<<"┃"<<setw(10)<<sex;
cout<<"┃"<<setw(10)<<age<<"┃"<<setw(10)<<wage<<"┃"<<setw(16)<<getsnum()<<"┃"<<endl; 
}
void Salesman::reserved()
{
ofstream employf("E:\\05-29\\gzglxt.txt",ios::app);
employf<<"销售员的编号:"<<num<<endl
           <<"其姓名:"<<name<<endl
        <<"性别(m/w):"<<sex<<endl
        <<"年龄:"<<age<<endl
     <<"销售额:"<<salesvolume<<endl
     <<"所属销售经理的编号"<<snum<<endl;
}

void Technician::set()//技术员类定义
{
cout<<"技术员的编号:";
cin>>num;
cout<<"其姓名:";
cin>>name;
cout<<"性别(m/w):";
cin>>sex;
cout<<"年龄:";
cin>>age;
cout<<"工作时间:";
cin>>worktime;
wage=worktime*100;
}
    void Technician::print()
{
cout<<"┣━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━╋━━━━━━┫"<<endl;
cout<<"┃"<<setw(12)<<num<<"┃"<<setw(12)<<name<<"┃"<<setw(12)<<sex;
cout<<"┃"<<setw(12)<<age<<"┃"<<setw(12)<<wage<<"┃"<<endl; 
}
void Technician::reserved()
{
   ofstream employf("E:\\05-29\\gzglxt.txt",ios::app);
employf<<"技术员的编号:"<<num<<endl
           <<"其姓名:"<<name<<endl
        <<"性别(m/w):"<<sex<<endl
        <<"年龄:"<<age<<endl
           <<"工作时间:"<<worktime<<endl;
}
//主函数
int t,m,s,mm;
Technician*pt;
Manager*pm;
Salesman*ps;
MarketMan*pmm;

void setin();
void count();
void printdata();
void reservedall();
void single();


void main()
{
cout<<"请分别输入技术员,经理,销售员,销售经理人数:"<<endl;
cin>>t>>m>>s>>mm;
pt=new Technician[t];
pm=new Manager[m];
ps=new Salesman[s];
pmm=new MarketMan[mm];
if((!pt)||(!pm)||(!ps)||(!pmm))
{
cout<<"堆内存分配失败!"<<endl;
exit(1);}
single();

}


void single() 
{
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<<"┗━━━━━━━━━━━━━┛"<<endl;
cout<<"请选择一个操作:"<<endl;
int choice;

cin>>choice;



switch(choice)
{
case 1:setin();
case 2:count();     
case 3:printdata();
case 4:reservedall();
case 5:exit(0);
}
}



void setin()
{
Menu1:
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 ch1,i;
cin>>ch1;
switch(ch1)
{
case 1:{for(i=0;i<t;i++)
        pt[i].set();
        cout<<"---------------------------------"<<endl;
   goto Menu1;}
case 2:{for(i=0;i<m;i++)
        pm[i].set();
        cout<<"---------------------------------"<<endl;
     goto Menu1;}
case 3:{for(i=0;i<s;i++)
        ps[i].set();
        cout<<"---------------------------------"<<endl;
     goto Menu1;
    }
case 4:{for(i=0;i<mm;i++)
        pmm[i].set();
        cout<<"---------------------------------"<<endl;
     goto Menu1;
    }
case 5:single();

}}
void count()
{
Menu2:
cout<<"★★小型公司工资管理系统★★"<<endl;
cout<<"┏━━━━━━━━━━━━━━━━━━━━━━┓"<<endl;
cout<<"┃      请选择所需的操作                      ┃"<<endl;
cout<<"┃                                            ┃"<<endl;
cout<<"┃各销售经理下属销售员业绩统计 : 1,并按回车键 ┃"<<endl;
cout<<"┃                                            ┃"<<endl;
cout<<"┃销售经理按工资排序           : 2,并按回车键 ┃"<<endl;
cout<<"┃                                            ┃"<<endl;
cout<<"┃返回上一级菜单               : 3,并按回车键 ┃"<<endl;
cout<<"┗━━━━━━━━━━━━━━━━━━━━━━┛"<<endl;
cout<<"请选择一个操作";
int ch2,i,j;
cin>>ch2;
switch(ch2)
{
case 1:{for(i=0;i<mm;i++)
    {cout<<"职工号为:"<<pmm[i].getnum()<<"销售经理:"<<pmm[i].getname()<<"下属销售员的业绩为:"<<endl;
        cout<<"┏━━━━━━━┳━━━━━━━┳━━━━━━━┓"<<endl;
        cout<<"┃职工号        ┃姓名          ┃销售额        ┃"<<endl;
        for(j=0;j<s;j++)
        if(pmm[i].getnum()==ps[j].getsnum())
        ps[j].printinfor();
        cout<<"┣━━━━━━━┻━━━┳━━━┻━━━━━━━┫"<<endl;
        cout<<"┃销售额总计:           ┃"<<setw(22)<<pmm[i].getamount(ps,s)<<"┃"<<endl;
        cout<<"┗━━━━━━━━━━━┻━━━━━━━━━━━┛"<<endl;}
        goto Menu2;
    }
case 2:{cout<<"销售经理按工资排序为:"<<endl;
        MarketMan pmmm;
        for(i=1;i<mm;i++)
        for(j=0;j<mm-i;j++)
        if(pmm[j].getamount(ps,s)<pmm[j+1].getamount(ps,s))
   {
       pmmm=pmm[j];
       pmm[j]=pmm[j+1];
       pmm[j+1]=pmmm;
   }
       cout<<"┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓"<<endl;
       cout<<"┃   职工号   ┃   姓名     ┃   性别     ┃   年龄     ┃   工资     ┃"<<endl;
       for(i=0;i<mm;i++)
       pmm[i].print();
       cout<<"┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛"<<endl;
       cout<<" --------------------------------------------"<<endl;
     goto Menu2;}
case 3:single();

}}
void printdata()
{
Menu3:
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 ch3,i;
cin>>ch3;
switch(ch3)
{case 1:{
        cout<<"技术员"<<endl<<endl;
        cout<<"┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓"<<endl;
        cout<<"┃   职工号   ┃   姓名     ┃   性别     ┃   年龄     ┃   工资     ┃"<<endl;
        for(i=0;i<t;i++)
        pt[i].print();
        cout<<"┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛"<<endl;
        cout<<"------------------------------------------"<<endl;
   goto Menu3;}
case 2:{ cout<<"经理"<<endl<<endl;
      cout<<"┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓"<<endl;
         cout<<"┃   职工号   ┃   姓名     ┃   性别     ┃   年龄     ┃   工资     ┃"<<endl;
        for(i=0;i<m;i++)
        pm[i].print();
        cout<<"┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛"<<endl;
        cout<<"------------------------------------------"<<endl;
        goto Menu3;}
case 4:{cout<<"销售经理"<<endl<<endl;
    cout<<"┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┓"<<endl;
        cout<<"┃   职工号   ┃   姓名     ┃   性别     ┃   年龄     ┃   工资     ┃"<<endl;
        for(i=0;i<mm;i++)
        pmm[i].print();
        cout<<"┗━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛"<<endl;
        cout<<"------------------------------------------"<<endl;
   goto Menu3;}
case 3:{cout<<"销售员"<<endl<<endl;
     cout<<"┏━━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━━━┓"<<endl;
        cout<<"┃ 职工号 ┃   姓名   ┃   性别   ┃   年龄   ┃   工资   ┃所属部门经理编号┃"<<endl;
        for(i=0;i<s;i++)
        ps[i].print();
        cout<<"┗━━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━━━┛"<<endl;
        cout<<"------------------------------------------"<<endl;
   goto Menu3;}
case 5:single();
}
}
void reservedall()
{Menu4:
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 ch4,i;
cin>>ch4;
switch(ch4)
{
case 1:{for(i=0;i<t;i++)
     pt[i].reserved();
    goto Menu4;
    }
case 2:{for(i=0;i<m;i++)
     pm[i].reserved();
    goto Menu4;
    }
case 3:{for(i=0;i<s;i++)
     ps[i].reserved();
    goto Menu4;
    }
case 4:{for(i=0;i<mm;i++)
     pmm[i].reserved();
    goto Menu4;
    }
case 5:single();
}
}
 

⌨️ 快捷键说明

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