第
1題: 閱讀下列說明和圖,回答問題1至問題4,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說明】
某電子商務(wù)系統(tǒng)采用以數(shù)據(jù)庫為中心的集成方式改進(jìn)購物車的功能,詳細(xì)需求如下:
(1)加入購物車。顧客瀏覽商品,點(diǎn)擊加入購物車,根據(jù)商品標(biāo)識(shí)從商品表中讀取商品信息,并更新購物車表。
(2)瀏覽購物車。顧客提交瀏覽購物車請(qǐng)求后,顯示出購物車表中的商品信息。
(3)提交訂單。顧客點(diǎn)擊提交訂單請(qǐng)求,后臺(tái)計(jì)算購物車表中商品的總價(jià)(包括運(yùn)費(fèi))加入訂單表,將購物車表中的商品狀態(tài)改為待付款,顯示訂單詳情。若商家改變價(jià)格,則刷新后可看到更改后的價(jià)格。
(4)改變價(jià)格。商家查看訂購自家商品的訂單信息,根據(jù)特殊優(yōu)惠條件修改價(jià)格,更新訂單表中的商品價(jià)格。
(5)付款。顧客點(diǎn)擊付款后,系統(tǒng)先根據(jù)顧客表中關(guān)聯(lián)的支付賬戶,將轉(zhuǎn)賬請(qǐng)求(驗(yàn)證碼、價(jià)格等)提交給支付系統(tǒng)(如信用卡系統(tǒng))進(jìn)行轉(zhuǎn)賬;然后根據(jù)轉(zhuǎn)賬結(jié)果返回支付狀態(tài)并更改購物車表中商品的狀態(tài)。
(6)物流跟蹤。商家發(fā)貨后,需按訂單標(biāo)識(shí)添加物流標(biāo)識(shí)(物流公司、運(yùn)單號(hào));然后可根據(jù)顧客或商家的標(biāo)識(shí)以及訂單標(biāo)識(shí),查詢訂單表中的物流標(biāo)識(shí),并從相應(yīng)物流系統(tǒng)查詢物流信息。
(7)生成報(bào)表。根據(jù)管理員和商家設(shè)置的報(bào)表選項(xiàng),從訂單表、商品表以及商品分類表中讀取數(shù)據(jù),調(diào)用第三方服務(wù)Crystal Reports生成相關(guān)報(bào)表。
(8)維護(hù)信息。管理員維護(hù)(增、刪、改、查)顧客表、商品分類表和商品表中的信息。
現(xiàn)采用結(jié)構(gòu)化方法實(shí)現(xiàn)上述需求,在系統(tǒng)分析階段得到如圖1-1所示的頂層數(shù)據(jù)流圖和圖1-2所示的O層數(shù)據(jù)流圖。
圖1-1 頂層數(shù)據(jù)流圖

?【問題1】 (4分)
使用說明中的詞語,給出圖1-1中的實(shí)體E1~E4的名稱。
?【問題2】 (4分)
使用說明中的詞語,給出圖1-2中的數(shù)據(jù)存儲(chǔ)D1~D4的名稱。
?【問題】 (4分)
圖1-2中缺失了數(shù)據(jù)流,請(qǐng)用說明或圖1-2中的詞語,給出其起點(diǎn)和終點(diǎn)。
?【問題4】(3分)
根據(jù)說明,給出數(shù)據(jù)流“轉(zhuǎn)賬請(qǐng)求”、“顧客訂單物流查詢請(qǐng)求”和“商家訂單物流查詢請(qǐng)求”的各組成數(shù)據(jù)項(xiàng)。
答案解析與討論:
m.xiexiliangjiufa.com/st/381218181.html第
3題: 閱讀下列說明和圖,回答問題1至問題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說明】
某城市的各國(guó)家公園周邊建造了許多供游客租用的小木屋和營(yíng)地,為此,該城市設(shè)置了一個(gè)中心售票處和若干個(gè)區(qū)域售票處。游客若想租用小木屋或營(yíng)地,必須前往中心售票處進(jìn)行預(yù)定并用現(xiàn)金支付全額費(fèi)用。所有的預(yù)定操作全部由售票處的工作人員手工完成?,F(xiàn)欲開發(fā)一信息系統(tǒng),實(shí)現(xiàn)小木屋和營(yíng)地的預(yù)定及管理功能,以取代手工操作。該系統(tǒng)的
主要功能描述如下:
1.管理預(yù)定申請(qǐng)。游客可以前往任何一個(gè)售票處提出預(yù)定申請(qǐng)。系統(tǒng)對(duì)來自各個(gè)售票處的預(yù)定申請(qǐng)進(jìn)行統(tǒng)一管理。
2.預(yù)定。預(yù)定操作包含登記游客預(yù)定信息、計(jì)算租賃費(fèi)用、付費(fèi)等步驟。
3.支付管理。游客付費(fèi)時(shí)可以選擇現(xiàn)金和信用卡付款兩種方式。使用信用卡支付可以享受3%的折扣,現(xiàn)金支付沒有折扣。
4.游客取消預(yù)定。預(yù)定成功之后,游客可以在任何時(shí)間取消預(yù)定,但需支付賠償金,剩余部分則退還給游客。賠償金的計(jì)算規(guī)則是,在預(yù)定入住時(shí)間之前的48小時(shí)內(nèi)取消,支付租賃費(fèi)用10%的賠償金;在預(yù)定入住時(shí)間之后取消,則支付租賃費(fèi)用50%的賠償金。
5.自動(dòng)取消預(yù)定。如果遇到惡劣天氣(如暴雨、山洪等),系統(tǒng)會(huì)自動(dòng)取消所有的預(yù)定,發(fā)布取消預(yù)定消息,全額退款。
6.信息查詢。售票處工作人員查詢小木屋和營(yíng)地的預(yù)定情況和使用情況,以判斷是否能夠批準(zhǔn)游客的預(yù)定申請(qǐng)。
現(xiàn)采用面向?qū)ο蠓椒ㄩ_發(fā)上述系統(tǒng),得到如表3-1所示的用例列表和表3-2所示的類列表。對(duì)應(yīng)的用例圖和類圖分別如圖3-1和3-2所示。


【問題1】(6分)
根據(jù)說明中的描述與表3-1,給出圖3-1中UC1~UC6處所對(duì)應(yīng)的用例名稱。
【問題2】 (7分)
根據(jù)說明中的描述與表3-2,給出圖3-2中C1~C7處所對(duì)應(yīng)的類名。
【問題3】(2分)
對(duì)于某些需求量非常大的小木屋或營(yíng)地,說明中功能4的賠償金計(jì)算規(guī)則,不足以彌補(bǔ)取消預(yù)定所帶來的損失。如果要根據(jù)預(yù)定的時(shí)段以及所預(yù)定場(chǎng)地的需求量,設(shè)計(jì)不同層次的賠償金計(jì)算規(guī)則,需要對(duì)圖3-2進(jìn)行怎樣的修改?(請(qǐng)用文字說明)
答案解析與討論:
m.xiexiliangjiufa.com/st/3812313805.html第
4題: 閱讀下列說明和C代碼,回答問題1至問題3,將解答寫在答題紙的對(duì)應(yīng)欄內(nèi)。
【說明】
設(shè)有n個(gè)貨物要裝入若干個(gè)容量為C的集裝箱以便運(yùn)輸,這n個(gè)貨物的體積分別為{S1,S2,...,Sn},且有si≤C(1≤i≤ n)。為節(jié)省運(yùn)輸成本,用盡可能少的集裝箱來裝運(yùn)這n個(gè)貨物。
下面分別采用最先適宜策略和最優(yōu)適宜策略來求解該問題。
最先適宜策略( firstfit)首先將所有的集裝箱初始化為空,對(duì)于所有貨物,按照所給的次序,每次將一個(gè)貨物裝入第一個(gè)能容納它的集裝箱中。
最優(yōu)適宜策略( bestfit)與最先適宜策略類似,不同的是,總是把貨物裝到能容納它且目前剩余容量最小的集裝箱,使得該箱子裝入貨物后閑置空間最小。
【C代碼】
下面是這兩個(gè)算法的C語言核心代碼。
(1)變量說明
n:貨物數(shù)
C:集裝箱容量
s:數(shù)組,長(zhǎng)度為n,其中每個(gè)元素表示貨物的體積,下標(biāo)從0開始
b:數(shù)組,長(zhǎng)度為n,b[i]表示第i+1個(gè)集裝箱當(dāng)前已經(jīng)裝入貨物的體積,下標(biāo)從0開始
i,j:循環(huán)變量
k:所需的集裝箱數(shù)
min:當(dāng)前所用的各集裝箱裝入了第i個(gè)貨物后的最小剩余容量
m:當(dāng)前所需要的集裝箱數(shù)
temp:臨時(shí)變量
(2)函數(shù)firstfit
int firstfit(){
inti,j;
k=0:
for(i=0;i
b[i]=0;
}
for(i=0;i
(1);
while(C-b[j]
j++;
}
(2);
k=k>(j+1)?k:(j+1);
}
returnk;
}
(3)函數(shù)bestfit
int bestfit() {
int i,j,min,m,temp;
k=0;
for(i=0;i
b[i]=0;
}
for (i=0;i
min=C;
m=k+l;
for(j=0;j< k+l;j++){
temp=C- b[j] - s[i];
if(temp>0&&temp< min){
(3) ;
m=j,
}
}
(4);
k=k>(m+1)?k:(m+1);
}
return k;
}
【問題1】(8分)
根據(jù)【說明】和【C代碼】,填充C代碼中的空(1)~(4)。
【問題2】(4分)
根據(jù)【說明】和【C代碼】,該問題在最先適宜和最優(yōu)適宜策略下分別采用了(5) 和(6)算法設(shè)計(jì)策略,時(shí)間復(fù)雜度分別為 (7) 和 (8)(用O符號(hào)表示)。
【問題3】(3分)
考慮實(shí)例n= 10,C= 10,各個(gè)貨物的體積為{4,2,7,3,5,4,2,3,6,2}。該實(shí)例在最先適宜和最優(yōu)適宜策略下所需的集裝箱數(shù)分別為(9)和(10)??紤]一般的情況,這兩種求解策略能否確保得到最優(yōu)解?(11) (能或否)
答案解析與討論:
m.xiexiliangjiufa.com/st/3812421463.html第
5題: 閱讀下列說明和C++代碼,將應(yīng)填入(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。
【說明】
現(xiàn)欲開發(fā)一個(gè)軟件系統(tǒng),要求能夠同時(shí)支持多種不同的數(shù)據(jù)庫,為此采用抽象工廠模式設(shè)計(jì)該系統(tǒng)。以SQL Server和Access兩種數(shù)據(jù)庫以及系統(tǒng)中的數(shù)據(jù)庫表Department為例,其類圖如圖5-1所示。

圖5-1 類圖
【C++代碼】
#include
using namespace std;
class Department{/*代碼省略*/};
class IDepartment{
public:
(1) =0;
(2) =0;
};
class SqlserverDepartment:(3){
public:
void Insert(Department* department){
cout <<"Insert a record into Department in SQL Server!\n";
∥其余代碼省略
}
Department GetDepartment(int id){
/*代碼省略*/
}
};
class AccessDepartment: (4) {
public:
void Insert(Department* department){
cout <<"Insert a record into Department in ACCESS!\n";
∥其余代碼省略
}
Department GetDepartment(int id){
/*代碼省略*/
}
};
(5){
public:
(6)=0;
};
class SqlServerFactory:public IFactory{
public:
IDepartment*CreateDepartment(){ return new SqlserverDepartment(); }
∥其余代碼省略
};
class AccessFactory:public IFactory{
public:
IDepartment* CreateDepartment(){ return new AccessDepartment();}
∥其余代碼省略
};
答案解析與討論:
m.xiexiliangjiufa.com/st/3812513063.html