刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

阅读下列说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。

【说明】

以下C++代码实现两类交通工具(Flight和Train)的简单订票处理,类Vehicle、Flight、Train之间的关系如图6-1所示。

【C++代码】

#include <iostream>
#include <vector>
using  namespace  std;
 
class  Vehicle{
public:
virtual ~Vehicle(){}
void  book(int  n){  //订n张票
if(getTicket() >= n){
decreaseTicket(n);
} else{
coutn“余票不足!!”;
}
}
 
virtual int  getTicket()=0;
virtual void   decreaseTicket(int)=0;
};
 
Class Flight: (1){
private:
(2)tickets;//Flight的票数
public:
int getTicket();
void  decreaseTicket(int);
};
 
class   Train: (3){
private:
(4)tickets; //Train的票数
public:
int getTicket();
void   decreaseTicket(int);
};
 
int Train::tickets =  2016; //初始化Train的票数为2016
int Flight::tickets =  216; //初始化Flight的票数为216
 
int Train::getTicket() { return tickets;}
void  Train::decreaseTicket(int  n){ tickets=tickets  -  n;}
 
int Flight::getTicket(){return  tickets; }
void  Flight::decreaseTicket(int  n) { tickets= tickets  -  n;}
 
int main() {
vector<Vehicle*> v;
 
v.push_back(new Flight());
v.push_back(new Train());
v;push_back(new Flight());
v.push_back(new Tram());
v.push_back(new Train());
 
cout《"欢迎订票!”《endl:
for (int i= 0;i<v.size(); i++) {
(5)(i+1); //订i+l张票
cout《“剩余票数:”<<(*V[i]).getTicket()<<endl;
}
 
for(vector<Vehicle*>::iterator it  =  v.begin();  it  !=  v.end(); it ++) {
if (NULL !=*it) {
delete*it;
*it =  NULL;
}
}
v.clear();
Return0;
}

运行该程序时输出如下:

欢迎订票!

剩余票数:215

剩余票数:2014

剩余票数:(6)

剩余票数:(7)

剩余票数:(8)

使用微信搜索喵呜刷题,轻松应对考试!

答案:

public   Vehicle

int

public   Vehicle

int

(*v[i]).book();

213

2012

2011

解析:

本题主要考察的是面向对象编程中的类与继承、多态以及动态内存管理。下面是详细的解析:

题目中提到了Vehicle类、Flight类和Train类之间的关系,说明Flight和Train是Vehicle类的派生类。因此,在定义Flight和Train类时,需要继承Vehicle类。故第一处填空应为public Vehicle。

对于第二和第四处填空,由于票数是一个整数值,因此应该是int类型。所以第二和第四处应填写int。

在main函数中,调用订票功能时,需要通过对象指针调用book函数,所以第五处应填写(*v[i]).book(),即调用第i+1个对象的book函数预订一张票。

接下来的三个空(剩余票数:)对应的是程序运行过程中输出的剩余票数,由于题目没有给出具体的数值,所以这三个空需要根据程序的实际运行情况来填写。假设程序运行后,Flight剩余票数为213,Train剩余票数为2012和2011(由于第一次订票后数量减少),所以这三处应填写剩余票数:剩余票数:剩余票数:剩余票数:剩余票数:剩余票数:剩余票数:剩余票数:剩余票数:剩余票数:剩余票数:剩余票数:剩余票数:剩余票数:剩余票数:剩余票数等实际运行后的结果。

创作类型:
原创

本文链接:阅读下列说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 以下C++代码实

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share