上半年軟件設計師下午試題及答案_第1頁
上半年軟件設計師下午試題及答案_第2頁
上半年軟件設計師下午試題及答案_第3頁
上半年軟件設計師下午試題及答案_第4頁
上半年軟件設計師下午試題及答案_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、試題一(共15分) 閱讀下列說明和圖,回答問題1至問題4,將解答填入答題紙的對應欄內。【說明】 某學校開發圖書管理系統,以記錄圖書館藏圖書及其借出和歸還情況,提供給借閱者借閱圖書功能,提供給圖書館管理員管理和定期更新圖書表功能。主要功能的具體描述如下:(1)處理借閱。借閱者要借閱圖書時,系統必須對其身份(借閱者ID)進行檢查。通過與教務處維護的學生數據庫、人事處維護的職工數據庫中的數據進行比對,以驗證借閱者ID是否合法,若合法,則檢查借閱者在逾期未還圖書表中是否有逾期未還圖書,以及罰金表中的罰金是否超過限額。如果沒有逾期未還圖書并且罰金未超過限額,則允許借閱圖書,更新圖書表,并將借閱的圖書存入

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

3、分析與設計,獲得如圖1-1所示的頂層數據流圖和圖1.2所示的0層數據流圖。【問題1】(4分)使用說明中的詞語,給出圖1-1中的實體E1-E4的名稱。【問題2】(4分)使用說明中的詞語,給出圖1-2中的數據存儲D1D4的名稱。【問題3】 (5分)在DFD建模時,需要對有些復雜加工(處理)進行進一步精化,繪制下層數據流圖。針對圖1-2中的加工“處理借閱”,在1層數據流圖中應分解為哪些加工?(使用說明中的術語)【問題4】(2分)說明【問題3】中繪制1層數據流圖時要注意的問題。試題二(共15分) 閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應欄內。【說明】 某醫院擬開發一套住院病人信息管理系

4、統,以方便對住院病人、醫生、護士和手術等信息進行管理。【需求分析】 (1)系統登記每個病人的住院信息,包括:病案號、病人的姓名、性別、地址、身份證號、電話號碼、入院時問及病床婷信息,每個病床有唯一所屬的病區及病房,如表2-1所示。其中病案號唯一標識病人本次住院的信息。(2)在一個病人的一次住院期間,由一名醫生對該病人的病情進行診斷,并填寫一份診斷書,如表2-2所示。對于需要進行一次或多次手術的病人,系統記錄手術名稱、手術室、手術日期、手術時間、主刀醫生及多名協助醫生,每名醫生在手術中的責任不同,如表2-3所示,其中手術室包含手術室號、樓層、地點和類型等信息。(3)護士分為兩類:病床護士和手術室

5、護士。每個病床護士負責護理一個病區內的所有病人,每個病區由多名護士負責護理。手術室護士負責手術室的護理工作。每個手術室護士負責多個手術室,每個手術室由多名護士負責,每個護士在手術室中有不同的責任,并由系統記錄其責任。 【概念模型設計】根據需求階段收集的信息,設計的實體聯系圖(不完整)如圖2-1所示。【邏輯結構設計】根據概念模型設計階段完成的實體聯系圖,得出如下關系模式(不完整):病床(病床號,病房,病房類型,所屬病區)護士(護士編號,姓名,類型,性別,級別)病房護士( (1) )手術室(手術室號,樓層,地點,類型)手術室護士( (2) )病人( (3),姓名,性別,地址,身份證號,電話號碼,入

6、院時間)醫生(醫生編號,姓名,性別,職稱,所屬科室)診斷書( (4),診斷,診斷時間)手術安排(病案號,手術室號,手術時間,手術名稱)手術醫生安排( (5) ,醫生責任)【問題1】(6分)補充圖2-1中的聯系和聯系的類型。【問題2】(5分)根據圖2-1,將邏輯結構設計階段生成的關系模式中的空(1)(5)補充完整,并用下劃線指出主鍵。【問題3】(4分)如果系統還需要記錄醫生給病人的用藥情況,即記錄醫生給病人所開處方中藥品的名稱、用量、價格、藥品的生產廠家等信息。請根據該要求,對圖2-1進行修改,畫出補充后的實體、實體間聯系和聯系的類型。試題三(共15分)閱讀下列說明和圖,回答問題1至問題3,將解

7、答填入答題紙的對應欄內。【說明】 某網上購物平臺的主要功能如下: (1)創建訂單。顧客( Customer)在線創建訂單(Order),主要操作是向訂單中添加項目、從訂單中刪除項目。訂單中應列出所訂購的商品(Product)及其數量(quantities)。(2)提交訂單。訂單通過網絡來提交。在提交訂單時,顧客需要提供其姓名(name)、收貨地址(address)、以及付款方式(form. of payment)(預付卡、信用卡或者現金)。為了制定送貨計劃以及安排送貨車輛,系統必須確定訂單量(volume)。除此之外,還必須記錄每種商品的名稱(Name)、造價(cost price)、售價(s

8、ale price)以及單件商品的包裝體積(cubic volume)。(3)處理訂單。訂單處理人員接收來自系統的訂單;根據訂單內容,安排配貨,制定送貨計劃。在送貨計劃中不僅要指明發貨日期(delivery date),還要記錄每個訂單的限時發送要求(Delivery Time Window)。(4)派單。訂單處理人員將己配好貨的訂單轉交給派送人員。(5)送貨收貨。派送人員將貨物送到顧客指定的收貨地址。當顧客收貨時,需要在運貨單(delivery slip)上簽收。簽收后的運貨單最終需交還給訂單處理人員。(6)收貨確認。當訂單處理人員收到簽收過的運貨單后,會和顧客進行一次再確認。現采用面向對象

9、方法開發上述系統,得到如圖3-1所示的用例圖和圖3-2所示的類圖。【問題1】 (5分)根據說明中的描述,給出圖3-1中A1A3所對應的參與者名稱和U1U2處所對應的用例名稱。【問題2】(7分)根據說明中的描述,給出圖3-2中C1C3所對應的類名以及(1)(4)處所對應的多重度(類名使用說明中給出的英文詞匯)。【問題3】(3分)根據說明中的描述,將類C2和C3的屬性補充完整(屬性名使用說明中給出的英文詞匯)。試題四(共15分)閱讀下列說明和C代碼,回答問題1至問題3,將解答寫在答題紙的對應欄內。【說明】用兩臺處理機A和B處理n個作業。設A和B處理第i個作業的時間分別為ai和bi。由于各個作業的特

10、點和機器性能的關系,對某些作業,在A上處理時間長,而對某些作業在B上處理時間長。一臺處理機在某個時刻只能處理一個作業,而且作業處理是不可中斷的,每個作業只能被處理一次。現要找出一個最優調度方案,使得n個作業被這兩臺處理機處理完畢的時間(所有作業被處理的時間之和)最少。算法步驟:(1)確定候選解上界為R短的單臺處理機處理所有作業的完成時間m,(2)用p(x,y,k)=1表示前k個作業可以在A用時不超過x且在B用時不超過y時間 內處理完成,則p(x,y,k)=p(x-ak,y,k-1)|p(x,y-bk,k-1)(|表示邏輯或操作)。(3)得到最短處理時問為min(max(x,y)。【C代碼】下面

11、是該算法的C語言實現。(1)常量和變量說明n: 作業數m: 候選解上界a: 數組,長度為n,記錄n個作業在A上的處理時間,下標從0開始b: 數組,長度為n,記錄n個作業在B上的處理時間,下標從0開始k: 循環變量p: 三維數組,長度為(m+1)*(m+1)*(n+1)temp: 臨時變量max: 最短處理時間(2)C代碼#include<stdio.h>int n, m;int a60, b60, p10010060;void read() /*輸入n、a、b,求出m,代碼略*/void schedule() /*求解過程*/int x,y,k;for(x=0;x<=m;x+

12、)for(y=0;y<m;y+)(1)for(k=1;k<n;k+)pxyk=0;for(k=1;k<n;k+)for(x=0;x<=m;x+)for(y=0;y<=m;y+)if(x - ak-1>=0) (2) ;if( (3) )pxyk=(pxyk |pxy-bk-1k-1);void write() /*確定最優解并輸出*/int x,y,temp,max=m;for(x=0;x<=m;x+)for(y=0;y<=m;y+)if( (4) )temp=(5) ;if(temp< max)max = temp;printf(&quo

13、t;n%dn",max),void main()read();schedule();write();【問題1】 (9分)根據以上說明和C代碼,填充C代碼中的空(1)(5)。【問題2】(2分)根據以上C代碼,算法的時間復雜度為(6)(用O符號表示)。【問題3】(4分)考慮6個作業的實例,各個作業在兩臺處理機上的處理時間如表4-1所示。該實例的最優解為(7),最優解的值(即最短處理時間)為(8)。最優解用(x1,x2,x3,x4,x5,x6)表示,其中若第i個作業在A上赴理,則xi=l,否則xi=2。如(1,1,1,1,2,2)表示作業1,2,3和4在A上處理,作業5和6在B上處理。試題

14、五(共15分,在試題五和試題六中任選1題解答,如果兩題都解答,則視試題五的解答有效。) 閱讀下列說明和C+代碼,將應填入(n)處的字句寫在答題紙的對應欄內。【說明】某咖啡店當賣咖啡時,可以根據顧客的要求在其中加入各種配料,咖啡店會根據所加入的配料來計算費用。咖啡店所供應的咖啡及配料的種類和價格如下表所示。【C+代碼】#include <iostream>#include <string>using namespace std;const int ESPRESSO_PRICE = 25;const int DRAKROAST_PRICE = 20;const int MO

15、CHA_PRICE = 10;const int WHIP_PRICE = 8;class Beverage /飲料(1) :string description;public:(2) () return description; (3) ;class CondimentDecorator : public Beverage /配料protected:(4) ;class Espresso : public Beverage /蒸餾咖啡public:Espresso () description="Espresso" int cost()return ESPRESSO_PR

16、ICE; ;class DarkRoast : public Beverage /深度烘焙咖啡public:DarkRoast() description = "DardRoast" int cost() return DRAKROAST_PRICE; ;class Mocha : public CondimentDecorator 摩卡public:Mocha(Beverage*beverage) this->beverage=beverage; string getDescription() return beverage->getDescription()

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

18、 ;int main() Beverage* beverage = new DarkRoast();beverage=new Mocha( (5) );beverage=new Whip( (6) );cout<<beverage->getDescription()<<"¥"<<beverage->cost() endl;return 0;編譯運行上述程序,其輸出結果為:DarkRoast, Mocha, Whip ¥38 試題六(共15分) 閱讀下列說明和Java代碼,將應填入(n)處的字句寫在答題紙的對應欄內。【說明】某咖

19、啡店當賣咖啡時,可以根據顧客的要求在其中加入各種配料,咖啡店會根據所加入的配料來計算費用。咖啡店所供應的咖啡及配料的種類和價格如下表所示。【Java代碼】import java.util.*;(1) class Beverage /飲料String description = "Unknown Beverage"public (2) ()return description;public (3) ;abstract class CondimentDecorator extends Beverage /配料(4) ;class Espresso extends Beverag

20、e /蒸餾咖啡private final int ESPRESSO_PRICE = 25;public Espresso() description="Espresso" public int cost() return ESPRESSO_PRICE; class DarkRoast extends Beverage /深度烘焙咖啡private finalint DARKROAST_PRICE = 20;public DarkRoast() description = "DarkRoast" public int cost() rcturn DARKROAST PRICE; class Mocha extends CondimentDecorator /摩卡private final int MOCHA_PRICE = 10;public Mocha(Beverage beverage) this.bevera

溫馨提示

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

評論

0/150

提交評論