回 帖 发 新 帖 刷新版面

主题:跪求各位援助,,实验代码

一类与对象的定义
1)定义员工类worker,其属性有工号id姓名name年龄age性别gender工资salary等,
2)计算工资最高者,最低着以及工资平均值;
3)比较男女员工的平均工资。
二继承和派生
1)定义人员类person,属性有:姓名,性别,年龄;
2)派生学生类student,属性有:学号,入学时间,入学成绩;
3)从person类再派生教师类teacher,属性有:职务,部门,工作时间:
4)student类派生研究生类graduate,属性有:研究方向和导师;
5)有graduate和teacher类派生研究生类和导师类supervisor,,
6)在每个类中实现对象的析构,构造,输入与输出;
7)在main()里定义对象和操作


跪求帮帮忙,,,,

回复列表 (共2个回复)

沙发

首先,将其中的所有年龄都替换成生日,数据管理杜绝年龄,工龄,学龄之类的时间段数据,要换成生日,参加工作时间,入学时间等,不然要有人每天不停的查看有没有人过生日,如果有要给他的年龄加一

板凳

#ifndef PERSON_H
#define PERSON_H
#include <vector>

#define male true
#define female false
using namespace std;
//职工信息类
class Worker
{
private:
  int id;
  char name[12];
  int age;
  bool gender;
  float salary;
public:
  Worker(){strcpy(name,"NoName");}
  Worker(int i,char *n,int a,bool g,float s)
  {
    id=i;
    strcpy(name,n);
    age=a;
    gender=g;
    salary=s;
  }
  void setId(int i){id=i;}
  int getId(void)const{return id;}
  void setName(char *n){strcpy(name,n);}
  char * getName(void)const{return name;}
  void setAge(int a){age=a;}
  int getAge(void)const{return age;}
  void setGender(bool g){gender=g;}
  bool getGender(void)const{return gender;}
  void setSalary(float s){salary=s;}
  float getSalary(void)const{return salary;}
  void operator =(Worker other)
  {
    setId(other.getId());
    setName(other.getName());
    setAge(other.getAge());
    setGender(other.getGender());
    setSalary(other.getSalary());
  }
};
//职工信息管理类
class WorkerManager
{
private:
  vector<Worker> Workers;
  vector<Worker>::iterator pos;
public:
  WorkerManager(){}
  void addWorker(Worker w)
  {
    Workers.push_back(w);
  }
  Worker getMaxSalary(void)
  {
    Worker w;
    w.setSalary(-1e6);

    for(pos=Workers.begin();pos<Workers.end();pos++)
    {
      if((*pos).getSalary()>w.getSalary())
      {
        w=(*pos);
      }
    }
    return w;
  }
  double getAverSalary(bool g)
  {
    float s;
    int Found;
    s=0.0;
    Found=0;
    for(pos=Workers.begin();pos<Workers.end();pos++)
    {
      if((*pos).getGender()==g)
      {
        s+=(*pos).getSalary();
        Found++;
      }
    }
    if(Found>0)return s/Found;
    else return 0;
  }
  void compareSalary(void)
  {
    if(getAverSalay(male)>getAverSalary(female))
    {
      //男职工平均工资高于女职工
    }
    else
    {
      //女职工平均工资高于男职工
    }
  }
};

#endif // PERSON_H
第二个可以参照这个编写

我来回复

您尚未登录,请登录后再回复。点此登录或注册