D.Teacher_Cadre

D.Teacher_Cadre
Time Limit: 1000 MSMemory Limit: 32768 K
Total Submit: 73 (71 users)Total Accepted: 73 (71 users)Special Judge: No
Description
利用面向对象设计方法解决问题。
    现有教师类Teacher的完整定义,其中name表示姓名(string型),age表示年龄(int型),title表示职称(string型)。 
    根据Teacher类和主函数的内容,设计派生类Teacher_Cadre类教师干部类,该类除了具有类Teacher的全部属性外,还具有post表示职务(string型),wages表示工资(int型)。
    输入2名教师干部信息进行比较,把工资高的人员信息输出(相同工资时2人信息全部输出)。

Input
有1组测试数据,共2行输入数据。
    每行输入一个教师干部人员的信息,数据之间以空格分隔。

Output
有1行或2行输出。
    每行输出的内容是工资高的人员的部分信息,包括姓名、职称、职务、工资。数据之间以空格分隔。

Sample Input
Li 30 Inst DC 4200
Zhang 25 Inst TE 3700
Sample Output
Li Inst DC 4200
Hint
class Teacher{
  protected:
    string name;
    int age;
    string title;
  public:
   Teacher(string n,int a,string t):name(n),age(a),title(t){}
   Teacher(){}
   string getN(){return name;}
   string getT(){return title;}
   int getA(){return age;}
   void set(string n,int a,string t){name=n;age=a;title=t;}
};


int main()
{
  Teacher_Cadre t1;
  int a,w;
  string n,t,p;
  cin>>n>>a>>t>>p>>w;
  t1.set(n,a,t,p,w);
  cin>>n>>a>>t>>p>>w;
  Teacher_Cadre t2(n,a,t,p,w);
  if(t1.getW()>t2.getW()){cout<<t1.getN()<<" "<<t1.getT()<<" "<<t1.getP()<<" "<<t1.getW()<<endl;}
  else if(t1.getW()<t2.getW()) {cout<<t2.getN()<<" "<<t2.getT()<<" "<<t2.getP()<<" "<<t2.getW()<<endl;}
  else {
     cout<<t1.getN()<<" "<<t1.getT()<<" "<<t1.getP()<<" "<<t1.getW()<<endl;
     cout<<t2.getN()<<" "<<t2.getT()<<" "<<t2.getP()<<" "<<t2.getW()<<endl;
  }
  return 0;
}

#include<iostream>
#include<stdio.h>
#include<cmath>
#include<iomanip>
#include<cstdio>
using namespace std;

class Teacher 
{
    friend class Teacher_Cadre;
protected:
    string name;
    int age;
    string title;
public:
    Teacher(string n, int a, string t) :name(n), age(a), title(t) {}
    Teacher() {}
    string getN() { return name; }
    string getT() { return title; }
    int getA() { return age; }
    void set(string n, int a, string t) { name = n; age = a; title = t; }
};

class Teacher_Cadre:public Teacher
{
public:
    string post;
    int wages;
    Teacher_Cadre(string n, int a, string t, string p, int w)
    {
        name = n, age = a, title = t, post = p, wages = w;
    }
    Teacher_Cadre() {}
    void set(string n, int a, string t, string p, int w)
    {
        name = n, age = a, title = t, post = p, wages = w;
    }
    int getW()
    {
        return wages;
    }
    string getP()
    {
        return post;
    }
};

int main()
{
    Teacher_Cadre t1;
    int a, w;
    string n, t, p;
    cin >> n >> a >> t >> p >> w;
    t1.set(n, a, t, p, w);
    cin >> n >> a >> t >> p >> w;
    Teacher_Cadre t2(n, a, t, p, w);
    if (t1.getW() > t2.getW()) { cout << t1.getN() << " " << t1.getT() << " " << t1.getP() << " " << t1.getW() << endl; }
    else if (t1.getW() < t2.getW()) { cout << t2.getN() << " " << t2.getT() << " " << t2.getP() << " " << t2.getW() << endl; }
    else {
        cout << t1.getN() << " " << t1.getT() << " " << t1.getP() << " " << t1.getW() << endl;
        cout << t2.getN() << " " << t2.getT() << " " << t2.getP() << " " << t2.getW() << endl;
    }
    return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值