zoukankan      html  css  js  c++  java
  • [YTU]_2444(C++习题 对象转换)

    题目描述

    定义一个Teacher(教师)类(教师号,姓名,性别,薪金)和一个Student(学生)类(学号,姓名,性别,成绩),二者有一部分数据成员是相同的,num(号码),name(姓名),sex(性别)。编写程序,将一个Student对象(学生)转换为Teacher(教师)类,只将以上3个相同的数据成员移植过去。可以设想为: 一位学生大学毕业了,留校担任教师,他原有的部分数据对现在的教师身份来说仍然是有用的,应当保留并成为其教师数据的一部分。

    输入

    一个教师的信息和一个学生的信息

    输出

    学生的信息和学生转换为教师后的信息

    样例输入

    10001 Li f 1234.5
    20010 Wang m 89.5
    

    样例输出

    student1:
    num:20010
    name:Wang
    sex:m
    score:89.50
    teacher2:
    num:20010
    name:Wang
    sex:m
    pay:1500.00
    #include <iostream>
    #include <iomanip>
    #include <cstring>
    using namespace std;
    class Student
    {
    private:
        float score;
    public:
        int num;
        char name[20];
        char sex;
        Student(){};
        Student(int n1,char n[20],char s1,float s):num(n1),sex(s1),score(s)
        {
            strcpy(name,n);
        }
        void display();
    };
    class Teacher
    {
    public:
        Teacher();
        Teacher(int n1,char n[20],float s,float p):num(n1),sex(s),pay(p){strcpy(name,n);}
        int num;
        char name[20];
        char sex;
        void setpay(float p){pay=p;}
        void display();
        Teacher(Student &s)
        {   num=s.num;
            strcpy(name,s.name);
            sex=s.sex;
        }
    private:
        float pay;
    };
    void Student::display()
    {cout<<"num:"<<num<<endl<<"name:"<<name<<endl<<"sex:"<<sex<<endl<<"score:"<<score<<endl;}
    void Teacher::display()
    {cout<<"num:"<<num<<endl<<"name:"<<name<<endl<<"sex:"<<sex<<endl<<"pay:"<<pay<<endl;}
    int main()
    {
        cout<<setiosflags(ios::fixed);
        cout<<setprecision(2);
        int num;
        char name[20];
        char sex;
        float score;
        float pay;
        cin>>num>>name>>sex>>pay;
        Teacher teacher1(num,name,sex,pay);
        cin>>num>>name>>sex>>score;
        Student student1(num,name,sex,score);
        cout<<"student1:"<<endl;
        student1.display();
        Teacher teacher2=Teacher(student1);
        teacher2.setpay(1500);
        cout<<"teacher2:"<<endl;
        teacher2.display();
        return 0;
    }

  • 相关阅读:
    腾讯云挂载文件服务器节点
    OpsManage 安装
    centos7 安装mysql
    vs code 新建vue项目
    Centos7 安装supervisor
    腾讯云Centos7 安装nginx
    django 生成pdf
    VM安装虚拟机
    ACM/ICPC 之 Floyd练习六道(ZOJ2027-POJ2253-POJ2472-POJ1125-POJ1603-POJ2607)
    ACM/ICPC 之 Floyd范例两道(POJ2570-POJ2263)
  • 原文地址:https://www.cnblogs.com/sxy201658506207/p/7586340.html
Copyright © 2011-2022 走看看