软件设计师案例分析当天每日一练试题地址:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4
往期软件设计师每日一练试题汇总:www.cnitpm.com/class/27/e4_1.html
软件设计师案例分析每日一练试题(2026/2/1)在线测试:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2026/2/1
点击查看:更多软件设计师习题与指导
软件设计师案例分析每日一练试题内容(2026/2/1)
阅读下列说明和 C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某快餐厅主要制作井出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种类可能不同,但其制作过程相同。前台服务员(Waiter)调度厨师制作套餐。现采用生成器(Builder) 模式实现制作过程,得到如图 5-1 所示的类图。
图5-1 类图
【C++代码】
#include
#include
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
信管网试题答案与解析:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2026/2/1
信管网考友试题答案分享:
信管网cnit**************:
virtual void buildparts(){}<br>this.pizzabuilder=pizzabuilder<br>pizzabuilder->buildparts<br>waiter->setpizzabuilder(hawaiian pizzabuilder);<br>waiter->construct();<br>
信管网cnit**************:
void buildparts(){}<br>pizzabuilder->createnewpizza();<br>pizzabuilder-> buildparts();<br>hawaiian pizzabuilder->c b
信管网cnit**************:
protect pizza* bulidparts(pizza* pizza){
return pizza;
}
信管网试题答案与解析:
www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2026/2/1