首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 在股票交易中,股票代理根据客户发出的股票操作指示进行股票的买卖操作。其类图如图5-1所示,相应的C++代码附后。 【C++代码】 #include #i
阅读以下说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 在股票交易中,股票代理根据客户发出的股票操作指示进行股票的买卖操作。其类图如图5-1所示,相应的C++代码附后。 【C++代码】 #include #i
admin
2016-11-11
66
问题
阅读以下说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
【说明】
在股票交易中,股票代理根据客户发出的股票操作指示进行股票的买卖操作。其类图如图5-1所示,相应的C++代码附后。
【C++代码】
#include
#include
#include
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;
};
class BuyStock:____________(1){
private:
Stock*stock;
public:
BuyStock(Stock*stock){__________(2)=stock;}
void execute(){ stock->buy(); }
};
//类SellStock的实现与BuyStock类似,此处略
class Broker{
private:
vector
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;
}
选项
答案
(1)public Order (2)this->stock 或(*this).stock (3)Order* (4)orderList[i] 或 *(orderList+i) (5)placeOrders
解析
本题考查C++语言程序设计能力,涉及类、对象、函数的定义和相关操作。要求考生根据给出的案例和代码说明,认真阅读理清程序思路,然后完成题目。
先考查题目说明,在股票交易中,股票代理根据客户发出的股票操作指示进行股票的买卖操作。根据说明进行设计,题目说明中给出了类图。涉及到股票(Stock)、股票代理(Broker)、股票操作指示(StockCommand)、买卖股票(Order接口、BuyStock与SellStock类)等类以及相关操作。
Stock类定义了两个函数buy()和sell(),分别实现买和卖的操作。在构造函数中接收参数name和quantity,分别表示买卖股票的名称和数量,对当前所创建对象中的name和quantity赋值,用this表示区别当前对象,所以构造函数为:
Stock(string name,int quantity){
thiS->name=name;
this->quantity=quantity;
}
Order虚类声明纯虚函数execute():virtual void execute()=0;表示执行股票交易(即买和卖)的函数原型。
BuyStock继承Order,构造函数接收参数stock,实现函数execute(),进行股票买入,stock->buy()。SellStock和BuyStock类似,继承Order,构造函数接收参数stock,实现函数execute(),进行股票卖出,stock->sell()。
Broker类实现接受客户的买卖指示tackOrder(),接收BuyStock或者SellStock的实例,BuyStock和SellStock均是Order的子类,所以BuyStock和SellStock的实例也是Order,因此tackOrder()所接收的参数用Order类型。接收到买卖指示之后,存入Vector
类型的orderList中,即orderList.push_back(order)。placeorders()函数是实现将所有买卖股票的指示进行实际买入和卖出操作,即采用for循环,对每个orderList中的Stock实例,调用在BuyStock和SellStock中实现的execute()加以执行。
for(int i=0;i<orderList.size();i++){orderList
->execute();}
StockCommand主要是根据操作指示进行股票交易,实现为一个函数main(),其中创建欲进行交易的股票对象aStock和bStock,创建买aStock卖bStock股票的对象buyStockOrder和sellStockOrder对象:
Order* buyStockOrder=new BuyStock(aStock);
Order* sellStockOrder=new SellStock(bStock);
再创建股票代理Broker类的对象broker,并接收买卖股票的指示:
broker->takeOrder(buyStockOrder);
broker->takeOrder(sellStockOrder);
最后将所有买卖指示用placeOrders()下执行命令:
broker>placeOrders ();
主控逻辑代码在main()函数中实现。在main()函数中,先初始化StockCommand类的对象指针stockCommand,代码为:
StockCommand*StockCommand=new StockCommand();
即生成一个股票指示,并调用其main()函数启动股票交易,即调用stockCommand的main()函数,实现股票的买卖指示的创建和执行。主控main()函数中,使用完数组对象之后,需要用delete操作释放对象,对stockCommand对象进行删除,即
delete StockCommand;
因此,空(1)需要表示继承Order类的“public Order”;空(2)需要表示当前对象的stock属性,填入“this->stock”或“(*this).stock”;空(3)需要填入BuyStock和SellStock均能表示的父类“Order*”;空(4)需要orderList中每个对象指针调用execute(),即填入“orderList
”或“*(orderList+i)”;空(5)处为调用“placeOrders()”来下达执行命令。
转载请注明原文地址:https://kaotiyun.com/show/u9jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
假设100个数据的平均值为82.31,其中有10个数据又发生了如下增减变化:+3.52,+2.87,-4.13,+5.34,-2.87,+2.50,-3.52,+4.23,-5.04,+0.10,则新的平均值变为(26)。
在Windows XP中,可用来改变窗口大小的光标是(37)。
在幻灯片演讲稿中插入数据表或图表的主要目的是(70)。
以下关于操作系统中回收站的叙述,不正确的是____________。
为使双击指定类型的文件名就能调用相应的程序来打开处理它,需要将这种文件类型与相应的程序建立文件(23)。
某公司统计一季度考勤情况如下:根据公司规定,凡缺勤不超过2天的人,每人发200元考勤奖;凡缺勤天数超过5天的人,每人每天缺勤从工资中扣50元,用于发放其他人的考勤奖。根据上表,计算该公司还需要拿出(29)元作为一季度的考勤奖。
采购了多种品牌的部件进行计算机组装,每个部件都正常,连接、安装、配置操作也完全正确,但系统仍不能正常使用。很可能是____________问题。
此配置允许DHCP服务器分配给客户的地址范围是什么?#/sbin/chkconfig-level3dhcpdon命令的作用是什么?
请认真阅读下列有关Linux操作系统环境下配置成一台DNS服务器的说明信息,然后根据要求回答问题1至问题5。【说明】一台装有Linux操作系统的电脑,IP地址是“192.168.0.39’’,主机名是dnserver。现在要在这台电脑上配置成一台
框架在网页布局中主要起什么作用?主页中定义了几个框架,分别显示哪个文档?假设连接的数据记录集当前指向的记录如下:写出以下ASP代码经过IIS服务器解释后的结果。<tdalign-"center"width="20%"><ahref
随机试题
Almosttwo-thirdsofoverseasstudentsstudyingintheUKhavefewornoBritishfriends,accordingtoasurveyamong5,000over
感觉的非特异性投射系统
在疾病发展过程中。对某一阶段的病理概括是
孙某向信用社贷款3万元,请在县武装部作出纳的朋友李某在保证人栏目盖上武装部印章,而此事武装部领导并不知道,孙某经营中亏损无力还贷,信用社要武装部偿还,武装部经查系李某所为并拒绝清偿。对该案处理正确的是()。
排水系统的规划设计原则有()。
超额存款准备金主要用途不包括()。
各单位按收入法计算的增加值应包括劳动者报酬、固定资产折旧、()和营业盈余。
C企业在生产经营淡季,需占用1250万元的流动资产和1875万元的固定资产;在生产经营高峰期,会额外增加650万元的季节性存货需求。企业目前有两种营运资本筹资方案。方案1:权益资本、长期债务和自发性负债始终保持在3400万元,其余靠短期借款提供资金来源。
Ipromisedtolook______thematterassoonasIgotthere.
Inmanystates,budgetrequestsbystateuniversitieshavehadtobescaledbackorfrozen,whiletuition,theshareofthecos
最新回复
(
0
)