信管网试题内容
信管网 导航

试卷名称:2007年下半年软件设计师考试下午真题试题(案例分析)

考试年份:2007年下半年

试题来源:《2007年下半年软件设计师考试下午真题试题(案例分析)》在线考试

试题内容

试题六
阅读下列说明和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  ;
}



参考答案:暂时没有答案(仅供参考) 收藏

【解析】

普通会员无法查看试题解析。[开通试题解析服务]