面向对象分析与设计试题 B 卷一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号 填在题干的括号内每小题 2 分,共 20 分 )1. 到 20 世纪末,面向对象软件工程已经逐渐发展成熟,特别是( )的形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法A. Simula67 语言 B. Smalltalk 语言C. Java 语言 D. 统一建模语言 (UML) 的标准2. 面向对象的运动产生了多种面向对象的语言 , 其中 ( )是一种混合性面向对象语言 , 既 支持面向过程的程序设计方法, 又支持面向对象的程序设计方法, 有广泛应用的基础和丰富 开发环境的支持,因而使面向对象的程序设计能得到很快普及A. Smalltalk B. Eiffel C. C++ D. Java3.下列不属于面向对象技术的基本特征的是( )A. 封装性 B. 模块性 C. 多态性 D. 继承性4. 面向对象程序设计将描述事物的数据与 ( ) 封装在一起 ,作为一个相互依存、不可分割 的整体来处理A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象5. 关于面向对象方法的优点,下列不正确的叙述是 ( )。
A. 与人类习惯的思维方法比较一致 B. 可重用性好C.以数据操作为中心 D.可维护性好6. ( )是从用户使用系统的角度描述系统功能的图形表达方法A. 类图 B. 对象图7. ( ) 是表达系统类及其相互联系的图示 和其他图的基础A.对象图 B.组件图C. 序列图 D. 用例图,它是面向对象设计的核心,建立状态图、协作图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 ”<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) 所谓封装就是把对象的属性和行为结合成一个独立的单位, 使外界不能直接访问或修改 这些数据和代码,外界只能通过对象提供的接口函数来改变或获取对象的属性数据,这 就实现了消息隐蔽2) 继承性 如果在一个已定义的类上,增加一些特殊属性或操作,可以形成一个新的类,这个类不 仅继承了前一个类的全部特征, 而且具有新的特性, 因此可看作前一个类的特例, 是对前 一个类的继承 前一个类称为父类, 新产生的类叫做子类 通过继承关系可形成一种类层 次结构,叫做继承结构 3)多态性 在类层次结构的不同类中,可用相同的函数名实现功能不同的函数3. 简述 OOA 模型的层次结构答:00A模型采用五层次结构,它们分别是:对象 - 类层 划分待开发系统及其环境信息的基本构造单位, 标出反映问题域的对象和类, 并用符号 进行规范的描述,用信息提供者熟悉的术语为对象和类命名2) 属性层定义对象和某些结构中的数据单元, 继承结构中所有类的公共属性可放于通用类中 标识对象类必需的属性并放在合适的继承层次上, 属性的特殊限制和实例连接关系也应标识出来。
3) 服务层表示对象的服务或行为,即是要定义类上的操作4) 结构层标识现实世界中对象之间的关系当一个对象是另一个对象的一部分时,用 "整体-部分"关系表示;当一个类属于另一个类时,用类之间继承关系表示5) 主题层可将相关类或对象划分为一个主题4. 简述00D模型的总体结构,并画图表示4】答案:00D体系结构的各个部分内容:(1)问题论域部分,在00A模型的基础上,细化分析结果,设计一组构成底层应用模型的类和对 象2) 人机交互部分:设计用户界面模型 ,该用户界面模型中的类和对象提供实现人机交互操作的接口函数用户界面设计包括 菜单设计、窗口设计、输入 /输出界面设计等等3) 任务管理部分:建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及 其它与特定平台有关的问题4)数据管理部分:提供数据管理系统中存储和检索对象的基本结构, 包括对永久性数据的访问和管理数据管理设计包括:—数据存放设计:数据存放设计选择数据存放的方式 (文件存放、关系数据库表格存放或面向对象的数据库存放)设计相应的操作为每个需要存储的对象和类增加用于存储管理的属性和操作,类和对象的定义中加以描述class & object layer(类及对象层attribute layer(类及对象层service layer(服务层 )struct layer(结构层 )subject layer(主题层 )问 题 论 域 部 分人 机 交 互 部 分任 务 管 理 部 分数 据 管 理 部 分 < ))实例连接类边界实例边界服务□口 口口主题属性消息}五•试用UML对教学管理系统及相关的数据库系统进行分析和设计。
学生选课系统一般包 括(1)选课管理功能;(2)成绩管理功能试完成下列工作:(1 )建立系统静态结构模型 一画出系统用例图和类图;(10分)(2) 建立系统动态结构模型 一画出系统序列图和协作图;(10分)(3) 建立关系数据库逻辑模型10分)【答案:管理老师信息O老师学生・查询学生成绩查询课程成绩管理员・管理学生信息亠管理课程信息±4管理开设课程(a)选课管理的用例图(b)成绩管理的用例图对象类图如下:(a)选课对象类图开设课程课程名 授课日期 授课时间 地点指定老师() 学生满否()学生成绩登记学生名 学期 课程名 成绩 加入成绩() 打印()[ (b)成绩管理对象类图成绩统计学期课程名成绩按课程统计() 按学生统计 o打印()(2)把需要持久存储的数据实体类及其联系,映射成为如下关系数据库表:学生(学生号、姓名、出生日期、性别、籍贯、地址、、入学时间、专业、班级备注) 教师(教师号、姓名、出生日期、性别、籍贯、地址、、职称、专长、备注)课程(课程号、课程名、描述、学分、学时、性质、备注)开设课程(课程号、学期、授课日期、授课时间、地点、选修人数、备注)】面向对象分析与设计试题 C卷一、单项选择题 (在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号 填在题干的括号内。
每小题 1分,共20分)1. 面向对象技术的最重要的基本特征是 ()A.抽象性 B.封装性 C.多态性 D.继承性2. 面向对象程序设计将描述事物的数据与 ()封装在一起,作为一个相互依存、不可分割 的整体来处理A•信息 B.数据隐藏 C.对数据的操作 D.数据抽象3. 关于面向对象方法的优点,下列不正确的叙述是 ()A.与人类习惯的思维方法比较一致 B.可重用性好C.以数据操作为中心 D.可维护性好14.在用例之间,会有三种不同的关系,下列哪个不是它们之间可能的关系(D)A. 包含( include ) B.扩展( extend )C. 泛化( generalization )D. 关联( connect )15.下列关于活动图的说法错误的是()A. 一张活动图从本质上说是一个流程图,显示从活动到活动的控制流B. 活动图用于对业务过程中顺序和并发的工作流程进行建模C. 活动图的基本要素包括状态、转移、分支、分叉和汇合、泳道、对象流D. 活动图是UML中用于对系统的静态方面建模的五种图中的一种4. C++ 对 C 语言作了很多改进,即从面向过程变成为面向对象的主要原因是 A. 增加了一些新的运算符 B. 允许函数重载, 明符必须用原型 D. 引进了类和对象的概念并允许设置缺省参数C.( ) 。
规定函数说5.下列不属于类的成员函数的是( ) A. 构造函数 B. 析构函数C.友元函数D. 拷贝构造函数6.继承机制的作用是 ( )A. 信息隐藏 B. 数据封装C.派生新类D. 数据抽象7.类模板经过实例化而生成具体( )A. 对象B. 模板函数C. 函数模板D. 类8.9.类的析构函数是在 ( ) 调用的A. 类创建时C. 删除对象时在公有继承的情况下,基类成员在派生类中的访问权限A. 受限制B. 创建对象时 D. 不自动调用10. C++ 语言通过类的嵌套A.B. 保持不变 C. 受保护 ( ) 来建立类族B. 类的继承 C. 虚函数( )D. 不受保护D.抽象类11.在A.C.UML中,有 事物、关系和图 事物、关系和结构3 种基本构造块,分别是( A)B. 注释、关系和图 注释、关系和结构D.UML中,有四种关系,下面哪个不是(C.12.在A. 依赖关系B. 继承关系B)泛化关系 D.实现关系13.下面哪个不是A. 状态图UM冲的静态视图B. 用例图)C.对象图 D.类图16.用例( Use-case )用来描述系统在事件做出响应时所采取的行动用例之间是具有相关 性的在一个“订单输入子系统” 中,创建新订单和更新订单都需要检查用户帐号是否正确。
那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是( )关系A. 扩展( extend ) B. 包含( include )C. 分类( classification ) D. 聚集( aggregation )D.边界类17. UML中类的有三种,下面哪个不是其中之一( )A.实体类 B. 抽象类 C. 控制类18•阅读图例,判断下列哪个说法是错误的 )还书<>图书查询«ex1女纳罚金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 ”<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<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. STL8. 类的构造函数是在 ( ) 调用的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. 阅读图例,判断下列哪个说法是错误的 )——«include» _____"SHF J / 还书、- 图书查询交纳罚金A. 读者可以使用系统的还书用例B. 每次执行还书用例都要执行图书查询用例C. 执行还书用例有可能既执行图书查询用例,又执行交纳罚金用例D.每次执行还书用例都要执行交纳罚金用例19. ()描述了一组交互对象间的动态协作关系,它表示完成某项行为操作的参与对象 和这些对象之间传递消息的时间顺序A.协作图 B. 序列图 C. 对象图 D. 组件图20. ( )能够更好地用于对数据库建模。
A.传统的ER图 B . UML的用例图C . UML的类图 D .数据流图二、填空题(每空1分,共20分)1. 面向对象开发方法模拟人们理解和处理客观世界的方式来 (1) 问题,把系统视为一系列_(2)_的集合,其面向对象的 _(3)_又将分析的结果映射到某种面向对象⑷ 工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的概念,从而使面向对象的软件开发能比较自然地模拟客观世界的 活动,使(5)_空间与 (6) 空间在结构上尽可能一致 因此,采用面向对象方法可以更有效地开发大型软件系统面向对象方法的 —⑺__、_(8)__、_(9)__态等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更 好地克服 (10)因此,它已成为成熟的广为采用的软件开发方法到 20世纪末,面向对象软件工程逐渐发展成熟,特别是 (11) 的形成和广泛使用,使面向对象软件开发方法已成为软件开发的主流技术2. UML通过9种视图来为系统建模,这 9种视图是:(12)、 (13) 、(14)(15)、 (16) 、(17)(18)、 (19) 、(20) 。
三、写出下列程序的输出结果 (满分10分)#in elude class pers on{ public:virtual void show(){ cout<< “ Itis a person ” <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. fstream11. 基类中的 protected 成员,通过 public 派生,其在派生类中的可见性为 ( ) A. 不可访问 B. privateC. protected D. public在 C++ 程序中,对象之间的相互通信可以通过( )来实现A .继承 B.调用成员函数C •封装 D •函数重载12. ()阶段的主要目标是为了更精确地理解用户需求,并获得一个使用开发人员熟悉的 语言描述的、易于维护且能体现系统基本结构的模型A.系统需求分析 B.系统分析C.系统设计 D.系统实现13. 在面向对象程序设计语言中, ()是利用可重用成分构造软件系统的最有效的特性,它不仅支持系统的可重用性,而且还有利于提高系统的可扩充性。
A.封装 B.继承 C.抽象 D.引用14. ()是从用户使用系统的角度描述系统功能的图形表达方法D.配置图(包括消息通信)的动态视图就称为A.类图 B.组件图 C.用例图15. 用来描述实现某些服务所涉及的对象及其交互关系(),可用于描绘业务流程D.活动图A.对象图 B.协作图 C.状态图16. ()表示构成系统的代码部件及其相互之间联系的图示配置图)描述的是系统的静态组D.A.状态图 B.协作图 C.组件图17. UML提供了一系列的图支持面向对象的分析与设计,其中织结构和数据结构A.序列图 B协作图 C.对象图19. ()是描述系统体系结构的静态实现视图A .类图 B.对象图20. 使用UML进行关系数据库的( 并把它们映射成为关系数据库表(A.物理数据模型设计C.业务Use Case模型设计D.类图C.组件图)时,需要设计出表达持久数据的实体类及其联系, Table)、视图(View)等B. 物理实现设计C. 逻辑数据模型设计D.配置图二、填空题(每空1分,共20分)1. 用_ ( 1 )—机制可以实现发送一个通用消息而调用不同的方法:( 2_)机制是实现信息隐蔽的一种技术,其目的是使类的 (3)相互分离。
2. 类是一组具有相同属性和服务的对象的抽象描述,类中的每个对象都是这个类的一个 (4)类之间共享属性与服务的机制叫做 (5)o一个对象通过发送 (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" << en dl;}virtual void f( ) { cout << "B::f" << en dl; }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 mai n(){ B* pB;D d1;pB=&d1;pB->f();delete pB;}四•简答题(每小题4分,共20分)1. 为什么面向对象方法能更有效地克服软件危机?2. 如何实现运行时多态?3. 基于UML的面向对象系统开发方法包括哪几步?4. 简述确定分析类的方法。
5. 简述基于UML的数据库系统分析和设计的步骤五•分析与设计题试用UML对开放式学籍管理系统及相关的数据库系统进行分析和设计学籍管理系统的主要用户是系统管理员和学生:系统管理员使用学籍管理系统来实现教师信息管理、 学生信息管理,课程管理、成绩管理和打印报表;学生使用学籍管理系统来实现选课管理和成绩查询试完成下列工作:(1) 画出学籍管理系统的用例图;( 6分)定义学籍管理系统的三个基本分析类;( 6分)(3) 画出学籍管理系统的类图;( 6分)(4) 画出学生查询成绩的活动图;( 6分)(5) 学生类和课程类之间存在多对多的关联,试将这种关联转化为关系数据库模式 分)2010-2011第二学期面向对象分析与设计试题 A卷一、单项选择题 (在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内每小题 1分,共20分)1. 面向对象分析与设计是面向对象软件开发过程中的两个重要阶段, 下列活动中, 属于面向对象分析阶段A •构建分析模型 B •识别分析类 C •用例动态建模 D •评估分析模型2. 在面向对象方法中, 可看成是属性数据以及这些属性数据上的专用操作的封装体。
A.实体 B.类 C.类模板 D.对象3. 类是一组具有相同属性和相同操作的对象的集合,类中的每个对象都是这个类的一个A.实体 B.实例4. 一个对象通过发送 来请求另「A.参数 B.消息5 •类之间共享属性和操作的机制称为A.抽象 B.封装6. 类的设计应遵循三条基本原则对于 一般来说应该通过添加新类实现A.封装原则C.最小惊讶原则7. 一个类的 A.私有成员C.公有成员8. 当对象离开其有效范围,或被清除时,A.静态成员函数 B.友员函数9. ______是实现 一种接口,多种方法A.抽象 B.封装10. 如果某基类的一个成员函数被说明为 数实现A.内联函数 B.静态函数11. 在二进制模式下,可利用文件输入 式存储到文件里C.用例 D.组件-对象为其服务C.成员函数名 D.接口函数名C.多态 D.继承-个设计并实现好的类,如果需要功能上的扩充,而不是修改原类的代码这种原则叫B.开放/封闭原则D.单一功能原则只能被类的成员函数、友元函数及派生类的成员函数所访问B.受保护性成员D.纯虚函数 将被调用来释放对象所占用的内存C.构造函数 D.析构函数的技术C.多态 D.继承 ,则该成员函数在派生类中可以有不同的函C.友元函数 D.虚函数/输出流类中定义的 函数将所有数据以字符形A. load B. save C. write D. read12. 基类中的public成员,通过protected派生,其在派生类中的可见性为 A. private B.不可访问 C. public D. protected13. 是数据类型抽象化或参数化的类。
A .抽象类 B .基类 C .组件 D .类模板14. 是UML中用来描述用户对系统的功能需求的有效模型图A.类图 B.对象图 C.组件图 D.用例图15. 基于UML的 不但能对数据建模,而且能对行为建模A.组件图 B.类图 C.配置图 D.序列图16. 用来描述为完成某项行为操作所涉及的对象和这些对象之间传递消息的时间顺序的UML模型图叫做 A.活动图 B.协作图 C.状态图 D.序列图17. UML的 用于描述系统业务流程, 它由一系列的动作状态构成,动作的状态控制可以从一个状态流向另一个与之相邻的状态A.状态图 B.序列图 C.活动图 D.协作图它可以表18. UML的 是用于表示构成分布式系统的节点集和节点之间的联系的图示,示系统中软件和硬件的物理架构A.组件图 B.类图 C.协作图 D.配置图19. UML的 用于表示系统的软件体系结构A.类图 B.对象图 C.组件图 D.组件图20. 使用UML进行关系数据库的( )时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表( Table)、视图(View)等A.业务Use Case模型设计 B.逻辑数据模型设计C.物理数据模型设计 D.物理实现设计二、填空题(每空1分,共20分)1. 在面向对象技术中,用 _ ( 1 ) _来抽象地表示客观实体,用( 2_)来抽象描述具有相同属性和行为的对象集合,用 (3)来抽象地描述一组数据属性相似但某些数据类型不同的类。
2. 基于UML的系统分析的主要目标是为了更精确地理解 _ ( 4 ) _,并获得一个使用 —(5 ) 的语言描述的、易于维护的且能体现系统基本 (6 )的分析模型分析模型是由一系列 (7 ) 和 ( 8 )及其相互关系构成分析模型中的类也叫分析类,分析类可分为三类: (9 ) 、 ( 10 ) 、 ( 11 )类与类之间的联系可以分为四种: (12 ) 、 ( 13) 、 ( 14) 、 ( 15 )3. 在基于UML的系统设计阶段,应该根据靠近问题域的( 16 ) _,转化得到靠近解域的(17 );在转化的过程中,对分析阶段的模型进行( 18 )和(19 ),并用类似于编程实现的语言来描述( 20 )这个设计模型能够比较容易地被转化成程序代码这就是系统设计的目的三、试编程实现下列类层次结构以实现对客户数据的管理 (共20分)Customer-Cust_ID : stri ng -Cust_Name : stri ng -Desc : stri ng+read()+show()亍 *Corp_Cust -Off_Price : stri ng -Trust_Leve : stri ng +read() +show()Vip_cust -Ph one : stri ng -Vip_Leve : stri ng +read() +show()四•简答题(每小题4分,共20分)1. 为什么面向对象软件开发方法能成为软件开发的主流技术?2. 面向对象技术包含哪些基本机制?3. 由基类生成派生类的过程可分为几个步骤?4. 基于UML的面向对象系统开发方法包括哪几步?各步应画出哪些模型图?5. 在于UML的数据库系统分析和设计过程中, 逻辑数据模型设计阶段的主要任务是什么?五.分析与设计题(共20分)试用UML对库存管理系统及相关的数据库系统进行分析和设计。
调查获知库存管理系统的 主要用户是入库管理员、 出库管理员、库存管理员和系统管理员: 入库管理员负责登记、修改和查询入库流水账;出库管理员负责记录、 、修改和查询出库流水账;库存管理员负责登记库存台帐、库存信息查询和打印库存报表; 系统管理员负责用户信息管理、数据备份和产品基本信息管理各种账目数据如下所示表1入库流水账产品代码单位入库数量单价总价入库日期入库单编号表2出库流水账产品代码单位出库数量单价总价岀库日期出库单编号表3库存台账产品代码单位日期入库数量出库数量库存数量。