首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10
admin
2018-07-23
38
问题
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10万元(不包括10万元)的采购单,董事长可以审批10万元至50万元(不包括50万元)的采购单,50万元及以上的采购单就需要开会讨论决定。
采用责任链设计模式(Chain of Responsibility)对上述过程进行设计后得到的类图如题图5.1所示。
【C++代码】
#include<string>
#include<iostream>
using namespace std;
class PurchaseRequest {
public:
double Amount; //一个采购的金额
int Number; //采购单编号
string Purpose; //采购目的
};
class Approver{ //审批者类
public:
Approver(){successor=NULL; }
virtual void ProcessRequest(PurchaseRequest aRequest){
if(successor!=NULL){ successor->____(1);}
}
void SetSuccessor(Approver*aSuccessor){successor=aSuccessor;}
private:
____(2)successor;
};
class Congress:public Approver{
public:
void ProcessRequest(PurchaseRequest aRequest){
if faRequest.imount >=500000){/*决定是否审批的代码省略*/ }
else ____(3) ProcessRequest(aRequest);
}
};
clasd mirector:public Approver{
public:
void ProcessRequest(PurchaseRequest aRequest){ /*此处代码省略*/ }
};
class President:public Approver{
public:
void ProcessRequest(PurchaseRequest aRequest){ /*此处代码省略*/ }
};
class VicePresident:public Approver{
public:
void ProcessRequest(PurchaseRequest aRequest){ /*此处代码省略*/ }
};
void main(){
Congress Meeting;VicePresident Sam;Director Larry;President Tammy;
//构造责任链
Meeting.SetSuccessor(NULL);Sam.SetSuccessor(_____(4));
Tammy.SetSuccessor(_____(5);Larry.SetSuccessor(_____(6));
PurchaseRequest aRequest; //构造一采购审批请求
cin>>aRequest.Amount; //输入采购请求的金额
_____(7).ProcessRequest(aRequest); //开始审批
return;
}
选项
答案
(1)ProcessRequest(aRequest) (2)Approver* (3)Approver:: (4)&Tammy (5)&Meeting (6)&Sam (7)Larry
解析
本题以解决某企业的采购审批分级为背景,考查考生对面向对象程序设计类的用例和继承,程序解释如下。
class Approver{ //审批者类
public:
Approver(){successor=NULL; }
virtual void ProcessRequest(PurchaseRequest aRequest){
if(SuccesSor!=NULL)
{successor->(1)ProcessRequest(aRequest) ;}
/*Chain of Responsibility(CoR)是用一系列类(classes)试图处理一个请求aRequest,这些类之间是一个松散的耦合,唯一共同点是在它们之间传递aRequest。也就是说,来了一个请求,Director类先处理,如果没有处理,就传递到VicePresident类处理,如果还没有处理,就传递到President类处理,构成责任链。审批者类定义一个虚函数,其子类可以重载该虚函数,用于处理采购请求,如果继任者不为空,则执行相应审批者类的处理采购请求的函数Proces sRequest(aRequest)。*/
void SetSuccessor(Approver*aSuccessor){succeSsor=aSuccessor;}
private:
(2)Approver* successor;
/*注意到此处成员变量为私有属性,只能在Approver类中使用。由void SetSuccessor
(Approver*aSuccessor){successor=aSuccessor;}中的参数是Approver指针
类型,再由successor=aSuccessor可知successor也应为Approver指针类型,否
则无法赋值。*/
};
clasS Congress:publiC Approver{
public:
void ProcessRequest(PurchaseRequest aRequest){
if(aRequest.Amount>:500000){/*决定是否审批的代码省略*/ }
else (3)Approver::ProcessRequeSt(aRequest);
/*该类只处理50万元及以上的采购请求这种情况,如果是50万元以下,则需交给其他类处理。由于此处调用的是父类中的成员函数void ProcessRequest(Purchase RequestaRequest),故需Approver::Proces sRequest(aRequest),此函数将请求传递给下一个继任者,即相应的子类。*/
}
};
…
void msln() {
Congress Meeting; VicePresident Sam;Director Larry;PreSident Tammy;
//构造责任链
Meeting.SetSucceSSor(NULL); Sam.SetSucceSsor((4)&Tammy);
Tammy.SetSuccessor((5)&Meeting); Larry.SetSuccessor((6)&Sam);
/*由Approver类中的函数void SetSuccessor(Approver*aSuccessor)
{successor=aSuccessor;}可知这三处的参数值都是指针类型的,由于是一种责任链,当
Director
类的对象Larry不能处理该请求时,必须将该请求传给上一级,即VicePresident类的对象Sam,此时需将该继任者的地址传给Director类的对象Larry,否则无法传递该请求。同理,其他上一级的对象也是如此。*/
PurchaseRequest aRequest;//构造一采购审批请求
cin>>aRequest.Amount;//输入采购请求的金额
(7)Larry.ProcessRequest(aRequest);
/*开始审批。一般采购请求是先由Director类处理,看金额是否满足,不满足再交由上一级的VicePresident类处理,不满足再如此传递下去。由上述创建的类对象Director Larry可知,此处应填Larry.ProcessRequest(aRequest).*/
return;
}
转载请注明原文地址:https://kaotiyun.com/show/ZKDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
非对称数字用户线(AsymmetricDigitalSubscriberLine,ADSL)是一种利用现有的传统电话线路高速传输数字信息的技术。ADSL技术可以充分利用现有铜线网路,只要在用户线路两端加装ADSL设备即可为用户提供服务。ADSL系统构
在交换机上可以配置虚拟局域网(VLAN),以下是部分配置清单。回答问题1、问题2、问题3、问题4和问题5,将解答填入对应栏内。>enablegconfigtEnterconfigurationcommands,oneperli
阅读以下关于网络应用系统数据备份/恢复方案、网络安全策略的技术说明,根据要求回答问题1至问题6。【说明】随着不同的网络应用系统在网络工程的深入应用,网络数据安全性越来越重要。网络系统的数据备份策略、数据恢复方案、网络安全策略的作用也日益突显。一个
假如有一台PC连接在如图10-1所示的交换机(10/100M自适应的交换机)上,通信正常,但是将100M的网卡连到交换机上时显示红灯,通信不正常,请分析故障原因并给予解决。请简要区分三层交换机与路由器。
假如有一台PC连接在如图10-1所示的交换机(10/100M自适应的交换机)上,通信正常,但是将100M的网卡连到交换机上时显示红灯,通信不正常,请分析故障原因并给予解决。假如交换机设置了若干个VLAN,在不同VLAN内的机器在同一网段,它们可以通信吗
假如有一台PC连接在如图10-1所示的交换机(10/100M自适应的交换机)上,通信正常,但是将100M的网卡连到交换机上时显示红灯,通信不正常,请分析故障原因并给予解决。交换机设置了两个VLAN,在同一VLA_N内的机器不在同一网段上,它们可以通信吗
从下列的2道试题(试题5、试题6)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。请认真阅读下列有关于路由器配置的技术说明,根据要求回答问题1至问题5。【说明】菜地市级水电站网络除了和远程子网172.20.0.0/24
目前,通过移动电话接入互联网所采用的主要技术是什么?公司网络中的设备或系统(包括存储商业机密的数据库服务器、邮件服务器,存储资源代码的PC、应用网关、存储私人信息的PC、电子商务系统)中,哪些应放在DMZ中,哪些应放在内网中?并请给予简要说明。
阅读以下基于Linux操作系统部署DHCP服务的技术说明,根据要求回答问题1至问题3。【说明】某地市图书馆内部局域网划分为办公区、电子阅览室、无线阅览室等3个VLAN,并通过一台带防火墙模块的路由器与Internet网互连。为了便于整个局域网IP
为了便于用户下载相关资料,特安装一台FTP服务器,其服务器端软件是Serv-U,假如要增加一个名为CIU10009的用户,对应目录为D盘,且要求加密,在图6-4中怎么设置?假如想将某用户在设咸FTP服务器管理员,其用户名称不变,请问在“Privileg
随机试题
A.酸度增加B.CO中毒C.Hb的Fe2+氧化成Fe3+既妨碍血红蛋白与O2结合,又妨碍血红蛋白与O2解离的是
青年女性患者,近3周来午后低热、乏力、食欲缺乏、咳嗽、咯血。查体:右颈部可触及数个黄豆大小淋巴结,双肺呼吸音清,未闻及干湿性啰音,根据患者病史选择哪一相应的试验
口腔健康教育应在
如下治疗冠心病心肌梗死的治法中,属于心肌再灌注的是
建设项目目标的()是项目管理最基本的方法论。
某工业建设项目及其总装车间的建筑工程费、安装工程费,需安装设备费以及应摊入费用见下表,则总装车间新增固定资产价值()万元。
背景资料:五里湖大沟属淮海省凤山市,万庄站位于五里湖大沟右堤上,装机流量16.5m3/S,堤防级别为4级,配3台轴流泵,总装机3×355kW=1065kW。在工程建设过程中发生如下事件:事件1:招标文件设定投标最高限价为3000万元。招
在一些国际会议上,同声翻译人员使用的记忆是()。
Researchershavestudiedthepoorasindividuals,asfamiliesandhouseholds,asmembersofpoorcommunities,neighborhoodsand
A、Askhiswifetocallhim.B、Askthehotelclerkforhelp.C、SethiswatchalarmD、Callthehotelclerk.B男士希望自己不会睡过头.因为他耍赶第一班飞
最新回复
(
0
)