阅读以下说明和 C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
【说明】
在股票交易中,股票代理根据客户发出的股票操作指示进行股票的买卖操作。其类图如图5-1所示,相应的c++代码附后。
图5-1 类图
【C++代码】
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Stock {
private:
string name; int quantity;
public:
Stock(string name ,int quantity) { this->name= name;this->quantity
= quantity; }
void buy() { cout<<" [买进]股票名称: "<< name << ",数量: "<< quantity <<
endl;}
void sell() { cout<<" [卖出]股票名称: " << name << ",数量:"<< quantity
<<endl; }
};
class Order {
public:
virtual void execute() = 0;
};
classBuyStock: (1) {
private:
Stock* stock;
public:
BuyStock(Stock* stock) { (2) = stock; }
void execute() { stock->buy () ; }
};
//类SellStock的实现与BuyStock类似,此处略
class Broker {
private:
vector < Order*> orderList;
public:
void takeOrder( (3) order) { orderList.push_back(order);}
void placeOrders() {
for (int i=0; i<orderList.size(); i++) { (4) -> execute () ; }
orderList.clear();
}
};
class StockCommand {
public:
void main () {
Stock* aStock = new Stock("股票 A" ,10);
Stock* bStock = new Stock("股票 B" ,20);
Order* buyStockOrder = new BuyStock(aStock);
Order* sellStockOrder = new SellStock(bStock);
Broker* broker = new Broker();
broker->takeOrder(buyStockOrder);
broker->takeOrder(sellStockOrder);
broker-> (5) () ;
}
};
int main() {
StockCommand* stockCommand = new StockCommand();
stockCommand->main();
delete stockCommand;
}