【程序填空】宠物管理
已知宠物类Pet的定义如下代码。宠物猫类Cat和宠物狗类Dog都是类Pet的派生类
类Cat增加数据成员:姓名(字符串)、食物(字符串),重载输出函数print,输出格式参考样例
类Dog增加数据成员:姓名(字符串)、犬大小(int),重载输出函数print,其中输出犬大小信息时,会根据犬大小值的123对应输出smallmediumbig,输出格式参考样例
其他参考框架代码
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
class Pet { //基类,也是抽象类
protected:
string kind; //宠物类型
int ID; //宠物编号,固定长度为5位正整数
public:
Pet(): kind("unset"), ID(-1) { }
virtual void set(string tk, int ti)=0; //宠物必须设置类型和编号
virtual void print() { cout<<"NONE"<<endl; }
};
//完成类Cat和类Dog的填空
//主函数和输出的全局函数如下:
void print_pet(Pet &pr)
{ pr.print(); }
int main()
{ string tk, ts, tf;
int t, ti, tt;
char ptype;
cin>>t;
while (t--)
{ cin>>ptype;
if (ptype=='C')
{ cin>>tk>>ti>>ts>>tf; //类型、编号、姓名、食物
Cat cc(ts, tf);
cc.set(tk, ti);
print_pet(cc);
}
if (ptype=='D')
{ cin>>tk>>ti>>ts>>tt; //类型、编号、姓名、犬大小
Dog dd(ts, tt);
dd.set(tk, ti);
print_pet(dd);
}
}
return 0;
}
输入
第一行输入t表示有t个宠物
接着输入t行,每行包含5个参数,含义如下:
第一个参数是单个大写字母表示宠物类型(C表示宠物猫,D表示宠物狗)
如果是宠物猫,接着的四个参数分别是:类型、编号、姓名、食物
如果是宠物猫,接着的四个参数分别是:类型、编号、姓名、犬大小
根据管理需要,宠物编号ID是固定5位正整数,不足5位则高位补0,且猫Cat编号首位为1,狗Dog编号首位为2
假设编号的输入数据不超过4位,例如输入猫的编号是33,则最后生成的猫编号是10033;例如输入狗的编号是44,则最后生成的狗编号是20044
输出
输出t行
每行都是调用全局函数print_pet实现输出
输入样例1
4
C Cat 1 mimi fish
D Dog 2 lucky 2
D Chihuahua 3 wawa 1
C Garfield 4 fifi fishcan
输出样例1
Cat's ID=10001
mimi likes fish
Dog's ID=20002
lucky is medium
Chihuahua's ID=20003
wawa is small
Garfield's ID=10004
fifi likes fishcan
对于程序填空题,我们需要通过观察主函数的类的创建看看有没有传入什么参数,还有类对象成员函数的调用情况,以及输出样例来确定我们补充的代码。
题目中谈到宠物编号的生成,可以直接通过相加的方法,猫咪从10000开始加,狗崽从20000开始加。
AC代码class Cat :public Pet
{
protected:
string name, food;
public:
Cat(string name,string food):name(name),food(food){
}
virtual void set(string tk, int ti)
{
kind = tk;
ID = 10000 + ti;
}
virtual void print()
{
cout << kind << "'s ID=" << ID << endl << name << " likes " << food << endl;
}
};
class Dog :public Pet
{
protected:
string name;
int howbigisit;
public:
Dog(string name,int big):name(name),howbigisit(big){
}
virtual void set(string tk, int ti)
{
kind = tk;
ID = 20000 + ti;
}
virtual void print()
{
cout << kind << "'s ID=" << ID << endl << name << " is ";
if (howbigisit == 1)
cout << "small" << endl;
else if (howbigisit = 2)
cout << "medium" << endl;
else
cout << "big" << endl;
}
};
相关知识
springboot+vue宠物领养管理小程序【开题+程序+论文】
宠物健康管理小程序解决方案:让宠物健康触手可及
宠物健康管理小程序解决方案:软件定制开发
宠物爱心组织管理系统(程序+文档模板)
小程序+spring boot宠物健康管理系统 毕业设计
django宠物咖啡店管理系统(程序+开题报告)
(附源码)小程序宠物健康管理系统 毕业设计201738
宠物管理小程序:定制化开发,宠物主人的智能助手
django基于微信小程序的宠物医院宠物健康管理系统(程序+开题报告)
springboot+vue宠物救助管理系统【开题+程序+论文】
网址: 【程序填空】宠物管理 https://www.mcbbbk.com/newsview581255.html
上一篇: 问道宠物天技一览表 |
下一篇: 多态实现主人喂养宠物 |
推荐分享

- 1我的狗老公李淑敏33——如何 5096
- 2南京宠物粮食薄荷饼宠物食品包 4363
- 3家养水獭多少钱一只正常 3825
- 4豆柴犬为什么不建议养?可爱的 3668
- 5自制狗狗辅食:棉花面纱犬的美 3615
- 6狗交配为什么会锁住?从狗狗生 3601
- 7广州哪里卖宠物猫狗的选择性多 3535
- 8湖南隆飞尔动物药业有限公司宠 3477
- 9黄金蟒的价格 3396
- 10益和 MATCHWELL 狗 3352