#include<iostream.h>
class Staff //定义一个Staff虚基类
{
  public:
    virtual void pay(){}
    double wage,vacate,yeji;
   
};   
class NStaff:public Staff//定义一个雇员NStaff的派生类
{
public:
        void pay(){cout<<"基本工资 3000:"<<endl;//声明并定义缺省的pay()(雇员工资计算)函数
                  cout<<"输入请假天数:";cin>>vacate;
                  yeji=1500;
                  wage=3000+yeji-vacate*100;
                  cout<<"工资:"<<wage<<endl;}
    };
class Manager:public Staff//定义一个经理Manager的派生类
{public:
        void pay(){cout<<"基本工资:3500"<<endl;//声明并定义缺省的pay()(经理工资计算)函数
                    cout<<"固定奖金:500"<<endl;
                    cout<<"输入请假天数:";cin>>vacate;
                    cout<<"输入业绩系数:";cin>>xishu;
                    yeji=500*xishu;
                    wage=3500+yeji-vacate*100;
                    cout<<"工资:"<<wage<<endl;}
        double xishu;    };
class Techman:public Staff//定义一个技术人员Techman的派生类
{public:
        void pay(){cout<<"基本工资:3500"<<endl;//声明并定义缺省的pay()(技术人员工资计算)函数
                  cout<<"输入请假天数:";cin>>vacate;
                  cout<<"付佣金工作小时:";cin>>hours;
                  yeji=20*hours;
电脑编程工资多少                  wage=3500+yeji-vacate*100;
                  cout<<"工资:"<<wage<<endl;}
protected:    double hours;   
};
class Techmanager:public Techman//定义一个技术经理缺省的pay()(技术经理工资计算)函数
{public:
        void pay(){cout<<"基本工资:3500"<<endl;//声明并定义缺省的pay()(技术经理工资计
算)函数
                  cout<<"输入请假天数:";cin>>vacate;
                  cout<<"输入业绩系数:";cin>>xishu;
                  cout<<"输入研究进度系数:";cin>>jindu;
                  cout<<"工作小时:";cin>>hours;
                  yeji=200*xishu+20*hours*jindu;
                  wage=4000+yeji-vacate*100;
                  cout<<"工资:"<<wage<<endl;}
protected:    double jindu,xishu,hours;   
};
void main()
{      cout<<"                          员工工资表统计"<<endl<<endl;//设置标题美化               
      cout<<" 身份代号:  【1:雇员】 【2:经理】 【3:技术人员】 【4:技术经理】    "<<endl<<endl;//备注兼美化功能             
      char name[10];
      long int i;
      int  m;
      NStaff a1;
      Manager a2;
      Techman a3;
      Techmanager a4;
      Staff obj,*ptr;
      cout<<"    请输入员工姓名,ID:";
      cin>>name>>i;
      cout<<"请输入身份代号:";cin>>m;
      switch (m)
      {
          case 1:  ptr=&a1 ;ptr->pay() ;break;
          case 2:  ptr=&a2 ;ptr->pay() ;break;
          case 3:  ptr=&a3 ;ptr->pay() ;break;
          case 4:  ptr=&a4 ;ptr->pay() ;break;
}}