阅读下列说明和C++代码,将应填入 (n) 处的字句写在对应栏内。[说明]某饭店在不

题型:填空题

问题:

阅读下列说明和C++代码,将应填入 (n) 处的字句写在对应栏内。

[说明]

某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图5-1所示。

现在采用组合(Composition)模式来构造该饭店的菜单,使得饭店可以方便地在其中增加新的餐饮形式,得到如图5-2所示的类图。其中MenuComponent为抽象类,定义了添加(add)新菜单和打印饭店所有菜单信息(print)的方法接口。类Menu表示饭店提供的每种餐饮形式的菜单,如煎饼屋菜单、咖啡屋菜单等。每种菜单中都可以添加子菜单,例如图5-1中的甜点菜单。类MenuItem表示菜单中的菜式。

[C++代码]

#include<iostream>

#include<list>

#include<string>

using namespace std;

clas s MenuComponent

protected: string name;

public:

MenuComponent(string name) this->name=name;

String getName()return name;

(1) : //添加新菜单

virtual void print()=0; //打印菜单信息

;

clasS MenuItem: public MenuComponent

private: double price;

public:

Menultem(string name, double price): MenuComponent(name)this->price=price;

double getPrice()return price;

void add(MenuComponent* menuComponent) return; //添加新菜单

void print() cout<<" "<<getName()<<", "<<getPrice()<<end1;

;

clasS Menu: public MenuComponent

private: list< (2) > menuComponents;

pubiic:

Menu(string name): MenuC0mponent(name)

void add(MenuComponent* menuComponent) //添加新菜单

(3) ;

void print()

cout<<"\n"<<getName()<<"\n-------------------------"<<end1;

std::list<MenuC0mponent*>::iterator iter;

for(iter=menuComponents.begin(); iter!=menuComponents. end(); iter++)

(4) ->print();

;

void main()

MenuComponent* allMenus=new Menu("ALL MENUS");

MenuComponent* dinerMenu=new Menu("DINER MENU");

…//创建更多的Menu对象,此处代码省略

allMenus->add(dinerMenu); //将dinerMenu添加到餐厅菜单中

…//为餐厅增加更多的菜单,此处代码省略

(5) ->print(); //打印饭店所有菜单的信息

文中(4)处应为()。

考点:计算机软件水平考试中级软件设计师中级软件设计师2011上半年下午试题
题型:填空题

需要锰参与激活的酶是()

A.转氨酶

B.脱羧酶

C.精氨酸酶

D.碱性磷酸酶

E.氧化酶

题型:填空题

已知样本数据1,0,6,1,2,下列说法不正确的是 [ ]

A、中位数是6

B、平均数是2

C、众数是1

D、极差是6

题型:填空题

利用键盘在对话框中的不同项目组间移动光标用______键。()

A.TAB

B.ESC

C.SHIFT

D.CTRL

题型:填空题

把一根竹竿垂直插入水中,在竹竿上刻上一个记号表示水深;再把这根竹竿掉过头来垂直插入水中,也刻上一个记号表示水深。如果两个记号相距10厘米,水深是100厘米,那么竹竿的长度是多少厘米( )

A.190

B.210

C.210或170

D.190或210

题型:填空题

潜功能

更多题库