2017上半年软件设计师考试真题及答案-下午卷

loading 分享 2026-7-17 下载文档

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(\};

class SpicyPizzaBuider: public PizzaBuilder { public:

void buildParts() { pizza->setParts(\ }

Class Waiter{ Private:

PizzaBuilder* pizzaBuilder; public:

void setPizzaBuilder(PizzaBuilder* pizzaBuilder) { /*设置构建器*/ ( 2 ) }

Pizza* getPizza() { return pizzaBuilder->getPizza(); }

16

void construct() { /*构建*/ pizzaBuilder->createNewPizza(); ( 3 ) } };

int main(){

Waiter*waiter=new Waiter();

PizzaBuilder*hawaiian pizzabuilder=new HawaiianPizzaBuilder() ( 4 ); ( 5 );

cout<< \}

程序的输出结果为:

pizza: cross + mild + ham&pineapple

问题:5.1 请填写(1)(2)(3)(4)(5)

答案解析:

(1)virtual void buildParts() (2)this->pizzaBuilder=pizzaBuilder (3)pizzaBuilder->buildParts()

(4)waiter->setPizzaBuilder(hawaiian_pizzabuilder) (5)waiter->construct()

17

第 6 题

阅读下列说明和 Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】

某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种类可能不同,但其制作过程相同。前台服务员 (Waiter) 调度厨师制作套餐。现采用生成器 (Builder) 模式实现制作过程,得到如图 6-1 所示的类图。

【Java代码】 class Pizza {

private String parts;

public void setParts(String parts) { this.parts = parts; } public String toString() { return this.parts; } }

abstract class PizzaBuilder { protected Pizza pizza;

public Pizza getPizza() { return pizza; }

public void createNewPizza() { pizza = new Pizza(); } public (1) ; }

18

class HawaiianPizzaBuilder extends PizzaBuilder {

public void buildParts() { pizza.setParts(\ }

class SpicyPizzaBuilder extends PizzaBuilder {

public void buildParts() { pizza.setParts(\baked + hot + pepperoni&salami\} }

class Waiter {

private PizzaBuilder pizzaBuilder;

public void setPizzaBuilder(PizzaBuilder pizzaBuilder) { /*设置构建器*/ ( 2 ) ; }

public Pizza getPizza(){ return pizzaBuilder.getPizza(); }

public void construct() { /*构建*/ pizzaBuilder.createNewPizza(); ( 3 ) ; } }

Class FastFoodOrdering {

public static viod mainSting[]args) { Waiter waiter = new Waiter();

PizzaBuilder hawaiian_pizzabuilder = new HawaiianPizzaBuilder(); ( 4 ) ; ( 5 ) ;

System.out.println(\

19

} }

程序的输出结果为:

Pizza:cross + mild + ham&pineapple

问题:6.1 请填写(1)(2)(3)(4)(5)

答案解析:

(1)abstract void buildParts(); (2)this.pizzaBuilder=pizzaBuilder (3)pizzaBuilder.buildParts()

(4)waiter.setPizzaBuilder(hawaiian_pizzabuilder) (5)waiter.construct()

20


2017上半年软件设计师考试真题及答案-下午卷.doc 将本文的Word文档下载到电脑
搜索更多关于: 2017上半年软件设计师考试真题及答案-下午卷 的文档
相关推荐
相关阅读