首页
试卷库
试题库
当前位置:
X题卡
>
所有题目
>
题目详情
阅读下列说明和C++代码,将应填入空 (n) 处的字句写在对应栏内。 [说明] 某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图18-27所示。 现在采用组合(Comp...
查看本题答案
包含此试题的试卷
中级软件设计师《填空集》真题及答案
点击查看
你可能感兴趣的试题
试题六阅读以下说明和Java代码将应填入n处的语句或语句成分写在答题纸的对应栏内【说明】某数据
阅读以下说明和C++程序将应填入____处的字句写在答题纸的对应栏内 下面程序实现十进制向其他进制的
试题六阅读以下说明和Java代码将应填入n处的语句或语句成分写在答题纸的对应栏内【说明】某数据
试题五阅读以下说明和C++代码将应填入n处的语句或语句成分写在答题纸的对应栏内【说明】某数据文
试题五阅读以下说明和C++代码将应填入n处的语句或语句成分写在答题纸的对应栏内【说明】某数据文
试题五阅读以下说明和C++代码将应填入n处的语句或语句成分写在答题纸的对应栏内【说明】某数据文
试题六阅读以下说明和Java代码将应填入n处的语句或语句成分写在答题纸的对应栏内【说明】某数据
试题六阅读以下说明和Java代码将应填入n处的语句或语句成分写在答题纸的对应栏内【说明】某数据
试题六阅读以下说明和Java代码将应填入n处的语句或语句成分写在答题纸的对应栏内【说明】某数据
试题六 阅读下列说明和JAVA代码将应填入n处的字句写在答题纸的对应栏内 【说明】 现欲构造一文/
试题五 阅读下列说明和C++代码将应填入____n____处的字句写在答题纸的对应栏内 [说明]
试题六阅读以下说明和Java代码将应填入n处的语句或语句成分写在答题纸的对应栏内【说明】某数据
从下列的3道题试题五至试题七中任选1道解答如果解答的试题超过1道则题号小的1道解答有效 试题五
阅读以下说明和Java程序将应填入____处的字句写在答题纸的对应栏内 下面程序实现十进制向其他进制
试题六15分每空3分 阅读以下说明Java代码和HTML文档将应填入n处的字句写在答题纸的对应栏内
阅读以下说明和JAVA代码将应填入n处的字句写在答题纸的对应栏内 【说明】 类Queue表示队列类
试题五阅读以下说明和C++代码将应填入n处的语句或语句成分写在答题纸的对应栏内【说明】某数据文
试题六阅读以下说明和Java代码将应填入n处的语句或语句成分写在答题纸的对应栏内【说明】某数据
阅读以下说明和c++代码将应填入n处的字句写在答题纸的对应栏内 【说明】 通常情况下用户可以对应用
试题五阅读以下说明和C++代码将应填入n处的语句或语句成分写在答题纸的对应栏内【说明】某数据文
热门试题
更多
阅读下列说明和C++代码将应填入n处的字句写在对应栏内 [说明] 现欲实现一个图像浏览系统要求该系统能够显示BMPJPEG和GIF三种格式的文件并且能够在Windows和Linux两种操作系统上运行系统首先将BMPJPEG和GIF三种格式的文件解析为像素矩阵然后将像素矩阵显示在屏幕上系统需具有较好的扩展性以支持新的文件格式和操作系统为满足上述需求并减少所需生成的子类数目采用桥接Bridge设计模式进行设计所得类图如图18-17所示 采用该设计模式的原因在于系统解析BMPGIF与JPEG文件的代码仅与文件格式相关而在屏幕上显示像素矩阵的代码则仅与操作系统相关 [C++代码] clasSMatrix//各种格式的文件最终都被转换为像素矩阵 //此处代码省略 classImageImp public virtualvoiddoPaintMatrixm=0//显示像素矩阵m classWinlmppublicImageImp public voiddoPaintMatrixm/*调用Windows系统的绘制函数绘制像素矩阵*/ classLinuxlmppublicImagelmp public voiddoPaintMatrixm/*调用Linux系统的绘制函数绘制像素矩阵*/ classImage public voidsetImpImagelmp*imp1=imp virtualvoidparseFiiestringfileName=0 protected 2*imp classBMPpublicImage public voidparseFilestringfileName //此处解析BMP文件并获得一个像素矩阵对象m 3//显示像素矩阵m classGIF://publicImage //此处代码省略 classJPEG://publicImage //此处代码省略 voidmain //在Windows操作系统上查看demo.bmp图像文件 Image*imagel=4 ImageImp*imageImpl=5 6 imagel->parseFile"demo.bmp" 现假设该系统需要支持10种格式的图像文件和5种操作系统不考虑类Matrix若采用桥接设计模式则至少需要设计7个类 2处填
阅读下列说明和Java代码将应填入n处的字句写在对应栏内 [说明] 已知某企业欲开发一个家用电器遥控系统即用户使用一个遥控器即可控制某些家用电器的开与关遥控器如图18-13所示该遥控器共有4个按钮编号分别是0~3按钮0和2能够遥控打开电器1和电器2按钮1和3则能遥控关闭电器1和电器2由于遥控系统需要支持形式多样的电器因此该系统的设计要求具有较高的扩展性现假设需要控制客厅电视和卧室电灯对该遥控系统进行设计所得类图如图18-14所示 在图18-14中类RomoteController的方法onPressButtonintbutton表示当遥控器按键按下时调用的方法参数为按键的编号Command接N中的On和off方法分别用于控制电器的开与关Light中的mrnLightintdegree方法用于调整电灯灯光的强弱参数degree值为0时表示关灯值为100时表示开灯并且将灯光亮度调整到最大TV中的setChannelintchannel方法表示设置电视播放的频道参数channel值为0时表示关闭电视值为1时表示打开电视并将频道切换为第1频道 [Java代码] classLight//电灯类 publicvoidturnLightintdegree//调整灯光亮度0表示关灯100表示亮度最大 classTV//电视机类 PublicvoidsetChannelintchannel//0表示关机1表示开机并切换到第1频道 interfaceCommand//抽象命令类 voidon voidoff classRemoteController//遥控器类 protectedCommand[]commands=newCommand[4] //遥控器有4个按钮按照编号分别对应4个Command对象 publicvoidonPressButtonintbutton //按钮被按下时执行命令对象中的命令 ifbutton%2==0commands[button].on elsecommands[button].off publicvoidsetCommandintbuttonCommandcommand 1=command//设置每个按钮对应的命令对象 classLightCommandimplementsCommand//电灯命令类 protectedLightlight//指向要控制的电灯对象 publicvoidonlight.turnLight100 publicvoidofflight.2 publicLightCommandLightlightthis.light=light classTVCommandimplementsCommand//电视机命令类 protectedTvtv//指向要控制的电视机对象 publicvoidontv.3 publicvoidofftv.setChannel0 publicTVCommandTVtvthis.tv=tv publicclassrs publicstaticvoidmainString[]args Lightlight=newLightTVtv=newTV//创建电灯和电视对象 LightCommandlightCommand=newLightCommandlight TVCommandtvCommand=newTVCommandtv RemoteControllerremoteControllet=newRemoteController //设置按钮和命令对象 remoteController.setCommand04 …//此处省略设置按钮1按钮2和按钮3的命令对象代码 本题中应用命令模式能够有效让类5和类6类7之间的耦合性降至最小 1处填
阅读下列说明和Java代码将应填入n处的字句写在对应栏内 [说明] 已知某企业的采购审批是分级进行的即根据采购金额的不同由不同层次的主管人员来审批主任可以审批5万元以下不包括5万元的采购单副董事长可以审批5万元至10万元不包括10万元的采购单董事长可以审批10万元至50万元不包括50万元的采购单50万元及以上的采购单就需要开会讨论决定 采用责任链设计模式ChainofResponsibility对上述过程进行设计后得到的类图如图18-10所示 [Java代码] classPurchaseRequest publicdoubleAmount//采购的金额 publicintNumber//采购单编号 publicStringPurpose//采购目的 classApprover//审批者类 publicApproversuccessor=null publicvoidProcessRequestPurchaseRequestaRequest ifsuccessor!=nullsuccessor.1 publicvoidSetSuccessorApproveraSuccesssorsuccessor=aSuccesssor private2successor ClassCongressextendsApprover publicvoidProcessRequestPurchaseRequestaRequest ifaRequest.Amount>=500000/*决定是否审批的代码省略*/ else3.ProcessRequestaRequest classDirectorextendsApprover publicvoidProcessRequestPurchaseRequestaRequest/*此处代码省略*/ classPresidentextendsApprover publicvoidProcessRequestpurchaseRequestaRequest/*此处代码省略*/ classVicePresidentextendsApprover publicvoidProcessRequestpurchaseRequestaRequest/*此处代码省略*/ publicclassrs publicstaticvoidmainString[]argsthrowsIOException CongressMeeting=newCongress VicePresidentSam=newVicePresident DirectorLarry=newDirector PresidentTammy=newPresident //构造责任链 Meeting.SetSuccessornullSam.SetSuccessor4 Tammy.SetSuccessor5Larry.SetSuccessor6 //构造采购审批请求 PurchaseRequestaRequest=newPurchaseRequest BufferedReaderbr=newBufferedReadernewInputStreamReaderSystem.in aRequest.Amount=Double.parseDoublebr.readLine 7.ProcessRequestaRequest//开始审批 return 5处填
阅读下列说明和C++代码将应填入n处的字句写在对应栏内 [说明] 已知某企业的采购审批是分级进行的即根据采购金额的不同由不同层次的主管人员来审批主任可以审批5万元以下不包括5万元的采购单副董事长可以审批5万元至10万元不包括10万元的采购单董事长可以审批10万元至50万元不包括50万元的采购单50万元及以上的采购单就需要开会讨论决定 采用责任链设计模式ChainofResponsibility对上述过程进行设计后得到的类图如图18-9所示 [C++代码] #include<string> #include<iostream> usingnamespacestd classPurchaseRequest public doubleAmount//采购的金额 intNumber//采购单编号 stringPurpose//采购目的 classApprover//审批者类 public Approversuccessor=NULL virtualvoidProcessRequestPurchaseRequestaRequest ifsuccessor!=NULLsuccessor->1 voidSetSuccessorApprover*aSucceSSsorsuccessor=aSuccesssor private 2successor classCongresspublicApprover public voidProcessRequestPurchaseRequeStaRequest ifaRequest.Amount>=500000/*决定是否审批的代码省略*/ else3ProceSsRequestaRequest classDirectorpublicApprover publlc voidProcessRequestPurchaseRequestaRequest/*此处代码省略*/ classPresidentpublicApprover public voidProcessRequestPurchaseRequestaRequest/*此处代码省略*/ classVicePresidentpublicApprover public voidProcessRequestPurchaseRequestaRequest/*此处代码省略*/ voidmsin CongressMeetingVicePresidentSamDirectorLarryPresidentTammy //构造责任链 Meeting.SetSuccessorNULLSam.SetSuccessor4 Tammy.SetSuccessor5Larry.SetSuccessot6 PurchaseRequestaRequest//构造采购审批请求 cin>>aRequest.Amount//输入采购请求的金额 7.ProcessRequestaRequest//开始审批 return 6处填
阅读下列说明和C++代码将应填入n处的字句写在对应栏内 [说明] 已知某类库开发商提供了一套类库类库中定义了Application类和Document类它们之间的关系如图18-15所示其中Application类表示应用程序自身而Document类则表示应用程序打开的文档Application类负责打开一个已有的以外部形式存储的文档比如一个文件一旦从该文件中读出信息后它就由一个Document对象表示 当开发一个具体的应用程序时开发者需要分别创建自己的Application和Document子类例如图18-15中的类MyApplication和类MyDocument并分别实现Application类和Document类中的某些方法 已知Application类中的openDocument方法采用了模板方法TemplateMethod设计模式该方法定义了打开文档的每一个主要步骤如下所示 1检查文档是否能够被打开若不能打开则给出出错信息并返回 2创建文档对象 3通过文档对象打开文档 4通过文档对象读取文档信息 5将文档对象加入到Application的文档对象集合中 [C++代码] #include<iostream> #include<vector> usingnamespacestd C1assDocument public voidsave/*存储文档数据此处代码省略*/ voidopenstringdocName/*打开文档此处代码省略*/ voidclose/*关闭文档此处代码省略*/ virtualvoidreadStringdocName=0 classAppplication private vector<1>docs/*文档对象集合*/ public boolcanopenDocumentStringdocName /*判断是否可以打开指定文档返回真值时表示可以打开返回假时值表示不可打开此处代码省略*/ voidaddDocumentDocument*aD0cument /*将文档对象添加到文档对象集合中*/ docs.push_back2 virtualDocument*doCreateDocument=0/*创建一个文档对象*/ voidopenDocumentstringdocName/*打开文档*/ if3 cout<<"文档无法打开!"<<end1 return 4adoc=5 6 7 8 2处填
阅读下列说明和Java代码将应填入n处的字句写在对应栏内 [说明] 某游戏公司现欲开发一款面向儿童的模游戏该游戏主要模拟现实世界中各种鸭子的发声特征飞行特征和外观特征游戏需要模拟的鸭子种类及其特征如表18-5所示 为支持将来能够模拟更多种类鸭子的特征采用策略设计模式Strategy设计的类图如图18-8所示 其中Duck为抽象类描述了抽象的鸭子而类RubberDuckMallardDuckCottonDuck和RedHeadDuck分别描述具体的鸭子种类方法flyquack和display分别表示不同种类的鸭子都具有飞行特征发声特征和外观特征接NFlyBehavior与QuackBehavior分别用于表示抽象的飞行行为与发声行为类FlyNoWay与FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为类QuackSqueak与QuackNoWay分别描述发出“嘎嘎”声的行为发出橡皮与空气摩擦声的行为与不发声的行为请填补以下Java代码中的空缺 [Java代码] 1FlyBehavior publicvoidfly 2QuackBehavior publicvoidquack classFlyWithWingsimplementsFlyBehaVior publicvoidflySystem.out.println"使用翅膀飞行!" classFlyNoWayimplementsFlyBehaVior publicvoidflySystem.out.println"不能飞行!" classQuackimplementsQuackBehavior publicvoidquackSystem.out.println"发出/’嘎嘎/’声!" classSqueakimplementsQuackBehavior publicvoidquackSystem.out.println"发出空气与橡皮摩擦声!" classQuackNoWayimplementsQuackBehaVior publicvoidquackSystem.out.println"不能发声!" abstractclassDuck protectedFlyBehavior3 protectedQuackBehavior4 publicvoidfly5 publicvoidquack6 public7voiddisplay classRubberDuckextendsDuck publicRubberDuck flyBehavior=Fiew8 quackBehavior=new9 publicvoiddisplay/*此处省略显示橡皮鸭的代码*/ //其他代码省略 3处填
阅读下列说明和C++代码将应填入n处的字句写在对应栏内 [说明] 已知某类库开发商提供了一套类库类库中定义了Application类和Document类它们之间的关系如图18-15所示其中Application类表示应用程序自身而Document类则表示应用程序打开的文档Application类负责打开一个已有的以外部形式存储的文档比如一个文件一旦从该文件中读出信息后它就由一个Document对象表示 当开发一个具体的应用程序时开发者需要分别创建自己的Application和Document子类例如图18-15中的类MyApplication和类MyDocument并分别实现Application类和Document类中的某些方法 已知Application类中的openDocument方法采用了模板方法TemplateMethod设计模式该方法定义了打开文档的每一个主要步骤如下所示 1检查文档是否能够被打开若不能打开则给出出错信息并返回 2创建文档对象 3通过文档对象打开文档 4通过文档对象读取文档信息 5将文档对象加入到Application的文档对象集合中 [C++代码] #include<iostream> #include<vector> usingnamespacestd C1assDocument public voidsave/*存储文档数据此处代码省略*/ voidopenstringdocName/*打开文档此处代码省略*/ voidclose/*关闭文档此处代码省略*/ virtualvoidreadStringdocName=0 classAppplication private vector<1>docs/*文档对象集合*/ public boolcanopenDocumentStringdocName /*判断是否可以打开指定文档返回真值时表示可以打开返回假时值表示不可打开此处代码省略*/ voidaddDocumentDocument*aD0cument /*将文档对象添加到文档对象集合中*/ docs.push_back2 virtualDocument*doCreateDocument=0/*创建一个文档对象*/ voidopenDocumentstringdocName/*打开文档*/ if3 cout<<"文档无法打开!"<<end1 return 4adoc=5 6 7 8 8处填
阅读下列说明和C++代码将应填入n处的字句写在对应栏内 [说明] 已知某类库开发商提供了一套类库类库中定义了Application类和Document类它们之间的关系如图18-15所示其中Application类表示应用程序自身而Document类则表示应用程序打开的文档Application类负责打开一个已有的以外部形式存储的文档比如一个文件一旦从该文件中读出信息后它就由一个Document对象表示 当开发一个具体的应用程序时开发者需要分别创建自己的Application和Document子类例如图18-15中的类MyApplication和类MyDocument并分别实现Application类和Document类中的某些方法 已知Application类中的openDocument方法采用了模板方法TemplateMethod设计模式该方法定义了打开文档的每一个主要步骤如下所示 1检查文档是否能够被打开若不能打开则给出出错信息并返回 2创建文档对象 3通过文档对象打开文档 4通过文档对象读取文档信息 5将文档对象加入到Application的文档对象集合中 [C++代码] #include<iostream> #include<vector> usingnamespacestd C1assDocument public voidsave/*存储文档数据此处代码省略*/ voidopenstringdocName/*打开文档此处代码省略*/ voidclose/*关闭文档此处代码省略*/ virtualvoidreadStringdocName=0 classAppplication private vector<1>docs/*文档对象集合*/ public boolcanopenDocumentStringdocName /*判断是否可以打开指定文档返回真值时表示可以打开返回假时值表示不可打开此处代码省略*/ voidaddDocumentDocument*aD0cument /*将文档对象添加到文档对象集合中*/ docs.push_back2 virtualDocument*doCreateDocument=0/*创建一个文档对象*/ voidopenDocumentstringdocName/*打开文档*/ if3 cout<<"文档无法打开!"<<end1 return 4adoc=5 6 7 8 4处填
阅读下列说明和Java代码将应填入n处的字句写在对应栏内 [说明] 已知某企业欲开发一个家用电器遥控系统即用户使用一个遥控器即可控制某些家用电器的开与关遥控器如图18-13所示该遥控器共有4个按钮编号分别是0~3按钮0和2能够遥控打开电器1和电器2按钮1和3则能遥控关闭电器1和电器2由于遥控系统需要支持形式多样的电器因此该系统的设计要求具有较高的扩展性现假设需要控制客厅电视和卧室电灯对该遥控系统进行设计所得类图如图18-14所示 在图18-14中类RomoteController的方法onPressButtonintbutton表示当遥控器按键按下时调用的方法参数为按键的编号Command接N中的On和off方法分别用于控制电器的开与关Light中的mrnLightintdegree方法用于调整电灯灯光的强弱参数degree值为0时表示关灯值为100时表示开灯并且将灯光亮度调整到最大TV中的setChannelintchannel方法表示设置电视播放的频道参数channel值为0时表示关闭电视值为1时表示打开电视并将频道切换为第1频道 [Java代码] classLight//电灯类 publicvoidturnLightintdegree//调整灯光亮度0表示关灯100表示亮度最大 classTV//电视机类 PublicvoidsetChannelintchannel//0表示关机1表示开机并切换到第1频道 interfaceCommand//抽象命令类 voidon voidoff classRemoteController//遥控器类 protectedCommand[]commands=newCommand[4] //遥控器有4个按钮按照编号分别对应4个Command对象 publicvoidonPressButtonintbutton //按钮被按下时执行命令对象中的命令 ifbutton%2==0commands[button].on elsecommands[button].off publicvoidsetCommandintbuttonCommandcommand 1=command//设置每个按钮对应的命令对象 classLightCommandimplementsCommand//电灯命令类 protectedLightlight//指向要控制的电灯对象 publicvoidonlight.turnLight100 publicvoidofflight.2 publicLightCommandLightlightthis.light=light classTVCommandimplementsCommand//电视机命令类 protectedTvtv//指向要控制的电视机对象 publicvoidontv.3 publicvoidofftv.setChannel0 publicTVCommandTVtvthis.tv=tv publicclassrs publicstaticvoidmainString[]args Lightlight=newLightTVtv=newTV//创建电灯和电视对象 LightCommandlightCommand=newLightCommandlight TVCommandtvCommand=newTVCommandtv RemoteControllerremoteControllet=newRemoteController //设置按钮和命令对象 remoteController.setCommand04 …//此处省略设置按钮1按钮2和按钮3的命令对象代码 本题中应用命令模式能够有效让类5和类6类7之间的耦合性降至最小 3处填
阅读下列说明和Java代码将应填入n处的字句写在对应栏内 [说明] 某游戏公司现欲开发一款面向儿童的模游戏该游戏主要模拟现实世界中各种鸭子的发声特征飞行特征和外观特征游戏需要模拟的鸭子种类及其特征如表18-5所示 为支持将来能够模拟更多种类鸭子的特征采用策略设计模式Strategy设计的类图如图18-8所示 其中Duck为抽象类描述了抽象的鸭子而类RubberDuckMallardDuckCottonDuck和RedHeadDuck分别描述具体的鸭子种类方法flyquack和display分别表示不同种类的鸭子都具有飞行特征发声特征和外观特征接NFlyBehavior与QuackBehavior分别用于表示抽象的飞行行为与发声行为类FlyNoWay与FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为类QuackSqueak与QuackNoWay分别描述发出“嘎嘎”声的行为发出橡皮与空气摩擦声的行为与不发声的行为请填补以下Java代码中的空缺 [Java代码] 1FlyBehavior publicvoidfly 2QuackBehavior publicvoidquack classFlyWithWingsimplementsFlyBehaVior publicvoidflySystem.out.println"使用翅膀飞行!" classFlyNoWayimplementsFlyBehaVior publicvoidflySystem.out.println"不能飞行!" classQuackimplementsQuackBehavior publicvoidquackSystem.out.println"发出/’嘎嘎/’声!" classSqueakimplementsQuackBehavior publicvoidquackSystem.out.println"发出空气与橡皮摩擦声!" classQuackNoWayimplementsQuackBehaVior publicvoidquackSystem.out.println"不能发声!" abstractclassDuck protectedFlyBehavior3 protectedQuackBehavior4 publicvoidfly5 publicvoidquack6 public7voiddisplay classRubberDuckextendsDuck publicRubberDuck flyBehavior=Fiew8 quackBehavior=new9 publicvoiddisplay/*此处省略显示橡皮鸭的代码*/ //其他代码省略 5处填
阅读下列说明和Java代码将应填入n处的字句写在对应栏内 [说明] 某游戏公司现欲开发一款面向儿童的模游戏该游戏主要模拟现实世界中各种鸭子的发声特征飞行特征和外观特征游戏需要模拟的鸭子种类及其特征如表18-5所示 为支持将来能够模拟更多种类鸭子的特征采用策略设计模式Strategy设计的类图如图18-8所示 其中Duck为抽象类描述了抽象的鸭子而类RubberDuckMallardDuckCottonDuck和RedHeadDuck分别描述具体的鸭子种类方法flyquack和display分别表示不同种类的鸭子都具有飞行特征发声特征和外观特征接NFlyBehavior与QuackBehavior分别用于表示抽象的飞行行为与发声行为类FlyNoWay与FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为类QuackSqueak与QuackNoWay分别描述发出“嘎嘎”声的行为发出橡皮与空气摩擦声的行为与不发声的行为请填补以下Java代码中的空缺 [Java代码] 1FlyBehavior publicvoidfly 2QuackBehavior publicvoidquack classFlyWithWingsimplementsFlyBehaVior publicvoidflySystem.out.println"使用翅膀飞行!" classFlyNoWayimplementsFlyBehaVior publicvoidflySystem.out.println"不能飞行!" classQuackimplementsQuackBehavior publicvoidquackSystem.out.println"发出/’嘎嘎/’声!" classSqueakimplementsQuackBehavior publicvoidquackSystem.out.println"发出空气与橡皮摩擦声!" classQuackNoWayimplementsQuackBehaVior publicvoidquackSystem.out.println"不能发声!" abstractclassDuck protectedFlyBehavior3 protectedQuackBehavior4 publicvoidfly5 publicvoidquack6 public7voiddisplay classRubberDuckextendsDuck publicRubberDuck flyBehavior=Fiew8 quackBehavior=new9 publicvoiddisplay/*此处省略显示橡皮鸭的代码*/ //其他代码省略 7处填
阅读下列说明和C++代码将应填入n处的字句写在对应栏内 [说明] 已知某类库开发商提供了一套类库类库中定义了Application类和Document类它们之间的关系如图18-15所示其中Application类表示应用程序自身而Document类则表示应用程序打开的文档Application类负责打开一个已有的以外部形式存储的文档比如一个文件一旦从该文件中读出信息后它就由一个Document对象表示 当开发一个具体的应用程序时开发者需要分别创建自己的Application和Document子类例如图18-15中的类MyApplication和类MyDocument并分别实现Application类和Document类中的某些方法 已知Application类中的openDocument方法采用了模板方法TemplateMethod设计模式该方法定义了打开文档的每一个主要步骤如下所示 1检查文档是否能够被打开若不能打开则给出出错信息并返回 2创建文档对象 3通过文档对象打开文档 4通过文档对象读取文档信息 5将文档对象加入到Application的文档对象集合中 [C++代码] #include<iostream> #include<vector> usingnamespacestd C1assDocument public voidsave/*存储文档数据此处代码省略*/ voidopenstringdocName/*打开文档此处代码省略*/ voidclose/*关闭文档此处代码省略*/ virtualvoidreadStringdocName=0 classAppplication private vector<1>docs/*文档对象集合*/ public boolcanopenDocumentStringdocName /*判断是否可以打开指定文档返回真值时表示可以打开返回假时值表示不可打开此处代码省略*/ voidaddDocumentDocument*aD0cument /*将文档对象添加到文档对象集合中*/ docs.push_back2 virtualDocument*doCreateDocument=0/*创建一个文档对象*/ voidopenDocumentstringdocName/*打开文档*/ if3 cout<<"文档无法打开!"<<end1 return 4adoc=5 6 7 8 6处填
阅读下列说明和C++代码将应填入n处的字句写在对应栏内 [说明] 已知某类库开发商提供了一套类库类库中定义了Application类和Document类它们之间的关系如图18-15所示其中Application类表示应用程序自身而Document类则表示应用程序打开的文档Application类负责打开一个已有的以外部形式存储的文档比如一个文件一旦从该文件中读出信息后它就由一个Document对象表示 当开发一个具体的应用程序时开发者需要分别创建自己的Application和Document子类例如图18-15中的类MyApplication和类MyDocument并分别实现Application类和Document类中的某些方法 已知Application类中的openDocument方法采用了模板方法TemplateMethod设计模式该方法定义了打开文档的每一个主要步骤如下所示 1检查文档是否能够被打开若不能打开则给出出错信息并返回 2创建文档对象 3通过文档对象打开文档 4通过文档对象读取文档信息 5将文档对象加入到Application的文档对象集合中 [C++代码] #include<iostream> #include<vector> usingnamespacestd C1assDocument public voidsave/*存储文档数据此处代码省略*/ voidopenstringdocName/*打开文档此处代码省略*/ voidclose/*关闭文档此处代码省略*/ virtualvoidreadStringdocName=0 classAppplication private vector<1>docs/*文档对象集合*/ public boolcanopenDocumentStringdocName /*判断是否可以打开指定文档返回真值时表示可以打开返回假时值表示不可打开此处代码省略*/ voidaddDocumentDocument*aD0cument /*将文档对象添加到文档对象集合中*/ docs.push_back2 virtualDocument*doCreateDocument=0/*创建一个文档对象*/ voidopenDocumentstringdocName/*打开文档*/ if3 cout<<"文档无法打开!"<<end1 return 4adoc=5 6 7 8 4处填
阅读下列说明和C++代码将应填入n处的字句写在对应栏内 [说明] 已知某企业的采购审批是分级进行的即根据采购金额的不同由不同层次的主管人员来审批主任可以审批5万元以下不包括5万元的采购单副董事长可以审批5万元至10万元不包括10万元的采购单董事长可以审批10万元至50万元不包括50万元的采购单50万元及以上的采购单就需要开会讨论决定 采用责任链设计模式ChainofResponsibility对上述过程进行设计后得到的类图如图18-9所示 [C++代码] #include<string> #include<iostream> usingnamespacestd classPurchaseRequest public doubleAmount//采购的金额 intNumber//采购单编号 stringPurpose//采购目的 classApprover//审批者类 public Approversuccessor=NULL virtualvoidProcessRequestPurchaseRequestaRequest ifsuccessor!=NULLsuccessor->1 voidSetSuccessorApprover*aSucceSSsorsuccessor=aSuccesssor private 2successor classCongresspublicApprover public voidProcessRequestPurchaseRequeStaRequest ifaRequest.Amount>=500000/*决定是否审批的代码省略*/ else3ProceSsRequestaRequest classDirectorpublicApprover publlc voidProcessRequestPurchaseRequestaRequest/*此处代码省略*/ classPresidentpublicApprover public voidProcessRequestPurchaseRequestaRequest/*此处代码省略*/ classVicePresidentpublicApprover public voidProcessRequestPurchaseRequestaRequest/*此处代码省略*/ voidmsin CongressMeetingVicePresidentSamDirectorLarryPresidentTammy //构造责任链 Meeting.SetSuccessorNULLSam.SetSuccessor4 Tammy.SetSuccessor5Larry.SetSuccessot6 PurchaseRequestaRequest//构造采购审批请求 cin>>aRequest.Amount//输入采购请求的金额 7.ProcessRequestaRequest//开始审批 return 2处填
阅读下列说明和C++代码将应填入n处的字句写在对应栏内 [说明] 现欲实现一个图像浏览系统要求该系统能够显示BMPJPEG和GIF三种格式的文件并且能够在Windows和Linux两种操作系统上运行系统首先将BMPJPEG和GIF三种格式的文件解析为像素矩阵然后将像素矩阵显示在屏幕上系统需具有较好的扩展性以支持新的文件格式和操作系统为满足上述需求并减少所需生成的子类数目采用桥接Bridge设计模式进行设计所得类图如图18-17所示 采用该设计模式的原因在于系统解析BMPGIF与JPEG文件的代码仅与文件格式相关而在屏幕上显示像素矩阵的代码则仅与操作系统相关 [C++代码] clasSMatrix//各种格式的文件最终都被转换为像素矩阵 //此处代码省略 classImageImp public virtualvoiddoPaintMatrixm=0//显示像素矩阵m classWinlmppublicImageImp public voiddoPaintMatrixm/*调用Windows系统的绘制函数绘制像素矩阵*/ classLinuxlmppublicImagelmp public voiddoPaintMatrixm/*调用Linux系统的绘制函数绘制像素矩阵*/ classImage public voidsetImpImagelmp*imp1=imp virtualvoidparseFiiestringfileName=0 protected 2*imp classBMPpublicImage public voidparseFilestringfileName //此处解析BMP文件并获得一个像素矩阵对象m 3//显示像素矩阵m classGIF://publicImage //此处代码省略 classJPEG://publicImage //此处代码省略 voidmain //在Windows操作系统上查看demo.bmp图像文件 Image*imagel=4 ImageImp*imageImpl=5 6 imagel->parseFile"demo.bmp" 现假设该系统需要支持10种格式的图像文件和5种操作系统不考虑类Matrix若采用桥接设计模式则至少需要设计7个类 1处填
阅读下列说明和C++代码将应填入n处的字句写在对应栏内 [说明] 已知某类库开发商提供了一套类库类库中定义了Application类和Document类它们之间的关系如图18-15所示其中Application类表示应用程序自身而Document类则表示应用程序打开的文档Application类负责打开一个已有的以外部形式存储的文档比如一个文件一旦从该文件中读出信息后它就由一个Document对象表示 当开发一个具体的应用程序时开发者需要分别创建自己的Application和Document子类例如图18-15中的类MyApplication和类MyDocument并分别实现Application类和Document类中的某些方法 已知Application类中的openDocument方法采用了模板方法TemplateMethod设计模式该方法定义了打开文档的每一个主要步骤如下所示 1检查文档是否能够被打开若不能打开则给出出错信息并返回 2创建文档对象 3通过文档对象打开文档 4通过文档对象读取文档信息 5将文档对象加入到Application的文档对象集合中 [C++代码] #include<iostream> #include<vector> usingnamespacestd C1assDocument public voidsave/*存储文档数据此处代码省略*/ voidopenstringdocName/*打开文档此处代码省略*/ voidclose/*关闭文档此处代码省略*/ virtualvoidreadStringdocName=0 classAppplication private vector<1>docs/*文档对象集合*/ public boolcanopenDocumentStringdocName /*判断是否可以打开指定文档返回真值时表示可以打开返回假时值表示不可打开此处代码省略*/ voidaddDocumentDocument*aD0cument /*将文档对象添加到文档对象集合中*/ docs.push_back2 virtualDocument*doCreateDocument=0/*创建一个文档对象*/ voidopenDocumentstringdocName/*打开文档*/ if3 cout<<"文档无法打开!"<<end1 return 4adoc=5 6 7 8 8处填
阅读下列说明和C++代码将应填入n处的字句写在对应栏内 [说明] 现欲实现一个图像浏览系统要求该系统能够显示BMPJPEG和GIF三种格式的文件并且能够在Windows和Linux两种操作系统上运行系统首先将BMPJPEG和GIF三种格式的文件解析为像素矩阵然后将像素矩阵显示在屏幕上系统需具有较好的扩展性以支持新的文件格式和操作系统为满足上述需求并减少所需生成的子类数目采用桥接Bridge设计模式进行设计所得类图如图18-17所示 采用该设计模式的原因在于系统解析BMPGIF与JPEG文件的代码仅与文件格式相关而在屏幕上显示像素矩阵的代码则仅与操作系统相关 [C++代码] clasSMatrix//各种格式的文件最终都被转换为像素矩阵 //此处代码省略 classImageImp public virtualvoiddoPaintMatrixm=0//显示像素矩阵m classWinlmppublicImageImp public voiddoPaintMatrixm/*调用Windows系统的绘制函数绘制像素矩阵*/ classLinuxlmppublicImagelmp public voiddoPaintMatrixm/*调用Linux系统的绘制函数绘制像素矩阵*/ classImage public voidsetImpImagelmp*imp1=imp virtualvoidparseFiiestringfileName=0 protected 2*imp classBMPpublicImage public voidparseFilestringfileName //此处解析BMP文件并获得一个像素矩阵对象m 3//显示像素矩阵m classGIF://publicImage //此处代码省略 classJPEG://publicImage //此处代码省略 voidmain //在Windows操作系统上查看demo.bmp图像文件 Image*imagel=4 ImageImp*imageImpl=5 6 imagel->parseFile"demo.bmp" 现假设该系统需要支持10种格式的图像文件和5种操作系统不考虑类Matrix若采用桥接设计模式则至少需要设计7个类 4处填
阅读下列说明和C++代码将应填入n处的字句写在对应栏内 [说明] 已知某企业的采购审批是分级进行的即根据采购金额的不同由不同层次的主管人员来审批主任可以审批5万元以下不包括5万元的采购单副董事长可以审批5万元至10万元不包括10万元的采购单董事长可以审批10万元至50万元不包括50万元的采购单50万元及以上的采购单就需要开会讨论决定 采用责任链设计模式ChainofResponsibility对上述过程进行设计后得到的类图如图18-9所示 [C++代码] #include<string> #include<iostream> usingnamespacestd classPurchaseRequest public doubleAmount//采购的金额 intNumber//采购单编号 stringPurpose//采购目的 classApprover//审批者类 public Approversuccessor=NULL virtualvoidProcessRequestPurchaseRequestaRequest ifsuccessor!=NULLsuccessor->1 voidSetSuccessorApprover*aSucceSSsorsuccessor=aSuccesssor private 2successor classCongresspublicApprover public voidProcessRequestPurchaseRequeStaRequest ifaRequest.Amount>=500000/*决定是否审批的代码省略*/ else3ProceSsRequestaRequest classDirectorpublicApprover publlc voidProcessRequestPurchaseRequestaRequest/*此处代码省略*/ classPresidentpublicApprover public voidProcessRequestPurchaseRequestaRequest/*此处代码省略*/ classVicePresidentpublicApprover public voidProcessRequestPurchaseRequestaRequest/*此处代码省略*/ voidmsin CongressMeetingVicePresidentSamDirectorLarryPresidentTammy //构造责任链 Meeting.SetSuccessorNULLSam.SetSuccessor4 Tammy.SetSuccessor5Larry.SetSuccessot6 PurchaseRequestaRequest//构造采购审批请求 cin>>aRequest.Amount//输入采购请求的金额 7.ProcessRequestaRequest//开始审批 return 4处填
阅读下列说明和C++代码将应填入n处的字句写在对应栏内 [说明] 现欲实现一个图像浏览系统要求该系统能够显示BMPJPEG和GIF三种格式的文件并且能够在Windows和Linux两种操作系统上运行系统首先将BMPJPEG和GIF三种格式的文件解析为像素矩阵然后将像素矩阵显示在屏幕上系统需具有较好的扩展性以支持新的文件格式和操作系统为满足上述需求并减少所需生成的子类数目采用桥接Bridge设计模式进行设计所得类图如图18-17所示 采用该设计模式的原因在于系统解析BMPGIF与JPEG文件的代码仅与文件格式相关而在屏幕上显示像素矩阵的代码则仅与操作系统相关 [C++代码] clasSMatrix//各种格式的文件最终都被转换为像素矩阵 //此处代码省略 classImageImp public virtualvoiddoPaintMatrixm=0//显示像素矩阵m classWinlmppublicImageImp public voiddoPaintMatrixm/*调用Windows系统的绘制函数绘制像素矩阵*/ classLinuxlmppublicImagelmp public voiddoPaintMatrixm/*调用Linux系统的绘制函数绘制像素矩阵*/ classImage public voidsetImpImagelmp*imp1=imp virtualvoidparseFiiestringfileName=0 protected 2*imp classBMPpublicImage public voidparseFilestringfileName //此处解析BMP文件并获得一个像素矩阵对象m 3//显示像素矩阵m classGIF://publicImage //此处代码省略 classJPEG://publicImage //此处代码省略 voidmain //在Windows操作系统上查看demo.bmp图像文件 Image*imagel=4 ImageImp*imageImpl=5 6 imagel->parseFile"demo.bmp" 现假设该系统需要支持10种格式的图像文件和5种操作系统不考虑类Matrix若采用桥接设计模式则至少需要设计7个类 6处填
阅读下列说明和C++代码将应填入n处的字句写在对应栏内 [说明] 已知某类库开发商提供了一套类库类库中定义了Application类和Document类它们之间的关系如图18-15所示其中Application类表示应用程序自身而Document类则表示应用程序打开的文档Application类负责打开一个已有的以外部形式存储的文档比如一个文件一旦从该文件中读出信息后它就由一个Document对象表示 当开发一个具体的应用程序时开发者需要分别创建自己的Application和Document子类例如图18-15中的类MyApplication和类MyDocument并分别实现Application类和Document类中的某些方法 已知Application类中的openDocument方法采用了模板方法TemplateMethod设计模式该方法定义了打开文档的每一个主要步骤如下所示 1检查文档是否能够被打开若不能打开则给出出错信息并返回 2创建文档对象 3通过文档对象打开文档 4通过文档对象读取文档信息 5将文档对象加入到Application的文档对象集合中 [C++代码] #include<iostream> #include<vector> usingnamespacestd C1assDocument public voidsave/*存储文档数据此处代码省略*/ voidopenstringdocName/*打开文档此处代码省略*/ voidclose/*关闭文档此处代码省略*/ virtualvoidreadStringdocName=0 classAppplication private vector<1>docs/*文档对象集合*/ public boolcanopenDocumentStringdocName /*判断是否可以打开指定文档返回真值时表示可以打开返回假时值表示不可打开此处代码省略*/ voidaddDocumentDocument*aD0cument /*将文档对象添加到文档对象集合中*/ docs.push_back2 virtualDocument*doCreateDocument=0/*创建一个文档对象*/ voidopenDocumentstringdocName/*打开文档*/ if3 cout<<"文档无法打开!"<<end1 return 4adoc=5 6 7 8 6处填
阅读下列说明和C++代码将应填入n处的字句写在对应栏内 [说明] 已知某类库开发商提供了一套类库类库中定义了Application类和Document类它们之间的关系如图18-15所示其中Application类表示应用程序自身而Document类则表示应用程序打开的文档Application类负责打开一个已有的以外部形式存储的文档比如一个文件一旦从该文件中读出信息后它就由一个Document对象表示 当开发一个具体的应用程序时开发者需要分别创建自己的Application和Document子类例如图18-15中的类MyApplication和类MyDocument并分别实现Application类和Document类中的某些方法 已知Application类中的openDocument方法采用了模板方法TemplateMethod设计模式该方法定义了打开文档的每一个主要步骤如下所示 1检查文档是否能够被打开若不能打开则给出出错信息并返回 2创建文档对象 3通过文档对象打开文档 4通过文档对象读取文档信息 5将文档对象加入到Application的文档对象集合中 [C++代码] #include<iostream> #include<vector> usingnamespacestd C1assDocument public voidsave/*存储文档数据此处代码省略*/ voidopenstringdocName/*打开文档此处代码省略*/ voidclose/*关闭文档此处代码省略*/ virtualvoidreadStringdocName=0 classAppplication private vector<1>docs/*文档对象集合*/ public boolcanopenDocumentStringdocName /*判断是否可以打开指定文档返回真值时表示可以打开返回假时值表示不可打开此处代码省略*/ voidaddDocumentDocument*aD0cument /*将文档对象添加到文档对象集合中*/ docs.push_back2 virtualDocument*doCreateDocument=0/*创建一个文档对象*/ voidopenDocumentstringdocName/*打开文档*/ if3 cout<<"文档无法打开!"<<end1 return 4adoc=5 6 7 8 2处填
阅读下列说明和Java代码将应填入n处的字句写在对应栏内 [说明] 已知某企业欲开发一个家用电器遥控系统即用户使用一个遥控器即可控制某些家用电器的开与关遥控器如图18-13所示该遥控器共有4个按钮编号分别是0~3按钮0和2能够遥控打开电器1和电器2按钮1和3则能遥控关闭电器1和电器2由于遥控系统需要支持形式多样的电器因此该系统的设计要求具有较高的扩展性现假设需要控制客厅电视和卧室电灯对该遥控系统进行设计所得类图如图18-14所示 在图18-14中类RomoteController的方法onPressButtonintbutton表示当遥控器按键按下时调用的方法参数为按键的编号Command接N中的On和off方法分别用于控制电器的开与关Light中的mrnLightintdegree方法用于调整电灯灯光的强弱参数degree值为0时表示关灯值为100时表示开灯并且将灯光亮度调整到最大TV中的setChannelintchannel方法表示设置电视播放的频道参数channel值为0时表示关闭电视值为1时表示打开电视并将频道切换为第1频道 [Java代码] classLight//电灯类 publicvoidturnLightintdegree//调整灯光亮度0表示关灯100表示亮度最大 classTV//电视机类 PublicvoidsetChannelintchannel//0表示关机1表示开机并切换到第1频道 interfaceCommand//抽象命令类 voidon voidoff classRemoteController//遥控器类 protectedCommand[]commands=newCommand[4] //遥控器有4个按钮按照编号分别对应4个Command对象 publicvoidonPressButtonintbutton //按钮被按下时执行命令对象中的命令 ifbutton%2==0commands[button].on elsecommands[button].off publicvoidsetCommandintbuttonCommandcommand 1=command//设置每个按钮对应的命令对象 classLightCommandimplementsCommand//电灯命令类 protectedLightlight//指向要控制的电灯对象 publicvoidonlight.turnLight100 publicvoidofflight.2 publicLightCommandLightlightthis.light=light classTVCommandimplementsCommand//电视机命令类 protectedTvtv//指向要控制的电视机对象 publicvoidontv.3 publicvoidofftv.setChannel0 publicTVCommandTVtvthis.tv=tv publicclassrs publicstaticvoidmainString[]args Lightlight=newLightTVtv=newTV//创建电灯和电视对象 LightCommandlightCommand=newLightCommandlight TVCommandtvCommand=newTVCommandtv RemoteControllerremoteControllet=newRemoteController //设置按钮和命令对象 remoteController.setCommand04 …//此处省略设置按钮1按钮2和按钮3的命令对象代码 本题中应用命令模式能够有效让类5和类6类7之间的耦合性降至最小 5处填
阅读下列说明和Java代码将应填入n处的字句写在对应栏内 [说明] 已知某企业的采购审批是分级进行的即根据采购金额的不同由不同层次的主管人员来审批主任可以审批5万元以下不包括5万元的采购单副董事长可以审批5万元至10万元不包括10万元的采购单董事长可以审批10万元至50万元不包括50万元的采购单50万元及以上的采购单就需要开会讨论决定 采用责任链设计模式ChainofResponsibility对上述过程进行设计后得到的类图如图18-10所示 [Java代码] classPurchaseRequest publicdoubleAmount//采购的金额 publicintNumber//采购单编号 publicStringPurpose//采购目的 classApprover//审批者类 publicApproversuccessor=null publicvoidProcessRequestPurchaseRequestaRequest ifsuccessor!=nullsuccessor.1 publicvoidSetSuccessorApproveraSuccesssorsuccessor=aSuccesssor private2successor ClassCongressextendsApprover publicvoidProcessRequestPurchaseRequestaRequest ifaRequest.Amount>=500000/*决定是否审批的代码省略*/ else3.ProcessRequestaRequest classDirectorextendsApprover publicvoidProcessRequestPurchaseRequestaRequest/*此处代码省略*/ classPresidentextendsApprover publicvoidProcessRequestpurchaseRequestaRequest/*此处代码省略*/ classVicePresidentextendsApprover publicvoidProcessRequestpurchaseRequestaRequest/*此处代码省略*/ publicclassrs publicstaticvoidmainString[]argsthrowsIOException CongressMeeting=newCongress VicePresidentSam=newVicePresident DirectorLarry=newDirector PresidentTammy=newPresident //构造责任链 Meeting.SetSuccessornullSam.SetSuccessor4 Tammy.SetSuccessor5Larry.SetSuccessor6 //构造采购审批请求 PurchaseRequestaRequest=newPurchaseRequest BufferedReaderbr=newBufferedReadernewInputStreamReaderSystem.in aRequest.Amount=Double.parseDoublebr.readLine 7.ProcessRequestaRequest//开始审批 return 3处填
阅读下列说明和Java代码将应填入n处的字句写在对应栏内 [说明] 已知某企业的采购审批是分级进行的即根据采购金额的不同由不同层次的主管人员来审批主任可以审批5万元以下不包括5万元的采购单副董事长可以审批5万元至10万元不包括10万元的采购单董事长可以审批10万元至50万元不包括50万元的采购单50万元及以上的采购单就需要开会讨论决定 采用责任链设计模式ChainofResponsibility对上述过程进行设计后得到的类图如图18-10所示 [Java代码] classPurchaseRequest publicdoubleAmount//采购的金额 publicintNumber//采购单编号 publicStringPurpose//采购目的 classApprover//审批者类 publicApproversuccessor=null publicvoidProcessRequestPurchaseRequestaRequest ifsuccessor!=nullsuccessor.1 publicvoidSetSuccessorApproveraSuccesssorsuccessor=aSuccesssor private2successor ClassCongressextendsApprover publicvoidProcessRequestPurchaseRequestaRequest ifaRequest.Amount>=500000/*决定是否审批的代码省略*/ else3.ProcessRequestaRequest classDirectorextendsApprover publicvoidProcessRequestPurchaseRequestaRequest/*此处代码省略*/ classPresidentextendsApprover publicvoidProcessRequestpurchaseRequestaRequest/*此处代码省略*/ classVicePresidentextendsApprover publicvoidProcessRequestpurchaseRequestaRequest/*此处代码省略*/ publicclassrs publicstaticvoidmainString[]argsthrowsIOException CongressMeeting=newCongress VicePresidentSam=newVicePresident DirectorLarry=newDirector PresidentTammy=newPresident //构造责任链 Meeting.SetSuccessornullSam.SetSuccessor4 Tammy.SetSuccessor5Larry.SetSuccessor6 //构造采购审批请求 PurchaseRequestaRequest=newPurchaseRequest BufferedReaderbr=newBufferedReadernewInputStreamReaderSystem.in aRequest.Amount=Double.parseDoublebr.readLine 7.ProcessRequestaRequest//开始审批 return 7处填
阅读下列说明和Java代码将应填入n处的字句写在对应栏内 [说明] 某游戏公司现欲开发一款面向儿童的模游戏该游戏主要模拟现实世界中各种鸭子的发声特征飞行特征和外观特征游戏需要模拟的鸭子种类及其特征如表18-5所示 为支持将来能够模拟更多种类鸭子的特征采用策略设计模式Strategy设计的类图如图18-8所示 其中Duck为抽象类描述了抽象的鸭子而类RubberDuckMallardDuckCottonDuck和RedHeadDuck分别描述具体的鸭子种类方法flyquack和display分别表示不同种类的鸭子都具有飞行特征发声特征和外观特征接NFlyBehavior与QuackBehavior分别用于表示抽象的飞行行为与发声行为类FlyNoWay与FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为类QuackSqueak与QuackNoWay分别描述发出“嘎嘎”声的行为发出橡皮与空气摩擦声的行为与不发声的行为请填补以下Java代码中的空缺 [Java代码] 1FlyBehavior publicvoidfly 2QuackBehavior publicvoidquack classFlyWithWingsimplementsFlyBehaVior publicvoidflySystem.out.println"使用翅膀飞行!" classFlyNoWayimplementsFlyBehaVior publicvoidflySystem.out.println"不能飞行!" classQuackimplementsQuackBehavior publicvoidquackSystem.out.println"发出/’嘎嘎/’声!" classSqueakimplementsQuackBehavior publicvoidquackSystem.out.println"发出空气与橡皮摩擦声!" classQuackNoWayimplementsQuackBehaVior publicvoidquackSystem.out.println"不能发声!" abstractclassDuck protectedFlyBehavior3 protectedQuackBehavior4 publicvoidfly5 publicvoidquack6 public7voiddisplay classRubberDuckextendsDuck publicRubberDuck flyBehavior=Fiew8 quackBehavior=new9 publicvoiddisplay/*此处省略显示橡皮鸭的代码*/ //其他代码省略 9处填
阅读下列说明和C++代码将应填入n处的字句写在对应栏内 [说明] 已知某企业欲开发一个家用电器遥控系统即用户使用一个遥控器即可控制某些家用电器的开与关遥控器如图18-11所示该遥控器共有4个按钮编号分别是0~3按钮0和2能够遥控打开电器1和电器2按钮1和3则能遥控关闭电器1和电器2由于遥控系统需要支持形式多样的电器因此该系统的设计要求具有较高的扩展性现假设需要控制客厅电视和卧室电灯对该遥控系统进行设计所得类图如图18-12所示 在图18-12中类RomoteController的方法onPressButtonintbutton表示当遥控器按键按下时调用的方法参数为按键的编号Command接口中的on和off方法分别用于控制电器的开与关Light中的mrnLightintdegree方法用于调整电灯灯光的强弱参数degree值为0时表示关灯值为100时表示开灯并且将灯光亮度调整到最大TV中的setChannelintchannel方法表示设置电视播放的频道参数channel值为0时表示关闭电视值为1时表示打开电视并将频道切换为第1频道 [C++代码] classLight//电灯类 public voidturnLightintdegree//调整灯光亮度0表示关灯100表示亮度最大 classTV//电视机类 public voidsetChannelintchannel//调整频道0表示关机1表示开机并切换到第1频道 classCommand//抽象命令类 public virtualvoidon=0 virtualvoidoff=0 classRemoteController//遥控器类 protected Command*commands[4]//遥控器有4个按钮按照编号分别对应4个Command对象 public voidonPressButtonintbutton//按钮被按下时执行命令对象中的命令 ifbutton%2==0commands[button]->on elsecommands[button]->off voidsetCommandintbuttonCommand*command 1=command//设置每个按钮对应的命令对象 classLightCommandpublicCommand//电灯命令类 protectedLight*light//指向要控制的电灯对象 public voidonlight->turnLight100 voidofflight->2 LightCommandLight*lightthis->light=light classTVCommandpublicCommand//电视机命令类 protectedTV*tv//指向要控制的电视机对象 public voidontv->3 voidofftv->setChannel0 TVCommandTV*tvthis->tv=tv voidmain LightlightTvtv//创建电灯和电视对象 LightCommandlightCommand&light TVCommandtvCommand&tv RemoteControilerremoteController remoteController.setCommand04//设置按钮0的命令对象 ……//此处省略设置按钮1按钮2和按钮3的命令对象代码 本题中应用命令模式能够有效让类5和类6类7之间的耦合性降至最小 4处填
阅读下列说明和Java代码将应填入n处的字句写在对应栏内 [说明] 已知某企业欲开发一个家用电器遥控系统即用户使用一个遥控器即可控制某些家用电器的开与关遥控器如图18-13所示该遥控器共有4个按钮编号分别是0~3按钮0和2能够遥控打开电器1和电器2按钮1和3则能遥控关闭电器1和电器2由于遥控系统需要支持形式多样的电器因此该系统的设计要求具有较高的扩展性现假设需要控制客厅电视和卧室电灯对该遥控系统进行设计所得类图如图18-14所示 在图18-14中类RomoteController的方法onPressButtonintbutton表示当遥控器按键按下时调用的方法参数为按键的编号Command接N中的On和off方法分别用于控制电器的开与关Light中的mrnLightintdegree方法用于调整电灯灯光的强弱参数degree值为0时表示关灯值为100时表示开灯并且将灯光亮度调整到最大TV中的setChannelintchannel方法表示设置电视播放的频道参数channel值为0时表示关闭电视值为1时表示打开电视并将频道切换为第1频道 [Java代码] classLight//电灯类 publicvoidturnLightintdegree//调整灯光亮度0表示关灯100表示亮度最大 classTV//电视机类 PublicvoidsetChannelintchannel//0表示关机1表示开机并切换到第1频道 interfaceCommand//抽象命令类 voidon voidoff classRemoteController//遥控器类 protectedCommand[]commands=newCommand[4] //遥控器有4个按钮按照编号分别对应4个Command对象 publicvoidonPressButtonintbutton //按钮被按下时执行命令对象中的命令 ifbutton%2==0commands[button].on elsecommands[button].off publicvoidsetCommandintbuttonCommandcommand 1=command//设置每个按钮对应的命令对象 classLightCommandimplementsCommand//电灯命令类 protectedLightlight//指向要控制的电灯对象 publicvoidonlight.turnLight100 publicvoidofflight.2 publicLightCommandLightlightthis.light=light classTVCommandimplementsCommand//电视机命令类 protectedTvtv//指向要控制的电视机对象 publicvoidontv.3 publicvoidofftv.setChannel0 publicTVCommandTVtvthis.tv=tv publicclassrs publicstaticvoidmainString[]args Lightlight=newLightTVtv=newTV//创建电灯和电视对象 LightCommandlightCommand=newLightCommandlight TVCommandtvCommand=newTVCommandtv RemoteControllerremoteControllet=newRemoteController //设置按钮和命令对象 remoteController.setCommand04 …//此处省略设置按钮1按钮2和按钮3的命令对象代码 本题中应用命令模式能够有效让类5和类6类7之间的耦合性降至最小 7处填
阅读下列说明和C++代码将应填入n处的字句写在对应栏内 [说明] 已知某企业欲开发一个家用电器遥控系统即用户使用一个遥控器即可控制某些家用电器的开与关遥控器如图18-11所示该遥控器共有4个按钮编号分别是0~3按钮0和2能够遥控打开电器1和电器2按钮1和3则能遥控关闭电器1和电器2由于遥控系统需要支持形式多样的电器因此该系统的设计要求具有较高的扩展性现假设需要控制客厅电视和卧室电灯对该遥控系统进行设计所得类图如图18-12所示 在图18-12中类RomoteController的方法onPressButtonintbutton表示当遥控器按键按下时调用的方法参数为按键的编号Command接口中的on和off方法分别用于控制电器的开与关Light中的mrnLightintdegree方法用于调整电灯灯光的强弱参数degree值为0时表示关灯值为100时表示开灯并且将灯光亮度调整到最大TV中的setChannelintchannel方法表示设置电视播放的频道参数channel值为0时表示关闭电视值为1时表示打开电视并将频道切换为第1频道 [C++代码] classLight//电灯类 public voidturnLightintdegree//调整灯光亮度0表示关灯100表示亮度最大 classTV//电视机类 public voidsetChannelintchannel//调整频道0表示关机1表示开机并切换到第1频道 classCommand//抽象命令类 public virtualvoidon=0 virtualvoidoff=0 classRemoteController//遥控器类 protected Command*commands[4]//遥控器有4个按钮按照编号分别对应4个Command对象 public voidonPressButtonintbutton//按钮被按下时执行命令对象中的命令 ifbutton%2==0commands[button]->on elsecommands[button]->off voidsetCommandintbuttonCommand*command 1=command//设置每个按钮对应的命令对象 classLightCommandpublicCommand//电灯命令类 protectedLight*light//指向要控制的电灯对象 public voidonlight->turnLight100 voidofflight->2 LightCommandLight*lightthis->light=light classTVCommandpublicCommand//电视机命令类 protectedTV*tv//指向要控制的电视机对象 public voidontv->3 voidofftv->setChannel0 TVCommandTV*tvthis->tv=tv voidmain LightlightTvtv//创建电灯和电视对象 LightCommandlightCommand&light TVCommandtvCommand&tv RemoteControilerremoteController remoteController.setCommand04//设置按钮0的命令对象 ……//此处省略设置按钮1按钮2和按钮3的命令对象代码 本题中应用命令模式能够有效让类5和类6类7之间的耦合性降至最小 6处填
阅读下列说明和Java代码将应填入n处的字句写在对应栏内 [说明] 已知某企业的采购审批是分级进行的即根据采购金额的不同由不同层次的主管人员来审批主任可以审批5万元以下不包括5万元的采购单副董事长可以审批5万元至10万元不包括10万元的采购单董事长可以审批10万元至50万元不包括50万元的采购单50万元及以上的采购单就需要开会讨论决定 采用责任链设计模式ChainofResponsibility对上述过程进行设计后得到的类图如图18-10所示 [Java代码] classPurchaseRequest publicdoubleAmount//采购的金额 publicintNumber//采购单编号 publicStringPurpose//采购目的 classApprover//审批者类 publicApproversuccessor=null publicvoidProcessRequestPurchaseRequestaRequest ifsuccessor!=nullsuccessor.1 publicvoidSetSuccessorApproveraSuccesssorsuccessor=aSuccesssor private2successor ClassCongressextendsApprover publicvoidProcessRequestPurchaseRequestaRequest ifaRequest.Amount>=500000/*决定是否审批的代码省略*/ else3.ProcessRequestaRequest classDirectorextendsApprover publicvoidProcessRequestPurchaseRequestaRequest/*此处代码省略*/ classPresidentextendsApprover publicvoidProcessRequestpurchaseRequestaRequest/*此处代码省略*/ classVicePresidentextendsApprover publicvoidProcessRequestpurchaseRequestaRequest/*此处代码省略*/ publicclassrs publicstaticvoidmainString[]argsthrowsIOException CongressMeeting=newCongress VicePresidentSam=newVicePresident DirectorLarry=newDirector PresidentTammy=newPresident //构造责任链 Meeting.SetSuccessornullSam.SetSuccessor4 Tammy.SetSuccessor5Larry.SetSuccessor6 //构造采购审批请求 PurchaseRequestaRequest=newPurchaseRequest BufferedReaderbr=newBufferedReadernewInputStreamReaderSystem.in aRequest.Amount=Double.parseDoublebr.readLine 7.ProcessRequestaRequest//开始审批 return 1处填
阅读下列说明和C++代码将应填入n处的字句写在对应栏内 [说明] 已知某企业欲开发一个家用电器遥控系统即用户使用一个遥控器即可控制某些家用电器的开与关遥控器如图18-11所示该遥控器共有4个按钮编号分别是0~3按钮0和2能够遥控打开电器1和电器2按钮1和3则能遥控关闭电器1和电器2由于遥控系统需要支持形式多样的电器因此该系统的设计要求具有较高的扩展性现假设需要控制客厅电视和卧室电灯对该遥控系统进行设计所得类图如图18-12所示 在图18-12中类RomoteController的方法onPressButtonintbutton表示当遥控器按键按下时调用的方法参数为按键的编号Command接口中的on和off方法分别用于控制电器的开与关Light中的mrnLightintdegree方法用于调整电灯灯光的强弱参数degree值为0时表示关灯值为100时表示开灯并且将灯光亮度调整到最大TV中的setChannelintchannel方法表示设置电视播放的频道参数channel值为0时表示关闭电视值为1时表示打开电视并将频道切换为第1频道 [C++代码] classLight//电灯类 public voidturnLightintdegree//调整灯光亮度0表示关灯100表示亮度最大 classTV//电视机类 public voidsetChannelintchannel//调整频道0表示关机1表示开机并切换到第1频道 classCommand//抽象命令类 public virtualvoidon=0 virtualvoidoff=0 classRemoteController//遥控器类 protected Command*commands[4]//遥控器有4个按钮按照编号分别对应4个Command对象 public voidonPressButtonintbutton//按钮被按下时执行命令对象中的命令 ifbutton%2==0commands[button]->on elsecommands[button]->off voidsetCommandintbuttonCommand*command 1=command//设置每个按钮对应的命令对象 classLightCommandpublicCommand//电灯命令类 protectedLight*light//指向要控制的电灯对象 public voidonlight->turnLight100 voidofflight->2 LightCommandLight*lightthis->light=light classTVCommandpublicCommand//电视机命令类 protectedTV*tv//指向要控制的电视机对象 public voidontv->3 voidofftv->setChannel0 TVCommandTV*tvthis->tv=tv voidmain LightlightTvtv//创建电灯和电视对象 LightCommandlightCommand&light TVCommandtvCommand&tv RemoteControilerremoteController remoteController.setCommand04//设置按钮0的命令对象 ……//此处省略设置按钮1按钮2和按钮3的命令对象代码 本题中应用命令模式能够有效让类5和类6类7之间的耦合性降至最小 2处填
热门题库
更多
初级程序员
中级软件设计师
初级网络管理员
初级信息处理技术员
中级数据库系统工程师
中级多媒体应用设计师
高级系统分析师
高级网络规划设计师
高级系统架构师
中级信息系统监理师
初级通信工程师
中级通信工程师
通信新技术、新业务知识
无线通信专业技术
移动通信专业技术
有线传输专业技术