面向对象分析与设计试题A卷资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9.
面向对象分析与设计试题
一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将 正确答案的序号填在题干的括号内。
每小题 1 分,共 20 分 )
1. 软件技术的发展经历了多代历程,第( )代是 80 年代开始的以
Smalltalk 、C++ 等为代表的面向对象软件开发方法2. 面向对象的运动产生了多种面向对象的语言 , 其中( )是一种混合性 面向对象语
言 , 既支持面向过程的程序设计方法,又支持面向对象的程序 设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的 程序设计能得到很快普及。
A. Smalltalk
B. Eiffel
C. C++
3 .面向对象技术的最重要的基本特征是 ( )。
A. 抽象性 B. 封装性 C. 多态性 4. 面向对象程序设计将描述事物的数据与 互依存、
不可分割的整体来处理。
10.
类模板经过实例化而生成具体 A. 对象 C. 函数模板
A.
B.
C.
D. 四
(OO) 。
D. Java
D. 继承性
( ) 封装在一起 ,作为一个相
A. 信息
B. 数据隐藏
C. 对数据的操作
D. 数据抽象
5. 关于面向对象方法的优点,下列不正确的叙述是
A. 与人类习惯的思维方法比较一致 C. 以数据操作为中心 6. C++ 对 C 语言作了很多改进,
因是 ( ) 。
A. 增加了一些新的运算符
C. 规定函数说明符必须用原型 下列符号不能组成标识符的是 A. 数字字符 B. 下划线
下列不属于类的成员函数的是
A. 构造函数
B. 析构函数 继承机制的作用是 ( )。
A. 信息隐藏
B. 数据封装
7. 8. )。
B. 可重用性好 D.可维护性好
即从面向过程变成为面向对象的主要原
B. 允许函数重载, 并允许设置缺省参数
D. 引进了类和对象的概念 )。
C. 大小写字母
D. 连接符
)。
C. 友元函数
D. 拷贝构造函数
C. 派生新类
D. 数据抽象
B. 模板函数 D. 类
11. 类的析构函数是在 ( ) 调用的。
A. 类创建时
B. 创建对象时
C. 删除对象时
D. 不自动调用
12. 在公有继承的情况下,基类成员在派生类中的访问权限
A. 受限制
B. 保持不变
C. 受保护 13. . C++ 语言通过 ( ) 来建立类族。
A. 类的嵌套
B. 类的继承
C. 虚函数
14. ( )是从用户使用系统的角度描述系统功能的图形表达方法。
A. 类图
B. 对象图
15. ( ) 是表达系统类及其相互联系的图示
立状态图、协作图和其他图的基础。
A .对象图 16.( )描述了一组交互
对象间的动态协作关系, 对象和这些对象之间传递消息的时间顺序。
A .对象图 B.协作图 C.状态图 D.序列图
17(. )就是用于表示构成分布式系统的节点集和节点之间的联系的图示, 它可以表示系统
中软件和硬件的物理架构。
C. 状态图
18. 在用 UML 进行数据库的分
析与设计过程中, ( ) 就是进行数据库的 需求分析,使用用例图、类图、顺序图、活动图等建立业务模型。
A. 逻辑数据模型设计 B 业务 Use Case 模型设计 C. 物理数据模型设计
D. 物理实现设计
19. 使用 UML 进行关系数据库的 ( )时,需要设计出表达持久数据的实 体类及其联
系,并把它们映射成为关系数据库表( Table) 、视图 (View) 等。
A. 业务 Use Case 模型设计
B. 逻辑数据模型设计
C. 物理数据模型设计
C. 物理实现设计
20. UML 视图有 5 种,其中( )用于描述系统的动态行为,也称动态视 图。
A. 用户模型视图 C. 行为模型视图
( ) D. 不受保护
D. 抽象类
C. 序列图
,它是面向对象设计的核心,建
D. 用例图
B. 组件图
C. 类图
D. 配置图
它表示完成某项行为的
B. 协作图 A. 组件图
D. 配置图
B. 结构模型视图 D. 实现模型视图
二、填空题 ( 每空 1 分,共 20 分 )
1. 面向对象开发方法一改过去传统的以 _____________________ 为基础的
_______________ 的结构化分析与设计方法,它模拟人们理解和处理 客观世界的方式来分析问题,把系统视为一系列 _______________________ 的集合,其 _______________ 又将分析的结果映射到某种面向对象实现工具的结 构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编 程者都可使用相同的 _______________ ,从而使面向对象的软件开发能比较自然
地模拟客观世界的活动,使问题描述空间与 ___________________ 在结构上 尽可能一致。
因此,采用面向对象方法可以更有效地开发大型软件系 统。
面向对象方法的
支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的
柔 性制造,更好地克服 ____________ 。
因此,它已成为成熟的广为采 用的软件开发方法。
2. 对象是客观实体的抽象表示,是由 ___________________________________
两部分组成。
而 是对具有相同 属性和行为的一组对象的抽象描述。
因此,它可作为一种用户自定义 类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就 是类的 。
通过 关系又可形成一种类层次结构。
在类层次结构的不同类中,可用相同的函数名实现功能不同的函数, 面向对象技术的这种特性叫做
3. UML 中用于描述系统的动态行为的视图称为动态视图,
、 __ 和
#include <iostream.h> #include <string.h> class Person
{
public:
Person(char *s)
{
name=new char[strlen(s)+1]; strcpy(name, s);
等机制不仅。
通过
包括
三、写出下列程序的输出结果。
( 满分 10 分 )
}
virtual void print()
{ cout<< ”My name is ”<<name<<endl; } protected:
char *name;
};
class Student:public Person
{ public:
Student(char *s, float g):Person(s) { avg=g; } void print(char *s)
{ cout<<s<< ”My name is “<<name<< ”and my grade is ”<<avg<<endl; } private:
float avg;
};
class professor:public Person
{ public:
Professor(char *s, int n):Person(s) { publs=n; } void print()
{ cout<< ”My name is ”<<name<< ”and I have ”<<publs
<< ”publication. ”<<endl; }
private: int publs;
};
void main(void)
{ Person *p;
Person x( “Zhang ”);
Student y( “Wang ”,4, 2); Professor z( “Liu ”,5); p=&x; p=&y; p=&z;
四. 简答题(每空 4 分,共20 分)p->print(); p->print(); p->print(); }
五 . 试用 UML 对学生选课系统及相关的数据库系统进行分析和设计。
学生 选课系统一般包括 (1) 选课管理功能; (2) 成绩管理功能。
试完成下列工作: ( 1)建立系统静态结构模型 —画出系统用例图和类图;( 10 分) ( 2)建立系统动态结构模型 —画出系统序列例图和协作图;( 10 分) ( 2)建立关系数据库逻辑模型。
( 10 分)
1. 2. 3. 4. 5.
简述面向对象技术发展的动因。
简述面向对象技术的三大机制。
简述面向对象分析的基本步骤。
简述 OOD 模型的总体结构,并画图表示。
应用 UML 进行系统分析和设计所需建立视图有那几种?
面向对象分析与设计试题参考答案
1. C
2. C
3. D
4. C
5. C
6. D
7. D
8. C
11. C 12. B 13. B 14. D
15.C
16. D 17. D 18. B 19. B
20.C
3. 序列图,状态图,活动图,协作图 三、写出下列程序的输出结果。
My name is Zhang.
My name is Wang and my grade is 2. My name is Liu and I have 5 publications.
四 . 简答题
1. 简述面向对象技术发展的动因。
答:传统的结构化程序设计以算法为核心,把本来
密切相关的数据和对数 据的操作相分离,很难保持数据和操作的一致性,其软件开发方法不同于 人们的自然思维习惯 ,设计出来的软件系统其解空间与问题空间不一致, 使程序难以理解、修改和扩充,最终导致程序复杂性问题和软件危机。
为了超越程序复杂性障碍, 克服软件危机 ,人们提出了面向对象软件开 发方法。
面向对象开发方法一改过去传统的以功能分析为基础的面向过程 的结构化分析与设计方法,面向对象开发方法模拟人们理解和处理客观世 界的方式来分析问题,把系统视为一系列对象的集合,其面向对象的设计 又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着 比较直接的对应关系,使分析者、设计者和编程者都可使用相同的概念, 从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描 述空间与解空间在结构上尽可能一致。
因此,采用面向对象方法可以更有 效地开发大型软件系统。
面向对象方法的封装、继承、多态等机制不仅支 持软件复用, 而且使软件维护工作可靠有效, 可实现软件系统的柔性制造, 更好地克服软件危机。
因此,它已成为成熟的广为采用的软件开发方法。
2. 简述面向对象技术的三大机制。
、单项选择题 (
每小题 分,共 20 分 )
二、填空题 ( 每空 面向过程 , 对象 ,面向对象的设计 , 概念 ,解空间 ,封装 , 继承 , 1 分,
20 分 )
1. 功能分析 , 多态 , 软件危机
2.描述对象属性的数据 , 对这些数据进行的操作行为
, 类, 实例,继承, 多态性 9.
C 10.D
答:(1)封装性(encapsulation)
所谓封装就是把对象的属性和行为结合成一个独立的单位,使外界不
能直接访问或修改这些数据和代码,外界只能通过对象提供的接口函数来改变或获取对象的属性数据,这就实现了消息隐蔽。
(2)继承性
如果在一个已定义的类上,增加一些特殊属性或操作,可以形成一个新
的类,这个类不仅继承了前一个类的全部特征,而且具有新的特性,因此可看作前一个类的特例,是对前一个类的继承。
前一个类称为父类,新产生的类叫做子类。
通过继承关系可形成一种类层次结构,叫做继承结构。
(3)多态性
在类层次结构的不同类中,可用相同的函数名实现功能不同的函数。
3. 简述面向对象分析的基本步骤。
(1)分析问题域,明确用户需求
a•系统问题域说明:应用系统的业务范围
b. 系统边界说明:确定系统与用户之间接口
c. 系统功能说明:系统需要实现的功能
(2)确定对象和类。
(3)确定各对象类之间的关系,画出类图。
(4)进一步协调和优化各个组成部分(即对象)的性能和相互关系,精炼
侯选的类/对象,使系统成为由不同部分组成的最小集合。
(5)分析和设计每个组成部分(即对象)的功能实现细节,检查分析模型
的一致性和完整性。
4. 简述OOD 模型的总体结构,并画图表示。
OOD 体系结构的各个部分内容:
(1)问题论域部分,在00A 模型的基础上,细化分析结果,设计一组构成底层 应
用模型的类和对象。
(2) 人机交互部分:设计用户界面模型 ,该用户界面模型中的类和对象提
供实现人机交互操作的接口函数。
用户界面设计包括 菜单设计、窗口设计、
输入/输出界面设计等等。
(3) 任务管理部分:建立一些类,用以负责处理操作系统级的并发问题、 中断、调度以及其它与特定平台有关的问题。
(4)数据管理部分:提供数据管理系统中存储和检索对象的基本结构, 包括对永久性数据的访问和管理。
数据管理设计包括:
—数据存放设计:数据存放设计选择数据存放的方式(文件存放、 关系数据库
表格存放或面向对象的数据库存放)。
—设计相应的操作。
为每个需要存储的对象和类增加用于存储管理 的属性和操
作,
5. (1)系统用例图如下
在类和对象的定义中加以描述。
class & object layer
(类及对象层 attribute layer (类及对象层
service layer (服务层
struct layer
(结构层
subject layer (主题层
问 题 论 域 部 分 人 机 交 互 部 分 任 务 管 理 部 分 数 据 管 理 部 分
匸
类边界
)
)
1.5 OOD
模型的总体结构
服务
主题
=匸..实例边界 实例连接 iR =属性L
消息
- !<查询课
程信息
/
/
/
/ 丁
—/查询学生成绩n
/
/
/ ------------------- -
_______ ►■厂查询课程成绩
二
管理员、y弋管理课程信息
、\ —--—
战管理开设课程
一一一
(a)选课管理的用例图(b)成绩管理的用例图
逻老师信息:>
<管理学生信息"(学生成绩管理
对象类图如下:
(a)选课对象类图
(b)成绩管理对象类图
老师
*
学生
管理员
老师
学生
选课注册
■乂*成绩统计
(2)把需要持久存储的数据实体类及其联系,映射成为如下关系数据库表:学生(学生号、姓名、出生日期、性别、籍贯、地址、电话、入学时间、专业、班级备注)教师(教师号、姓名、出生日期、性别、籍贯、地址、电话、职称、专长、备注)
课程(课程号、课程名、描述、学分、学时、性质、备注)开设课程(课程号、学期、授课日期、授课时间、地点、选修人数、备注)。