阅读下列说明、图和c++代码。
[说明]
某订单管理系统的部分UML类图如下图所示。
上图中,Product表示产品,ProductList表示产品目录,Order表示产品订单,OrderItem表示产品订单中的一个条目,OrderList表示订单列表,SalesSystem提供订单管理系统的操作接口。
请完善类Order的成员函数getOrderedAmount()和类SalesSystem的stafistic()方法,各个类的属性及部分方法定义参见下面的C++代码。
[C++代码]
class Product { //产品
private:
string pid; //产品识别码
string description; //产品描述
double price; ///产品单价
public:
void setProductPrice(double price); //设置产品单价
string getProduetld(); //获取产品识别码
string getProduetDescriprion 0; //获取产品描述
double getProductPrice0; //获得产品单价
//其他成员省略
};
class ProductList { //产品列表类
private:
vector <Product> products;
public:
ProductList();
Product getProductBylndex(int i); //获得产品列表中的第i件产品
void addProduct(Product t); //在产品列表中加入一件产品
Product * getProductByID(string pid); //获得识别码为pid的产品指针
unsigned iht getProductAmount(); //获得产品列表中的产品娄量
};
class OrderItem { //订单条目类
private:
Product *productPtr; //指向被订购产品的指针
int quantity; //订购数量
public:
OrderItem (Product *,iht);
Product * getProductptr O; //获得指向被订购产品的指针
int getQuantity (); //获取被订刚强产品数量
};
class Order { //订单类
private:
unsigned int orderid; //订单识别号
vector<Orderltem> items; //订单内容(订单项)
public:
Order(unsigned int orderid); //获得识别码为fid的产品在当前订单中被订购的数量
int getOrderedAmount(string fid);
void additem(Product *productPtr,unsigned int n); //在订单中增加一个订单项
};
class OrderList { //订单列表类
private:
vector<Order> orders;
第1题:
阅读以下关于某订单管理系统的技术说明、部分UML类图及Java程序,将Java程序中(1)~(5)空缺处的语句填写完整。
[说明]
某订单管理系统的部分UML类图如图5-16所示。
在图5-16中,Product表示产品,ProductList表示所销售产品的列表,Order表示产品订单,Orderltem表示产品订单中的一个条目,OrderList表示订单列表,SalesSystem提供订单管理系统的操作接口。各个类的部分属性和方法说明如表5-23所示。
可以使用类java.util.ArrayList<E>来实现对象的聚集关系,如图5-16中OrderList与Order之间的聚集关系。
for-each循环提供了一种遍历对象集合的简单方法。在for-each循环中,可以指定需要遍历的对象集合及用来接收集合中每个元素的变量,其语法如下:
for(用来接收集合中元素的变量:需要遍历的对象集合)
如果要使用for-each循环来遍历对象集合,那么包含该对象集合的类必须实现接口java.util.Iterable<T>。
Java程序7-1和Java程序7-2分别给出了类OrderList和方法statistic的Java代码。
第2题:
在某信息管理系统中存在两个类:类“客户”和类“订单”。它们之间的业务关系是:①一个客户提交零个或多个订单;②一个订单由一个且仅由一个客户提交。能够正确表示这个业务关系的UML类图是(47)。
A.
B.
C.
D.
第3题:
以下关于销售模块订单结束码的说明,错误的是?
A.“N:未结束“表示该张订单没有全数交货,可能只交了一部分
B.”N:未结束“表示该张订单尚未开始交货,一个都没有交
C.“Y:自动结束“表示已全数交货
D.“y:指定结束“表示人为通过“订单变更单”或“结束订单”对该订单进行指定结束。
第4题:
阅读下列说明、图以及Java程序。
[说明]
某订单管理系统的部分UML类图如下图所示。
上图中,Product表示产品,ProductList表示所销售产品的列表,Order表示产品订单,Orderltem表示产品订单中的一个条目,OrderList表示订单列表,SalesSystem提供订单管理系统的操作接口。各个类的部分属性和方法说明如下表所示。
可以使用类java.util.ArrayList<E>米实现对象的聚集关系,如上图中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 OrderList0 {
this.orders = new ArrayList<Order>();
}
public void addOrder(Order orde0
this.orders.add(order);
}
public Iterator<Order> iterator() {
return (2);
}
public iht getNumberOfOrders0 {
return this.orders.size();
}
}
[Java程序7-21]
import java.u61.*;
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)) {
iht number = 0;
for (Order order: (4)) {
for ((5): order) {
if (produet.equals(item.getProduct()))
number += item. getQuantity();
}
}
stdOut.println(product .getCode() +" "
+ product.getDescription() +" "
+ number +" "+ number * product.getPrice());
}
}
//其余的方法末列出
}
第5题:
阅读以下关于某订单管理系统的技术说明、部分UML类图及C++代码,将C++程序中(1)~(5)空缺处的语句填写完整。
[说明]
某订单管理系统的部分UML类图如图5-15所示。
图5-15中,Product表示产品,ProductList表示产品目录,Order表示产品订单,Orderltem表示产品订单中的一个条目,OrderList表示订单列表,SalesSystem提供订单管理系统的操作接口。
请完善类Order的成员函数getOrderedAmount()和类SalesSystem的statistic()方法,各个类的属性及部分方法定义参见下面的C++代码。
[C++代码]