PTA---C++实现,定义抽象类Person、派生类Student和类Teacher
问题描述:设计抽象类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相关推荐
- PTA习题 7-4 定义抽象类Person、派生类Student和类Teacher
7-4 定义抽象类Person.派生类Student和类Teacher 分数 10 设计抽象类Person,派生出具体类:学生类Student和教师类Teacher,创建若干不同类对象后并在主方法中测 ...
- 定义抽象类Person、派生类Student和类Teacher
设计抽象类Person,派生出具体类:学生类Student和教师类Teacher,创建若干不同类对象后并在主方法中测试. 数据成员定义: Person [ID,姓名,生日] Student [专业,成 ...
- scala定义抽象类与抽象字段
抽象类 和Java语言一样,scala中也可以定义抽象类 定义: 如果类的某个成员在当前类中的定义是不包含完整的,它就是一个抽象类 不完整定义有两种情况: 1.方法没有方法体(抽象方法) 2.变量没有 ...
- java抽象类及其派生类_java抽象类
本文指标: 1. 最基本的运用:掌握java类最简单,最核心的写法 2. 理论知识:语法角度,设计角度 3. 几种典型应用 最简单也是最核心的抽象类示例: 学习应该是一个循序渐进的过程,学java抽象 ...
- 设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类、三角形类来继承图形类,并实现上述两个方法
设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类.长方形类.正方形类.三角形类来继承图形类,并实现上述两个方法 设计抽象类 就要使用abstract关键字,抽象类中的 ...
- 定义一个三角形类(TRI)及其派生类三角柱体类(COL)。其中三角形类可以计算三角形的面积和周长;三角柱体类可以计算柱体的体积和表面积。其具体要求如下: (1)TRI的成员如下: 私有数据成员
题目要求: 定义一个三角形类(TRI)及其派生类三角柱体类(COL).其中三角形类可以计算三角形的面积和周长:三角柱体类可以计算柱体的体积和表面积.其具体要求如下: (1)TRI的成员如下: 私有数据 ...
- c++基础-继承与派生,定义基类person和公有派生类student
①定义基类person,数据成员name,sex,age,构造函数,析构函数,输出name,sex,age的函数display(). ②定义公有派生类student,数据成员:num,构造函数,析构函 ...
- Java中定义抽象类Shape,其中包含抽象方法double getPeremeter( )求周长和double getArea( )求面积。 定义一个矩形类,继承此抽象类,并自行扩充成员变量和方法。
Java中定义抽象类Shape,其中包含抽象方法double getPeremeter( )求周长和double getArea( )求面积. 定义一个矩形类,继承此抽象类,并自行扩充成员变量和方法, ...
- 第十三章、创建接口和定义抽象类
接口不包含任何代码或数据:它只规定了从接口继承的类必须提供哪些方法和属性.使用接口,方法的名称/签名可以和方法的具体实现完全隔绝. 抽象类在许多方面都和接口相似,只是它们可以包含代码和数据.然而,可以 ...
最新文章
- OpenCV(25)轮廓检测(轮廓提取、属性、近似轮廓、外接矩形和外接圆)
- 资料分享:送你一本《BigONE Developer API V2》电子书!
- 仅50张图片训练数据的AI分类技术PK​,阿里拿下ECCV 2020竞赛冠军
- JSON——Jackson 时间格式化输入输出
- c# 窗口句柄问题 。
- omitting directory `folder/'
- CF280D-k-Maximum Subsequence Sum【模拟费用流,线段树】
- 数据库的三才阵——地
- 读源码Apache-commons-lang3-3.1(一)
- 爬虫教程( 1 ) --- 初级、基础、实践
- 老电脑宏基E1-471G SSD 装win10系统
- 微信小程序 input输入事件
- (超详细) eclispe如何连接SQL Server2019(通过JDBC驱动包连接)
- 深光标准技术:谷歌GMS认证是什么?谷歌AER认证是什么?GMS认证的费用跟周期是多少??
- 喜讯 | 图扑科技再获厦门数字经济创新创业大赛一等奖
- android 通话自动录音服务
- iPhone 电池容量怎么算?
- 什么样的程序员才算得上优秀,把导师曾对我说的话送给大家(比代码更重要的事)
- ubuntu命令行启动浏览器_linux命令行下使用linux打开浏览器命令
- cpu上干硅脂怎么清理_安装CPU或者清理灰尘时CPU导热硅脂的使用方法及注意事项...