问答题

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

图书管理系统 资源目录 读者 资源
索引号 系统 名称 出版时间
资源状态 图书 唱片 作者
页数 演唱者 介质类型 CD
磁带 读者信息 读者信息数据库 识别码
姓名 借书记录文件 信息  

  通过对表10-4中的名词进行分析,最终得到了图10-4所示的UML类图(类的说明如表10-5所示)。
                           表10-5
 

类名 说明
 LibrarySystem  图书管理系统
 BorrowerDB  保存读者信息的数据库
 CatalogItem  资源目录中保存的每项资源
 Borrower  读者
 BorrowerItems  为每个读者创建的借书记录文件

 

【问题1】表10-5所给出的类并不完整,根据[说明]和表10-4,将图10-4中的(a)~(c)处补充完整。

【参考答案】

(a)资源目录 (b)图书 (c)唱片 注:(b)和(c)的答案可以互换

热门 试题

问答题
【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-7所示: 表10-7 为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(Strategy)设计的类图如图10-12所示: 其中,Duck为抽象类,描述了抽象的鸭子,而类RubberDuck、MallardDuck、 CottonDuck 和 RedHeadDuck分别描述具体的鸭子种类,方法fly()、quack()和display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;接口FlyBehavior与 QuackBehavior分别用于表示抽象的飞行行为与发声行为;类FlyNoWay与FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak与QuackNoWay分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。请填补以下代码中的空缺。 【Java代码】 (1) FlyBehavior{ public void fly(); }; (2) QuackBehavior{ public void quack(); }; class FlyWithWings implements FlyBehavior{ public void fly(){System.out.println(“使用翅膀飞行!”);} }; class FlyNoWay implements FlyBehavior{ public void fly(){System.out.println(“不能飞行!”);} }; class Quack implements QuackBehavior{ public void quack(){System.out.println(“发出 ‘嘎嘎 ’声!”); } }; class Squeak implements QuackBehavior{ public void quack(){System.out.println(“发出空气与橡皮摩擦声 !”); } }; class QuackNoWay implements QuackBehavior{ public void quack(){System.out.println(“不能发声!”);} }; abstract class Duck{ protected FlyBehavior (3) ; protected QuackBehavior (4) ; public void fly(){ (5) ; } public void quack() { (6) ;}; public (7) void display(); }; class RubberDuck extends Duck{ public RubberDuck(){ flyBehavior=new (8) ; quackBehavior=new (9) ; } public void display(){ *此处省略显示橡皮鸭的代码* } }; 其他代码省略