首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下关于某订单管理系统的技术说明、部分UML类图及C++代码,将C++程序中(1)~(5)空缺处的语句填写完整。 [说明] 某订单管理系统的部分UML类图如图5-15所示。 图5-15中,Product表示产品,Produc
阅读以下关于某订单管理系统的技术说明、部分UML类图及C++代码,将C++程序中(1)~(5)空缺处的语句填写完整。 [说明] 某订单管理系统的部分UML类图如图5-15所示。 图5-15中,Product表示产品,Produc
admin
2010-01-15
72
问题
阅读以下关于某订单管理系统的技术说明、部分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;k<catalog.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()”或“it<sales.End()”。
解析
转载请注明原文地址:https://kaotiyun.com/show/qMDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
对象是面向对象系统的最基本的元素,一个运行期系统就是对象之间的协作。一个对象通过()改变另一个对象的状态。
假设实体集E1中的一个实体可与实体集E2中的多个实体相联系,E2中的一个实体只与E1中的一个实体相联系,那么E1和E2之间的联系类型为()。
软件质量保证的主要目标不包括______。A.通过预防、检查与改进来保证软件质量B.保证开发出来的软件和软件开发过程符合相应标准与规程C.收集软件产品、软件过程中存在的不符合项,在项目总结时进行分析D.确保项目组制定的计划、标准和规程适合项目需要,
在结构化分析方法中,利用分层数据流图对系统功能建模。以下关于分层数据流图的叙述中,不正确的是___________(32)。采用数据字典为数据流图中的每个数据流、文件、加工以及组成数据流或文件的数据项进行说明,其条目不包括____________(33)。
在分布式数据库中有分片透明、复制透明、位置透明和逻辑透明等基本概念,其中:___________(19)是指局部数据模型透明,即用户或应用程序无须知道局部使用的是哪种数据模型;___________(20)是指用户或应用程序不需要知道逻辑上访问的表具体是怎
以下关于汇编语言的叙述中,错误的是______。A.汇编语言源程序中的指令语句将被翻译成机器代码B.汇编语言的指令语句必须具有操作码字段,可以没有操作数字段C.汇编程序以汇编语言源程序为输入,以机器语言表示的目标程序为输出D.汇编程序先将源程序中的
上海市标准化行政主管部门制定并发布的工业产品的安全、卫生要求的标准,在其行政区域内是(10)。
高级程序设计语言中用于描述程序中的运算步骤、控制结构及数据传输的是(20)。
给定包含n个正整数的数组A和正整数x,要判断数组A中是否存在两个元素之和等于x。先用插入排序算法对数组A进行排序,再用以下过程P来判断是否存在两个元素之和等于x。low=l;high=n;while(high>low)ifA[low]+A[hig
随机试题
下列句子有无歧义?如果有,请分析歧义产生的原因。没有不想去的。
ThewaypeopleintheUStraveltoandfromworkhaschangedalotinthelastfiftyyears.【T1】BeforetheSecondWorldWar,most
男性,72岁,突然昏厥,急诊心电图检查如下图,诊断为:()
33岁男子,自述胸闷、心悸,时有胸痛。体检:心界不大,心尖部第一心音不弱,可闻第四心音,胸骨左缘3、4肋问可闻收缩期粗糙喷射性杂音。心电图示:V3~V4T波倒置1年后患者症状加重伴头晕再次来诊,除治疗外,家属询问可能发生的最严重情况是
采用新结构、新材料、新工艺的建设工程和特殊结构的建设工程,设计单位应当在设计中提出( )。
甲公司为上市公司,其2013年度财务报告于2014年3月1日对外报出。该公司在2013年12月31日有一项未决诉讼,经咨询律师,估计很可能败诉并预计将支付的赔偿金额、诉讼费等在760万元至1000万元之间(其中诉讼费为7万元)。为此,甲公司预计了880万元
期刊变更()等要向所在地省级新闻出版行政主管部门备案。
教育申诉制度的性质是属于()。
闪购模式即是以互联网为媒介,以限时特卖的形式,定期定时推出国际知名品牌的商品,一般以原价1~5折的价格供专属会员限时抢购,先到先买,限时限量,售完即止。根据上述定义,下列属于闪购的是:
设在采用SQLServer2008数据库的图书馆应用系统中有三个基本表,表结构如下所示,请用SQL语句完成下列两个查询:BORROWER:借书证号姓名系名班级12011106蒋辉文
最新回复
(
0
)