本栏目下题库来源于互联网,轻速云承诺对于用户导入平台的题库是严格保密的,不会在此呈现!
轻速云给您提供更好的在线考试系统服务!
2007年上半年软件设计师下午试题
1、【 简答题
试题二(共15 分)
阅读下列说明,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。
[说明]
某医院的门诊管理系统实现了为患者提供挂号、处方药品收费的功能。具体的需求及
设计如下:

1.医院医师具有编号, 姓名, 科室, 职称, 出诊类型和出诊费用,其中出诊类型分为专家门诊和普通门诊,与医师职称无关;各个医师可以具有不同的出诊费用,与职称和出诊类型无关。
2.患者首先在门诊挂号处挂号,选择科室和医师,根据选择的医师缴纳挂号费(医师出诊费)。收银员为患者生成挂号单,如表 2-1 所示,其中,就诊类型为医师的出诊类型。
    
3.患者在医师处就诊后,凭借挂号单和医师手写处方到门诊药房交费买药。收银员根据就诊号和医师处方中开列的药品信息,查询药品库(如表 2-2 所示)并生成门诊处方单(如表 2-3 所示)。
    
4.由于药品价格会发生变化,因此,门诊管理系统必须记录处方单上药品的单价。
根据需求阶段收集的信息,设计的实体联系图和关系模式(不完整)如下所示:

1. 实体联系图
    
2.关系模式
挂号单(就诊号, 病患姓名, 医师编号, 时间, (5) )
收银员(编号, 姓名, 级别)
医师(编号, 姓名, 科室, 职称, 出诊类型, 出诊费用)
门诊处方 ( (6) , 收银员, 时间 )
处方明细(就诊号, (7) )
药品库 (药品编码, 药品名称, (8) )

[问题1](4 分)
根据问题描述,填写 2-1 实体联系图中(1) (4)处联系的类型。

[问题2](4分)
图 2-1 中还缺少几个联系?请指出每个联系两端的实体名,格式如下:

实体 1:实体 2
例如,收银员与门诊处方之间存在联系,表示为:
收银员:门诊处方或门诊处方:收银员

[问题3](7分)
根据实体联系图 2-1,填写挂号单、门诊处方、处方明细和药品库关系模式中的空(5)~(8)处,并指出挂号单、门诊处方和处方明细关系模式的主键。 [15分]
解析:
【问题1】(1)1
 (2)*,或 n , 或 m
 (3)*,或 n , 或 m
 (4)*,或 n , 或m

【问题2】缺少的联系数:3
 挂号单:收银员
 挂号单:医师
 挂号单:门诊处方

【问题3】(5)收银员
 (6)就诊号
 (7)药品编码,数量,单价
 (8)类型,库存,货架编号,单位,价格,单价
 挂号单主键:就诊号
 门诊处方主键:就诊号
 处方明细主键:就诊号、药品编码
2、【 简答题
试题三(共15 分)
阅读下列说明和图,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。
[说明]
某图书管理系统的主要功能如下:

1.图书管理系统的资源目录中记录着所有可供读者借阅的资源,每项资源都有一个唯一的索引号。系统需登记每项资源的名称、出版时间和资源状态(可借阅或已借出)。
2.资源可以分为两类:图书和唱片。对于图书,系统还需登记作者和页数;对于唱片,还需登记演唱者和介质类型(CD 或者磁带)。
3.读者信息保存在图书管理系统的读者信息数据库中,记录的信息包括:读者的识别码和读者姓名。系统为每个读者创建了一个借书记录文件,用来保存读者所借资源的相关信息。现采用面向对象方法开发该图书管理系统。识别类是面向对象分析的第一步。比较常用的识别类的方法是寻找问题描述中的名词,再根据相关规则从这些名词中删除不可能成为类的名词,最终得到构成该系统的类。表 3-1 给出了[说明]中出现的所有名词。
    
通过对表 3-1 中的名词进行分析,最终得到了图 3-1 所示的 UML 类图(类的说明如表 3-2 所示)。
   
    
[问题1](3分)
表 3-2 所给出的类并不完整,根据[说明]和表 3-1,将图 3-1 中的(a)~(c)处补充完整。

[问题2](6分)
根据[说明]中的描述,给出图 3-1 中的类 CatalogItem 以及(b)、(c)处所对应的类的关键属性(使用表 3-1 中给出的词汇),其中,CatalogItem 有 4 个关键属性;(b)、(c)处对应的类各有 2 个关键属性。

[问题3](6分)
识别关联的多重度是面向对象建模过程中的一个重要步骤。根据[说明]中给出的描述,完成图 3-1 中的(1)(6)。 [15分]
解析:
【问题1】(A)资源目录 (B)图书 (C)唱片

【问题2】 CatalogItem的属性:索引号、名称、出版时间、资源状态
 图书的属性:作者、页数
 唱片的属性:演唱者、介质类型

【问题3】(1)1 (2)0..* (3)1 (4)0..* (5) 1 (6)1或者 0..1
3、【 简答题
试题四(共15 分)
阅读以下说明和图,填补流程图中的空缺,将解答填入答题纸的对应栏内。
[说明]
在一条农村公路的一边稀疏地分布着房子,其分布如图 4-1 所示。某电信公司需要在某些位置放置蜂窝电话基站,由于基站的覆盖范围是 6 公里,因此必须使得每栋房子到某个基站的直线距离不超过 6 公里。为简化问题,假设所有房子在同一直线上,并且基站沿该直线放置。现采用贪心策略实现用尽可能少的基站覆盖所有的房子。
    
实现贪心算法的流程如图 4-2 所示,请填充其中空白并计算该算法的时间复杂度,其中:
    

1.d[i](1≤i≤N)表示第 i 个房子到公路 A 端的距离,N 表示房子的总数,房子的编号按照房子到公路 A 端的距离从小到大进行编号。

2.s[k]表示第 k(k ≥1)个基站到公路 A 端的距离,算法结束后 k 的值为基站的总数。
该算法的时间复杂度为 (5) 。 [15分]
解析:
  (1) k=0
 (2) j<=N
 (3) k=k+1
 (4) d[i] + 6
 (5) O(N)
4、【 简答题
试题七(共15 分)
阅读下列说明和Java 代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
[说明]
某游戏公司现欲开发一款面向儿童的模游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子类及其特征如表 7-1 所示:
表7-1
    
其中,Duck 为抽象类,描述了抽象的鸭子,而类 RubberDuck、MallardDuck、CottonDuck和 RedHeadDuck 分别描述具体的鸭子种类,方法 fly()、quack()和 display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;类 FlyBehavior 与 QuackBehavior 为抽象类,分别用于表示抽象的飞行行为与发声行为;类 FlyNoWay 与 FlyWithWings 分别描述不能飞行的行为和用翅膀飞行的行为;类 Quack、Squeak 与 QuackNoWay 为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(Strategy)设计的类图如图 7-1 所示:
    
其中,Duck 为抽象类,描述了抽象的鸭子,而类 RubberDuck、MallardDuck、CottonDuck和 RedHeadDuck 分别描述具体的鸭子种类,方法 fly()、quack()和 display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;接口FlyBehavior 与 QuackBehavior 分别用于表示抽象的飞行行为与发声行为;类 FlyNoWay 与 FlyWithWings 分别描述不能飞行的行为和用翅膀飞行的行为;类 Quack、Squeak 与QuackNoWay 分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行与不发声的行为。请填补以下代码中的空缺。

[Java 代码]
(1)FlyBehavior {
public void fly();
};
(2)QuackBehavior {
public voidquack();
};
class FlyWithWings implements FlyBehavior{
public void fly(){System.out.println(“使用翅膀飞行!”); }
};
class FlyNoWay implementsFlyBehavior{
public void fly(){System.out.println(“不能飞行!”); }
};
classQuackimplementsQuackBehavior{
public voidquack(){System.out.println(“发出\'嘎嘎\'声!”); }
};
classSqueakimplementsQuack Behavior{
public voidquack(){System.out.println(“发出空气与橡皮摩擦声!”); }
};
classQuackNoWay implementsQuackBehavior{
public voidquack(){System.out.println(“不能发声 !”); }
};
abstract class Duck{
protectedFlyBehavior (3);
protectedQuackBehavior (4);
public void fly(){ (5); }
public void quack() { (6) ; };
public(7) void display();
};
classRubberDuckextends Duck{
publicRubberDuck(){
flyBehavior = new(8) ;
quackBehavior = new(9) ;
}
public void display(){ /* 此处省略显示橡皮鸭的代码 */}
};
//其它代码省略 [15分]
解析:
  (1) intErFACE
 (2) interface
 (3) flyBehavior
 (4) quackBehavior
 (5) flyBehavior.fly
 (6) quackBehavior.quack()
 (7) abstract
 (8) FlyNoWay()
 (9) Squeak()
1
1页,共4个题库
1页,共4个题库
轻速云给您提供更好的在线考试系统服务!
推荐
推荐题库
众多企事业单位的信赖之选
36万+企事业单位的共同选择
查看更多合作案例
众多企事业单位的信赖之选
开始使用轻速云组织培训考试
四步组织一场考试答题,一键搭建企业培训平台
免费使用 免费使用 预约演示
咨询热线
400-886-8169
周一到周日 8:00-22:00
©2023 轻速云 苏ICP备16049646号-1 轻速云科技提供专业的在线考试系统、在线培训系统
联系我们
客服热线客服热线:400-886-8169 | 周一至周日 8:00-22:00
©2023 轻速云 苏ICP备16049646号-1
轻速云科技提供专业的在线考试系统、在线培训系统
在线咨询 400-886-8169