摘要:希賽網(wǎng)整理了2017上半年軟件設計師考試下午真題,以下是第五部分。
希賽網(wǎng)整理了2017上半年軟件設計師考試下午真題,以下是第五部分。
試題五(共15分〉
閱讀下列說明和C++代碼,將應填入(n)處的字句寫在答題紙的對應欄內。
【說明】
某快餐廳主要制作井出售兒童套餐,一般包括主餐(各類比薩)、飲料和玩具,其餐品種類可能不同,但其制作過程相同。前臺服務員(Waiter)調度廚師制作套餐。現(xiàn)采用生成器(Builder)模式實現(xiàn)制作過程,得到如圖5-1所示的類圖。
【C++代碼】
#include<iostream>
#include <string>
using namespace std;
class Pizza {
private: string parts;
public:
void setParts(string parts) { this->parts=parts; }
string getParts() { return parts; }
};
class PizzaBuilder {
protected:Pizza* pizza;
public:
Pizza* getPizza() { retum pizza; }
void createNewPizza() {pizza = new Pizza();}
( 1 );
}
class HawaiianPizzaBuilder :public PizzaBuilder {
public:
void buildParts() { pizza->setParts("cross +mild + ham&pineapple"); }
class SpicyPizzaBuider: public PizzaBuilder {
public:
void buildParts() { pizza->setParts("pan baked +hot + ham&pineapple"); }
}
Class Waiter{
Private:
PizzaBuilder* pizzaBuilder;
public:
void setPizzaBuilder(PizzaBuilder* pizzaBuilder) { /*設置構建器*/
( 2 )
}
Pizza* getPizza() { return pizzaBuilder->getPizza(); }
void construct() { /*構建*/
pizzaBuilder->createNewPizza();
( 3 )
}
};
int main(){
Waiter*waiter=new Waiter();
PizzaBuilder*hawaiian pizzabuilder=new HawaiianPizzaBuilder()
( 4 );
( 5 );
cout<< "pizza: "<< waiter->getPizza()->getParts()<< endl;
}
程序的輸出結果為:
pizza:cross+mild+ham&pineapple
軟考備考資料免費領取
去領取