首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内? 【说明】 某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图10.41所示。 现在采用组合(Composition)模式来构造该饭店的菜单,使得饭店可以
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内? 【说明】 某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图10.41所示。 现在采用组合(Composition)模式来构造该饭店的菜单,使得饭店可以
admin
2018-07-25
101
问题
阅读下列说明和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://www.kaotiyun.com/show/17DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下关于以快速原型模型开发网管软件系统时的项目进度管理的叙述,回答问题1至问题5。【说明】某网络程序软件开发公司承接某项网络工程的网络流量统计管理软件开发任务。在进行可行性研究时,需要估算完成项目的时间进度。由于该软件公司近年来已经为采用快速
阅读以下-基于代理服务器的ADSL宽带接入的技术说明,根据要求回答问题1至问题5。【说明】非对称数字用户线(AsymmetricDigitalSubscriberLine,ADSL)是一种利用现有的传统电话线路高速传输数字信息的技术。某单位
阅读以下说明,回答问题1、问题2、问题3、问题4和问题5,将解答填入对应栏内。[说明]某单位要拟建一个小型局域网,其图如9-1所示,PCI、PC3、PC5的IP地址分别为10.191.140.2,10.191.140.3,10.191.1
从下列的2道试题(试题5、试题6)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。请认真阅读下列有关于路由器配置的技术说明,根据要求回答问题1至问题5。【说明】菜地市级水电站网络除了和远程子网172.20.0.0/24
请问无线局域网的工作模式有哪几种?当不使用AP时,必须把一组需要互相通信的无线网卡的什么值设为相同?
阅读以下说明,将应填入(n)处的解答填写在对应栏内。【说明】某网络结构如图5-7所示,如果Router3与网络4之间的线路突然中断,按照RIP路由协议的实现方法,路
将图2-2中(1)和(2)空缺名称填写在对应的解答栏内。使ADSL的传输速率更高有哪两个主要因素?
将图2-2中(1)和(2)空缺名称填写在对应的解答栏内。ADSL有哪两种IP地址的分配方式?
阅读图1所示的某企业的网络结构图,分析网络结构,回答【问题1】~【问题3】,将解答填在横线上。
认真阅读下列有关移动用户身份认证技术的说明,根据要求回答问题1至问题4。【说明】随着无线局域网技术、3G移动通信技术的不断发展,网络资源得到了更广泛的利用。由于移动环境下的通信链路比较容易受到恶意攻击或窃听,因此在移动节点与本地代理1之间交换的登
随机试题
关于简支梁板吊运方案的要求,正确的有()。
工件以内孔定位时,常采用的定位元件是心轴。()
在软件验证过程中的验证活动含有多项任务,以下不属于其任务的是()
一般认为脑卒中患者的运动功能恢复期最长不超过2年,对2年后仍遗留有功能障碍的患者,是否仍有康复治疗的必要?治疗后是否有进一步功能恢复的可能脊髓损伤治疗的最佳时间是伤后
患儿,营养不良,体重低于正常均值20%.,腹部皮褶厚度为0.6cm,肌张力基本正常。治疗开始时,供给热量为每日
生产经营单位违规提取和使用安全费用的,政府()应当会同财政部门责令其限期改正,予以警告。
招标方式中,邀请招标与公开招标比较,其缺点主要有( )等。
2019年8月20日,A公司向B公司签发了一张金额为10万元的商业汇票,该汇票载明出票后1个月内付款。C公司为付款人,D公司在汇票上签章做了保证,但未记载被保证人名称。B公司取得汇票后背书转让给E公司,E公司又将该汇票背书转让给F公司,F公司于当
设f(x)在[0,2]上连续,在(0,2)内可导,f(0)=f(2)=0,且|f’(x)|≤2,证明:|∫02f(x)dx|≤2.
Businesstravelersfindthatsomejobstakethemawayfromhomeforlongerthanafewdaysatatime.Thosewhofindthemselves
最新回复
(
0
)