阅读下列说明和C++代码,将应填入 (n) 处的字句写在对应栏内。
[说明]
已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10万元(不包括10万元)的采购单,董事长可以审批10万元至50万元(不包括50万元)的采购单,50万元及以上的采购单就需要开会讨论决定。
采用责任链设计模式(Chain of Responsibility)对上述过程进行设计后得到的类图如图18-9所示。
[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
publlc:
void ProcessRequest(PurchaseRequest aRequest) /*此处代码省略*/
;
class President:public Approver
public:
void ProcessRequest(PurchaseRequest aRequest)/*此处代码省略*/
;
class VicePresident:public Approver
public:
void ProcessRequest(PurchaseRequest aRequest)/*此处代码省略*/
;
void msin()
Congress Meeting;VicePresident Sam;Director Larry;President Tammy;
//构造责任链
Meeting.SetSuccessor(NULL);Sam.SetSuccessor( (4) );
Tammy.SetSuccessor( (5) );Larry.SetSuccessot( (6) );
PurchaseRequest aRequest; //构造采购审批请求
cin>>aRequest.Amount; //输入采购请求的金额
(7) .ProcessRequest(aRequest);//开始审批
return;
(3)处填()。