文档库 最新最全的文档下载
当前位置:文档库 › 面向对象分析与设计试题及其答案

面向对象分析与设计试题及其答案

面向对象分析与设计试题及其答案
面向对象分析与设计试题及其答案

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

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

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

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

A. Simula67语言

B. Smalltalk语言

C. Java语言

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

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

A. Smalltalk

B. Eiffel

C. C++

D. Java

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

A. 封装性

B. 模块性

C. 多态性

D. 继承性

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

A. 信息

B. 数据隐藏

C. 对数据的操作

D. 数据抽象

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

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

B. 可重用性好

C. 以数据操作为中心

D.可维护性好

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

A. 类图

B. 对象图

C. 序列图

D. 用例图

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

和其他图的基础。

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

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

间传递消息的时间顺序。

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

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

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

A. 组件图

B. 协作图

C. 状态图

D. 配置图

10. 使用UML进行关系数据库的()时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(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)继承性

如果在一个已定义的类上,增加一些特殊属性或操作,可以形成一个新的类,这个类不仅继承了前一个类的全部特征,而且具有新的特性,因此可看作前一个类的特例,是对前一个类的继承。前一个类称为父类,新产生的类叫做子类。通过继承关系可形成一种类层次结构,叫做继承结构。

(3)多态性

在类层次结构的不同类中,可用相同的函数名实现功能不同的函数。

3. 简述OOA模型的层次结构。

答:OOA模型采用五层次结构,它们分别是:

(1)对象-类层

划分待开发系统及其环境信息的基本构造单位,标出反映问题域的对象和类,并用符号进行规范的描述,用信息提供者熟悉的术语为对象和类命名。

(2)属性层

定义对象和某些结构中的数据单元,继承结构中所有类的公共属性可放于通用类中。标识对象类必需的属性并放在合适的继承层次上,属性的特殊限制和实例连接关系也应标识出来。

(3)服务层

表示对象的服务或行为,即是要定义类上的操作。

(4)结构层

标识现实世界中对象之间的关系。当一个对象是另一个对象的一部分时,用"整体-部分"关系表示;当一个类属于另一个类时,用类之间继承关系表示。

(5)主题层

可将相关类或对象划分为一个主题。

4. 简述OOD模型的总体结构,并画图表示。

【4】

答案:

OOD体系结构的各个部分内容:

(1)问题论域部分,在OOA模型的基础上,细化分析结果,设计一组构成底层应用模型的类和对象。

(2)人机交互部分:设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操作的接口函数。用户界面设计包括菜单设计、窗口设计、输入/输出界面设计等等。

(3)任务管理部分:建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及其它与特定平台有关的问题。

(4)数据管理部分:提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。数据管理设计包括:

—数据存放设计:数据存放设计选择数据存放的方式(文件存放、关系数据库表格存放或面向对象的数据库存放)。

—设计相应的操作。为每个需要存储的对象和类增加用于存储管理的属性和操作,在类和对象的定义中加以描述。

class & object layer

(类及对象层)

attribute layer

(类及对象层)

service layer

(服务层)

struct layer

(结构层)

subject layer

(主题层)

}

五. 试用UML 对教学管理系统及相关的数据库系统进行分析和设计。学生选课系统一般包括(1)选课管理功能;(2) 成绩管理功能。试完成下列工作: (1)建立系统静态结构模型—画出系统用例图和类图;(10分) (2) 建立系统动态结构模型—画出系统序列图和协作图;(10分) (3)建立关系数据库逻辑模型。(10分) 【答案:

(1) 系统用例图如下

学生

(a

)选课管理的用例图

学生

(b )成绩管理的用例图

对象类图如下:

(a)选课对象类图

(b)成绩管理对象类图

(2)把需要持久存储的数据实体类及其联系,映射成为如下关系数据库表:

学生(学生号、姓名、出生日期、性别、籍贯、地址、电话、入学时间、专业、班级备注)教师(教师号、姓名、出生日期、性别、籍贯、地址、电话、职称、专长、备注)

课程(课程号、课程名、描述、学分、学时、性质、备注)

开设课程(课程号、学期、授课日期、授课时间、地点、选修人数、备注)

----------------------------------------------------------------------------------------------------------------------

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

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

1.面向对象技术的最重要的基本特征是()。

A. 抽象性

B. 封装性

C. 多态性

D. 继承性

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

A. 信息

B. 数据隐藏

C. 对数据的操作

D. 数据抽象

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

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

B. 可重用性好

C. 以数据操作为中心

D.可维护性好

4. C++ 对C 语言作了很多改进,即从面向过程变成为面向对象的主要原因是( )。

A. 增加了一些新的运算符

B. 允许函数重载,并允许设置缺省参数

C. 规定函数说

明符必须用原型 D. 引进了类和对象的概念

5. 下列不属于类的成员函数的是( )。

A. 构造函数

B. 析构函数

C. 友元函数

D. 拷贝构造函数

6. 继承机制的作用是( )。

A. 信息隐藏

B. 数据封装

C. 派生新类

D. 数据抽象

7. 类模板经过实例化而生成具体( )

A. 对象

B. 模板函数

C. 函数模板

D. 类

8. 类的析构函数是在( ) 调用的。

A. 类创建时

B. 创建对象时

C. 删除对象时

D. 不自动调用

9. 在公有继承的情况下,基类成员在派生类中的访问权限( )

A. 受限制

B. 保持不变

C. 受保护

D. 不受保护

10. C++ 语言通过( ) 来建立类族。

A. 类的嵌套

B. 类的继承

C. 虚函数

D. 抽象类

11.在UML中,有3种基本构造块,分别是(A)

A. 事物、关系和图

B. 注释、关系和图

C. 事物、关系和结构

D. 注释、关系和结构

12.在UML中,有四种关系,下面哪个不是(B)

A.依赖关系

B.继承关系

C.泛化关系

D.实现关系

13.下面哪个不是UML中的静态视图()

A.状态图

B.用例图

C.对象图

D.类图

14.在用例之间,会有三种不同的关系,下列哪个不是它们之间可能的关系(D)

A.包含(include)

B.扩展(extend)

C.泛化(generalization)

D.关联(connect)

15.下列关于活动图的说法错误的是()

A. 一张活动图从本质上说是一个流程图,显示从活动到活动的控制流

B. 活动图用于对业务过程中顺序和并发的工作流程进行建模。

C. 活动图的基本要素包括状态、转移、分支、分叉和汇合、泳道、对象流。

D. 活动图是UML中用于对系统的静态方面建模的五种图中的一种

16.用例(Use-case)用来描述系统在事件做出响应时所采取的行动。用例之间是具有相关性的。在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户帐号是否正确。那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是()关系 A.扩展(extend) B.包含(include)

C.分类(classification)

D.聚集(aggregation)

17.UML中类的有三种,下面哪个不是其中之一()

A.实体类

B.抽象类

C.控制类

D.边界类

18.阅读图例,判断下列哪个说法是错误的。()

A.读者可以使用系统的还书用例

B.每次执行还书用例都要执行图书查询用例

C.每次执行还书用例都要执行交纳罚金用例

D.执行还书用例有可能既执行图书查询用例,又执行交纳罚金用例

19.关于协作图的描述,下列哪个不正确(B)

A.协作图作为一种交互图,强调的是参加交互的对象的组织;

B.协作图是顺序图的一种特例

C.协作图中有消息流的顺序号;

D.在ROSE工具中,协作图可在顺序图的基础上按“F5”键自动生成;

20.在UML中,()把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履行该组所包括的活动,它能够明确地表示哪些活动是由哪些对象完成的。

A.组合活动 B.同步条 C.活动 D.泳道

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

1. 对象是客观实体的抽象表示,是由___________和___________两部分组成。而

___________是对具有相同属性和行为的一组对象的抽象描述。因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的___________。通过___________关系又可形成一种类层次结构。在类层次结构的不同类中,可用相同的函数名实现功能不同的函数,面向对象技术的这种特性叫做

___________。

2. UML 从不同的视角为系统架构建模,可产生九种视图:

________________、_________________、_________________、

________________、________________、_________________、

________________、_________________、_________________。

3. ________________是用来反映若干个对象之间动态协作关系的一种交互图。它主要反映

对象之间已发送消息的先后次序和对象之间的交互过程。________________是用来描述实现某些服务所涉及的对象及其相互之间的关系(包括消息通信)的动态视图。建模者

可以选择______________________________来反映对象之间的协作关系;如果需要强调时间和序列,最好选择________________;如果需要强调上下文相关,最好选择________________。

三、写出下列程序的输出结果。( 满分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(); }

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

1. 简述统一建模语言UML的优点。

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

3. 简述面向对象分析的基本步骤。

4. 简述OOD模型的总体结构,并画图表示。

5. 应用UML进行系统分析和设计所需建立视图有那几种?

五. 试用UML对图书管理系统及相关的数据库系统进行分析和设计。图书管理系统应实现

(1)借书;(2) 还书;(3)图书资料和借阅信息查询;(4)系统维护。试完成下列工作:(1)建立系统静态结构模型—画出系统用例图和类图;(10分)

(2)建立系统动态结构模型—画出序列例图和协作图;(10分)

(2)建立关系数据库逻辑模型。(10分)

---------------------------------------------------------------------------------------------------------------------

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

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

1. 到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是()的形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。

A. Simula67语言

B. Smalltalk语言

C. Java语言

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

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

A. 封装性

B. 模块性

C. 多态性

D. 继承性

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

A. 信息

B. 数据隐藏

C. 对数据的操作

D. 数据抽象

4. C++ 对C 语言作了很多改进,即从面向过程变成为面向对象的主要原因是( )。

A. 增加了一些新的运算符

B. 允许函数重载,并允许设置缺省参数

C. 规定函数说

明符必须用原型 D. 引进了类和对象的概念

5. 下列不属于类的成员函数的是( )。

A. 构造函数

B. 析构函数

C. 友元函数

D. 拷贝构造函数

6. 继承机制的作用是( )。

A. 信息隐藏

B. 数据封装

C. 派生新类

D. 数据抽象

7. 通常对象有很多属性,但对于外部对象来说某些属性应该不能被直接访问,下面哪个不是UML中的类成员访问限定符( )

A.公有的

B.受保护的

C.友员的

D.私有的

8. 类模板经过实例化而生成具体( )

A. 对象

B. 模板函数

C. 函数模板

D. 类

9. 类的构造函数是在( ) 调用的。

A. 类创建时

B. 创建对象时

C. 删除对象时

D. 不自动调用

10 在公有继承的情况下,基类成员在派生类中的访问权限( )

A. 受限制

B. 保持不变

C. 受保护

D. 不受保护

11 . C++ 语言通过( ) 来建立类族。

A. 类的嵌套

B. 类的继承

C. 虚函数

D. 抽象类

12. UML提供了4种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。其中

()是面向对象系统建模中最常用的图,用于说明系统的静态设计视图

A. 用例图

B. 类图

C. 对象图

D. 序列图

13.当需要描述体系结构的静态实施视图时,应该选择()。

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

14.用例(Use-case)用来描述系统在事件做出响应时所采取的行动。用例之间是具有相关

性的。在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户帐号是否正确。那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是()关系。

A.扩展(extend)

B.包含(include)

C.分类(classification)

D.聚集(aggregation)

15.()是描述系统中在某一时刻,一组对象以及它们之间关系的图形,其可以看作是类图在系统某一时刻的实例。

A.组件图 B.类图 C.对象图 D.部署图

16.顺序图是强调消息随时间顺序变化的交互图,下面哪个不是用来描述顺序图的组成部分()

A.状态

B.生命线

C.激活期

D.类角色

17.下面哪个选项中有不是活动图中的基本元素( )

A.状态、分支 B. 状态、汇合

C. 泳道、转移

D. 信号、转移

18. 以下是图书管理系统中的相关类,属于边界类的是( )

A.书类

B.借书操作界面类

C.书籍管理类

D.读者类

19. 在用UML进行数据库的分析与设计过程中,( ) 就是进行数据库的需求分析,使用用

例图、类图、顺序图、活动图等建立业务模型。

A. 逻辑数据模型设计 B 业务Use Case模型设计

C. 物理数据模型设计

D. 物理实现设计

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

A. 业务Use Case模型设计

B. 逻辑数据模型设计

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

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

1. UML中用于描述系统的静态建模的视图称为静态视图,包括________、

_________、_________、__________和__________。用于描述系统的

动态建模的视图称为动态视图,包括________、_________、__________

和__________。

2. 对象是客观实体的抽象表示,是由_________________________和

________________________两部分组成。而______是对具有相同属性

和行为的一组对象的抽象描述。因此,它可作为一种用户自定义类型和创

建对象的样板,而按照这种样板所创建的一个个具体对象就是类的______

通过________关系又可形成一种类层次结构。

3. ________是美国Rational公司的面向对象建模工具,利用这个工具可以建立用_______描述的________ 的模型,而且可以自动生成和维护C++、Java、VB、Oracle等语言和系统的代码。____________的界面分为三个部分——___________窗口、_________窗口和__________窗口。

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

#include

#include

class Base {

protected:

int *p;

public:

Base(int a=0){p=new int(a);}

~Base() {delete p;}

virtual void print() {cout<<"p->"<<*p<

};

class Derived:public Base {

static int y;

public:

Derived(int b=0) {*p=b; y++;}

void print() {cout<<*p<<','<

int Derived::y=0;

void main(void)

{ Derived d(10);

Base *pb=&d;

pb->print();

Derived(20).print();

}

四. 简答题(每空4分,共20 分)

1. 简述UML的优点。

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

3. 简述OOA模型的层次结构。

4. 简述OOD模型的总体结构,并画图表示。

5. 应用UML进行数据库系统分析和设计步骤。

五. 试用UML对网上超市系统及相关的数据库系统进行分析和设计。请完成下列工作:(1)建立系统静态结构模型—画出系统用例图和类图;(10分)

(2)建立系统动态结构模型—画出序例图和活动图;(10分)

(2)建立关系数据库逻辑模型。(10分)

-----------------------------------------------------------------------------2009-2010第一学期面向对象分析与设计试题

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

1. ( ) 常常被定义成虚函数。

A. 构造函数

B. 析构函数

C. 友元函数

D. 静态函数

2. ()是对具有相同属性和行为的对象集合的抽象描述

A. 系统

B. 实体

C. 对象

D. 类

3. 封装的目的是实现信息的有效()

A. 共享

B. 隐蔽

C. 操作

D. 继承

4. ()是实现“一种接口,多种方法”的技术。

A. 抽象性

B. 封装性

C. 多态性

D. 继承性

5. C++ 对C 语言作了很多改进,即从面向过程变成为面向对象的主要原因是( )。

A. 增加了一些新的运算符

B. 引进了类和对象的概念

C. 允许类的继承和派生

D. 允许函数重载

6. 继承机制的作用是( )。

A. 信息隐藏

B. 数据封装

C. 数据抽象

D.软件重用

7. ( ) 经过实例化而生成具体的类。

A. 对象

B. 函数模板

C. 类模板

D. STL

8. 类的构造函数是在( ) 调用的。

A. 类创建时

B. 创建对象时

C. 删除对象时

D. 不自动调用

9. 在保护性继承的情况下,基类的public和protected成员在派生类中变为( )成员。

A. 公有

B. 私有

C. 受保护

D. 任意

10.下列哪种做法不符合面向对象设计的原则()。

A. 类与类之间的耦合应该很松散

B. 继承耦合应尽可能松散

C. 继承耦合应尽可能紧密

D. 设计应该具有最优的可重用性

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

A. 对象图

B. 类图

C. 序列图

D.用例图

12.在对象模型中,()体现了继承性概念。

A.关联

B. 依赖关系

C.泛化关系

D.聚合/组合关系

13. ()是面向对象设计的核心,建立状态图、协作图和其他图的基础。

A. 对象图

B. 组件图

C. 类图

D. 序列图

14.下面哪个是UML中的动态视图()

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.()描述了一组交互对象间的动态协作关系,它表示完成某项行为操作的参与对象和这些对象之间传递消息的时间顺序。

A. 协作图

B.序列图

C.对象图

D.组件图

20.()能够更好地用于对数据库建模。

A.传统的ER图 B.UML的用例图

C.UML的类图 D.数据流图

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

1. 面向对象开发方法模拟人们理解和处理客观世界的方式来__(1)__问题,把系统视为一

系列__(2)__的集合,其面向对象的__(3)__又将分析的结果映射到某种面向对象

__(4)__工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的概念,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使__(5)__空间与__(6)__空间在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的__(7)__、__(8)__、__(9)__态等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服__(10)_。因此,它已成为成熟的广为采用的软件开发方法。到20世纪末,面向对象软件工程逐渐发展成熟,特别是__(11)__的形成和广泛使用,使面向对象软件开发方法已成为软件开发的主流技术。

2. UML 通过9种视图来为系统建模,这9种视图是:

_____(12)_______、_____(13)_______、_____(14)________、

_____(15)_______、_____(16)_______、_____(17)________、

_____(18)______、_____(19)______、______(20)_______。

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

#include

class person

{ public:

virtual void show()

{ cout<<“ It is a person”<

}

};

class student:public person

{ public:

virtual void show()

{ cout<<“It is a student”<

}

};

void main()

{ person O1, *ps;

Student O2;

O1.show();

O2.show();

ps=&O1;

ps->show();

ps=&O2;

ps->show();

}

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

1. 简述面向对象分析的基本步骤。

2. 简述建立面向对象设计模型的方法步骤。

3. 简述基于UML的面向对象系统开发方法的基本步骤。

4. 简述基于UML的关系数据库设计的方法步骤。

五、请用UML对图书借阅管理系统及相关的数据库系统进行分析和设计。图书管理系统应实现图书资料和借阅信息查询、借书、还书以及系统维护功能操作。试完成下列工作:(1)画出读者用例图(5分)

(2)画出“读者查询图书信息”用例的序列图和协作图(10分)

(3)画出设计类图(10分);

(4)“读者”与“图书”类之间存在多对多的关联,试将这种关联转化为一个关联表。(5分)

---------------------------------------------------------------------------------------------------------------------- 2010-2011第一学期面向对象分析与设计试题

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

1. ()是对具有相同属性和行为的一组对象的抽象描述。

A. 实体

B. 对象

C. 类模板

D. 类

2. 一类对象向另一类对象所发消息的格式中不包括()。

A. 对象名

B. 操作函数名

C. 参数表

D. 类名

3.面向对象技术的三大机制不包括()。

A. 抽象

B. 封装

C. 多态

D. 继承

4. 从整体功能层面考虑类的设计应遵循下列三条原则,除了()。

A. 单一功能原则

B. 封装原则

C. 最小惊讶原则

D. 开放/封闭原则

5. 可以在类外访问类的()。

A. 私有成员

B. 受保护性成员

C. 公有成员

D. 纯虚函数

6. 类的()是供创建类的实例对象时调用,完成对象的初始化。

A. 内联函数

B. 析构函数

C. 友员函数

D.构造函数

7. 派生类可以继承( )。

A. 私有成员

B. 部分公有成员

C. 构造函数

D. 析构函数

8. 如果合理地利用(),就可以在类的复杂层次关系中为共享访问与成员隐蔽之间找到

一个平衡点,既实现部分成员隐蔽,又能方便部分成员的继承,实现代码的高效重用和扩充。

A. 私有继承

B. 保护继承

C. 公有继承

D. 多继承

9. 如果将某类族中的一个同名成员函数说明为虚函数,则可用()来调用不同派生类的

虚函数,实现运行时多态。

A. 基类对象

B. 派生类对象

C. 基类对象的指针

D. 派生类对象的指针

10. C++中既可实现文件输入又可实现文件输出的类是( )

A. ifstream

B. ofstream

C. iostream

D. fstream

11. 基类中的protected 成员,通过public派生,其在派生类中的可见性为()。

A. 不可访问

B. private

C. protected

D. public

12. 在C++程序中,对象之间的相互通信可以通过()来实现。

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. UML提供了一系列的图支持面向对象的分析与设计,其中( ) 描述的是系统的静态组

织结构和数据结构。

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

19. ( )是描述系统体系结构的静态实现视图。

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

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

A. 物理数据模型设计

B. 物理实现设计

C. 业务Use Case模型设计 C. 逻辑数据模型设计

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

1. 用_(1 )_机制可以实现发送一个通用消息而调用不同的方法;(2_)机制是实现信息隐蔽的一种技术,其目的是使类的_(3)_相互分离。

2. 类是一组具有相同属性和服务的对象的抽象描述,类中的每个对象都是

这个类的一个_(4 )_。类之间共享属性与服务的机制叫做_(5 )。

一个对象通过发送_(6 )_来请求另一个对象为其服务。

3. 派生类的生成包含三个步骤:_( 7 )_、_( 8 )_和_( 9 )_。

4. _(10)_描述完成某项行为操作的参与对象和这些对象之间传递消息的

时间顺序。_(11)_描述系统运行过程中某类对象可能具有的状态,以及在

不同状态间的跳转和触发这些跳转的外部事件。_12__可用于描述系统业

务流程,它由一系列的动作状态构成, 动作的状态控制可以从一个状态流

向另一个与之相邻的状态。

5. 基于UML的系统分析的主要目标是为了更精确地理解_(13_)_,并

获得一个使用开发人员的语言描述的、易于维护的且能体现系统基本结构

的_(14 )_模型。该模型主要包括_(15_)和(16_)。

6. 基于UML的关系数据库设计一般可分为4个阶段:_(_17_)_、

_(_18_)_、_(_19__)_和_(_20_)_。

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

class B {

public:

B( ) { cout << "B" << endl;}

virtual void f( ) { cout << "B::f" << endl; }

virtual ~B( ) { cout << "~B" << endl; }

};

Class D: public B {

private:

int d;

public:

D( ) { cout << "D" << endl; }

void f( ) { cout << "D::f" << endl; }

virtual ~D( ) { cout << "~D" << endl; }

};

void main( )

{ B* pB;

D d1;

pB=&d1;

pB->f( );

delete pB;

}

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

1. 为什么面向对象方法能更有效地克服软件危机?

2. 如何实现运行时多态?

3. 基于UML的面向对象系统开发方法包括哪几步?

4. 简述确定分析类的方法。

5. 简述基于UML的数据库系统分析和设计的步骤。

五.分析与设计题

试用UML对开放式学籍管理系统及相关的数据库系统进行分析和设计。学籍管理系统的主要用户是系统管理员和学生:系统管理员使用学籍管理系统来实现教师信息管理、学生信息管理,课程管理、成绩管理和打印报表;学生使用学籍管理系统来实现选课管理和成绩查询。试完成下列工作:

(1)画出学籍管理系统的用例图;(6分)

(2)定义学籍管理系统的三个基本分析类;(6分)

第4章-Java语言与面向对象作业习题与答案

第4章 Java语言与面向对象作业习题与答案 一、简答题 1.什么是对象?什么是类? 对象是一种抽象数据类型。它包含了事物的静态特征(属性)和动态特征(行为)两大特征。 类是一组同种对象的集合与抽象。即是具有相同属性和方法的一组对象集合。 2.Java语言的单继承是指什么? 一个类可以派生出多个子类,但子类只允许有一个父类,而不允许存在多个父类。 3.在一个共有类中的数据成员及方法成员的访问控制符为缺省,则这个类可供什么样的包引用? 当一个类的访问控制符为public共有时,表明这个类作为整体对其它类是可见和可引用的;但其数据成员和方法成员访问控制符为缺省时,它们只能被包中类(含当前类)引用。 4.抽象类的用途 (1)设计在更高的层次上进行,不考虑具体对象,从而大大简化了处理问题的复杂性; (2)设计出的类也具有更加良好的可扩展性。 5.什么是非静态的成员变量? 非静态成员即为实例成员变量(没有加static修饰的变量)。 6.异常Exception和错误Error有什么不同?Java如何处理它们? 答:错误通常是指程序本身存在非法情形,常常是因为代码存在问题而引起的,如造成系统崩溃、虚拟机粗错、动态失败等,这一类错误无法恢复或不可能捕获,并将导致应用程序中断。 异常表示另外一种“非同寻常”的错误。这种错误通常是不可预测,但可以被捕获且可以恢复。常见的异常情况包括存不足、找不到所需文件等。 对于错误,编程人员可以通过对程序进行更仔细的检查,以避免这种错误。 对于异常,可以使用捕获机制进行捕获,再编写出相应的处理程序。 7.简单述Java的异常处理机制。 答:Java采取“抛出—捕获”的方式,一旦一个异常想象产生,Runnable环境和应用程序会抛出各种标准类型和自己定义的异常,系统就可以捕获这些异常,并一定有相应的机制来处理它,确保不会产生司机、死循环或其它对操作系统的损害,从而保证了整个程序运行的安全性。 8.简单述throw语句和throws关键字之间的差别。 答:throw语句是在一个方法中用来直接抛出异常对象,其格式是: throw 异常对象; throws关键字是用一个方法声明首部,用来指出这个方法中可能产生若干种异常,其格式:[方法修饰符] 返回类型方法名(参数表)throws 异常类型表 { /*方法体*/ } 二、填空题 1.所有Java应用程序都必须包含的一个类方法是 main() 。 2.面向对象程序设计语言的三种重要特性是封装性、继承性和多态性。

面向对象试题(标准答案)

CoreJavaOOP考试题 考试时间:90分钟 考试总分:100分 一、选择题(不定项选择)(22*4=88) 1. 类A,B的定义如下: class A { private int a = 100; A() { System.out.print("A()"); System.out.println(a); } } class B extends A { private int a = 200; B() { System.out.print("B()"); System.out.println(a); } } 运行下面的代码: new B(); 输出的结果是:(A )。 A. A() 100 B() 200 B. A() 200 B() 200 C. B() 200 A() 100 D. B() 200 A() 200

2.下列说法正确的是(D ) A.所有类都必须定义构造方法(构造器) B.构造方法必须初始化类的所有数据成员 C.子类定义了构造器后,不再调用父类的构造器 D.构造方法可以访问类的非静态成员 3.在Java中,哪个关键字使类不能派生子类?, (A ) A : final B : public C : private D : native 4.class Base{ static void test(){ System.out.println(“Base.test()”); } } public class Child extends Base{ static void test(){ System.out.println(“Child.test()”); } public static void main(String[] args){ Base base = new Child(); Child child = new Child(); base.test(); child.test(); } } 程序运行的结果是( C ) A.Child.test() Child.test() B.Child.test() Base.test() C.Base.test() Child.test() D.Base.test() Base.test()

面向对象程序设计—文本编辑器的设计与实现

课程设计报告书 课程名称面向对象程序设计 设计题目文本编辑器的设计与实现 专业班级 学号 姓名 指导教师 年月

目录 1 设计时间 (1) 2 设计目的 (1) 3设计任务 (1) 4 设计内容 (1) 4.1需求分析 (1) 4.2概要设计 (1) 4.2.1功能结构图 (1) 4.3详细设计 (2) 4.3.1流程图 (3) 4.4系统的功能实现 (4) 4.4.1类或包的加载 (5) 4.4.2设计一个主类,变量的定义 (5) 4.4.3文件操作功能的实现 (6) 4.5运行测试 (25) 4.5.1文本编辑器界面 (25) 4.5.2各功能菜单界面 (25) 5 总结与展望 (26) 参考文献 (26) 成绩评定 (27)

1 设计时间 2011年12月19日~2011年12月25日 2 设计目的 本次设计是学习完《java6程序设计》课程后进行的一次全面的综合练习,目的是加深对本学期课程的理解,通过设计文本编辑器并实现其功能来熟练掌握java语言基础,初步掌握软件开发的基本方法与技术将理论课程中学到的知识运用到实践中,实现有一定规模的Java应用。 3设计任务 本次设计的主要任务是文本编辑器的设计与实现,要求设计一个类似于Windows记事本(Notepad)的Java程序。可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。 4 设计内容 4.1需求分析 现在网络上各种文本编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed,xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的文本编辑器程序。 4.2概要设计 4.2.1功能结构图

面向对象面试题

面向对象面试题 1、什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP; 通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可以自己完成自己的功能,而不是像C那样分成一个个函数; 现在纯正的OO语言主要是java和C#,C++也支持OO,C是面向过程的。 2、简述private、protected、public、internal 修饰符的访问权限。 private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,没有访问限制。 internal: 当前程序集内可以访问。 3、https://www.wendangku.net/doc/6713617802.html,中的五个主要对象 Connection:主要是开启程序和数据库之间的连结。没有利用连结对象将数据库打开,是无法从数据库中取得数据的。这个物件在https://www.wendangku.net/doc/6713617802.html, 的最底层,我们可以自己产生这个对象,或是由其它的对象自动产生。 Command:主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及呼叫存在数据库中的预存程序等。这个对象是架构在Connection 对象上,也就是Command 对象是透过连结到数据源。 DataAdapter:主要是在数据源以及DataSet 之间执行数据传输的工作,它可以透过Comm and 对象下达命令后,并将取得的数据放入DataSet 对象中。这个对象是架构在Command 对象上,并提供了许多配合DataSet 使用的功能。 DataSet:这个对象可以视为一个暂存区(Cache),可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来。DataSet 的能力不只是可以储存多个Table 而已,还可以透过DataAdapter对象取得一些例如主键等的数据表结构,并可以记录数据表间的关联。DataSet 对象可以说是https://www.wendangku.net/doc/6713617802.html, 中重量级的对象,这个对象架构在DataAdapter对象上,本身不具备和数据源沟通的能力;也就是说我们是将DataAdapter对象当做DataSet 对象以及数据源间传输数据的桥梁。 DataReader:当我们只需要循序的读取数据而不需要其它操作时,可以使用DataReader 对象。DataReader对象只是一次一笔向下循序的读取数据源中的数据,而且这些数据是只读的,并不允许作其它的操作。因为DataReader 在读取数据的时候限制了每次只读取一笔,而且只能只读,所以使用起来不但节省资源而且效率很好。使用DataReader 对象除了效率较好之外,因为不用把数据全部传回,故可以降低网络的负载。 https://www.wendangku.net/doc/6713617802.html, 使用Connection 对象来连接数据库,使用Command 或DataAdapter对象来

面向对象分析与设计

第三章 UML是一种建模语言,用于对软件系统制品进行规约。可视化构造和文档化,也可以用于业务建模以及其他非软件系统的建模。因此他只是一种建模语言,而不是一种建模方法 UML用于建立系统的分析模型和设计模型,而不是用于编程 UML的主题部分并不是一种形式化语言,它只是部分的采用了形式化语言的定义方式,而且也不是严格的形式化 第四章 抽象是面向对象方法中使用最为广泛的原则: 1:系统中的对象是对现实世界中事物的抽象 2:类是对象的抽象 3:一般类是对特殊类的抽象 4:属性是事物静态特征的抽象 5:操作是事物动态特征的抽象 粒度控制: 人在面对一个复杂的问题时,不可能在同一时刻纵观全局,又能洞察秋毫。因此需要控制自己的视野;考虑全局时,注重其大的组成部分;暂时不去详细考察每一部分的具体细节;考虑某个部分的细节时暂时撇开其余部分和宏观上的问题,这就是粒度控制。 行为分析: 采用如下行为分析原则,以控制行为的复杂性: 以对象为单位描述系统中的各种行为; 通过消息描述对象之间的行为依赖关系 认识行为的起因,区分主动行为和被动行为 认识系统的并发行为 用况图: 把用况、参与者以及它们之间的关系用一些图形符号进行可视化表示, 便得到用况图(use case diagram)

用况图是直接描述需求的,因此它是一个需求模型 模型图中表达不尽的信息,需要以文字和表格等方式做进一步描述,这就是模型规约。 OOA与OOD的关系: 不同的目标、内容和抽象层次: 通过OOA和OOD所得到的系统模型分别成为OOA模型和OOD模型,它们都是对系统的抽象描述,但是属于不同的抽象层次。 OOA的主要内容是研究问题域和系统责任,运用面向对象的观点发现问题域中与系统责任有关的对象,认识对象的内部特征和各类对象之间的关系,目标是建立一个直接映射问题域,符合用户需求的OOA模型。 OOD的主要内容是以OOA为基础,针对选定的实现平台进行系统设计,目标是产生一个能够在选定的软硬件平台上实现的OOD模型。 系统的体系结构是对系统的部件和连接部件以及这些部件通过连接件进行交互的规约。 第五章 需求分析(requirements analysis)是软件工程中的经典术语之一,其确切含义应该是对用户需求进行分析,旨在产生一份明确、规范的需求定义。 无论是结构化方法中的数据流图还是面向对象方法中的类图,都不是直接描述用户需求,而是描述了一个满足用户需求的系统模型。确切的讲,这些工作应该叫做系统分析 系统边界(system border)是指系统内部的所有成分与系统以外各种事物之间的分界线。在系统边界以内,是系统本身包含的全部对象;在系统边界以外,是与系统进行信息交换的各种事物,即人员、设备和外系统等各种参与者。 系统成分是指在系统模型中给出定义并且在程序中加以实现的系统元素。

UML面向对象分析与设计

UML面向对象分析与设计 大作业 前言 “UML面向对象分析与设计”是计算机专业和软件工程等相关专业的一门重要课程,也是其他理工科专业的热门选修课程。“程序设计语言”、“计算机网络”、“数据库原理”和“数据机构”等是它的前导课程,学好本课程对学生毕业后从事软件开发有着极为重要的作用。 要学好这门课,仅仅通过课堂教学或自学掌握理论知识是远远不够的,还必须加强实践。特在学期末引入uml的综合分析与设计,从实际项目出发,使学生学会运用软件工程基本理论知识,UML建模语言和rose建模环境,去解决软件开发中的实际问题,达到学以致用的目的。

面向对象软件开发技术 项目的引入及需求 简易教学管理系统的分析、设计与实现 一、设计的目的 1.初步了解UML语言的概念、结构、语义与表示方法; 2.掌握UML建模工具Rational Rose的使用方法; 3.给出某个简单系统的模型,能够熟练地使用Rose工具表达; 二、设计理论基础 1. 面向对象的程序设计C++或JAVA程序设计课程; 2.数据结构或算法课程 2.SQLServer或mysql数据库系统; 3. 熟悉传统软件工程以及软件测试技术。 三、设计内容与步骤 需求陈述:简易教学管理系统主要提供两个方面的服务: 选课管理,负责新学期的课程选课注册。 成绩管理,负责学生成绩管理。 (1)简易教学管理系统---选课管理应提供的服务如下: 1.录入与生成新学期课程表 教学管理人员在新学期开学前录入新学期的课程,打印将开设的课程目录表,供师 生参考选择。如果某门课实际选课的学生少于10人,则停开该课程,把该课程从 课程表中删除;如某课程选课学生多于60人,则停止选课。 2.学生选课注册 新学期开始前一周为学生选课注册时间,在此期间学生可以选课注册,并且允许改 变或取消注册申请。 每个学生选课可不允许超过4门,每门课最多允许60名学生选课注册。 3.查询 可以查询课程信息、学生选课信息和学生、教师信息。

面向对象分析与及设计习题及答案

面向对象分析与及设计习题及答案 一、单项选择题 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. 物理实现设计 11.一个设计得好的OO系统具有(B) A. 低内聚、低耦合的特征 B. 高内聚、低耦合的特征 C. 高内聚、高耦合的特征 D. 低内聚、高耦合的特征 12.下面()不是UML的基本构成元素。(A) A. 控制语言 B. 基本构造块 C. 规则 D. 公共机制

java面向对象试卷及答案

java面向对象程序设计 系班级姓名成绩得分评卷人 一、填空题(每空2分,共20分) 1.Java源程序的扩展名是,经过编译后的程序的扩展名是。2.Socket通常也称为,用于描述和。3.线程的优先级在至之间,数值越大 4.构造方法是一种特殊的成员方法,构造方法名与相同 5.Java语言只允许单继承,指每个类只能有一个。 二、选择题(每题2分,共50分) 1.下列哪个概念是面向对象和面向过程程序设计所共有的() A、继承 B、流程控制 C、抽象 D、封装 2.以下关于执行Java小程序的论述错误的是:() A、可以通过浏览器调用嵌入了Java小程序的HTML文档 B、可以通过appletviewer.exe调用嵌入了Java小程序的HTML文档 C、可以通过java.exe调用嵌入了Java小程序的HTML文档 D、可以在Java集成开发环境中调用嵌入了Java小程序HTML文档 3.符合对象和类关系的是:() A、人和老虎 B、书和汽车 C、楼和土地 D、松树和植物 4.关于选择结构下列哪个说法正确?() A.if语句和else语句必须成对出现 B.if语句可以没有else语句对应 C.一个if语句只能有一个else if语句与之对应 D.else if结构中必须有default语句 5.while循环和do…while循环的区别是:()

A.没有区别,这两个结构任何情况下效果一样 B.while循环比do…while循环执行效率高 C.do…while循环执行次数可能为0 D.while循环执行次数可能为0 6.关于for循环和while循环的说法哪个正确?() A.while循环先判断后执行,for循环先执行后判断。 B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换 D.两种循环结构中都必须有循环体,循环体不能为空 7.下列修饰符中与访问控制无关的是() A.private B.public C.protected D.final 8.方法内的形参:() A.必须定义多个形参B.可以没有 C.至少有一个D.只能是简单变量 9.throws的作用:() A.表示方法可能会抛出例外 B.表示后面是方法的输出量 C.方法的标志,每个方法都必须有 D.没有意义 10.在Java语言中,整型常量123占用的存储字节数是:()A.1B.2 C.4 D.8 11.关于对象成员占用内存的说法哪个正确?() A.同一个类的对象共用同一段内存 B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存 D.以上都不对 12.return语句:()

Java面向对象测试试题(经典)

《使用Java实现面向对象编程》阶段测试-笔试试卷 一、选择题(共25题,每题4分,满分100分) 1) 在Java类中,使用以下()声明语句来定义公有的int型常量MAX。 A. public int MAX = 100; B. final int MAX = 100; C. public static int MAX = 100; D. public static final int MAX = 100; 2) 在Java中,下列关于方法重载的说法中错误的是()。 A. 方法重载要求方法名称必须相同 B. 重载方法的参数列表必须不一致 C. 重载方法的返回类型必须一致 D. 一个方法在所属的类中只能被重载一次 3) 给定Java代码如下所示,在横线处新增下列()方法,是对cal方法的重载。 public class Test{ public void cal(int x, int y, int z) {} } A. public int cal(int x, int y, float z){ return 0; } B. public int cal(int x, int y, int z){ return 0; } C. public void cal(int x, int z){ } D. public void cal(int z, int y, int x){ } 4) 在Java中,下面对于构造函数的描述正确的是()。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是void C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数

面向对象的分析设计实现--图书管理系统

实验报告面向对象的分析设计实现—图书管理系统 一.需求分析 1.1系统需求描述 一般图书馆管理系统主要用于对图书馆日常工作的管理,主要任务是用计算机对读者、图书等各种信息进行日常管理,如查询、修改、增加、删除、图书借阅和归还的管理等。本系统实现了图书馆的信息化管理,完成了图书馆管理系统的基本功能。 一般图书馆管理系统主要包括用户登录子系统、用户管理子系统、图书管理子系统、图书借阅与归还、图书和用户信息查询子系统四个部分,各部分主要功能如下: 用户登录子系统:用于数据库的连接,主界面的设计和不同身份用户的登录管理。 用户管理子系统:用于用户信息的管理,如用户添加、用户信息修改、用户删除。 图书管理子系统:用于图书信息的管理,如新书入库、图书信息修改、图书信息删除。 图书借阅与归还子系统:用于用户借阅和归还图书。 图书和用户信息查询:图书和用户信息的查询。 1.2系统功能结构图

图 1.1 图书管理系统分析系统流程图 1.3 系统解决方案 以上述一般的图书管理系统分析为构思原型。为简化系统,忽略掉其他复杂琐碎的功能需求,仅保留图书信息的录入、修改和读者借、续借、还的功能。读者与管理员通过界面对象调用控制类对象,控制对象进行各种操作并把信息写入数据库。 二.系统设计 2.1 系统E-R图 图 1.2 用户实体图

图1.3 书籍实体图 图 1.4 实体属性图 2.2数据库表结构 表2.1 图书信息表

表2.2 用户借阅表 表2.3用户信息表 2.3用例文档 本系统共设置四个活动者。分别是TT_People、TT_Registrar、TT_Reader 和TT_Database。其中TT_People泛指与系统发生关系的人;TT_Registrar为系统管理员,负责添加、修改图书信息;TT_Reader为所有读者,读者可能发生借书、续借、还书的行为;TT_Database为存储各种信息的数据库对象。另:考虑到现实图书馆中还存在“图书馆管理员”这一角色,但其所起的作用仅为代替读者完成各种系统操作,故没有设置此活动者。 系统中共有五个用例。TT_Addinfo、TT_Modifyinfo、TT_Borrow、TT_Renew 和TT_Return。TT_Addinfo表示管理员添加图书信息;TT_Modifyinfo表示修改图书信息;TT_Borrow表示读者借阅图书;TT_Renew表示读者续借图书;TT_Return表示读者归还图书。

面向对象期末测试题(带答案)

济南大学2009~2010 学年第二学期课程考试试卷 课 程 java 面向对象程序设计 授课教师 考试时间 考试班级 学 号 姓 名 题号 一 二 三 四 五 总 分 审核人 得分 一、填空题(每空2分,共20分) 1.Java 源程序的扩展名是 .java ,经过编译后的程序的扩展名是 .class 。 2.Socket 通常也称为 套接字 ,用于描述 IP 地址 和 端口 。3.线程的优先级在 1 至 10 之间,数值越大 优先级越高 4.构造方法是一种特殊的成员方法,构造方法名与 类名 相同 5.Java 语言只允许单继承,指每个类只能有一个 父类或子类 。 二、选择题(每题2分,共50分) 1.下列哪个概念是面向对象和面向过程程序设计所共有的 ( B ) A 、继承 B 、流程控制 C 、抽象 D 、封装 2.以下关于执行Java 小程序的论述错误的是: ( C ) A 、可以通过浏览器调用嵌入了Java 小程序的HTML 文档 B 、可以通过appletviewer .exe 调用嵌入了Java 小程序的HTML 文档 C 、可以通过java.exe 调用嵌入了Java 小程序的HTML 文档 D 、可以在Java 集成开发环境中调用嵌入了Java 小程序HTML 文档 3.符合对象和类关系的是: ( D ) A 、人和老虎 B 、书和汽车 C 、楼和土地 D 、松树和植物 4.关于选择结构下列哪个说法正确? (B ) A .if 语句和 else 语句必须成对出现 B .if 语句可以没有else 语句对应 … … …… …… …… …… …… … …… …装 …… …… …… … …… …订 …… …… …… … …… …线 …… …… …… … …… …… …… …… …

面向对象考试题

第五章考试题 一、选择题:(每题3分,共20题) 1.下面关于类的说法错误的一项是()。 A、类属于Java语言中的复合数据类型 B、对象是Java语言 中的基本结构单位 C、类是同种对象的集合和抽象 D、类就是对象 2.如下所示代码: public class Test05_01{ private float a; public static void m ( ){ } } 如何使成员变量a被方法m( )访问()。 A、将private float a改为public float a B、将private float a改为static float a C、将private float a改为protected float a D、将private float a改为float a 3.下面关于类的说法有误的一项是()。 A、类就是对象 B、类是同种对象的集合和 抽象 C、类属于Java语言中的复合数据类型 D、对象是Java语言 中的基本结构单位

4.下列哪种类成员修饰符修饰的变量只能在本类中被访问()。 A、protected B、default C、private D、public 5.下面关于方法的说法不正确的一项是()。 A、类的私有方法不能被其他类直接访问。 B、Java中的构造方法名必须和类名相同。 C、方法体是对方法的实现,包括变量声明和合法语句。 D、如果一个类定义了构造方法,也可以用该类的默认构造方法。 6.下列程序的运行结果是()。 public class Test05_02 extends x{ int ab(){ static int a = 10; a++; System.out.println(a); } public static void main(String[] args) { Test05_02 b = new Test05_02 (); b.ab(); } } A、10 B、编译错误 C、11 D、运行成功,但不输出

最新面向对象分析与设计课程总结

面向对象分析与设计 课程总结 0923010208 指导老师:庄育飞 这学期学院开设了面向对象分析与设计(UML)这门课,通过老师的讲解,自己一些相关书籍的阅读和实践作业的完成,逐步对课程有了由浅及深的认识。我觉得学习这门课还是受益匪浅的。 面向对象(Object Oriented,OO)是一门以实践为主课程,课程中可以分开两块OOA(面向对象系统分析)和OOD(面向对象系统设计)。 OOA(面向对象系统分析)主要内容: 研究问题域和用户需求,运用面向对象的观点和原则发现问题域中与系统责任有关的对象,以及对象的特征和相互关系.OOA不涉及针对具体实现采取的设计决策和有关细节,独立于具体实现的系统模型。是一个完整确切反映问题域和用户需求的系统模型。OOA的优势:复

用、可扩展、可维护性、弹性。 OOD(面向对象系统设计):以OOA模型为基础,按照实现的要求进行设计决策,包括全局性的决策和局部细节的设计,与具体的实现条件相关。OOD的步骤:细化重组类→细化和实现类之间的关系,明确其可见性→增加属性,指定属性的类型和可见性→分配职责,定义执行每个职责的方法→对消息驱动的系统,明确消息传递的方式→利用设计模式进行局部设计→画出详细的类图和时序图。 面向对象的分析与设计方法将致力于解决传统软件研发过程中由于软件模块化结构化程度不高带来的软件重用性差、软件可维护性差、开发出的软件不能满足用户需要等方面问题。面向对象的概念包括:对象、对象的状态和行为、类、类的结构、消息和方法。对象概念将包含对象唯一性、抽象性、继承性、多态性的重要特征。面向对象的要素包含:抽象、封装性、共享性三方面。 在设计模式的研究过程中,我们组选择的是迭代器(Iterator)的设计模式研究。完成设计研究后,我对迭代器的设计模式有了更为深刻的理解。迭代器(Iterator)提供一个方法顺序访问一个聚合对象的各个元素,而又不暴露该对象的内部表示。并了解到迭代器设计模式一般在以下三类场合使用较多。 ●访问一个聚合对象的内容而无需暴露它的内部表示。 ●支持对聚合对象的多种遍历。因为遍历状态是保存在每一个迭代器对象 中的。

(完整版)面向对象程序设计与面向过程程序设计的区别(2)

面向过程程序设计和面向对象程序设计的区别 面向过程程序设计我个人的理解简单来说,他考虑问题的方式是面向流程的,一个程序的设计思路就是解决一个问题的流程。就好比游戏先登入界面,再输入密码,然后选择角色,在然后进入游戏玩耍,结束... .... 这把这些步样就是面向过程。面向过程就是分析出解决问题所需要的步骤,然后用函数骤一步调用就可以了一步实现,使用的时候一个一个依次。可以看出面向过程化程序设计是先确定算法,再确定数据结构。而面向对象程序设计是面向问题中的各种独立个体的,程序的析设分计过程就是将程序分解成不同对象(不同概念体)之间的交互的过程。这就好比在针对某个工程或游戏设计程序时先不考虑,游戏是怎么玩的,工作是怎么做的,而先会去找,游戏或工程中有哪些人或事物参与(一般选择:用户,玩家,角色等等),然后再看他们都有什么用,都干了些什么,针对这个区设计方法。最后在通过这些千丝万缕的联系把他们分门别类的,组装在一起。可以看出面向过程化程序设计是先确定数据结构再确定算法。 从上面很容易看出,面向过程的程序上一步和下一步环环相扣,他只考虑实现客户的需求不考虑以后扩展,如果以后客户的需求有变化那代码量要改变非常大耗费的时间也相当多。从本质上说,面向过程基本上是一种状态机,不利于修改,当新状态出现的时候,甚至可能需要重设每一个状态解决实现。所以说面向过

程是一种直接的编程方法,它是按照编程语言的思路考虑问题。尤其是想C语言这种过程式语言,它就是通过顺序执行一组语句来实现一个功能,这些语句的执行过程就是整个程序。不同的语言解决同一个问题的过程是不一样的。 而面向对象的程序设计很多东西都是独立的,每个对象都可以重复使用。而面向对象程序设计强调“封装”,“继承“和“多态”。数据和与数据相关的操作被包装成对象(严格的说是“类”),每一种对象是相对完整和独立的。对象可以有派生的类型,派生的类型可以覆盖(或重载)原本已有的操作。所有的这些,是为了达成更好的内聚性,即一种对象做好一件(或者一类相关的)事情,对象内部的细节外面世界不关心也看不到;以及降低耦合性,即不同种类的对象之间相互的依赖尽可能降低。而所有的这些,都有助于达成一个崇高的目标,就是可复用性。 下面举个例子来说明面向过程的程序和面向对象的程序设计的区别: 用面向过程的思想去考虑它应该是这样的:如何启动汽车、如何起步、加速、刹车、熄火等一个个操作。面向过程是把所有的功能全部在一个大的类里定义出来,当系统庞大时,功能多了,各种操作之间的调用关系也很复杂,当需要修改一个功能时就可能引发一连串的改动,使修改和维护成本增加,而不利于修改。 而面向对象则以汽车为对象,一切由汽车开始,以上的可用操

2_面向对象基础测试题和答案

共40道选择题,每题2.5分。多选题有错则全错,全对才满分. 面向对象部分测试题 1.下面描述函数重写错误的是C A.?要有子类继承或实现 ?B.?子类方法的权限必须大于等于父类的权限 C. 父类中被private权限修饰的方法可以被子类重写 D.?子类重写接口中的抽象方法,子类的方法权限必须是public的 2.关于封装下面介绍错误的是(D )。 A. 封装将变化隔离 B.?封装提高重用性。 C.?封装安全性 ?D. 只有被private修饰才叫做封装 3.试图编译运行下面的代码会发生什么情况D public class MyClass{ static int i; publicstaticvoid main(String[]args){System.out.println(i); } } ?A.?错误,变量i没有被初始化 ?B. 输出null C.?输出1 ?D. 输出0 4.在Java中,下面对于构造函数的描述正确的是( D)。 A. 类必须显式定义构造函数 B.构造函数的返回类型是void ?C.?构造函数和类有相同的名称,并且不能带任何参数

D.一个类可以定义多个构造函数 5.下面Java代码的运行结果是(C)。 class Penguin { ?private String name=null; // 名字 privateint health=0;//健康值 private String sex=null; //性别 publicvoid Penguin(){//是一般方法,不是构造方法 health = 10; ??sex = "雄"; ??System.out.println("执行构造方法。"); ?} public voidprint() { ??System.out.println("企鹅的名字是" +name + ?",健康值是"+ health + ",性别是"+ sex+"。"); ?} public staticvoidmain(String[] args){ ?Penguin pgn= new Penguin(); pgn.print(); } } A. 企鹅的名字是null,健康值是10,性别是雄。 B.?执行构造方法。 企鹅的名字是null,健康值是0,性别是null。 ?C.?企鹅的名字是null,健康值是0,性别是null。 D.?执行构造方法。 ?企鹅的名字是null,健康值是10,性别是雄。 6.class A { public int i = 10;?} class B extends A{

面向对象分析设计小结

?1、面向对象方法的基本观点: ?Coad-Y ourdon认为:面向对象=对象+类+继承+通信。 ?2、面向对象方法的特点包括: ?(1)、符合人们对客观世界的认识规律; ?(2)、对需求变化具有很强的适应性; ?(3)、支持软件复用; ?(4)、可维护性好。 ?3、对象、类、封装、继承、消息、多态性的基本概念。 对象是客观世界中具有可区分性的、能够唯一标识的逻辑单元,是现实世界中的一个事物(站在计算机技术角度,即对事物的模拟)。 类是一组具有相同属性和相同操作的对象的集合。 封装是把对象的属性和操作结合在一起,组成一个独立的单元。 继承是指子类(派生类、特化类)自动拥有其父类(基类、泛化类、超类)的全部属性和操作,即一个类可以定义为另一个更一般的类的特殊情况。 消息是对象之间采用消息传递来发生相互作用—互相联系、互发消息、响应消息、协同工作,进而实现系统的各项服务功能。 多态性是一种方法,使在多个类中可以定义同一个操作或属性名,并在每一个类中有不同的实现。 ?4、面向对象系统开发过程。 ?5、运用名词词组法来定义类(对象): ?例:音像商店出租/出售业务信息系统中的类的确定。 ?总目标:?A.提供及时培训。?B.实施的系统必须友好,易学易用。?C.实施的系统必须考虑安全问题。

?具体目标: ?1.1.1 提供一个自动系统协助顾客出售/出租结帐。 ?2.1.1 提供和维护一个自动的会员数据库。?a. 按要求提供最新会员信息。? b. 有添加、改变、删除会员信息的能力。 2.1.2 提供会员信息报表(但不限于)?a. 最少光顾的会员。?b. 最经常光顾的会员。?c. 有问题会员(欠钱,出租过期)? 4.1.1 提供、维护出售和出租项的库存数据库。?a. 按要求提供最新库存信息?b. 有添加、改变、删除库存信息(出售和出租)的能力 4.1.2 提供库存信息报表(但不限于)?a. 最不受欢迎的出租项?b. 最受欢迎的出租项?c. 过期的出租项?d. 出售和出租项的“订购”产品(采购报表) 5.1.1 提供出售报表(但不限于)?a. 用产品码表示的一段时间(天、星期、月)内销售情况?b. 用产品码表示的一段时间(天、星期、月)内出租情况相应的侯选对象清单为:安全问题、自动系统、顾客出售/出租结帐、会员数据库、会员信息、会员信息报表、库存数据库、出售和出租项、库存信息、库存信息报表、采购报表、出售报表。 ?6、对多值属性的处理方法:用部分-整体方法。 例:发票/发票行 第2章统一建模语言UML 1、UML描述的软件基本模型:用例视图、逻辑视图、构件视图、进程视图、 部署视图 2、UML的基本符号。 3、RUP项目开发过程的特征:用例驱动的系统、以体系结构为中心、螺旋 上升式的开发过程、以质量控制和风险管理为保障措施。

面向对象分析与设计试题及其答案

面向对象分析与设计试题B卷 一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题2 分,共20 分) 1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是()的 形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。 A. Simula67语言 B. Smalltalk语言 C. Java语言 D. 统一建模语言(UML)的标准 2. 面向对象的运动产生了多种面向对象的语言, 其中()是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。 A. Smalltalk B. Eiffel C. C++ D. Java 3.下列不属于面向对象技术的基本特征的是()。 A. 封装性 B. 模块性 C. 多态性 D. 继承性 4. 面向对象程序设计将描述事物的数据与( ) 封装在一起,作为一个相互依存、不可分割的整体来处理。 A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 5. 关于面向对象方法的优点,下列不正确的叙述是()。 A. 与人类习惯的思维方法比较一致 B. 可重用性好 C. 以数据操作为中心 D.可维护性好 6. ()是从用户使用系统的角度描述系统功能的图形表达方法。 A. 类图 B. 对象图 C. 序列图 D. 用例图 7. ( ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图 和其他图的基础。 A.对象图 B. 组件图 C. 类图 D. 配置图 8.()描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之 间传递消息的时间顺序。 A.对象图 B. 协作图 C. 状态图 D. 序列图 9.()就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统 中软件和硬件的物理架构。 A. 组件图 B. 协作图 C. 状态图 D. 配置图 10. 使用UML进行关系数据库的()时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 A. 业务Use Case模型设计 B. 逻辑数据模型设计 C. 物理数据模型设计 C. 物理实现设计 二、填空题( 每空1 分,共20 分) 1. 面向对象开发方法一改过去传统的以___功能分析___为基础的__面向过程__的结 构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为

面向对象基础测试题和答案

共40 道选择题,每题 2.5 分。多选题有错则全错,全对才满分. 面向对象部分测试题 1. 下面描述函数重写错误的是 C A. 要有子类继承或实现 B. 子类方法的权限必须大于等于父类的权限 C. 父类中被private 权限修饰的方法可以被子类重写 D. 子类重写接口中的抽象方法,子类的方法权限必须是public 的 2. 关于封装下面介绍错误的是( D )。 A. 封装将变化隔离 B. 封装提高重用性。 C. 封装安全性 D. 只有被private 修饰才叫做封装 3. 试图编译运行下面的代码会发生什么情况 D public class MyClass{ static int i; public static void main(String[] args){ System.out.println(i); } } A. 错误,变量i 没有被初始化 B. 输出null C. 输出1 D. 输出0 4. 在Java 中,下面对于构造函数的描述正确的是(D)。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是void C. 构造函数和类有相同的名称,并且不能带任何参数

D. 一个类可以定义多个构造函数 5. 下面Java 代码的运行结果是( C )。 class Penguin { private String name=null; // 名字 private int health=0; // 健康值 private String sex=null; // 性别 public void Penguin() { //是一般方法,不是构造方法health = 10; sex = " 雄"; System.out.println(" 执行构造方法。"); } public void print() { System.out.println(" 企鹅的名字是" + name + " ,健康值是" + health + " ,性别是" + sex+ " 。"); } public static void main(String[] args) { Penguin pgn = new Penguin(); pgn.print(); } } A. 企鹅的名字是null ,健康值是10 ,性别是雄。 B. 执行构造方法。 企鹅的名字是null ,健康值是0 ,性别是null 。 C. 企鹅的名字是null ,健康值是0 ,性别是null 。 D. 执行构造方法。 企鹅的名字是null ,健康值是10 ,性别是雄。 6. class A { public int i = 10; }

相关文档
相关文档 最新文档