軟件設(shè)計師案例分析當天每日一練試題地址:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4
往期軟件設(shè)計師每日一練試題匯總:m.xiexiliangjiufa.com/class/27/e4_1.html
軟件設(shè)計師案例分析每日一練試題(2022/11/17)在線測試:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4&day=2022/11/17
點擊查看:更多軟件設(shè)計師習題與指導
軟件設(shè)計師案例分析每日一練試題內(nèi)容(2022/11/17)
閱讀下列說明和Java代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
某飯店在不同的時段提供多種不同的餐飲,其菜單的結(jié)構(gòu)圖如下圖所示。
現(xiàn)在采用組合( Composition)模式來構(gòu)造該飯店的菜單,使得飯店可以方便地在其中增加新的餐飲形式,得到如下圖所示的類圖。其中MenuComponent為抽象類,定義了添加(add)新菜單和打印飯店所有菜單信息(print)的方法接口。類Menu表示飯店提供的每種餐飲形式的菜單,如煎餅屋菜單、咖啡屋菜單等。每種菜單中都可以添加子菜單,例如圖中的甜點菜單。類Menultem表示菜單中的菜式。
【Java代碼】
import javA.util.*;
(1) MenuComponent{
protected String name;
(2) ;//添加新菜單
public abstract void print(); //打印菜單信息
public String getName(){ return name;}
}
class Menultem extends MenuComponent{
private double price;
public MenuItem(String name, double price){
this.name= name; this.price= price;
}
public double getPrice(){return price;)
public void add(MenuComponent menuComponent){ return;)//添加新菜單
public void print(){
System.out.print(" "+ getName());
System.out.println(","+ getPrice());
}
}
class Menu extends MenuComponent{
private ListmenuComponents= new ArrayList();
public Menu(String name){ this.name= name;)
public void add(MenuComponent menuComponent){//添加新菜單
menuComponents. (3);
}
public void print(){
System.out.print("\n"+ getName());
System.out.println(","+"---------------");
Iterator iterator = menuComponents.iterator();
while(iterator.hasNext()){
MenuComponent menuComponent= (MenuComponent)iterator.next();
(4) ;
}
}
}
class MenuTestDrive{
public static void main(String args[]){
MenuComponent aIIMenus= new Menu("ALL MENUS");
MenuComponent dinerMenu = new Menu("DINER MENU”);
……//創(chuàng)建更多的Menu對象,此處代碼省略
allMenus.add(dinerMenu); //將dinerMenu添加到餐廳菜單中
……//為餐廳增加更多的菜單,此處代碼省略
(5); //打印飯店所有菜單的信息
}
}
信管網(wǎng)試題答案與解析:m.xiexiliangjiufa.com/st/381088591.html
信管網(wǎng)考友試題答案分享:
信管網(wǎng)試題答案與解析:
m.xiexiliangjiufa.com/st/381088591.html