UML中,对象图描ET系统中所有类的类型、类所具有的属性和操作以

题目

UML中,对象图描ET系统中所有类的类型、类所具有的属性和操作以及类与类之间的静态的相互联系。

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

在面向对象数据模型中,子类可以从其超类中__________所有的属性和方法。


正确答案:
继承【解析】类构成特殊化层次(ISA联系)。ISA联系中子类的对象拥有其超类的对象的全部属性和方法,称作子类对超类的继承。一个类可以从多个超类中继承属性和方法,这称作多继承。

第2题:

下列叙述中,正确的是?

A.子类继承父类的所有属性和方法

B.子类可以继承父类的私有的属性和方法

C.子类可以继承父类的公有的属性和方法

D.创建子类对象时,父类的构造方法都要被执行


正确答案:C

第3题:

( 10 )在面向对象数据模型中,子类可以从其超类中 【 10 】 所有的属性和方法。


正确答案:

第4题:

在面向对象方法中,继承用于( )。通过继承关系创建的子类(请作答此空)。

A.只有父类具有的属性
B.只有父类具有的操作
C.只能有父类所不具有的新操作
D.可以有父类的属性和方法之外的新属性和新方法

答案:D
解析:
本题考查面向对象的基本知识。
在进行类设计时,有些类之间存在一般和特殊关系,即一些类是某个类的特殊情况,某个类是一些类的一般情况,这就是继承关系。继承是类之间的一种关系,在定义和实现一个类的时候,可以在一个已经存在的类(一般情况)的基础上来进行,把这个已经存在的类所定义的内容作为自己的内容,并可以加入若干新属性和方法。

第5题:

阅读以下关于某订单管理系统的技术说明、部分UML类图及C++代码,将C++程序中(1)~(5)空缺处的语句填写完整。

[说明]

某订单管理系统的部分UML类图如图5-15所示。

图5-15中,Product表示产品,ProductList表示产品目录,Order表示产品订单,Orderltem表示产品订单中的一个条目,OrderList表示订单列表,SalesSystem提供订单管理系统的操作接口。

请完善类Order的成员函数getOrderedAmount()和类SalesSystem的statistic()方法,各个类的属性及部分方法定义参见下面的C++代码。

[C++代码]


正确答案:这是一道要求读者掌握C++程序设计及STL使用的分析题。本题的解答思路如下。 仔细阅读[C++代码]可知类Order的数据成员orderid表示一份订单的识别号。结合图5-15订单管理系统的部分UML类图可知每个订单上可以有多个订单项因此数据成员items是一个类型为 OrderItem的向量(数据)。类Order的成员函数getOrderedAmount的功能是“在订单中查找识别码为tid的产品的订购数量若该产品没有被订购则返回0”。其定义如下: 对于每个订单项显然需要取出对应产品的识别号。从getOrderedAmount(string tid)定义代码中变量k用于遍历并索引一份订单中的每个订单项(items[k])。由于OrderItem类提供的成员函数getProductpt()可获取指向被订购产品的指针因此可通过(1)空缺处所填写的“items[k].getProductptr()->getProductId()”获取被订购产品的识别号。若指定的产品识别号等于该订单项的产品识别号就通过(2)空缺处所填写的“items[k].getQuantity()”返回该产品被订购的数量。 类SalesSystem的成员函数statistic()用于统计产品目录中每个产品的订购总量并打印输出每个产品的识别码、描述、订购总量和订购金额。若要统计产品目录中每个产品的订购总量需要对3个对象集合进行遍历:产品目录(ProductList)、订单列表(OrdeList)及Order(需要对订单中的所有订单项进行查询统计每个订单上所订购的产品的数量)。由此可以得出实现该方法的基本流程如下。 ①从产品目录中取出一个产品。对应语句“for(k=0;kcatalog.getProductAmount();k++)”用于遍历产品目录中的每件产品。由于存放产品目录(产品列表)的数据成员catalog的类型为ProductList要取得某产品的相关信息需要通过ProductList类提供的成员函数getProductByIndex(int I)获得产品目录中的第 i件产品因此(3)空缺处所填写的内容是“catalog.getProductByIndex(k)”。 ②查询给定产品在每份订单中的订购情况。对应的语句“for(it=sales.Begin(); (4) ;it++”用于遍历所有的订单根据产品识别码获得给定产品在当前订单中被订购的数量。对于给定产品和订单可调用订单类Order的成员函数getOrderedAmount(tid)获得识别码为tid的产品在当前订单中被订购的数量。因此(5)空缺处所填写的内容是“it->getOrderedAmount”。 由于类OrderList提供的方法Begin()、End()分别指向订单列表的第一个元素和最后一个元素之后而迭代器变量it实际是指向订单列表(向量sales)中某订单的指针因此(4)空缺处所填写的内容是“it!= sales.End()”或“itsales.End()”。
这是一道要求读者掌握C++程序设计及STL使用的分析题。本题的解答思路如下。 仔细阅读[C++代码]可知,类Order的数据成员orderid表示一份订单的识别号。结合图5-15订单管理系统的部分UML类图可知,每个订单上可以有多个订单项,因此数据成员items是一个类型为 OrderItem的向量(数据)。类Order的成员函数getOrderedAmount的功能是“在订单中查找识别码为tid的产品的订购数量,若该产品没有被订购,则返回0”。其定义如下: 对于每个订单项,显然需要取出对应产品的识别号。从getOrderedAmount(string tid)定义代码中,变量k用于遍历并索引一份订单中的每个订单项(items[k])。由于OrderItem类提供的成员函数getProductpt()可获取指向被订购产品的指针,因此可通过(1)空缺处所填写的“items[k].getProductptr()->getProductId()”获取被订购产品的识别号。若指定的产品识别号等于该订单项的产品识别号,就通过(2)空缺处所填写的“items[k].getQuantity()”返回该产品被订购的数量。 类SalesSystem的成员函数statistic()用于统计产品目录中每个产品的订购总量,并打印输出每个产品的识别码、描述、订购总量和订购金额。若要统计产品目录中每个产品的订购总量,需要对3个对象集合进行遍历:产品目录(ProductList)、订单列表(OrdeList)及Order(需要对订单中的所有订单项进行查询,统计每个订单上所订购的产品的数量)。由此可以得出实现该方法的基本流程如下。 ①从产品目录中取出一个产品。对应语句“for(k=0;kcatalog.getProductAmount();k++)”用于遍历产品目录中的每件产品。由于存放产品目录(产品列表)的数据成员catalog的类型为ProductList,要取得某产品的相关信息,需要通过ProductList类提供的成员函数getProductByIndex(int I)获得产品目录中的第 i件产品,因此(3)空缺处所填写的内容是“catalog.getProductByIndex(k)”。 ②查询给定产品在每份订单中的订购情况。对应的语句“for(it=sales.Begin(); (4) ;it++”用于遍历所有的订单,根据产品识别码获得给定产品在当前订单中被订购的数量。对于给定产品和订单,可调用订单类Order的成员函数getOrderedAmount(tid)获得识别码为tid的产品在当前订单中被订购的数量。因此(5)空缺处所填写的内容是“it->getOrderedAmount”。 由于类OrderList提供的方法Begin()、End()分别指向订单列表的第一个元素和最后一个元素之后,而迭代器变量it实际是指向订单列表(向量sales)中某订单的指针,因此(4)空缺处所填写的内容是“it!= sales.End()”或“itsales.End()”。

第6题:

在面向对象方法中,对象是类的实例。表示对象相关特征的数据称为对象的(31)在该数据上执行的功能操作称为对象的(32);一个对象通过发送(33)来请求另一个对象为其服务。通常把一个类和这个类的所有对象称为类及对象或对象类。在UML中,用来表示显示构成系统的对象类以及这些对象类之间关系的图是(34)。

A.数据变量

B.数据结构

C.属性

D.定义


正确答案:C
解析:在面向对象方法中,对象是类的实例。其中,表示对象相关特征的数据称为对象的属性,在该数据上执行的功能操作称为对象的行为;一个对象通过发送消息来请求另一个对象为其服务。通常把一个类和这个类的所有对象称为类及对象或对象类。在UML中,类图是显示一组类、接口、协作以及它们之间关系的图。类图用于对系统的静态设计视图建模。

第7题:

在面向对象方法中,继承用于( )。 通过继承关系创建的子类( )

A. 利用已有类创建新类B. 在已有操作的基础上添加新方法C. 为已有属性添加新属性D. 为已有状态添加新状态A. 只有父类具有的属性B. 只有父类具有的操作C. 只能有父类所不具有的新操作D. 可以有父类的属性和方法之外的新属性和新方法


正确答案:A,D

第8题:

UML中,配置图描述系统()以及在此结构上执行的软件,常常用于帮助理解()。在配置图中,构件代表可执行的物理代码模块,如一个可执行程序,逻辑上它可以与类图中的包或类对应。在面向对象方法中,类和构件等元素并不是所有的属性和操作都对外可见。它们对外提供了可见操作和属性,称之为类和构件的()。()A. 硬件的逻辑拓扑结构 B. 硬件的物理拓扑结构 C. 软件的逻辑拓扑结构 D. 软件的物理拓扑结构() A. 并发系统 B. 分时系统 C. 分布式系统 D. 实时系统 () A. 界面 B. 包 C. 模板 D. 视图


正确答案:B,C,A
    构件图(Component diagram)和配置图(Deployment diagram)显示系统实现时的一些特性,包括源代码的静态结构和运行时刻的实现结构。构件图显示代码本身的结构,配置图显示系统运行时刻的结构。
    构件图显示软件构件之间的依赖关系。一般来说,软件构件就是一个实际文件,可以是源代码文件、二进制代码文件和可执行文件等。可以用来显示编译、链接或执行时构件之间的依赖关系。
    配置图描述系统硬件的物理拓扑结构以及在此结构上执行的软件。配置图可以显示计算结点的拓扑结构和通信路径、结点上运行的软件构件、软件构件包含的逻辑单元(对象、类)等。配置图常常用于帮助理解分布式系统。
    在配置图中,构件代表可执行的物理代码模块,如一个可执行程序。逻辑上它可以与类图中的包或类对应。因此,配置图中显示运行时各个包或类在结点中的分布情况。在面向对象方法中,类和构件等元素并不是所有的属性和操作都对外可见。它们对外提供了可见操作和属性,称之为类和构件的界面。

第9题:

●在统一建模语言(UML)中,(45)用于描述一组对象类、接口、协作和它们之间的关系。其中关联的多重度是指(46)。

(45)A.对象图

B.类图

C.用例图

D.通信图

(46)A.一个类中能被另一个类调用的方法个数

B.一个类的某个方法被另一个类调用的次数

C.一个类的实例能够与另一个类的多少个实例相关联

D.两个类所具有的相同的方法数和属性数


正确答案:B,C

第10题:

某公司的主要业务是出租图书和唱碟。由于业务需求,该公司委托希赛公司开发一套信息管理系统。该系统将记录所有的图书信息、唱碟信息、用户信息、用户租借信息等。希赛公司决定采用面向对象的分析和设计方法开发此系统。图2-22所示为某类图书或唱碟被借阅时应记录的信息,图2-23描述了系统定义的两个类Book和CD,分别表示图书和唱碟的信息。



【问题1】
经过进一步分析,设计人员决定定义一个类Items_on_loan,以表示类Book和CD的共有属性和方法。请采用图2-23中属性和方法的名称给出类Items_on_loan应该具有的属性和方法。(注意:不同名称的属性和方法表示不同的含义,如CD中的composer与Book中的author无任何关系)
【问题2】
为了记录每种图书或唱碟租借的历史记录,引入类CirculationHistory,类中存储的信息是图2-22中所表示的内容。请采用UML表示法将下列四个类之间的关系表示出来。



【问题3】
现需了解十大最畅销(借出次数最多)图书或唱碟。为此,引入TenPopulate类以存储所有十大畅销图书或CD的名称及其被借出的次数。图2-24的顺序图描述了某类图书或唱碟被借出后成为十大畅销图书或唱碟时对象间的消息交互。系统在一次运行过程中,应有 (1) 个TenPopulate实例对象最合适,一个TenPopulate类实例对象最多需要和 (2) 个Items_on_loan实例对象交互。



答案:
解析:
【问题1】
属性:title
方法:Reference Title
【问题2】
如图2-25所示
【问题3】
(1)1
(2)图书和唱碟种类数【解析】
本题主要涉及类的设计、类之间的关系和顺序图。
在面向对象的程序设计当中,类的设计是非常重要的,类设计的合理性直接影响到整个系统的性能。
【问题1】
问题1要求考生写出类Items_on_loan的属性和方法,由于题目已经说明此类的属性和方法是Book类和CD类的公共属性和方法;又因为Book类和CD类中,不同名的属性、方法表示的含义不同,所以公共属性和方法就是同名属性和方法,因此,Items_on_loan的属性有title,方法有Reference title。
【问题2】
问题2引入了CirculationHistory类,此类用于记录每种图书或者光碟的租借记录。现要求CirculationHistory类、Book类、CD类及Items_on_loan类之间的关系,根据【问题1】可以知道,Items_on_loan是类Book和CD的公共部分,用面向对象的术语来说,类Items_on_loan是类Book和CD的父类,所以它们之间存在继承关系。
再看CirculationHistory类和其他类的关系,CirculationHistory类只需要记录图书或唱碟的名称及借阅记录,而不需要其他详细资料,这样,CirculationHistory不必和Book与CD产生关系,只需要与Items_on_loan产生关系即可。由于CirculationHistory中除记录图书或唱碟名称以外,还需要记录借出时间、归还时间及用户名,这些数据无法从Items_on_loan中获取。一个CirculationHistory只包含一个Items_on_loan,存在1:1的关系,这说明Items_on_loan其实只是CirculationHistory的组成部分,但Items_on_loan可脱离CirculationHistory而独立存在,也就是说,一本图书或一张CD可以没有记录其借阅历史的CirculationHistory,但有记录其基本信息的Items_on_loan,所以它们之间又存在聚集关系(而不是那种部分随整体销毁而销毁的组合关系)。综上所述,4个类的关系如图2-25所示。



图2-25 ?4个类之间的关系
聚合关联中涉及到重复度,当没有指定重复度时,默认重复度为1,那么,图2-25中两个类CirculationHistory、Items_on_loan所在端的重复度都为1。
【问题3】
题目中说"引入TemPopulate类以存储所有十大畅销图书或CD的名称及其被借出的次数",可见TemPopulate类的功能是存储所有十大畅销图书或CD的名称及其被借出的次数。既然如此,系统在一次运行中只需要1个TenPopulate实例对象就可以了,因为它存储所有十大畅销图书或CD的名称及其被借出的次数。每当有图书或唱碟被借出时,都需要和TenPopulate类的对象发生交互,因此,当所有图书或CD都被借阅时,TenPopulate类实例对象需要跟所有这些Items_on_loan实例对象交互更新借出次数以评出十大最畅销图书或CD,一个TenPopulate类实例对象最多需要和"图书和唱碟种类总数"个Items_on_loan实例对象交互。

更多相关问题