当前位置: 首页icon 51CTO软考 > 软考资讯 >考试科目 >2021年11月软件设计师模拟题下午(一)之十四

2021年11月软件设计师模拟题下午(一)之十四

作者:mb64e70aac116d82024-01-07 01:00:13
备考咨询 刷题指导
添加专属学姐
下载资料 2024上半年软考备考资料+考试大纲
下载按钮 下载
引号

摘要:对于【软件设计师】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2021年11月软件设计师模拟题下午(一)】部分试题的详解,一起来看看吧~1、试题五阅读下列说明和C++代码,回答问题,将解答填入答题纸的对应栏内。【说

引号
摘要:对于【软件设计师】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2021年11月软件设计师模拟题下午(一)】部分试题的详解,一起来看看吧~



1、试题五阅读下列说明和C++代码,回答问题,将解答填入答题纸的对应栏内。【说明】某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。Command模式的类图如下图所示。【C++代码】class Light {public:  Light(string name) { /* 代码省略 */ }  void on() { /* 代码省略 */ }    // 开灯  void off() { /* 代码省略 */ }  // 关灯};class Command {public:     (1)   ;};class LightOnCommand:public Command { // 开灯命令private:  Light* light;public:  LightOnCommand(Light* light) {   (2)    ; }  void execute() {     light->on()   ; }};class LightOffCommand:public Command { // 关灯命令private:  Light *light;public:  LightOffCommand(Light* light) { this->light=light; }  void execute() {     light->off()   ; }};class RemoteControl{ // 遥控器private:  Command* onCommands[7];  Command* offCommands[7];public:  RemoteControl() { /* 代码省略 */ }  void setCommand(int slot, Command* onCommand, Command* offCommand) {     onCommands[slot]  =    (3)    ;       offCommands[slot]  =    (4)    ;  }  void onButtonWasPushed(int slot) {    onCommands[slot]->execute()    ; }  void offButtonWasPushed(int slot) {     offCommands[slot]->execute()    ; }};int main() {       (5)    ;  Light* livingRoomLight=new Light("Living Room");Light*kitchenLight=new Light("kitchen"); LightOnCommand*livingRoomLightOn=newLightOnCommand(livingRoomLight);  LightOffCommand* livingRoomLightOff=newLightOffCommand(livingRoomLight);  LightOnCommand*kitchenLightOn=new LightOnCommand(kitchenLight);  LightOffCommand* kitchenLightOff=new LightOffCommand(kitchenLight);  remoteControl->setCommand(0, livingRoomLightOn, livingRoomLightOff);  remoteControl->setCommand(1, kitchenLightOn, kitchenLightOff);  remoteControl->onButtonWasPushed(0);  remoteControl->offButtonWasPushed(0);  remoteControl->onButtonWasPushed(1);  remoteControl->offButtonWasPushed(1);  /* 其余代码省略 */  return 0;}
答案:

试题五

(1)virtual void execute()=0

(2)this->light=light

(3)onCommand

(4)offCommand

(5)RemoteControl* remoteControl=new RemoteControl()


答题解析:无

查看完整试题>>>


代理合作学习群