问题描述:设计抽象类Person,派生出具体类:学生类Student和教师类Teacher,创建若干不同类对象后并在主方法中测试。
数据成员定义:
Person [ID,姓名,生日]
Student [专业,成绩]
Teacher [职称,工资]
带参构造方法分别为:
Person(int id,String name, int bir)
Student(int id,String name, int bir, String major,double score)
Teacher(int id,String name, int bir, String title, double salary)
toString方法(Eclipse自动生成)

输入格式:第一行整数n表示有n个对象,每个对象占2行,第一行为数字0(表示学生)或1(表示教师),第二行为生成对象的参数。

输出格式:按行输出具体对象的信息。

#include<iostream>
#include<iomanip>
using namespace std;
class Person{public:int ID; string Name; int Birthday;void Set(int id, string name, int birthday){ID=id;Name=name;Birthday=birthday;}void Print();
};class Student : public Person{public:string Major; double Score;void Set(int id, string name, int birthday, string major, double score){Person::Set(id,name,birthday);Major=major;Score=score;}void Print(){cout<<"Student [";Person::Print();cout<<"major="<<Major<<", score="<<fixed<<setprecision(1)<<Score<<"]"<<endl;}
};Student *per[10];class Teacher : public Person{public:string Title; double Salary;void Set(int id, string name, int birthday, string title, double salary){Person::Set(id,name,birthday);Title=title;Salary=salary;}void Print(){cout<<"Teacher [";Person::Print();cout<<"title="<<Title<<", salary="<<fixed<<setprecision(1)<<Salary<<"]"<<endl;}
};Teacher *perr[10];void Person::Print(){cout<<"id="<<ID<<", name="<<Name<<", bir="<<Birthday<<", ";}int main(){Student *stu; Teacher *tea;int n, i, choice;cin>>n;for(i=0;i<n;i++){cin>>choice;if(choice==0){stu=new Student();cin>>stu->ID>>stu->Name>>stu->Birthday>>stu->Major>>stu->Score;per[i]=stu;}if(choice==1){tea=new Teacher();cin>>tea->ID>>tea->Name>>tea->Birthday>>tea->Title>>tea->Salary;perr[i]=tea;}}for(i=0;i<n;i++){if(per[i]){per[i]->Print();}else{perr[i]->Print();}}return 0;
}

PTA---C++实现,定义抽象类Person、派生类Student和类Teacher相关推荐

  1. PTA习题 7-4 定义抽象类Person、派生类Student和类Teacher

    7-4 定义抽象类Person.派生类Student和类Teacher 分数 10 设计抽象类Person,派生出具体类:学生类Student和教师类Teacher,创建若干不同类对象后并在主方法中测 ...

  2. 定义抽象类Person、派生类Student和类Teacher

    设计抽象类Person,派生出具体类:学生类Student和教师类Teacher,创建若干不同类对象后并在主方法中测试. 数据成员定义: Person [ID,姓名,生日] Student [专业,成 ...

  3. scala定义抽象类与抽象字段

    抽象类 和Java语言一样,scala中也可以定义抽象类 定义: 如果类的某个成员在当前类中的定义是不包含完整的,它就是一个抽象类 不完整定义有两种情况: 1.方法没有方法体(抽象方法) 2.变量没有 ...

  4. java抽象类及其派生类_java抽象类

    本文指标: 1. 最基本的运用:掌握java类最简单,最核心的写法 2. 理论知识:语法角度,设计角度 3. 几种典型应用 最简单也是最核心的抽象类示例: 学习应该是一个循序渐进的过程,学java抽象 ...

  5. 设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类、三角形类来继承图形类,并实现上述两个方法

    设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类.长方形类.正方形类.三角形类来继承图形类,并实现上述两个方法 设计抽象类 就要使用abstract关键字,抽象类中的 ...

  6. 定义一个三角形类(TRI)及其派生类三角柱体类(COL)。其中三角形类可以计算三角形的面积和周长;三角柱体类可以计算柱体的体积和表面积。其具体要求如下: (1)TRI的成员如下:  私有数据成员 

    题目要求: 定义一个三角形类(TRI)及其派生类三角柱体类(COL).其中三角形类可以计算三角形的面积和周长:三角柱体类可以计算柱体的体积和表面积.其具体要求如下: (1)TRI的成员如下: 私有数据 ...

  7. c++基础-继承与派生,定义基类person和公有派生类student

    ①定义基类person,数据成员name,sex,age,构造函数,析构函数,输出name,sex,age的函数display(). ②定义公有派生类student,数据成员:num,构造函数,析构函 ...

  8. Java中定义抽象类Shape,其中包含抽象方法double getPeremeter( )求周长和double getArea( )求面积。 定义一个矩形类,继承此抽象类,并自行扩充成员变量和方法。

    Java中定义抽象类Shape,其中包含抽象方法double getPeremeter( )求周长和double getArea( )求面积. 定义一个矩形类,继承此抽象类,并自行扩充成员变量和方法, ...

  9. 第十三章、创建接口和定义抽象类

    接口不包含任何代码或数据:它只规定了从接口继承的类必须提供哪些方法和属性.使用接口,方法的名称/签名可以和方法的具体实现完全隔绝. 抽象类在许多方面都和接口相似,只是它们可以包含代码和数据.然而,可以 ...

最新文章

  1. OpenCV(25)轮廓检测(轮廓提取、属性、近似轮廓、外接矩形和外接圆)
  2. 资料分享:送你一本《BigONE Developer API V2》电子书!
  3. 仅50张图片训练数据的AI分类技术PK​,阿里拿下ECCV 2020竞赛冠军
  4. JSON——Jackson 时间格式化输入输出
  5. c# 窗口句柄问题 。
  6. omitting directory `folder/'
  7. CF280D-k-Maximum Subsequence Sum【模拟费用流,线段树】
  8. 数据库的三才阵——地
  9. 读源码Apache-commons-lang3-3.1(一)
  10. 爬虫教程( 1 ) --- 初级、基础、实践
  11. 老电脑宏基E1-471G SSD 装win10系统
  12. 微信小程序 input输入事件
  13. (超详细) eclispe如何连接SQL Server2019(通过JDBC驱动包连接)
  14. 深光标准技术:谷歌GMS认证是什么?谷歌AER认证是什么?GMS认证的费用跟周期是多少??
  15. 喜讯 | 图扑科技再获厦门数字经济创新创业大赛一等奖
  16. android 通话自动录音服务
  17. iPhone 电池容量怎么算?
  18. 什么样的程序员才算得上优秀,把导师曾对我说的话送给大家(比代码更重要的事)
  19. ubuntu命令行启动浏览器_linux命令行下使用linux打开浏览器命令
  20. cpu上干硅脂怎么清理_安装CPU或者清理灰尘时CPU导热硅脂的使用方法及注意事项...

热门文章

  1. 浅析跨境电商行业为何发展如此迅猛?
  2. java spark k-means算法
  3. 呼伦贝尔~根河~鄂温克族
  4. numpy基础(1)
  5. File Associations
  6. Vue人资中台--公司的员工管理(数据处理)
  7. 什么是Maixpy3
  8. dalvik模式和art模式的区别
  9. google语音服务注意事项
  10. 使用Eclipse开发Spring的第一个简单程序