2006年5月軟件設計師下午試題[6]

軟件設計師 責任編輯:huhua707 2008-08-06

添加老師微信

備考咨詢

加我微信

摘要:試題七(15分)閱讀下列說明、圖以及Java程序,將應填入(n)處字句寫在答題紙的對應欄內(nèi)?!菊f明】某訂單管理系統(tǒng)的部分UML類圖如圖7-l所示。圖7-1訂單管理系統(tǒng)的部分UML類圖圖7-1中,Product表示產(chǎn)品,ProductList表示所銷售產(chǎn)品的列表,Order表示產(chǎn)品訂單,OrderItem表示產(chǎn)品訂單中的一個條目,OrderList表示訂單列表,SalesSyste

試題七(15分)
閱讀下列說明、圖以及Java程序,將應填入(n)處字句寫在答題紙的對應欄內(nèi)。
【說明】
某訂單管理系統(tǒng)的部分UML類圖如圖7-l所示。

圖7-1 訂單管理系統(tǒng)的部分UML類圖
圖7-1中,Product表示產(chǎn)品,ProductList表示所銷售產(chǎn)品的列表,Order表示產(chǎn)品訂單,OrderItem表示產(chǎn)品訂單中的一個條目,OrderList表示訂單列表,SalesSystem提供訂單管理系統(tǒng)的操作接口。各個類的部分屬性和方法說明如表7-1所示。
 表7-1

 成員

 說明

 ProductList

ArrayList<Product> products

Product

String code
產(chǎn)品編號
String description
產(chǎn)品描述
double price
產(chǎn)品單價
Boolean equals(Object object)
若兩個產(chǎn)品相同則返回true,否則返回false

OrderItem

Product product
訂單項中的產(chǎn)品
int quantity
產(chǎn)品的訂購數(shù)量
Product getProduct()
獲取訂單項中的產(chǎn)品

Order

ArrayList<OrderItem> items
訂單中包含的訂單項

OrderList

ArrayList<Order> orders
訂單
void addOrder(Order order)
向訂單列表中添加新訂單
int getNumberOfOrders()
獲取訂單列表中的訂單總數(shù)

 SaleSystem

ProductList catalog
產(chǎn)品目錄

 

OrderList sales
訂單列表

 

void statistic()
依次統(tǒng)計產(chǎn)品目錄中每個產(chǎn)品的訂購總量,并打印出每個產(chǎn)品的編號、說明、訂購總量和訂購金額

可以使用類Java.util.ArrayList<E>來實現(xiàn)對象的聚集關系,如圖7-1中OrderList與Order之間的聚集關系。
for-each循環(huán)提供了一種遍歷對象集合的簡單方法。在for-each循環(huán)中,可以指定 需要遍歷的對象集合以及用來接收集合中每個元素的變量,其語法如下:
for(用來接收集合中元素的變量:需要遍歷的對象集合)
如果要使用for-each循環(huán)來遍歷對象集合,那么包含該對象集合的類必須實現(xiàn)接口
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]  

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內(nèi)容為準!

軟考備考資料免費領取

去領取

!
咨詢在線老師!