面向对象设计期末练习题

面向对象设计期末练习题
面向对象设计期末练习题

1、在一个商品订货系统的分析中建立了如图所示的关联,它表示一个供货商可能向多个购货商供货,一个购货商也可购买多个供货商的商品。

(1)讨论这种多对多的关联将给实现带来什么问题。

(2)给出一种解决办法,画出修改后的结果。

2、简要介绍OOD 模型的四个组成部分,并讨论它们的作用。

3、在OOD 中为何有时要把多继承化为单继承?对于下图所示的多继承结构,采用整体-部分结构或者采用关联把它化为单继承,画出转化之后的结构。

4、某机械制造厂生产车床、刨床和钻床三种机床和一种起重机。每一种机床和起重机都装配一台电动机,而电动机分为同步电机和异步电机两类。画出一个类图表示以上各种事物以及它们之间的结构关系。

5、举出一个含有多继承的一般-特殊结构的例子,画出其中的每一个类和它们之间的结构连接符,并填写各个类的主要属性与操作。

12、提高性能的改进措施错误的是()。

A.调整对象的分布

B.减少保存中间结果的属性或类

C.合并通信频频的类

D.用聚合关系描述复杂类

1、请你描述项目开发过程中“分析与设计”的两种不同观点。

3、在OOD阶段,若选择Java语言进行编程,针对下面的类图进行调整,给出其中的两种方案。

6、一个银行业务系统采用如图琐事的配置图,则错误的是()

A. 与GUI有关的类应该部署在Branch Client上

B. 这个图表示一个三层的体系结构,不管Branch Client、Financial App Server、Database

Server是运行在同一台机器上还是在不同机器上

C. 为了系统的可伸缩性(scalability),与业务逻辑有关的对象应该部署在Financial App

Server上

D. 为了系统的可伸缩性,与业务逻辑有关的对象应该部署在Branch Client上

15.在数据库设计的阶段开始考虑具体的数据库管理系统(DBMS)的特性。()

A. 需求分析

B. 概念设计

C. 逻辑设计.D 物理设计

13、不是人机交互设计准则的是()。

A.易学、易用、操作方便。

B.尽量保持个性化。

C.及时提供有意义的反馈。

D.尽量减少用户的记忆。

7、人机交互部分是人和计算机之间传递和交互信息的媒介,对它的设计涉及计算机科学、心理学、艺术学、认知科学和人机工程学等学科。()

8、对控制驱动部分的设计,只需定义和表示系统中的每个控制流。()

9、数据管理部分的设计是OOD模型中的一部分,负责使用关系数据库存储和检索永久对象。()

10、构件图是描述构件、构件的内部结构和构件之间关系的图。()

11、“死锁”的含义是什么()

A 两个进程或线程拒绝相互通信

B 对象的监视器允许其锁定早一点终止

C 一个对象等待一个资源,该资源正被另一个对象使用,而第二个对象正在等待第一个对象使用的资源

12、什么是线程()

A 运行在一个节点上的独立进程,有它自己的内存和IO

B 进程中一个与其他活动共享内存的活动

C 设计人员的思考过程

面向对象的设计方法与C++编程

北京邮电大学200X-200X学年第一学期 《面向对象的设计方法与C++编程》期末考试试卷+扩展+复习题 试题一:填空题(没空一分,共20分) 请在括号内填入你认为正确的内容。 1.软件工程是指导(计算机软件)开发和维护的(工程学科)。 2.应用软件工程方法开发软件系统的根本目的是为了改善下述四项软件品质因素: 提高所开发的软件系统的(效率); 降低所开发的软件系统的(成本); 改善所开发的软件系统的(质量); 缩短所开发的软件系统的(开发周期)。 3.抽象的对象模型由(属性)和(方法)两个部分构成。 4.一个消息必须具备的两个要素是(接受消息的对象标识)和(接受消息的对象的方 法标识)。 5.一个对象拥有另一个对象的(部分)或(全部)的属性和方法的关系则称为(继 承)关系。 6.失去(创建具体对象实例的(制造对象))能力的类成为抽象类。 7.一个类的属性不能出现对象拷贝则被称为(类属性)。 8.面向对象技术的三大特征是(封装)、(继承)和(多态)。 9.共生包容关系中的被包容类对象与包容类对象是(同时连带)生成的。 10.同时出现在两个具有关联关系的对象内的相同属性被称为(连接属性)。 课程复习--补充题: 1.软件的生存周期是一个软件产品从(定义)、(开发)、(使用)到(废弃)的时 间的总合。 2.C++语言中的静态成员函数是(类方法)的具体实现。 3.连接属性是(关联/链接)关系的两个对象内的属性。 4.边界类与(actor(角色))对呈一一对应关系。 5.复合聚合关系中的(聚合)类对象极其依赖(被聚合)类对象,在实现上往往具有 被同时(构造)的特征,因而具有极高的(耦合度)。 试题二:是非判断题(每题1分,共20分) 请在题后的括号内填入√(你认为正确时)或×(你认为错误时)。 1.消息必须含有返回信息。(错) 2.一个类必然具有生成对象的能力。(错)(抽象类不具备) 3.在包容关系中的被包容类也具有封装性。(对) 4.关联关系只是一个动作的抽象。(错) (表示两个类之间的联系,通过这种联系,一个类可以访问到另外一个类的属性和方法。) 5.一个类也可以接收消息。(对) 6.关联关系中的作用名标识了该关联关系的终点对象的恰当地位。(对)

软件工程 第八章 面向对象的设计方法

第八章面向对象的设计方法 本章采用基于UML的面向对象设计方法的将分析模型转换为设计模型。如第五章所述,面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成;设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。为完成这一转换过程,设计人员必须处理以下任务: (1)针对分析模型中的用例,设计实现方案。实现方案用 UML交互图表示。 (2)设计技术支撑设施。在大型软件项目中,往往需要一些技术支撑设施来帮助业务需求层面的类或子系统完成其功能。这些设施本身并非业务需求的一部分,但却为多种业务需求的实现提供公共服务。例如,数据的持久存储服务、安全控制服务和远程访问服务等。在面向对象设计中,需要研究这些技术支撑设施的实现方式以及它们与业务需求层面的类及子系统之间的关系。 (3)设计用户界面。 (4)针对分析模型中的领域概念模型以及第(2)、(3)两个步骤引进的新类,完整、精确地确定每个类的属性和操作,并完整地标示类之间的关系。此外,为了实现软件重用和强内聚、松耦合等软件设计原则,还可以对前面形成的类图进行各种微调,最终形成足以构成面向对象程序

设计的基础和依据的详尽类图。 面向对象的软件设计过程如图8-1-1所示。 图 8-1-1 面向对象的软件设计过程 第一节设计用例实现方案 UML 的交互图(顺序图、协作图)适于用例实现方案的表示。因此,本节首先介绍交互图的语言机制,然后探讨用例实现方案的设计方法。该设计方法包含如下3个步骤: (1)提取边界类、实体类和控制类; (2)构造交互图; (3)根据交互图精华类图。 一、顺序图 顺序图用来描述对象之间动态的交互关系,着重表现对象间消息传递的时间顺序。在顺序图中,参与交互的对象位于顶端的水平轴上,垂直轴表示时间,时间推移的方向是自上而下的。顺序图中的对象一般以“对象

《面向对象程序设计》第04章在线测试

A B D C 员 A B C D 、下面的语句中能将类 A B C D 是类A f(A tmp)是类 A B C D 、下面对于友元函数描述正确的是 A B C D

D、没有this指针,也就没有默认操作的对象 2、下面关于友元的说法正确的是() A、友元函数是拥有成员函数一切权利 B、友元是一种成员函数 C、友元可以直接访问类的所有成员 D、友元不能访问类的私有成员 3、下面关于友元函数正确的说法是() A、在类中用关键词friend声明友元函数 B、友元函数说明的位置只能在类的public区 C、友元函数的定义只能放在类的外部 D、友元函数不是类的成员函数 4、关于友元函数的说法正确的是() A、友元函数可以是普通函数,可以是其他类的成员函数,也可以是本类的成员函数 B、友元函数可以访问多个类的私有成员和保护成员 C、在调用友元函数的时候需要使用“.”运算符 D、如果友元函数是某个类的成员函数,在定义这个友元函数的时候要使用类前缀。 5、下面关于友元函数使用特点的说明正确的是() A、友元函数可以绕开成员函数直接访问类的私有和保护成员,避免调用成员函数相关的开销 B、友元函数虽然不是类的成员函数,但是因为友元函数是在类内说明的,所以也带有用this指针 C、友元函数可以以使用类内的所有成员,因此破坏了数据的安全性 D、友元函数的形参如果是类对象,可以用对象名,对象的引用或者对象指针 第三题、判断题(每题1分,5道题共5分) 1、友元只能访问类中的公有成员,不能访问私有成员。 正确错误 2、友元函数的定义只能放在类的外部,与类的成员函数放在一起。

正确错误 f()要操作类A的成员函数,把类 正确错误 、友元具有传递性,单向性和继承性的特点。 正确错误 、一个函数可以是多个类的友元函数。 正确错误 恭喜,交卷操作成功完成!你本次进行的《面向对象程序设计》第04章在线测试的得分为 20分(满分20分),本次成绩已入库。若对成绩不满意,可重新再测,取最高分。 测试结果如下: ? 1.1 [单选] [对] 若B类为A类的友元类,则下面的说法正确的是() ? 1.2 [单选] [对] 一个类的友元不是该类的成员,与该类的关系密切,所以它()。 ? 1.3 [单选] [对] 下面的语句中能将类B 定义为类A的友元类的是() ? 1.4 [单选] [对] 如果类B 是类A的友元类,n是类A的私有数据成员,函数f(A tmp)是类B的公有成员函数,a是类A的对象, b是B类的对象,下面语句正确的 是() ? 1.5 [单选] [对] 下面对于友元函数描述正确的是 ? 2.1 [多选] [对] 一个类的友元不是该类的成员,与该类的关系密切,所以下面它的说法错误的是()。 ? 2.2 [多选] [对] 下面关于友元的说法正确的是() ? 2.3 [多选] [对] 下面关于友元函数正确的说法是() ? 2.4 [多选] [对] 关于友元函数的说法正确的是() ? 2.5 [多选] [对] 下面关于友元函数使用特点的说明正确的是() ? 3.1 [判断] [对] 友元只能访问类中的公有成员,不能访问私有成员。 ? 3.2 [判断] [对] 友元函数的定义只能放在类的外部,与类的成员函数放在一起。 ? 3.3 [判断] [对] 如果函数f()要操作类A和类B的私有成员,可以把f()声明为类A的成员函数,把类A声明为类B的友元类。 ? 3.4 [判断] [对] 友元具有传递性,单向性和继承性的特点。 ? 3.5 [判断] [对] 一个函数可以是多个类的友元函数。

《面向对象程序设计》在线测试

封面

作者:PanHongliang 仅供个人学习

3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、若B类为A类的友元类,则下面的说法正确的是() A、B类的所有成员函数都是A类的友元函 数 B、B类指定的成员函数才是A类的友元 C、A类的所有成员函数可以访问B类的成员 D、B类的私有成员函数不能可以访问A类的私有成员 2、一个类的友元不是该类的成员,与该类的关系密切,所以它()。 A、有this指针,有默认操作的对象 B、没有this指针,可以有默认操作的对象 C、有this指针,不能执行默认操作 D、没有this指针,也就没有默认操作的对象 3、下面的语句中能将类B 定义为类A的友元类的是() A、friend class B。 B、class A{ friend B}。 C、class A{ friend class B。}。 D、class friend B class A。 4、如果类B 是类A的友元类,n是类A的私有数据成员,函数f(A tmp)是类B的公有成员函数,a是类A的对象, b是B类的对象,下面语句正确的是() A、main(){ f(a)。} B、main(){ b.f。}。 C、main(){ a.n。}。 D、main(){ b.f(a)。}。 5、下面对于友元函数描述正确的是 A、友元函数的实现必须在类的内部定义 B、友元函数是类的成员函数 C、友元函数破坏了类的封装性和隐藏性 D、友元函数不能访问类的私有成员 第二题、多项选择题(每题2分,5道题共10分) 1、一个类的友元不是该类的成员,与该类的关系密切,所以下面它的说法错误的是()。 A、有this指针,有默认操作的对象 B、没有this指针,可以有默认操作的对象 C、有this指针,不能执行默认操作 D、没有this指针,也就没有默认操作的对象 2、下面关于友元的说法正确的是() A、友元函数是拥有成员函数一切权利 B、友元是一种成员函数 C、友元可以直接访问类的所有成员 D、友元不能访问类的私有成员 3、下面关于友元函数正确的说法是() A、在类中用关键词friend声明友元函数 B、友元函数说明的位置只能在类的public区 C、友元函数的定义只能放在类的外部 D、友元函数不是类的成员函数 4、关于友元函数的说法正确的是() A、友元函数可以是普通函数,可以是其他类的成员函数,也可以是本类的成员函数 B、友元函数可以访问多个类的私有成员和保护成员

面向对象分析设计小结

?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项目开发过程的特征:用例驱动的系统、以体系结构为中心、螺旋 上升式的开发过程、以质量控制和风险管理为保障措施。

面向对象程序设计实验

实验一C++基础1.1 实验目的 1.了解并熟悉开发环境,学会调试程序; 2.熟悉C++中简单的标准输入输出函数的使用方法; 3.理解const修饰符的作用并学会应用; 4.理解内联函数的优缺点并学会其使用场合; 5.理解并学会函数重载; 6.理解并熟练掌握使用new和delete来分配内存; 7.理解并熟练掌握引用的使用方法。 1.2 实验内容 1.2.1 程序阅读 1.理解下面的程序并运行,然后回答问题。 #include int max_def(int x, int y) { return (x>y?x:y); } int max_def(int x, int y, int z) { int temp = 0; return (temp=(x>y?x:y))>z?temp:z; } double max_def(double x, double y) { return (x>y?x:y); } int main()

{ int x1 = 0; int x2 = 0; double d1 = 0.0; double d2 = 0.0; x1 = max_def(5,6); x2 = max_def(2,3,4); d1 = max_def(2.1,5.6); d2 = max_def(12.3,3.4,7.8);-----------------------------------------------------①cout<<"x1="<

相关主题
相关文档
最新文档