軟件設(shè)計師下午2012上半年_第1頁
軟件設(shè)計師下午2012上半年_第2頁
軟件設(shè)計師下午2012上半年_第3頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 真題 軟件設(shè)計師下午 2012 上半年填空題 試題 1 閱讀以下說明和圖,根據(jù)要求回答下列問題。 說明 某學校欲開發(fā)圖書管理系統(tǒng), 以記錄圖書館所藏圖書及其借出和歸還情 況,提供給借閱者借閱圖書功能, 提供給圖書館管理員管理和定期更新圖書表功 能。主要功能的具體描述如下:(1) 處理借閱。借閱者要借閱圖書時,系統(tǒng)必須對其身份 ( 借閱者 ID) 進 行檢查。通過與教務(wù)處維護的學生數(shù)據(jù)庫、 人事處維護的職工數(shù)據(jù)庫中的數(shù)據(jù)進 行比對,以驗證借閱者 ID 是否合法。若合法,則檢查借閱者在逾期未還圖書表 中是否有逾期未還圖書, 以及罰金表中的罰金是否超過限額。 如果沒有逾期未還 圖書并且罰金未超過限

2、額, 則允許借閱圖書, 更新圖書表, 并將借閱的圖書存入 借出圖書表。 借閱者歸還所借圖書時, 先由圖書館管理員檢查圖書是否缺失或損 壞,若是,則對借閱者處以相應(yīng)罰金并存入罰金表;然后,檢查所還圖書是否逾 期,若是,執(zhí)行“處理逾期”操作;最后,更新圖書表,刪除借出圖書表中的相 應(yīng)記錄。(2) 維護圖書。圖書館管理員查詢圖書信息;在新進圖書時錄入圖書信 息,存入圖書表;在圖書丟失或損壞嚴重時,從圖書表中刪除該圖書記錄。(3) 處理逾期。系統(tǒng)在每周一統(tǒng)計逾期未還圖書,逾期未還的圖書按規(guī) 則計算罰金,并記入罰金表, 并給有逾期未還圖書的借閱者發(fā)送提醒消息。 借閱 者在借閱和歸還圖書時, 若罰金超過限

3、額, 管理員收取罰金, 并更新罰金表中的 罰金額度?,F(xiàn)采用結(jié)構(gòu)化方法對該圖書管理系統(tǒng)進行分析與設(shè)計, 獲得如圖 2-9 所 示的頂層數(shù)據(jù)流圖和圖 2-10 所示的 0 層數(shù)據(jù)流圖。第 1 題: 問題 1使用說明中的詞語,給出圖2-9中的實體E1E4的名稱。 參考答案:E1:借閱者E2:圖書管理員E3/E4 :學生數(shù)據(jù)庫/職工數(shù)據(jù)庫詳細解答:第 2 題: 問題 2使用說明中的詞語,給出圖2-10中的數(shù)據(jù)存儲D1D4的名稱。 參考答案:D1:圖書表D2:借出圖書表D3:逾期未還圖書表D4:罰金表詳細解答第3題 問題 3在DFD建模時,需要對有些復雜加工(處理)進行進一步精化,繪制下層數(shù) 據(jù)流圖。針

4、對圖 2-10 中的加工“處理借閱”,在 1 層數(shù)據(jù)流圖中應(yīng)分解為哪些 加工?(使用說明中的術(shù)語 ) 參考答案檢查借閱者身份或檢查借閱者 ID; 檢查逾期未還圖書; 檢查罰金 是否超過限額; 借閱圖書; 計算圖書損壞或丟失罰金額;詳細解答第4題 問題 4說明問題3中繪制 1層數(shù)據(jù)流圖時要注意的問題。 參考答案保持父圖與子圖平衡父圖中某加工的輸入輸出數(shù)據(jù)流必須與它的子圖的輸入輸出數(shù)據(jù)流在數(shù)量和名字上相同。 如果父圖的一個輸入 (或輸出)數(shù)據(jù)流對 應(yīng)于子圖中幾個輸入 (或輸出)數(shù)據(jù)流,而子圖中組成這些數(shù)據(jù)流的數(shù)據(jù)項全體正 好是父圖中的這一個數(shù)據(jù)流,那么它們?nèi)匀凰闶瞧胶獾脑敿毥獯?第5題 問題 1補

5、充圖 2-11 中的聯(lián)系和聯(lián)系的類型。 參考答案如圖 2-16詳細解答:第 6 題: 問題 2根據(jù)圖 2-11 ,將邏輯結(jié)構(gòu)設(shè)計階段生成的關(guān)系模式中的空缺處補充完整, 并用下劃線指出主鍵。 參考答案:<口>護士編號,病區(qū)</u><u>手術(shù)室號,護士編號</u>,責任 <u>病案號 </u> ,病床號 <u> 病案號 </u> ,醫(yī)生編號 <u> 病案號,手術(shù)室 號,手術(shù)時間,醫(yī)生編號 </u>詳細解答: 第 7 題: 問題 3 如果系統(tǒng)還需要記錄醫(yī)生給病人的用藥情況,即記錄醫(yī)

6、生給病人所開處方中藥品的名稱、用量、價格、藥品的生產(chǎn)廠家等信息。請根據(jù)該要求,對圖 211 進行修改,畫出補充后的實體、實體間聯(lián)系和聯(lián)系的類型。 參考答案:如圖 2-17詳細解答: 試題 3 閱讀以下說明,根據(jù)要求回答下列問題。 說明 某網(wǎng)上購物平臺的主要功能如下。(1) 創(chuàng)建訂單。顧客 (Customer) 在線創(chuàng)建訂單 (Order) ,主要操作是向訂 單中添加項目、從訂單中刪除項目。訂單中應(yīng)列出所訂購的商品 (Product) 及其 數(shù)量 (quantities) 。(2) 提交訂單。訂單通過網(wǎng)絡(luò)來提交。 在提交訂單時, 顧客需要提供其姓 名(name)、收貨地址(address)以及付

7、款方式(form of payment)( 預(yù)付卡、信用 卡或者現(xiàn)金 ) 。為了制定送貨計劃并安排送貨車輛, 系統(tǒng)必須確定訂單量 (volume) 除此之外,還必須記錄每種商品的名稱 (Name)、造價(cost price)、售價(sale price) 以及單件商品的包裝體積 (cubic volume) 。(3) 處理訂單。訂單處理人員接收來自系統(tǒng)的訂單; 根據(jù)訂單內(nèi)容, 安排 配貨,制定送貨計劃。在送貨計劃中不僅要指明發(fā)貨日期 (delivery date) ,還 要記錄每個訂單的限時發(fā)送要求 (Delivery Time Window) 。(4) 派單。訂單處理人員將已配好貨的訂單轉(zhuǎn)

8、交給派送人員。(5) 送貨/收貨。派送人員將貨物送到顧客指定的收貨地址。當顧客收貨 時,需要在運貨單 (delivery slip) 上簽收。簽收后的運貨單最終需交還給訂單 處理人員。(6) 收貨確認。當訂單處理人員收到簽收過的運貨單后,會和顧客進行 一次再確認?,F(xiàn)采用面向?qū)ο蠓椒ㄩ_發(fā)上述系統(tǒng),得到如圖 2-12 所示的用例圖和圖 2-13 所示的類圖。第 8 題: 問題 1根據(jù)說明中的描述,給出圖2-12中A1A3所對應(yīng)的參與者名稱和U1、U2 處所對應(yīng)的用例名稱。 參考答案:A1:顧客A2:訂單處理人員A3 :派送人員U1 :收貨U2派單 詳細解答: 第 9 題: 問題 2根據(jù)說明中的描述

9、,給出圖2-13中C1C3所對應(yīng)的類名以及橫線處所對 應(yīng)的多重度 (類名使用說明中給出的英文詞匯 ) 。 參考答案:C1: CustornerC2: Order C3: Product (1)1(2)0.*或 0.n(3)0.*或 0.n(4)1.*或 1.n詳細解答: 第 10 題: 問題 3根據(jù)說明中的描述,將類C2和C3的屬性補充完整(屬性名使用說明中給出 的英文詞匯 ) 。 參考答案:C2:volume、delivery date 、form of paymentC3:cost price 、saleprice 、cubic volume詳細解答: 試題 4閱讀下列說明和C代碼,回答下

10、列問題。 說明 用兩臺處理機A和B處理n個作業(yè)。設(shè)A和B處理第i個作業(yè)的時間分 別為ai和bi。由于各個作業(yè)的特點和機器性能的關(guān)系,對某些作業(yè),在A上處理時間長,而對某些作業(yè)在B上處理時間長。一臺處理機在某個時刻只能處理一 個作業(yè), 而且作業(yè)處理是不可中斷的, 每個作業(yè)只能被處理一次。 現(xiàn)要找出一個 最優(yōu)調(diào)度方案,使得 n 個作業(yè)被這兩臺處理機處理完畢的時間 (所有作業(yè)被處理 的時間之和 ) 最少。算法步驟如下。(1)確定候選解上界為R短的單臺處理機處理所有作業(yè)的完成時間m 用p(x,y,k)=1 表示前k個作業(yè)可以在A用時不超過x且在B用時不超過 y 時間內(nèi)處理完成,則 p(x,y,k)=p

11、(x-ak,y,k-1) II p(x,y-bk,k-1)( II 表示邏輯或 操作 ) 。(3) 得到最短處理時間為 min(max(x,y) 。C 代碼下面是該算法的C語言實現(xiàn)。(1) 常量和變量說明n :作業(yè)數(shù)m:候選解上界a :數(shù)組,長度為n,記錄n個作業(yè)在A上的處理時間,下標從0開始 b :數(shù)組,長度為n,記錄n個作業(yè)在B上的處理時間,下標從0開始 k :循環(huán)變量p :三維數(shù)組,長度為(m+1)*(m+1)*(n+1)temp :臨時變量max:最短處理時間(2) C 代碼#include stdio.h int n, m;int a60, b60, p100 100 60;void

12、 read() /* 輸入 n、a、b,求出 m,代碼略 */void schedule() /* 求解過程 */int x, y, k;for (x=0;x =m;x+) for (y=0;y m;y+) for (k=1;k n;k+)px y k =0;for (k=1;k n;k+) for (x=0;x =m;x+) for (y=0;y =m;y+) if (x-ak-1=0)if ()Px yk=(Pxyk II Px y-bk-1 k-1);void write() /* 確定最優(yōu)解并輸出 */int x, y, temp, max=m; for (x=0;x =m;x+) f

13、or (y=0,y =m;y+) if ()temp:if (temp max) max = temp;print ("n%dn",max) ;void main() read() ; schedule() ;write() ; 第 11 題: 問題 1根據(jù)以上說明和C代碼,填充C代碼中的空缺處。參考答案:pxy0=1 pxyk=px-ak-1yk-1 y-bk-1 =0 pxyn=1 或 pxyn!=0 或 pxyn 或其他等價表示形式 (x =y)?x:y詳細解答: 第 12 題: 問題 2根據(jù)以上C代碼,算法的時間復雜度為 (用0符號表示)參考答案:0(m<su

14、p>2</sup>n)詳細解答: 第 13 題: 問題 3考慮 6個作業(yè)的實例,各個作業(yè)在兩臺處理機上的處理時間如表 2-7 所 示。該實例的最優(yōu)解為 ,最優(yōu)解的值 (即最短處理時間 )為。最優(yōu)解用(x1,x2,x3, x4,x5, x6)表示,其中若第i個作業(yè)在A上處理,則 xi=1,否則xi=2。如(1,1,1,1,2,2)表示作業(yè)1、2、3和4在A上處理, 作業(yè) 5 和 6 在 B 上處理。參考答案:(1,1,2,2,1,1)15詳細解答: 試題 5 第 14 題: 閱讀下列說明和C+弋碼,回答下列問題。 說明 某咖啡店賣咖啡時,可以根據(jù)顧客的要求在其中加入各種配料,咖

15、啡店會 根據(jù)所加入的配料來計算費用??Х鹊晁?yīng)的咖啡及配料的種類和價格如表 2-8 所示。C+ 代碼#include iostream #include string using namespace std;consr int ESPRESSO_PRICE = 25; const int DRAKROAST_PRICE = 20;const int MOCHA_PRICE = 10;const int WHIP_PRICE = 8; class Beverage / 飲料: string description;public: () return description;/ 配/class

16、CondimentDecorator: public Beverage 料protected: ;class Espresso: public Beverage 蒸餾咖啡public:Espresso () description="Espresso" int cost () return ESPRESSO_PRICE; ;class DarkRoast: public Beverage / 深度烘培咖啡 public: DarkRoast() description = "DardRoast" int cost() return DRAKROAST_P

17、RICE; ;class Mocha: public CondimentDecorator / 摩卡public: Mocha (Beverage*beverage) this-beverage=beverage; string getDescription() return beverage-getDescription()+",Mocha" int cost() return MOCHA_PRICE+beverage- cost(); ;class Whip: public CondimentDecorator / 奶泡public: Whip (Beverage*be

18、verage) this-beverage=beverage; string getDescription() return beverage-getDescription()+",Whip" int cost() return WHIP_PRICE+beverage- cost(); int main()Beverage* beverage = new DarkRoast() ; beverage=new Mocha() ;beverage=new Whip () ;cout beverage- getDescription() " ¥" b

19、everage- cost() end1;return 0; 編譯運行上述程序,其輸出結(jié)果為:DarkRoast, Mocha Whip ¥ 38。參考答案:protectedvirtual stringcost()=0 Beverage* beveragegetDescriptionvirtualbeverage beverageint詳細解答: 試題 6 第 15 題: 閱讀下列說明和 Java 代碼,回答下列問題。 說明 某咖啡店賣咖啡時,可以根據(jù)顧客的要求在其中加入各種配料, 咖啡店會根據(jù)所加入的配料來計算費用??Х鹊晁?yīng)的咖啡及配料的種類和價格如表 2-9 所示。 現(xiàn) 采

20、用裝飾器 (Decorator) 模式來實現(xiàn)計算費用的功能,得到如圖 2-15 所示的類圖。Java 代碼 import java.util.*:classBeverage / 飲 料Stringdescription ="Unknown Beverage"public() returndescription; public; abstract class CondimentDecorator extendsBeverage / 配料 ; classEspresso extends Beverage / 蒸餾咖啡publicprivate final int ESPRESS

21、O_PRIC=E 25;Espresso()description="Espresso"publicintcost()returnESPRESSO_PRICE; classDarkRoast extendsBeverage /深度烘培咖啡private finalint DARKROAST_PRIC=E 20;publicDarkRoast() description = "DarkRoast"publicint cost() return DARKROASPTRICE;classMocha extends CondimentDecorator / 摩 卡private final int MOCHA_PRIC=E 10;public Mocha(Beverage bevera

溫馨提示

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

評論

0/150

提交評論