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

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

考试年份:2007年下半年

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

试题内容

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



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

【解析】

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