2006年5月软件设计师下午试题[6]

软件设计师 责任编辑:huhua707 2008-08-06

添加老师微信

备考咨询

加我微信

摘要:试题七(15分)阅读下列说明、图以及Java程序,将应填入(n)处字句写在答题纸的对应栏内。【说明】某订单管理系统的部分UML类图如图7-l所示。图7-1订单管理系统的部分UML类图图7-1中,Product表示产品,ProductList表示所销售产品的列表,Order表示产品订单,OrderItem表示产品订单中的一个条目,OrderList表示订单列表,SalesSyste

试题七(15分)
阅读下列说明、图以及Java程序,将应填入(n)处字句写在答题纸的对应栏内。
【说明】
某订单管理系统的部分UML类图如图7-l所示。

图7-1 订单管理系统的部分UML类图
图7-1中,Product表示产品,ProductList表示所销售产品的列表,Order表示产品订单,OrderItem表示产品订单中的一个条目,OrderList表示订单列表,SalesSystem提供订单管理系统的操作接口。各个类的部分属性和方法说明如表7-1所示。
 表7-1

 成员

 说明

 ProductList

ArrayList<Product> products

Product

String code
产品编号
String description
产品描述
double price
产品单价
Boolean equals(Object object)
若两个产品相同则返回true,否则返回false

OrderItem

Product product
订单项中的产品
int quantity
产品的订购数量
Product getProduct()
获取订单项中的产品

Order

ArrayList<OrderItem> items
订单中包含的订单项

OrderList

ArrayList<Order> orders
订单
void addOrder(Order order)
向订单列表中添加新订单
int getNumberOfOrders()
获取订单列表中的订单总数

 SaleSystem

ProductList catalog
产品目录

 

OrderList sales
订单列表

 

void statistic()
依次统计产品目录中每个产品的订购总量,并打印出每个产品的编号、说明、订购总量和订购金额

可以使用类Java.util.ArrayList<E>来实现对象的聚集关系,如图7-1中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 = newPrintWriter(System.out,true);
public void statistic() {
for (Product product :(3) ) {
 int number = 0;
 for (Order order : (4) ){
 for( (5) : order){
 if (product.equals(item.getProduct()))
 number += item.getQuantity();
 }
 }
 stdOut.println(product.getCode() + ″ ″
 + product.getDescription() + ″″
 + number + ″″ + number * product.getPrice());
}

//其余的方法未列出
}


[答案讨论]

[1]  [2]  [3]  [4]  [5]  [6]  

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取

!
咨询在线老师!