面向对象分析与设计试题 A 卷
一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将
正确答案的序号填在题干的括号内。每小题 1 分,共 20 分 )
1. 到 20 世纪末,面向对象软件工程已经逐渐发展成熟,特别是(
) 的
出现和广泛使用,使面向对象方法成为了软件开发的主流方法。
A. OMT
B. OOSE
D. UML
C.
C++
2.(
)为编程人员提供了重复利用程序资源的一种途径,使编程人员
可以扩充和完善旧的程序以适用新的需求。
A. 封装机制
B. 抽象机制
C. 多态机制
D. 继承机制
3. 面向对象程序设计中用(
) 来描述具有相同属性和行为的对象集合。
A. 实体
B. 对象
C. 类
D. 类模板
4. 下列语言中, (
) 是一种混合型面向对象编程语言。
A. C 语言
B. Java 语言
C.
Basic 语言
D. C++语言
5. 下列不属于类的成员函数的是 (
)。
A. 构造函数
B. 析构函数
C. 缺省构造函数
D. 友元函数
6. 多态机制的作用是 (
)。
A. 信息隐藏
C. 派生新类
B. 实现“一种接口,多种方法”
D. 数据抽象
7. 合理地利用( ), 既可以实现部分成员隐蔽,又能方便部分成员的继
承,实现代码的高效重用和扩充。
A.公有继承
B.保护继承
C.友员函数
D.私有继承
8. (
)经过实例化而生成具体的类。
A.抽象类
B.函数模板
C.类模板
D.对象
9. 类的析构造函数是在 (
) 时调用的。
A.不自动调用 B.创建对象 C.删除对象 D.创建派生类对象
10.在公有继承的情况下,基类的( )成员无法继承到派生类中。
A. 公有成员
B. 保护成员
C. 私有成员
D. 静态成员
11. 在类族中通过定义 (
) 来实现运行时多态。
A. 类的嵌套
B. 类的继承
C. 抽象类
D. 虚函数
12. UML 提供了 4 种结构图用于对系统的静态方面进行可视化、详述、构
造和文档化。其中(
)不属于这类视图。
A. 对象图
B. 类图
C. 协作图
D.组件图
13.(
)是从用户使用系统的角度描述系统功能的图形表达方法。
A.序列图
B. 协作图
C. 类图
D. 用例图
14. 在一个“库存管理系统”中,入库管理和出库管理都需要检查用户帐
号是否正确。那么,用例“入库管理”、“出库管理”与用例“检查
用户帐号”之间是(
)关系。
A.扩展
B.包含
C.使
用
D.泛化
15.(
)是表达构成系统的类及其相互联系的图示。
A. 对象图
B.类图
C.组件图
D.配置
图
16. (
)是用来描述实现某些服务所涉及的对象及其相互之间的协作
关系(包括消息通信)的动态视图。
A.状态图
B.活动图
C.序列
图
D.协作图
17. 下面哪个选项中 (
)不是序列图中的基本元素。
A.对象
B. 生命线
C. 泳道
D. 消息
18. 以下是图书管理系统的相关类,属于控制类的是(
)
A.图书类
B. 读者类
C.身份验证类
D.借书操作界面类
19. 在用 UML 进行数据库的分析与设计过程中,(
) 就是进行数据库的
需求分析,使用用例图等建立业务模型。
A. 逻辑数据模型设计
C. 物理数据模型设计
B 业务 Use Case 模型设计
D. 物理实现设计
20. 基于 UML 的关系数据库设计中,将类与类之间“多对多”的关联映射
成关系数据模型时应建立一个(
)来实现多对多的关联。
A. 视图
B. 超类表
C.关联表
C. 子表
二、填空题 ( 每空 1 分,共 20 分 )
1. 作为模拟人们_( 1 )_和_( 2 )_客观世界思维方式的面向对象技
术,它也提供了_( 3 )_的机制,使_( 4 )_成为了 C++面向对象技
术的最重要的基本特征。即 C++面向对象技术将具有共性的事物抽象成
_( 5 )_,允许定义新的_( 6 )_,并建立合理的_( 7 )_结构,以
精确地描述客观事物之间的联系。 C++的这种机制为编程人员提供了
_( 8 )_程序资源的一种途径,编程人员可以扩充和完善_( 9 )_以适
用_( 10 )_,可用继承机制实现代码重用和代码扩充,大大提高程序的
开发效率。
2. 使用 UML 进行数据库设计,可以把_( 11 )_与_( 12 )_结合在一
起进行。传统的_( 13 )_仅仅着眼于数据的描述,而基于 UML 的_( 14 )
_不但对数据建模,而且能对_( 15 )_建模。所以,使用 UML 能够更
好地对数据库建模。逻辑数据模型设计的主要任务是确定应用系统所需要
的持久数据。使用_( 16 )_等建立数据库逻辑模型。如果是关系数据库
设计,则需要设计出表达持久数据的_( 17 )_及其_( 18 )_,并把它
们映射成为_( 19 )_、_( 20 )_等。
三、写出下列程序的输出结果。 ( 满分 10 分 )
#include
class A
{
public:
virtual void print(){cout<< " printing of class A. " << endl; };
};
class B: publicA
{
public:
void print(){
} ;
};
class C: public B
{
public:
void print(){cout<< " printing of class C. " <print();
p=&b; p->print();
p=&c; p->print();
}
四. 简答题(每小题 5 分,共 20 分)
1. 为什么面向对象软件开发方法能够更有效地克服软件危机?
2. 如何实现运行时多态?
3. 简述基于 UML 的面向对象分析与设计的方法步骤。
4. 简述基于 UML 的数据库系统分析和设计的方法步骤。
五. 试用 UML 对新闻发布系统及相关的数据库系统进行分析和设计。
假设管理员可以在后台对新闻、评论、注册会员进行管理,并发布新闻;
任何游客可以浏览新闻,浏览者注册后可以成为系统会员;注册会员可以
发表新闻评论。新闻信息实体的主要属性主要包含标题(title)、内容
(content)、发布日期(DateTime),主要操作有添加新闻(Addnews)、删除
新闻(Delnews)、修改新闻(Modinews); 评论实体的主要属性包含新闻标
识(ArticleID)、评论者名(UserName)和评论内容(body),主要操作有添
加评论(AddRemark)、删除评论(DelRemark); 会员实体的主要属性有会员
编号(MemberNo)、会员密码(Memberpsw)、会员名字(MemberName)、
会员描述(MemberDesc)等,主要操作有登陆(Login);管理员实体的主
要 属 性 有 管 理 员 编 号 ( AdmNo )、 会 员 密 码 ( Admpsw )、 会 员 名 字
(AdmName)等, 主要操作有添加用户(Adduser)、删除新闻(Deluser)。
请完成下列工作:
(1)画出系统用例图;(10 分)
(2)画出分析类图;(5 分)
(3)画出“新闻管理”的活动图;(5 分)
(4)将类图转换成关系数据库逻辑模型。(10 分)
面向对象分析与设计试题参考答案
一、单项选择题 ( 每小题 1 分,共 20 分 )
1.D
2.D
6.B
7.B
11.D 12.C
16.D 17.C 18.C
3.C
4.D
8.C
9.C
13.D 14.B
19.B
5.D
10.C
15.B
20.C
二、填空题 ( 每空 1 分,共 20 分 )
1. (1)理解 (2)处理 (3)继承 (4)继承性 (5)类 (6)派生
类 (7)层次结构 (8)重复利用 (9)旧的程序 (10)新的需求
2. (11)数据库设计 (12)应用程序设计(13)ER 图 (14)对象类图
(15)行为 (16)类图 (17)实体类 (18)联系 关系数据库表、
(20)视图
三、写出下列程序的输出结果。
printing of class A.
printing of class C.
四. 简答题
1. 简述面向对象技术发展的动因。
答:面向对象开发方法一改过去传统的以功能分析为基础的面向过程的结
构化分析与设计方法,面向对象开发方法模拟人们理解和处理客观世界的
方式来分析问题,把系统视为一系列对象的集合,其面向对象的设计又将
分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较
直接的对应关系,使分析者、设计者和编程者都可使用相同的概念,从而
使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空
间与解空间在结构上尽可能一致。因此,采用面向对象方法可以更有效地
开发大型软件系统。面向对象方法的封装、继承、多态等机制不仅支持软
件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更
好地克服软件危机。
2. 如何实现运行时多态?
答:在类层次结构的不同类中,将函数名相同但实现功能不同的函数定
义为虚函数。然后定义一个基类的对象指针就可以指向不同派生类的对
象,来调用不同派生类的虚函数,实现运行时多态。
3. 简述基于 UML 的面向对象分析与设计的方法步骤。
答:基于 UML 的面向对象系统开发方法也可以分为如下步骤:
(1)系统需求—用用户能懂的语言—用例描述用户需求;
(2)系统分析—用开发人员的语言描述用户需求,获得类图和对象图,作
为构造系统的分析模型;
(3)系统设计—用编程语言更精确地描述类图和对象图,为将类图和对象
图映射到编码系统做好准备。
(4)系统实现—用源代码、脚本语言、二进制代码、可执行子程序或组件
实现系统。
4. 简述基于 UML 的数据库系统分析和设计的方法步骤
基于 UML 的关系数据库设计与传统的关系数据库设计的过程类似,一
般分为 4 个阶段:
• 业务 Use Case 模型设计:就是进行数据库的需求分析,使用用例
图等建立业务模型。
• 逻辑数据模型设计:主要是确定应用系统所需要的持久数据。使用
类图、顺序图、活动图、状态图等建立数据库逻辑模型。如果是关
系数据库设计,则需要设计出表达持久数据的实体类及其联系,并
把它们映射成为关系数据库表(Table)、视图(View)等。
• 物理数据模型设计:使用类图、组件图、配置图等,设计数据库的
物理模型。
• 物理实现设计:把物理数据模型转换成实际环境中的数据库系统。
结合实际的数据库环境,定义构成数据库的基本表、文件的组织方
式和处理方式等。
5.(1) 系统用例图如下
答(1)系统用例图如下
(2)类图如下
(3)“新闻管理”的活动图如下:
(4)只需将其中的类转换成对应的关系数据表。