省考軟件設(shè)計(jì)師考試模擬題及答案從業(yè)資格考試測(cè)試題(13)_第1頁(yè)
省考軟件設(shè)計(jì)師考試模擬題及答案從業(yè)資格考試測(cè)試題(13)_第2頁(yè)
省考軟件設(shè)計(jì)師考試模擬題及答案從業(yè)資格考試測(cè)試題(13)_第3頁(yè)
省考軟件設(shè)計(jì)師考試模擬題及答案從業(yè)資格考試測(cè)試題(13)_第4頁(yè)
省考軟件設(shè)計(jì)師考試模擬題及答案從業(yè)資格考試測(cè)試題(13)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 軟件設(shè)計(jì)師考試模擬題及答案-試題一(共15分)閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題4,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。【說(shuō)明】 某巴士維修連鎖公司欲開(kāi)發(fā)巴士維修系統(tǒng),以維護(hù)與維修相關(guān)的信息。該系統(tǒng)的主要功能如下: 1)記錄巴士ID和維修問(wèn)題。巴士到車(chē)庫(kù)進(jìn)行維修,系統(tǒng)將巴士基本信息和ID記錄在巴士列表文件中,將待維修機(jī)械問(wèn)題記錄在維修記錄文件中,并生成維修訂單。 2)確定所需部件。根據(jù)維修訂單確定維修所需部件,并在部件清單中進(jìn)行標(biāo)記。 3)完成維修。機(jī)械師根據(jù)維修記錄文件中的待維修機(jī)械問(wèn)題,完成對(duì)巴士的維修,登記維修情況;將機(jī)械問(wèn)題維修情況記錄在維修記錄文件中,將所用部件記錄在部件清單中,并將所用部

2、件清單發(fā)送給庫(kù)存管理系統(tǒng)以對(duì)部件使用情況進(jìn)行監(jiān)控。巴士司機(jī)可查看已維修機(jī)械問(wèn)題。 4)記錄維修工時(shí)。將機(jī)械師提供的維修工時(shí)記錄在人事檔案中;將維修總結(jié)發(fā)送給主管進(jìn)行績(jī)效考核。 5)計(jì)算維修總成本。計(jì)算部件清單中實(shí)際所用部件、人事檔案中所用維修工時(shí)的總成本;將維修工時(shí)和所用部件成本詳細(xì)信息給會(huì)計(jì)進(jìn)行計(jì)費(fèi)。 現(xiàn)采用結(jié)構(gòu)化方法對(duì)巴士維修系統(tǒng)進(jìn)行分析與設(shè)計(jì),獲得如圖1-1所示的上下文數(shù)據(jù)流圖和圖1-2所示的0層數(shù)據(jù)流圖?!締?wèn)題1】使用說(shuō)明中的詞語(yǔ),給出圖1-1中的實(shí)體E1E5的名稱(chēng)。E1:巴士司機(jī)E2:機(jī)械師E3:會(huì)計(jì)E4:主管E5:庫(kù)存管理系數(shù)【試題解析】本題考查的是DFD的應(yīng)用,屬于比較傳統(tǒng)的題目

3、,考查點(diǎn)也與往年類(lèi)似。本問(wèn)題考查的是頂層DFD。頂層DFD通常用來(lái)確定系統(tǒng)邊界,其中只包含一個(gè)唯一的加工(即待開(kāi)發(fā)的系統(tǒng))、外部實(shí)體以及外部實(shí)體與系統(tǒng)之間的輸入輸出數(shù)據(jù)流。題目要求填充的正是外部實(shí)體。從題干說(shuō)明1)沒(méi)有明確說(shuō)明由巴士到車(chē)庫(kù)后由誰(shuí)提供待維修問(wèn)題,圖1-1中的E1,考察說(shuō)明中3)中最后一句說(shuō)明“巴士司機(jī)可査看已維修機(jī)械問(wèn)題”可以看出,從系統(tǒng)到巴士司機(jī)有輸出數(shù)據(jù)流“已維修機(jī)械問(wèn)題”,可知E1為巴士司機(jī)。從2)中“機(jī)械師根據(jù)維修記錄文件中的待維修機(jī)械問(wèn)題,完成對(duì)巴士的維修,登記維修情況”;再看說(shuō)明4)中機(jī)械師提供維修工時(shí),可以看出,從E2到系統(tǒng)有輸入數(shù)據(jù)流“維修工時(shí)”、輸出數(shù)據(jù)流“待維

4、修機(jī)械問(wèn)題”,可知E2為機(jī)械師,還將維修總結(jié)發(fā)送給主管,即系統(tǒng)到E4 有輸出數(shù)據(jù)流“維系總結(jié)”,可知E4為主管。從說(shuō)明5)將維修工時(shí)和所用部件成本詳細(xì)信息給會(huì)計(jì),從系統(tǒng)到E3有輸出數(shù)據(jù)流“維修工時(shí)和所用部件成本詳細(xì)信息”,可知E3為會(huì)計(jì)。說(shuō)明3)中將所用部件淸單發(fā)送給庫(kù)存管理系統(tǒng)以對(duì)部件使用情況進(jìn)行監(jiān)控,及系統(tǒng)到E5有輸出數(shù)據(jù)流“所用部件清單”,可知E5為庫(kù)存管理系統(tǒng)?!締?wèn)題2】使用說(shuō)明中的詞語(yǔ),給出圖1-2中的數(shù)據(jù)存儲(chǔ)D1D4的名稱(chēng)。D1:巴士列表文件D2:維修記錄文件D3:部件清單D4:人事檔案【試題解析】本問(wèn)題考查0層數(shù)據(jù)流圖中的數(shù)據(jù)存儲(chǔ)。系統(tǒng)中的主要功能與圖1-2中的處理一一對(duì)應(yīng),1)

5、對(duì)應(yīng)處理“ 記錄巴士ID和維修問(wèn)題”,將巴士ID記錄在巴士列表文件中,可知D1為巴士列表文件。說(shuō)明2)對(duì)應(yīng)處理 “ 確定所需部件 ”,將維修所需部件在部件清單中進(jìn)行標(biāo)記,可知以D3為部件清單。說(shuō)明1)中將待維修機(jī)械問(wèn)題記錄在維修記錄文件中,可知D2為維修記錄文件。說(shuō)明4)對(duì)應(yīng)處理“ 記錄維修工時(shí)“,描述了將機(jī)械師提供的維修工時(shí)記錄在人事檔案中,可以判定D4是人事檔案。【問(wèn)題3】說(shuō)明圖1-2中所存在的問(wèn)題。 圖1-2中處理3只有輸出數(shù)據(jù)流,沒(méi)有輸入數(shù)據(jù)流。D2和D3是黑洞,只有輸入的數(shù)據(jù)流,沒(méi)有輸出的數(shù)據(jù)流。父圖與子圖不平衡,圖1-2中沒(méi)有圖1-1中的數(shù)據(jù)流“維 修情況”?!驹囶}分析】本問(wèn)題考查

6、0層數(shù)據(jù)流圖中的數(shù)據(jù)流。分析圖1-2,可以發(fā)現(xiàn),處理3只有輸出數(shù)據(jù)流沒(méi)有輸入數(shù)據(jù)流,D2和D3只有輸入數(shù)據(jù)流,而沒(méi)有輸出流,造成黑洞。另外,對(duì) 照?qǐng)D1-2和圖1-1,發(fā)現(xiàn)圖1-1中從E2輸入的數(shù)據(jù)流維修工時(shí)/維修情況,在圖1-2中只有維修工時(shí),造成父圖與子圖不平衡?!締?wèn)題4】根據(jù)說(shuō)明和圖中術(shù)語(yǔ),采用補(bǔ)充數(shù)據(jù)流的方式,改正圖1-2中的問(wèn)題。要求給出所補(bǔ)充數(shù)據(jù)流的名稱(chēng)、起點(diǎn)和終點(diǎn)。【試題分析】針對(duì)【問(wèn)題3】分析圖1-2中存在的問(wèn)題,題目要求以補(bǔ)充數(shù)據(jù)流的方式解決,進(jìn)一步分析說(shuō)明,說(shuō)明3)對(duì)應(yīng)處理“完成維修”,機(jī)械師根據(jù)維修記錄文件中的待維修機(jī)械問(wèn)題完成對(duì)巴士的維修,可知處理完成維修需要從維修記錄文

7、件讀取待維修問(wèn)題,補(bǔ)充一條從D2到處理3的數(shù)據(jù)流“待維修機(jī)械問(wèn)題”。說(shuō)明5)對(duì)應(yīng)處理“計(jì)算維修總成本”,需要計(jì)算部件淸單中實(shí)際所用部件,補(bǔ)充從部件清單到計(jì)算總成本的數(shù)據(jù)流“實(shí)際所用部件”。說(shuō)明3)中機(jī)械師要登記維修情況,判定圖1-2中缺少了 E2到處理3的數(shù)據(jù)流“維修情況”。到此為止所有缺失的數(shù)據(jù)流都補(bǔ)齊了,也解決了【問(wèn)題3】中的平衡問(wèn)題、處理只有輸出數(shù)據(jù)流沒(méi)有輸入數(shù)據(jù)流的問(wèn)題,D2和D3也既有輸入數(shù)據(jù)流,又有輸出數(shù)據(jù)流。試題二(共15分)閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)?!菊f(shuō)明】某家電銷(xiāo)售電子商務(wù)公司擬開(kāi)發(fā)一套信息管理系統(tǒng),以方便對(duì)公司的員工、家電銷(xiāo)售、家電廠(chǎng)

8、商和客戶(hù)等進(jìn)行管理。【需求分析】 (1)系統(tǒng)需要維護(hù)電子商務(wù)公司的員工信息、客戶(hù)信息、家電信息和家電廠(chǎng)商信息等。員工信息主要包括:工號(hào)、姓名、性別、崗位、身份證號(hào)、電話(huà)、住址,其中崗位包括部門(mén)經(jīng)理和客服等??蛻?hù)信息主要包括:客戶(hù)ID、姓名、身份證號(hào)、電話(huà)、住址、賬戶(hù)余額。家電信息主要包括:家電條碼、家電名稱(chēng)、價(jià)格、出廠(chǎng)日期、所屬?gòu)S商。家電廠(chǎng)商信息包括:廠(chǎng)商ID、廠(chǎng)商名稱(chēng)、電話(huà)、法人代表信息、廠(chǎng)址。 (2)電子商務(wù)公司根據(jù)銷(xiāo)售情況,由部門(mén)經(jīng)理向家電廠(chǎng)商訂購(gòu)各類(lèi)家電。每個(gè)家電廠(chǎng)商只能由一名部門(mén)經(jīng)理負(fù)責(zé)。 (3)客戶(hù)通過(guò)瀏覽電子商務(wù)公司網(wǎng)站查詢(xún)家電信息,與客服溝通獲得優(yōu)惠后,在線(xiàn)購(gòu)買(mǎi)。 【概念模型設(shè)

9、計(jì)】 根據(jù)需求階段收集的信息,設(shè)計(jì)的實(shí)體聯(lián)系圖(不完整)如圖2-1所示?!具壿嫿Y(jié)構(gòu)設(shè)計(jì)】 根據(jù)概念模型設(shè)計(jì)階段完成的實(shí)體聯(lián)系圖,得出如下關(guān)系模式(不完整):客戶(hù)(客戶(hù)ID、姓名、身份證號(hào)、電話(huà)、住址、賬戶(hù)余額)員工(工號(hào)、姓名、性別、崗位、身份證號(hào)、電話(huà)、住址) 家電(家電條碼、家電名稱(chēng)、價(jià)格、出廠(chǎng)日期、 (1) ) 家電廠(chǎng)商(廠(chǎng)商ID、廠(chǎng)商名稱(chēng)、電話(huà)、法人代表信息、廠(chǎng)址、 (2) ) 購(gòu)買(mǎi)(訂購(gòu)單號(hào)、 (3) 、金額) 【問(wèn)題1】補(bǔ)充圖2-1中的聯(lián)系和聯(lián)系的類(lèi)型。 【試題分析】本題考查數(shù)據(jù)庫(kù)設(shè)汁,屬于比較傳統(tǒng)的題目,考查點(diǎn)也與往年類(lèi)似。本問(wèn)題考查數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì),題目要求補(bǔ)充完整實(shí)體聯(lián)系

10、圖中的聯(lián)系和聯(lián)系的類(lèi)型。根據(jù)題目的需求描述可知,一個(gè)家電廠(chǎng)商可以供應(yīng)多臺(tái)家電,而一臺(tái)家電只能對(duì)應(yīng)一個(gè)家電廠(chǎng)商,因此“家電廠(chǎng)商”和“家電”之間存在“供應(yīng)”聯(lián)系,聯(lián)系的類(lèi)型為一對(duì)多(1:*,或 l:m)。根據(jù)題目的需求描述可知,“員工”和“部門(mén)經(jīng)理”之間存在一個(gè)包含關(guān)系。根據(jù)題目的需求描述可知,“客戶(hù)”、“客服”和“家電之間存在“購(gòu)買(mǎi)”聯(lián)系,聯(lián)系的類(lèi)型為多對(duì)多對(duì)多(*:*:*,或m:n:o)?!締?wèn)題2】根據(jù)圖2-1,將邏輯結(jié)構(gòu)設(shè)計(jì)階段生成的關(guān)系模式中的空(1)(3)補(bǔ)充完整。用下劃線(xiàn)指出“家電”、“家電廠(chǎng)商”和“購(gòu)買(mǎi)”關(guān)系模式的主鍵。 【參考答案】(1)廠(chǎng)商ID(2)部門(mén)經(jīng)理工號(hào) 或 經(jīng)理工號(hào) 或

11、 員工工號(hào)(3)家電條碼,客戶(hù)ID,客服工號(hào)【試題分析】本問(wèn)題考查數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)設(shè)計(jì),題目要求補(bǔ)充完整各關(guān)系模式,并給出各關(guān)系模式的主鍵。根據(jù)實(shí)體聯(lián)系圖和需求描述,“家電”和“家電廠(chǎng)商”存在多對(duì)一的關(guān)系,在家電關(guān)系中耑要記錄家電廠(chǎng)商的主鍵,也就是“廠(chǎng)商ID”。所以,對(duì)于“家電”關(guān)系模式,需補(bǔ)充屬性“廠(chǎng)商ID”。“家電條碼”為“家電”關(guān)系的主鍵。根據(jù)實(shí)體聯(lián)系圖和需求描述,“家電廠(chǎng)商”和“部門(mén)經(jīng)理”之間存在多對(duì)一的關(guān)系,在家電廠(chǎng)商關(guān)系中需要記錄部門(mén)經(jīng)理的主鍵,也就是“部門(mén)經(jīng)理工號(hào)”(或“經(jīng)理工號(hào)”、或“員工工號(hào)”)?!皬S(chǎng)商ID”為“家電廠(chǎng)商”的主鍵。根據(jù)實(shí)體聯(lián)系圖和需求描述,“客戶(hù)”、“客服”和

12、“家電”之間的多對(duì)多對(duì)多的“購(gòu)買(mǎi)”聯(lián)系。因?yàn)槭嵌鄬?duì)多對(duì)多聯(lián)系,所以“購(gòu)買(mǎi)”聯(lián)系需要單獨(dú)作為一個(gè)關(guān)系,這個(gè)關(guān)系需要id錄“客戶(hù)”、“客服”和“家電”的主鍵。所以,對(duì)于“購(gòu)買(mǎi)”關(guān)系模式,需補(bǔ)充屬性“客戶(hù)ID” “客服工號(hào)”和“家電條碼”。“訂購(gòu)單號(hào)”為“購(gòu)買(mǎi)”的主鍵?!締?wèn)題3】電子商務(wù)公司的主營(yíng)業(yè)務(wù)是銷(xiāo)售各類(lèi)家電,對(duì)賬戶(hù)有余額的客戶(hù),還可以聯(lián)合第三方基金公司提供理財(cái)服務(wù),為此設(shè)立客戶(hù)經(jīng)理崗位。客戶(hù)通過(guò)電子商務(wù)公司的客戶(hù)經(jīng)理和基金公司的基金經(jīng)理進(jìn)行理財(cái)。每名客戶(hù)只有一名客戶(hù)經(jīng)理和一名基金經(jīng)理負(fù)責(zé),客戶(hù)經(jīng)理和基金經(jīng)理均可負(fù)責(zé)多名客戶(hù)。請(qǐng)根據(jù)該要求,對(duì)圖2-1進(jìn)行修改,畫(huà)出修改后的實(shí)體間聯(lián)系和聯(lián)系的類(lèi)型

13、。【參考答案】【試題分析】本問(wèn)題考查數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì),根據(jù)新増的需求增加實(shí)體聯(lián)系圖中的實(shí)體的聯(lián)系和聯(lián)系的類(lèi)型。根據(jù)問(wèn)題描述,需要新增“客戶(hù)經(jīng)理”,包含于“員工”。根據(jù)問(wèn)題描述,客戶(hù)只由一名客戶(hù)經(jīng)理和一名基金經(jīng)理負(fù)責(zé),客戶(hù)經(jīng)理和基金經(jīng)理均可負(fù)責(zé)多名客戶(hù),所以“客戶(hù)”、“客戶(hù)經(jīng)理”和“基金經(jīng)理”之間存在一個(gè)“理財(cái)”聯(lián)系,聯(lián)系的類(lèi)型為多對(duì)1對(duì)1(*:1:1, 或m:1:1)。試題三(共15分)閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)?!菊f(shuō)明】某高校圖書(shū)館欲建設(shè)一個(gè)圖書(shū)館管理系統(tǒng),目前已經(jīng)完成了需求分析階段的工作。功能需求均使用用例進(jìn)行描述,其中用例“借書(shū)(Check Ou

14、t Books)”的詳細(xì)描述如下。 參與者:讀者(Patron)。典型事件流:1輸入讀者ID; 2確認(rèn)該讀者能夠借閱圖書(shū),并記錄讀者ID; 3輸入所要借閱的圖書(shū)ID; 4根據(jù)圖書(shū)目錄中的圖書(shū)ID確認(rèn)該書(shū)可以借閱,計(jì)算歸還時(shí)間,生成借閱記錄; 5通知讀者圖書(shū)歸還時(shí)間。 重復(fù)步驟3-5,直到讀者結(jié)束借閱圖書(shū)。 備選事件流: 2a.若讀者不能借閱圖書(shū),說(shuō)明讀者違反了圖書(shū)館的借書(shū)制度(例如,沒(méi)有支付借書(shū)費(fèi)用等) 告知讀者不能借閱,并說(shuō)明拒絕借閱的原因;本用例結(jié)束。 4a.讀者要借閱的書(shū)無(wú)法外借 告知讀者本書(shū)無(wú)法借閱; 回到步驟3。 說(shuō)明:圖書(shū)的歸還時(shí)間與讀者的身份有關(guān)。如果讀者是教師,圖書(shū)可以借閱一年

15、;如果是學(xué)生,則只能借閱3個(gè)月。讀者ID中包含讀者身份信息。 現(xiàn)采用面向?qū)ο蠓椒ㄩ_(kāi)發(fā)該系統(tǒng),得到如圖3-1所示的系統(tǒng)類(lèi)模型(部分);以及如圖3-2所示的系統(tǒng)操作“checkOut(bookID)(借書(shū))”的通信圖(或協(xié)作圖)。 【問(wèn)題1】根據(jù)說(shuō)明中的描述,以及圖3-1和圖3-2,給出圖3-1中C1C4處所對(duì)應(yīng)的類(lèi)名(類(lèi)名使用圖3-1和圖3-2中給出的英文詞匯)?!緟⒖即鸢浮緾1:PatronC2:BookC3:CatalogC4:Check out Session controller【試題分析】本題屬于經(jīng)典的考題,主要考查面向?qū)ο蠓治龇椒ㄒ约癠ML類(lèi)圖和通信圖的相關(guān)知識(shí)。說(shuō)明中給出了一個(gè)具體

16、用例的詳細(xì)描述,給出了其中的一個(gè)系統(tǒng)操作“checkout bookID)(借書(shū))”的通信圖,需要考生利用通信圖中的信息來(lái)補(bǔ)充類(lèi)圖中缺失的部分。 通信圖(communication diagram)強(qiáng)調(diào)收發(fā)消息的對(duì)象的結(jié)構(gòu)組織,在早期的版本中也被稱(chēng)作協(xié)作圖。通信圖強(qiáng)調(diào)參加交互的對(duì)象的組織。產(chǎn)生一張通信圖,首先要將參加交互的對(duì)象作為圖的頂點(diǎn),然后把連接這些對(duì)象的鏈表示為閣的弧,最后用對(duì)象發(fā)送和接收的消息來(lái)修飾這些鏈。這就提供了在協(xié)作對(duì)象的結(jié)構(gòu)組織的語(yǔ)境中觀(guān)察控制流的一個(gè)清晰的可視化軌跡。消息checkOut(booklD)的接收者是類(lèi)CheckoutSessionContrailer的對(duì)象,說(shuō)明

17、類(lèi)CheckoutSessionController中應(yīng)該包含這一方法,否則無(wú)法響應(yīng)該條消息。由圖3-1可知,C4 處所代表的類(lèi)應(yīng)該是CheckoutSessionController。消息find(booklD)的接收者是類(lèi)Book,同理,由圖3-1可知,C2處對(duì)應(yīng)的類(lèi)應(yīng)該是Book。根據(jù)用例描述,圖書(shū)信息是包含在圖書(shū)目錄中,所以C3處對(duì)應(yīng)的類(lèi)應(yīng)該是Catalog, C1處對(duì)應(yīng)的就應(yīng)該是Patron了。 【問(wèn)題2】根據(jù)說(shuō)明中的描述,以及圖3-1和圖3-2,給出圖3-2中M1M4處所對(duì)應(yīng)的方法名(方法名使用圖3-1和圖3-2中給出的英文詞匯)。 【參考答案】M1:getforcheckoutM

18、2:isFacultyM3:circulatesM4:recordBookLoan【試題分析】圖3-1填充完整之后,圖3-2的空缺就比較容易填寫(xiě)了。在通信圖中,對(duì)象之間傳遞的消息就對(duì)應(yīng)著接收對(duì)象中的方法。M1對(duì)應(yīng)的就是類(lèi)Catalog中的方法,由圖3-1可 知,M1對(duì)應(yīng)的是getForCheckOut。M3對(duì)應(yīng)的應(yīng)該是類(lèi)Book中的方法。由圖3-1可知,Book中有3個(gè)方法,find和checkout已經(jīng)出現(xiàn)在通信圖上了,所以M3應(yīng)該是circulates。M2和M4是類(lèi)Patron中的方法。Patron中有2個(gè)方法。通信圖中的消息是有序號(hào)的,這個(gè)序號(hào)表示了消息的時(shí)間順序,也就是說(shuō)發(fā)送M2的時(shí)

19、間要早于消息M4,因此必須區(qū)分類(lèi)Patron中兩個(gè)方法使用的先后順序。在用例描述中特別指出:圖書(shū)的歸還時(shí)間與讀者的身份有關(guān)。計(jì)算還書(shū)及借書(shū)費(fèi)用時(shí),需先確定讀者的身份,因此方法isFaculty 應(yīng)該先被調(diào)用,所以M2對(duì)應(yīng)isFaculty,M4對(duì)應(yīng)recordBookLoan?!締?wèn)題3】用例“借書(shū)”的備選事件流4a中,根據(jù)借書(shū)制度來(lái)判定讀者能否借閱圖書(shū)。若圖書(shū)館的借書(shū)制度會(huì)不斷地?cái)U(kuò)充,并需要根據(jù)圖書(shū)館的實(shí)際運(yùn)行情況來(lái)調(diào)整具體使用哪些制度。為滿(mǎn)足這一要求,在原有類(lèi)設(shè)計(jì)的基礎(chǔ)上,可以采用何種設(shè)計(jì)模式?簡(jiǎn)要說(shuō)明原因?!緟⒖即鸢浮坎呗阅J讲呗阅J蕉x了一系列算法,并將每個(gè)算法封裝起來(lái),而且使它們可以相

20、互替換。 策略模式讓算法獨(dú)立于使用它們的客戶(hù)而變化。適用于需要在不同情況下使用不同的策略(算法),或者策略還可能在未來(lái)用其他方式來(lái)實(shí)現(xiàn)?!驹囶}解析】本題在設(shè)計(jì)類(lèi)時(shí)使用到了策略模式。策略模式定義了一系列的算法,把它們一個(gè)個(gè)封裝起來(lái),并且使它們可以相互替換。此模式使得算法可以獨(dú)立于使用它們的客戶(hù)而變化。策略模式的結(jié)構(gòu)如下圖所示。其中: Strategy (策略)定義所有支持的算法的公共接口。Context使用這個(gè)接口來(lái)調(diào)用某ConcreteStrategy定義的算法。 ConcreteStrategy (具體策略)以Strategy接口實(shí)現(xiàn)某具體算法。 Context (上下文)用一個(gè)Concre

21、teStrategy對(duì)象來(lái)配置;維護(hù)一個(gè)對(duì)Strategy對(duì)象的引用;可定義一個(gè)接口來(lái)讓Strategy訪(fǎng)問(wèn)它的數(shù)據(jù)。Strategy模式適用于:許多相關(guān)的類(lèi)僅僅是行為有異?!安呗浴碧峁┝艘环N用多個(gè)行為中的一個(gè)行為來(lái)配置一個(gè)類(lèi)的方法。需要使用一個(gè)算法的不同變體。例如,定義一些反應(yīng)不同空間的空間/時(shí)間權(quán)衡的算法。當(dāng)這些變體實(shí)現(xiàn)為一個(gè)算法的類(lèi)層次時(shí),可以使用策略模式。算法使用客戶(hù)不應(yīng)該知道的數(shù)據(jù)??墒褂貌呗阅J揭员苊獗┞稄?fù)雜的、與算法相關(guān)的數(shù)據(jù)結(jié)構(gòu)。 一個(gè)類(lèi)定義了多種行為,并且這些行為在這個(gè)類(lèi)的操作中以多個(gè)條件語(yǔ)句的形式出現(xiàn),將相關(guān)的條件分支移入它們各自的Strategy類(lèi)中,以代替這些條件語(yǔ)句。

22、試題四(共15分)閱讀下列說(shuō)明和C代碼,回答問(wèn)題1至問(wèn)題3,將解答寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。【說(shuō)明】采用歸并排序?qū)個(gè)元素進(jìn)行遞增排序時(shí),首先將n個(gè)元素的數(shù)組分成各含n/2個(gè)元素的兩個(gè)子數(shù)組,然后用歸并排序?qū)蓚€(gè)子數(shù)組進(jìn)行遞歸排序,最后合并兩個(gè)已經(jīng)排好序的子數(shù)組得到排序結(jié)果。 下面的C代碼是對(duì)上述歸并算法的實(shí)現(xiàn),其中的常量和變量說(shuō)明如下:arr:待排序數(shù)組 p,q,r:一個(gè)子數(shù)組的位置為從p到q,另一個(gè)子數(shù)組的位置為從q+l到r begin,end:待排序數(shù)組的起止位置 left,right:臨時(shí)存放待合并的兩個(gè)子數(shù)組 n1,n2:兩個(gè)子數(shù)組的長(zhǎng)度i,j,k:循環(huán)變量 mid:臨時(shí)變量 【問(wèn)題1】

23、根據(jù)以上說(shuō)明和C代碼,填充C代碼中的空(1)(4)。 【參考答案】1)kr 或 kr+12)arrk=rightj3) beginend4)mergeSort(arr,mid+1,end)【試題分析】本題考査算法設(shè)計(jì)、分析和C程序?qū)崿F(xiàn)的知識(shí),屬于傳統(tǒng)題目,考查點(diǎn)也與往年類(lèi)似。歸并排序是一種經(jīng)典的排序算法,基本思想:把n個(gè)元素構(gòu)成的數(shù)組分成兩個(gè)n/2 個(gè)元素構(gòu)成的子數(shù)組,再進(jìn)一步劃分,一直到每個(gè)子數(shù)組僅包含1個(gè)元素,此時(shí)再把兩 兩有序的數(shù)組合并成更大的有序數(shù)組,一直到整個(gè)數(shù)組有序?yàn)橹?。本?wèn)題考査算法的實(shí)現(xiàn)。C程序中有兩個(gè)函數(shù),merge函數(shù)將兩個(gè)有序數(shù)組合并成一個(gè)更大的有序數(shù)組。歸并過(guò)程是首先將

24、兩個(gè)有序的子數(shù)組的元素分別放到left和right 數(shù)組中,然后依次比較這兩個(gè)數(shù)組中的元素,從小到大把元素放到arr數(shù)組的特定元素中。包含空格(1)的for循環(huán)中,給出了將left和right元素放入arr中,放入的位置是從p到r,因此,空格(1)填寫(xiě)k rightj, 則應(yīng)該把rightj的值放入arrk中,因此空格(2)填寫(xiě)arrk = rightj。mergeSort函數(shù)進(jìn)行數(shù)組的排序。若數(shù)組元素個(gè)數(shù)大于1,則繼續(xù)劃分,因此空格(3)填寫(xiě)begin update(temperature, humidity, cleanness)。方法measurementsChanged表示主題發(fā)生了變

25、化,這時(shí)應(yīng)該通知對(duì)應(yīng)的觀(guān)察者,所以空(3)處應(yīng)填寫(xiě)notifyObservers()。方法setMeasurements用于設(shè)置發(fā)生變化后的主題內(nèi)容,所以空(4)處應(yīng)填寫(xiě)measurementsChanged()。CurrentConditionsDisplay是對(duì)主題EnvironmentData感興趣的一個(gè)觀(guān)察者,要能夠獲得主題的變化,需要首先將自己注冊(cè)為該主題的觀(guān)察者,這個(gè)注冊(cè)行為在其構(gòu)造函數(shù)中完成。因此空(6)處應(yīng)填寫(xiě)envData-registerObserver(this)。 試題六(共15分)【說(shuō)明】某實(shí)驗(yàn)室欲建立一個(gè)實(shí)驗(yàn)室環(huán)境監(jiān)測(cè)系統(tǒng),能夠顯示實(shí)驗(yàn)室的溫度、濕度以及潔凈度等環(huán)境

26、數(shù)據(jù)。當(dāng)獲取到敁新的環(huán)境測(cè)量數(shù)據(jù)時(shí),顯示的環(huán)境數(shù)據(jù)能夠更新?,F(xiàn)在采用觀(guān)察者(Observer)模式來(lái)開(kāi)發(fā)該系統(tǒng)。觀(guān)察者模式的類(lèi)圖如圖6-1所示?!締?wèn)題1】閱讀下列說(shuō)明和Java代碼,將座填入(n)處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。【參考答案】(1) Subject(2) observer.update(temperature, humidity, cleanness)(3) notifyObservers()(4) measurementsChanged()(5) Observer(6) envData.registerObserver(this)【試題分析】本題考查觀(guān)察者(Observer)模式

27、的概念及應(yīng)用。觀(guān)察者模式定義對(duì)象間的一種一對(duì)多的依賴(lài)關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴(lài)于它的對(duì)象都得到通知并被自動(dòng)更新。Observer模式適用于:當(dāng)一個(gè)抽象模型有兩個(gè)方面,其中一個(gè)方面依賴(lài)于另一個(gè)方面。將這兩者封裝在獨(dú)立的對(duì)象中以使它們可以各自獨(dú)立地改變和復(fù)用。當(dāng)對(duì)一個(gè)對(duì)象的改變需要同時(shí)改變其他對(duì)象,而不知道具體有多少對(duì)象有待改變時(shí)。當(dāng)一個(gè)對(duì)象必須通知其他對(duì)象,而它又不能假定其他對(duì)象是誰(shuí),即:不希望這些對(duì)象是緊耦合的。觀(guān)察者模式的結(jié)構(gòu)如下圖所示,其中:Subject (主題)知道它的觀(guān)察者,可以有任意多個(gè)觀(guān)察者觀(guān)察同一個(gè)目標(biāo);提供注冊(cè)和刪除觀(guān)察者對(duì)象的接口。Observer (觀(guān)察者)為那些在目標(biāo)發(fā)生改變時(shí)需獲得通知的對(duì)象定義一個(gè)更新接口。ConcreteSubject (具體主題)將有關(guān)狀態(tài)存入一個(gè)ConcreteO

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論