托运申请((c),货物名称,数目,邮费,出发地,目的地)
安排承运((d),装货时间,抵达时间,业务员)
【问题1】(5分)
依照问题描述,补充四个联系、联系的类型,以及实体与子实体的联系,建立图2-1所示的实体联系图。
【问题2】(8分)
按照实体联系图,将关系模式中的空(a)~(d)补充完整。分别强调部门、员工和安排承运关系模式的字段和字段。
【问题3】(2分)
若系统新增需求描述如下:
为了数据库信息的安全性,公司要求对数据库操作设置权限管理功能,当职工登入系统时,系统须要检测职工的权限。权限的设置人是部门总监。为满足上述须要,应怎样更改(或补充)图2-1所示的实体联系图,请给出更改后的实体联系图和关系模式。
答案解析与讨论:
第3题:阅读下述说明和图如图所示出售英文怎么说,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
Pay&Drive系统(开多少付多少)才能依据驾驶里程手动估算应付的费用。
系统中储存了特定区域的公路交通网的信息。公路交通网由若干个路段(Road)构成,每位路段由两个地理座标点(Node)标定,其里程数()是已知的。在个别地理座标点上安装了访问控制()设备,可以手动扫描行驶卡(Card)。行程()由一组连续的路段构成。行程的起点(Entry)和终点(Exit)都装有访问控制设备。
系统提供了3种行驶卡。常规卡(Card)有效期(Valid)为一年,可以在整个公路交通网内使用。季卡(Card)有效期为三个月,可以在整个公路交通网内使用。单次卡(Card)在指定的行程内使用,且只能使用一次。其中,季卡和单次卡都是预收卡(Card),须要顾客()预存一定的费用。
系统的主要功能有:顾客注册、申请行驶卡、使用行驶卡行驶等。
使用常规卡行驶,在步入行程起点时,系统记录行程起点、进入时间(DateOfEntry)等信息。在抵达行程终点时,系统按照行驶的里程数和所持卡的里程总价(UnitPrice)估算应付费用,并复印费用单()。
季卡的使用流程与常规卡类似,而且不须要复印费用单,系统手动从卡中交纳应付费用。
单次卡的使用流程与季卡类似,但还须要在行程的起点和终点上检测行驶路线是否符合该卡所规定的行驶路线。
现采用面向对象方式开发该系统,使用UML进行建模。建立出的用例图和类图分别如图3-1和图3-2所示。
【问题1】(4分)
按照说明中的描述,给出图3-1中U1和U2所对应的用例,以及(1)所对应的关系。
【问题2】(8分)
按照说明中的描述,给出图3-2中缺乏的C1~C6所对应的类名以及(2)~(3)处所对应的多中度(类名使用说明中给出的英语词汇)。
【问题3】(3分)
按照说明中的描述,给出Road、和Card所对应的类的关键属性(属性名使用说明中给出的英语词汇)。
答案解析与讨论:
第5题:阅读下述说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某小型超市内安装了多个简易的厕纸售卖机,手动转让2元钱一包的厕纸,且每次仅售出一包厕纸。厕纸售卖机的状态图如图5-1所示。
采用状态(State)模式来实现该厕纸售卖机,得到如图5-2所示的类图。其中类State为具象类,定义了投币、退币、出手纸等方式插口。类、、和分别对应图5-1中厕纸售卖机的4种状态:售出手纸、纸巾售罄、没有投币、有2元钱。
【C++代码】
#
usingstd;
//以下为类的定义部份
class;//类的提早引用
classState{
:
void()=0;//投币
void()=0;//退币
void()=0;//按下“出手纸”按钮
void()=0;//出手纸
};
/*类、、、的定义省略,每位类中均
定义了私有数据成员*;*/
class{
:
(1)*,*,*,*,*state;
intcount;//手纸数
:
(int);
void(State*state);
State*();
State*();
State*();
State*();
int();
//其余代码省略
};
//以下为类的实现部份
void::(){
->((2));
void::(){
->((3));
void::(){
if(->()>0){
->((4));
else{
->((5));
}//其余代码省略
答案解析与讨论:
第6题:阅读下述说明和JAVA代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某小型超市内安装了多个简易的厕纸售卖机,手动转让2元钱一包的厕纸,且每次仅售出一包厕纸。厕纸售卖机的状态图如图6-1所示。
采用状态(State)模式来实现该厕纸售卖机如图所示出售英文怎么说,得到如图6-2所示的类图。其中类State为具象类,定义了投币、退币、出手纸等方式插口。类、、和分别对应图6-1中厕纸售卖机的4种状态:售出手纸、纸巾售罄、没有投币、有2元钱。
【Java代码】
javA.util.*;
State{
void();//投币
void();//退币
void();//按下“出手纸”按钮
void();//出手纸
class{
(1),,,,state;
state=;
intcount=0;//手纸数
(int){/*实现代码省略*/}
State(){;}
State(){;}
State(){;}
State(){;}
int(){count;}
//其余代码省略
classState{
;
void(){
.((2));
//构造方式以及其余代码省略
classState{
;
void(){
.((3));
//构造方式以及其余代码省略
classState{
;
void(){
if(.()>0){
.((4));
}else{
.((5));}
答案解析与讨论: