首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下关于某订单管理系统的技术说明、部分UML类图及Java程序,将Java程序中(1)-(5)空缺处的语句填写完整。 [说明] 某订单管理系统的部分UML类图如图3-21所示。 图3-21 某订单管理系统的部分分类图
阅读以下关于某订单管理系统的技术说明、部分UML类图及Java程序,将Java程序中(1)-(5)空缺处的语句填写完整。 [说明] 某订单管理系统的部分UML类图如图3-21所示。 图3-21 某订单管理系统的部分分类图
admin
2009-02-15
37
问题
阅读以下关于某订单管理系统的技术说明、部分UML类图及Java程序,将Java程序中(1)-(5)空缺处的语句填写完整。
[说明]
某订单管理系统的部分UML类图如图3-21所示。
图3-21 某订单管理系统的部分分类图
在图3-21中,Product表示产品,ProductList表示所销售产品的列表,Order表示产品订单,OrdeItem表示产品订单中的一个条目,OrderList表示订单列表,SalesSystem提供订单管理系统的操作接口。各个类的部分属性和方法说明如表3-16所示。
可以使用类java.util.ArrayList<E>来实现对象的聚集关系,如图3-21所示OrderList与Order之间的聚集关系。
For...each循环提供了一种遍历对象集合的简单方法。在for...each循环中,可以指定需要遍历的对象集合及用来接收集合中每个元素的变量,其语法如下:
for(用来接收集合中元素的变量:需要遍历的对象集合)
如果要使用for-each循环来遍历对象集合,那么包含该对象集合的类必须实现接口java.util.Iterable<T>。
[Java程序7-1]和[Java程序7-2]分别给出了类OrderList和方法statistic的Java代码。
[Java程序7-1]
import java.util.*.
public class OrderList (1) {
private ArrayList<Order> orders;
public OrderList() {
this.orders = new ArrayList(Order)"();
}
public void addOrder(Order order) {
this.orders, add (order);
}
public Iterator<Order> iterator() {
return (2);
}
public int getNumberOfOrders() {
return this.orders, size();
}
}
[Java 程序7-2]
import java.util.*;
public class SalesSystem {
private ProductList catalog;
private OrderList sales;
private static PrintWriter stdOut = new PrintWriter(System.out, true);
public void statistic() {
for (Product product :(3) {
int number = 0;
for (Order order :(4) {
for ( (5): order) {
if<product.ecluals(item.getProduct()))
number += item.getQuantity() ;
}
}
stdOut.println(product.getCode() + " " + product.getDescription() + " " + number + " " + number *product.getPrice());
}
}
//其余的方法未列出
}
选项
答案
这是一道要求读者掌握Java语言中的java.util.ArrayList和for...each循环的程序分析题。本题的解答思路如下。 仔细阅读Java程序7-1可知,类OrderList中具有一个类型为ArrayList的属性。结合图3-21订单管理系统的部分UML类图可知,类OrderList和Order之间具有聚集关系。由试题给出的关键信息“可以使用类java.util.ArrayList来实现对象的聚集关系”、“如果要使用for...each循环来遍历对象集合,那么包含该对象集合的类必须实现接口java.util.Iterable”可以推理出,(1)空缺处所填写的内容是“implements Iterable”。 在定义了ArrayList的类中,必须实现接口Iterator中的方法iterator::iterator(),因此(2)空缺处所填写的实现体应为:return this.orders.iterator(),或return orders.iterator()。 仔细阅读Java程序7-2可以初步判断,要填写(3)~(5)空缺处,首先要将方法statistic的功能及实现流程分析清楚。而且(3)~(5)空缺处所填写的内容与for...each循环的使用有关。使用for...each循环时,关键是要确定所遍历的是哪一个对象集合。在类SalesSystem中已经具有两个对象集合,即属性catalog和sales。 方法statistic的功能是依次统计产品目录中每个产品的订购总量,并打印出每个产品的编号、说明、订购总量和订购金额。若要统计产品目录中每个产品的订购总量,需要对3个对象集合进行遍历:产品目录(ProductList)、订单列表(OrderList)及Order(需要对订单中的所有订单项进行查询,统计每个订单上所订购的产品的数量)。由此可以得出实现该方法的基本流程是:从产品目录中取出一个产品→在订单目录依次查询每张订单→逐一查询某个订单中的所有订单项。 从产品目录中取出一个产品,这对应第1条for...each语句,此时被遍历的对象集合为ProductList。根据试题给出的for...each循环的语法—"for(用来接收集合中元素的变量:需要遍历的对象集合)”和(3)空缺处前半句的“Product product:”可以推断出,(3)空缺处应填写ProductList类的对象,而类 SalesSystem中的catalog就是ProductList的实例。并且结合图3-21的UML类图可知,类ProductList和 Product之间具有聚集关系。依照Java的程序设计规范,引用类的属性时,应使用“this.”属性名的形式。因此(3)空缺处的答案为this.catalog(或catalog)。 在订单目录依次查询每张订单,其对应于第2条for...each语句。根据第(3)空缺处的解题思路,可以确定出(4)空缺处应填写OrderList类的对象,即类SalesSystem的属性sales。因此(4)空缺处的答案为this.sales(或sales)。 逐一查询某个订单中的所有订单项,其对应于第3条for...each语句。由图3-21类图上可以看出,与类Order具有聚集关系的类是OrderItem。由此可以确定(5)空缺处应填写类OrderItem的对象。由于类SalesSystem中没有这种类型的属性,因此需要在这里定义一个临时对象。另外在if语句中出现了一个标识符item,但是在上下文中并没有出现对它的定义。由此可以推断item的定义应该在(5)空缺处提供。因此(5)空缺处的答案为OrderItem item。
解析
转载请注明原文地址:https://kaotiyun.com/show/8bjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
如果已知一个Excel表格B1单元格是空格,B2单元格的内容为数值2,B3单元格的内容为数值3,B4单元格的内容为数值4.5,B5单元格的内容为数值5.5,B6单元格的内容为“=COUNT(B1:B5)”,那么,B6单元格显示的内容应为(55)。
下列关于Word文本编辑的叙述中,不正确的是(33)。
(68)________________属于人工智能的应用。
许多企业常把大量暂时不用的过期数据分类归档转存于(8)________________中。
在收集、整理、存储大数据时,删除重复数据的作用不包括________________。
某金融企业正在开发移动终端非现场办公业务,为控制数据安全风险,采取的数据安全措施中并不包括______。
某年级两个班举行了一次数学统考,一班(共30人)的平均成绩为70分,二班(共 20人)的平均成绩为75分,则该年级的平均成绩为(65)分。
在Excel中,函数“=AVERAGE(A1,.B4)”的含义是()。
框架在网页布局中主要起什么作用?主页中定义了几个框架,分别显示哪个文档?网页中使用的数据库连接引擎是什么?连接的后台数据库文件名是什么?
随机试题
(2010年4月)某电视机厂的质检人员,在组装车间对已完成全部生产工序的电视机进行图像、声音等质量方面的检验。这种检验属于对______。
A.X线胸片上病变部位透亮度减低,肺纹理消失B.X线胸片上病变部位透亮度增加,但肺纹理存在C.X线胸片上病变部位透亮度增加,肺纹理消失D.X线胸片上病变部位透亮度减低,但肺纹理存在E.X线胸片上病变部位有结节影
混合细胞型霍奇金淋巴瘤的特点是结节硬化型霍奇金淋巴瘤的特点是
以下哪项不是糖尿病健康教育的内容()
某公路工程施工期为4~7月,经监理工程师对施工现场材料的盘点,确定材料现场价值为50万、60万、65万、80万。已知4月份,支付材料预付款为30万。试分析确定业主应在5、6、7三个月份向承包人支付的材料预付款的金额。
H省华阳市工商局和华阳市工商业联合会(非法律、法规授权组织)在对本市烟酒市场进行联合检查的过程中,认为该市蓝枫商场销售的部分红塔山烟是假冒产品,于是工商局与市工商业联合会共同署名,对该商场作出没收并销毁剩余假烟,并吊销营业许可证的处罚决定。随后,市工商局委
下列说法正确的有()。
汇明公司在甲银行开立基本存款账户。2013年7月,汇明公司发生的结算业务如下:(1)7月3日,汇明公司与乙银行签订短期借款合同后,持相关开户资料向乙银行申请开立了一般存款账户。(2)7月8日,汇明公司派出纳王某到乙银行购买现金支票并办理提取现金业务。
教师节那天,小白、小黄、小蓝和小紫手里分别拿着不同颜色的花在校园里相遇,小白一看大家手里的花,思索了一会儿,就高兴地宣布她发现的规律:(1)四种花的颜色和她们的四个姓恰好相同,但每个人手里花的颜色与自己的姓并不相同;(2)如果将她手中的
TheyoungeststateinAustraliais______.
最新回复
(
0
)