2014年下半年(下午)《軟件設(shè)計(jì)師》真題

上傳人:住在山****ck 文檔編號(hào):81308921 上傳時(shí)間:2022-04-26 格式:DOCX 頁(yè)數(shù):7 大?。?53.33KB
收藏 版權(quán)申訴 舉報(bào) 下載
2014年下半年(下午)《軟件設(shè)計(jì)師》真題_第1頁(yè)
第1頁(yè) / 共7頁(yè)
2014年下半年(下午)《軟件設(shè)計(jì)師》真題_第2頁(yè)
第2頁(yè) / 共7頁(yè)
2014年下半年(下午)《軟件設(shè)計(jì)師》真題_第3頁(yè)
第3頁(yè) / 共7頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《2014年下半年(下午)《軟件設(shè)計(jì)師》真題》由會(huì)員分享,可在線閱讀,更多相關(guān)《2014年下半年(下午)《軟件設(shè)計(jì)師》真題(7頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、2014年下半年(下午)《軟件設(shè)計(jì)師》真題 注意:圖片可根據(jù)實(shí)際需要調(diào)整大小 卷面總分:6分 答題時(shí)間:240分鐘 試卷題量:6題 練習(xí)次數(shù):0次 問(wèn)答題 (共6題,共6分) 1.某燈具廠商欲生產(chǎn)一個(gè)燈具遙控器,該遙控器具有7個(gè)可編程的插槽,每個(gè)插槽都有開(kāi)關(guān)按鈕,對(duì)應(yīng)著一個(gè)不同的燈。利用該遙控器能夠統(tǒng)一控制房間中該廠商所有品牌燈具的開(kāi)關(guān),現(xiàn)采用Command(命令)模式實(shí)現(xiàn)該遙控器的軟件部分。Command模式的類(lèi)圖如圖5-1所示。 【C++代碼】 class Light{ public: L

2、ight(string name){/*代碼省略*/} void on( ?。﹞/*代碼省略*/}//開(kāi)燈 void off( ?。﹞/*代碼省略*/}//關(guān)燈 }; class Command{ public: (1); }; class LightOnCommand:public Command{//開(kāi)燈命令 private: Light*light; public: LightOnCommand(Light*light){this->light=light;} void execute( ?。﹞(2);} }; class LightOffCommand:p

3、ublic Command{//關(guān)燈命令 private: Light*light; public: LightOffCommand(Light*light){this->light=light;} void execute(  ){(3);} }; class RemoteControl{//遙控器 private: Command*onCommands[7]; Command*offCommands[7]; public: RemoteControl( ?。﹞/*代碼省略*/} void setCommand(int slot,Command*onCommand,

4、Command*offCommand){ (4)=onCommand; (5)=offCommand; } void onButtonWasPushed(int slot){(6);} void offButtonWasPushed(int slot){(7);} }; int main(  ){ RemoteControl*remoteControl=new RemoteControl( ?。? Light*livingRoomLight=new Light("Living Room"); Light*kitchenLight=new Light("kitchen");

5、 LightOnCommand*livingRoomLightOn=new LightOnCommand(livingRoomLight); LightOffCommand*livingRoomLightOff=newLightOffCommand(livingRoomLight); LightOnCommand*kitchenLightOn=new LightOnCommand(kitchenLight); LightOffCommand*kitchenLightOff=new LightOffCommand(kitchenLight); remoteControl->setComm

6、and(0,livingRoomLightOn,livingRoomLightOff); remoteControl->setCommand(1,kitchenLightOn,kitchenLightOff); remoteControl->onButtonWasPushed(0); remoteControl->offButtonWasPushed(0); remoteControl->onButtonWasPushed(1); remoteControl->offButtonWasPushed(1); /*其余代碼省略*/ return 0; }

7、 正確答案: 本題解析: (1)virtual void execute()=0 (2)light->on() (3)light->off() (4)onCommands[slot] (5)offCommands[slot] (6)onCommands[slot]->execute() (7)offCommands[slot]->execute() 本題考查設(shè)計(jì)模式的實(shí)現(xiàn),難度較小。根據(jù)類(lèi)圖和已有代碼可寫(xiě)出空缺的代碼,書(shū)寫(xiě)方式注意java和C++的區(qū)別即可。 Command類(lèi)為所有的命令聲明了一個(gè)接口,因此需要一個(gè)

8、純虛函數(shù),這個(gè)函數(shù)根據(jù)下面的子類(lèi)可以看到,應(yīng)該為execute(),因此第一空填寫(xiě)virtual void execute()=0; (2)和(3)定義了開(kāi)燈、關(guān)燈action,因此,分別填寫(xiě)(2)light->on()(3)light->off(); (4)(5)分別設(shè)置“開(kāi)燈”命令對(duì)象、“關(guān)燈”命令對(duì)象,因此分別填寫(xiě)(4)onCommands[slot](5)offCommands[slot]; (6)(7)分別完成對(duì)開(kāi)燈、關(guān)燈命令對(duì)象的execute方法的調(diào)用,因此分別填寫(xiě)(6)onCommands[slot]->execute() (7)offCommands[slot]->e

9、xecute()。 2.某大型披薩加工和銷(xiāo)售商為了有效管理生產(chǎn)和銷(xiāo)售情況,欲開(kāi)發(fā)一披薩信息系統(tǒng),其主要功能如下: (1)銷(xiāo)售。處理客戶(hù)的訂單信息,生成銷(xiāo)售訂單,并將其記錄在銷(xiāo)售訂單表中。銷(xiāo)售訂單記錄了訂購(gòu)者、所訂購(gòu)的披薩、期望的交付日期等信息。 (2)生產(chǎn)控制。根據(jù)銷(xiāo)售訂單以及庫(kù)存的披薩數(shù)量,制定披薩生產(chǎn)計(jì)劃(包括生產(chǎn)哪些披薩、生產(chǎn)順序和生產(chǎn)量等),并將其保存在生產(chǎn)計(jì)劃表中。 (3)生產(chǎn)。根據(jù)生產(chǎn)計(jì)劃和配方表中的披薩配方,向庫(kù)存發(fā)出原材料申領(lǐng)單,將制作好的披薩的信息存入庫(kù)存表中,以便及時(shí)進(jìn)行交付。 (4)采購(gòu)。根據(jù)所需原材料及庫(kù)存量,確定采購(gòu)數(shù)量,向供應(yīng)

10、商發(fā)送采購(gòu)訂單,并將其記錄在采購(gòu)訂單表中;得到供應(yīng)商的供應(yīng)量,將原材料數(shù)量記錄在庫(kù)存表中,在采購(gòu)訂單表中標(biāo)記已完成采購(gòu)的訂單。 (5)運(yùn)送。根據(jù)銷(xiāo)售訂單將披薩交付給客戶(hù),并記錄在交付記錄表中。 (6)財(cái)務(wù)管理。在披薩交付后,為客戶(hù)開(kāi)具費(fèi)用清單,收款并出具收據(jù);依據(jù)完成的采購(gòu)訂單給供應(yīng)商支付原材料費(fèi)用并出具支付細(xì)節(jié);將收款和支付記錄存入收支記錄表中。 (7)存儲(chǔ)。檢查庫(kù)存的原材料、拔薩和未完成訂單,確定所需原材料。 現(xiàn)采用結(jié)構(gòu)化方法對(duì)披薩信息系統(tǒng)進(jìn)行分析與設(shè)計(jì),獲得如圖1-1所示的上下文數(shù)據(jù)流圖和圖1-2所示的0層數(shù)據(jù)流圖。 圖1-1上下文數(shù)據(jù)流圖 圖1-2 0層數(shù)據(jù)流圖

11、【問(wèn)題1】(4分) 根據(jù)說(shuō)明中的詞語(yǔ),給出圖1-1中的實(shí)體E1~E2的名稱(chēng)。 【問(wèn)題2】(5分) 根據(jù)說(shuō)明中的詞語(yǔ),給出圖1-2中的數(shù)據(jù)存儲(chǔ)D1~D5的名稱(chēng)。 【問(wèn)題3】(6分) 根據(jù)說(shuō)明和圖中詞語(yǔ),補(bǔ)充圖1-2中缺失的數(shù)據(jù)流及其起點(diǎn)和終點(diǎn)。 正確答案: 本題解析: 【問(wèn)題1】 E1:客戶(hù);E2:供應(yīng)商 【問(wèn)題2】 D1:銷(xiāo)售訂單表;D2:庫(kù)存表;D3:生產(chǎn)計(jì)劃表;D4:配方表;D5:采購(gòu)訂單表 【問(wèn)題3】 本題考查數(shù)據(jù)流圖(DFD)應(yīng)用于采用結(jié)構(gòu)化方法進(jìn)行系統(tǒng)分析與設(shè)計(jì),是比較

12、傳統(tǒng)的題目,要求考生細(xì)心分析題目中所描述的內(nèi)容。 DFD是一種便于用戶(hù)理解、分析系統(tǒng)數(shù)據(jù)流程的圖形化建模工具,是系統(tǒng)邏輯模型的重要組成部分。 【問(wèn)題1】 本問(wèn)題考查上下文數(shù)據(jù)流圖。上下文數(shù)據(jù)流圖一般用來(lái)建立初始的項(xiàng)目范圍的,將待開(kāi)發(fā)系統(tǒng)看作一個(gè)加工,因此圖中只有唯一的一個(gè)處理和一些外部實(shí)體,以及這兩者之間的輸入輸出數(shù)據(jù)流。題目要求根據(jù)描述來(lái)確定圖中的外部實(shí)體。分析題目中的描述,并結(jié)合已經(jīng)在上下文數(shù)據(jù)流圖中給出的數(shù)據(jù)流進(jìn)行分析。從中可以看出,與系統(tǒng)的交互者包括客戶(hù)和供應(yīng)商。其中,客戶(hù)下訂單,將訂單信息交付給系統(tǒng),系統(tǒng)向供應(yīng)商發(fā)送采購(gòu)訂單,可知E1為客戶(hù),E2為供應(yīng)商。 【問(wèn)題2】 本問(wèn)

13、題考查0層DFD中數(shù)據(jù)存儲(chǔ)的確定。根據(jù)說(shuō)明中描述和圖中數(shù)據(jù)流內(nèi)容: (1)銷(xiāo)售。處理客戶(hù)的訂單信息,生成銷(xiāo)售訂單,并將其記錄在銷(xiāo)售訂單表中。銷(xiāo)售訂單記錄了訂購(gòu)者、所訂購(gòu)的披薩、期望的交付日期等信息,因此D1是銷(xiāo)售訂單表; (2)生產(chǎn)控制。根據(jù)銷(xiāo)售訂單以及庫(kù)存的披薩數(shù)量,制定披薩生產(chǎn)計(jì)劃(包括生產(chǎn)哪些披薩、生產(chǎn)順序和生產(chǎn)量等),并將其保存在生產(chǎn)計(jì)劃表中,因此D3為生產(chǎn)計(jì)劃表; (3)生產(chǎn)。根據(jù)生產(chǎn)計(jì)劃和配方表中的披薩配方,向庫(kù)存發(fā)出原材料申領(lǐng)單,將制作好的披薩的信息存入庫(kù)存表中,以便及時(shí)進(jìn)行交付,因此D2為庫(kù)存表,D4為配方表; (4)采購(gòu)。根據(jù)所需原材料及庫(kù)存量,確定采購(gòu)數(shù)量,向供應(yīng)商

14、發(fā)送采購(gòu)訂單,并將其記錄在采購(gòu)訂單表中;得到供應(yīng)商的供應(yīng)量,將原材料數(shù)量記錄在庫(kù)存表中,在采購(gòu)訂單表中標(biāo)記已完成采購(gòu)的訂單,因此D5為采購(gòu)訂單表。 【問(wèn)題3】 本問(wèn)題考查0層DFD中缺失的處理和數(shù)據(jù)流。從說(shuō)明中的描述和圖1-2可知,財(cái)務(wù)管理需依據(jù)完成的采購(gòu)訂單給供應(yīng)商支付原材料費(fèi)用并出具支付細(xì)節(jié);運(yùn)送的主要作用為根據(jù)銷(xiāo)售訂單將披薩交付給客戶(hù),并記錄在交付記錄表中;生產(chǎn)計(jì)劃按生產(chǎn)計(jì)劃表進(jìn)行生產(chǎn);庫(kù)存表傳輸庫(kù)存量進(jìn)行采購(gòu);采購(gòu)?fù)陚鬏斣牧蠑?shù)量給庫(kù)存表;銷(xiāo)售訂單表存儲(chǔ)未完成訂單。 3.某集團(tuán)公司在全國(guó)不同城市擁有多個(gè)大型超市,為了有效管理各個(gè)超市的業(yè)務(wù)工作,需要構(gòu)

15、建一個(gè)超市信息管理系統(tǒng)。 【需求分析結(jié)果】 (1)超市信息包括:超市名稱(chēng)、地址、經(jīng)理和電話,其中超市名稱(chēng)唯一確定超市關(guān)系的每一個(gè)元組。每個(gè)超市只有一名經(jīng)理。 (2)超市設(shè)有計(jì)劃部、財(cái)務(wù)部、銷(xiāo)售部等多個(gè)部門(mén),每個(gè)部門(mén)只有一名部門(mén)經(jīng)理,有多名員工,每個(gè)員工只屬于一個(gè)部門(mén)。部門(mén)信息包括:超市名稱(chēng)、部門(mén)名稱(chēng)、部門(mén)經(jīng)理和聯(lián)系電話。超市名稱(chēng)、部門(mén)名稱(chēng)唯一確定部門(mén)關(guān)系的每一個(gè)元組。 (3)員工信息包括:?jiǎn)T工號(hào)、姓名、超市名稱(chēng)、部門(mén)名稱(chēng)、職位、聯(lián)系方式和工資。其中,職位信息包括:經(jīng)理、部門(mén)經(jīng)理、業(yè)務(wù)員等。員工號(hào)唯一確定員工關(guān)系的每一個(gè)元組。 (4)商品信息包括:商品號(hào)、商品名稱(chēng)、型號(hào)、單價(jià)和數(shù)量。商

16、品號(hào)唯一確定商品關(guān)系的每一個(gè)元組。一名業(yè)務(wù)員可以負(fù)責(zé)超市內(nèi)多種商品的配給,一種商品可以由多名業(yè)務(wù)員配給。 【概念模型設(shè)計(jì)】 根據(jù)需求分析階段收集的信息,設(shè)計(jì)的實(shí)體聯(lián)系圖和關(guān)系模式(不完整)如下: 圖2-1實(shí)體聯(lián)系圖 【關(guān)系模式設(shè)計(jì)】 超市(超市名稱(chēng),經(jīng)理,地址,電話) 部門(mén)((a),部門(mén)經(jīng)理,聯(lián)系電話) 員工((b),姓名,聯(lián)系方式,職位,工資) 商品(商品號(hào),商品名稱(chēng),型號(hào),單價(jià),數(shù)量) 配給((c),配給時(shí)間,配給數(shù)量,業(yè)務(wù)員) 【問(wèn)題1】(4分) 根據(jù)問(wèn)題描述,補(bǔ)充四個(gè)聯(lián)系,完善圖1-1的實(shí)體聯(lián)系圖。聯(lián)系名可用聯(lián)系1、聯(lián)系2、聯(lián)系3和聯(lián)系4代替,聯(lián)系的類(lèi)型分為1

17、:1、1:n和m:n(或1:1、1:*和*:*)。 【問(wèn)題2】(7分) (1)根據(jù)實(shí)體聯(lián)系圖,將關(guān)系模式中的空(a)~(c)補(bǔ)充完整; (2)給出部門(mén)和配給關(guān)系模式的主鍵和外鍵。 【問(wèn)題3】(4分) (1)超市關(guān)系的地址可以進(jìn)一步分為郵編、省、市、街道,那么該屬性是屬于簡(jiǎn)單屬性還是復(fù)合屬性?請(qǐng)用100字以?xún)?nèi)文字說(shuō)明。 (2)假設(shè)超市需要增設(shè)一個(gè)經(jīng)理的職位,那么超市與經(jīng)理之間的聯(lián)系類(lèi)型應(yīng)修改為(d),超市關(guān)系應(yīng)修改為(e)。 正確答案: 本題解析: 【問(wèn)題1】 【問(wèn)題2】 (a)超市名

18、稱(chēng),部門(mén)名稱(chēng)主鍵:(超市名稱(chēng),部門(mén)名稱(chēng))外鍵:超市名稱(chēng),部門(mén)經(jīng)理 (b)員工號(hào),超市名稱(chēng),部門(mén)名稱(chēng) (c)商品號(hào)主鍵:(商品號(hào),業(yè)務(wù)員,配給時(shí)間)外鍵:業(yè)務(wù)員,商品號(hào) 【問(wèn)題3】 (1)超市關(guān)系中的地址屬于復(fù)合屬性。所謂復(fù)合屬性就是指屬性中含有多種信息,可以進(jìn)一步拆分的屬性,地址可以拆分成多個(gè)簡(jiǎn)單屬性,符合這一特征。 (2)(d)1:n(e)超市名稱(chēng),經(jīng)理,電話 注:本題問(wèn)題(e)并不嚴(yán)謹(jǐn),針對(duì)(1)地址屬于復(fù)合屬性,超市關(guān)系應(yīng)修改為(超市名稱(chēng),經(jīng)理,電話),其中超市名稱(chēng)和經(jīng)理作為組合主鍵,另外新增地址關(guān)系模式。 針對(duì)(2)假設(shè)超市與經(jīng)理1:m的聯(lián)系,也可以將聯(lián)系歸并到經(jīng)理端,即

19、超市關(guān)系修改為(超市名稱(chēng),地址,電話),另外新增經(jīng)理關(guān)系模式。 本題考查數(shù)據(jù)庫(kù)設(shè)計(jì),屬于比較傳統(tǒng)的題目,考查點(diǎn)也與往年類(lèi)似。 【問(wèn)題1】 本問(wèn)題考查數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì),題目要求補(bǔ)充完整實(shí)體聯(lián)系圖中的聯(lián)系和聯(lián)系的類(lèi)型。配給有商品號(hào)的屬性,其主鍵可為商品號(hào),業(yè)務(wù)員,配給時(shí)間,外鍵有業(yè)務(wù)員,商品號(hào)。 根據(jù)題目的需求描述可知,每個(gè)超市只有一名經(jīng)理;超市設(shè)有計(jì)劃部、財(cái)務(wù)部、銷(xiāo)售部等多個(gè)部門(mén),每個(gè)部門(mén)只有一名部門(mén)經(jīng)理,有多名員工,每個(gè)員工只屬于一個(gè)部門(mén)。一名業(yè)務(wù)員可以負(fù)責(zé)超市內(nèi)多種商品的配給,一種商品可以由多名業(yè)務(wù)員配給。故答案如上所示。 【問(wèn)題2】 本問(wèn)題考查數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)設(shè)計(jì),題目要求

20、補(bǔ)充完整各關(guān)系模式,并給出部門(mén)和配給關(guān)系模式的主鍵和外鍵。 根據(jù)實(shí)體聯(lián)系圖和需求描述,部門(mén)有超市名稱(chēng)和部門(mén)名稱(chēng)的屬性,而超市名稱(chēng)和部門(mén)名稱(chēng)均唯一可作為主鍵。超市名稱(chēng)和部門(mén)經(jīng)理可作為外鍵。員工還有員工號(hào)、超市名稱(chēng)和部門(mén)名稱(chēng)等屬性;配給關(guān)系中也需要商品號(hào)這一屬性且為主鍵,主鍵包括了商品號(hào)、業(yè)務(wù)員和配給時(shí)間,外鍵有業(yè)務(wù)員和商品號(hào)。 【問(wèn)題3】 本問(wèn)題考查的是數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì),根據(jù)新增的需求增加實(shí)體聯(lián)系圖中的實(shí)體的聯(lián)系和聯(lián)系的類(lèi)型。 根據(jù)問(wèn)題描述,超市關(guān)系的地址可以進(jìn)一步分為郵編、省、市、街道,那么該屬性是屬于復(fù)合屬性,所謂復(fù)合屬性就是指屬性中含有多種信息,可以進(jìn)一步拆分的屬性,地址可以拆

21、分成多個(gè)簡(jiǎn)單屬性,符合這一特征。超市增設(shè)一個(gè)經(jīng)理的職位,則超市和經(jīng)理的聯(lián)系類(lèi)型變?yōu)?對(duì)多,即1:n。 本題問(wèn)題(e)并不嚴(yán)謹(jǐn),針對(duì)(1)地址屬于復(fù)合屬性,超市關(guān)系應(yīng)修改為(超市名稱(chēng),經(jīng)理,電話),其中超市名稱(chēng)和經(jīng)理作為組合主鍵,另外新增地址關(guān)系模式。 針對(duì)(2)假設(shè)超市與經(jīng)理1:m的聯(lián)系,也可以將聯(lián)系歸并到經(jīng)理端,即超市關(guān)系修改為(超市名稱(chēng),地址,電話),另外新增經(jīng)理關(guān)系模式。 4.某公司欲開(kāi)發(fā)一個(gè)管理選民信息的軟件系統(tǒng)。系統(tǒng)的基本需求描述如下: (1)每個(gè)人(Person)可以是一個(gè)合法選民(Eligible)或者無(wú)效的選民(Ineligible)。

22、(2)每個(gè)合法選民必須通過(guò)該系統(tǒng)對(duì)其投票所在區(qū)域(即選區(qū),Riding)進(jìn)行注冊(cè)(Registration)。每個(gè)合法選民僅能注冊(cè)一個(gè)選區(qū)。 (3)選民所屬選區(qū)由其居住地址(Address)決定。假設(shè)每個(gè)人只有一個(gè)地址,地址可以是鎮(zhèn)(Town)或者城市(City)。 (4)某些選區(qū)可能包含多個(gè)鎮(zhèn);而某些較大的城市也可能包含多個(gè)選區(qū)。 現(xiàn)采用面向?qū)ο蠓椒▽?duì)該系統(tǒng)進(jìn)行分析與設(shè)計(jì),得到如圖1-1所示的初始類(lèi)圖。 【問(wèn)題1】(8分) 根據(jù)說(shuō)明中的描述,給出圖1-1中C1~C4所對(duì)應(yīng)的類(lèi)名(類(lèi)名使用說(shuō)明中給出的英文詞匯)。 【問(wèn)題2】(3分) 根據(jù)說(shuō)明中的描述,給出圖1-1中M1~M6

23、處的多重度。 【問(wèn)題3】(4分) 現(xiàn)對(duì)該系統(tǒng)提出了以下新需求: (1)某些人擁有在多個(gè)選區(qū)投票的權(quán)利,因此需要注冊(cè)多個(gè)選區(qū); (2)對(duì)于滿(mǎn)足(1)的選民,需要?jiǎng)澏ㄆ洹爸饕幼〉亍?,以確定他們應(yīng)該在哪個(gè)選區(qū)進(jìn)行投票。 為了滿(mǎn)足上述需求,需要對(duì)圖1-1所示的類(lèi)圖進(jìn)行哪些修改?請(qǐng)用100字以?xún)?nèi)文字說(shuō)明。 正確答案: 本題解析: 【問(wèn)題1】 C1:Address?C2:Riding?C3:Ineligible?C4:Eligible 【問(wèn)題2】 M1:1,M2:*,M3:*,M4:1,M5:*,

24、M6:1。 【問(wèn)題3】 (1)將M1修改為1..*,在Registration類(lèi)中增加address屬性,指明注冊(cè)時(shí)使用的是哪個(gè)地址。 (2)增加一個(gè)類(lèi)“主要居住地”,作為類(lèi)Address的子類(lèi);類(lèi)Person與類(lèi)"主要居住地"之間具有關(guān)系聯(lián)系,且每個(gè)人只有一個(gè)主要居住地。 本題考查在面向?qū)ο蠓治雠c設(shè)計(jì)過(guò)程中,如何利用類(lèi)圖描述系統(tǒng)需求模型及設(shè)計(jì)模型。考試需要理解面向?qū)ο蠓椒ǖ南嚓P(guān)概念和思想,并熟悉UML的語(yǔ)法及應(yīng)用。類(lèi)圖及用例圖是考試題中最多出現(xiàn)的兩種UML模型。 (1)由需求1可知,Person下面只有Ineligible和Eligible,C3為孤立點(diǎn),C4還與其他類(lèi)有關(guān)系,故C

25、3為Ineligible,C4為Eligible。Person與C1的關(guān)系是lives at,故C1應(yīng)為Address,C2為Riding。 (2)Address與Person應(yīng)為1對(duì)多,故M1為1,M2為*。Eligible與Riding的關(guān)系應(yīng)為多對(duì)1,則M3應(yīng)為*,M4應(yīng)為1。一個(gè)選區(qū)包含多個(gè)鎮(zhèn),每個(gè)鎮(zhèn)多個(gè)地址,故Address與Riding的關(guān)系為多對(duì)1。 5.某燈具廠商欲生產(chǎn)一個(gè)燈具遙控器,該遙控器具有7個(gè)可編程的插槽,每個(gè)插槽都有開(kāi)關(guān)燈具的開(kāi)關(guān),現(xiàn)采用Command(命令)模式實(shí)現(xiàn)該遙控器的軟件部分。Command模式的類(lèi)圖如圖6-1所示。

26、【Java代碼】 class Light{ public Light( ?。﹞} public Light(String name){/*代碼省略*/} public void on(  ){/*代碼省略*/}//開(kāi)燈 public void off( ?。﹞/*代碼省略*/}//關(guān)燈 //其余代碼省略 } (1){ public void execute( ?。? } class LightOnCommand implements Command{//開(kāi)燈命令 Light light; public LightOnCommand(Light light){this.

27、light=light;} public void execute( ?。﹞(2);} } class LightOffCommand implements Command{//關(guān)燈命令 Light light; public LightOffCommand(Light light){this.light=light;} public void execute( ?。﹞(3);} } class RemoteControl{//遙控器 Command[]onCommands=new Command[7]; Command[]offCommands=new Command[7

28、]; public RemoteControl( ?。﹞/*代碼省略*/} public void setCommand(int slot,Command onCommand,Command offCommand){ (4)=onCommand; (5)=offCommand; } public void onButtonWasPushed(int slot){ (6); } public void offlButtonWasPushed(int slot){ (7); } } class RemoteLoader{ public static void main(

29、String[]args){ RemoteControl remoteControl=new RemoteControl( ?。? Light livingRoomLight=new Light("Living Room"); Light kitchenLight=new Light("kitchen"); LightOnCommand livingRoomLightOn=new LightOnCommand(livingRoomLight); LightOffCommand livingRoomLightOff=new LightOffCommand(livingRoomLight

30、); LightOnCommand kitchenLightOn=new LightOnCommand(kitchenLight); LightOffCommand kitchenLightOff=new LightOffCommand(kitchenLight); remoteControl.setCommand(0,livingRoomLightOn,livingRoomLightOff); remoteControl.setCommand(1,kitchenLightOn,kitchenLightOff); remoteControl.onButtonWasPushed(0);

31、 remoteControl.offButtonWasPushed(0); remoteControl.onButtonWasPushed(1); remoteControl.offButtonWasPushed(1); } } 正確答案: 本題解析: (1)interface Command (2)light.on() (3)light.off() (4)onCommands[slot] (5)offCommands[slot] (6)onCommands[slot].execut

32、e() (7)offCommands[slot].execute() 本題考察設(shè)計(jì)模式的實(shí)現(xiàn),難度較小。根據(jù)類(lèi)圖和已有代碼可寫(xiě)出空缺的代碼. (1)是Command接口的實(shí)現(xiàn),應(yīng)該填寫(xiě)interface Command; (2)和(3)定義了開(kāi)燈、關(guān)燈action,因此,分別填寫(xiě)(2)light->on()(3)light->off(); (4)(5)分別設(shè)置“開(kāi)燈”命令對(duì)象、“關(guān)燈”命令對(duì)象,因此分別填寫(xiě)(4)onCommands[slot](5)offCommands[slot]; (6)(7)分別完成對(duì)開(kāi)燈、關(guān)燈命令對(duì)象的execute方法的調(diào)用,因此分別填寫(xiě)(6)onCom

33、mands[slot].execute() (7)offCommands[slot].execute()。 6.計(jì)算一個(gè)整數(shù)數(shù)組a的最長(zhǎng)遞增子序列長(zhǎng)度的方法描述如下: 假設(shè)數(shù)組a的長(zhǎng)度為n,用數(shù)組b的元素b[i]記錄以a[i](0≤i<n)為結(jié)尾元素的最長(zhǎng)遞增予序列的長(zhǎng)度,則數(shù)組a的最長(zhǎng)遞增子序列的長(zhǎng)度為;其中b[i]滿(mǎn)足最優(yōu)子結(jié)構(gòu),可遞歸定義為: 【C代碼】 下面是算法的C語(yǔ)言實(shí)現(xiàn)。 (1)常量和變量說(shuō)明 a:長(zhǎng)度為n的整數(shù)數(shù)組,待求其最長(zhǎng)遞增子序列 b:長(zhǎng)度為n的數(shù)組,b[i]記錄以a[i](0≤i<n)為結(jié)尾元素的最長(zhǎng)遞增子序列的長(zhǎng) 度

34、,其中0≤i<n len:最長(zhǎng)遞增子序列的長(zhǎng)度 i,j:循環(huán)變量 temp:臨時(shí)變量 (2)C程序 #include<stdio.h> int maxL(int*b,int n){ int i,temp=0; for(i=0;i<n;i++){ if(b[i]>temp) temp=b[i]; } return temp; } int main( ?。﹞ int n,a[100],b[100],i,j,len; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&a[i]); } (1); for(i=1;i<n

35、;i++){ for(j=0,len=0;(2);j++){ if((3)&&len<b[j]) len=b[j]; } (4); } Printf("len:%d\n",maxL(b,n)); printf("\n"); } 【問(wèn)題1】(8分) 根據(jù)說(shuō)明和C代碼,填充C代碼中的空(1)~(4)。 【問(wèn)題2】(4分) 根據(jù)說(shuō)明和C代碼,算法采用了(5)設(shè)計(jì)策略,時(shí)間復(fù)雜度為(6)(用O符號(hào)表示)。 【問(wèn)題3】(3分) 已知數(shù)組a={3,10,5,15,6,8},根據(jù)說(shuō)明和C代碼,給出數(shù)組b的元素值。 正確答案:

36、 本題解析: 【問(wèn)題1】 (1)b[0]=1 (2)j<i (3)a[j]<=a[i] (4)b[i]=len+1 【問(wèn)題2】 (5)動(dòng)態(tài)規(guī)劃法 (6)O(n2) 【問(wèn)題3】 b={1,2,2,3,3,4} 本題考查算法設(shè)計(jì)與分析技術(shù)以及算法的C語(yǔ)言實(shí)現(xiàn),是比較傳統(tǒng)的題目,要求考生細(xì)心分析題目中所描述的內(nèi)容。 (1)根據(jù)題中說(shuō)明,b數(shù)組記錄最長(zhǎng)遞增子序列的長(zhǎng),故應(yīng)初始化b[0]=1,這是第一問(wèn)的答案。兩重for循環(huán)中,第一重是從a數(shù)組的第二個(gè)元素開(kāi)始,考慮每個(gè)子數(shù)組a[0...i]的最長(zhǎng)遞增子序列的長(zhǎng)度,第二重是具體的計(jì)算過(guò)程。考慮子

37、數(shù)組a[0..i],其最長(zhǎng)遞增子序列的長(zhǎng)度應(yīng)該等于子數(shù)組a[0..i-1]中的比元素a[i]小的元素的最長(zhǎng)遞增子序列的長(zhǎng)度加1,當(dāng)然,可能存在多個(gè)元素比元素a[i]小,那么存在多個(gè)最長(zhǎng)遞增子序列的長(zhǎng)度,此時(shí),取最大者。因此,空(2)填寫(xiě)“j<i”,即考慮子數(shù)組a[0..i-1]第三問(wèn)為a[j]<=a[i],第四問(wèn)為b[i]=len+1。 (2)算法將待求解問(wèn)題分解成若干個(gè)子問(wèn)題,先求解子問(wèn)題,然后從這些子問(wèn)題的解得到原問(wèn)題的解。使用的是動(dòng)態(tài)規(guī)劃的思想。時(shí)間復(fù)雜度計(jì)算最壞情況下的運(yùn)算次數(shù),最壞情況時(shí)i和j都從1跑到n,故運(yùn)算n的平方次。算法的時(shí)間復(fù)雜度為O(n2)。 (3)初始b[0]=1,a[0]=3,a[1]=10進(jìn)入時(shí)b[1]=2,a[2]=5進(jìn)入時(shí)有3、5的序列故b[2]=2,a[3]=15進(jìn)入時(shí)有3、10、15,故子序列為3,a[4]=6時(shí)有子序列3、5、6,故為3,當(dāng)最后一個(gè)元素8進(jìn)入時(shí)有3、5、6、8,故b[5]=4。所以b=[1,2,2,3,3,4]。

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!