ImageVerifierCode 换一换
格式:DOC , 页数:30 ,大小:1.04MB ,
资源ID:507209      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-507209.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷41及答案与解析.doc)为本站会员(tireattitude366)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷41及答案与解析.doc

1、软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 41及答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 阅读以下关于住宅安全系统的技术说明,根据要求回答问题 1问题 4。 说明 基于某嵌入式系统的住宅安全系统可使用传感器 (如红外探头、摄像头等 )来检测各种意外情况,如非法进入、火警和水灾等。 房主可以在安装该系统时配置安全监控设备 (如传感器、显示器、报警器等 ),也可以在系统运行时修改配置,通过录像机和电视机监控与系统连接的所有传感器,并通过控制面板上的键盘与系统进行信息交互。在安装过程 中,系统给每个传感器赋予一个 ID编号和类型,并设置房主密码以启动和关闭系统,

2、设置传感器事件发生时应自动拨出的电话号码。当系统检测到一个传感器事件时,就激活警报,拨出预置的电话号码,并报告关于位置和检测到的事件的性质等信息。 住宅安全系统的顶层数据流图如图 6-13所示,图 6-14是住宅安全系统的第 0层数据流图,图 6-15是对住宅安全系统的第 0层数据流图中加工 4的细化图。 1 需求分析是一个包括创建和维持系统需求文档所必需的一切活动的过程。一个通用的需求分析过程模型如图 6-16所示,请从以下供选择的答案中 选择合适的内容填写到图 6-16中相应的位置中。 供选择的答案 A用户需求和功能需求 B需求描述 C需求导出和分析 D需求有效性验证 2 请将住宅安全系统

3、的顶层数据流图 (见图 6-13)中 (A) (D)空缺处,以及第 0层数据流图 (见图 6-14)中 (E)空缺处的内容填写完整。 3 将图 6-15所示的加工 4的细化数据流图中的数据流补充完整,请按以下答题格式示例的要求回答问题。 答题格式示例 数据流的起点 ( 数据流名称 ) 数据流名称终点 或 数据流的起点 ( 数据流名称 ) 4 修改在住宅安全系统第 0层数据流图 (见图 6-14)中的数据存储 “配置信息 ”,将会影响第 0层数据流图中的哪些加工 ? 5 阅读下列某网上订书管理系统的说明和 E-R图,根据要求回答问题 1问题 3。 说明 某网上订书系统的 E-R图 (已消除了不必

4、要的冗余 )如图 6-17所示 (图中没有标出主码 )。图中实体的说明如表 6-10所示,相关属性说明如表 6-11所示。一个顾客可以在同一天填写多张购书单,每张购书单上可填写多种图书,每种图书可以订购多本, bid相同的图书在同一张购书单上不能出现多次。 注:为简化起见 ,不考虑信用卡号码泄漏所带来的安全性等问题。 5 根据图 6-17所示的 E-R图中给出的词汇,按照 “关系模式名 (属性,属性, )” 的格式,将此 E-R图转换为 4个关系模式,并指出每个关系模式中的主码和外码,其中模式名根据需要取实体名或联系名。 6 创建 Customers表时, cid使用 INTEGER数据类型,

5、 cname使用 CHAR(80)数据类型, address使用 CHAR(200)数据类型, cardnum使用 CHAR(16)数据类型并且要求此列值唯一。请在下列用于创建表 Customers的 SQL语句空缺 处填入正确的内容。 7 以下的 SQL语句是书店用于查询 “所有订购了 bid为 123-456图书的用户订购其他图书的情况 ”的不完整语句,请在空缺处填入正确的内容。8 阅读以下说明和图,根据要求回答问题 1问题 4。 说明 某电子商务公司开办了在线电子商务网站,主要为各注册的商家提供在线商品销售功能。为更好地吸引用户,该公司计划为注册的商家提供商品 (Commodity)促销

6、 (Promotion)功能。商品的分类 (Category)不同,促销的方式和内容也会有所不同。 注册商家可发布促销信息。商家首 先要在自己所销售商品的分类中,选择促销涉及的某一具体分类,然后选出该分类的一个或多个商品 (一种商品仅属于一种分类 ),接着制定出一个比较优惠的折扣政策和促销活动的优惠时间,最后由系统生成促销信息并将该促销信息公布在网站上。 商家发布促销信息后,网站的注册用户便可通过网站购买促销商品。用户可选择参与某一个促销 (Promotion)活动,并选择具体的促销商品(Commodity),输入购买数量等购买信息。系统生成相应的一份促销订单 (POrder)。只要用户在优惠

7、活动的时间范围内,通过网站提供的在线支付系统,确认 在线支付该促销订单 (即完成支付 ),就可以优惠的价格完成商品的购买活动,否则该促销订单失效。 系统采用面向对象方法开发,系统中的类及类之间的关系用 UML类图表示,如图 6-18所示是该系统类图中的一部分;系统的动态行为采用 UML序列图表示,如图 6-19所示是发布促销的序列图。8 识别关联的多重度是面向对象建模过程中的一个重要步骤。请根据说明中给出的描述,将如图 6-18所示中 (1) (6)空缺处的内容填写完整。 9 请从表 6-12中选择相应的方法名,填写到图 6-19所示中 (7) (10)空缺处的对应位置 中。10 该电子商务公

8、司还对外开放一项出租图书和唱碟的业务。由于业务需求,该公司委托软件开发公司 A开发一套信息管理系统。该系统将记录所有的图书信息、唱碟信息、用户信息和用户租借信息等。 A公司决定采用面向对象的分析和设计方法开发此系统。某类图书或唱碟被借阅时应记录的信息如表 6-13所示,如图 6-20所示描述了系统定义的两个类 Book和 CD,分别表示图书和唱碟的信息。经过进一步分析,设计人员新定义一个类 Items_on_ loan,以表示类 Book和 CD的共有属性和方法 (要注意,不同名称的属性和方法表 示不同的含义,如 CD中的 composer与 Book中的 author无任何关系 )。同时为了

9、记录每种图书或唱碟的历史记录,引入类 CirculationHistory,类中存储的信息是如图 1-1所示中所表示的内容。请采用 UML表示法将类 Book、类 CD、类 Items_on_loan和类 Circulation History之间的关系表示出来。 11 现需了解十大最畅销 (借出次数最多 )图书或唱碟。为此引入类 TemPopulate以存储所有十大畅销图书或 CD的名称及其被借出的次数。利用顺序图描述某类图书或唱碟 被借出后成为十大畅销图书或唱碟时对象间的消息交互,通常在系统一次运行过程中,应有 (11)个 TenPopulate实例对象最合适,一个 TenPopulate

10、类实例对象最多需要和 (12)个 Items_on_loan实例对象交互。 供选择的答案 (11) A 1 B 2 C 10 D n(图书和唱碟种类数 ) (12) A 2 B 10 C 20 D n(图书和唱碟种类数 ) 12 阅读以下某旅馆客房管理系统的算法说明和程序流程图,根据要求回 答问题 1问题 4。 算法说明 某旅馆共有 N间客房。每间客房的房间号、房间等级、床位数及占用状态分别存放在数组 ROOM、 RANK、 NBED和 STATUS中。房间等级值为 1、 2或 3。房间的状态值为 0(空闲 )或 1(占用 )。客房是以房间 (不是床位 )为单位出租的。 程序流程图 (见图 6

11、-21)所反映的算法是,根据几个散客的要求预订一间空房。程序的输入为:人数 M,房间等级要求 R(R=0表示任意等级都可以 )。程序的输出为:所有可供选择的房间号。 12 在程序流程图 (见图 6-21)中,若要某个房间 I被选中,则 需要满足什么条件 ? 13 假设该旅馆当前各个房间的情况如表 6-14所示。当输入 M=3, R=0时,该算法的输出是 (1)。 当输入 M=2, R=1时,该算法的输出是(2)。 14 如果等级为 r的房间每人每天的住宿费为 RATE(r),其中 RATE为数组,则为使该算法在输出每个候选的房间号 RM(J)后,再输出这批散客每天所需的总住宿费DAYRENT(

12、J),在程序流程图 (见图 6-21)中 “ROOM(I)RM(J)”(b 所指向的方框中 )之后应增加的处理语句是 (3)。 15 如果限制该算法最多输出 K个可供选择 的房间号,则在程序流程图 (见图 6-21)中 “I N”(a所指向的判断框中 )应修改为 (4)。 二、选答题(共 3道大题,每道大题 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 16 阅读以下应用程序说明和 C程序,将 C程序段中 (1) (7)空缺处的语句填写完整。 说明 以下 C程序 完成从指定数据文件中读入职工的工号和他完成产品个数的数据信息,对同一职工多

13、次完成的产品个数进行累计,最后按表 5-22所示的格式输出职工完成产品数量的名次 (ORDER)。该名次是按 每位职工完成的产品数量(QUANTITY)排序,之后同一名次的职工人数 (COUNT)和他们的职工号(NUMBER,同一名次的职工号以从小到大的顺序输出 )。 以下 C程序 采用链表结构存储有关信息,链表中的每个表元对应一位职工。在数据输入同时,形成一个有序链表 (按完成的产品数量和工号排序 )。当一个职工有新的数据输入,在累计他的完成数量时会改变原来链表的有序性,为此应对链表进行删除、查找和插入等处理。 C程序 17 阅读以下关于某订单管理系统的技术说明、部分 UML类图及 C+代码

14、,将C+程序中 (1) (5)空缺处的语句填写完整。 说明 某订单管理系统的部分 UML类图如图 5-15所示。 图 5-15中, Product表示产品, ProductList表示产品目录, Order表示产品订单, Orderltem表示产品订单中的一个条目, OrderList表示订单列表, SalesSystem提供订单管理系统的操作接口。 请完善类 Order的成员函数 getOrderedAmount()和类SalesSystem的 statistic()方法,各个类的属性及部分方法定义参见下面的 C+代码。 C+代码 18 阅读以下关于某订单管理系统的技术说明、部分 UML类图

15、及 Java程序,将Java程序中 (1) (5)空缺处的语句填写完整。 说明 某订单管理系统的部分 UML类图如图 5-16所示。 在图 5-16中,Product表示产品, ProductList表示所销售产品的列表, Order表示产品订单,Orderltem表示产品订单中的一个条目, OrderList表示订单列表, SalesSystem提供订单管理系统的操作接口。各个类的部分属性和方法说明如表 5-23所示。 可以使用类 java.util.ArrayList E来实现对象的聚集关系,如图 5-16中 OrderList与 Order之间的聚集关系。 for-each循环提供了一种

16、遍历对象集合的简单方法。在for-each循环中,可以指定需要遍历的对象集合及用来接收集合中每个元素的变量,其语法如下: for(用来接收集合中元素的变量:需要遍历的对象集合 ) 如果要使用 for-each循环来遍历对象集合,那么包含该对象集合的类必须实现接口java.util.Iterable T。 Java程序 7-1和 Java程序 7-2分别给出了类 OrderList和方法 statistic的 Java代码。软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 41答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 【正确答案】 这是一道要求读者掌握需求分析过程模

17、型的理解识记题。本题所涉及的知识点如下。 需求分析是一个包括创建和维持系统需求文档所必需的一切活动的过程。它通常包括 5个通用的活动:系统可行性研究、需求导出和分析、需求描述和文档编写、需求有效性验证及需求管理。每个通用的活动的相关说明见表6-15。本试题完整的需求分析过程模型如图 6-24所示,图中说明 了这些活动之间的关系,也说明了在需求分析过程的每个阶段将产生哪些文档。2 【正确答案】 这是一道要求读者掌握分层数据流图中数据流的平衡原则的综合分析题。本题的解答思路如下。 为了表达复杂问题的处理过程,用一个数据流图往往不够。一般是按问题的层次结构进行逐步分解,并以分层的数据流图来反映这种结

18、构关系。通常根据层次关系,将数据流图分为顶层数据流图、中间层数据流图和底层数据流图。把整个软件系统看成是一个大的加工,然后根据系统从哪些外部实体接收数据流,以及系统发送数据流到哪些外部实体,就可以画出系统的输入偷出图,即顶层数据流图。 中间层数据流图是将父层数据流图中的某个加工进行细化,而它的某些加工还可以进一步细化,这样就形成了一层层的子加工。除顶层图外,其余分层数据流图从 0开始编号,例如, 0层图的加工号可以是 “1,2,3,” ,其子图号可能是 “1.1,1.2,1.3,” ,再下一层的子图可能是 “1.1.1,1.1.2,1.1.3,” ,依次类推。 本题的图 6-13并不是完整的顶

19、层数据流图,解答时需通过题干的说明信息及第 0层数据流图来分析顶层图并解答问题。 题干中提及的关键信息 “房主可以在安装该系统时配置安全 监控设备 (如传感器、显示器、报警器等 )”,在顶层数据流图 (图 6-13)中这 3个名词并没有完整地出现,仅出现了 “报警器 ”一词。在图 6-13中 “电视机 ”实际上起题干中关键信息 “显示器 ”的作用。结合图 6-13中 “传感器状态 ”这一输出数据流信息可判断出, (D)空缺处应填入 “传感器 ”这一外部实体。 由于子层数据流图是其父数据流图中某一部分内部的细节图 (或加工图 ),因此子层数据流图的输入 /输出数据流应该保持一致,即在上一级数据流

20、图中有几条数据流,其子图也一定有同样的数据流,而且它们的输送方向是一致的。 在住宅安全系 统第 0层数据流图 (见图 6-14)中,加工 5(信息及状态显示 )的输出数据流为 “TV信号 ”,其中 “TV”是日常生活中电视机的英文缩写。在图 6-13顶层数据流图中有一外部实体 “录像机、电视机 ”,因此可推理出图 6-13中 (B)空缺处的数据流就是“TV信号 ”。 根据数据流的方向可知,在图 6-13顶层数据流图中 (C)空缺处的数据流属于输出数据流。在第 0层数据流图 (见图 6-14)中,共有 “TV信号 ”、 “电话拨号 ”、 “告警类型 ”和 “显示信息 ”4个输出数据流。在图 6-

21、13顶层数据流图中现已存在 “TV信号 ”、 “电话拨号 ”和 “显示信息 ”3个输出数据流,因此可推理出图 6-13中流向 “报警器 ”外部实体的数据流是 “告警类型 ”,即 (C)空缺处填写的数据流应是 “告警类型 ”。 根据数据流的方向可知,在图 6-14所示的第 0层数据流图中 (E)空缺处的数据流属于输入数据流,且与 “传感器监控 ”这一加工处理相关。在图 6-13顶层数据流图中,外部实体 “传感器 ”流入 “住宅安全系统 ”的输入数据流是 “传感器状态 ”,由此可推理出图 6-13中 (E)空缺处的数据流就是 “传感器状态 ”。 同理,根据数据流的方向可知,在图 6-13所示的顶层

22、数据流图中 (A)空缺处 的数据流属于输入数据流。在第 0层数据流图 (见图 6-14)中流入 “住宅安全系统 ”加工的输入数据流共有 4个,分别是 “用户配置请求 ”、 “开始 /停止 ”、 “用户密码 ”和 “传感器状态 ”。在图 6-13所示的顶层数据流图中现已存在 “开始 /停止 ”、 “用户密码 ”和 “传感器状态 ”3个输出数据流,因此可推理出图 6-13中由 “控制面板 ”外部实体流出的数据流是 “用户配置请求 ”,即 (A)空缺处填写的数据流应是 “用户配置请求 ”。 将以上分析结果归纳整理,完整的住宅安全系统顶层数据流图如图 6-25所示。3 【正确答案】 本试题的解答 思路

23、也是根据数据流图的数据流平衡原则进行分析的,详细的解答步骤如下。 由于子图是其父图中某一部分内部的细节图 (加工图 ),所以子图的输入 /输出数据流应该保持一致。其含义是:在上一级中有几条数据流,其子图也一定有同样的数据流,而且它们的输送方向是一致的。 在第 0层数据流图 (见图 6-14)中, “4 传感器监控 ”加工模块有 1条输入数据流 “传感器状态 ”和 3条输出数据流 “电话拨号 ”、 “传感器数据 ”和 “告警类型 ”。 在图 6-15所示的加工 4的细化数据流图中,只有输出数据流 “告警类型 ”,因此,该加工图缺少了 “传感器状态 ”、 “电话拨号 ”和 “传感器数据 ”这 3条

24、数据流。 由于加工 4的细化数据流图 (见图 6-15)的内部结构、数据流向已清晰地给出,因此只需将 “传感器状态 ”、 “电话拨号 ”和 “传感器数据 ”这 3条数据流进行对号入座。 根据常识可知, “电话拨号 ”是加工处理 “4.5 拨号 ”的输出数据流; “传感器状态 ”是 “4.4 读传感器 ”处理的输入数据流。 “传感器数据 ”应该是经 “4.1 格式显示 ”处理过的数据流,所以作为 “4.1 格式显示 ”的输出数据流。其中, “格式显示 ”处理是指将准备输出显示的传感器数据处理成第 0层数据流 图 (见图 6-14)中 “5 信息与状态显示 ”能够接受的传感器数据格式。 按照试题中

25、答题格式示例的要求,将以上分析结果整理如下: 4.5 拨号 ( 电话拨号 ) (传感器状态 )4.4 读传感器 4.1 格式显示 ( 传感器数据 ) 另外,将以上分析结果归纳整理,完整的加工 4的细化数据流图如图6-26所示。 4 【正确答案】 这是一道要求读者掌握数据流图 (DFD图 )中数据存储作用的综合分析题。本题的解答思路如下。 在数据流图 (DFD图 )中,数据存储是指逻辑上要求存储的数据,它不考虑具体数据 的存储介质和技术手段。 在图 6-15所示的加工 4的细化数据流图中, “4.2 评估设置 ”这一加工处理用到了配置信息文件,由此可知,在第 0层数据流图 (见图 6-14)中

26、“4 传感器监控 ”加工将用到配置信息文件,即 “4 传感器监控 ”加工处理与数据存储 “配置信息 ”有关联。 由题干关键信息 “房主 可以在系统运行时修改配置 ”可知,此处的 “修改配置 ”结果将存储到 “配置信息 ”这一数据存储中。在第。层数据流图 (见图 6-14)中,“3 密码处理 ”是用于检验密码的,但是它只有一个输出数据流 “检验 ID信息 ”到 “信息及状态显示 ”加工处理,并没有反馈回来的数据流,所以 “检验 ID信息 ”是已经验证通过的用户的信息,用户输入密码应是在 “3 密码处理 ”这个环节中进行验证的。如果密码验证是在 “5 信息及状态显示 ”中进行的,那么从 “5 信息

27、及状态显示 ”应有一条不合法的用户数据流反馈到 “密码处理 ”。可见, “密码处理 ”要用到数据存储“配置信息 ”中的用户名和密码。 由以上分析可知,在第 0层数据流图 (见图 6-14)中,由于输出到加工处理 “5 信息及状态显示 ”的数据流是用来 “检验 ID信息 ”的,因此, “5 信息及状态显 示 ”加工处理也将与 “配置信息 ”这一数据存储相关联。 5 【正确答案】 题干已经指明转换为 4个关系模式,根据 E-R图和说明可以先得出 Books、 Customers和 orders三个关系模式。由于一个客户可以填写多张购书单,而一张购书单仅仅属于一个客户,因此 PlaceOrder不需

28、要单独成为一个关系模式,而购书单和书之间是多对多的关系,所以 OrderList需要单独一个关系模式。图 6-17所示的 E-R图转换为 4个关系模式及其主键、外键如下。 1 Customers(cid,cname,adderss,cardnum) 主键为: cid 2 Orders(ordemum,orderdate,cid) 主键为: ordemum;外键为: cid 3 Books(bid,title,author,qty_in_stock,year_publicshed,price) 主键为: bid 4 Orderlist(bid,ordernum,qty,ship_date) 主键

29、为: (bid,ordemum),外键为 bid、 ordernum 6 【正确答案】 依题意分析,对于关系模 式 Customers的主键为 cid,而 cardnum列值唯一,因此 (1)、 (2)空缺处应分别在空缺处填入 Primary Key cid和 UNIQUE cardnum。 7 【正确答案】 依题意分析,最内层的 SQL语句查找订购了 123-456的客户cid,ordernum只出现在 Orderlist和 order中,因此 (5)空缺处应填写 C.ordernum, (4)空缺处应该填写 C。因为要求寻找这些用户还订购哪些其他书籍,所以 (3)空缺处应填写 in。 8

30、【正确答案】 这是一道要求读者在充分理解需求的基础上,补充 UML类图中的类间关系的多样性描述的综合分析题。本题的解答思路如下。 (1)关联表示了对象间的结构关系,它暗示两个类在概念上位于相同的级别。在 UML类图中,符号“ ”表示其相联的两个类之间存在关联关系。 (2)识别关联的多重度是面向对象建模过程中的一个重要步骤。即说明一个关联的实例中有多少个相互连接的对象是很重要的。其中,这个 “多少 ”被称为关联角色的多重度,把它写成一个表示取值范围的表达式或写成一个具体值。指定关联一端的多重度,就是说明在关联另一 端的类的每个对象要求在本端的类必须有多少个对象。 (3)由题干描述中给出的关键信息

31、 “ 选出该分类的一个或多个商品 (一种商品仅属于一种分类 )” 可知,一个商品 (Commodity)属于一种分类,一个分类 (Category)中包含 0个或多个商品对象,因此类 Commodity和类 Category的多样性关系为: 0 n或 1 n个商品对象对应 1个分类对象,即 (1)空缺处所填写的内容是 “0n” 或 “1n” , (2)空缺处所填写的内容是 “1”。 (4)由于一个促销 (Promotion)中由一个或多个商品 (Commodity)组成 (至少一个 ),而一个商品可以属于 0个或多个促销,因此类 Promotion和类 Commodity的多样性关系为: 0

32、n个促销对象对应 1 n个商品对象,即 (3)空缺处所填写的内容是 “0n” , (4)空缺处所填写的内容是 “1n” 。 (5)一个促销 (Promotion)可以产生多个促销订单 (POrder),一个促销订单只能对应一个促销。所以类 Promotion和类POrder的多样性关系为: 1个促销对象涉及 0n 个促销订单对象,即 (5)空缺处所填写的内容是 “1”, (6)空缺处所填写的内容是 “0n” 。 9 【正确答案】 这是一道要求读者用 UML序列图对系统的行为进行分析和建模的综合分析题。本题的解答思路如下。 序列图描述对象间的消息交互,刻画系统的行为。根据题目的描述:商家(Bus

33、inessman)在发布促销信息时,要先浏览自己所销售商品的分类及分类中的具体商品信息;商家通过 (7)空缺处所填入的 getCategories消息将浏览请求提交给类CatagoryManager实例,再由类 CatagoryManager的实例通过 (8)空缺处所填入的getCommodities消息请求类 Category(商品分类 )实例获得其分类中该商家的所有商品;类 Category的实例通过 getCommodityinfo消息请求类 Comodity(商品 )的实例返回商品的详细描述信息。 当把商家所销售的商品分类及分类中的具体商品信息返回给商家之后,商家在其中选择要促销的一个

34、或多个商品,并输入一些促销信息,通过 (9)空缺处所填入的CreatePromotion消息请求类 PromotionManager实例生成促销信息。类PromotionManager实例通过 Create消息创建一个促销 (Promotion)对 象,并通过 (10)空缺处所填入的 addCommdities消息向新建的促销对象中添加要促销的商品对象。 10 【正确答案】 如果新定义的类 Items_on_loan要表示类 Book和类 CD的共有属性和方法,那么就需要从类 Book、 CD中找出相同的属性和方法。由试题中给出的图 6-20可知, Book和 CD都有 title属性和 re

35、ference title方法,因此类Items_on_loan的属性为 title,方法为 reference title。 类 Book和类 CD应该继承类Items_on_loan, 因此它们之间的关系是继承关系,而 CirculationHistory表示对象的租借次数,它不属于类 Items_on_loan的属性,但类 Items_on_loan应该能够查询到CirculationHistory记录的信息,所以它们之间是聚集关系。 类 Book、类 CD、类Items_on_loan和类 CirculationHistory之间的 UML关系如图 6-27所示。 11 【正确答案】

36、类 TemPopulate存储十大畅销图书或 CD的名称及其被借出的次数,顺序图中要明确的给出这一对象。通常在系统 一次运行过程中,有 1个TenPopulate实例对象最合适。 为了记录图书或唱片的借出信息,每当有图书或唱片被借出时,都需要和类TemPopulate的对象发生交互。因此,有可能所有的图书和唱片都要和类TemPopulate对象发生交互,即一个类 TenPopulate实例对象最多需要和图书及唱碟种类数个 Items_on_loan实例对象交互。 12 【正确答案】 在程序流程图 (见图 6-21)中, I表示房间序号 (需注意不是房间的编号 )。当 I N时表示所有的房间都检

37、查过了,若 STATUS(I)0,表示房 间已被占用,则检查下一个房间;否则查看房间的床铺是否足够。若 NBED(I) M表示房间床铺不够,则检查下一个房间;若床铺足够,则需看客人对房间等级是否有要求。若 R!=0,表示客人对房间等级有要求,则检查 RANK(I)是否等于 R。若不等于,则检查下一个房间;若 RANK(I)=R或者 R=0,分别表示房间等级满足要求和客人对房间等级无要求,则当前的房间 I满足所有的条件。接着可将房间 I的房间编号 ROOM(I)存放到 RM(J)中,然后检查下一个房间。 综合以上分析结果,某个房间 I要满足下列条件才可被选中: 房间 未被占用,即 STATUS(

38、I)=0; 房间的床铺要足够,即 NBED(I) =M; 若客人要求特定的房间等级 R(R!=0),则RANK(I)=R,否则 RANK(I)的值不做考虑。 13 【正确答案】 当输入 M=3, R=0时,表示客人的人数为 3,对房间的等级没有要求,因此,只要房间的床铺足够且房间未被占用即可满足要求。换言之,在表6-14中 NBED列中的值大于等于 3, STATUS列中的值为 0即可满足条件,因此输出的结果为: 1101 1202 1302。 当输入 M=2, R=1时,表示客人的人 数为 2,要求房间的等级为 1级,因此,在房间的床铺足够且房间未被占用时,还要求房间的等级为 1级才可满足要

39、求。换言之,表 6-14中 RANK列中的值等于 1, NBED列中的值大于等于 2, STATUS列中的值为 0即可满足条件,因此,输出的结果为: 1201。 14 【正确答案】 结合常识可知,由于房间的费用是根据房间的等级和房间所住客人的数量决定的,因此在等级为 r的房间每人每天的住宿费为 RATE(r)的前提下,为使该算法在输出每个候选的房间号 RM(J)后,再输出这批散客每天所需的总住宿费 DAYRENT(J),在图 6-21中 “ROOM(I)RM(J)” 之后应增加的处理语句如下。15 【正确答案】 如果要限制该算法最多输出 K个可供选择的房间号,则必须知道已经选择的房间的个数。由

40、于变量 J的值代表了满足条件的房间数量,因此在图 6-21中判断语句 “I N”应修改为: I NJ=K。 二、选答题(共 3道大题,每道大题 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 16 【正确答案】 这是一道要求读者掌握有序链表的特点及其如何在有序链表上实现插入、删除、查找的操作的程序 分析题。本题的解答思路如下。 仔细阅读 C程序 可知,该程序代码采用链表结构存储有关信息,链表中的每个结点对应一位职工。在数据输入时,形成一个有序链表 (按完成的产品数量和工号排序 )。当一个职工有新的数据输入,在累计该职工的完成数量时会改变原

41、来链表的有序性,因此需要对链表中的结点重新进行排序。而对程序的排序操作可以看成是一组查找、删除、插入操作的组合操作,这组操作又和链表的特点密切相关。 链表是用一组任意的存储空间来依次存放线性表中的数据元素及其元素之间关系的存储结构。由于链表的存储空间是在程序运 行的过程中动态分配的,需要一个个分配一个存储空间,因此无须事先估计存储空间大小,也不会出现存储空间的浪费,并能够使存储器中的碎片充分地得到利用,但是存储空间的地址不一定连续。 用链表表示一个数据结构时,为了表示数据元素之间的逻辑关系,每个数据元素的存储空间都包括数据域和指针域两个部分。数据域用来存放数据元素本身的值,指针域用来存放和该数

42、据元素存在某种逻辑关系的其他元素的地址 (或对应数组的下标 ),从而通过指针域中的指针指示数据元素之间的逻辑关系。 在链表结构中进行插入和删除运算不需要移动数据元素, 只需修改数据元素的指针域的地址就可以建立元素之间新的逻辑关系。由于这种结构失去了随机存取的特性,只能依照链接顺序访问,存取效率不高,因此不适合进行查找运算。 本试题函数 proc()完成的功能是从给定的数据文件中输入职工的工号 (即 fscanf (fp, “%d“, n) ;)和该职工完成的产品数量信息 (即 fscanf(fp, “%d“, ),从而形成一个按照产品数量和工号排序的职工有序链表。例如输入一个工号为 n的职工的

43、全部信息后,就利用指针 v从链表的首结点开始顺序搜索满足条件 (即工号等于 n)的 结点,这个过程依赖 for循环语句 (即 for(v=base v!=NULL v- no!=n; u=v, v=v-next); )的实现。当循环条件 v!=NULL且 v- no!=n为真时,说明指针 v指向的当前结点存在但却不是满足条件的结点,所以指针 v通过语句 u=v, v=v- next实现向后移动,继而指向下一个结点,然后再重复上述的判断、移动过程,直到找到满足条件的结点或确定链表中根本不存在这样的结点为止。由于这两种结果不能同时发生,所以 for循环后的 if-else条件语句,先要对上述查找过

44、程可能产生的 两种结果做出选择,然后再决定继续执行的操作。又由于 if条件为真的情况下,要执行的复合语句中包含累计产品数量的语句 (即 v- q+m; ),所以可判断出程序首先是对链表中存在的刚输入职工的工号的情况进行处理,因此 (1)空缺处所填写的内容是 “v!=NULL v- no=n”或其他等价形式。 根据上述链表中存在刚输入职工工号的情况,则需要重新对该工号职工进行产品数量的累计,从而改变原来链表的有序性,为此应该对链表中的结点重新进行排序。那么,该程序的排序操作可以看成是一组删除、查找、插入操作的组合操作。 首先,将链表中满足条件 (即工号为 n)的结点 v删除。删除分为两种情况:

45、当删除的结点是链表的首结点,即 v与 base同指向一个结点时,需改变链表的头指针,让它指向首结点的直接后继结点,因此 (2)空缺处所填写的内容是 “v=base”或其他等价形式; 当删除的结点是链表中的其他结点时,需改变链表中要删除结点的直接前驱结点的后继指针。 其次,在有序链表中为上述被删除的结点 v寻找合适的插入位置。插入位置是根据待插入的结点 (即上述被删除的结点 )中产品累计数量的多少,以及工号的大小与链表中现存结点进行比较确定 的。根据它们的比较结果,插入位置可以有以下 3种情况 (令指针 p指向链表中正在与待插入结点进行比较的结点,而指针 u用来指向其直接前驱结点 )。 指针 p

46、所指向结点的 q值 (即产品累计数量 )小于待插入结点 v的 q值 (即产品累计数量 ),于是将结点 v插入到 p所指向的结点之前。 指针 p所指向结点的 q值与待插入结点 v的 q值相等,但前者的 no值 (即工号 )大于后者的 no值,于是将结点 v插入到 p所指向的结点之前。 指针 p所指向结点的 q值比待插入结点 v的 q值都大,于是一直向后寻找,直到 p=NULL为止,这时指针 u指向链表中的最后一个结点,因而将结点 v插入到链表的尾部,即成为结点 U的直接后继。 由以上分析可知, (3)空缺处所填写的内容是 “p- q v- qp- q=v- q p-no n- no”或其他等价形

47、式。由于以上分析中前两种情况都属于在指针 p所指向结点之前插入结点 v,因此要考虑一个关键的插入位置,以及是否在首结点之前插入,即 (4)空缺处所填写的内容是 “p=base”或其他等价形式, (5)空缺处所填写的内容是 “v- next=p”或其他等价形式。 函数 output()完成的功能是按照指定 的格式输出。 (6)空缺处所在的 for循环实现了相同 q值的结点个数的统计,这些结点按照工号从小到大的顺序形成一个有序链表段。为了使表达式正确计算, (6)空缺处需要填入 “v!=NULL v- q=u- q”或其他等价形式。 由于 (7)空缺处所在的 for循环实现了有相同产品个数的职工工

48、号的顺序输出,因此 (7)空缺处所填写的内容是 “count-!=0(或 u!=v)”或其他等价形式。 17 【正确答案】 这是一道要求读者掌握 C+程序设计及 STL使用的分析题。本题的解答思路如下。 仔细阅读 C+代码 可知,类 Order的数据成员 orderid表示一份订单的识别号。结合图 5-15订单管理系统的部分 UML类图可知,每个订单上可以有多个订单项,因此数据成员 items是一个类型为 OrderItem的向量 (数据 )。类Order的成员函数 getOrderedAmount的功能是 “在订单中查找识别码为 tid的产品的订购数量,若该产品没有被订购,则返回 0”。其定

49、义如下: 对于每个订单项,显然需要取出对应产品的识别号。从 getOrderedAmount(string tid)定义代码中,变量 k用于遍历并索引一份订单中 的每个订单项 (itemsk)。由于 OrderItem类提供的成员函数getProductpt()可获取指向被订购产品的指针,因此可通过 (1)空缺处所填写的“itemsk.getProductptr()- getProductId()”获取被订购产品的识别号。若指定的产品识别号等于该订单项的产品识别号,就通过 (2)空缺处所填写的“itemsk.getQuantity()”返回该产品被订购的数量。 类 SalesSystem的成员函数statistic()用于统计产品目录中每个产品的订购总量,并打印输 出每个产品的识别

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1