早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

试题六(共 15 分) 阅读下列说明和 C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】

题目

试题六(共 15 分)

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

}

参考答案
正确答案:
看了试题六(共 15 分) 阅读下...的网友还看了以下: