未分类题

某网上药店允许顾客凭借医生开具的处方,通过网络在该药店购买处方上的药品。该网上药店的基本功能描述如下:
(1)注册。顾客在买药之前,必须先在网上药店注册。注册过程中需填写顾客资料以及付款方式(信用卡或者支付宝账户)。此外顾客必须与药店签订一份授权协议书,授权药店可以向其医生确认处方的真伪。
(2)登录。已经注册的顾客可以登录到网上药房购买药品。如果是没有注册的顾客,系统将拒绝其登录。
(3)录入及提交处方。登录成功后,顾客按照“处方录入界面”显示的信息,填写开具处方的医生的信息以及处方上的药品信息。填写完成后,提交该处方。
(4)验证处方。对于已经提交的处方(系统将其状态设置为“处方已提交”),其验证过程为:
①核实医生信息。如果医生信息不正确,该处方的状态被设置为“医生信息无效”,并取消这个处方的购买请求;如果医生信息是正确的,系统给该医生发送处方确认请求,并将处方状态修改为“审核中”。
②如果医生回复处方无效,系统取消处方,并将处方状态设置为“无效处方”。如果医生没有在7天内给出确认答复,系统也会取消处方,并将处方状态设置为“无法审核”。
③如果医生在7天内给出了确认答复,该处方的状态被修改为“准许付款”。
系统取消所有未通过验证的处方,并自动发送一封电子邮件给顾客,通知顾客处方被取消以及取消的原因。
(5)对于通过验证的处方,系统自动计算药品的价格并邮寄药品给己经付款的顾客。
该网上药店采用面向对象方法开发,使用UML进行建模。系统的类图如图3-1所示。
中级软件设计师,历年真题,2010年下半年(下午)《软件设计师》真题
【问题1】(8分)
根据说明中的描述,给出图3-1中缺少的C1~C5所对应的类名以及(1)~(6)处所对应的多重度。
【问题2】(4分)
图3-2给出了“处方”的部分状态图。根据说明中的描述,给出图3-2中缺少的S 1~S4所对应的状态名以及(7)~(10)处所对应的迁移(transition)名。
中级软件设计师,历年真题,2010年下半年(下午)《软件设计师》真题
【问题3】(3分)
图3-1中的符号中级软件设计师,历年真题,2010年下半年(下午)《软件设计师》真题在UML中分别表示类和对象之间的哪两种关系?两者之间的区别是什么?

【参考答案】

【问题1】(8分)
C1:付款方式(1分)
C2:处方(1分)
C3:信用卡(1分)
C......

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

未分类题
某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表5-1所示。表5-1为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图5-1所示。图5-1中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly( )和takeOff( )分别表示不同飞机都具有飞行特征和起飞特征;类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类VerticalTakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。【C++代码】#include<iostream>using namespace std;class FlyBehavior{public:virtual void fly( )=0;};class SubSonicFly:public FlyBehavior{public:void fly( ){cout<< 亚音速飞行! <<endl;}};class SuperSonicFly:public FlyBehavior{public:void fly( ){cout<< 超音速飞行! <<endl;}};class TakeOffBehavior{public:virtual void takeOff( )=0;};class VerticalTakeOff:public TakeOffBehavior{public:void takeOff( ){cout<< 垂直起飞! <<endl;}};class LongDistanceTakeOff:public TakeOffBehavior{public:void takeOff( ){cout<< 长距离起飞! <<endl;}};class AirCraft{protected:(1);(2);public:void fly( ){(3);}void takeOff( ){(4);};};class Helicopter:public AirCraft{public:Helicopter( ){flyBehavior=new(5);takeOffBehavior=new(6);}(7){if(!flyBehavior)delete flyBehavior;if(!takeOffBehavior)delete takeOffBehavior;}}; 其它代码省略