摘要:希賽網(wǎng)整理了2017上半年軟件設(shè)計師考試下午真題,以下是第五部分。
希賽網(wǎng)整理了2017上半年軟件設(shè)計師考試下午真題,以下是第五部分。
試題五(共15分〉
閱讀下列說明和C++代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
某快餐廳主要制作井出售兒童套餐,一般包括主餐(各類比薩)、飲料和玩具,其餐品種類可能不同,但其制作過程相同。前臺服務(wù)員(Waiter)調(diào)度廚師制作套餐?,F(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) { /*設(shè)置構(gòu)建器*/
( 2 )
}
Pizza* getPizza() { return pizzaBuilder->getPizza(); }
void construct() { /*構(gòu)建*/
pizzaBuilder->createNewPizza();
( 3 )
}
};
int main(){
Waiter*waiter=new Waiter();
PizzaBuilder*hawaiian pizzabuilder=new HawaiianPizzaBuilder()
( 4 );
( 5 );
cout<< "pizza: "<< waiter->getPizza()->getParts()<< endl;
}
程序的輸出結(jié)果為:
pizza:cross+mild+ham&pineapple
>>>返回目錄:2017上半年軟件設(shè)計師考試下午真題匯總
軟考備考資料免費領(lǐng)取
去領(lǐng)取