• [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;
    }

  • 相关阅读:
    一例千万级pv高性能高并发网站架构[原创]
    Download SymmetricDS Data Sync Software for Free
    阿里巴巴开源项目:分布式数据库同步系统otter(解决中美异地机房)
    青云QingCloud业内率先支持云端全面透明代理功能 | SDNLAB | 专注网络创新技术
    UCloud EIP 你真的懂得如何使用么?
    MySQL高可用性大杀器之MHA | 火丁笔记
    Zookeeper、Solr和Tomcat安装配置实践
    Best Premium Private Proxy Service | Lime Proxies
    突破LVS瓶颈,LVS Cluster部署(OSPF + LVS)
    Nodejs负载均衡:haproxy,slb以及node-slb
  • 原文地址:https://www.cnblogs.com/sxy201658506207/p/7586340.html
Copyright © 2020-2023  润新知