题目描述

已知宠物类Pet的定义如下代码。宠物猫类Cat和宠物狗类Dog都是类Pet的派生类

类Cat增加数据成员:姓名(字符串)、食物(字符串),重载输出函数print,输出格式参考样例

类Dog增加数据成员:姓名(字符串)、犬大小(int),重载输出函数print,其中输出犬大小信息时,会根据犬大小值的1\2\3对应输出small\medium\big,输出格式参考样例

其他参考框架代码

#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;elsecout << "big" << endl;}
};

【程序填空】宠物管理相关推荐

  1. 基于微信小程序的相关管理系统设计与实现开题报告的思路及方法

    今天主要谈一下计算机科学相关专业同学的选题的思路及方法. 毕业设计选题选没选好就像各位走出校园踏进社会的一道坎,跨过这道坎是很关键的,而有些同学却犯了难,把本应该简单的问题复杂化了.为什么这样讲呢?之 ...

  2. 基于微信小程序的宠物医院诊所小程序源码

    开发环境及工具: 大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具 技术说明: springboot mybatis 小程序 代码注释齐全,没有多余代码,适合学习( ...

  3. 【收藏】C#面试题整理笔试篇(最全1000+道带答案)300道填空 + 300道选择 + 300道判断 + 70道读程序写结果和看程序填空 + 100道简答题

    <程序员>曾陪伴了无数开发者成长.<新程序员>全新归来,推荐给大家! <新程序员> 一.填空: 1.操作符( && )被用来说明两个条件同为真的情况 ...

  4. 基于微信小程序的宠物寄养平台小程序

    文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/my ...

  5. 宠物管理|养犬登记|宠物识别|智慧城市监控|城市犬类管理系统

    关键词:宠物识别.宠物面部识别.宠物管理.宠物社交.宠物培训.宠物保险.鼻纹识别.宠物登记.宠物比赛.宠物走失.宠物用品.智慧宠物: "犬类管理"正日益成为城市治理的重要话题之一. ...

  6. 基于springboot+bootstrap+thymeleaf的物联网一站式宠物管理平台(领养、救助、商城)设计 毕业论文+用户手册+源码清单+项目源码及数据库文件

    下载:https://download.csdn.net/download/m0_66682818/77957797 项目介绍: 基于springboot+bootstrap+thymeleaf的物联 ...

  7. 小程序全局状态管理,在页面中获取globalData和使用globalSetData

    GitHub: https://github.com/WozHuang/mp-extend 主要目标 微信小程序官方没有提供类似vuex.redux全局状态管理的解决方案,但是在一个完整的项目中各组件 ...

  8. 用CocoaPods做iOS程序的依赖管理

    CocoaPods 简介 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs 的 npm.随着 iOS 开发者的增多,业界也出现了为 iOS 程序提供 ...

  9. linux应用程序安装与管理

    一.Linux应用程序与命令的关系 1.基本命令是Linux系统中不可缺少的组成部分 <?xml:namespace prefix = o ns = "urn:schemas-micr ...

最新文章

  1. [zt] petshop4.0 详解之三
  2. 华为云域名注册_关于域名购买的常识介绍,想建站的必看
  3. html怎么使背景图片充屏,css如何使div背景图片填充
  4. sqlldr导入数据到数据库
  5. win10游戏版如何安装 Windows10安装游戏版的步骤方法
  6. fastjson 序列化 不包括转义字符_fastjson漏洞复现
  7. sql替换字符串中的部分字符
  8. jenkins教程菜鸟_jenkins 入门教程(上)
  9. 关于STM32红外遥控器的研究与分析
  10. HTTP协议简单概述
  11. php与sap系统,sap系统是什么系统
  12. 给华南x99打鸡血BIOS教程
  13. 华为锁屏后微信网络连接服务器,华为P30 Pro锁屏息屏状态下微信收不到信息,显示网络不可用...
  14. 洛谷 P2414 [NOI2011] 阿狸的打字机 题解
  15. Delphi取整函数
  16. matlab zxing ean13,条形码研究-EAN13 条形码
  17. Navicat常用快捷键汇总
  18. 附近的宠物店在哪里_离我家近的宠物医院 附近宠物诊所医院
  19. 干货|Stakeholder利益相关者讲解
  20. 自动驾驶平台Apollo 5.5阅读手记:Cyber RT中的任务调度

热门文章

  1. nmake工具的用法
  2. 阿诺德.施瓦辛格 训练方法
  3. 简单介绍一下YOLO算法发展历程
  4. Linux——打造vim IDE~.vimrc配置
  5. C++数据库编程 ODBC插入数据
  6. iDTronic推出紧凑型桌面RFID读卡器,适用于门禁控制、考勤及会员注册应用
  7. echarts:2、饼图
  8. 使用pyinstaller打包django项目
  9. Python QT学习——Qt Designer(二)
  10. yytextview多种格式_YYKit之YYText