首页 > 分享 > PTA:7

PTA:7

现在要开发一个系统,对宠物的生长状态进行管理。
给出下面的一个基类框架
class Pet
{
protected:
string name;//姓名
int length;//身长
int weight;//体重
int current;//当前日期
public:
virtual void display(int day)=0;//输出目标日期的身长和体重
}
以Pet为基类,构建出Cat和Dog两个类:
Cat一天身长加1,体重加2。
Dog一天身长加2,体重加1。
生成上述类并编写主函数,要求主函数中有一个基类Pet指针数组,数组元素不超过10个。
Pet *pt[10];
主函数根据输入的信息,相应建立Cat类对象或Dog类对象,并给出目标日期宠物的身长和体重。
输入格式:每个测试用例占一行,每行给出宠物的基本信息,第一个为当前宠物的类型:1为Cat,2为Dog。接下来为它的名字,随后的两个数字为身长和体重,最后为测身长和体重的日期(不大于10的正整数)。最后一行为目标日期(大于10的正整数)。
要求输出目标日期宠物姓名、身长和体重
提示:应用虚函数实现多态

输入样例
1 Marry 22 12 5
2 Jack 10 9 9
1 Jim 11 8 6
11

输出样例
Marry 28 24
Jack 14 11
Jim 16 18

#include<iostream> using namespace std; class Pet {protected:string name;int length;int weight;int current;public:Pet(string n,int l,int w,int c){name=n;length=l;weight=w;current=c;}virtual void display(int day)=0; }; class Cat:public Pet {public:Cat(string n,int l,int w,int c):Pet(n,l,w,c){;}virtual void display(int day){day-=current;length+=day;weight+=day*2;cout<<name<<" "<<length<<" "<<weight<<endl;} }; class Dog:public Pet {public:Dog(string n,int l,int w,int c):Pet(n,l,w,c){;}virtual void display(int day){day-=current;length+=day*2;weight+=day;cout<<name<<" "<<length<<" "<<weight<<endl;} }; int main() {Pet *pt[10];int type;cin>>type;string n;int l,w,c,i=0;while(1){if(type==1){cin>>n>>l>>w>>c;pt[i]=new Cat(n,l,w,c);}else if(type==2){cin>>n>>l>>w>>c;pt[i]=new Dog(n,l,w,c);}elsebreak;i++;cin>>type;}for(int j=0;j<i;j++){pt[j]->display(type);} }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

相关知识

人工耳蜗植入手术的适应症与禁忌症
饲养宠物怎样保持卫生? 非织造布类宠物用品解析
小动物行为活动记录分析系统
章鱼价格
鲤鱼价格
鳄鱼龟价格
今日猪价格
草鱼价格
鲫鱼价格
带鱼价格

网址: PTA:7 https://m.mcbbbk.com/newsview703519.html

所属分类:萌宠日常
上一篇: 德美丝 Dermoscent
下一篇: 人狗胶配方大全:狗狗——揭秘狗狗