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

    考友试题答案分享:
  • 试题二:阅读下列说明和图,回答问题1至问题4。
  • 【说明】
  • 某公司欲开发一款二手车物流系统,以有效提升物流成交效率。该系统的主要功能是:
  • (1)订单管理:系统抓取线索,将车辆交易系统的交易信息抓取为线索。帮买顾问看到有买车线索后,会打电话询问买家是否需要物流,若需要,帮买顾问就将这个线索发起为订单并在系统中存储,然后系统帮助买家寻找物流商进行承运。
  • (2)路线管理:帮买顾问对物流商的路线进行管理,存储的路线信息包括路线类型、物流商、起止地点。路线分为三种,即固定路线、包车路线、竞拍体系,其中固定路线和包车路线是合约制。包车路线的发车时间由公司自行管理,是订单的首选途径。
  • (3)合约管理:帮买顾问根据公司与物流商确定的合约,对合约内容进行设置,合约信息包括物流商信息、路线起止城市、价格、有效期等。
  • (4)寻找物流商:系统根据订单的类型(保卖车、全国购和普通二手车)、起止城市,需要的服务模式(买家接、送到买家等)进行自动派发或以竞拍体系方式选择合适的物流商。即:有新订单时,若为保卖车或全国购,则直接分配到竞拍体系中:否则,若符合固定路线和/或包车路线,系统自动分配给合约物流商,若不符合固定路线和包车路线,系统将订单信息分配到竞拍体系中。竞拍体系接收到订单后,将订单信息推送给有相关路线的物流商,物流商对订单进行竞拍出价,最优报价的物流商中标。最后,给承运的物流商发送物流消息,更新订单的物流信息,给车辆交易系统发送物流信息。
  • (5)物流商注册:物流商账号的注册开通。
  • 现采用结构化方法对二手车物流系统进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。

  • 【问题1】(3分)
  • 使用说明中的词语,给出图1-1中的实体E1~E3的名称。
  • 【问题2】 (5分)
  • 使用说明中的词语,给出图1-2中的数据存储D1~D5的名称。
  • 【问题3】(4分)
  • 根据说明和图中术语,补充图1-2中缺失的数据流及其起点和终点。
  • 【问题4】(3分)
  • 根据说明,采用结构化语言对“P5: 寻找物流商”的加工逻辑进行描述。
    查看答案

    考友试题答案分享:
  • 1,e1:帮买顾问;e2:车辆交易系统;e3:物流商 2,d1:交易信息表;d2:订单表;d3:路线信息表;d4:合约信息表;d5:物流商信息表; 3,存在物流信息数据,从p5到e2 4,if 订单类型 = 保卖车或全国购 then 分配竞拍体系 end if if 订单类型 = 普通车 then if 路线=固定路线和/或包车路线 then 分配合约物流商 end if if 路线 != 固定路线和包车路线 then 分配竞拍体系 end if