首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内? 【说明】 某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图10.41所示。 现在采用组合(Composition)模式来构造该饭店的菜单,使得饭店可以
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内? 【说明】 某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图10.41所示。 现在采用组合(Composition)模式来构造该饭店的菜单,使得饭店可以
admin
2018-07-25
50
问题
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内?
【说明】
某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图10.41所示。
现在采用组合(Composition)模式来构造该饭店的菜单,使得饭店可以方便地在其中添加新的餐饮形式,得到如图10.42所示的类图。其中MenuComponent为抽象类,定义了添加(add)新菜单和打印饭店所有菜单信息(print)的方法接口。类Menu表示饭店提供的每种餐饮形式的菜单,如煎饼屋菜单、咖啡屋菜单等。每种菜单中都可以添加子菜单,例如图10.41中的甜点菜单。类Menultem表示菜单中的菜式。
【C++代码】
#include<iostream>
#include<list>
#include<string>
using namespace std;
class MenuC0mponent{
protected:string name;
public:
MenuComponent(String name){this->name=name; }
sting getName(){return name;}
_____(1); //添加新菜单
virtual void print()=0; //打印菜单信息
};
class MenuItem:public MenuComponent{
private:double price;
public:
MenuItem(string name,double price):MenuComponent(name){this->price=price;}
double getPrice(){return price;}
void add(MenuComponent*menuComponent){return;} //添加新菜单
void print()(tout<<’’ ’’>>getName()<<’’,’’<<getPrice<<end1;}
};
Class Menu:public MenuComponent{
private:list<_____(2)>menuComponents;
public:
Menu(string name):MenuComponent(name){}
void add(MenuComponent*menuComponent) //添加新菜单
{ _____(3); }
void print(){
cout<<’’\n’’<<getName()<<’’\n----------------------------’’<<end1;
std::list
for(iter=menuComponents.begin();iter!=menuComponents.end();iter++)
_____(4)->print();
}
};
void main(){
MenuComponent*allMenus=new Menu(’’LL MENUS’’);
MenuC0mponent*dinerMenu=new Menu(’’DINER MENU’’);
…//创建更多的Menu对象,此处代码省略
allMenus->add(dinerMenu); //将dinerMenu添加到餐厅菜单中
…//为餐厅增加更多的菜单,此处代码省略
_____(5)->print();//打印饭店所有菜单信息
}
选项
答案
(1)virtual void add(MenuComponent*menuComponent)=0 (2)MenuComponent* (3)menuComponents->push_back(menuComponent) (4)(*iter) (5)allMenus
解析
MenuComponent是虚基类,其中要定义添加新菜单纯虚函数,函数体在其派生类Menultem和Menu中实现。空(1)处应填入virtual void add(MenuComponent*menuComponent)=0。
在类Menu中定义了列表menuComponents,用于保存添加的新菜单,由std::list<MenuComponent*>::iterator iter可知列表的类型为MenuComponent*,故空(2)处应填入MenuComponent*。
添加菜单时,可以从menuComponents列表的前面添加,也可以从menuComponents列表的后面添加,但通过菜单的输出函数可知,菜单是从列表的后面添加的,因此空(3)处应填入menuComponents->push_back(menuComponent)。
iter是迭代器,用于遍历菜单列表menuComponents,空(4)处应填A.(*iter)。
在主函数,打印饭店所有菜单信息的函数调用为allMenus->print()。
转载请注明原文地址:https://kaotiyun.com/show/17DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
请说出(1)、(2)、(3)、(4)、(5)对应行的含义。(1)图6-3是Windowsxp的DNS设置窗口,请指出图6-3中配置错误之处。(2)在Windowsxp系统中,根据图6-3中的相关信息,请写出默认路由。(3)图6-
请用100字以内的文字说明该网管软件项目采用快速原型开发方法的优缺点。项目管理就是以项目为对象的系统管理方法,通过一个临时性的专门的柔性组织,对项目进行高效率的计划、组织、指导和控制,以实现项目全过程的动态管理和项目目标的综合协调与优化。除了本题涉及到
在配置Windows2003VPN服务器时,在管理工具中打开“路由和远程访问”,接着在所列出的本地服务器上单击鼠标右键,从弹出菜单中选择“配置并启用路由和远程访问”。在以下“路由和远程访问服务器安装向导”界面中(见图1-14),选择(1)单选按钮,接着
假如有一台PC连接在如图10-1所示的交换机(10/100M自适应的交换机)上,通信正常,但是将100M的网卡连到交换机上时显示红灯,通信不正常,请分析故障原因并给予解决。假如交换机设置了若干个VLAN,在不同VLAN内的机器在同一网段,它们可以通信吗
请问无线局域网的工作模式有哪几种?平时所用的手机可漫游在不同的基站之间,WLAN工作站也可漫游,请问WLAN的“漫游”含义是什么?
请指出现有虚拟局域网络的4种划分方式。在基于端口的VLAN划分中,交换机上的每一个端口允许以哪3种模式划入VLAN中,并简述它们的含义。
阅读以下关于FTTC宽带接入Internet的技术说明,根据要求回答问题1至问题5。【说明】光纤接入网(OpticalAccessNetwork,OAN)是以光纤为传输媒体,并利用光波作为光载波传送信号的接入网。FTTC+LAN是实现居民宽带
认真阅读以下实现VLAN间路由的配置技术说明,根据要求回答问题1至问题6。【说明】当交换机上的VLAN数量很多时,通常会采用路由器快速以太网子接,及IEEE802.1Q封装对VLAN间的数据进行路由。在如图3-12所示的拓扑图中,在交换机
在图8-12所示的拓扑结构中的代理服务器上依次单击“开始→程序→管理工具→路由与远程访问,并在系统弹出的界面中打开“IP路由选择”目录树,然后用鼠标右键单击“NAT/基本防火墙”,选择[新增接口]命令。接着若选择接口1的“本地连接”,最后进行如图8-13所
随机试题
QFII在中国境内的投资受到的限制不包括()方面。
在研究设计阶段,研究对象和调查对象有什么不同?
A、filledB、recognizedC、whisperedD、watchedD该题测试语音的同化现象。受邻近语音的影响,词尾(加ed,或加s)读音发生同化。选项A、B、C中ed发[d]音,选项D中ed发[t]音。
对于清创术,下列哪项观点不正确
甲化工厂年产5万吨40%乙二醛,2万吨蓄电池硫酸,2万吨发烟硫酸。甲厂计划明年调整部分生产业务,将硫酸生产线外包给其他单位。依据《安全生产法》,甲厂的下列调整计划中,符合规定的是()。
某施工单位承接了一4×20m简支梁桥工程。桥梁采用扩大基础,墩身平均高10m。项目为单价合同,且全部钢筋由业主提供,其余材料由施工单位自采或自购。在离本工程不远的江边有丰富的砂源,经检验,砂的质量符合要求。采砂点位于一跨江大桥下游150m处,施工用砂均取自
用()方式付息的债券通常被称为无息债券。
下列关于信用评分模型的说法,不正确的是()。
要不断打牢高举旗帜、听党指挥、忠诚使命的思想基础,坚持党的事业至上、人民利益至上、宪法法律至上,永葆()的政治本色。
Caller:Hello!Iwanttomakeaperson-to-personcalltoToronto,Canada.Thenumberis932-0806.Operator:______
最新回复
(
0
)