完整版面向对象分析与设计练习题含答案.docx
- 文档编号:18203959
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:40
- 大小:411.12KB
完整版面向对象分析与设计练习题含答案.docx
《完整版面向对象分析与设计练习题含答案.docx》由会员分享,可在线阅读,更多相关《完整版面向对象分析与设计练习题含答案.docx(40页珍藏版)》请在冰点文库上搜索。
完整版面向对象分析与设计练习题含答案
面向对象分析与设计试题B卷
一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题2分,共20分)
/*上个世纪80年代开始至今还盛行的以Smalltalk,C++等为代表的面向对象软件开发方法
(00)*/
1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是(D)的
形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。
A.Simula67语言(20世纪70年代的Simula-67是第一个面向对象的语言)
B.Smalltalk语言(80年代初的Smalltalk语言)
C.Java语言(对流行的语言进行面向对象的扩充得到的语言或C++)
D.统一建模语言(UML)的标准
2.面向对象的运动产生了多种面向对象的语言,其中(C)是一种混合性面向对象语言
既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰
富开发环境的支持,因而使面向对象的程序设计能得到很快普及。
A.SmalltalkB.EiffelC.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.业务UseCase模型设计(一种描述系统功能需求的方法。
表示用户使用系统的一种情况)
B.逻辑数据模型设计
C.物理数据模型设计
D.物理实现设计
二、填空题(每空1分,共20分)
1.面向对象开发方法一改过去传统的以功能分析和供能分解—为基础的面向
过程的结构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问
题,把系统视为一系列对象的集合,其面向对象的设计又将分析的结果映射
到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的概念,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空间与解空间在结构上尽可能一致。
因此,采用面向对象方法可以更有效地开发大型软件系统。
面向对象方法的封装、
继承__、—多态等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服软件危机。
因此,它已成为成熟的广为采用
的软件开发方法。
2.对象是客观实体的抽象表示,是由数据和对数据的操作
两部分组成。
而类是对具有相同属性和行为的一组对象的抽象描述。
因此,它
可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对
象就是类的实例。
通过继承关系又可形成一种类层次结构。
3.UML中用于描述系统的静态建模的视图称为静态视图,包括—用例图、
类图、对象图、组件图和配置图。
三、写出下列程序的输出结果。
(满分10分)
#include
#include
classPerson
{
public:
Person(char*s)
{
name=newchar[strlen(s)+1];
strcpy(name,s);
}
virtualvoidprint()
{cout<<"Mynameis"< char*name; }; classStudent: publicPerson (public: Student(char*s,floatg): Person(s)(avg=g;} voidprint(char*s) (cout< private: floatavg; }; classprofessor: publicPerson (public: Professor(char*s,intn): Person(s)(publs=n;} voidprint() (cout<<"Mynameis"< <<"publication."< private: intpubls; }; voidmain(void) (Person*p; Personx(Zhang"); Studenty(Wang",4,2); Professorz(Liu",5); p=&x;p->print(); p=&y;p->print(); p=&z;p->print();} 4.简答题(每小题5分,共20分) 1.简述面向对象软件开发方法的优点。 (1)把软件系统看成是各种对象的集合,这更接近人的思维 (2)软件需求的变动往往是功能的变动,而功能的执行者一对象一般不会有太大 的变化。 这使得按照对象设计出来的系统结构比较稳定 (3)对象包括属性和方法。 对象把属性和方法的具体实现方式一起封装起来,这使得方法与之相关的属性不再分离,提高每个子系统的相对独立性,从而提高软件的可维护性。 (4)支持封装,继承,多态,和抽象,提高了软件的可重用性,维护性和可扩展性 2.简述面向对象技术的三大机制。 封装、继承、多态 3.简述OOA模型的层次结构。 (1)对象-类层: 划分待开发系统及其环境信息的基本构造单位,标出反映问题域的对 象和类,并用符号进行规范的描述,用信息提供者熟悉的术语为对象和类命名。 (2)属性层: 定义对象和某些结构中的数据单元,继承结构中所有类的公共属性可放于 通用类中。 标识对象类必需的属性并放在合适的继承层次上,属性的特殊限制和实例连接关系也应标识出来。 (3)服务层: 表示对象的服务或行为,即是要定义类上的操作。 (4)结构层: 标识现实世界中对象之间的关系。 当一个对象是另一个对象的一部分时, 用"整体-部分"关系表示;当一个类属于另一个类时,用类之间继承关系表小。 (5)主题层: 可将相关类或对象划分为一个主题。 4,简述OOD模型的总体结构,并画图表示。 (1)问题论域部分,在OOA模型的基础上,细化分析结果,设计一组构成底层应用模型的类和对象。 (2)人机交互部分: 设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操 作的接口函数。 用户界面设计包括菜单设计、窗口设计、输入/输出界面设计等等。 (3)任务管理部分: 建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及其它与特定平台有关的问题。 (4)数据管理部分: 提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据 的访问和管理。 数据管理设计包括: —数据存放设计: 数据存放设计选择数据存放的方式(文件存放、关系数据库表格存 放或面向对象的数据库存放)。 一设计相应的操作。 为每个需要存储的对象和类增加用于存储管理的属性和操作,在 类和对象的定义中加以描述。 class&objectlayer (类及对象层 attributelayer (类及对象层 servicelayer (服务层 structlayer (结构层 subjectlayer (主题层 问 人 任 数 题 机 务 据 论 交 管 管 域 互 理 理 部 部 部 部 分 分 分 分 类边界 俏息 ^=1 服务 5.试用UML对教学管理系统及相关的数据库系统进行分析和设计。 学生选课系统一般包括 (1)选课管理功能; (2)成绩管理功能。 试完成下列工作: 6. (1)建立系统静态结构模型一画出系统用例图和类图;(10分) 学生 开设课程 ' 学生成绩登记 课程名 授课日期 授课时间 地点 学生名学期课程名成绩 指定老师()学生满否() 加入成绩()打印() 成绩统计 (b)成绩管理对象类图 课程名 成绩 按课程统计() 按学生统计o 打印() (2)建立系统动态结构模型一画出系统序列图和协作图;(10分) (3)建立关系数据库逻辑模型。 (10分) 学生(学生号、姓名、出生日期、性别、籍贯、地址、电话、入学时间、专业、班级备注) 教师(教师号、姓名、出生日期、性别、籍贯、地址、电话、职称、专长、备注) 课程(课程号、课程名、描述、学分、学时、性质、备注) 开设课程(课程号、学期、授课日期、授课时间、地点、选修人数、备注) 面向对象分析与设计试题C卷 18.阅读图例,判断下列哪个说法是错误的。 ( 交纳罚金 A.读者可以使用系统的还书用例 B.每次执行还书用例都要执行图书查询用例 C.每次执行还书用例都要执行交纳罚金用例 D.执行还书用例有可能既执行图书查询用例,又执行交纳罚金用例 19.关于协作图的描述,下列哪个不正确(B) A.协作图作为一种交互图,强调的是参加交互的对象的组织; B.协作图是顺序图的一种特例 C.协作图中有消息流的顺序号; D.在ROSE^具中,协作图可在顺序图的基础上按“F5”键自动生成; 20.在UML中,(D)把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履行该组所包括的活动,它能够明确地表示哪些活动是由哪些对象完成的。 A组合活动B.同步条C.活动D.泳道 二、填空题(每空1分,共20分) 1.对象是客观实体的抽象表示,是由—数据—和—对数据的操作—两部分组成。 而 (类)是对具有相同属性和行为的一组对象的抽象描述。 因此,它可作为一 种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类 的实例。 通过继承关系又可形成一种类层次结构。 在类层次结构的不同类中,可用相同的函数名实现功能不同的函数,面向对象技术的这种特性 叫做多态。 2.UML从不同的视角为系统架构建模,可产生九种视图: 用例图、类图、对象图、组件图、配置图、序列图、 协作图、状态图、活动图。 3.序列图是用来反映若干个对象之间动态协作关系的一种交互图。 它主 要反映对象之间已发送消息的先后次序和对象之间的交互过程。 是用来描述实现某些服务所涉及的对象及其相互之间的关系(包括消息通信)的动态视 图。 建模者可以选择协作图来反映对象之间的协作关系;如果需要强调时间和序列,最好选择序列图;如果需要强调上下文相关,最好选择协作图。 三、写出下列程序的输出结果。 (满分10分) #include #include classPerson { public: Person(char*s) { name=newchar[strlen(s)+1]; strcpy(name,s); } virtualvoidprint() {cout<<"Mynameis"< char*name; }; classStudent: publicPerson (public: Student(char*s,floatg): Person(s)(avg=g;} voidprint(char*s) (cout< private: floatavg; }; classprofessor: publicPerson (public: Professor(char*s,intn): Person(s)(publs=n;} voidprint() (cout<<"Mynameis"< <<"publication."< private: intpubls; }; voidmain(void) (Person*p; Personx(Zhang"); Studenty(Wang",4,2); Professorz(Liu",5); p=&x;p->print(); p=&y;p->print(); p=&z;p->print();} 4.简答题(每小题4分,共20分) 1.简述统一建模语言UML的优点。 UML是一种统一的建模语言。 它综合了面向对象领域中多种优秀方法的特点和长处而提出的,消除了过去多种面向对象建模语言在概念上的差异、语义上的混淆和符号表达上的不同,成为了国际统一的建模语言。 (2)UML是一种标准的面向对象建模语言。 它支持面向对象技术的概念,提供了一套标准的模型元素,能简洁明了表达面向对象建模的的各种概念,适合于各种系统的面向对象建模。 因此在软件业界获得了广泛的应用。 (3)UML是一种可视化建模语言,,即UML采用图形方式来描述待开发的软件系统可以把复杂问题简单化和直观化,帮助软件设计人员理解和认识系统,抓住问题的本质,忽略非本质因素,促进问题的解决。 2.简述面向对象技术的三大机制。 A 封装性 B 继承性 C 多态性 3.简述面向对象分析的基本步骤。 1分析问题域,明确用户需求 2确定对象和类 3确定系统各部分的分类和组成结构 4找出并建立每个对象及其相互之间的联系。 5进一步协调和优化模型中各个组成部分(包括类/对象)的性能和相互关系,精炼侯选的 类/对象,使系统成为由不同部分组成的最小集合。 6分析和设计模型中每个组成部分(包括类/对象)的功能实现细节,检查分析模型的一致 性和完整性。 4.简述OOD模型的总体结构,并画图表示。 OOD体系结构的各个部分内容: (1)问题论域部分,在OOA模型的基础上,细化分析结果,设计一组构成底层应用模型的类和对象。 (2)人机交互部分: 设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操 作的接口函数。 用户界面设计包括菜单设计、窗口设计、输入/输出界面设计等等。 (3)任务管理部分: 建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及 其它与特定平台有关的问题。 (4)数据管理部分: 提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据 的访问和管理。 数据管理设计包括: —数据存放设计: 数据存放设计选择数据存放的方式(文件存放、关系数据库表格存 放或面向对象的数据库存放)。 一设计相应的操作。 为每个需要存储的对象和类增加用于存储管理的属性和操作,在 类和对象的定义中加以描述。 class&objectlayer (类及对象层) attributelayer (类及对象层) servicelayer (服务层) structlayer (结构层) subjectlayer (主题层) 问 人 任 数 题 机 务 据 论 交 管 管 域 互 理 理 部 部 部 部 分 分 分 分 类边界 俏息 ^=1 服务 5.应用UML进行系统分析和设计所需建立视图有那几种? 5.试用UML对图书管理系统及相关的数据库系统进行分析和设计。 图书管理系统应实现 (1)借书; (2)还书;(3)图书资料和借阅信息查询;(4)系统维护。 试完成下列工作: (1)建立系统静态结构模型一画出系统用例图和类图;(10分) (2)建立系统动态结构模型一画出序列例图和协作图;(10分) (2)建立关系数据库逻辑模型。 (10分) 面向对象分析与设计试题D卷 一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。 每小题1分,共20分) 1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是(D)的形成和广泛 使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。 A.Simula67语言B.Smalltalk语言 C.Java语言D.统一建模语言(UML)的标准 2.下列不属于面向对象技术的基本特征的是(B)。 A.封装性B.模块性C.多态性D.继承性 3.面向对象程序设计将描述事物的数据与(C)封装在一起,作为一个相互依存、不可分割 的整体来处理。 A.信息B.数据隐藏C.对数据的操作D.数据抽象 4.C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是(D)。 A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说 明符必须用原型D.引进了类和对象的概念 5.下列不属于类的成员函数的是(C)。 A.构造函数B.析构函数C.友元函数D.拷贝构造函数 6.继承机制的作用是(C)。 A.信息隐藏B.数据封装C.派生新类D.数据抽象 7.通常对象有很多属性,但对于外部对象来说某些属性应该不能被直接访问,下面哪个不 是UML中的类成员访问限定符(C) A.公有的B.受保护的C.友员的D.私有的 8.类模板经过实例化而生成具体(D) A.对象B.模板函数C.函数模板D.类 9.类的构造函数是在(B)调用的。 A.类创建时B.创建对象时 C.删除对象时D.不自动调用 10在公有继承的情况下,基类成员在派生类中的访问权限(B) A.受限制B.保持不变C.受保护D.不受保护 11.C++语言通过(B)来建立类族。 A.类的嵌套B.类的继承C.虚函数D.抽象类 12.UML>供了4种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。 其中 (B)是面向对象系统建模中最常用的图,用于说明系统的静态设计视图 A.用例图B.类图C.对象图D.序列图 13.当需要描述体系结构的静态实施视图时,应该选择(D)。 A.对象图B.组件图C.类图D.配置图 类图。 类图显示了一组类、接口、协作以及它们之间的关系。 在面向对象系统建模中类图是 最常用的图,用于说明系统的静态设计视图。 .对象图。 对象图显示了一组对象以及它们之间的关系。 用对象图说明在类图中所发现的 事物实例的数据结构和静态快照。 .组件图。 组件图显示了一组构件以及它们之间的关系。 用组件图说明系统的静态实现视 图。 .配置图。 配置图显示了一组节点以及它们之间的关系。 用配置图说明体系结构的静态实 施视图。 14.用例(Use-case)用来描述系统在事件做出响应时所采取的行动。 用例之间是具有相关性的。 在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户帐号是否 正确。 那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是(B)关系。 A.扩展(extend)B.包含(include) C.分类(classification)D.聚集(aggregation) 15. (C)是描述系统中在某一时刻,一组对象以及它们之间关系的图形,其可以看作是类图在系统某一时刻的实例。 16.顺序图是强调消息随时间顺序变化的交互图,下面哪个不是用来描述顺序图的组成部分 (A) A.状态B.生命线C.激活期D.类角色 17.下面哪个选项中有不是活动图中的基本元素(D)〃没有信号 A.状态、分支B.状态、汇合 C.泳道、转移D.信号、转移 18.以下是图书管理系统中的相关类,属于边界类的是(B) A.书类B.借书操作界面类C.书籍管理类D.读者类 19.在用UML进行数据库的分析与设计过程中,(B)就是进行数据库的需求分析,使用用 例图、类图、顺序图、活动图等建立业务模型。 A.逻辑数据模型设计B业务UseCase模型设计 C.物理数据模型设计D.物理实现设计 20.使用UML进行关系数据库的(B)时,需要设计出表达持久数据的实体类及其联系, 并把它们映射成为关系数据库表(Table)、视图(View)等。 A.业务UseCase模型设计B.逻辑数据模型设计 C.物理数据模型设计C.物理实现设计 二、填空题(每空1分,共20分) 1.UML中用于描述系统的静态建模的视图称为静态视图,包括—用例图、 类图、对象图、组件图和配置图。 用于描述系统的 动态建模的视图称为动态视图,包括序列图—、—协作图、活动图― 和状态图。 2.对象是客观实体的抽象表示,是由数据和 对数据的操作两部分组成。 而类是对具有相同属性 和行为的一组对象的抽象描述。 因此,它可作为一种用户自定义类型和创 建对象的样板,而按照这种样板所创建的一个个具体对象就是类的实例 通过—继承关系又可形成一种类层次结构。 3.是美国Rational公司的面向对象建模工具,利用这个工具可以建立用 描述的的模型,而且可以自动生成和维护C++、Java、VB、Oracle等语言和系统的代码。 的界面分为三个部分窗口、窗口和 窗口。 三、写出下列程序的输出结果。 (满分10分) #include
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 面向 对象 分析 设计 练习题 答案