[计算机类试卷]2012年上半年软件水平考试(中级)软件设计师下午(应用技术)真题试卷及答案与解析.doc
《[计算机类试卷]2012年上半年软件水平考试(中级)软件设计师下午(应用技术)真题试卷及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]2012年上半年软件水平考试(中级)软件设计师下午(应用技术)真题试卷及答案与解析.doc(19页珍藏版)》请在麦多课文档分享上搜索。
1、2012年上半年软件水平考试(中级)软件设计师下午(应用技术)真题试卷及答案与解析 一、必答题(共 4道大题,每道大题 15分) 0 阅读下列说明和图,回答以下问题,将解答填入答题纸的对应内。 【说明】 某学校开发图书管理系统,以记录图书馆藏图书及其借出和归还情况,提供给借阅者借阅图书功能,提供给图书馆管理员管理和定期更新图书表功能。主要功能的具体描述如下: (1)处理借阅。借阅者要借阅图书时,系统必须对其身份 (借阅者 ID)进行检查。通过与教务处维护的学生数据库、人事处维护的职工数据库中的数据进行比对,以验 证借阅者 ID是否合法,若合法,则检查借阅者在逾期未还图书表中是否有逾期未还图书,
2、以及罚金表中的罚金是否超过限额。如果没有逾期未还图书并且罚金未超过限额,则允许借阅图书,更新图书表,并将借阅的图书存入借出图书表,借阅者归还所借图书时,先由图书馆管理员检查图书是否缺失或损坏,若是,则对借阅者处以相应罚金并存入罚金表;然后,检查所还图书是否逾期,若是,执行 “处理逾期 ”操作;最后,更新图书表,删除借出图书表中的相应记录。 (2)维护图书。图书馆管理员查询图书信息;在新进图书时录入图书信息,存入图书表;在图书丢失或损 坏严重时,从图书表中删除该图书记录。 (3)处理逾期。系统在每周一统计逾期未还图书,逾期未还的图书按规则计算罚金,并记入罚金表,并给有逾期未还图书的借阅者发送提醒
3、消息。借阅者在借阅和归还图书时,若罚金超过限额,管理员收取罚金,并更新罚金表中的罚金额度。 现采用结构化方法对该图书管理系统进行分析与设计,获得如图 11所示的顶层数据流图和图 12所示的 0层数据流图。 1 使用说明中的词语,给出图 11中的实体 E1 E4的名称。 2 使用说明中的词语,给出图 12中的数据存储 D1 D4的名称。 3 在 DFD建模时,需要对有些复杂加工 (处理 )进行进一步精化,绘制下层数据流图。针对图 12中的加工 “处理借阅 ”,在 1层数据流图中应分解为哪些加工 ?(使用说明中的术语 ) 4 说明问题 3中绘制 1层数据流图时要注意的问题。 4 阅读下列说明,回答
4、以下问题,将解答填入答题纸的对应栏内。 【说明】 某医院拟开发一套住院病人信息管理系统,以方便对住院病人、医生、护士和手术等信息进行管理。 【需求分析】 (1)系统登记每个病人的住院信息,包括:病案号、病人的姓名、性别、地址、身份证号、电话号码、入院时间及病床号信息 ,每个病床有唯一所属的病区及病房,如表 21所示。其中病案号唯一标识病人本次住院的信息。 (2)在一个病人的一次住院期间,由一名医生对该病人的病情进行诊断,并填写一份诊断书,如表 22所示。对于需要进行一次或多次手术的病人,系统记录手术名称、手术室、手术日期、手术时间、主刀医生及多名协助医生,每名医生在手术中的责任不同,如表 23
5、所示,其中手术室包含手术室号、楼层、地点和类型等信息。 (3)护士分为两类:病床护士和手术室护士。每个病床护士负责护理一个病区内的所有病人,每个病区由多名护士负责护理。手术室护 士负责手术室的护理工作。每个手术室护士负责多个手术室,每个手术室由多名护士负责,每个护士在手术室中有不同的责任,并由系统记录其责任。 【概念模型设计】 根据需求阶段收集的信息,设计的实体联系图 (不完整 )如图 21所示。 【逻辑结构设计】 根据概念模型设计阶段完成的实体联系图,得出如下关系模式 (不完整 ): 病床 (病床号,病房,病房类型,所属病区 ) 护士 (护士编号,姓名,类型,性别,级别 ) 病床护士 ( (
6、1) ) 手术室 (手术室号,楼层,地点,类型 ) 手术室护士 ( (2) ) 病人( (3) ,姓名,性别,地 址,身份证号,电话号码,入院时间 ) 医生 (医生编号,姓名,性别,职称,所属科室 ) 诊断书 ( (4) ,诊断,诊断时间 ) 手术安排 (病案号,手术室号,手术时间,手术名称 ) 手术医生安排 ( (5) ,医生责任 ) 5 补充图 21中的联系和联系的类型。 6 根据图 21,将逻辑结构设计阶段生成的关系模式中的空 (1) (5)补充完整,并用下画线指出主键。 7 如果系统还需要记录医生给病人的用药情况,即记录医生给病人所开处方中药品的名称、用量、价格、药品的生产厂家等信息。
7、请根据该要求,对图 21进行修改, 画出补充后的实体、实体间联系和联系的类型。 7 阅读下列说明和图,回答以下问题,将解答填入答题纸的对应栏内。 【说明】 某网上购物平台的主要功能如下: (1)创建订单。顾客 (Customer)在线创建订单(Order),主要操作是向订单中添加项目、从订单中删除项目。订单中应列出所订购的商品 (Product)及其数量 (quantities)。 (2)提交订单。订单通过网络来提交。在提交订单时,顾客需要提供其姓名 (name)、收货地址 (address)、以及付款方式 (form of payment)(预付卡、 信用卡或者现金 )。为了制定送货计划以及
8、安排送货车辆,系统必须确定订单量 (volume)。除此之外,还必须记录每种商品的名称 (name)、造价(cost price)、售价 (sale price)以及单件商品的包装体积 (cubic volume)。 (3)处理订单。订单处理人员接收来自系统的订单;根据订单内容,安排配货,制定送货计划。在送货计划中不仅要指明发货日期 (delivery date),还要记录每个订单的限时发送要求 (Delivery Time Window)。 (4)派单。订单处理人员将已配好货的订 单转交给派送人员。 (5)送货收货。派送人员将货物送到顾客指定的收货地址。当顾客收货时,需要在运货单 (deli
9、very slip)上签收。签收后的运货单最终需交还给订单处理人员。 (6)收货确认。当订单处理人员收到签收过的运货单后,会和顾客进行一次再确认。 现采用面向对象方法开发上述系统,得到如图 31所示的用例图和图32所示的类图。 8 根据说明中的描述,给出图 31中 A1 A3所对应的参与者名称和 U1 U2处所对应的用例名称。 9 根据说明中的描述,给出图 32中 C1 C3所对应的类名以 及 (1) (4)处所对应的多重度 (类名使用说明中给出的英文词汇 )。 10 根据说明中的描述,将类 C2和 C3的属性补充完整 (属性名使用说明中给出的英文词汇 )。 二、选答题(共 3道大题,每道大题
10、 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 10 阅读下列说明和 C代码,回答以下问题,将解答写在答题纸的对应栏内。 【说明】 用两台处理机 A和 B处理 n个作业。设 A和 B处理第 i个作业的时间分别为ai和 bi。由于各个作业的特点和机器性能的关系,对某些作业,在 A上处理 时间长,而对某些作业在 B上处理时间长。一台处理机在某个时刻只能处理一个作业,而且作业处理是不可中断的,每个作业只能被处理一次。现要找出一个最优调度方案,使得 n个作业被这两台处理机处理完毕的时间 (所有作业被处理的时间之和 )最少。 算法步骤: (1)确
11、定候选解上界为 R段的单台处理机处理所有作业的完成时间 m: (2)用 p(x, y, k)=1表示前志个作业可以在 A用时不超过 z且在 B用时不超过 y时间内处理完成,则 p(x, y, k)=p(x一 ak, y,k一 1)|p(x, y一 bk, k一 1)(|表示逻辑或操作 )。 (3)得到最短处理时间为min(max(z, y)。 【 C 代码】 下面是该算法的 C语言实现。 (1)常量和变量说明 n:作业数 m:候选解上界 n:数组,长度为 n,记录 n个作业在 A上的处理时间,下标从 0开始 b:数组,长度为 n,记录 n个作业在 B上的处理时间,下标从0开始 k:循环变量 p
12、:三维数组,长度为 (m+1)*(m+1)*(n+1) temp:临时变量 max:最短处理时间 (2)C代码 #include 11 根据以上说明和 C代码,填充 C代码中的空 (1) (5)。 12 根据以上 C代码,算法的时间 复杂度为 (6) (用 O符号表示 )。 13 考虑 6个作业的实例,各个作业在两台处理机上的处理时间如下表所示。该实例的最优解为 (7) ,最优解的值 (即最短处理时间 )为 (8) 。最优解用 (X1, X2, x3,x4, x5, x6)表示,其中若第 i个作业在 A上处理,则 xi=1,否则 xi=2。如 (1, 1,1, 1, 2, 2)表示作业 1,
13、2, 3和 4在 A上处理,作业 5和 6在 B上处理。 14 阅读下列说明和 C+代码,将应填入 (1) (6)处的字句写在答题纸的对应栏内。 【说明】 某咖啡店当卖咖啡时, 可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如下表所示。 【 C+代码】 #include#includeusing namespace std; const int ESPRESSO_PRICE=25; const int DRAKROAST_PRICE=20; const int MOCHA_PRICE=10; const int WHIP_PRIC
14、E=8; class Beverage饮料 (1) :string description; public: (2) ()return description; (3) ; ; class condimentDecorator: public Beverage配料 protected: (4) ; ; class Espresso: public Beverage蒸馏咖啡 public: Espresso()description=“Espresso”; int cos t()return ESPRESSO_PRICE; ; class DarkRoast: public Beverage深度
15、烘焙咖啡 public: DarkRoast()description=“DardRoast”; int cost()return DRAKROAST_PRICE; ) ; class Mocha: public condimentDecorator摩卡 public: Mocha(Beverage*beverage)this-beverage=beverage; string getDescription()return beverage-getDescription()+”, Mocha”; int cost()return MOCHA_PRICE+beverage-cost(); ; c
16、lass Whip: public CondimentDecorator奶泡 public: Whip(Beverage*beverage)this-beverage=beverage; string getDescription()return beverage-getDescription()+“, Whip”; int cost()return WHIP_PRICE+beverage-cost(); ; Int main() Beverage*beverage=new DarkRoast(); beverage=new Mocha( (5) ); beverage=new Whip( (
17、6) ); coutbeverage getDescription() ”¥ ” beverage- cost() endl; return 0; 编译运行上述程序,其输出结果为: DarkRoast, Mocha, Whip,¥ 38 15 阅读 下列说明和 Java代码,将应填入 (1) (6)处的字句写在答题纸的对应栏内。 【说明】 某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如下表所示。 现采用装饰器 (Decorator)模式来实现计算费用的功能,得到如图 61所示的类图。 Java代码】 impo
18、rt java util *; (1) class Beverage饮料 String description=“Unknown Beverage”; public (2) ()(return description; public (3) ; abstract class CondimentDecorator extends Beverage 配料 (4) ; class Espresso extends Beverage蒸馏咖啡 private final int ESPRESSO_PRICE=25; public Espresso()(description=“Espresso”; pu
19、blic int cost()return ESPRESSO_PRICE; class DarkRoast extends Beverage(深度烘焙咖啡 private finalint DARKROAST_PRICE=20; public DarkRoast()description=“DarkRoast”; public int cost()rcturn DARKROAST PRICE; class Mocha extends CondimentDecorator摩卡 private final int MOCHA_PRICE=10; public Mocha(Beverage beve
20、rage) this beverage=beverage; public String getDescription() return beverage getDescription0 + “, Mocha”; public int cost() return MOCHA_PRICE+beverage cost(); class Whip extends CondimentDecorator奶泡 private finalint WHIP_PRICE=8; public whip(Beverage beverage)this beverage= beverage; public String
21、getDescription() return beverage getDescription()+“, Whip”; public int cost()return WHIP_PRICE+beverage cost(); publ ic class Coffee public static void main(String args) Beverage beverage=new DarkRoast(); beverage=new Mocha( (5) ); beverage=new Whip( (6) ); System out println(beverage getDescription
22、() +”¥ ” +beverag e cost(); 编译运行上述程序,其输出结果为: DarkRoast, Mocha, Whip¥ 38 2012年上半年软件水平考试(中级)软件设计师下午(应用技术) 真题试卷答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 【正确答案】 E1:借阅者 E2:图书管理员 E3 E4:学生数据库职工数据库 【试题解析】 由题目知,借阅者要借阅图书时,系统必须对其身份进行检查,而身份检查是通过验证借阅者 ID实现的,而验证借阅者 ID则是通过与学生数据库和职工数据库的数据进行比对实现的, E3、 E4 处分别填入学生数据库和职工数据库。 图书管理
23、系统验证借阅者的 ID后,检查其是否有逾期未归还的图书,如果有,则给借阅者发送逾期未还提醒,很显然, E1为借阅者 。 图书维护时,要对图书进行查询、新书信息录入、书目删除等操作,进行这些操作的是图书管理员。因此 E2为图书管理员。 2 【正确答案】 D1:图书表 D2:借出图书表 D3:逾期未还图书表 D4:罚金表 【试题解析】 图书管理员要从图书表中查询图书信息;新进图书时,需要将新书信息录入图书表;在图书丢失或损坏严重时,需要从图书表中删除该图书记录。由此可知, D1为图书表。 借阅图书时,需要检查借阅者在逾期未还图书表中是否有逾期未还图书,以及罚金表中的罚金是否超过限额。 D4与罚金的
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 2012 上半年 软件 水平 考试 中级 设计师 下午 应用技术 答案 解析 DOC

链接地址:http://www.mydoc123.com/p-493040.html