2012下半年軟件設(shè)計(jì)師下午真題匯總

軟件設(shè)計(jì)師 責(zé)任編輯:pengying 2017-08-01

添加老師微信

備考咨詢

加我微信

摘要:下面是關(guān)于2012下半年軟件設(shè)計(jì)師下午真題匯總,面對(duì)即將到來(lái)的軟件設(shè)計(jì)師考試我們應(yīng)該心懷這樣的信念:.生命就是奇跡,永遠(yuǎn)都不要放棄希望,哪怕希望渺小如豆,我們都要堅(jiān)持舉著它,即使?fàn)T火灼傷了皮膚,我們也不能放棄,否則我們將永遠(yuǎn)還在黑暗中。

下面是關(guān)于2012下半年軟件設(shè)計(jì)師下午真題匯總,面對(duì)即將到來(lái)的軟件設(shè)計(jì)師考試我們應(yīng)該心懷這樣的信念:.生命就是奇跡,永遠(yuǎn)都不要放棄希望,哪怕希望渺小如豆,我們都要堅(jiān)持舉著它,即使?fàn)T火灼傷了皮膚,我們也不能放棄,否則我們將永遠(yuǎn)還在黑暗中。

2012下半年軟件設(shè)計(jì)師下午真題匯總

【1】● 閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題4,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。

【說(shuō)明】

某電子商務(wù)系統(tǒng)采用以數(shù)據(jù)庫(kù)為中心的集成方式改進(jìn)購(gòu)物車的功能,詳細(xì)需求如下:

(1)加入購(gòu)物車。顧客瀏覽商品,點(diǎn)擊加入購(gòu)物車,根據(jù)商品標(biāo)識(shí)從商品表中讀取商品信息,并更新購(gòu)物車表。

(2)瀏覽購(gòu)物車。顧客提交瀏覽購(gòu)物車請(qǐng)求后,顯示出購(gòu)物車表中的商品信息。

(3)提交訂單。顧客點(diǎn)擊提交訂單請(qǐng)求,后臺(tái)計(jì)算購(gòu)物車表中商品的總價(jià)(包括運(yùn)費(fèi))加入訂單表,將購(gòu)物車表中的商品狀態(tài)改為待付款,顯示訂單詳情。若商家改變價(jià)格,則刷新后可看到更改后的價(jià)格。

(4)改變價(jià)格。商家查看訂購(gòu)自家商品的訂單信息,根據(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)并更改購(gòu)物車表中商品的狀態(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ù)流圖


圖片7.png

 

【問(wèn)題1】 (4分)

使用說(shuō)明中的詞語(yǔ),給出圖1-1中的實(shí)體E1~E4的名稱。

【問(wèn)題2】 (4分)

使用說(shuō)明中的詞語(yǔ),給出圖1-2中的數(shù)據(jù)存儲(chǔ)D1~D4的名稱。

【問(wèn)題】 (4分)

圖1-2中缺失了數(shù)據(jù)流,請(qǐng)用說(shuō)明或圖1-2中的詞語(yǔ),給出其起點(diǎn)和終點(diǎn)。

【問(wèn)題4】(3分)

根據(jù)說(shuō)明,給出數(shù)據(jù)流“轉(zhuǎn)賬請(qǐng)求”、“顧客訂單物流查詢請(qǐng)求”和“商家訂單物流查詢請(qǐng)求”的各組成數(shù)據(jù)項(xiàng)。


【2】● 閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題3。

【說(shuō)明】

某會(huì)議策劃公司為了方便客戶,便于開(kāi)展和管理各項(xiàng)業(yè)務(wù)活動(dòng),需要構(gòu)建一個(gè)基于網(wǎng)絡(luò)的會(huì)議預(yù)定系統(tǒng)。

【需求分析】

1.會(huì)議策劃公司設(shè)有受理部、策劃部和其他部門。部門信息包括部門號(hào)、部門名稱、部門主管、電話和郵箱號(hào)。每個(gè)部門有多名員工處理部門的日常事務(wù),每名員工只能在一個(gè)部門工作。每個(gè)部門有一名主管負(fù)責(zé)管理本部門的事務(wù)和人員。

2.員工信息包括員工號(hào)、姓名、部門號(hào)、職位、聯(lián)系方式和工資;其中,職位包括主管、業(yè)務(wù)員、策劃員等。業(yè)務(wù)員負(fù)責(zé)受理會(huì)議申請(qǐng)。若申請(qǐng)符合公司規(guī)定,則置受理標(biāo)志并填寫業(yè)務(wù)員的員工號(hào)。策劃部主管為已受理的會(huì)議申請(qǐng)制定策劃任務(wù),包括策劃內(nèi)容、參與人數(shù)、要求完成時(shí)間等。一個(gè)已受理的會(huì)議申請(qǐng)對(duì)應(yīng)一個(gè)策劃任務(wù),一個(gè)策劃任務(wù)只對(duì)應(yīng)一個(gè)已受理的會(huì)議申請(qǐng),但—個(gè)策劃任務(wù)可由多名策劃員參與執(zhí)行,且一名策劃員可以參與多項(xiàng)策劃任務(wù)。

3.客戶信息包括客戶號(hào)、單位名稱、通信地址、所屬省份、聯(lián)系人、聯(lián)系電話、銀行賬號(hào)。其中,一個(gè)客戶號(hào)標(biāo)識(shí)一個(gè)客戶。一個(gè)客戶可以提交多個(gè)會(huì)議申請(qǐng),但一個(gè)會(huì)議申請(qǐng)對(duì)應(yīng)一個(gè)客戶號(hào),

4.會(huì)議申請(qǐng)信息包括申請(qǐng)?zhí)?、開(kāi)會(huì)日期、會(huì)議地點(diǎn)、持續(xù)天數(shù)、會(huì)議人數(shù)、預(yù)算費(fèi)用、會(huì)議類型、酒店要求、會(huì)議室要求、客房類型、客房數(shù)、聯(lián)系人、聯(lián)系方式、受理標(biāo)志和業(yè)務(wù)員的員工號(hào)等??头款愋陀泻廊A套房、普通套房、標(biāo)準(zhǔn)間、三人間等,且申請(qǐng)?zhí)柡涂头款愋蜎Q定客房數(shù)。

【概念模型設(shè)計(jì)】

根據(jù)需求階段收集的信息,設(shè)計(jì)的實(shí)體聯(lián)系圖和關(guān)系模式(不完整)如下:



圖片6.png

【關(guān)系模式設(shè)計(jì)】

部門(部門號(hào),部門名稱,主管,電話,郵箱號(hào))

員工(員工號(hào),姓名, (a) ,聯(lián)系方式,工資)

客戶(客戶號(hào),單位名稱,通信地址,所屬省份,聯(lián)系人,聯(lián)系電話,銀行賬號(hào))

會(huì)議申請(qǐng)( (b) ,開(kāi)會(huì)日期,會(huì)議地點(diǎn),持續(xù)天數(shù),會(huì)議人數(shù),預(yù)算費(fèi)用,會(huì)議類型,酒店要求,會(huì)議室要求,客房數(shù),聯(lián)系人,聯(lián)系方式,受理標(biāo)志,員工號(hào))

策劃任務(wù)( (c) ,策劃內(nèi)容,參與人數(shù),要求完成時(shí)間)

執(zhí)行策劃( (d) ,實(shí)際完成時(shí)間)

【問(wèn)題1】(5分)

根據(jù)問(wèn)題描述,補(bǔ)充五個(gè)聯(lián)系、聯(lián)系的類型,完善圖2-1的實(shí)體聯(lián)系圖。

【問(wèn)題2】(7分)

根據(jù)實(shí)體聯(lián)系圖,將關(guān)系模式中的空(a)~(d)補(bǔ)充完整(1個(gè)空缺處可能有多個(gè)數(shù)據(jù)項(xiàng))。對(duì)會(huì)議申請(qǐng)、策劃任務(wù)和執(zhí)行策劃關(guān)系模式,用下劃線和#分別指出各關(guān)系模式的主鍵和外鍵。

【問(wèn)題3】(3分)

請(qǐng)說(shuō)明關(guān)系模式“會(huì)議申請(qǐng)”存在的問(wèn)題及解決方案。

 

3】● 閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。

【說(shuō)明】

某城市的各公園周邊建造了許多供游客租用的小木屋和營(yíng)地,為此,該城市設(shè)置了一個(gè)中心售票處和若干個(gè)區(qū)域售票處。游客若想租用小木屋或營(yíng)地,必須前往中心售票處進(jìn)行預(yù)定并用現(xiàn)金支付全額費(fèi)用。所有的預(yù)定操作全部由售票處的工作人員手工完成。現(xiàn)欲開(kāi)發(fā)一信息系統(tǒng),實(shí)現(xiàn)小木屋和營(yíng)地的預(yù)定及管理功能,以取代手工操作。該系統(tǒng)的

主要功能描述如下:

1.管理預(yù)定申請(qǐng)。游客可以前往任何一個(gè)售票處提出預(yù)定申請(qǐng)。系統(tǒng)對(duì)來(lái)自各個(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)金支付沒(méi)有折扣。

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ū)ο蠓椒ㄩ_(kāi)發(fā)上述系統(tǒng),得到如表3-1所示的用例列表和表3-2所示的類列表。對(duì)應(yīng)的用例圖和類圖分別如圖3-1和3-2所示。


圖片5.png

圖片4.png

圖片3.png

【問(wèn)題1】(6分)

根據(jù)說(shuō)明中的描述與表3-1,給出圖3-1中UC1~UC6處所對(duì)應(yīng)的用例名稱。

【問(wèn)題2】 (7分)

根據(jù)說(shuō)明中的描述與表3-2,給出圖3-2中C1~C7處所對(duì)應(yīng)的類名。

【問(wèn)題3】(2分)

對(duì)于某些需求量非常大的小木屋或營(yíng)地,說(shuō)明中功能4的賠償金計(jì)算規(guī)則,不足以彌補(bǔ)取消預(yù)定所帶來(lái)的損失。如果要根據(jù)預(yù)定的時(shí)段以及所預(yù)定場(chǎng)地的需求量,設(shè)計(jì)不同層次的賠償金計(jì)算規(guī)則,需要對(duì)圖3-2進(jìn)行怎樣的修改?(請(qǐng)用文字說(shuō)明)


【4】● 閱讀下列說(shuō)明和C代碼,回答問(wèn)題1至問(wèn)題3,將解答寫在答題紙的對(duì)應(yīng)欄內(nèi)。

【說(shuō)明】

設(shè)有n個(gè)貨物要裝入若干個(gè)容量為C的集裝箱以便運(yùn)輸,這n個(gè)貨物的體積分別為{S1,S2,...,Sn},且有si≤C(1≤i≤ n)。為節(jié)省運(yùn)輸成本,用盡可能少的集裝箱來(lái)裝運(yùn)這n個(gè)貨物。

下面分別采用最先適宜策略和最優(yōu)適宜策略來(lái)求解該問(wèn)題。

最先適宜策略( firstfit)首先將所有的集裝箱初始化為空,對(duì)于所有貨物,按照所給的次序,每次將一個(gè)貨物裝入第一個(gè)能容納它的集裝箱中。

最優(yōu)適宜策略( bestfit)與最先適宜策略類似,不同的是,總是把貨物裝到能容納它且目前剩余容量最小的集裝箱,使得該箱子裝入貨物后閑置空間最小。

【C代碼】

下面是這兩個(gè)算法的C語(yǔ)言核心代碼。

(1)變量說(shuō)明

n:貨物數(shù)

C:集裝箱容量

s:數(shù)組,長(zhǎng)度為n,其中每個(gè)元素表示貨物的體積,下標(biāo)從0開(kāi)始

b:數(shù)組,長(zhǎng)度為n,b[i]表示第i+1個(gè)集裝箱當(dāng)前已經(jīng)裝入貨物的體積,下標(biāo)從0開(kāi)始

i,j:循環(huán)變量

k:所需的集裝箱數(shù)

min:當(dāng)前所用的各集裝箱裝入了第i個(gè)貨物后的最小剩余容量

m:當(dāng)前所需要的集裝箱數(shù)

temp:臨時(shí)變量

(2)函數(shù)firstfit

int firstfit__(4)__{

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__(5)__ {

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;

}

【問(wèn)題1】(8分)

根據(jù)【說(shuō)明】和【C代碼】,填充C代碼中的空(1)~(4)。

【問(wèn)題2】(4分)

根據(jù)【說(shuō)明】和【C代碼】,該問(wèn)題在最先適宜和最優(yōu)適宜策略下分別采用了(5) 和(6)算法設(shè)計(jì)策略,時(shí)間復(fù)雜度分別為 (7) 和 (8)(用O符號(hào)表示)。

【問(wèn)題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) (能或否)


【5】● 閱讀下列說(shuō)明和C++代碼,將應(yīng)填入(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。

【說(shuō)明】

現(xiàn)欲開(kāi)發(fā)一個(gè)軟件系統(tǒng),要求能夠同時(shí)支持多種不同的數(shù)據(jù)庫(kù),為此采用抽象工廠模式設(shè)計(jì)該系統(tǒng)。以SQL Server和Access兩種數(shù)據(jù)庫(kù)以及系統(tǒng)中的數(shù)據(jù)庫(kù)表Department為例,其類圖如圖5-1所示。



圖片2.png


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();}

∥其余代碼省略

};


【6】● 閱讀下列說(shuō)明和Java代碼,將應(yīng)填入(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。

【說(shuō)明】

現(xiàn)欲開(kāi)發(fā)一個(gè)軟件系統(tǒng),要求能夠同時(shí)支持多種不同的數(shù)據(jù)庫(kù),為此采用抽象工廠模式設(shè)計(jì)該系統(tǒng)。以SQL Server和Access兩種數(shù)據(jù)庫(kù)以及系統(tǒng)中的數(shù)據(jù)庫(kù)表Department為例,其類圖如圖6-1所示。



圖片1.png


6-1 類圖

【Java代碼】

import jav

(6)A.util.*;

class Department{/*代碼省略*/}

interface IDepartment{

(1) ;

(2) ;

}

class SqlserverDepartment (3) {

public voidInsert(Department department){

System.out.println(”Insert a record into Department in SQL Server!");

∥其余代碼省略

}

public Department GetDepartment(int id){

/*代碼省略*/

}

}

classAccessDepartment(4) {

public void Insert(Department department){

System.out.println("Insert a record into Department in ACCESS!”);

∥其余代碼省略

}

public Department GetDepartment(int id){

/*代碼省略*/

}

}

(5) {

(6) ;

}

class SqlServerFactory implements IFactory{

public IDepartment CreateDepartment(){

retum new SqlserverDepartment();

}

∥其余代碼省略

}

class AccessFactory implements IFactory{

public IDepartment CreateDepartment(){

return new AccessDepartment();

}

∥其余代碼省略

}

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

軟考備考資料免費(fèi)領(lǐng)取

去領(lǐng)取

!
咨詢?cè)诰€老師!