zoukankan      html  css  js  c++  java
  • C++习题 对象转换

    [Submit][Status][Web Board]

    Description

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

    Input

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

    Output

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

    Sample Input

    10001 Li f 1234.520010 Wang m 89.5

    Sample Output

    student1:num:20010name:Wangsex:mscore:89.50teacher2:num:20010name:Wangsex:mpay:1500.00
    #include<iomanip>
    #include<cstring>
    #include<iostream>
    using namespace std;
    class Student
    {public:
    	Student (int n,char nam[],char s,float sco)
    	{num=n;
    	strcpy(name,nam);
    	sex=s;
    	score=sco;}
    void display()
    	{cout<<"num:"<<num<<endl;
    	cout<<"name:"<<name<<endl<<"sex:"<<sex<<endl<<"score:"<<score<<endl;}
    int num;
    float score;
    char name[20],sex;
    };
    class Teacher
    {
    public:
    	void setpay(float a)
    	{pay=a;}
    	Teacher (int n,char nam[],char s,float a)
    	{num=n;
    	strcpy(name,nam);
    	sex=s;
    	pay=a;}
    	Teacher(Student &stu);
    
    	void display()
    	{cout<<"num:"<<num<<endl;
    	cout<<"name:"<<name<<endl<<"sex:"<<sex<<endl<<"pay:"<<pay<<endl;}
    	int num;
    	float pay;
    char name[20],sex;};
    Teacher:: Teacher(Student &stu)
    	{num=stu.num;
    	strcpy(name,stu.name);
    	sex=stu.sex;
    	pay=1500;}
    
    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;
    
    }


  • 相关阅读:
    线程池:
    C#:实现托盘
    Linux内核 TCP/IP、Socket参数调优
    redis配置文件redis.conf参数说明
    redis安装与参数说明
    巧用linux服务器的/dev/shm/,如果合理使用,可以避开磁盘IO不给力,提高网站访问速度。
    mkdir:批量创建文件夹
    linux下的shell运算(加、减、乘、除)
    Linux查看文件编码格式及文件编码转换
    解决vi/vim中粘贴会在行首多很多缩进和空格的问题
  • 原文地址:https://www.cnblogs.com/oversea201405/p/3766923.html
Copyright © 2011-2022 走看看