首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内? 【说明】 某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图10.41所示。 现在采用组合(Composition)模式来构造该饭店的菜单,使得饭店可以
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内? 【说明】 某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图10.41所示。 现在采用组合(Composition)模式来构造该饭店的菜单,使得饭店可以
admin
2018-07-25
21
问题
阅读下列说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
对一个大型校园网工程进行网络备份系统设计时,应考虑解决哪些主要的问题?请用150字以内的文字简要说明。备份就是对数据文件的备份,备份网络文件就是将所需要的文刊:复制到光盘、磁带或磁盘等存储介质上。这种备份网络文件的思路是否正确?请用200字以内的文字简
请说出图9-1的拓扑结构名称与特点。根据IP地址与子网掩码,请判断它们是否属于同一个网段?如果不是,请说出他们分别属于哪个网段。
在如图1-23所示的网络拓扑结构图中,被路由协议可以使封装后的数据包通过互连网络进行中继传输,它由(1)使用。【供选择的答案】A.PCIB.RouterA和RouterBC.Internet网D.Rcrate
请问无线局域网的工作模式有哪几种?当不使用AP时,必须把一组需要互相通信的无线网卡的什么值设为相同?
请指出现有虚拟局域网络的4种划分方式。在基于端口的VLAN划分中,交换机上的每一个端口允许以哪3种模式划入VLAN中,并简述它们的含义。
将图2-2中(1)和(2)空缺名称填写在对应的解答栏内。在本质上,ADSL采用的什么多路复用方式?
某单位拟建立一个Intranet,建立自己的Web服务器、DNS服务器,E-mail服务器和内部业务服务器,有一批客户机联网,要求这些机器有的可以到Internet上,只允许访问自己的Web服务器。请你做出规划,解决如下问题。
结合图7-18所示的网络拓扑结构图,将以下路由器R1配置信息中(1)~(9)空缺处的内容填写完整,实现路由器R1的正确配置。Router>en(进入特权模式)Router#
在图8-12所示的拓扑结构中的代理服务器上依次单击“开始→程序→管理工具→路由与远程访问,并在系统弹出的界面中打开“IP路由选择”目录树,然后用鼠标右键单击“NAT/基本防火墙”,选择[新增接口]命令。接着若选择接口1的“本地连接”,最后进行如图8-13所
在图8-12所示的拓扑结构中的代理服务器上依次单击“开始→程序→管理工具→路由与远程访问,并在系统弹出的界面中打开“IP路由选择”目录树,然后用鼠标右键单击“NAT/基本防火墙”,选择[新增接口]命令。接着若选择接口1的“本地连接”,最后进行如图8-13所
随机试题
我国现行高等学校领导体制有何特点?
如图所示应力状态(应力单位为MPa),该点处最大切应力理论的相当应力为()。
堆石坝坝料压实质量检查,应采用碾压参数和干密度(孔隙率)等参数控制,以控制()为主。
在______,银行可以对符合贷款条件的项目出具贷款意向书;在________,各银行应按批准贷款的权限,根据有关规定,对外出具贷款承诺。()
()是补偿职工在特殊条件下的劳动消耗以及生活费额外支出的工资。
组织沿革的内容包括()
bbF的等音是()
【2013年烟台龙口市】强调成熟机制对人的发展起决定作用的是()。
Inlessthan30year’stimetheStarTrekholodeckwillbeareality.Directlinksbetweenthebrain’snervoussystemandacomp
1Thecaseforcollegehasbeenacceptedwithoutquestionformorethanageneration.Allhighschoolgraduatesoughttogo,
最新回复
(
0
)