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

下載本文檔

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

文檔簡介

上六個月軟件設計師考試下午題試題一(共15分)

閱讀下列闡明和圖,回答問題1至問題4,將解答填入答題紙的對應欄內(nèi)。

【闡明】

某學校開發(fā)圖書管理系統(tǒng),以記錄圖書館藏圖書及其借出和償還狀況,提供應借閱者借閱圖書功能,提供應圖書館管理員管理和定期更新圖書表功能。重要功能的詳細描述如下:

(1)處理借閱。借閱者要借閱圖書時,系統(tǒng)必須對其身份(借閱者ID)進行檢查。通過與教務處維護的學生數(shù)據(jù)庫、人事處維護的職工數(shù)據(jù)庫中的數(shù)據(jù)進行比對,以驗證借閱者ID與否合法,若合法,則檢查借閱者在逾期未還圖書表中與否有逾期未還圖書,以及罰金表中的罰金與否超過限額。假如沒有逾期未還圖書并且罰金未超過限額,則容許借閱圖書,更新圖書表,并將借閱的圖書存入借出圖書表,借閱者償還所借圖書時,先由圖書館管理員檢查圖書與否缺失或損壞,若是,則對借閱者處以對應罰金并存入罰金表;然後,檢查所還圖書與否逾期,若是,執(zhí)行“處理逾期”操作;最終,更新圖書表,刪除借出圖書表中的對應記錄。

(2)維護圖書。圖書館管理員查詢圖書信息;在新進圖書時錄入圖書信息,存入圖書表;在圖書丟失或損壞嚴重時,從圖書表中刪除該圖書記錄。

(3)處理逾期。系統(tǒng)在每周一記錄逾期未還圖書,逾期未還的圖書按規(guī)則計算罰金,并記入罰金表,并給有逾期未還圖書的借閱者發(fā)送提醒消息。借閱者在借閱和償還圖書時,若罰金超過限額,管理員收取罰金,并更新罰金表中的罰金額度。

現(xiàn)采用構造化措施對該圖書管理系統(tǒng)進行分析與設計,獲得如圖1-1所示的頂層數(shù)據(jù)流圖和圖1.2所示的0層數(shù)據(jù)流圖。

【問題1】(4分)

使用闡明中的詞語,給出圖1-1中的實體E1-E4的名稱。

【問題2】(4分)

使用闡明中的詞語,給出圖1-2中的數(shù)據(jù)存儲D1~D4的名稱。

【問題3】(5分)

在DFD建模時,需要對有些復雜加工(處理)進行深入精化,繪制下層數(shù)據(jù)流圖。針對圖1-2中的加工“處理借閱”,在1層數(shù)據(jù)流圖中應分解為哪些加工?(使用闡明中的術語)

【問題4】(2分)

闡明【問題3】中繪制1層數(shù)據(jù)流圖時要注意的問題。試題二(共15分)

閱讀下列闡明,回答問題1至問題3,將解答填入答題紙的對應欄內(nèi)。

【闡明】

某醫(yī)院擬開發(fā)一套住院病人信息管理系統(tǒng),以以便對住院病人、醫(yī)生、護士和手術等信息進行管理。

【需求分析】

(1)系統(tǒng)登記每個病人的住院信息,包括:病案號、病人的姓名、性別、地址、身份證號、電話號碼、入院時問及病床婷信息,每個病床有唯一所屬的病區(qū)及病房,如表2-1所示。其中病案號唯一標識病人本次住院的信息。

(2)在一種病人的一次住院期間,由一名醫(yī)生對該病人的病情進行診斷,并填寫一份診斷書,如表2-2所示。對于需要進行一次或多次手術的病人,系統(tǒng)記錄手術名稱、手術室、手術曰期、手術時間、主刀醫(yī)生及多名協(xié)助醫(yī)生,每名醫(yī)生在手術中的責任不一樣,如表2-3所示,其中手術室包括手術室號、樓層、地點和類型等信息。

(3)護士分為兩類:病床護士和手術室護士。每個病床護士負責護理一種病區(qū)內(nèi)的所有病人,每個病區(qū)由多名護士負責護理。手術室護士負責手術室的護理工作。每個手術室護士負責多種手術室,每個手術室由多名護士負責,每個護士在手術室中有不一樣的責任,并由系統(tǒng)記錄其責任。

【概念模型設計】

根據(jù)需求階段搜集的信息,設計的實體聯(lián)絡圖(不完整)如圖2-1所示。

【邏輯構造設計】

根據(jù)概念模型設計階段完畢的實體聯(lián)絡圖,得出如下關系模式(不完整):

病床(病床號,病房,病房類型,所屬病區(qū))

護士(護士編號,姓名,類型,性別,級別)

病房護士((1))

手術室(手術室號,樓層,地點,類型)

手術室護士((2))

病人((3),姓名,性別,地址,身份證號,電話號碼,入院時間)

醫(yī)生(醫(yī)生編號,姓名,性別,職稱,所屬科室)

診斷書((4),診斷,診斷時間)

手術安排(病案號,手術室號,手術時間,手術名稱)

手術醫(yī)生安排((5),醫(yī)生責任)

【問題1】(6分)

補充圖2-1中的聯(lián)絡和聯(lián)絡的類型。

【問題2】(5分)

根據(jù)圖2-1,將邏輯構造設計階段生成的關系模式中的空(1)~(5)補充完整,并用下劃線指出主鍵。

【問題3】(4分)

假如系統(tǒng)還需要記錄醫(yī)生給病人的用藥狀況,即記錄醫(yī)生給病人所開處方中藥物的名稱、用量、價格、藥物的生產(chǎn)廠家等信息。請根據(jù)該規(guī)定,對圖2-1進行修改,畫出補充後的實體、實體間聯(lián)絡和聯(lián)絡的類型。試題三(共15分)

閱讀下列闡明和圖,回答問題1至問題3,將解答填入答題紙的對應欄內(nèi)。

【闡明】

某網(wǎng)上購物平臺的重要功能如下:

(1)創(chuàng)立訂單。顧客(Customer)在線創(chuàng)立訂單(Order),重要操作是向訂單中添加項目、從訂單中刪除項目。訂單中應列出所訂購的商品(Product)及其數(shù)量(quantities)。

(2)提交訂單。訂單通過網(wǎng)絡來提交。在提交訂單時,顧客需要提供其姓名(name)、收貨地址(address)、以及付款方式(form.ofpayment)(預付卡、信用卡或者現(xiàn)金)。為了制定送貨計劃以及安排送貨車輛,系統(tǒng)必須確定訂單量(volume)。除此之外,還必須記錄每種商品的名稱(Name)、造價(costprice)、售價(saleprice)以及單件商品的包裝體積(cubicvolume)。

(3)處理訂單。訂單處理人員接受來自系統(tǒng)的訂單;根據(jù)訂單內(nèi)容,安排配貨,制定送貨計劃。在送貨計劃中不僅要指明發(fā)貨曰期(deliverydate),還要記錄每個訂單的限時發(fā)送規(guī)定(DeliveryTimeWindow)。

(4)派單。訂單處理人員將已配好貨的訂單轉(zhuǎn)交給派送人員。

(5)送貨/收貨。派送人員將貨品送到顧客指定的收貨地址。當顧客收貨時,需要在運貨單(deliveryslip)上簽收。簽收後的運貨單最終需交還給訂單處理人員。

(6)收貨確認。當訂單處理人員收到簽收過的運貨單後,會和顧客進行一次再確認。

現(xiàn)采用面向?qū)ο蟠胧╅_發(fā)上述系統(tǒng),得到如圖3-1所示的用例圖和圖3-2所示的類圖。

【問題1】(5分)

根聽闡明中的描述,給出圖3-1中A1~A3所對應的參與者名稱和U1~U2處所對應的用例名稱。

【問題2】(7分)

根聽闡明中的描述,給出圖3-2中C1~C3所對應的類名以及(1)~(4)處所對應的多重度(類名使用闡明中給出的英文詞匯)。

【問題3】(3分)

根聽闡明中的描述,將類C2和C3的屬性補充完整(屬性名使用闡明中給出的英文詞匯)。試題四(共15分)

閱讀下列闡明和C代碼,回答問題1至問題3,將解答寫在答題紙的對應欄內(nèi)。

【闡明】

用兩臺處理機A和B處理n個作業(yè)。設A和B處理第i個作業(yè)的時間分別為ai和bi。由于各個作業(yè)的特點和機器性能的關系,對某些作業(yè),在A上處理時間長,而對某些作業(yè)在B上處理時間長。一臺處理機在某個時刻只能處理一種作業(yè),并且作業(yè)處理是不可中斷的,每個作業(yè)只能被處理一次?,F(xiàn)要找出一種最優(yōu)調(diào)度方案,使得n個作業(yè)被這兩臺處理機處理完畢的時間(所有作業(yè)被處理的時間之和)至少。

算法環(huán)節(jié):

(1)確定候選解上界為R短的單臺處理機處理所有作業(yè)的完畢時間m,

(2)用p(x,y,k)=1表達前k個作業(yè)可以在A用時不超過x且在B用時不超過y時間內(nèi)處理完畢,則p(x,y,k)=p(x-ak,y,k-1)||p(x,y-bk,k-1)(||表達邏輯或操作)。

(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>

intn,m;

inta[60],b[60],p[100][100][60];

voidread(){/*輸入n、a、b,求出m,代碼略*/}

voidschedule(){/*求解過程*/

intx,y,k;

for(x=0;x<=m;x++){

for(y=0;y<m;y++){

(1)

for(k=1;k<n;k++)

p[x][y][k]=0;

}

}

for(k=1;k<n;k++){

for(x=0;x<=m;x++){

for(y=0;y<=m;y++){

if(x-a[k-1]>=0)(2);

if((3))p[x][y][k]=(p[x][y][k]||p[x][y-b[k-1]][k-1]);

}

}

}

}

voidwrite(){/*確定最優(yōu)解并輸出*/

intx,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("\n%d\n",max),

}

voidmain(){read();schedule();write();}

【問題1】(9分)

根據(jù)以上闡明和C代碼,填充C代碼中的空(1)~(5)。

【問題2】(2分)

根據(jù)以上C代碼,算法的時間復雜度為(6)(用O符號表達)。

【問題3】(4分)

考慮6個作業(yè)的實例,各個作業(yè)在兩臺處理機上的處理時間如表4-1所示。該實例的最優(yōu)解為(7),最優(yōu)解的值(即最短處理時間)為(8)。最優(yōu)解用(x1,x2,x3,x4,x5,x6)表達,其中若第i個作業(yè)在A上赴理,則xi=l,否則xi=2。如(1,1,1,1,2,2)表達作業(yè)1,2,3和4在A上處理,作業(yè)5和6在B上處理。

試題五(共15分,在試題五和試題六中任選1題解答,假如兩題都解答,則視試題五的解答有效。)

閱讀下列闡明和C++代碼,將應填入(n)處的字句寫在答題紙的對應欄內(nèi)。

【闡明】

某咖啡店當賣咖啡時,可以根據(jù)顧客的規(guī)定在其中加入多種配料,咖啡店會根據(jù)所加入的配料來計算費用??Х鹊晁目Х燃芭淞系姆N類和價格如下表所示。

【C++代碼】

#include<iostream>

#include<string>

usingnamespacestd;

constintESPRESSO_PRICE=25;

constintDRAKROAST_PRICE=20;

constintMOCHA_PRICE=10;

constintWHIP_PRICE=8;

classBeverage{//飲料

(1):stringdescription;

public:

(2)(){returndescription;}

(3);

};

classCondimentDecorator:publicBeverage{//配料

protected:

(4);

};

classEspresso:publicBeverage{//蒸餾咖啡

public:

Espresso(){description="Espresso";}

intcost(){returnESPRESSO_PRICE;}

};

classDarkRoast:publicBeverage{//深度烘焙咖啡

public:

DarkRoast(){description="DardRoast";}

intcost(){returnDRAKROAST_PRICE;}

};

classMocha:publicCondimentDecorator{//摩卡

public:

Mocha(Beverage*beverage){this->beverage=beverage;}

stringgetDescription(){returnbeverage->getDescription()+",Mocha";}

intcost(){returnMOCHA_PRICE+beverage->cost();}

};

classWhip:publicCondimentDecorator{//奶泡

public:

Whip(Beverage*beverage){this->beverage=beverage;}

stringgetDescription(){returnbeverage->getDescription()+",Whip";}

intcost(){returnWHIP_PRICE+beverage->cost();}

};

intmain(){

Beverage*beverage=newDarkRoast();

beverage=newMocha((5));

beverage=newWhip((6));

cout<<beverage->getDescription()<<"¥"<<beverage->cost()endl;

return0;

}

編譯運行上述程序,其輸出成果為:

DarkRoast,Mocha,Whip¥38試題六(共15分)

閱讀下列闡明和Java代碼,將應填入(n)處的字句寫在答題紙的對應欄內(nèi)。

【闡明】

某咖啡店當賣咖啡時,可以根據(jù)顧客的規(guī)定在其中加入多種配料,咖啡店會根據(jù)所加入的配料來計算費用。咖啡店所供應的咖啡及配料的種類和價格如下表所示。

【Java代碼】

importjava.util.*;

(1)classBeverage{//飲料

Stringdescription="UnknownBeverage";

public(2)(){returndescription;}

public(3);

}

abstractclassCondimentDecoratorextendsBeverage{//配料

(4);

}classEspressoextendsBeverage{//蒸餾咖啡

privatefinalintESPRESSO_PRICE=25;

publicEspresso(){description="Espresso";}

publicintcost(){returnESPRESSO_PRICE;}

}classDarkRoastextendsBeverage{//深度烘焙咖啡

privatefinalintDARKROAST_PRICE=20;

publicDarkRoast(){description="DarkRoast";}

publicintcost(){rcturnDARKROASTPRICE;}

}

classMochaextendsCondimentDecorator{//摩卡

privatefinalintMOCHA_PRICE=10;

publicMocha(Beveragebeverage){

this.b

溫馨提示

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

最新文檔

評論

0/150

提交評論