首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(n)处的字句写在对应栏内。 【说明】 已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10万元(不包括
阅读下列说明和C++代码,将应填入(n)处的字句写在对应栏内。 【说明】 已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10万元(不包括
admin
2008-11-02
49
问题
阅读下列说明和C++代码,将应填入(n)处的字句写在对应栏内。
【说明】
已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10万元(不包括10万元)的采购单,董事长可以审批10万元至50万元(不包括50万元)的采购单,50万元及以上的采购单就需要开会讨论决定。
采用责任链设计模式(Chain of Responsibility)对上述过程进行设计后得到的类图如图6-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 *aSuccesssor) { successor = aSuccesssor; } private:
(2) successor; };
class Congress : public Approver {
public:
void ProcessRequest(PurchaseRequest aRequest) {
if(aRequest.Amount >= 500000){ /*决定是否审批的代码少略*/ }
else (3) ProcessRequest(aRequest);
}
class Director : 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
解析
本题考查的是设计模式的应用,属于比较传统的题目。责任链设计模式属于常用的 23种没计模式之一,其目的是为了将一个请求发送给一个对象集合,对象被组织成一条链,而负责处理该请求的对象将获取请求消息并加以处理,其余对象则仅仅负责将该请求消息按照责任链的顺序传递到下一个对象。因此责任人链模式的关键在于组织不同的对象成为一条链并传递消息。
代码中空(1)处位于条件判断if(successor!=NULL)内,因此其含义是判断当前对象是否存在后继对象,如果存在,按照责任链设计模式,可以把请求消息进行传递,也就是调用后继对象的ProcessRequest方法。空(2)处要求填写successor的类型,因为责任链模式中的每一个对象都继承自同一个父类,在本题中,就是Approver类型。空(3)处位于Congress类中的ProcessRequest方法中,该方法表示处理外界的请求,else块的含义表明Congress对象不处理审批金额大于50万元的请求,因此,Congress对象应该将该请求转发到下一个对象进行处理,可以直接调用父类的ProcessRequest方法。空(4)、 (5)、(6)则主要用来将各种对象串接成一个链,根据题目的要求,对象在责任链中的顺序应该为Director Larry:VicePresident Sam;President Tammy:Congress Meeting,而审批的请求应该从Larry开始。
转载请注明原文地址:https://kaotiyun.com/show/B5DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
在“模型一视图一控制器(NVC)”模式中,(27)主要表现用户界面,(28)用来描述核心业务逻辑。
在某大学学籍管理信息系统中,假设学生年龄的输入范围为16~40,则根据黑盒测试中的等价类划分技术,下面划分正确的是(46)。
在面向对象的语言中,(7)。
利用高速通信网络将多台高性能工作站或微型机互连构成机群系统,其系统结构形式属于(5)计算机。
为验证某音乐会订票系统是否能够承受大量用户同时访问,测试工程师一般采用(62)测试工具。
针对电子政务类应用系统的功能测试,为设计有效的测试用例,应(34)。
性能测试过程中需要对数据库服务器的资源使用进行监控,______不属于应该监控的指标。A.CPU占用率B.可用内存数C.点击率D.缓存命中率
以下类图中,类Classl和Class2之间是()关系。
根据ANSI/IEEE829标准,以下(37)属于《测试程序说明》中程序步骤的内容。 ①启动 ②目的 ③日志 ④设置
随机试题
地西泮的中枢抑制作用机制是
如果电科公司的法定代表人没有时间亲自参加电路板买卖合同的签字,关于派何人代表公司签字合同才有效的说法,正确的是()。若电科公司未能按期履行合同,恒丰可采取下列哪项措施?()
影响到城市的产生和发展的全过程,决定城市的选址,城市性质和规模、城市空间结构及城市特色,是城市赖以生存和发展的资源是()
目前,我国货物限制出口的主要管理方式是()。
实务操作中,判断贷款申请是否受理时,业务人员应坚持将()放在第一位。
(2012年)2007年10月,私募股权投资基金“天翼资本”拟对恒信有限责任公司(简称恒信公司)进行股权投资。天翼资本调查发现,恒信公司成立于2006年2月,注册资本为2000万元;自然人股东甲、乙和法人股东A公司分别认缴的出资比例为15%、15%和70%
榜样在形成学生良好行为习惯上具有重要作用,下列有关榜样学习的说法正确的是()。
社会工作者小戴决定对刘阿姨遇到的问题提供帮助后,通过自己的观察和调查,以及与刘阿姨和其周围人的接触和会谈,整理和分析刘阿姨问题产生的原因和发展变化的过程,小戴现在所进行的工作属于社会工作流程中的()阶段。
下列不具有法人资格的是()。
政治情感:是指政治主体在政治生活中对政治体系、政治活动、政治事件和政治人物等方面所产生的内心体验和感受,是伴随人的政治认知过程所形成的对于各种政治客体的好恶之感、爱憎之感、美丑之感等心理反应的统称。下列不属于政治情感的一项是()。
最新回复
(
0
)