网友您好, 请在下方输入框内输入要搜索的题目:
试题七(共 15 分)
阅读下列说明和 Java 代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批 5 万元以下(不包括 5 万元)的采购单,副董事长可以审批 5 万元至 10 万元(不包括 10 万元)的采购单,董事长可以审批 10 万元至 50 万元(不包括 50万元)的采购单,50 万元及以上的采购单就需要开会讨论决定。 采用责任链设计模式(Chain of Responsibility)对上述过程进行设计后得到的类图如图 7-1 所示
[Java 代码]
class PurchaseRequest {
public double Amount; // 一个采购的金额
public int Number; // 采购单编号
public String Purpose; // 采购目的
};
class Approver { // 审批者类
public Approver(){ successor = null; }
public void ProcessRequest(PurchaseRequest aRequest){
if (successor != null){ successor. (1) ; }
}
public void SetSuccessor(Approver aSuccesssor){ successor = aSuccesssor; }
private (2) successor;
};
class Congress extends Approver {
public void ProcessRequest(PurchaseRequest aRequest){
if(aRequest.Amount >= 500000){ /* 决定是否审批的代码省略 */ }
else (3) .ProcessRequest(aRequest);
}
};
class Director extends Approver {
public void ProcessRequest(PurchaseRequest aRequest){ /* 此处代码省略 */ }
};
class President extends Approver {
public void ProcessRequest(PurchaseRequest aRequest){ /* 此处代码省略 */ }
};
class VicePresident extends Approver {
public void ProcessRequest(PurchaseRequest aRequest){ /* 此处代码省略 */ }
};
public class rs {
public static void main(String[] args) throws IOException {
Congress Meeting = new Congress();
VicePresident Sam = new VicePresident();
Director Larry = new Director();
President Tammy = new President();
// 构造责任链
Meeting.SetSuccessor(null); Sam.SetSuccessor( (4) );
Tammy.SetSuccessor( (5) ); Larry.SetSuccessor( (6) );
// 构造一采购审批请求
PurchaseRequest aRequest = new PurchaseRequest();
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
aRequest.Amount = Double.parseDouble(br.readLine());
(7) .ProcessRequest(aRequest); // 开始审批
return ;
}
}
参考答案