1、-CAL-FENGHAI.Network Information Technology Company.2020YEAR面向对象分析与设计试题及其答案面向对象分析与设计试题B卷一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 2 分,共 20 分 ) 1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是( )的形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。 A. Simula67语言 B. Smalltalk语言 C. Java语言 D. 统一建模语言(UML)的标准2. 面向对象的运动产生了多种面
2、向对象的语言, 其中( )是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。A. Smalltalk B. Eiffel C. C+ D. Java3下列不属于面向对象技术的基本特征的是( )。A. 封装性 B. 模块性 C. 多态性 D. 继承性 4. 面向对象程序设计将描述事物的数据与 ( ) 封装在一起,作为一个相互依存、不可分割的整体来处理。A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 5. 关于面向对象方法的优点,下列不正确的叙述是 ( )。A. 与人
3、类习惯的思维方法比较一致 B. 可重用性好 C. 以数据操作为中心 D.可维护性好6. ( )是从用户使用系统的角度描述系统功能的图形表达方法。 A. 类图 B. 对象图 C. 序列图 D. 用例图7. ( ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图和其他图的基础。 A对象图 B. 组件图 C. 类图 D. 配置图8.( )描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。 A对象图 B. 协作图 C. 状态图 D. 序列图9.( )就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬
4、件的物理架构。 A. 组件图 B. 协作图 C. 状态图 D. 配置图10. 使用UML进行关系数据库的( )时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 A. 业务Use Case模型设计 B. 逻辑数据模型设计C. 物理数据模型设计 C. 物理实现设计二、填空题 ( 每空 1 分,共 20 分 )1. 面向对象开发方法一改过去传统的以_功能分析_为基础的_面向过程_的结构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列_对象_的集合,其_面向对象的设计_又将分析的结果映射到某种面向对象实现工具的
5、结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的_概念_,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空间与_解空间_在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的_封装_、_继承_、_多态_等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服_软件危机_。因此,它已成为成熟的广为采用的软件开发方法。2. 对象是客观实体的抽象表示,是由_描述对象属性的数据_和_对这些数据进行的操作行为_两部分组成。而_类_是对具有相同属性和行为的一组对象的抽象描述。因此,它可作为一
6、种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的_实例_。通过_继承_关系又可形成一种类层次结构。3. UML中用于描述系统的静态建模的视图称为静态视图,包括_用例图_、_类图_、_对象图_、_包图_和_构件图_。三、写出下列程序的输出结果。 ( 满分 10 分 ) #include #include class Person public: Person(char *s) name=new charstrlen(s)+1; strcpy(name, s); virtual void print() cout”My name is”nameendl; protec
7、ted: char *name;class Student:public Person public: Student(char *s, float g):Person(s) avg=g; void print(char *s) couts”My name is “name”and my grade is”avgendl; private: float avg;class professor:public Person public:Professor(char *s, int n):Person(s) publs=n; void print() cout”My name is”name” a
8、nd I have”publs” publication.”print(); p=&y; p-print(); p=&z; p-print(); 【运行结果:My name is ZhangMy name is WangMy name is Liu and I have 5 publications.四. 简答题(每小题5分,共 20 分)1. 简述面向对象软件开发方法的优点。2. 简述面向对象技术的三大机制。答:(1)封装性(encapsulation)所谓封装就是把对象的属性和行为结合成一个独立的单位,使外界不能直接访问或修改这些数据和代码,外界只能通过对象提供的接口函数来改变或获取对象的
9、属性数据,这就实现了消息隐蔽。(2)继承性如果在一个已定义的类上,增加一些特殊属性或操作,可以形成一个新的类,这个类不仅继承了前一个类的全部特征,而且具有新的特性,因此可看作前一个类的特例,是对前一个类的继承。前一个类称为父类,新产生的类叫做子类。通过继承关系可形成一种类层次结构,叫做继承结构。(3)多态性在类层次结构的不同类中,可用相同的函数名实现功能不同的函数。3. 简述OOA模型的层次结构。答:OOA模型采用五层次结构,它们分别是:(1)对象-类层划分待开发系统及其环境信息的基本构造单位,标出反映问题域的对象和类,并用符号进行规范的描述,用信息提供者熟悉的术语为对象和类命名。(2)属性层
10、定义对象和某些结构中的数据单元,继承结构中所有类的公共属性可放于通用类中。标识对象类必需的属性并放在合适的继承层次上,属性的特殊限制和实例连接关系也应标识出来。(3)服务层表示对象的服务或行为,即是要定义类上的操作。(4)结构层标识现实世界中对象之间的关系。当一个对象是另一个对象的一部分时,用整体-部分关系表示;当一个类属于另一个类时,用类之间继承关系表示。(5)主题层 可将相关类或对象划分为一个主题。4. 简述OOD模型的总体结构,并画图表示。【4】答案:OOD体系结构的各个部分内容:(1)问题论域部分,在OOA模型的基础上,细化分析结果,设计一组构成底层应用模型的类和对象。(2)人机交互部
11、分:设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操作的接口函数。用户界面设计包括 菜单设计、窗口设计、输入/输出界面设计等等。(3)任务管理部分:建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及其它与特定平台有关的问题。 (4)数据管理部分:提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。数据管理设计包括: 数据存放设计:数据存放设计选择数据存放的方式(文件存放、关系数据库表格存放或面向对象的数据库存放)。 设计相应的操作。为每个需要存储的对象和类增加用于存储管理的属性和操作,在类和对象的定义中加以描述。五. 试用UML对教学管理系统及相关
12、的数据库系统进行分析和设计。学生选课系统一般包括(1)选课管理功能;(2) 成绩管理功能。试完成下列工作:(1)建立系统静态结构模型画出系统用例图和类图;(10分)(2) 建立系统动态结构模型画出系统序列图和协作图;(10分)(3)建立关系数据库逻辑模型。(10分)【答案:(1) 系统用例图如下对象类图如下:(2)把需要持久存储的数据实体类及其联系,映射成为如下关系数据库表:学生(学生号、姓名、出生日期、性别、籍贯、地址、电话、入学时间、专业、班级备注)教师(教师号、姓名、出生日期、性别、籍贯、地址、电话、职称、专长、备注)课程(课程号、课程名、描述、学分、学时、性质、备注)开设课程(课程号、
13、学期、授课日期、授课时间、地点、选修人数、备注)】-面向对象分析与设计试题C卷一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 1 分,共 20 分 ) 1.面向对象技术的最重要的基本特征是 ( )。A. 抽象性 B. 封装性 C. 多态性 D. 继承性 2. 面向对象程序设计将描述事物的数据与 ( ) 封装在一起,作为一个相互依存、不可分割的整体来处理。A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 3. 关于面向对象方法的优点,下列不正确的叙述是 ( )。A. 与人类习惯的思维方法比较一致 B. 可重用性好 C. 以
14、数据操作为中心 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. 类创
15、建时 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.
16、类图14在用例之间,会有三种不同的关系,下列哪个不是它们之间可能的关系(D)A.包含(include) B.扩展(extend)C.泛化(generalization) D.关联(connect)15下列关于活动图的说法错误的是()A. 一张活动图从本质上说是一个流程图,显示从活动到活动的控制流B. 活动图用于对业务过程中顺序和并发的工作流程进行建模。C. 活动图的基本要素包括状态、转移、分支、分叉和汇合、泳道、对象流。D. 活动图是UML中用于对系统的静态方面建模的五种图中的一种16用例(Use-case)用来描述系统在事件做出响应时所采取的行动。用例之间是具有相关性的。在一个“订单输入子系
17、统”中,创建新订单和更新订单都需要检查用户帐号是否正确。那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是()关系A.扩展(extend) B.包含(include)C.分类(classification) D.聚集(aggregation)17UML中类的有三种,下面哪个不是其中之一( )A.实体类 B.抽象类 C.控制类 D.边界类18阅读图例,判断下列哪个说法是错误的。()A.读者可以使用系统的还书用例B.每次执行还书用例都要执行图书查询用例C.每次执行还书用例都要执行交纳罚金用例D.执行还书用例有可能既执行图书查询用例,又执行交纳罚金用例19关于协作图的描述,下列哪个不
18、正确(B)A.协作图作为一种交互图,强调的是参加交互的对象的组织;B.协作图是顺序图的一种特例C.协作图中有消息流的顺序号;D.在ROSE工具中,协作图可在顺序图的基础上按“F5”键自动生成;20在UML中,()把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履行该组所包括的活动,它能够明确地表示哪些活动是由哪些对象完成的。 A组合活动 B同步条 C活动 D泳道二、填空题 ( 每空 1 分,共 20 分 )1. 对象是客观实体的抽象表示,是由_和_两部分组成。而_是对具有相同属性和行为的一组对象的抽象描述。因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建
19、的一个个具体对象就是类的_。通过_关系又可形成一种类层次结构。在类层次结构的不同类中,可用相同的函数名实现功能不同的函数,面向对象技术的这种特性叫做_。2. UML 从不同的视角为系统架构建模,可产生九种视图:_、_、_、_、_、 _、_、_、_。3. _是用来反映若干个对象之间动态协作关系的一种交互图。它主要反映对象之间已发送消息的先后次序和对象之间的交互过程。_是用来描述实现某些服务所涉及的对象及其相互之间的关系(包括消息通信)的动态视图。建模者可以选择_来反映对象之间的协作关系;如果需要强调时间和序列,最好选择_;如果需要强调上下文相关,最好选择_。三、写出下列程序的输出结果。 ( 满分
20、 10 分 ) #include #include class Person public: Person(char *s) name=new charstrlen(s)+1; strcpy(name, s); virtual void print() cout”My name is”nameendl; protected: char *name;class Student:public Person public: Student(char *s, float g):Person(s) avg=g; void print(char *s) couts”My name is “name”and
21、 my grade is”avgendl; 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.”print(); p=&y; p-print(); p=&z; p-print(); 四. 简答题(每小题4分,共 20 分)1. 简述统一建模语言UML的优点。2. 简述面向对象技术的三大机制。3. 简述面向对象分析的基
22、本步骤。4. 简述OOD模型的总体结构,并画图表示。5. 应用UML进行系统分析和设计所需建立视图有那几种?五. 试用UML对图书管理系统及相关的数据库系统进行分析和设计。图书管理系统应实现(1)借书;(2) 还书;(3)图书资料和借阅信息查询;(4)系统维护。试完成下列工作:(1)建立系统静态结构模型画出系统用例图和类图;(10分)(2)建立系统动态结构模型画出序列例图和协作图;(10分)(2)建立关系数据库逻辑模型。(10分)-面向对象分析与设计试题D卷一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 1 分,共 20 分 ) 1.
23、 到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是( ) 的形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。 A. Simula67语言 B. Smalltalk语言 C. Java语言 D. 统一建模语言(UML)的标准2下列不属于面向对象技术的基本特征的是( )。A. 封装性 B. 模块性 C. 多态性 D. 继承性 3. 面向对象程序设计将描述事物的数据与 ( ) 封装在一起,作为一个相互依存、不可分割的整体来处理。A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 4. C+ 对 C 语言作了很多改进,即从面向过程变成为面向对象的主要原因
24、是 ( )。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
25、. 类 9. 类的构造函数是在 ( ) 调用的。 A. 类创建时 B. 创建对象时 C. 删除对象时 D. 不自动调用 10 在公有继承的情况下,基类成员在派生类中的访问权限 ( ) A. 受限制 B. 保持不变 C. 受保护 D. 不受保护 11 . C+ 语言通过 ( ) 来建立类族。A. 类的嵌套 B. 类的继承 C. 虚函数 D. 抽象类 12. UML提供了4种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。其中()是面向对象系统建模中最常用的图,用于说明系统的静态设计视图 A. 用例图 B. 类图 C. 对象图 D. 序列图13. 当需要描述体系结构的静态实施视图时,应该
26、选择()。 A对象图 B. 组件图 C. 类图 D. 配置图14. 用例(Use-case)用来描述系统在事件做出响应时所采取的行动。用例之间是具有相关性的。在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户帐号是否正确。那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是()关系。A.扩展(extend) B.包含(include)C.分类(classification) D.聚集(aggregation)15.()是描述系统中在某一时刻,一组对象以及它们之间关系的图形,其可以看作是类图在系统某一时刻的实例。A组件图 B类图 C对象图 D部署图16. 顺序图是强调消
27、息随时间顺序变化的交互图,下面哪个不是用来描述顺序图的组成部分()A.状态 B.生命线 C.激活期 D.类角色17.下面哪个选项中有不是活动图中的基本元素( )A状态、分支 B. 状态、汇合 C. 泳道、转移 D. 信号、转移18. 以下是图书管理系统中的相关类,属于边界类的是( )A.书类 B.借书操作界面类 C.书籍管理类 D.读者类19. 在用UML进行数据库的分析与设计过程中,( ) 就是进行数据库的需求分析,使用用例图、类图、顺序图、活动图等建立业务模型。A. 逻辑数据模型设计 B 业务Use Case模型设计 C. 物理数据模型设计 D. 物理实现设计20. 使用UML进行关系数据
28、库的( )时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 A. 业务Use Case模型设计 B. 逻辑数据模型设计C. 物理数据模型设计 C. 物理实现设计二、填空题 ( 每空 1 分,共 20 分 )1. UML中用于描述系统的静态建模的视图称为静态视图,包括_、_、_、_和_。用于描述系统的动态建模的视图称为动态视图,包括_、_、_和_。2. 对象是客观实体的抽象表示,是由_和_两部分组成。而_是对具有相同属性和行为的一组对象的抽象描述。因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是
29、类的_通过_关系又可形成一种类层次结构。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*pendl; ;class Derived:pu
30、blic Base static int y;public:Derived(int b=0) *p=b; y+;void print() cout*p,yprint(); Derived(20).print();四. 简答题(每空4分,共 20 分)1. 简述UML的优点。2. 简述面向对象技术的三大机制。3. 简述OOA模型的层次结构。4. 简述OOD模型的总体结构,并画图表示。5. 应用UML进行数据库系统分析和设计步骤。五. 试用UML对网上超市系统及相关的数据库系统进行分析和设计。请完成下列工作:(1)建立系统静态结构模型画出系统用例图和类图;(10分)(2)建立系统动态结构模型画出序
31、例图和活动图;(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. 封
32、装性 C. 多态性 D. 继承性5. C+ 对 C 语言作了很多改进,即从面向过程变成为面向对象的主要原因是 ( )。A. 增加了一些新的运算符 B. 引进了类和对象的概念C. 允许类的继承和派生 D. 允许函数重载6. 继承机制的作用是 ( )。 A. 信息隐藏 B. 数据封装 C. 数据抽象 D.软件重用7. ( ) 经过实例化而生成具体的类。 A. 对象 B. 函数模板 C. 类模板 D. STL8. 类的构造函数是在 ( ) 调用的。 A. 类创建时 B. 创建对象时 C. 删除对象时 D. 不自动调用 9. 在保护性继承的情况下,基类的public和protected成员在派生类中变
33、为 ( )成员。 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中的
34、动态视图( )A. 用例图 B.类图 C.对象图 D.序列图15下列说法错误的是()A. 活动图不能用于描述系统业务流程。B. 活动图由一系列的动作状态构成,动作的状态控制可以从一个状态流 向另一个与之相邻的状态。C. 活动图还可以表示决策、条件、动作状态的并行执行、消息的规范说明等内容。D. 协作图可以用来描绘系统业务流程。16在一个“图书管理系统”中,借书处理和还书处理都需要先通过身份验证。那么,用例“借书处理”、“还书处理”与用例“身份验证”之间是()关系A. 特化 B. 泛化 C. 使用 D.扩展17( )就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和
35、硬件的物理架构。A.对象图 B.类图 C.组件图 D.配置图18阅读图例,判断下列哪个说法是错误的。()A.读者可以使用系统的还书用例B.每次执行还书用例都要执行图书查询用例C.执行还书用例有可能既执行图书查询用例,又执行交纳罚金用例D. 每次执行还书用例都要执行交纳罚金用例19( )描述了一组交互对象间的动态协作关系,它表示完成某项行为操作的参与对象和这些对象之间传递消息的时间顺序。A. 协作图 B.序列图 C.对象图 D.组件图 20( )能够更好地用于对数据库建模。 A传统的ER图 BUML的用例图 CUML的类图 D数据流图二、填空题 ( 每空 1 分,共 20 分 )1. 面向对象开
36、发方法模拟人们理解和处理客观世界的方式来_(1)_问题,把系统视为一系列_(2)_的集合,其面向对象的_(3)_又将分析的结果映射到某种面向对象_(4)_工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的概念,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使_(5)_空间与_(6)_空间在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的_(7)_、_(8)_、_(9)_态等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服_(10)_。因此,它已成为成熟的广为采用的软件开发方法。到20世纪末,面向对象软件工程逐渐发展成熟,特别是_(11)_的形成和广泛使用,使面向对象软件开发方法已成为软件开发的主流技术。2. UML 通过9种视图来为系统建模,这9种视图是:_(12)_、_(13)_、_(14)_、_(15)_