面向对象分析与设计试题B卷

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象分析与设计试题B卷

一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题2 分,共20 分)

1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是( D )的

形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。A. Simula67语言 B. Smalltalk语言

C. Java语言

D. 统一建模语言(UML)的标准

2. 面向对象的运动产生了多种面向对象的语言, 其中(C )是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。

A. Smalltalk

B. Eiffel

C. C++

D. Java

3.下列不属于面向对象技术的基本特征的是(B )。

A. 封装性

B. 模块性

C. 多态性

D. 继承性

4. 面向对象程序设计将描述事物的数据与(C ) 封装在一起,作为一个相互依存、不可分割的整体来处理。

A. 信息

B. 数据隐藏

C. 对数据的操作

D. 数据抽象

5. 关于面向对象方法的优点,下列不正确的叙述是(C )。

A. 与人类习惯的思维方法比较一致

B. 可重用性好

C. 以数据操作为中心

D.可维护性好

6. (D )是从用户使用系统的角度描述系统功能的图形表达方法。

A. 类图

B. 对象图

C. 序列图

D. 用例图

7. ( C ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图

和其他图的基础。

A.对象图 B. 组件图 C. 类图 D. 配置图

8.(D )描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象

之间传递消息的时间顺序。

A.对象图 B. 协作图 C. 状态图 D. 序列图

9.(D )就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系

统中软件和硬件的物理架构。

A. 组件图

B. 协作图

C. 状态图

D. 配置图

10. 使用UML进行关系数据库的(B )时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。

A. 业务Use Case模型设计

B. 逻辑数据模型设计

C. 物理数据模型设计 C. 物理实现设计

二、填空题( 每空1 分,共20 分)

1. 面向对象开发方法一改过去传统的以_____功能分析___为基础的_____面向对象_的结

构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为

一系列___对象____的集合,其_____面向对象的设计___又将分析的结果映射到某种

面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的___概念___,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空间与_____解空间_______在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的_封装____、__继承___、__多态___等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服___软件危机___。因此,它已成为成熟的广为采用的软件开发方法。

2. 对象是客观实体的抽象表示,是由____描述对象属性的数据_______和_____对这些数

据进行的操作行为__两部分组成。而_类_____是对具有相同属性和行为的一组对象的抽象描述。因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的___实例__。通过____继承____关系又可形成一种类

层次结构。

3. UML中用于描述系统的静态建模的视图称为静态视图,包括类图,对象图,用例图,组件图,配置图

三、写出下列程序的输出结果。( 满分10 分)

#include

#include

class Person

{

public:

Person(char *s)

{

name=new char[strlen(s)+1];

strcpy(name, s);

}

virtual void print()

{ cout<<”My name is”<

protected:

char *name;

};

class Student:public Person

{ public:

Student(char *s, float g):Person(s) { avg=g; }

void print(char *s)

{ cout<

private:

float avg;

};

class professor:public Person

{ public:

Professor(char *s, int n):Person(s) { publs=n; }

void print()

{ cout<<”My name is”<

<<” publication.”<

private:

int publs;

};

void main(void)

{ Person *p;

Person x(“Zhang”);

Student y(“Wang”, 4, 2);

Professor z(“Liu”, 5);

p=&x; p->print();

p=&y; p->print();

p=&z; p->print(); }

【运行结果:

My name is Zhang

My name is Wang

My name is Liu and I have 5 publications.

四. 简答题(每小题5分,共20 分)

1. 简述面向对象软件开发方法的优点。

答:

●把软件系统看成是各种对象的集合,这更接近人类的思维方式。

●软件需求的变动往往是功能的变动,而功能的执行者——对象一般不会有大的变换。这

使得按照对象设计出来的系统结构比较稳定。

●对象包括属性(数据)和行为(方法),对象把数据和方法的具体实现方式一起封装起

来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性,从而提高了软件的可维护性。

●支持封装,抽象,继承和多态,提高了软件的可重用性,可维护性和可扩展性。

2. 简述面向对象技术的三大机制。

答:

(1)封装性(encapsulation)

所谓封装就是把对象的属性和行为结合成一个独立的单位,使外界不能直接访问或修改这些数据和代码,外界只能通过对象提供的接口函数来改变或获取对象的属性数据,这就实现了消息隐蔽。

(2)继承性

相关文档
最新文档