试题详情

试题内容

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



查看答案

软题库参考答案:暂时没有答案(仅供参考)

软题库解析:正在加载....

你可能感兴趣的试题

5题:

试题:5
阅读下列说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。Command模式的类图如图1-1所示。



图1-1 Command模式类图
【C++代码】
class Light {
public:
Light(string name) { /* 代码省略 */ }
void on() { /* 代码省略 */ }    // 开灯
void off() { /* 代码省略 */ }  // 关灯
6题:

试题六(共15分)
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图6-1所示的类图。

【java代码】
class invoice{
public void printInvoice(){:
System.out.println("This is the content of the invoice!");
}
}
class Decorator:extends Invoice{
protected Invoice ticket;
public Decorator(
1题:阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某证券交易所为了方便提供证券交易服务,欲开发一证券交易平台,该平台的主要功能如下:
 (1)开户。根据客户服务助理提交的开户信息,进行开户,并将客户信息存入客户记录中,账户信息(余额等)存入账户记录中;
(2)存款。客户可以向其账户中存款,根据存款金额修改账户余额;
(3)取款。客户可以从其账户中取款,根据取款金额修改账户余额;
(4)证券交易。客户和经纪人均可以进行证券交易(客户通过在线方式,经纪人通过电话),将交易信息存入交易记录中;
(5)检查交易。平台从交易记录中读取交易信息,将交易明细返回给客户。 现采用结构化方法对该证券交易平台进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。
4题:

试题四(共15分)
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
【说明】
在一块电路板的上下两端分别有n个接线柱。根据电路设计,用(i,π(i))表示将上端接线柱i与下端接线柱π(i)相连,称其为该电路板上的第i条连线。如图4-1所示的π(i)排列为{8,7,4,2,5,1,9,3,10,6}。对于任何1≤iπ(j)。



在制作电路板时,要求将这n条连线分布到若干绝缘层上,在同一层上的连线不相交。现在要确定将哪些连线安排在一层上,使得该层上有尽可能多的连线,即确定连线集Nets={(i,π(i)),1≤i≤n}的最大不相交子集。
【分析问题】
记N(i,j)={t|(t,π(t))∈Nets,t≤i,π(t)≤j}。N(i,j
5题:阅读下列说明和C++代码,将应填入空(n)处的字句写在答题纸的对应栏内。
【说明】
某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如下图所示。

现在采用组合(Composition)模式来构造该饭店的菜单,使得饭店可以方便地在其中增加新的餐饮形式,得到如下图所示的类图。其中MenuComponent为抽象类,定义了添加(add)新菜单和打印饭店所有菜单信息(print)的方法接口。类Menu表示饭店提供的每种餐饮形式的菜单,如煎饼屋菜单、咖啡屋菜单等。每种菜单中都可以添加子菜单,例如图中的甜点菜单。类MenuItem表示菜单中的菜式。

()

6题:

试题六
阅读下列说明和Java代码,将应填入  (n)  处的字句写在答题纸的对应栏内。
[说明]
现欲构造一文件/目录树,采用组合(Composite)设计模式来设计,得到的类图如下图所示:

[Java代码]
import  java.util.ArrayLiSt;
import  java.util.List;
(1) class AbstractFile  {
protected  String  name;
public  void  printName24{System.out.println(name);}
public  abstract  boolean &n