2022年上半年(下午)《軟件設(shè)計(jì)師》真題_第1頁(yè)
2022年上半年(下午)《軟件設(shè)計(jì)師》真題_第2頁(yè)
2022年上半年(下午)《軟件設(shè)計(jì)師》真題_第3頁(yè)
2022年上半年(下午)《軟件設(shè)計(jì)師》真題_第4頁(yè)
2022年上半年(下午)《軟件設(shè)計(jì)師》真題_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

精品文檔-下載后可編輯年上半年(下午)《軟件設(shè)計(jì)師》真題

圖1-20層數(shù)據(jù)流圖

【問題1】

使用說明中的詞語,給出圖1-1中的實(shí)體E1-E4的名稱。

【問題2】

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

【問題3】

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

【問題4】

說明【問題3】中繪制1層數(shù)據(jù)流圖時(shí)要注意的問題。

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

【需求分析】

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

表2-1住院登記表

(2)在一個(gè)病人的一次住院期間,由一名醫(yī)生對(duì)該病人的病情進(jìn)行診斷,并填寫一份診斷書,如表2-2所示。對(duì)于需要進(jìn)行一次或多次手術(shù)的病人,系統(tǒng)記錄手術(shù)名稱、手術(shù)室、手術(shù)日期、手術(shù)時(shí)間、主刀醫(yī)生及多名協(xié)助醫(yī)生,每名醫(yī)生在手術(shù)中的責(zé)任不同,如表2-3所示,其中手術(shù)室包含手術(shù)室號(hào)、樓層、地點(diǎn)和類型等信息。

表2-2診斷書

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

表2-3手術(shù)安排表

【概念模型設(shè)計(jì)】

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

圖2-1實(shí)體聯(lián)系圖

【邏輯結(jié)構(gòu)設(shè)計(jì)】

根據(jù)概念模型設(shè)計(jì)階段完成的實(shí)體聯(lián)系圖,得出如下關(guān)系模式(不完整):

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

護(hù)士(護(hù)士編號(hào),姓名,類型,性別,級(jí)別)

病床護(hù)士((1))

手術(shù)室(手術(shù)室號(hào),樓層,地點(diǎn),類型)

手術(shù)室護(hù)士((2))

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

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

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

手術(shù)安排(病案號(hào),手術(shù)室號(hào),手術(shù)時(shí)間,手術(shù)名稱)

手術(shù)醫(yī)生安排((5),醫(yī)生責(zé)任)

【問題1】(6分)

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

【問題2】(5分)

根據(jù)圖2-1,將邏輯結(jié)構(gòu)設(shè)計(jì)階段生成的關(guān)系模式中的空(1)~(5)補(bǔ)充完整,并用下劃線指出主鍵。

【問題3】(4分)

如果系統(tǒng)還需要記錄醫(yī)生給病人的用藥情況,即記錄醫(yī)生給病人所開處方中藥品的名稱、用量、價(jià)格、藥品的生產(chǎn)廠家等信息。請(qǐng)根據(jù)該要求,對(duì)圖2-1進(jìn)行修改,畫出補(bǔ)充后的實(shí)體、實(shí)體間聯(lián)系和聯(lián)系的類型。

5.某咖啡店當(dāng)賣咖啡時(shí),可以根據(jù)顧客的要求在其中加入各種配料,咖啡店會(huì)根據(jù)所加入的配料來計(jì)算費(fèi)用。咖啡店所供應(yīng)的咖啡及配料的種類和價(jià)格如下表所示。

現(xiàn)采用裝飾器(Decorator)模式來實(shí)現(xiàn)計(jì)算費(fèi)用的功能,得到如圖6-1所示的類圖

【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;

publicDarkRoast0{description="DarkRoast";}

publicintcost(){rcturnDARKROASTPRICE;}

}

classMochaextendsCondimentDecorator{//摩卡

privatefinalintMOCHA_PRICE=10;

publicMocha(Beveragebeverage){

this.beverage=beverage;

}

publicStringgetDescription(){

returnbeverage.getDescription0+",Mocha";

}

publicintcost(){

returnMOCHA_PRICE+beverage.cost();

}

}

classWhipextendsCondimentDecorator{//奶泡

privatefinalintWHIP_PRICE=8;

publicWhip(Beveragebeverage){this.beverage=beverage;}

publicStringgetDescription(){

returnbeverage.getDescription()+",Whip";

}

publicintcost(){returnWHIP_PRICE+beverage.cost();}

}

publicclassCoffee{

publicstaticvoidmain(Stringargs[]){

Beveragebeverage=newDarkRoast();

beverage=newMocha((5));

beverage=newWhip((6));

System.out.println(beverage.getDescription0+"¥"+beverage.cost());

}

}

編譯運(yùn)行上述程序,其輸出結(jié)果為:

DarkRoast,Mocha,Whip¥38

6.用兩臺(tái)處理機(jī)A和B處理n個(gè)作業(yè)。設(shè)A和B處理第i個(gè)作業(yè)的時(shí)間分別為ai和bi。由于各個(gè)作業(yè)的特點(diǎn)和機(jī)器性能的關(guān)系,對(duì)某些作業(yè),在A上處理時(shí)間長(zhǎng),而對(duì)某些作業(yè)在B上處理時(shí)間長(zhǎng)。一臺(tái)處理機(jī)在某個(gè)時(shí)刻只能處理一個(gè)作業(yè),而且作業(yè)處理是不可中斷的,每個(gè)作業(yè)只能被處理一次。現(xiàn)要找出一個(gè)最優(yōu)調(diào)度方案,使得n個(gè)作業(yè)被這兩臺(tái)處理機(jī)處理完畢的時(shí)間(所有作業(yè)被處理的時(shí)間之和)最少。

算法步驟:

(1)確定候選解上界為最短的單臺(tái)處理機(jī)處理所有作業(yè)的完成時(shí)間m,

(2)用p(x,y,k)=1表示前k個(gè)作業(yè)可以在A用時(shí)不超過x且在B用時(shí)不超過y時(shí)間內(nèi)處理完成,則

p(x,y,k)=p(x-ak,y,k-1)||p(x,y-bk,k-1)(||表示邏輯或操作)。

(3)得到最短處理時(shí)問為min(max(x,y))。

【C代碼】

下面是該算法的C語言實(shí)現(xiàn)。

(1)常量和變量說明

n:作業(yè)數(shù)

m:候選解上界

a:數(shù)組,長(zhǎng)度為n,記錄n個(gè)作業(yè)在A上的處理時(shí)間,下標(biāo)從0開始

b:數(shù)組,長(zhǎng)度為n,記錄n個(gè)作業(yè)在B上的處理時(shí)間,下標(biāo)從0開始

k:循環(huán)變量

p:三維數(shù)組,長(zhǎng)度為(m+1)*(m+1)*(n+1)

temp:臨時(shí)變量

max:最短處理時(shí)間

(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代碼,算法的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論