首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内? 【说明】 某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图10.41所示。 现在采用组合(Composition)模式来构造该饭店的菜单,使得饭店可以
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内? 【说明】 某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图10.41所示。 现在采用组合(Composition)模式来构造该饭店的菜单,使得饭店可以
admin
2018-07-25
77
问题
阅读下列说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
请用100字以内的文字说明该网管软件项目采用快速原型开发方法的优缺点。根据试题的描述信息分析,在最理想的情况下,需要多少天才能完成此网管软件开发任务?如果按保守的估计,则需要多少天才可完成此开发任务?(请列出简要的计算过程)
阅读以下关于以快速原型模型开发网管软件系统时的项目进度管理的叙述,回答问题1至问题5。【说明】某网络程序软件开发公司承接某项网络工程的网络流量统计管理软件开发任务。在进行可行性研究时,需要估算完成项目的时间进度。由于该软件公司近年来已经为采用快速
ADSL技术可以充分利用现有铜线网络,只要在用户线路两端加装ADSL设备即可为用户提供服务。请从以下术语选择适当的编号,将图5-9所示的拓扑结构中(1)~(4)空缺处的名称填写完整。【供选择的答案】A.程控交换机B.二层交换机
在配置Windows2003VPN服务器时,在管理工具中打开“路由和远程访问”,接着在所列出的本地服务器上单击鼠标右键,从弹出菜单中选择“配置并启用路由和远程访问”。在以下“路由和远程访问服务器安装向导”界面中(见图1-14),选择(1)单选按钮,接着
阅读以下说明,将应填入(n)处的解答填写在对应栏内。【说明】某网络结构如图5-7所示,如果Router3与网络4之间的线路突然中断,按照RIP路由协议的实现方法,路
请指出现有虚拟局域网络的4种划分方式。以下为Cisco以太网交换机Catalyst2924(ws-c2924xlA,拥有24个10/100Mbit/s自适应端口)的VLAN划分命令,请解释(1)~(3)处的标有下划线部分配置命令的含义。(“//”后为
阅读以下说明,回答问题1~4。【说明】A公司用一台Web服务器和一台应用服务器来管理销售信息。销售人员在办公室时通过PC机来访问应用服务器,若在公司以外,则通过具有数据显示功能的移动电话或PDA(PersonalDigitalAssi
认真阅读下列有关移动用户身份认证技术的说明,根据要求回答问题1至问题4。【说明】随着无线局域网技术、3G移动通信技术的不断发展,网络资源得到了更广泛的利用。由于移动环境下的通信链路比较容易受到恶意攻击或窃听,因此在移动节点与本地代理1之间交换的登
为了便于用户下载相关资料,特安装一台FTP服务器,其服务器端软件是Serv-U,假如要增加一个名为CIU10009的用户,对应目录为D盘,且要求加密,在图6-4中怎么设置?假如要封闭某用户的账号,请问在图6-4中怎么设置?
在图8-12所示的拓扑结构中的代理服务器上依次单击“开始→程序→管理工具→路由与远程访问,并在系统弹出的界面中打开“IP路由选择”目录树,然后用鼠标右键单击“NAT/基本防火墙”,选择[新增接口]命令。接着若选择接口1的“本地连接”,最后进行如图8-13所
随机试题
屈伸法是使关节()的方法。
属下丘脑性无排卵的是属垂体性无排卵的是
张丽因与王旭感情不和,长期分居,向法院起诉要求离婚。法院向王旭送达应诉通知书,发现王旭已于张丽起诉前因意外事故死亡。关于本案,法院应作出下列哪一裁判?(2015/3/48)
财会部门或经办人,必须在会计年度终了后的第一天,将应归档的会计档案全部移交档案部门,保证会计档案齐全完整。()
明细账必须逐日逐笔登记,总账必须定期汇总登记。()
关于税收执法监督的说法,正确的是()。
下列说法正确的是()。
健谈对于()相当于()对于开支
Serenity(宁静)isdifficulttofindintoday’sfast-pacedworld.Amomentofcompletecalmseemstobearareandwonderfulfind.
法国大革命结束的标志是()。
最新回复
(
0
)