《2021年上半年(下午)《軟件設(shè)計(jì)師》真題》由會(huì)員分享,可在線閱讀,更多相關(guān)《2021年上半年(下午)《軟件設(shè)計(jì)師》真題(7頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、2021年上半年(下午)《軟件設(shè)計(jì)師》真題
注意:圖片可根據(jù)實(shí)際需要調(diào)整大小
卷面總分:6分
答題時(shí)間:240分鐘
試卷題量:6題
練習(xí)次數(shù):0次
問(wèn)答題 (共6題,共6分)
1.閱讀下列說(shuō)明和C++代碼,將應(yīng)填入(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。
層疊買單是留口風(fēng)格的軟件系統(tǒng)中經(jīng)常采用的一種系統(tǒng)功能組織方式。層疊菜單(如到5-1示例)中包含的可能是一個(gè)菜單項(xiàng)(直接對(duì)應(yīng)某個(gè)功能),也可能是一個(gè)子菜單?,F(xiàn)采用組合(Compa site)設(shè)計(jì)模式實(shí)現(xiàn)層疊菜單,得到如圖5-2所示的類圖。
2、
正確答案:
本題解析:
1:protected
2:virtual void addMenuElement(MenuComponent* element)=0;
3:virtual list<MenuComponent*>getElement()=0;
4:list<MenuComponent*>elementList;
5:mainMenu->addMenuElement(sumMenu)
2.某中醫(yī)醫(yī)院擬開(kāi)發(fā)一套線上抓藥APP,允許患者憑借該醫(yī)院醫(yī)生開(kāi)具的處方線上抓藥,
3、并提供免費(fèi)送藥上門服務(wù)。該系統(tǒng)的主要功能描述如下:
(1)注冊(cè)?;颊邟呙栳t(yī)院提供的=維碼進(jìn)行注冊(cè),注冊(cè)過(guò)程中,患者需提供其病歷號(hào),系統(tǒng)根據(jù)病歷號(hào)自動(dòng)獲取患者基本信息。
(2)登錄。已注冊(cè)的患者可以登錄系統(tǒng)進(jìn)行線上抓藥,未冊(cè)的患者系統(tǒng)拒絕其登陸。
(3)確認(rèn)處方?;颊叩卿浐螅梢圆榭瘁t(yī)生開(kāi)具的所有處方?;颊哌x擇需要抓藥的處方和數(shù)量(需要抓幾副藥), 同時(shí)說(shuō)明是否需要煎制。選擇取藥方式:自行到店取藥或者送藥上門,若選擇送藥上門,患者需要提供提供收貸人姓名、聯(lián)系方式和收貨地址。系統(tǒng)自動(dòng)計(jì)算本次抓藥的費(fèi)用,患者可以使用微信或支付寶等支付方式支付費(fèi)用。支付成功之后,處方被發(fā)送給藥師進(jìn)行藥品配制。
4、
根據(jù)說(shuō)明中的描述,給出圖3-1中A1~ A3所對(duì)應(yīng)的參與者名稱和U1 ~U4處所對(duì)應(yīng)的用例名稱。
[問(wèn)題2] (5分)
根據(jù)說(shuō)明中的描述,給出圖3-2中C1~C5所對(duì)應(yīng)的類名。
[問(wèn)題3] (3分)
簡(jiǎn)要解釋用例之間的include、extend 和generalize關(guān)系的內(nèi)涵。
正確答案:
本題解析:
問(wèn)題1:
A1:患者;A2:快遞員;A3:藥師
U1:確認(rèn)處方;U2:支付;U3:微信支付;U4:支付寶支付
問(wèn)題2:
C1:處方;C2:煎制處方;C3:非煎制處方;C4:藥品;
5、C5:快遞信息
新版章節(jié)練習(xí),考前壓卷,完整優(yōu)質(zhì)題庫(kù)+考生筆記分享,實(shí)時(shí)更新,軟件,
問(wèn)題3:
包含(include)∶ include為包含關(guān)系,當(dāng)兩個(gè)或多個(gè)用例中共用一組相同的動(dòng)作,這時(shí)可以將這組相同的動(dòng)作抽出來(lái)作為一個(gè)獨(dú)立的子用例,供多個(gè)基用例所共享。因?yàn)樽佑美怀槌?,基用例并非一個(gè)完整的用例,所以include關(guān)系中的基用例必須和子用例一起使用才夠完整,子用例也必然被執(zhí)行。include關(guān)系在用例圖中使用帶箭頭的虛線表示(在線上標(biāo)注<<include>>),箭頭從基用例指向子用例。
擴(kuò)展(extend)∶ extend關(guān)系是對(duì)基用例的擴(kuò)展,基用例是一個(gè)完整的用例,即使沒(méi)有子用例
6、的參與,也可以完成一個(gè)完整的功能。extend的基用例中將存在一個(gè)擴(kuò)展點(diǎn),只有當(dāng)擴(kuò)展點(diǎn)被激活時(shí),子用例才會(huì)被執(zhí)行。 exte nd關(guān)系在用例圖中使用帶箭頭的虛線表示(在線上標(biāo)注<<extend>>),箭頭從子用例指向基用例。
泛化(generalization)∶ 泛化關(guān)系是一種繼承關(guān)系,子用例將繼承基用例的所有行為,關(guān)系和通信關(guān)系,也就是說(shuō)在任何使用基用例的地方都可以用子用例來(lái)代替。泛化關(guān)系在用例圖中使用空心的箭頭表示,箭頭方向從子用例指向基用例。
3.閱讀下列說(shuō)明和C代碼,回答問(wèn)題1和問(wèn)題2,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
[說(shuō)明]
凸多邊形是指多邊形的
7、任意兩點(diǎn)的連線均落在多邊形的邊界或者內(nèi)部。相鄰的點(diǎn)連線落在多邊形邊上,稱為邊,不相鄰的點(diǎn)連線落在多邊形內(nèi)部。稱為弦。假設(shè)任意兩點(diǎn)連線上均有權(quán)重,凸多邊形最優(yōu)三幫劑分問(wèn)題定義為:求將凸多邊形劃分為不相交的三角形集合,且各三角形權(quán)重之和最小的剖分方案。每個(gè)三角形的權(quán)重為三條邊權(quán)重之和。
假設(shè)N個(gè)點(diǎn)的凸多邊形點(diǎn)編號(hào)為V1,V2,……,VN,若在VK處將原凸多邊形劃分為一個(gè)三角形V1VkVN,兩個(gè)子多邊形V1,V2,…,Vk和Vk,Vk+1,…VN,得到一個(gè)最優(yōu)的剖分方案,則該最優(yōu)剖分方案應(yīng)該包含這兩個(gè)子凸邊形的最優(yōu)剖分方案。用m[i][j]表示帶你Vi-1,Vi,…Vj構(gòu)成的凸多邊形的最優(yōu)剖分方案
8、的權(quán)重,S[i][j]記錄剖分該凸多邊形的k值。
其中:
Wj,i-1分別為該三角形三條邊的權(quán)重。求解凸多邊形的最優(yōu)剖分方案,即求解最小剖分的權(quán)重及對(duì)應(yīng)的三角形集。
[C代碼]
#include
#define N 6
//凸多邊形規(guī)模
int m[N+1] [N+1]; //m[i][j]表示多邊形Vi-1到Vj最優(yōu)三角剖分的權(quán)值
int S[N+1] [N+1]; //S[i][j]記錄多邊形Vi-1 到Vj最優(yōu)三角剖分的k值
int W[N+1] [N+1]; //凸多邊形的權(quán)重矩陣,在main函數(shù)中輸入
/*三角形的權(quán)重a,b,c,三角形的頂點(diǎn)下標(biāo)*/
int
9、 get_ triangle_weight(int a,int b,int c){
return W[a][b]+W[b][c]+W[c][a];
}
/*求解最優(yōu)值*/
void triangle_partition(){
int i,r,k,j;
int temp;
/*初始化*/
for(i=1;i<=N;i++){
m[i][i]=0;
}
/*自底向上計(jì)算m,S*/
for(r=2;(1);r++){/*r為子問(wèn)題規(guī)模*/ //r<=N
for(i=1;k<=N-r+1;i++){
(2); //int j=i+r-1
m[i][j]= m[i][j]+
10、m[i+1][j]+get_triangle_weight(i-1,i,j); /*k=j*/
S[i][j]=i;
for(k=j+1;k
temp=m[i][k]+m[k+1][j]+ge_triangle_ weight(i-1,k,j);
if((3)){/*判斷是否最小值*/ //temp
m[i][j]=temp;
S[i][j]=k;
}
}
}
}
}
/*輸出剖分的三角形i,j:凸多邊形的起始點(diǎn)下標(biāo)*/
void print_triangle(int i,int j){
if(i==j) return;
print_triangle(i,S[i]
11、[j]);
print_
triangle((4)); //s[i][j]+1,j
print(“V%d- -V%d-
-V%d\n“,i-1,S[i][j],j);
}
[問(wèn)題1] (8分)
根據(jù)說(shuō)明和C代碼,填充C代碼中的空(1) ~ (4)。
[問(wèn)題2] (7分)
根據(jù)說(shuō)明和C代碼,該算法采用的設(shè)計(jì)策略為(5),算法的時(shí)間復(fù)雜度為(6),空間復(fù)雜度為(7) (用0表示)。
正確答案:
本題解析:
問(wèn)題1:
(1)r<=N
(2)intj=i+r-1;
(3)temp<m[i
12、][j]
(4)s[i][j]+1
問(wèn)題2:
(5)動(dòng)態(tài)規(guī)劃
(6)O(n^3)
(7)O(n^2)
4.某停車場(chǎng)運(yùn)營(yíng)方為了降低運(yùn)營(yíng)成本,減員增效,提供良好的停車體驗(yàn),欲開(kāi)發(fā)無(wú)人值守停車系統(tǒng),該系統(tǒng)的主要功能是∶
1、 信息維護(hù)。管理人員對(duì)車位(總數(shù)、空余車位數(shù)等)計(jì)費(fèi)規(guī)則等基礎(chǔ)信息進(jìn)行設(shè)置。
2、 會(huì)員注冊(cè)。車主提供手機(jī)號(hào)、車牌號(hào)等信息進(jìn)行注冊(cè),提交充值信息 (等級(jí)、綁定并授權(quán)支付系統(tǒng)進(jìn)行充值或交費(fèi)的支付賬號(hào)) 不同級(jí)別和充值額度享受不同停車折扣點(diǎn)。
3、車牌識(shí)別。 當(dāng)車輛進(jìn)入停車場(chǎng)時(shí),若有 (空余車位數(shù)大干1),自動(dòng)識(shí)別車牌號(hào)后進(jìn)行道閘控制,
13、當(dāng)車主開(kāi)車離開(kāi)停車場(chǎng)時(shí),識(shí)別車牌號(hào),計(jì)費(fèi)成功后,請(qǐng)求道閘控制。
4、 計(jì)費(fèi)。 更新車輛離場(chǎng)時(shí)間,根據(jù)計(jì)費(fèi)規(guī)則計(jì)算出停車費(fèi)用,若車主是會(huì)員,提示停車費(fèi)用∶若儲(chǔ)存余額夠本次停車費(fèi)用,自動(dòng)扣費(fèi),更新余額,若儲(chǔ)值余額不足,自動(dòng)使用授權(quán)繳費(fèi)賬號(hào)請(qǐng)求支付系統(tǒng)進(jìn)行支付,獲取支付狀態(tài)。若非會(huì)員臨時(shí)停車,提示停車費(fèi)用,車主通過(guò)掃描費(fèi)用信息中的支付碼調(diào)用支付系統(tǒng)自助交費(fèi),獲取支付狀態(tài)。
5、 道閘控制。 根據(jù)道閘控制請(qǐng)求向道閘控制系統(tǒng)發(fā)送時(shí)干發(fā)行指令和接收道閘執(zhí)行狀態(tài)。若道閘執(zhí)行狀態(tài)為正常放行時(shí),對(duì)入場(chǎng)車輛,將車牌號(hào)及其入場(chǎng)時(shí)間信息存入停車記錄,修改空余車位數(shù);對(duì)出廠車輛更新停車狀態(tài),修改空余車位數(shù)。當(dāng)因道閘
14、重置系統(tǒng)出現(xiàn)問(wèn)題(斷網(wǎng)斷電或是故障為抬杠等情況),而無(wú)法在規(guī)定的時(shí)間內(nèi)接收到其返回的執(zhí)行狀態(tài)正常放行時(shí),系統(tǒng)向管理人員發(fā)送異常告警信息,之后管理人員安排故障排查處理,確保車輛有序出入停車場(chǎng)。
現(xiàn)采用結(jié)構(gòu)化方法對(duì)無(wú)人值守停車系統(tǒng)進(jìn)行分析與設(shè)計(jì),獲得如圖1-1所示的上下文數(shù)據(jù)流圖和圖1-2所示的 0層數(shù)據(jù)流圖。
使用說(shuō)明中的詞語(yǔ),給出圖1-1中的實(shí)體E1-E5的名稱。
【問(wèn)題2】(3分)
使用說(shuō)明中的詞語(yǔ),給出圖1-2中的數(shù)據(jù)存儲(chǔ)D1-D3的名稱。
【問(wèn)題3】(4分)
根據(jù)說(shuō)明和圖中術(shù)語(yǔ),補(bǔ)充圖1-2中缺失的數(shù)據(jù)流及其起點(diǎn)和終點(diǎn)。
【問(wèn)題4】(3分)
根據(jù)說(shuō)明,采用結(jié)構(gòu)化語(yǔ)言對(duì)
15、“道閘控制”的加工邏輯進(jìn)行描述。
正確答案:
本題解析:
5.某社區(qū)蔬菜團(tuán)購(gòu)網(wǎng)站,為規(guī)范商品收發(fā)流程,便于查詢客戶訂單情況,需要開(kāi)發(fā)個(gè)信息系統(tǒng)。請(qǐng)根據(jù)下述需求描述完成該系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)。
【需求描述】
(1)記錄蔬菜供應(yīng)商的信息,包括供應(yīng)商編號(hào)、地址和一個(gè)電話。
(2)記錄社區(qū)團(tuán)購(gòu)點(diǎn)的信息,包括團(tuán)購(gòu)點(diǎn)編號(hào)、地址和一個(gè)電話。
(3)記錄客戶信息,包括客戶姓名和一個(gè)電話??蛻艨梢栽诓煌纳鐓^(qū)團(tuán)購(gòu)點(diǎn)下訂單,不直接與蔬菜供應(yīng)商發(fā)生聯(lián)系。
(4)記錄客戶訂單信息,包括訂單
16、編號(hào)、團(tuán)購(gòu)點(diǎn)編號(hào)客戶電話,訂單內(nèi)容和日期。
【概念模型設(shè)計(jì)】
根據(jù)需求階段收集的信息,設(shè)計(jì)的實(shí)體聯(lián)系圖(暫不完整)如圖1-1 所示。
【邏輯結(jié)構(gòu)設(shè)計(jì)】
根據(jù)概念模型設(shè)計(jì)階段完成的實(shí)體聯(lián)系圖,得出如下關(guān)系模式(暫不完整)∶
蔬菜供貨商(供貨商編號(hào),地址,電話)
社區(qū)團(tuán)購(gòu)點(diǎn)(團(tuán)購(gòu)點(diǎn)編號(hào),地址,電話)
供貨(供貨商編號(hào),(a))
客戶(姓名,客戶電話)
訂單(訂單編號(hào),團(tuán)購(gòu)點(diǎn)編號(hào),訂單內(nèi)容,日期,
問(wèn)題內(nèi)容∶
【問(wèn)題1】(6分)
根據(jù)問(wèn)題描述,補(bǔ)充圖 1-1 的實(shí)體聯(lián)系圖
【問(wèn)題2】(4分)
補(bǔ)充邏輯結(jié)構(gòu)設(shè)計(jì)結(jié)果中的(a)、(b)兩處空缺及完整性約束關(guān)系。
【問(wèn)題3
17、】(5分)
若社區(qū)蔬菜團(tuán)購(gòu)網(wǎng)站還兼有代收快遞的業(yè)務(wù),請(qǐng)?jiān)黾有碌?快遞"實(shí)體,并給出客戶實(shí)體和快遞實(shí)體之間的"收取'聯(lián)系,對(duì)圖1進(jìn)行補(bǔ)充。"快遞"關(guān)系模式包括快遞編號(hào)、客戶電話和日期。
正確答案:
本題解析:
6.i閱讀下列說(shuō)明和Java代碼,將應(yīng)填入(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。
層桑菜單是窗口風(fēng)格的軟件系統(tǒng)中經(jīng)常采用的一種系統(tǒng)功能組織方式o層桑菜單(如圖6-1示例)中包含的可能是一個(gè)菜單項(xiàng)(直接對(duì)應(yīng)某個(gè)功能),也可能是一個(gè)子菜單,現(xiàn)在采用組合(composite)設(shè)計(jì)模式實(shí)現(xiàn)層桑菜單,得到如圖6-2所示的類圖
正確答案:
本題解析: