首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10
admin
2018-07-23
50
问题
阅读下列说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下关于ADSL宽带接入Internet的技术说明,请结合网络拓扑结构图,根据要求回答问题1至问题5。【说明】某边远山区的行政机关需要与该地区的市委行政机关进行网络互连,提高行政办事效率,并要求与Internet网互连,从而打开该山区原信息
请用100字以内的文字说明该网管软件项目采用快速原型开发方法的优缺点。项目管理就是以项目为对象的系统管理方法,通过一个临时性的专门的柔性组织,对项目进行高效率的计划、组织、指导和控制,以实现项目全过程的动态管理和项目目标的综合协调与优化。除了本题涉及到
ADSL技术可以充分利用现有铜线网络,只要在用户线路两端加装ADSL设备即可为用户提供服务。请从以下术语选择适当的编号,将图5-9所示的拓扑结构中(1)~(4)空缺处的名称填写完整。【供选择的答案】A.程控交换机B.二层交换机
阅读以下交换机Switch01的部分配置信息,结合图2-8所示的网络拓扑图将(1)~(8)空缺处的内容(命令或解释)填写完整。Switch>enable(进入特权模式)S
请问无线局域网的工作模式有哪几种?当不使用AP时,必须把一组需要互相通信的无线网卡的什么值设为相同?
阅读以下说明,回答问题1、问题2、问题3和问题4,将解答填入对应栏内。[说明]现在,家居装修布线是一个大且细致的工程项目,除了要布设普通电源线、有线电视电缆和电话线、音响线、视频线等,越来越多的电脑爱好者家中的网络布线则是少不了的。如果不是
目前,通过移动电话接入互联网所采用的主要技术是什么?进行一次查询的数据信息见表1-1,网络的基本通信服务费用见表1-2,总费用=网络租用费+通信费。根据表中给出的数据,试计算销售员每月至少应进行多少次查询,才能使得使用移动电话的总费用比使用PDA的总费
由于面向3G移动电话的电子商务网站看不到用户进行销售服务,因此,对用户身份进行认证是必要。通常,在Internet中进行电子签名的认证过程如下:①文件的发送者将要发送的文件生成(1);②用发送者的(2)对摘要加密后,将其添加到文件中;
在安装RedhatLinux9.0操作系统的过程中,如果没有选择安装Web服务器,Apache服务器则需要手动安装。现从http://httpd.apache.org网站上免费下载了一个apache-2.2.3RPM格式的软件包,请将以下(1)空缺处
随机试题
(2019年)福明公司为A股上市公司。2018年1月25日,福明公司实际控制人、董事长李某根据公司2017年度业绩情况,向董事会秘书赵某提出在当期实施股票“高送转”的利润分配动议。赵某起草了《高送转预期利润分配预案》等文件提交董事会审议,但由于董事会对具体
装配Y7131型齿轮磨床磨具时,应按精度要求一致性成对选择两组轴承,并成对进行预加负荷调整。( )
卡片分类法
《内经》记载的水肿有
女,50岁,掌指和腕关节反复肿痛2年余,近1个月病情加重,晨起时出现关节僵硬,活动后可缓解。首先考虑的诊断是
[2009年,第103题]在windows中,对存储器采用分页存储管理技术时,规定一个页的大小为()。
某雨水管道工程施工双代号网络进度计划如下图,该网络计划的关键线路是()。
亚油酸是()。
万里赴戎机,_______。朔气传金柝,_______。(《木兰辞》)
A、There’smuchtodobesidesworkandstudy.B、It’sconvenientforpeopletogoanywhere.C、Thenaturalenvironmentisbeneficia
最新回复
(
0
)