首页
试卷库
试题库
当前位置:
X题卡
>
所有题目
>
题目详情
阅读以下说明及数据流图,回答问题1至问题5,将解答填入对应栏内。 [说明] 某银行已有一套基于客户机/服务器模式的储蓄系统A和一套建账软件。建账软件主要用于将储蓄所手工处理的原始数据转换...
查看本题答案
包含此试题的试卷
中级软件设计师《问答集》真题及答案
点击查看
你可能感兴趣的试题
阅读下列说明和数据流图回答问题1至问题3将解答填入对应栏内[说明]下面给出的是某房产管理系统的一套分
阅读下列说明和数据流图回答问题1至问题3将解答填入对应栏内 [说明] 某供销系统接受顾
阅读下列说明和图回答问题1至问题3将解答填入对应栏内 [说明] 希赛公司拟开发一个销售
试题二 阅读以下说明回答问题1至问题5将解答填入答题纸对应的解答栏内[说明]某菜单位使用II
试题三 阅读以下说明回答问题1至问题5将解答填入答题纸对应的解答栏内 【说明】 在
试题二阅读以下说明回答问题1至问题3将解答填入答题纸对应的解答栏内 Linux服务器中DH
试题四 阅读以下说明回答问题1至问题5将解答填入答题纸对应的解答栏内
阅读下列说明和数据流图回答问题1至问题3将解答填入对应栏内[说明]下面给出的是某房产管理系统的一套分
阅读下列说明回答问题1至问题3将解答填入答题纸的对应栏内【说明】下表是某项目的工程数据根据各个
阅读以下说明回答问题1至问题6将解答填入答题纸对应的解答栏内 [说明]某企业的网络拓扑结构
试题四 阅读以下说明回答问题1至问题5将解答填入答题纸对应的解答栏内
试题三 阅读以下说明回答问题1至问题5将解答填入答题纸对应的解答栏内 【说明】 在
阅读下列说明和数据流图回答问题1至问题3将解答填入对应栏内 [说明] 某供销系统接受顾
阅读下列说明和数据流图回答问题1至问题3将解答填入对应栏内[说明]下面给出的是某房产管理系统的一套分
阅读下列说明和数据流图回答问题1至问题3将解答填入对应栏内 [说明] 某供销系统接受顾
阅读下列说明及数据流图回答问题1至问题3将解答填入对应栏内 [说明] 某学校建立了一个
试题三 阅读以下说明回答问题1至问题5将解答填入答题纸对应的解答栏内 【说明】 在
试题三 阅读以下说明回答问题1至问题5将解答填入答题纸对应的解答栏内 【说明】 在
试题三 阅读以下说明回答问题1至问题5将解答填入答题纸对应的解答栏内 【说明】 在
阅读下列说明和数据流图回答问题1至问题3将解答填入对应栏内 [说明] 某供销系统接受顾
热门试题
更多
阅读下列说明图及Java程序将应填入n处的字句写在对应栏内 [说明] 某订单管理系统的部分UML类图如图18-4所示 在图18-4中Product表示产品ProductList表示所销售产品的列表Order表示产品订单OrderItem表示产品订单中的一个条目OrderList表示订单列表SalesSystem提供 订单管理系统的操作接口各个类的部分属性和方法说明如表18-3所示 可以使用类Java.util.ArrayList<E>来实现对象的聚集关系如图18-4中OrderList与Order之间的聚集关系 for-each循环提供了一种遍历对象集合的简单方法在for-each循环中可以指定需要遍历的对象集合以及用来接收集合中每个元素的变量其语法如下 for用来接收集合中元素的变量需要遍历的对象集合 如果要使用for-each循环遍历对象集合那么包含该对象集合的类必须实现接口Java.util.Iterable<T> Java程序1和Java程序2分别给出了类OrderList和方法statistic的Java代码 [Java程序1] importjava.util.* publicclassOrderList1 privateArrayList<Order>orders publicOrderLiSt this.orders=newArrayList<Order> publicvoidaddOrderOrderorder this.orders.addorder publicIterator<Order>iterator return2 publicintgetNumberoforders returnthis.orders.slze [Java程序2] importJava.util.* publicclassSalesSystem privateProductListcatalog privateOrderListsales privatestaticPrintWriterstdOut=newPrintWriterSystem.outtrue publicvoidstatistiC forProductproduct3 intnumber=0 forOrderorder4 for5order ifproduct.equalsitem.getProduct number+=item.getQuantity stdOut.printInproduct.getCode+"" +product.getDescription+"" +number+""+number*product.getPrice //其余的方法未列出 3处填
阅读下列说明图及Java程序将应填入n处的字句写在对应栏内 [说明] 某订单管理系统的部分UML类图如图18-4所示 在图18-4中Product表示产品ProductList表示所销售产品的列表Order表示产品订单OrderItem表示产品订单中的一个条目OrderList表示订单列表SalesSystem提供 订单管理系统的操作接口各个类的部分属性和方法说明如表18-3所示 可以使用类Java.util.ArrayList<E>来实现对象的聚集关系如图18-4中OrderList与Order之间的聚集关系 for-each循环提供了一种遍历对象集合的简单方法在for-each循环中可以指定需要遍历的对象集合以及用来接收集合中每个元素的变量其语法如下 for用来接收集合中元素的变量需要遍历的对象集合 如果要使用for-each循环遍历对象集合那么包含该对象集合的类必须实现接口Java.util.Iterable<T> Java程序1和Java程序2分别给出了类OrderList和方法statistic的Java代码 [Java程序1] importjava.util.* publicclassOrderList1 privateArrayList<Order>orders publicOrderLiSt this.orders=newArrayList<Order> publicvoidaddOrderOrderorder this.orders.addorder publicIterator<Order>iterator return2 publicintgetNumberoforders returnthis.orders.slze [Java程序2] importJava.util.* publicclassSalesSystem privateProductListcatalog privateOrderListsales privatestaticPrintWriterstdOut=newPrintWriterSystem.outtrue publicvoidstatistiC forProductproduct3 intnumber=0 forOrderorder4 for5order ifproduct.equalsitem.getProduct number+=item.getQuantity stdOut.printInproduct.getCode+"" +product.getDescription+"" +number+""+number*product.getPrice //其余的方法未列出 5处填
阅读以下说明和C++代码将应填入n处的字句写在对应栏内 [说明] 在一公文处理系统中开发者定义了一个公文类OfficeDoc其中定义了公文具有的属性和处理公文的相应方法当公文类的内容或状态发生变化时关联此OfficeDoc类对象的相应的DocExplorer对象都要更新其自身的状态一个OfficeDoc对象能够关联一组DocExplorer对象当OfficeDoc对象的内容或状态发生变化时所有与之相关联的DocExplorer对象都将得到通知这种应用被称为观察者模式以下代码写在一个C++源文件中能够正确编译通过 [C++代码] #include<iostream> constOBS_MAXNUM=20//最多与OfficeDoc对象相关联的DocExplorer对象个数 1 classDocExplorer//关注OfficeDoc公文对象的类 public DocExplorer2*doc//构造函数 3voidupdateOfficeDoc*doc=0//更新自身状态的函数 //其他相关属性和方法省略 classOfficeDoc//公文类 private DocExplorer*myObs[OBS_MAXNUM] //关注此公文类的DocExplorer类对象指针数组 intindex//与OfficeDoc对象关联的DocExplorer对象的个数 public OffiCeDoc index=0 voidattachDocExplorer*o //将一DocExplorer对象与OfficeDoc对象相关联 ifindex>=OBS_MAXNUM||o==NULLreturn forintloop=0loop<indexloop++ ifmyOhs[100p]==oreturn myObs[index]=o index++ voiddetachDocExplorer*o //解除某DocExplorer对象与OfficeDoc对象的关联 ifo==NULLreturn forintloop=0loop<indexloop++ ifmyObs[100p]==o ifloop<=index-2myObs[100p]=myObs[index-1] myObs[index-1]=NULL index-- break private voidnotifyObs//通知所有的DocExplorer对象更改自身状态 forintloop=0loop<indexloop++ myObs[loop]->4//DocExplorer对象更新自身状态 //其他公文类的相关属性和方法 DocExplorerDocExplorerOfficeDoc*doc//DocExplorer类对象的构造函数 doc->5//将此DocExplorer对象与doc对象相关联 3处填
阅读以下说明和Java代码将应填入n处的字句写在对应栏内 [说明] 在一公文处理系统中开发者定义了一个公文类OfficeDoc其中定义了公文具有的属性和处理公文的相应方法当公文类的内容或状态发生变化时关联此OfficeDoc类对象的相应的DocExplorer对象都要更新其自身的状态一个OfficeDoc对象能够关联一组DocExplorer对象当OfficeDoc对象的内容或状态发生变化时所有与之相关联的DocExplorer对象都将得到通知这种应用被称为观察者模式以下代码写在一个Java源文件中能够正确编译通过 [Java代码] //Subject.jav__件 publicinterfaceSubject publicvoidattachObserverDocExplorer publicvoiddetachObserverDocExplorer voidnotifyObservers //Observer.Jav__件 publicinterfaceObsever voidupdate1 //OfficeDoc.Jav__件 importJava.util.* publicclassOfficeDocimplementsSubject//OfficeDoc类实现Subject接口 privateVectorObserverVector=newJava.util.Vector //存储与OfficeDoc相关联的DocExplorer对象 publicvoidattachObseverobserver //将某DocExplorer对象与OfficeDoc相关联 ObserverVector.addElementobserver publicvoiddetachObserverobserver //解除某DocExplorer对象与OfficeDoc的关联关系 ObsprverVector.removeElementobserver publicvoidnotifyobserVers //当OfficeDoc对象状态已发生变化时通知所有的DocExplorer对象 Enumerationenumeration=2 whileenumeration.hasMoreElements Observerenumeration.nextElement.3 publicEnumerationObservers returnObserverVector.elements //其他公文类的属性和方法省略 //DocExplorer.jav__件 publicclassDocExplorerimplements4 publicvoidupdate5 //更新DocExplorer自身的状态代码省略 2处填
关于软件著作权产生的时间表述正确的是______
阅读以下说明和C++代码将应填入n处的字句写在对应栏内 [说明] 在一公文处理系统中开发者定义了一个公文类OfficeDoc其中定义了公文具有的属性和处理公文的相应方法当公文类的内容或状态发生变化时关联此OfficeDoc类对象的相应的DocExplorer对象都要更新其自身的状态一个OfficeDoc对象能够关联一组DocExplorer对象当OfficeDoc对象的内容或状态发生变化时所有与之相关联的DocExplorer对象都将得到通知这种应用被称为观察者模式以下代码写在一个C++源文件中能够正确编译通过 [C++代码] #include<iostream> constOBS_MAXNUM=20//最多与OfficeDoc对象相关联的DocExplorer对象个数 1 classDocExplorer//关注OfficeDoc公文对象的类 public DocExplorer2*doc//构造函数 3voidupdateOfficeDoc*doc=0//更新自身状态的函数 //其他相关属性和方法省略 classOfficeDoc//公文类 private DocExplorer*myObs[OBS_MAXNUM] //关注此公文类的DocExplorer类对象指针数组 intindex//与OfficeDoc对象关联的DocExplorer对象的个数 public OffiCeDoc index=0 voidattachDocExplorer*o //将一DocExplorer对象与OfficeDoc对象相关联 ifindex>=OBS_MAXNUM||o==NULLreturn forintloop=0loop<indexloop++ ifmyOhs[100p]==oreturn myObs[index]=o index++ voiddetachDocExplorer*o //解除某DocExplorer对象与OfficeDoc对象的关联 ifo==NULLreturn forintloop=0loop<indexloop++ ifmyObs[100p]==o ifloop<=index-2myObs[100p]=myObs[index-1] myObs[index-1]=NULL index-- break private voidnotifyObs//通知所有的DocExplorer对象更改自身状态 forintloop=0loop<indexloop++ myObs[loop]->4//DocExplorer对象更新自身状态 //其他公文类的相关属性和方法 DocExplorerDocExplorerOfficeDoc*doc//DocExplorer类对象的构造函数 doc->5//将此DocExplorer对象与doc对象相关联 5处填
阅读以下说明和C++代码将应填入n处的字句写在对应栏内 [说明] 在一公文处理系统中开发者定义了一个公文类OfficeDoc其中定义了公文具有的属性和处理公文的相应方法当公文类的内容或状态发生变化时关联此OfficeDoc类对象的相应的DocExplorer对象都要更新其自身的状态一个OfficeDoc对象能够关联一组DocExplorer对象当OfficeDoc对象的内容或状态发生变化时所有与之相关联的DocExplorer对象都将得到通知这种应用被称为观察者模式以下代码写在一个C++源文件中能够正确编译通过 [C++代码] #include<iostream> constOBS_MAXNUM=20//最多与OfficeDoc对象相关联的DocExplorer对象个数 1 classDocExplorer//关注OfficeDoc公文对象的类 public DocExplorer2*doc//构造函数 3voidupdateOfficeDoc*doc=0//更新自身状态的函数 //其他相关属性和方法省略 classOfficeDoc//公文类 private DocExplorer*myObs[OBS_MAXNUM] //关注此公文类的DocExplorer类对象指针数组 intindex//与OfficeDoc对象关联的DocExplorer对象的个数 public OffiCeDoc index=0 voidattachDocExplorer*o //将一DocExplorer对象与OfficeDoc对象相关联 ifindex>=OBS_MAXNUM||o==NULLreturn forintloop=0loop<indexloop++ ifmyOhs[100p]==oreturn myObs[index]=o index++ voiddetachDocExplorer*o //解除某DocExplorer对象与OfficeDoc对象的关联 ifo==NULLreturn forintloop=0loop<indexloop++ ifmyObs[100p]==o ifloop<=index-2myObs[100p]=myObs[index-1] myObs[index-1]=NULL index-- break private voidnotifyObs//通知所有的DocExplorer对象更改自身状态 forintloop=0loop<indexloop++ myObs[loop]->4//DocExplorer对象更新自身状态 //其他公文类的相关属性和方法 DocExplorerDocExplorerOfficeDoc*doc//DocExplorer类对象的构造函数 doc->5//将此DocExplorer对象与doc对象相关联 1处填
阅读以下说明和C代码将应填入n处的字句写在对应栏内 [说明] 在一公文处理系统中开发者定义了一个公文结构OfficeDoc其中定义了公文应该具有的属性当公文类的内容或状态发生变化时与之相关联的DocExplorer结构的值都需要发生改变一个OfficeDoc结构能够关联一组DocExplorer结构当OfficeDoc结构的内容或状态发生变化时所有与之相关联的DocExplorer结构都将被更新这种应用被称为观察者模式以下代码采用C语言实现能够正确编译通过 [C代码] #include<stdio.h> #defineOBS_MAXNUM20/*一个OfficeDoc变量最多能够关联的DocExplorer变量的个数*/ typedefvoid1strucOfficeDoc*structDocExplorer* StruetDocExplorer funcupdate/*DocExplorer结构采用的更新函数*/ /*其他的结构字段省略*/ structOffiCeDoc 2myObs[OBS_MAXNUM] /*存储所有与OfficeDoc相关联的DocExplorer结构指针*/ intindex/*与OfficeDoc结构变量相关联的DocExplorer结构变量的个数*/ voidattachstructOfficeDoc*docstructDocExplorer*ob /*关联Obersver结构ob与OfficeDoc结构doc*/ intloop=0 ifdoc->index>=OBS_MAXNUM||ob==NULLreturn forloop=0loop<doc->indexloop++ ifdoc->myObs[loop]==obreturn doc->myObs[doc->index]=ob doc->index++ voiddetachStructOfficeDoc*docstructDocExplorer*ob /*解除doc结构与ob结构间的关系*/ intloop ifob==NULLreturn forloop=0loop<doc->indexloop++ ifdoc->myObs[loop]==ob ifloop<=doc->index-2 doc->myObs[loop]=doc->myObs[3] doc->myObs[doc->index-1]=NULL doc->index-- breack voidupdatelStructOfficeDoc*docstructDocExplorer*ob /*更新ob结构的值更新代码省略*/ voidupdate2structOfficeDoc*docstructDocExplorer*ob /*更新ob结构的值更新代码省略*/ voidnotifyObsstructOfficeDoc*doc /*当doc结构的值发生变化时通知与之关联的所有DocExplorer结构变量*/ intloop forloop=0loop<doc->indexloop++ doc->myObs[loop]->update4 voidmsin structOfficeDocdoc/*定义一个OfficeDoc变量*/ structDocExplorerexplorer1explorer2/*定义两个DocExplorer变量*/ /*初始化与OfficeDoc变量相关的DocExplorer变量个数为0*/ doc.index=0 explorer1.update=update1/*设置explorer1变量的更新函数*/ explorer2.update=update2/*设置explorer2变量的更新函数*/ attach&doc&explorer1/*关联explorer1与doc对象*/ attach&doc&explorer2/*关联explorer2与doc对象*/ /*其他代码省略*/ 5/*通知与OfficeDoc相关的所有DocExplorer变量*/ return 3处填
我国著作权法中______指同一概念
程序员甲与同事乙在乙家探讨甲近期编写的程序甲表示对该程序极不满意要弃之重写并将程序手稿扔到乙家垃圾桶后来乙将甲这一程序稍加修改并署乙发表以下说法正确的是______
阅读以下说明和C++代码将应填入n处的字句写在对应栏内 [说明] 某绘图系统存在PointLineSquare三种图元它们具有Shape接口图元的类图关系如图18-1所示现要将Circle图元加入此绘图系统以实现功能扩充已知某第三方库已经提供了XCircle类且完全满足系统新增的Circle图元所需的功能但XCircle不是由Shape派生而来的它提供的接口不能被系统直接使用代码18.1既使用了XCircle又遵循了Shape规定的接口既避免了从头开发一个新的Circle类又可以不修改绘图系统中已经定义的接口代码18.2根据用户指定的参数生成特定的图元实例并对之进行显示操作 绘图系统定义的接口与XCircle提供的显示接口及其功能如表18-1所示 [代码18.1] classCirclepublic1 private 2m_circle public voiddisplay m_circle.3 [代码18.2] classFactory public 4getShapeInstanceinttype//生成特定类实例 switchtype case0returnnewpoint case1returnnewRectangle case2returnnewline case3returnnewCircle defaultreturnNULL voidmainintargcchar*argv[] ifargc!=2 cout<<"errorparameters!"<<end1 return inttype=atoiargv[1] Factoryfactory Shape*s S=factory.5 ifs=NULL cout<<"Errorgettheinstance!"<<end1 return C->display 6 return 5处填
阅读以下说明和C++代码将应填入n处的字句写在对应栏内 [说明] 传输门是传输系统中的重要装置传输门具有Open打开Closed已关闭Opening正在打开StayOpen保持打开Closing正在关闭5种状态触发传输门状态转换的事件有crickcomplete和timeout三种事件与其相应的状态转换如图18-5所示 下面的“C++代码1”与“C++代码2”分别用两种不同的设计思路对传输门进行状态模拟请填补代码中的空缺 [C++代码1] constintCLOSED=1constintOPENING=2 constintOPEN=3constintCLOSZNG=4 constintSTAYOPEN=5//定义状态变量用不同整数表示不同状态 classDoor private intstate//传输门当前状态 voidsetStateintstatethis->state=state//设置当前状态 public DoorstateCLOSED voidgetstate//根据当前状态输出相应的字符串 switchstate caseOPENING://cout<<""OPENING""<<end1break caseCLOSED://cout<<"CLOSED"<<end1break caseOPENcout<<"OPEN"<<end1break caseCLOSZNG://cout<<"CLOSZNG"<<end1break caseSTAYOPENcout<<"STAYOPEN"<<end1break voidcliok//发生click事件时进行状态转换 if1setStsateOPENING elseif2setStateCLOSZNG elseif3aetStateSTAYOPEN voidtimeout//发生timeout事件时进行状态转换 ifstate==OPENsetStateCLOSZNG voidcomplete//发生complete事件时进行状态转换 ifstate==OPENINGsetStateOPEN elseifstate==CLOSZNGsetStateCLOSED intmain DooraDoor aDoor.getStateaDoor.clickaDoor.getStaLeaDoor.Complete aDoor.getStateaDoor.clickaDoor.getStateaDoor.click aDoor.getStatereturn0 [C++代码2] ClassDoor public Doorstate*CLOSED*OPENING*0PEN*CLOSZNG*STAYOPEN*state Door virtual~Door……//释放申请的内存此处代码省略 voidsetStateDoorstate*statethis->state=state voidgetState //此处代码省略本方法输出状态字符串 //例如当前状态为CLOSED时输出字符串为"CLOSED" voidC1ick voidtimeout voidcomplete DoorDoor CLOSED=newDoorClosedthisOPENING=newDooropeningthis OPEN=newDoorOpenthisCLOSING=newDoorClosingthis STAYOPEN=newDoorStayOpenthisstate=CLOSED:// voidDoorC1ick4 voidDoortimeout5 voidDoorcomplete6 classDoorState//定义一个抽象的状态它是所有状态类的基类 protectedDoor*door public DoorStateDoor*doorthis->door=door virtual~DoorStatevoid virtualvoidclick virtualvoidcomplete virtualvoidtimeout classDoorClosedPubliCDoorState//定义一个基本的Closed状态 public DoorClosedDoor*doorDoorStatedoor Virtual~DoorClosed voidclick voidDoorClosedclick7 intmain DooraDoor aDoor.getStateaDoor.clickaDoor.getStateaDoor.complete aDoor.getStateaDoor.timeoutaDoor.getStatereturn0 2处填
利用______可以对软件的技术信息经营信息提供保护
阅读以下说明和C代码将应填入n处的字句写在对应栏内 [说明] 在一公文处理系统中开发者定义了一个公文结构OfficeDoc其中定义了公文应该具有的属性当公文类的内容或状态发生变化时与之相关联的DocExplorer结构的值都需要发生改变一个OfficeDoc结构能够关联一组DocExplorer结构当OfficeDoc结构的内容或状态发生变化时所有与之相关联的DocExplorer结构都将被更新这种应用被称为观察者模式以下代码采用C语言实现能够正确编译通过 [C代码] #include<stdio.h> #defineOBS_MAXNUM20/*一个OfficeDoc变量最多能够关联的DocExplorer变量的个数*/ typedefvoid1strucOfficeDoc*structDocExplorer* StruetDocExplorer funcupdate/*DocExplorer结构采用的更新函数*/ /*其他的结构字段省略*/ structOffiCeDoc 2myObs[OBS_MAXNUM] /*存储所有与OfficeDoc相关联的DocExplorer结构指针*/ intindex/*与OfficeDoc结构变量相关联的DocExplorer结构变量的个数*/ voidattachstructOfficeDoc*docstructDocExplorer*ob /*关联Obersver结构ob与OfficeDoc结构doc*/ intloop=0 ifdoc->index>=OBS_MAXNUM||ob==NULLreturn forloop=0loop<doc->indexloop++ ifdoc->myObs[loop]==obreturn doc->myObs[doc->index]=ob doc->index++ voiddetachStructOfficeDoc*docstructDocExplorer*ob /*解除doc结构与ob结构间的关系*/ intloop ifob==NULLreturn forloop=0loop<doc->indexloop++ ifdoc->myObs[loop]==ob ifloop<=doc->index-2 doc->myObs[loop]=doc->myObs[3] doc->myObs[doc->index-1]=NULL doc->index-- breack voidupdatelStructOfficeDoc*docstructDocExplorer*ob /*更新ob结构的值更新代码省略*/ voidupdate2structOfficeDoc*docstructDocExplorer*ob /*更新ob结构的值更新代码省略*/ voidnotifyObsstructOfficeDoc*doc /*当doc结构的值发生变化时通知与之关联的所有DocExplorer结构变量*/ intloop forloop=0loop<doc->indexloop++ doc->myObs[loop]->update4 voidmsin structOfficeDocdoc/*定义一个OfficeDoc变量*/ structDocExplorerexplorer1explorer2/*定义两个DocExplorer变量*/ /*初始化与OfficeDoc变量相关的DocExplorer变量个数为0*/ doc.index=0 explorer1.update=update1/*设置explorer1变量的更新函数*/ explorer2.update=update2/*设置explorer2变量的更新函数*/ attach&doc&explorer1/*关联explorer1与doc对象*/ attach&doc&explorer2/*关联explorer2与doc对象*/ /*其他代码省略*/ 5/*通知与OfficeDoc相关的所有DocExplorer变量*/ return 1处填
李某在电脑与编程杂志上看到张某发表的一组程序颇为欣赏就复印了一百份作为程序设计辅导材料发给了学生李某又将这组程序逐段加以评析写成评论文章后投到电脑编程技巧杂志上发表李某的行为______
阅读以下说明和C代码将应填入n处的字句写在对应栏内 [说明] 在一公文处理系统中开发者定义了一个公文结构OfficeDoc其中定义了公文应该具有的属性当公文类的内容或状态发生变化时与之相关联的DocExplorer结构的值都需要发生改变一个OfficeDoc结构能够关联一组DocExplorer结构当OfficeDoc结构的内容或状态发生变化时所有与之相关联的DocExplorer结构都将被更新这种应用被称为观察者模式以下代码采用C语言实现能够正确编译通过 [C代码] #include<stdio.h> #defineOBS_MAXNUM20/*一个OfficeDoc变量最多能够关联的DocExplorer变量的个数*/ typedefvoid1strucOfficeDoc*structDocExplorer* StruetDocExplorer funcupdate/*DocExplorer结构采用的更新函数*/ /*其他的结构字段省略*/ structOffiCeDoc 2myObs[OBS_MAXNUM] /*存储所有与OfficeDoc相关联的DocExplorer结构指针*/ intindex/*与OfficeDoc结构变量相关联的DocExplorer结构变量的个数*/ voidattachstructOfficeDoc*docstructDocExplorer*ob /*关联Obersver结构ob与OfficeDoc结构doc*/ intloop=0 ifdoc->index>=OBS_MAXNUM||ob==NULLreturn forloop=0loop<doc->indexloop++ ifdoc->myObs[loop]==obreturn doc->myObs[doc->index]=ob doc->index++ voiddetachStructOfficeDoc*docstructDocExplorer*ob /*解除doc结构与ob结构间的关系*/ intloop ifob==NULLreturn forloop=0loop<doc->indexloop++ ifdoc->myObs[loop]==ob ifloop<=doc->index-2 doc->myObs[loop]=doc->myObs[3] doc->myObs[doc->index-1]=NULL doc->index-- breack voidupdatelStructOfficeDoc*docstructDocExplorer*ob /*更新ob结构的值更新代码省略*/ voidupdate2structOfficeDoc*docstructDocExplorer*ob /*更新ob结构的值更新代码省略*/ voidnotifyObsstructOfficeDoc*doc /*当doc结构的值发生变化时通知与之关联的所有DocExplorer结构变量*/ intloop forloop=0loop<doc->indexloop++ doc->myObs[loop]->update4 voidmsin structOfficeDocdoc/*定义一个OfficeDoc变量*/ structDocExplorerexplorer1explorer2/*定义两个DocExplorer变量*/ /*初始化与OfficeDoc变量相关的DocExplorer变量个数为0*/ doc.index=0 explorer1.update=update1/*设置explorer1变量的更新函数*/ explorer2.update=update2/*设置explorer2变量的更新函数*/ attach&doc&explorer1/*关联explorer1与doc对象*/ attach&doc&explorer2/*关联explorer2与doc对象*/ /*其他代码省略*/ 5/*通知与OfficeDoc相关的所有DocExplorer变量*/ return 5处填
阅读以下说明和C++代码将应填入n处的字句写在对应栏内 [说明] 某绘图系统存在PointLineSquare三种图元它们具有Shape接口图元的类图关系如图18-1所示现要将Circle图元加入此绘图系统以实现功能扩充已知某第三方库已经提供了XCircle类且完全满足系统新增的Circle图元所需的功能但XCircle不是由Shape派生而来的它提供的接口不能被系统直接使用代码18.1既使用了XCircle又遵循了Shape规定的接口既避免了从头开发一个新的Circle类又可以不修改绘图系统中已经定义的接口代码18.2根据用户指定的参数生成特定的图元实例并对之进行显示操作 绘图系统定义的接口与XCircle提供的显示接口及其功能如表18-1所示 [代码18.1] classCirclepublic1 private 2m_circle public voiddisplay m_circle.3 [代码18.2] classFactory public 4getShapeInstanceinttype//生成特定类实例 switchtype case0returnnewpoint case1returnnewRectangle case2returnnewline case3returnnewCircle defaultreturnNULL voidmainintargcchar*argv[] ifargc!=2 cout<<"errorparameters!"<<end1 return inttype=atoiargv[1] Factoryfactory Shape*s S=factory.5 ifs=NULL cout<<"Errorgettheinstance!"<<end1 return C->display 6 return 3处填
下列关于软件著作权中翻译权的叙述不正确的是翻译权是指______的权利
阅读以下说明和C++代码将应填入n处的字句写在对应栏内 [说明] 某绘图系统存在PointLineSquare三种图元它们具有Shape接口图元的类图关系如图18-1所示现要将Circle图元加入此绘图系统以实现功能扩充已知某第三方库已经提供了XCircle类且完全满足系统新增的Circle图元所需的功能但XCircle不是由Shape派生而来的它提供的接口不能被系统直接使用代码18.1既使用了XCircle又遵循了Shape规定的接口既避免了从头开发一个新的Circle类又可以不修改绘图系统中已经定义的接口代码18.2根据用户指定的参数生成特定的图元实例并对之进行显示操作 绘图系统定义的接口与XCircle提供的显示接口及其功能如表18-1所示 [代码18.1] classCirclepublic1 private 2m_circle public voiddisplay m_circle.3 [代码18.2] classFactory public 4getShapeInstanceinttype//生成特定类实例 switchtype case0returnnewpoint case1returnnewRectangle case2returnnewline case3returnnewCircle defaultreturnNULL voidmainintargcchar*argv[] ifargc!=2 cout<<"errorparameters!"<<end1 return inttype=atoiargv[1] Factoryfactory Shape*s S=factory.5 ifs=NULL cout<<"Errorgettheinstance!"<<end1 return C->display 6 return 5处填
阅读以下说明和C++代码将应填入n处的字句写在对应栏内 [说明] 传输门是传输系统中的重要装置传输门具有Open打开Closed已关闭Opening正在打开StayOpen保持打开Closing正在关闭5种状态触发传输门状态转换的事件有crickcomplete和timeout三种事件与其相应的状态转换如图18-5所示 下面的“C++代码1”与“C++代码2”分别用两种不同的设计思路对传输门进行状态模拟请填补代码中的空缺 [C++代码1] constintCLOSED=1constintOPENING=2 constintOPEN=3constintCLOSZNG=4 constintSTAYOPEN=5//定义状态变量用不同整数表示不同状态 classDoor private intstate//传输门当前状态 voidsetStateintstatethis->state=state//设置当前状态 public DoorstateCLOSED voidgetstate//根据当前状态输出相应的字符串 switchstate caseOPENING://cout<<""OPENING""<<end1break caseCLOSED://cout<<"CLOSED"<<end1break caseOPENcout<<"OPEN"<<end1break caseCLOSZNG://cout<<"CLOSZNG"<<end1break caseSTAYOPENcout<<"STAYOPEN"<<end1break voidcliok//发生click事件时进行状态转换 if1setStsateOPENING elseif2setStateCLOSZNG elseif3aetStateSTAYOPEN voidtimeout//发生timeout事件时进行状态转换 ifstate==OPENsetStateCLOSZNG voidcomplete//发生complete事件时进行状态转换 ifstate==OPENINGsetStateOPEN elseifstate==CLOSZNGsetStateCLOSED intmain DooraDoor aDoor.getStateaDoor.clickaDoor.getStaLeaDoor.Complete aDoor.getStateaDoor.clickaDoor.getStateaDoor.click aDoor.getStatereturn0 [C++代码2] ClassDoor public Doorstate*CLOSED*OPENING*0PEN*CLOSZNG*STAYOPEN*state Door virtual~Door……//释放申请的内存此处代码省略 voidsetStateDoorstate*statethis->state=state voidgetState //此处代码省略本方法输出状态字符串 //例如当前状态为CLOSED时输出字符串为"CLOSED" voidC1ick voidtimeout voidcomplete DoorDoor CLOSED=newDoorClosedthisOPENING=newDooropeningthis OPEN=newDoorOpenthisCLOSING=newDoorClosingthis STAYOPEN=newDoorStayOpenthisstate=CLOSED:// voidDoorC1ick4 voidDoortimeout5 voidDoorcomplete6 classDoorState//定义一个抽象的状态它是所有状态类的基类 protectedDoor*door public DoorStateDoor*doorthis->door=door virtual~DoorStatevoid virtualvoidclick virtualvoidcomplete virtualvoidtimeout classDoorClosedPubliCDoorState//定义一个基本的Closed状态 public DoorClosedDoor*doorDoorStatedoor Virtual~DoorClosed voidclick voidDoorClosedclick7 intmain DooraDoor aDoor.getStateaDoor.clickaDoor.getStateaDoor.complete aDoor.getStateaDoor.timeoutaDoor.getStatereturn0 4处填
阅读下列说明图和C++代码将应填入n处的字句写在对应栏内 [说明] 某订单管理系统的部分UML类图如图18-3所示 在图18-3中Product表示产品ProductList表示产品目录Order表示产品订单OrderItem表示产品订单中的一个条目OrderList表示订单列表SalesSystem提供订单管理系统的操作接口 请完善类Order的成员函数getOrderedAmount和类SalesSystem的statistic方法各个类的属性及部分方法定义参见下面的C++代码 [C++代码] classProduct//产品类 private stringpid//产品识别码 stringdescription//产品描述 doubleprice//产品单价 public voidsetProductPricedoubleprice//设置产品单价 stringgetProductld//获取产品识别码 stringgetProductDescription//获取产品描述 doublegetProductPrice//获取产品单价 //其他成员省略 classProductList//产品列表类 private vector<Product>products public ProductList ProductgetProductByIndexinti//获得产品列表中的第i件产品 voidaddProductProductt//在产品列表中加入一件产品 Product*getProductBylDstringpid//获得识别码为pid的产品指针 unsignedintgetProductAmount//获得产品列表中的产品数量 classOrderItem//订单条目类 private Product*productPtr//指向被订购产品的指针 intquantity//订购数量 public OrderItemProduct*int Product*getProductptr//获取指向被订购产品的指针 intgetQuantity//获取被订购产品的数量 classOrder//订单类 private unsignedintorderid//订单识别号 vector<OrderItem>items//订单内容订单项 public Orderunsignedintorderid //获得识别码为tid的产品在当前订单中被订购的数量 intgetOrderedAmountstringtid voidadditemProduct*productPtrunsignedintn//在订单中增加一个项 //其他成员省略 classOrderList//订单列表类 prtvate vector<Order>orders public OrderList //Begin返回指向订单列表第一个元素的迭代器指针 virtualvector<Order>iteratorOrderListBegin //End0返回指向订单列表最后一个元素之后的迭代器指向一个不存在的元素 virtualvector<Order>iteratorOrderListEnd voidaddOrderOrdert//在订单列表中加入一份订单 //其他成员省略 classSalesSystem private ProductListcatalog//产品目录 OrderListsales//订单列表 Public SalesSystem voidstatistic//统计所有产品的订购情况 //其他成员省略 //在订单中查找识别码为tid的产品的订购数量若该产品没有被订购则返回0 intOrdergetOrderedAmountstringtid forintk=0k<items.sizek++ if1==tid return2 return0 //方法statistic依次统计产品目录中每个产品的订购总量 //并打印输出每个产品的识别码描述订购总量和订购金额 voidSalesSystemstatistic unsignedintktordered_qty=0 vector<Order>iteratoritProductp cout<<"产品识别码/t描述/t/t订购数量/t金额"<<end1 fork=0k<catalog.getProductAtnountk++//遍历产品列表 p=3//从产品列表中取得一件产品信息存入变量p ordered_qty=0 //通过迭代器变量it遍历订单列表中的每一份订单 forit=sales.Begin4it++ //根据产品识别码获得产品P在当前订单中被订购的数量 t=5p.getProductId ordered_qty+=t cout<<p.getProductId<<"/t/t"<<p.getProductDescription<<"/t/t" cout<<ordered_qty<<"/t/t"<<p.getProductPrice*ordered_qty<<end1 2处填
阅读以下说明和C++代码将应填入n处的字句写在对应栏内 [说明] 某绘图系统存在PointLineSquare三种图元它们具有Shape接口图元的类图关系如图18-1所示现要将Circle图元加入此绘图系统以实现功能扩充已知某第三方库已经提供了XCircle类且完全满足系统新增的Circle图元所需的功能但XCircle不是由Shape派生而来的它提供的接口不能被系统直接使用代码18.1既使用了XCircle又遵循了Shape规定的接口既避免了从头开发一个新的Circle类又可以不修改绘图系统中已经定义的接口代码18.2根据用户指定的参数生成特定的图元实例并对之进行显示操作 绘图系统定义的接口与XCircle提供的显示接口及其功能如表18-1所示 [代码18.1] classCirclepublic1 private 2m_circle public voiddisplay m_circle.3 [代码18.2] classFactory public 4getShapeInstanceinttype//生成特定类实例 switchtype case0returnnewpoint case1returnnewRectangle case2returnnewline case3returnnewCircle defaultreturnNULL voidmainintargcchar*argv[] ifargc!=2 cout<<"errorparameters!"<<end1 return inttype=atoiargv[1] Factoryfactory Shape*s S=factory.5 ifs=NULL cout<<"Errorgettheinstance!"<<end1 return C->display 6 return 1处填
阅读以下说明和C++代码将应填入n处的字句写在对应栏内 [说明] 某绘图系统存在PointLineSquare三种图元它们具有Shape接口图元的类图关系如图18-1所示现要将Circle图元加入此绘图系统以实现功能扩充已知某第三方库已经提供了XCircle类且完全满足系统新增的Circle图元所需的功能但XCircle不是由Shape派生而来的它提供的接口不能被系统直接使用代码18.1既使用了XCircle又遵循了Shape规定的接口既避免了从头开发一个新的Circle类又可以不修改绘图系统中已经定义的接口代码18.2根据用户指定的参数生成特定的图元实例并对之进行显示操作 绘图系统定义的接口与XCircle提供的显示接口及其功能如表18-1所示 [代码18.1] classCirclepublic1 private 2m_circle public voiddisplay m_circle.3 [代码18.2] classFactory public 4getShapeInstanceinttype//生成特定类实例 switchtype case0returnnewpoint case1returnnewRectangle case2returnnewline case3returnnewCircle defaultreturnNULL voidmainintargcchar*argv[] ifargc!=2 cout<<"errorparameters!"<<end1 return inttype=atoiargv[1] Factoryfactory Shape*s S=factory.5 ifs=NULL cout<<"Errorgettheinstance!"<<end1 return C->display 6 return 3处填
某软件公司研发的财务软件产品在行业中技术领先具有很强的市场竞争优势为确保其软件产品的技术领先及市场竞争优势公司采取相应的保密措施以防止软件技术秘密的外泄并且还为该软件产品冠以用友商标但未进行商标注册在此情况下公司仅享有该软件产品的______
某软件设计师自行将他人使用C语言开发的控制程序转换为机器语言形式的控制程序并固化在芯片中该软件设计师的行为______
阅读以下说明和Java代码将应填入n处的字句写在对应栏内 [说明] 在一公文处理系统中开发者定义了一个公文类OfficeDoc其中定义了公文具有的属性和处理公文的相应方法当公文类的内容或状态发生变化时关联此OfficeDoc类对象的相应的DocExplorer对象都要更新其自身的状态一个OfficeDoc对象能够关联一组DocExplorer对象当OfficeDoc对象的内容或状态发生变化时所有与之相关联的DocExplorer对象都将得到通知这种应用被称为观察者模式以下代码写在一个Java源文件中能够正确编译通过 [Java代码] //Subject.jav__件 publicinterfaceSubject publicvoidattachObserverDocExplorer publicvoiddetachObserverDocExplorer voidnotifyObservers //Observer.Jav__件 publicinterfaceObsever voidupdate1 //OfficeDoc.Jav__件 importJava.util.* publicclassOfficeDocimplementsSubject//OfficeDoc类实现Subject接口 privateVectorObserverVector=newJava.util.Vector //存储与OfficeDoc相关联的DocExplorer对象 publicvoidattachObseverobserver //将某DocExplorer对象与OfficeDoc相关联 ObserverVector.addElementobserver publicvoiddetachObserverobserver //解除某DocExplorer对象与OfficeDoc的关联关系 ObsprverVector.removeElementobserver publicvoidnotifyobserVers //当OfficeDoc对象状态已发生变化时通知所有的DocExplorer对象 Enumerationenumeration=2 whileenumeration.hasMoreElements Observerenumeration.nextElement.3 publicEnumerationObservers returnObserverVector.elements //其他公文类的属性和方法省略 //DocExplorer.jav__件 publicclassDocExplorerimplements4 publicvoidupdate5 //更新DocExplorer自身的状态代码省略 4处填
阅读以下说明和C++代码将应填入n处的字句写在对应栏内 [说明] 某绘图系统存在PointLineSquare三种图元它们具有Shape接口图元的类图关系如图18-1所示现要将Circle图元加入此绘图系统以实现功能扩充已知某第三方库已经提供了XCircle类且完全满足系统新增的Circle图元所需的功能但XCircle不是由Shape派生而来的它提供的接口不能被系统直接使用代码18.1既使用了XCircle又遵循了Shape规定的接口既避免了从头开发一个新的Circle类又可以不修改绘图系统中已经定义的接口代码18.2根据用户指定的参数生成特定的图元实例并对之进行显示操作 绘图系统定义的接口与XCircle提供的显示接口及其功能如表18-1所示 [代码18.1] classCirclepublic1 private 2m_circle public voiddisplay m_circle.3 [代码18.2] classFactory public 4getShapeInstanceinttype//生成特定类实例 switchtype case0returnnewpoint case1returnnewRectangle case2returnnewline case3returnnewCircle defaultreturnNULL voidmainintargcchar*argv[] ifargc!=2 cout<<"errorparameters!"<<end1 return inttype=atoiargv[1] Factoryfactory Shape*s S=factory.5 ifs=NULL cout<<"Errorgettheinstance!"<<end1 return C->display 6 return 1处填
阅读下列说明图及Java程序将应填入n处的字句写在对应栏内 [说明] 某订单管理系统的部分UML类图如图18-4所示 在图18-4中Product表示产品ProductList表示所销售产品的列表Order表示产品订单OrderItem表示产品订单中的一个条目OrderList表示订单列表SalesSystem提供 订单管理系统的操作接口各个类的部分属性和方法说明如表18-3所示 可以使用类Java.util.ArrayList<E>来实现对象的聚集关系如图18-4中OrderList与Order之间的聚集关系 for-each循环提供了一种遍历对象集合的简单方法在for-each循环中可以指定需要遍历的对象集合以及用来接收集合中每个元素的变量其语法如下 for用来接收集合中元素的变量需要遍历的对象集合 如果要使用for-each循环遍历对象集合那么包含该对象集合的类必须实现接口Java.util.Iterable<T> Java程序1和Java程序2分别给出了类OrderList和方法statistic的Java代码 [Java程序1] importjava.util.* publicclassOrderList1 privateArrayList<Order>orders publicOrderLiSt this.orders=newArrayList<Order> publicvoidaddOrderOrderorder this.orders.addorder publicIterator<Order>iterator return2 publicintgetNumberoforders returnthis.orders.slze [Java程序2] importJava.util.* publicclassSalesSystem privateProductListcatalog privateOrderListsales privatestaticPrintWriterstdOut=newPrintWriterSystem.outtrue publicvoidstatistiC forProductproduct3 intnumber=0 forOrderorder4 for5order ifproduct.equalsitem.getProduct number+=item.getQuantity stdOut.printInproduct.getCode+"" +product.getDescription+"" +number+""+number*product.getPrice //其余的方法未列出 1处填
阅读下列说明图和C++代码将应填入n处的字句写在对应栏内 [说明] 某订单管理系统的部分UML类图如图18-3所示 在图18-3中Product表示产品ProductList表示产品目录Order表示产品订单OrderItem表示产品订单中的一个条目OrderList表示订单列表SalesSystem提供订单管理系统的操作接口 请完善类Order的成员函数getOrderedAmount和类SalesSystem的statistic方法各个类的属性及部分方法定义参见下面的C++代码 [C++代码] classProduct//产品类 private stringpid//产品识别码 stringdescription//产品描述 doubleprice//产品单价 public voidsetProductPricedoubleprice//设置产品单价 stringgetProductld//获取产品识别码 stringgetProductDescription//获取产品描述 doublegetProductPrice//获取产品单价 //其他成员省略 classProductList//产品列表类 private vector<Product>products public ProductList ProductgetProductByIndexinti//获得产品列表中的第i件产品 voidaddProductProductt//在产品列表中加入一件产品 Product*getProductBylDstringpid//获得识别码为pid的产品指针 unsignedintgetProductAmount//获得产品列表中的产品数量 classOrderItem//订单条目类 private Product*productPtr//指向被订购产品的指针 intquantity//订购数量 public OrderItemProduct*int Product*getProductptr//获取指向被订购产品的指针 intgetQuantity//获取被订购产品的数量 classOrder//订单类 private unsignedintorderid//订单识别号 vector<OrderItem>items//订单内容订单项 public Orderunsignedintorderid //获得识别码为tid的产品在当前订单中被订购的数量 intgetOrderedAmountstringtid voidadditemProduct*productPtrunsignedintn//在订单中增加一个项 //其他成员省略 classOrderList//订单列表类 prtvate vector<Order>orders public OrderList //Begin返回指向订单列表第一个元素的迭代器指针 virtualvector<Order>iteratorOrderListBegin //End0返回指向订单列表最后一个元素之后的迭代器指向一个不存在的元素 virtualvector<Order>iteratorOrderListEnd voidaddOrderOrdert//在订单列表中加入一份订单 //其他成员省略 classSalesSystem private ProductListcatalog//产品目录 OrderListsales//订单列表 Public SalesSystem voidstatistic//统计所有产品的订购情况 //其他成员省略 //在订单中查找识别码为tid的产品的订购数量若该产品没有被订购则返回0 intOrdergetOrderedAmountstringtid forintk=0k<items.sizek++ if1==tid return2 return0 //方法statistic依次统计产品目录中每个产品的订购总量 //并打印输出每个产品的识别码描述订购总量和订购金额 voidSalesSystemstatistic unsignedintktordered_qty=0 vector<Order>iteratoritProductp cout<<"产品识别码/t描述/t/t订购数量/t金额"<<end1 fork=0k<catalog.getProductAtnountk++//遍历产品列表 p=3//从产品列表中取得一件产品信息存入变量p ordered_qty=0 //通过迭代器变量it遍历订单列表中的每一份订单 forit=sales.Begin4it++ //根据产品识别码获得产品P在当前订单中被订购的数量 t=5p.getProductId ordered_qty+=t cout<<p.getProductId<<"/t/t"<<p.getProductDescription<<"/t/t" cout<<ordered_qty<<"/t/t"<<p.getProductPrice*ordered_qty<<end1 4处填
下列智力成果中能取得专利权的是______
热门题库
更多
初级程序员
中级软件设计师
初级网络管理员
初级信息处理技术员
中级数据库系统工程师
中级多媒体应用设计师
高级系统分析师
高级网络规划设计师
高级系统架构师
中级信息系统监理师
初级通信工程师
中级通信工程师
通信新技术、新业务知识
无线通信专业技术
移动通信专业技术
有线传输专业技术