1 / 9
文档名称:

2015年上半年(下午)《软件设计师》真题.docx

格式:docx   大小:373KB   页数:9页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

2015年上半年(下午)《软件设计师》真题.docx

上传人:住在山区的Jack 2022/2/14 文件大小:373 KB

下载得到文件列表

2015年上半年(下午)《软件设计师》真题.docx

相关文档

文档介绍

文档介绍:2015年上半年(下午)《软件设计师》真题
注意:图片可根据实际需要调整大小
卷面总分:6分
答题时间:240分钟
试卷题量:6题
练****次数:0次


问答作。该操作的名字和特征标识了发送Visit请求给该访问者的哪个类。这使得访问者可以确定正被访问元素的具体的类。这样访问者就可以通过该元素的特定接口直接访问它。
?ConcreteVisitor(具体访问者)实现每个有Visitor声明的操作,每个操作实现本算法的一部分,而该算法片段乃是对应于结构中对象的类。ConcreteVisitor为该算法提供了上下文并存储它的局部状态。这一状态常常在遍历该结构的过程中累积结果。
?Element(元素)定义以一个访问者为参数的Accept操作。
?ConcreteElement(具体元素)实现以一个访问者为参数的Accept操作。
?ObjectStructure(对象结构〉能枚举它的元素;可以提供一个高层的接口以允许该访问者访问它的元素;可以是一个组合或者一个集合,如一个列表或一个无序集合。
本题中类Library对应着上图中的Client,LibraryVisitor对应着Visitor,LibrarySumPrintVisitor对应着ConcreteVisitor。LibraryItemInterface对应着上图中的元素部分。下面可以结合程序代码来完成程序填空了。
(1)空中,LibraryItemInterface在本题中充当着Element的作用,其中应定义以一个访问者为参数的Accept操作。对照实现该接口的两个子类Article和Book的代码,可以得知该操作的原型是void accept(LibraryVisitor visitor)。由此可以得知,此处应该定义的是accept操作,此处填写virtual void accept(LibraryVisitor*visitor)=0。
(2)和(3)空与类LibraryVisitor有关。由前文分析已知,LibraryVisitor对应着访问者模式中的Visitor,其作用是为类LibrarySumPrintVisitor声明Visit操作。类LibrarySumPrintVisitor需要访问两种不同的元素,每种元素应该对应不同的visit操作。再结合类LibrarySumPrintVisitor的定义部分,可以得知(2)和(3)处应给出分别以Book和Article为参数的visit方法。因此(2)和(3)处分别为virtual void visit(Book*p_book)=0、virtual void visit(Article*p_article)=0。
(4)和(5)处考查的是accept接口的实现。由访问者模式的结构图可以看出,在Book和Article中accept方法的实现均为visitor->visit(this)。

,欲开发一考试系统。系统管理员能够创建包括专业方向、课程编号、任课教师等相关考试基础信息,教师和学生进行考试相关的工作。系统与考试有关的主要功能如下。
(1)考试设置。教师制定试题(题目和答案)