2019年上半年(下午)《軟件設(shè)計(jì)師》真題
《2019年上半年(下午)《軟件設(shè)計(jì)師》真題》由會(huì)員分享,可在線閱讀,更多相關(guān)《2019年上半年(下午)《軟件設(shè)計(jì)師》真題(9頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、2019年上半年(下午)《軟件設(shè)計(jì)師》真題 注意:圖片可根據(jù)實(shí)際需要調(diào)整大小 卷面總分:6分 答題時(shí)間:240分鐘 試卷題量:6題 練習(xí)次數(shù):0次 問(wèn)答題 (共6題,共6分) 1.某軟件公司欲開發(fā)一款汽車競(jìng)速類游戲,需要模擬長(zhǎng)輪胎和短輪胎急剎車時(shí)在路面上留下的不同痕跡,并考慮后續(xù)能模擬更多種輪胎急剎車時(shí)的痕跡?,F(xiàn)采用策略(Strategy)設(shè)計(jì)模式來(lái)實(shí)現(xiàn)該需求,所設(shè)計(jì)的類圖如圖5-1所示。 圖5-1類圖 【Java代碼】 import java.util.*; interface BrakeB
2、ehavior{ public(1); /*其余代碼省略*/ }; class LongWheelBrake implements BrakeBehavior{ public void stop( ?。﹞System.out.println("模擬長(zhǎng)輪胎剎車痕跡!");} /*其余代碼省略*/ }; class ShortWheelBrake implements BrakeBehavior{ public void stop( ){System.out.println("模擬短輪胎剎車痕跡!");} /*其余代碼省略*/ }; abstract class Car{
3、 protected(2)wheel; public void brake( ?。﹞(3);} /*其余代碼省略*/ }: class ShortWheelCar extends Car{ public ShortWheelCar(BrakeBehavior behavior){ (4); } /*其余代碼省略*/ }; class StrategyTest{ public static void main(String[]args){ BrakeBehavior brake=new ShortWheelBrake( ?。? ShortWheelCar car1=n
4、ew ShortWheelCar(brake); car1.(5); } } 正確答案: 本題解析: (1)void stop() (2)BrakeBehavior (3)wheel.stop() (4)wheel=behavior (5)brake() 策略模式是定義一系列算法,把他們一個(gè)個(gè)封裝起來(lái),并且使它們之間可相互替換,從而讓算法可以獨(dú)立于使用它的用戶而變化。 (1)第一空接口BrakeBehavior有內(nèi)容缺失,結(jié)合其實(shí)現(xiàn)類LongWheelBrake代碼如下: class
5、 LongWheelBrake implements BrakeBehavior{ public void stop(){System.out.println("模擬長(zhǎng)輪胎剎車痕跡!");} /*其余代碼省略*/ }; 第一空需要補(bǔ)充stop()方法,即(1)void stop() (2)(3)第二、三空是抽象類Car缺少屬性wheel的類型和brake()方法的方法體。 abstract class Car{ protected(2)wheel; public void brake(){(3);} /*其余代碼省略*/ }: 根據(jù)圖示策略模式,Car與BrakeBeha
6、vior是整體與部分的關(guān)系,因此Car的屬性有這一個(gè)部分,即(2)BrakeBehavior,這里在類Car中,命名了一個(gè)與之聯(lián)系的部分BrakeBehavior類型wheel。對(duì)于BrakeBehavior類,所包含的方法是stop,因此第(3)空填寫的方法應(yīng)該是wheel.stop()。這樣就將Car與BrakeBehavior聯(lián)系起來(lái)了。 (4)第四空是實(shí)現(xiàn)子類ShortWheelCar缺失ShortWheelCar(BrakeBehavior behavior)此帶參構(gòu)造方法的方法體: class ShortWheelCar extends Car{ public ShortWh
7、eelCar(BrakeBehavior behavior){ (4); } /*其余代碼省略*/ }; 構(gòu)造方法是對(duì)類的構(gòu)造,帶參構(gòu)造函數(shù)一般是對(duì)其屬性進(jìn)行參數(shù)賦值,第四空將實(shí)現(xiàn)子類與其父類聯(lián)系起來(lái),子類繼承父類屬性wheel,此處應(yīng)該是對(duì)參數(shù)wheel賦值,即(4)wheel=behavior (5)第五空是實(shí)際調(diào)用測(cè)試過(guò)程,缺失方法名: class StrategyTest{ public static void main(String[]args){ BrakeBehavior brake=new ShortWheelBrake(); ShortWheelCar c
8、ar1=new ShortWheelCar(brake); car1.(5); } } 由代碼可知,car1是ShortWheelCar(brake)實(shí)例化的對(duì)象,類ShortWheelCar本身沒有方法,只有默認(rèn)繼承父類的一個(gè)方法brake(),因此此處調(diào)用的是brake(),即(5)brake()。 2.某學(xué)校欲開發(fā)一學(xué)生跟蹤系統(tǒng),以便更自動(dòng)化、更全面地對(duì)學(xué)生在校情況(到課情況和健康狀態(tài)等)進(jìn)行管理和追蹤,使家長(zhǎng)能及時(shí)了解子女的到課情況和健康狀態(tài),并在有健康問(wèn)題時(shí)及時(shí)與醫(yī)護(hù)機(jī)構(gòu)對(duì)接。該系統(tǒng)的主要功能是: (1)采集學(xué)生狀態(tài)。通過(guò)學(xué)生卡傳感器,采集學(xué)
9、生心率、體溫(攝氏度)等健康指標(biāo)及其所在位置等信息并記錄。每張學(xué)生卡有唯一的標(biāo)識(shí)(ID)與一個(gè)學(xué)生對(duì)應(yīng)。 (2)健康狀態(tài)告警。在學(xué)生健康狀態(tài)出問(wèn)題時(shí),系統(tǒng)向班主任、家長(zhǎng)和醫(yī)護(hù)機(jī)構(gòu)健康服務(wù)系統(tǒng)發(fā)出健康狀態(tài)警告,由醫(yī)護(hù)機(jī)構(gòu)健康服務(wù)系統(tǒng)通知相關(guān)醫(yī)生進(jìn)行處理。 (3)到課檢查。綜合比對(duì)學(xué)生狀態(tài)、課表以及所處校園場(chǎng)所之間的信息對(duì)學(xué)生到課情況進(jìn)行判定。對(duì)曠課學(xué)生,向其家長(zhǎng)和班主任發(fā)送曠課警告。 (4)匯總在校情況。定期匯總在校情況,并將報(bào)告發(fā)送給家長(zhǎng)和班主任。 (5)家長(zhǎng)注冊(cè)。家長(zhǎng)注冊(cè)使用該系統(tǒng),指定自己子女,存入家長(zhǎng)信息,待審核。 (6)基礎(chǔ)信息管理。學(xué)校管理人員對(duì)學(xué)生及其所用學(xué)生卡和班主任、
10、課表(班級(jí)、上課時(shí)間及場(chǎng)所等)、校園場(chǎng)所(名稱和所在位置區(qū)域)等基礎(chǔ)信息進(jìn)行管理;對(duì)家長(zhǎng)注冊(cè)申請(qǐng)進(jìn)行審核,更新家長(zhǎng)狀態(tài),將家長(zhǎng)ID加入學(xué)生信息記錄中使家長(zhǎng)與其子女進(jìn)行關(guān)聯(lián),向家長(zhǎng)發(fā)送注冊(cè)結(jié)果。一個(gè)學(xué)生至少有一個(gè)家長(zhǎng),可以有多個(gè)家長(zhǎng)。課表信息包括班級(jí)、班主任、時(shí)間和位置等。 現(xiàn)采用結(jié)構(gòu)化方法對(duì)學(xué)生跟蹤系統(tǒng)進(jìn)行分析與設(shè)計(jì),獲得如圖1-1所示的上下文數(shù)據(jù)流圖和圖1-2所示的0層數(shù)據(jù)流圖。 【問(wèn)題1】(5分) 使用說(shuō)明中的詞語(yǔ),給出圖1-1中的實(shí)體E1?E5的名稱。 【問(wèn)題2】(4分) 使用說(shuō)明中的詞語(yǔ),給出圖1-2中的數(shù)據(jù)存儲(chǔ)D1?D4的名稱。 【問(wèn)題3】(3分) 根據(jù)說(shuō)明和圖
11、中術(shù)語(yǔ),補(bǔ)充圖1-2中缺失的數(shù)據(jù)流及其起點(diǎn)和終點(diǎn)(三條即可)。 【問(wèn)題4】(3分) 根據(jù)說(shuō)明中的術(shù)語(yǔ),說(shuō)明圖1-1中數(shù)據(jù)流“學(xué)生狀態(tài)”和“學(xué)生信息”的組成。 正確答案: 本題解析: 【問(wèn)題1】(5分) E1:學(xué)生 E2:學(xué)校管理人員 E3:班主任 E4:家長(zhǎng) E5:醫(yī)護(hù)機(jī)構(gòu)健康服務(wù)系統(tǒng) 【問(wèn)題2】(4分) D1:學(xué)生狀態(tài)記錄表 D2:學(xué)生信息表 D3:校園場(chǎng)所記錄表 D4:課表信息記錄 【問(wèn)題3】(3分) (注:數(shù)據(jù)流沒有順序要求,按題目要求寫出其中3條) 【問(wèn)題4
12、】(3分) 學(xué)生狀態(tài)=學(xué)生卡ID+心率+體溫+位置+時(shí)間 學(xué)生信息=學(xué)生ID+學(xué)生卡ID+1{家長(zhǎng)ID}*+班主任ID+班級(jí) 【問(wèn)題1】 根據(jù)題干描述,與P1采集學(xué)生狀態(tài)相關(guān)的是實(shí)體E1即學(xué)生;與P5家長(zhǎng)注冊(cè)相關(guān)的是實(shí)體E4級(jí)家長(zhǎng);與P4匯總在校情況相關(guān)的是實(shí)體E4家長(zhǎng)與實(shí)體E3,即班主任;與P2健康狀態(tài)告警相關(guān)是實(shí)體E3班主任、E4家長(zhǎng),以及E5即醫(yī)護(hù)機(jī)構(gòu)健康服務(wù)系統(tǒng);與P6基礎(chǔ)信息管理相關(guān)的是實(shí)體E2即學(xué)校管理人員。 【問(wèn)題2】 “通過(guò)學(xué)生卡傳感器,采集學(xué)生心率、體溫(攝氏度)等健康指標(biāo)及其所在位置等信息并記錄”記錄學(xué)生狀態(tài)信息,即D1學(xué)生狀態(tài)記錄表; “學(xué)校管理人員對(duì)學(xué)生及
13、其所用學(xué)生卡和班主任、課表(班級(jí)、上課時(shí)間及場(chǎng)所等)、校園場(chǎng)所(名稱和所在位置區(qū)域)等基礎(chǔ)信息進(jìn)行管理”,即D4課表信息記錄,D3校園場(chǎng)所記錄,D2學(xué)生信息記錄。 【問(wèn)題3】 根據(jù)父圖子圖平衡沒有數(shù)據(jù)流缺失。 綜合題干分析,“到課檢查。綜合比對(duì)學(xué)生狀態(tài)、課表以及所處校園場(chǎng)所之間的信息對(duì)學(xué)生到課情況進(jìn)行判定。對(duì)曠課學(xué)生,向其家長(zhǎng)和班主任發(fā)送曠課警告?!盤3到課檢查缺失2條數(shù)據(jù)流入,分別是課表信息、校園場(chǎng)所信息,起點(diǎn)分別是D4、D3,終點(diǎn)是P3。 “對(duì)家長(zhǎng)注冊(cè)申請(qǐng)進(jìn)行審核,更新家長(zhǎng)狀態(tài),將家長(zhǎng)ID加入學(xué)生信息記錄中使家長(zhǎng)與其子女進(jìn)行關(guān)聯(lián)”此處缺失數(shù)據(jù)流,家長(zhǎng)ID,起點(diǎn)為P6,終點(diǎn)為D2。
14、 【問(wèn)題4】 “通過(guò)學(xué)生卡傳感器,采集學(xué)生心率、體溫(攝氏度)等健康指標(biāo)及其所在位置等信息并記錄。每張學(xué)生卡有唯一的標(biāo)識(shí)(ID)與一個(gè)學(xué)生對(duì)應(yīng)?!?,根據(jù)題干描述,“學(xué)生狀態(tài)”應(yīng)該包括學(xué)生心率、體溫(攝氏度)等健康指標(biāo)及其所在位置等信息,以及學(xué)生卡ID。 “學(xué)校管理人員對(duì)學(xué)生及其所用學(xué)生卡和班主任、課表(班級(jí)、上課時(shí)間及場(chǎng)所等)…”“將家長(zhǎng)ID加入學(xué)生信息記錄中”根據(jù)題干描述,”學(xué)生信息”應(yīng)該包括學(xué)生卡、班主任,學(xué)生ID等信息。 3.某創(chuàng)業(yè)孵化基地管理若干孵化公司和創(chuàng)業(yè)公司,為規(guī)范管理創(chuàng)業(yè)項(xiàng)目投資業(yè)務(wù),需要開發(fā)一個(gè)信息系統(tǒng)。請(qǐng)根據(jù)下述需求描述完成該系統(tǒng)的數(shù)據(jù)庫(kù)
15、設(shè)計(jì)。 【需求描述】 (1)記錄孵化公司和創(chuàng)業(yè)公司的信息。孵化公司信息包括公司代碼、公司名稱、法人代表名稱、注冊(cè)地址和一個(gè)電話;創(chuàng)業(yè)公司信息包括公司代碼、公司名稱和一個(gè)電話。孵化公司和創(chuàng)業(yè)公司的公司代碼編碼不同。 (2)統(tǒng)一管理孵化公司和創(chuàng)業(yè)公司的員工。員工信息包括工號(hào)、身份證號(hào)、姓名、性別、所屬公司代碼和一個(gè)手機(jī)號(hào),工號(hào)唯一標(biāo)識(shí)每位員工。 (3)記錄投資方信息。投資方信息包括投資方編號(hào)、投資方名稱和一個(gè)電話。 (4)投資方和創(chuàng)業(yè)公司之間依靠孵化公司牽線建立創(chuàng)業(yè)項(xiàng)目合作關(guān)系,具體實(shí)施由孵化公司的一位員工負(fù)責(zé)協(xié)調(diào)投資方和創(chuàng)業(yè)公司的一個(gè)創(chuàng)業(yè)項(xiàng)目。一個(gè)創(chuàng)業(yè)項(xiàng)目只屬于一個(gè)創(chuàng)業(yè)公司,但可以接受
16、若干投資方的投資。創(chuàng)業(yè)項(xiàng)目信息包括項(xiàng)目編號(hào)、創(chuàng)業(yè)公司代碼、投資方編號(hào)和孵化公司員工工號(hào)。 【概念模型設(shè)計(jì)】 根據(jù)需求階段收集的信息,設(shè)計(jì)的實(shí)體聯(lián)系圖(不完整)如圖2-1所示。 【邏輯結(jié)構(gòu)設(shè)計(jì)】 根據(jù)概念模型設(shè)計(jì)階段完成的實(shí)體聯(lián)系圖,得出如下關(guān)系模式(不完整): 孵化公司(公司代碼,公司名稱,法人代表名稱,注冊(cè)地址,電話) 創(chuàng)業(yè)公司(公司代碼,公司名稱,電話) 員工(工號(hào),身份證號(hào),姓名,性別,(a),手機(jī)號(hào)) 投資方(投資方編號(hào)、投資方名稱,電話) 項(xiàng)目(項(xiàng)目編號(hào),創(chuàng)業(yè)公司代碼#,(b),孵化公司員工工號(hào)#) 【問(wèn)題1】(5分) 根據(jù)問(wèn)題描述,補(bǔ)充圖2-1的實(shí)體聯(lián)系圖
17、。 【問(wèn)題2】(4分) 補(bǔ)充邏輯結(jié)構(gòu)設(shè)計(jì)結(jié)果中的(a)、(b)兩處空缺及完整性約束關(guān)系。 【問(wèn)題3】(6分) 若創(chuàng)業(yè)項(xiàng)目的信息還需要包括投資額和投資時(shí)間,那么: (1)是否需要增加新的實(shí)體來(lái)存儲(chǔ)投資額和投資時(shí)間? (2)如果增加新的實(shí)體,請(qǐng)給出新實(shí)體的關(guān)系模式,并對(duì)圖2-1進(jìn)行補(bǔ)充。如果不需要增加新的實(shí)體,請(qǐng)將“投資額”和“投資時(shí)間”兩個(gè)屬性補(bǔ)充連線到圖2-1合適的對(duì)象上,并對(duì)變化的關(guān)系模式進(jìn)行修改。 正確答案: 本題解析: 【問(wèn)題1】(5分) 【問(wèn)題2】(4分) (a)所屬公司代碼
18、 (b)投資方編號(hào) 完整性約束關(guān)系 員工-外鍵:所屬公司代碼 項(xiàng)目-主鍵:(項(xiàng)目編號(hào)、投資方編號(hào))組合主鍵 項(xiàng)目-外鍵:投資方編號(hào),題干已給出外鍵創(chuàng)業(yè)公司編號(hào)、孵化公司員工工號(hào) 【問(wèn)題3】(6分) (1)不需要 (2)關(guān)系模式:項(xiàng)目(項(xiàng)目編號(hào),創(chuàng)業(yè)公司代碼,投資方編號(hào),孵化公司員工工號(hào),投資額,投資時(shí)間) 【問(wèn)題1】 (1)根據(jù)題干描述,“統(tǒng)一管理孵化公司和創(chuàng)業(yè)公司的員工”,圖示給出孵化公司與員工1:*的聯(lián)系,需要補(bǔ)充創(chuàng)業(yè)公司與員工1:*的聯(lián)系; (2)根據(jù)題干描述,“具體實(shí)施由孵化公司的一位員工負(fù)責(zé)協(xié)調(diào)投資方和創(chuàng)業(yè)公司的一個(gè)創(chuàng)業(yè)項(xiàng)目?!边@里有一個(gè)三元聯(lián)系,聯(lián)系的
19、實(shí)體應(yīng)該是員工、投資方和創(chuàng)業(yè)公司,這個(gè)聯(lián)系就是圖示中的“項(xiàng)目”。 對(duì)于三元關(guān)系的類別判定: “具體實(shí)施由孵化公司的一位員工負(fù)責(zé)協(xié)調(diào)投資方和創(chuàng)業(yè)公司的一個(gè)創(chuàng)業(yè)項(xiàng)目,一個(gè)創(chuàng)業(yè)項(xiàng)目只屬于一個(gè)創(chuàng)業(yè)公司,但可以接受若干投資方的投資?!? 根據(jù)語(yǔ)義描述,由1位員工協(xié)調(diào)1個(gè)項(xiàng)目和1個(gè)創(chuàng)業(yè)公司,但1個(gè)項(xiàng)目可以接受若干個(gè)也就是多個(gè)投資方的投資,綜上,補(bǔ)充員工、投資方、創(chuàng)業(yè)公司三元聯(lián)系,聯(lián)系類型為1:*:1。 【問(wèn)題2】 (a)根據(jù)題干描述“員工信息包括工號(hào)、身份證號(hào)、姓名、性別、所屬公司代碼和一個(gè)手機(jī)號(hào),工號(hào)唯一標(biāo)識(shí)每位員工?!苯Y(jié)合關(guān)系模式: 員工(工號(hào),身份證號(hào),姓名,性別,(a),手機(jī)號(hào)),缺少的
20、部分為所屬公司代碼,其中工號(hào)為主鍵,所屬公司代碼為孵化公司或創(chuàng)業(yè)公司的主鍵,所以在員工關(guān)系中,所屬公司代碼是外鍵約束。 (b)根據(jù)題干描述“創(chuàng)業(yè)項(xiàng)目信息包括項(xiàng)目編號(hào)、創(chuàng)業(yè)公司代碼、投資方編號(hào)和孵化公司員工工號(hào)?!苯Y(jié)合關(guān)系模式: 項(xiàng)目(項(xiàng)目編號(hào),創(chuàng)業(yè)公司代碼,(b),孵化公司員工工號(hào)),缺少的額部分為投資方編號(hào)。根據(jù)一般情況,這里的項(xiàng)目編號(hào)是針對(duì)單個(gè)項(xiàng)目而來(lái),又因?yàn)椤熬唧w實(shí)施由孵化公司的一位員工負(fù)責(zé)協(xié)調(diào)投資方和創(chuàng)業(yè)公司的一個(gè)創(chuàng)業(yè)項(xiàng)目,一個(gè)創(chuàng)業(yè)項(xiàng)目只屬于一個(gè)創(chuàng)業(yè)公司,但可以接受若干投資方的投資?!彼员娟P(guān)系中每個(gè)創(chuàng)業(yè)項(xiàng)目只對(duì)應(yīng)一個(gè)創(chuàng)業(yè)公司,一個(gè)員工協(xié)調(diào),但可以對(duì)應(yīng)多個(gè)投資方,因此項(xiàng)目關(guān)系的主鍵
21、為(項(xiàng)目編號(hào),投資方編號(hào))組合鍵。創(chuàng)業(yè)公司代碼是創(chuàng)業(yè)公司主鍵,投資方編號(hào)是投資方主鍵,孵化公司員工工號(hào)是員工主鍵,因此本關(guān)系存在投資方編號(hào)、創(chuàng)業(yè)公司編號(hào)、孵化公司員工工號(hào)三個(gè)外鍵。 其他完整性約束:創(chuàng)業(yè)公司主鍵-公司代碼;孵化公司主鍵-公司代碼;投資方主鍵-投資方編號(hào),題目已經(jīng)用下劃線標(biāo)出。 【問(wèn)題3】 關(guān)系本身可以具有屬性,根據(jù)題目要求,創(chuàng)業(yè)項(xiàng)目的信息還需要包括投資額和投資時(shí)間,這些內(nèi)容可以直接添加到項(xiàng)目關(guān)系上,本題項(xiàng)目關(guān)系主鍵為(項(xiàng)目編號(hào),投資方)組合鍵,可以據(jù)此添加投資額和投資時(shí)間,因此不需要增加實(shí)體,可以直接在項(xiàng)目關(guān)系模式中增加這2個(gè)屬性即可。 4
22、.某圖書公司欲開發(fā)一個(gè)基于Web的書籍銷售系統(tǒng),為顧客(Customer)提供在線購(gòu)買書籍(Books)的功能,同時(shí)對(duì)公司書籍的庫(kù)存及銷售情況進(jìn)行管理。系統(tǒng)的主要功能描述如下: (1)首次使用系統(tǒng)時(shí),顧客需要在系統(tǒng)中注冊(cè)(Registerdetail)。顧客填寫注冊(cè)信息表要求的信息,包括姓名(name)、收貨地址(address)、電子郵箱(email)等,系統(tǒng)將為其生成一個(gè)注冊(cè)碼。 (2)注冊(cè)成功的顧客可以登錄系統(tǒng)在線購(gòu)買書籍(Buybooks)。購(gòu)買時(shí)可以瀏覽書籍信息,包括書名(title)、作者(author)、內(nèi)容簡(jiǎn)介(introduction)等。如果某種書籍的庫(kù)存量為0,那么顧
23、客無(wú)法查詢到該書籍的信息。顧客選擇所需購(gòu)買的書籍及購(gòu)買數(shù)量(quantities),若購(gòu)買數(shù)量超過(guò)庫(kù)存量,提示庫(kù)存不足;若購(gòu)買數(shù)量小于庫(kù)存量,系統(tǒng)將顯示驗(yàn)證界面,要求顧客輸入注冊(cè)碼。注冊(cè)碼驗(yàn)證正確后,自動(dòng)生成訂單(Order),否則,提示驗(yàn)證錯(cuò)誤。如果顧客需要,可以選擇打印訂單(Printorder)。 (3)派送人員(Dispatcher)每天早晨從系統(tǒng)中獲取當(dāng)日的派送列表信息(Producepicklist),按照收貨地址派送顧客訂購(gòu)的書籍。 (4)用于銷售的書籍由公司的采購(gòu)人員(Buyer)進(jìn)行采購(gòu)(Reorderbooks)。采購(gòu)人員每天從系統(tǒng)中獲取庫(kù)存量低于再次訂購(gòu)量的書籍信息,
24、對(duì)這些書籍進(jìn)行再次購(gòu)買,以保證充足的庫(kù)存量。新書籍到貨時(shí),采購(gòu)人員向在線銷售目錄(Catalog)中添加新的書籍信息(Addbooks)。 (5)采購(gòu)人員根據(jù)書籍的銷售情況,對(duì)銷量較低的書籍設(shè)置折扣或促銷活動(dòng)(Promotebooks)。 (6)當(dāng)新書籍到貨時(shí),倉(cāng)庫(kù)管理員(Warehouseman)接收書籍,更新庫(kù)存(Updatestock)。 現(xiàn)采用面向?qū)ο蠓椒ㄩ_發(fā)書籍銷售系統(tǒng),得到如圖3-1所示的用例圖和圖3-2所示的初始類圖(部分)。 【問(wèn)題1】(6分) 根據(jù)說(shuō)明中的描述,給出圖3-1中A1?A3所對(duì)應(yīng)的參與者名稱和U1?U3處所對(duì)應(yīng)的用例名稱。 【問(wèn)題2】(6分)
25、 根據(jù)說(shuō)明中的描述,給出圖3-1中用例U3的用例描述。(用例描述中必須包括基本事件流和所有的備選事件流)。 【問(wèn)題3】(3分) 根據(jù)說(shuō)明中的描述,給出圖3-2中C1?C3所對(duì)應(yīng)的類名。 正確答案: 本題解析: 【問(wèn)題1】(6分) A1:采購(gòu)人員或Buyer A2:倉(cāng)庫(kù)管理員Warehouseman A3:派送人員或Dispatcher U1:注冊(cè)或Registerdetail U2:打印訂單或Printorder U3:購(gòu)買書籍或Buybooks 【問(wèn)題2】 U3用例描述 參與者顧
26、客。 主要事件流: 1、顧客登錄系統(tǒng); 2、顧客瀏覽書籍信息; 3、系統(tǒng)檢查某種書籍的庫(kù)存量是否為0; 4、顧客選擇所需購(gòu)買的書籍及購(gòu)買數(shù)量; 5、系統(tǒng)檢查庫(kù)存量是否足夠; 6、系統(tǒng)顯示驗(yàn)證驗(yàn)證界面; 7、顧客輸入驗(yàn)證碼驗(yàn)證; 8、系統(tǒng)自動(dòng)生成訂單; 備選事件流: 3a.若庫(kù)存量為0則無(wú)法查詢到該書籍信息,退回到2; 5a.若購(gòu)買數(shù)量超過(guò)庫(kù)存量,則提示庫(kù)存不足,并退回到4; 7a.若驗(yàn)證錯(cuò)誤,則提示驗(yàn)證錯(cuò)誤,并退回到6; 8a.若顧客需要可以選擇打印訂單。 前置條件: 1、注冊(cè)成功。 后置條件: 1、購(gòu)買成功 【問(wèn)題3】 C1:顧客或Customer
27、C2:訂單或Order C3:書籍或Books 【問(wèn)題1】 (1)根據(jù)題干描述“用于銷售的書籍由公司的采購(gòu)人員(Buyer)進(jìn)行采購(gòu)(Reorderbooks)”,與采購(gòu)(Reorderbooks)相關(guān)的參與者是采購(gòu)人員(Buyer),因此A1為采購(gòu)人員或Buyer; (2)根據(jù)題干描述“當(dāng)新書籍到貨時(shí),倉(cāng)庫(kù)管理員(Warehouseman)接收書籍,更新庫(kù)存(Update stock)?!?,與更新庫(kù)存(Updatestock)相關(guān)的參與者是倉(cāng)庫(kù)管理員(Warehouseman),因此A2為倉(cāng)庫(kù)管理員或Warehouseman; (3)根據(jù)題干描述“派送人員(Dispatcher)每
28、天早晨從系統(tǒng)中獲取當(dāng)日的派送列表信息(Producepicklist)”,與Producepicklist相關(guān)的參與者是派送人員(Dispatcher),因此A3為派送人員或Dispatcher; (4)根據(jù)題干描述“(1)首次使用系統(tǒng)時(shí),顧客需要在系統(tǒng)中注冊(cè)(Registerdetail)。顧客填寫注冊(cè)信息表要求的信息,包括姓名(name)、收貨地址(address)、電子郵箱(email)等,系統(tǒng)將為其生成一個(gè)注冊(cè)碼?!边@里有顧客相關(guān)用例注冊(cè)(Registerdetail)。 根據(jù)題干描述“(2)注冊(cè)成功的顧客可以登錄系統(tǒng)在線購(gòu)買書籍(Buybooks)。購(gòu)買時(shí)可以瀏覽書籍信息,包括書
29、名(title)、作者(author)、內(nèi)容簡(jiǎn)介(introduction)等。如果某種書籍的庫(kù)存量為0,那么顧客無(wú)法查詢到該書籍的信息。顧客選擇所需購(gòu)買的書籍及購(gòu)買數(shù)量(quantities),若購(gòu)買數(shù)量超過(guò)庫(kù)存量,提示庫(kù)存不足;若購(gòu)買數(shù)量小于庫(kù)存量,系統(tǒng)將顯示驗(yàn)證界面,要求顧客輸入注冊(cè)碼。注冊(cè)碼驗(yàn)證正確后,自動(dòng)生成訂單(Order),否則,提示驗(yàn)證錯(cuò)誤。如果顧客需要,可以選擇打印訂單(Printorder)?!边@里有顧客相關(guān)用例在線購(gòu)買書籍(Buybooks)、打印訂單(Printorder),并且這里提到如果顧客需要,可以選擇打印訂單,可以知道打印訂單(Printorder)是在線購(gòu)買書
30、籍(Buybooks)在某個(gè)條件下的擴(kuò)展。打印訂單(Printorder)是在線購(gòu)買書籍(Buy books)的擴(kuò)展,體現(xiàn)在圖示當(dāng)中,<<extend>>箭頭指向基用例在線購(gòu)買書籍(Buybooks)即U3,<<extend>>箭頭流出端為擴(kuò)展用例打印訂單(Printorder)即U2,注意箭頭指向的區(qū)別。 U1與其他用例沒有相關(guān)關(guān)系,即U1為注冊(cè)(Registerdetail)。 【問(wèn)題2】 當(dāng)用例圖不能提供用例所具有的全部信息,需要使用文字描述那些不能反映在圖形上的信息。用例描述是加上關(guān)于參與者和系統(tǒng)如何交互的規(guī)格說(shuō)明,在編寫用例描述的時(shí)候,應(yīng)該只注重外部能力,不涉及內(nèi)部細(xì)節(jié)。一般用
31、例描述包括以下內(nèi)容: 1.目的:簡(jiǎn)要描述系統(tǒng)的最終任務(wù)和結(jié)果。 2.事件流: (1)說(shuō)明用例是怎么啟動(dòng)的,那些參與者在什么情況下啟動(dòng)執(zhí)行用例; (2)說(shuō)明參與者和用例之間的信息處理過(guò)程; (3)說(shuō)明用例在不同的條件下,可以選擇執(zhí)行的多種方案; (4)說(shuō)明用例在什么情況下才能被視作完成,完成時(shí)結(jié)果傳給參與者; 基本流說(shuō)明了參與者和系統(tǒng)之間的相互交互或?qū)υ挼捻樞颍?dāng)這種交互完成后,參與者便實(shí)現(xiàn)了預(yù)期目的;可選流程也可以促進(jìn)成功的完成任務(wù),但他們代表了任務(wù)的細(xì)節(jié)或用于完成任務(wù)的途徑的變化部分。 3.特殊要求:說(shuō)明此用例的特殊要求。 4.前提條件:說(shuō)明此例的前提條件。 5.后置條件
32、:用例執(zhí)行結(jié)束后,結(jié)果應(yīng)該傳給說(shuō)明參與者。 本題用例描述可以大致概括為: 參與者顧客。 主要事件流: 1、顧客登錄系統(tǒng); 2、顧客瀏覽書籍信息; 3、系統(tǒng)檢查某種書籍的庫(kù)存量是否為0; 4、顧客選擇所需購(gòu)買的書籍及購(gòu)買數(shù)量; 5、系統(tǒng)檢查庫(kù)存量是否足夠; 6、系統(tǒng)顯示驗(yàn)證界面; 7、顧客輸入驗(yàn)證碼驗(yàn)證; 8、系統(tǒng)自動(dòng)生成訂單。 備選事件流: 3a.若庫(kù)存量為0則無(wú)法查詢到該書籍信息,退回到2; 5a.若購(gòu)買數(shù)量超過(guò)庫(kù)存量,則提示庫(kù)存不足,并退回到4; 7a.若驗(yàn)證錯(cuò)誤,則提示驗(yàn)證錯(cuò)誤,并退回到6; 8a.若顧客需要可以選擇打印訂單。 【由于本題用例給出的并不詳
33、細(xì),沒有給出登錄用例等內(nèi)容,所有描述都在購(gòu)買書籍用例描述當(dāng)中,所以這里也就沒有給出前置條件和后置條件,將所有內(nèi)容都放在了主要事件流當(dāng)中。此處答案不唯一?!? 【問(wèn)題3】 (1)根據(jù)題干描述“顧客填寫注冊(cè)信息表要求的信息,包括姓名(name)、收貨地址(address)、電子郵箱(email)等”,包含name、address、email屬性的類應(yīng)該是顧客,即C1:顧客或Customer; (2)根據(jù)題干描述“購(gòu)買時(shí)可以瀏覽書籍信息,包括書名(title)、作者(author)、內(nèi)容簡(jiǎn)介(introduction)等”,包含title、author、introduction屬性的類應(yīng)該是書籍
34、,即C3:書籍或Books; (3)根據(jù)圖示OrderedBook類即已訂購(gòu)的書籍類,與顧客相關(guān)的類,并且是已訂購(gòu)書籍的整體,所以C2應(yīng)該是生成的訂單,列出已訂購(gòu)書籍,并且與顧客有依賴關(guān)系,即C2:訂單或Order。 5.n皇后問(wèn)題描述為:在一個(gè)n×n的棋盤上擺放n個(gè)皇后,要求任意兩個(gè)皇后不能沖突,即任意兩個(gè)皇后不在同一行、同一列或者同一斜線上。 算法的基本思想如下: 將第i個(gè)皇后擺放在第i行,i從1開始,每個(gè)皇后都從第1列開始嘗試。嘗試時(shí)判斷在該列擺放皇后是否與前面的皇后有沖突,如果沒有沖突,則在該列擺放皇后,并考慮擺放下一個(gè)皇后;如果有沖突,則考慮下一
35、列。如果該行沒有合適的位置,回溯到上一個(gè)皇后,考慮在原來(lái)位置的下一個(gè)位置上繼續(xù)嘗試擺放皇后,……,直到找到所有合理擺放方案。 【C代碼】 下面是算法的C語(yǔ)言實(shí)現(xiàn)。 (1)常量和變量說(shuō)明 n:皇后數(shù),棋盤規(guī)模為n×n queen[]:皇后的擺放位置數(shù)組,queen[i]表示第i個(gè)皇后的位置,1≤queen[i]≤n (2)C程序 #include<stdio.h> #define n 4 int queen[n+1]; void Show( ?。﹞/*輸出所有皇后擺放方案*/ int i; printf("("); for(i=1;i<=n;i++){ printf(
36、"%d",queen[i]); } printf(")\n"); } int Place(int j){/*檢查當(dāng)前列能否放置皇后,不能放返回0,能放返回1*/ int i; for(i=1;i<j;i++){/*檢查與已擺放的皇后是否在同一列或者同一斜線上*/ if(((1))‖abs(queen[i]-queen[j])==(j-i)){ return 0; } } return(2); } void Nqueen(int j){ int i; for(i=1;i<=n;i++){ queen[j]=i; if((3)){ if(j==n){/*如果所有
37、皇后都擺放好,則輸出當(dāng)前擺放方案*/ Show( ?。? }else{/*否則繼續(xù)擺放下一個(gè)皇后*/ (4); } } } } int main( ){ Nqueen(1); return 0; } 【問(wèn)題1】(8分) 根據(jù)題干說(shuō)明,填充C代碼中的空(1)(4)。 【問(wèn)題2】(3分) 根據(jù)題干說(shuō)明和C代碼,算法采用的設(shè)計(jì)策略為(5)。 【問(wèn)題3】(4分) 當(dāng)n=4時(shí),有(6)種擺放方式,分別為(7)。 正確答案: 本題解析: 【問(wèn)題1】 (1)queen[i]==q
38、ueen[j]或其等價(jià)形式 (2)1 (3)Place(j)或其等價(jià)形式 (4)Nqueen(j+1) 【問(wèn)題2】 (5)回溯法 【問(wèn)題3】 (6)2個(gè) (7)(2413)或(2,4,1,3) (3142)或(3,1,4,2) 【問(wèn)題1】 (1)第一空根據(jù)代碼上下文: for(i=1;i<j;i++){/*檢查與已擺放的皇后是否在同一列或者同一斜線上*/ if((1))‖abs(queen[i]-queen[j])==(j-i)){ return 0; } } abs(queen[i]-queen[j])==(j-i)判斷是否在同一斜線上,此處還缺少對(duì)同一列的
39、判斷,即queen[i]==queen[j]或其等價(jià)形式。 (2)第二空根據(jù)Place(int j)函數(shù)首行注釋: int Place(int j){/*檢查當(dāng)前列能否放置皇后,不能放返回0,能放返回1*/ 此處是成功后的返回,返回值應(yīng)該是1。 (3)第三空根據(jù)代碼上下文 if((3)){ if(j==n){/*如果所有皇后都擺放好,則輸出當(dāng)前擺放方案*/ Show(); }else{/*否則繼續(xù)擺放下一個(gè)皇后*/ (4); } } (3)與j==n結(jié)合可以判斷所有皇后都擺好,(3)與j!=n結(jié)合可以判斷繼續(xù)擺放下一個(gè)皇后,即前面的皇后已擺放好。 所以(3)的判斷條件
40、應(yīng)該是擺放函數(shù)Place()返回值為1,即(3)Place(j)或其等價(jià)形式。 (4)第四空填寫擺放下一個(gè)皇后,即(4)Nqueen(j+1)。 【問(wèn)題2】 根據(jù)題干描述“如果該行沒有合適的位置,回溯到上一個(gè)皇后,考慮在原來(lái)位置的下一個(gè)位置上繼續(xù)嘗試擺放皇后”,本題采用的是回溯法的設(shè)計(jì)策略。 【問(wèn)題3】 當(dāng)n=4時(shí),可以有2種擺放方式,如下所示: 即(2413)(3142)。 6.某軟件公司欲開發(fā)一款汽車競(jìng)速類游戲,需要模擬長(zhǎng)輪胎和短輪胎急剎車時(shí)在路面上留下的不同痕跡,并考慮后續(xù)能模擬更多種輪胎急剎車時(shí)的痕跡?,F(xiàn)采用策略(Strategy)設(shè)計(jì)模
41、式來(lái)實(shí)現(xiàn)該需求,所設(shè)計(jì)的類圖如圖6-1所示。 【C++代碼】 #include<iostream> using namespace std; class BrakeBehavior{ public: (1); /*其余代碼省略*/ }; class LongWheelBrake:public BrakeBehavior{ public: void stop( ?。﹞cout<<"模擬長(zhǎng)輪胎剎車痕跡!"<<end1;} /*其余代碼省略*/ }; class ShortWheelBrake:public BrakeBehavior{ public: void
42、stop( ?。﹞cout<<"模擬短輪胎剎車痕跡!"<<end1;} /*其余代碼省略*/ }; class Car{ protected: (2)wheel; public: void brake( ?。﹞(3);} /*其余代碼省略*/ }; class ShortWheelCar:public Car{ public: ShortWheelCar(BrakeBehavior*behavior){ (4); } /*其余代碼省略*/ }; int main( ?。﹞ BrakeBehavior*brake=new ShortWheelBrake( ?。?/p>
43、; ShortWheelCar car1(brake): car1.(5); return 0; } 正確答案: 本題解析: (1)virtual void stop()=0 (2)BrakeBehavior* (3)wheel->stop() (4)wheel=behavior (5)brake() 策略模式是定義一系列算法,把他們一個(gè)個(gè)封裝起來(lái),并且使它們之間可相互替換,從而讓算法可以獨(dú)立于使用它的用戶而變化。 (1)第一空類BrakeBehavior有內(nèi)容缺失,結(jié)合其實(shí)現(xiàn)類Lo
44、ngWheelBrake代碼如下: class LongWheelBrake:public BrakeBehavior{ public: void stop(){cout<<"模擬長(zhǎng)輪胎剎車痕跡!"<<end1;} /*其余代碼省略*/ }; 第一空需要補(bǔ)充stop()方法,即(1)virtual void stop()=0 (2)(3)第二、三空是抽象類Car缺少屬性wheel的類型和brake()方法的方法體。 class Car{ protected: (2)wheel; public: void brake(){(3);} /*其余代碼省略*/ }; 根據(jù)
45、圖示策略模式,Car與BrakeBehavior是整體與部分的關(guān)系,因此Car的屬性有這一個(gè)部分,即(2)BrakeBehavior*,這里在類Car中,命名了一個(gè)與之聯(lián)系的部分BrakeBehavior*類型wheel。對(duì)于BrakeBehavior類,所包含的方法是stop,因此第(3)空填寫的方法應(yīng)該是wheel->stop()。這樣就將Car與BrakeBehavior聯(lián)系起來(lái)了。 (4)第四空是實(shí)現(xiàn)子類ShortWheelCar缺失ShortWheelCar(BrakeBehavior*behavior)此帶參構(gòu)造方法的方法體: class ShortWheelCar:publi
46、c Car{ public: ShortWheelCar(BrakeBehavior*behavior){ (4); } /*其余代碼省略*/ }; 構(gòu)造方法是對(duì)類的構(gòu)造,帶參構(gòu)造函數(shù)一般是對(duì)其屬性進(jìn)行參數(shù)賦值,第四空將實(shí)現(xiàn)子類與其父類聯(lián)系起來(lái),子類繼承父類屬性wheel,此處應(yīng)該是對(duì)參數(shù)wheel賦值,即(4)wheel=behavior (5)第五空是實(shí)際調(diào)用測(cè)試過(guò)程,缺失方法名: int main(){ BrakeBehavior*brake=new ShortWheelBrake(); ShortWheelCar car1(brake): car1.(5); return 0; } 由代碼可知,car1是ShortWheelCar實(shí)例化的對(duì)象,類ShortWheelCar本身沒有方法,只有默認(rèn)繼承父類的一個(gè)方法brake(),因此此處調(diào)用的是brake(),即(5)brake()。
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 24香港璀璨的明珠
- 第02講 第一章 綜合布線基礎(chǔ)知識(shí)
- 預(yù)防傳染病課件
- 【創(chuàng)新設(shè)計(jì)】2011屆高考生物一輪復(fù)習(xí) 第5章單元綜合提升 細(xì)胞增殖、分化、衰老和凋亡課件 蘇教版必修1
- 512防震減災(zāi)安全教育班會(huì)課件
- 2022年浙教初中數(shù)學(xué)八下《反證法》課件10
- 1山中訪友課后作業(yè)(A組-基礎(chǔ)篇)
- 產(chǎn)后出血完整版
- 質(zhì)量培訓(xùn)教材(2)
- 部編版一年級(jí)下冊(cè)語(yǔ)文課件第三單元語(yǔ)文園地三(完美版)
- 我最好老師課件
- 面向?qū)ο蟾呒?jí)應(yīng)用及C-sharp-語(yǔ)法新特性課件
- 堿金屬元素課件
- 部編人教版六年級(jí)語(yǔ)文下冊(cè)14《文言文二則-》學(xué)-弈課件
- 部編版六年級(jí)上冊(cè)語(yǔ)文課件--宇宙生命之謎