[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷36及答案与解析.doc
《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷36及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷36及答案与解析.doc(22页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 36及答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 阅读下列说明和数据流图,回答问题 1至问题 3。将解答填入对应栏内。【说明】 某图书馆管理系统的主要功能是图书管理和信息查询。对于初次借书的读者,系统自动生成读者号,并与读者基本信息 (姓名、单位、地址等 )一起写入读者文件。系统的图书管理功能分为四个方面:购入新书、读者借书、读者还书以及图书注销。 (1)购入新书时需要为该书编制入库单。入库单内容包括图书分类目录号、书名、作者、价格、数量和 购书日期,将这些信息写入图书目录文件并修改文件中的库存总量 (表示到目前为止
2、,购入此种图书的数量 )。 (2)读者借书时需填写借书单。借书单内容包括读者号和所借图书分类目录号。系统首先检查该读者号是否有效,若无效,则拒绝借书;若有效,则进一步检查该读者已借图书是否超过最大限制数 (假设每位读者能同时借阅的书不超过 5本 )。若已达到最大限制数,则拒绝借书;否则允许借书,同时将图书分类目录号、读者号和借阅日期等信息写入借书文件中。 (3)读者还书时需填写还书单。系统根据读者号和图书分类目录号,从借书文件中读出与该图书相 关的借阅记录,标明还书日期,再写回到借书文件中。若图书逾期,则处以相应的罚款。 (4)注销图书时,需填写注销单并修改图书目录文件中的库存总量。系统的信息
3、查询功能主要包括读者信息查询和图书信息查询。其中读者信息查询可得到读者的基本信息以及读者借阅图书的情况;图书信息查询可得到图书基本信息和图书的借出情况。图书管理系统的顶层图如图 13-5所示;图书管理系统的第 0层 DFD图如图 13-6所示,其中加工 2的细化图如图 13-7所示。 1 数据流图 13-6中有两条数据流是错误的,请指出这两条数据流的起点和终点。 2 数据流图 13-7中缺少三条数据流,请指出这三条数据流的起点和终点。 3 根据系统功能和数据流图填充下列数据字典条目中的 (1)和 (2): 查询请求信息 =查询读者请求信息查询图书请求信息 读者情况 =读者号 +姓名 +所在单位
4、 +借书情况 管理工作请求单 =(1) 入库单 =(2) 4 阅读下列说明及图 13-8和图 13-9,回答问题,将解答填入对应栏内。【说明】 某电话公司决定开发一个管理所有客户信息的交互式网络系统。系统功能如下。 (1)浏览客户信息:任何使用 Internet的网络用户都可 以浏览电话公司所有的客户信息 (包括姓名、住址、电话号码等 )。 (2)登录:电话公司授予每个客户一个帐号。拥有授权帐号的客户,可以使用系统提供的页面设置个人密码,并使用该帐号和密码向系统注册。 (3)修改个人信息:客户向系统注册后,可以发送电子邮件或者使用系统提供的页面,对个人信息进行修改。 (4)删除客户信息:只有公
5、司的管理人员才能删除不再接受公司服务的客户的信息。系统采用面向对象方法进行开发,在开发过程中认定出的类见表 13-3。4 在需求分析阶段,采用 UML的用例图 (use case diagram)描述系统功能需求,如图 13-8所示。请指出图中的 A、 B、 C和 D分别是哪个用例 ? 5 请指出图 13-9中 (1) (4)处的重复度分别为多少 ? 6 类通常不会单独存在,因此当对系统建模时,不仅要识别出类,还必须对类之间的相互关系建模。在面向对象建模中提供了 4种关系:依赖 (dependency)、概括(generalization )、关联 (association)和聚集 (aggr
6、egation)。请分别说明这 4种关系的含义,并说明关联和聚集之间的主要区别。 7 阅读下列说明,回答问题。 【说明】 现有事务 T1, T2、 L3它们对数值型数据 A执行的操作分别如下: T1;将 A加 1。 T2:将 A加倍。 T3:输出 A的值,并将 A置为 1。 7 假设 T1、 T2、 T3可以并发执行。若 A的初值为 0,那么存在多少种可能的正确结果 ? 8 各个事务内部的结构如表 13-4所示,若事务执行不施加任何锁,则有多少种不同的调度方式 ?写出简要的计算过程。 在 A的初值给定为 0时,是否存在能够产生正确结果,而且又是不可串行化的调度 ?若有请举例说明。 9 在 A的
7、初值给定为 0时,是否存在能够产生正确结果 ,而且又是不可串行化的调度 ?若有请举例说明。 10 阅读以下说明及图,回答问题。【说明】 Web页面与数据库的连接是 Web数据库的基本要求。目前基于 Web数据库的连接方案主要有服务器端方案和客户端方案两种类型。服务器端方案的实现技术有 ASP等,客户端方案的实现技术有JDBC、 DHTML等。其中, ASP是微软开发的脚本语言技术,嵌入在 IIS中,因此, ASP成为大部分用户的首选脚本语言。图 13-10给出了 ASP的工作原理。10 ASP属于服务器端方案还是客户端方案 ?ASP的工作原理图中 (1)、 (2)应是什么 ? 11 请至少写出
8、 ASP的 5个特点。 12 请至少写出 4种服务器端实现技术。 二、选答题(共 3道大题,每道大题 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 13 阅读以下说明和 C+程序代码,将程序填充完整。 【说明】 有时我们希望给某个对象而不是整个类添加一些功能。例如,一个图形用户界面工具箱允许你对任意一个用户界面组件添加一些特性,例如边框,或是一些行为,例如窗口滚动。使用继承机制是添加功能的一种有效途径,从其他类继承过来的边框特性 可以被多个子类的实例所使用。但这种方法不够灵活,因为边框的选择是静态的,用户不能控制对组件加边框的方式和时机
9、。 一种较为灵活的方式是将组件嵌入另一个对象中,由这个对象添加边框。我们称这个嵌入的对象为装饰。这个装饰与它所装饰的组件接口一致,因此它对使用该组件的客户透明。它将客户请求转发给该组件,并且可能在转发前后执行一些额外的动作 (例如画二个边框 )。透明性使得你可以递归地嵌套多个装饰,从而可以添加任意多的功能。 装饰对象结构模式的意图就是动态地给一个对象添加一些额外的职责。就增加功能来说,该模式相比生成子类更 为灵活。其示意类图如图 13-22所示。 程序代码 13-5是该模式的一个示例,说明了如何实现用户接口装饰,函数的实现全部省略。程序中定义了 VisualComponent的一个子类 Dec
10、orator,我们将生成Decorator的子类以获取不同的装饰。 VisualComponent类是一个描述可视对象的抽象类,它描述了绘制和事件处理的接口。 Decorator的子类定义了特殊的装饰功能, BorderDecorator子类给可视组件添加一个边框, ScrollDecorator给可视组件添加滚动功能。 【程序代码 13-5】 (1); class Window public: roid SetContents (VisualComponent * contents); ; /VisualComponent类是一个描述可视对象的抽象类 class VisllalCompone
11、nt public: VisualComponent(); (2) void Draw(); Virtual void Resize(); ; class Decorator: public VisualComponent public: Decorator() / ; Decorator(VisualComponent * vcom) / ; virtual vold Draw(); virtual vold Resize(); private: /* Decorator装饰由 VisualComponent的指针实现,其在 Decorator的构造函数中初始化 */ VisualCompo
12、nent (3) ; ; vold Decorator: Draw() (4); /缺省实现 void Decorator: Resize() component-Resize(); /缺省实现 /BorderDecorator 子类为它所包含的组件添加一个边框 class BorderDecorator: public Decorator public: BorderDecorator(VisualComponent * vcom, int borderWidth) / ; Virtual Void Draw(); private: void DrawBorder(int); private
13、: int borderWidth; ; void BorderDecorator: Draw() Decorator: Draw(); DrawBorder(_width); Void BorderDecorator:DrawBorder(int Width) / ) Void Window : SetConterlts(VlsualComponent * contents) / /SerollDecorat 给可视组件添加滚动功能 class ScroliDecoratOr:public Decorator public: ScrollDecorator(VlsualComponent *
14、 vcom) / ; / ) ; class TextView: public VisualComponent / ; void main(void) /创建一个正文视图以及放入这个正文视图的窗口 Window * window new Window; TcxtView * textView new TextView; /TextView是一个 VisualComponent,它可以放入窗口中 window- SetContents(textView); /得到一个有边界的和可以滚动的TextView,边界宽为 1 window- SetContents(5); 14 阅读下列说明与相关类图,
15、填空并回答问题。 【说明】 装饰者模式动态地给一个对象添加一些额外的职责,就扩展功能而言,该模式比生成子类方式更加灵活。装饰模式的提出有助于解决滥用继承的问题。 例如,一个名叫星巴兹 (Starbuzz)的咖啡连锁店提供多种多样的咖啡,最朴素的设计就是采用继承,即 设计一个饮料抽象基类 Beverage,让不同种类的咖啡 HouseBlend、 Decaf、 Espresso、 DarkRoast继承 Beverage类,如图 13-23所示。 Beverage类的 cost()方法是抽象方法,每个子类的 cost()方法实现即返回具体咖啡种类的价钱, Beverage类的 descripti
16、on实例变量由每个子类设置,用来描述该类饮料, Beverage类的 getDescription()方法用来返回此描述。 客户在点咖啡时还可以要求添加各种各样的调料 (Condiment),加入的调料 不同所收取的费用也是不同的,让各种加了调料的不同咖啡都继承基类 Beverage,当咖啡种类和调料种类很多时,组合种类的数量就会急剧增长,就会发生 “类数量爆炸 ”现象,如图 13-24所示。 显然,采用这种设计方式会使得代码的维护变得十分困难,可以采用装饰者模式来解决这个问题。软件设计师蝴蝶飞根据装饰者模式的思想设计了如图 13-25所示的类图。 在图 13-25中,将各种调料 Milk、
17、Mocha、 Soy、 Whip作为装饰者来装饰 House- Blend、 Decal、 Espresso、 DarkRoast等各种咖啡 。下面的 Java程序 (代码 13-6)对应其具体实现。 【代码 13-6】 import java.io * ; abstract class Beverage String description=“Unknown Beverage“; public String getDescription() return description; public (1) double cost(); abstract class CondimentDecora
18、tor (2) Beverage public abstract Strmg getDescription(); class Decafextends Beverage public Decaf() description=“Decaf Coffee“; public double cost() return 1.05; class Espresso extends Beverage public Espresso() description=“Espresso“; public double cost() return 1.99; class HouseBlend extends Bever
19、age public HouseBlend() description=“House Blend Coffee“; public double cost() return.89; class DarkRoast extends Beverage public DarkRoast() description=“Dark Roast Coffee“; public double cost() return.99; class Mocha extends CondtmentDecorator Beverage (3); public Mocha(Beverage beverage) this.bev
20、erage=beverage; public String getDescription() return beverage.getDescription()+“, Mocha“; public double cost() return.20+beverage.cost(); Class Soy extends CondimentDecorator Beverage beverage; public Soy(Beverage beverage) this.beverage beverage; public Strillg getDescription() returnbeverage. get
21、Description()+“, Soy“; public double cost() return.15+beverage.cost(); class Whip extends CondimentDecorator Beverage beveragei public Whip(Beverage beverage) this.beverage=beverage; public String getDescrlption() returnbeverage. getDescription()+“, Whip“; public double cost() return.10+beverage.cos
22、t(); class Milk extends CondlmentDecorator Beverlige beverage; public Milk(Beverage beverage) this. beverage=beverage; public String getDescription() return beverage getDescription()+“, Milk“; public double cost() return.10+beverage.cost(); public class StarbuzzCoffee public static void main(Stting
23、args) /订一杯 Espresso咖啡,不需要任何调料,打印出它的描述和价钱 Beverage beverage new Espresso(); System.out.println(beverage.getDescription()+“$“+beverage.cost(); /订一杯加了两份Macha调料、一份 Whip调料的 DarkRoast咖啡 /并打印出它的描述和价钱 Beverage beverage2=new DarkRoast(); beverage2=new Mocha(beverage2): beverage2=new (4) (beverage2); beverage
24、2=new Whip(beverage2); System.out.println(beverage2.getDescription()+“$“+beverage2.cost(); /订一杯加了一份 Soy调料、一份 Mocha调料、一份 Whip调料 /的 HouseBlend咖啡,并打印出它的描述和价钱 Beverage beverage3 new HouseBlend(); beverage3 new Soy(beverage3); beverage3 new Mocha(beverage3); beverage3 new Whip(beverage3); System.out.prin
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 中级 设计师 下午 应用技术 试题 模拟 36 答案 解析 DOC
