托運申請((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));}
答案解析與討論: