【程序填空】宠物管理
题目描述
已知宠物类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;}
};
【程序填空】宠物管理相关推荐
- 基于微信小程序的相关管理系统设计与实现开题报告的思路及方法
今天主要谈一下计算机科学相关专业同学的选题的思路及方法. 毕业设计选题选没选好就像各位走出校园踏进社会的一道坎,跨过这道坎是很关键的,而有些同学却犯了难,把本应该简单的问题复杂化了.为什么这样讲呢?之 ...
- 基于微信小程序的宠物医院诊所小程序源码
开发环境及工具: 大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具 技术说明: springboot mybatis 小程序 代码注释齐全,没有多余代码,适合学习( ...
- 【收藏】C#面试题整理笔试篇(最全1000+道带答案)300道填空 + 300道选择 + 300道判断 + 70道读程序写结果和看程序填空 + 100道简答题
<程序员>曾陪伴了无数开发者成长.<新程序员>全新归来,推荐给大家! <新程序员> 一.填空: 1.操作符( && )被用来说明两个条件同为真的情况 ...
- 基于微信小程序的宠物寄养平台小程序
文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/my ...
- 宠物管理|养犬登记|宠物识别|智慧城市监控|城市犬类管理系统
关键词:宠物识别.宠物面部识别.宠物管理.宠物社交.宠物培训.宠物保险.鼻纹识别.宠物登记.宠物比赛.宠物走失.宠物用品.智慧宠物: "犬类管理"正日益成为城市治理的重要话题之一. ...
- 基于springboot+bootstrap+thymeleaf的物联网一站式宠物管理平台(领养、救助、商城)设计 毕业论文+用户手册+源码清单+项目源码及数据库文件
下载:https://download.csdn.net/download/m0_66682818/77957797 项目介绍: 基于springboot+bootstrap+thymeleaf的物联 ...
- 小程序全局状态管理,在页面中获取globalData和使用globalSetData
GitHub: https://github.com/WozHuang/mp-extend 主要目标 微信小程序官方没有提供类似vuex.redux全局状态管理的解决方案,但是在一个完整的项目中各组件 ...
- 用CocoaPods做iOS程序的依赖管理
CocoaPods 简介 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs 的 npm.随着 iOS 开发者的增多,业界也出现了为 iOS 程序提供 ...
- linux应用程序安装与管理
一.Linux应用程序与命令的关系 1.基本命令是Linux系统中不可缺少的组成部分 <?xml:namespace prefix = o ns = "urn:schemas-micr ...
最新文章
- [zt] petshop4.0 详解之三
- 华为云域名注册_关于域名购买的常识介绍,想建站的必看
- html怎么使背景图片充屏,css如何使div背景图片填充
- sqlldr导入数据到数据库
- win10游戏版如何安装 Windows10安装游戏版的步骤方法
- fastjson 序列化 不包括转义字符_fastjson漏洞复现
- sql替换字符串中的部分字符
- jenkins教程菜鸟_jenkins 入门教程(上)
- 关于STM32红外遥控器的研究与分析
- HTTP协议简单概述
- php与sap系统,sap系统是什么系统
- 给华南x99打鸡血BIOS教程
- 华为锁屏后微信网络连接服务器,华为P30 Pro锁屏息屏状态下微信收不到信息,显示网络不可用...
- 洛谷 P2414 [NOI2011] 阿狸的打字机 题解
- Delphi取整函数
- matlab zxing ean13,条形码研究-EAN13 条形码
- Navicat常用快捷键汇总
- 附近的宠物店在哪里_离我家近的宠物医院 附近宠物诊所医院
- 干货|Stakeholder利益相关者讲解
- 自动驾驶平台Apollo 5.5阅读手记:Cyber RT中的任务调度