问答题

阅读下列说明和图,回答问题。
[说明]
某运输公司决定为新的售票机开发车票销售的控制软件。图10.8给出了售票机的面板示意图以及相关的控制部件。
售票机相关部件的作用如下所述。
(1)目的地键盘用来输入行程目的地的代码(例如,200表示总站)。
(2)乘客可以通过车票键盘选择车票种类(单程票、多次往返票和坐席种类)。
(3)继续/取消键盘上的取消按钮用于取消购票过程,继续按钮允许乘客连续购买多张票。
(4)显示屏显示所有的系统输出和用户提示信息。
(5)插卡口接受MCard(现金卡),硬币口和纸币槽接受现金。
(6)打印机用于输出车票。
假设乘客总是支付恰好需要的金额而无需找零,售票机的维护工作(取回现金、放入空白车票等)由服务技术人员完成。
系统采用面向对象方法开发,使用UML进行建模。系统的顶层用例图和类图分别如图10.9和图10.10所示。
[问题1]
根据说明中的描述,给出图10.9中A1和A2所对应的参与者,U1所对应的用例,以及(1)、(2)处所对应的关系。
[问题2]
根据说明中的描述,给出图10.10中缺少的C1~C4所对应的类名以及(3)~(6)处所对应的多重度。
[问题3]
图10.10中的类图设计采用了中介者(Mediator)设计模式,请说明该模式的内涵。

【参考答案】

[问题1]
A1:乘客 A2:服务技术人员
U1:支付 (1)<<include>> (2)<<in......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题

问答题
阅读下列说明和C++代码,在 (n) 处填入正确的字句。 [说明] 某公司的组织结构图如图10.4所示,现采用组合(Composition)设计模式来构造该公司的组织结构,得到如图10.5所示的类图。 其中Company为抽象类,定义了在组织结构图上添加(Add)和删除(Delete)分公司 办事处或者部门的方法接口。类ConcreteCompany表示具体的分公司或者办事处,分公司或办事处下可以设置不同的部门。类HRDepartment和FinanceDepartment分别表示人力资源部和财务部。 [C++代码] #include <iostream> #include <list> #include <string> using namespace std; class Company 抽象类 protected: string name; public: Company(string name) (1) =name; (2) ; 增加子公司、办事处或部门 (3) ; 删除子公司、办事处或部门 ; class ConcreteCompany: public Company private: list< (4) >children; 存储子公司、办事处或部门 public: ConcreteCompany(string name):Company (name) void Add (Company*c) (5) .push back (c); void Delete (Company*c) (6) .remove (c); ; class HRDepartment: public Company public: HRDepartment(string name):Company(name) 其他代码省略 ; class FinanceDepartment: public Company public: FinanceDepartment(string name):Company(name) 其他代码省略 ; void main() ConcreteCompany *root=new ComcreteCompany( 北京总公司 ); root->Add (new HRDepartrnent( 总公司人力资源音 )); root->Add(new FinanceDepartment( 总公司财务部 )); ConcreteCompany *comp=new ConcreteCompany( 上海分公司 ); comp->Add (new HRDepartment( 上海分公司人力资源部 )); comp->Add(new FinanceDepartment( 上海分公司财务部 )); (7) ; ConcreteCompany *compl=new ConcreteCompany( 南京办事处 ); comp 1->Add (new HRDepartment( 南京办事处人力资源部 )); comp 1->Add (new FinanceDepartment( 南京办事处财务部 )); (8) ; 其他代码省略
问答题
阅读下列说明和Java代码,在 (n) 处填入正确的字句。 [说明] 某公司的组织结构图如图10.6所示,现采用组合(Composition)设计模式来设计,得到如图10.7所示的类图。 其中Company为抽象类,定义了在组织结构图上添加(Add)和删除(Delete)分公司 办事处或者部门的方法接口。类ConcreteCompany表示具体的分公司或者办事处,分公司或办事处下可以设置不同的部门。类HRDepartment和FinanceDepartment分别表示人力资源部和财务部。 [Java代码] import javA.util.*: (1) Company protected String name; public Company (String name)( (2) =name; public abstract void Add(Company c); 增加子公司、办事处或部门 public abstract void Delete(Company c); 删除子公司、办事处或部门 class ConcreteteCompany extends Company private List< (3) >children-new ArrayList< (4) >(); 存储子公司、办事处或部门 public ConcreteCompany (String name) super (name); public void Add(Company c) (5) .add(c); public void Delete (Company c) (6) .remove (c); class HRDepartment extends Company public HRDepartment (String name) super (name); 其他代码省略 class FinanceDepartment extends Company public FinanceDepartment (String name)( super (name); 其他代码省略 public class Test public static void main(String[] args) ConcreteCompany root=new ConcreteCompany( 北京总公司 ); root.Add (new HRDepartment( 总公司人力资源部 )); root.Add (new FinanceDepartment( 总公司财务部 )); ConcreteCompany comp=new ConcreteCompany( 上海分公司 ); comp.Add (new HRDepartment( 上海分公司人力资源部 )); comp.Add (new FinanceDepartment( 上海分公司财务部 )); (7) ; ConcreteCompany comp1 =new ConcreteCompany( 南京办事处 ); comp1.Add (new HRDepartment( 南京办事处人力资源部 )); comp1.Add (new FinanceDepartment( 南京办事处财务部 ); (8) ; 其他代码省略