试题五(共15分)
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
层叠买单是留口风格的软件系统中经常采用的一种系统功能组织方式。层叠菜单(如
到5-1示例)中包含的可能是一个菜单项(直接对应某个功能),也可能是一个子菜单。现采用组合(Compasite)设计模式实现层叠菜单,得到如图5-2所示的类图。
【C++代码】
#include <list>
#include <iostream>
#include <string>
using namespace std;
class MenuComponent{//构成层叠菜单的元素
( ) :
string name; //菜单项或子菜单名称
public:
void printMenu0 { cout < <name;}
( )
virtual void removeMenuElement (MenuComponent*element) =0;
( )
}
class Menultem:public MenuComponent {
public:
Menultem (string name) { this->name-name;}
void addMenuElement (MenuComponent*element) { retum;}
void removeMenuElement (MenuComponent*element) {retum;}
list <MenuComponent*> *getElemento { retum NULL; }
}:
class Menu:public MenuComponent{
private:
( )
public:
Menu (string name) {this->name = name;}
void addMenuElement (MenuComponent*element) |elementList.push_back {element) ; }
void removeMenuElement (MenuComponent*element) {elementList.remove{element);}
list <MenuComponent*> *getElement0 { return&elementList;}
};
int main0( ) {
MenuComponent*mainMenu = new Menu ("Insert") ;
MenuComponent*subMenu=new Menu ("Chart") ;
MenuComponent*element=new Menultem ("On This Sheet") ;
( )
subMenu-> addMenuElement (element) ;
returm 0;
}
请先在App中激活(应用市场搜“软考真题”)
2021-10-21