2019 上半年軟件設(shè)計(jì)師下午真題
試題一(共 15 分)
閱讀下列說明和圖,回答問題 1 至問題 4,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說明】
某學(xué)校欲開發(fā)一學(xué)生跟蹤系統(tǒng),以便更自動(dòng)化、更全面地對(duì)學(xué)生在校情況(到課情況和健 康狀態(tài)等)進(jìn)行管理和追蹤,使家長(zhǎng)能及時(shí)了解子女的到課情況和健康狀態(tài),并在有 健康 問題時(shí)及時(shí)與醫(yī)護(hù)機(jī)構(gòu)對(duì)接。該系統(tǒng)的主要功能是:
(1)采集學(xué)生狀態(tài)。通過學(xué)生卡傳感器,采集學(xué)生心率、體溫(攝氏度)等健康指 標(biāo)及 其所在位置等信息并記錄。每張學(xué)生卡有唯一的標(biāo)識(shí)(ID)與一個(gè)學(xué)生對(duì)應(yīng)。
(2)健康狀態(tài)告警。在學(xué)生健康狀態(tài)出問題時(shí),系統(tǒng)向班主任、家長(zhǎng)和醫(yī)護(hù)機(jī)構(gòu)健 康服 務(wù)系統(tǒng)發(fā)出健康狀態(tài)警告,由醫(yī)護(hù)機(jī)構(gòu)健康服務(wù)系統(tǒng)通知相關(guān)醫(yī)生進(jìn)行處理。
(3)到課檢查。綜合比對(duì)學(xué)生狀態(tài)、課表以及所處校園場(chǎng)所之間的信息對(duì)學(xué)生到課 情況 進(jìn)行判定。對(duì)曠課學(xué)生,向其家長(zhǎng)和班主任發(fā)送曠課警告。
(4)匯總在校情況。定期匯總在校情況,并將報(bào)告發(fā)送給家長(zhǎng)和班主任。
(5)家長(zhǎng)注冊(cè)。家長(zhǎng)注冊(cè)使用該系統(tǒng),指定自己子女,存入家長(zhǎng)信息,待審核。
(6)基礎(chǔ)信息管理。學(xué)校管理人員對(duì)學(xué)生及其所用學(xué)生卡和班主任、課表(班級(jí)、 上課 時(shí)間及場(chǎng)所等)、校園場(chǎng)所(名稱和所在位置區(qū)域)等基礎(chǔ)信息進(jìn)行管理;對(duì)家長(zhǎng)注冊(cè)申請(qǐng) 進(jìn)行審核,更新家長(zhǎng)狀態(tài),將家長(zhǎng) ID 加入學(xué)生信息記錄中使家長(zhǎng)與其子女進(jìn)行關(guān) 聯(lián),向家 長(zhǎng)發(fā)送注冊(cè)結(jié)果。一個(gè)學(xué)生至少有一個(gè)家長(zhǎng),可以有多個(gè)家長(zhǎng)。課表信息包括班 級(jí)、班主 任、時(shí)間和位置等。 現(xiàn)采用結(jié)構(gòu)化方法對(duì)學(xué)生跟蹤系統(tǒng)進(jìn)行分析與設(shè)計(jì),獲得如圖 1-1 所示的上下文數(shù)據(jù)流 圖和圖 1-2 所示的 0 層數(shù)據(jù)流圖。


【問題 1】(5 分)
使用說明中的詞語,給出圖 1-1 中的實(shí)體 E1?E5 的名稱。
【問題 2】(4 分)
使用說明中的詞語,給出圖 1-2 中的數(shù)據(jù)存儲(chǔ) D1?D4 的名稱。
【問題 3】(3 分)
根據(jù)說明和圖中術(shù)語,補(bǔ)充圖 1-2 中缺失的數(shù)據(jù)流及其起點(diǎn)和終點(diǎn)(三條即可)。
【問題 4】(3 分)
根據(jù)說明中的術(shù)語,說明圖 1-1 中數(shù)據(jù)流“學(xué)生狀態(tài)”和“學(xué)生信息”的組成。
試題二(共 15 分)
閱讀下列說明,回答問題 1 至問題 3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說明】
某創(chuàng)業(yè)孵化基地管理若干孵化公司和創(chuàng)業(yè)公司,為規(guī)范管理創(chuàng)業(yè)項(xiàng)目投資業(yè)務(wù),需要 開
發(fā)一個(gè)信息系統(tǒng)。請(qǐng)根據(jù)下述需求描述完成該系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)。
【需求描述】
(1)記錄孵化公司和創(chuàng)業(yè)公司的信息。孵化公司信息包括公司代碼、公司名稱、法 人代
表名稱、注冊(cè)地址和一個(gè)電話;創(chuàng)業(yè)公司信息包括公司代碼、公司名稱和一個(gè)電話。 孵化
公司和創(chuàng)業(yè)公司的公司代碼編碼不同。
(2)統(tǒng)一管理孵化公司和創(chuàng)業(yè)公司的員工。員工信息包括工號(hào)、身份證號(hào)、姓名、 性別、
所屬公司代碼和一個(gè)手機(jī)號(hào),工號(hào)唯一標(biāo)識(shí)每位員工。
(3)記錄投資方信息。投資方信息包括投資方編號(hào)、投資方名稱和一個(gè)電話。
(4)投資方和創(chuàng)業(yè)公司之間依靠孵化公司牽線建立創(chuàng)業(yè)項(xiàng)目合作關(guān)系,具體實(shí)施由 孵化
公司的一位員工負(fù)責(zé)協(xié)調(diào)投資方和創(chuàng)業(yè)公司的一個(gè)創(chuàng)業(yè)項(xiàng)目。一個(gè)創(chuàng)業(yè)項(xiàng)目只屬于一個(gè)創(chuàng)業(yè)
公司,但可以接受若干投資方的投資。創(chuàng)業(yè)項(xiàng)目信息包括項(xiàng)目編號(hào)、創(chuàng)業(yè)公司代碼、 投資
方編號(hào)和孵化公司員工工號(hào)。
【概念模型設(shè)計(jì)】
根據(jù)需求階段收集的信息,設(shè)計(jì)的實(shí)體聯(lián)系圖(不完整)如圖 2-1 所示。

【邏輯結(jié)構(gòu)設(shè)計(jì)】
根據(jù)概念模型設(shè)計(jì)階段完成的實(shí)體聯(lián)系圖,得出如下關(guān)系模式(不完整):
孵化公司(公司代碼,公司名稱,法人代表名稱,注冊(cè)地址,電話)
創(chuàng)業(yè)公司(公司代碼,公司名稱,電話)
員工(工號(hào),身份證號(hào),姓名,性別, (a),手機(jī)號(hào))
投資方(投資方編號(hào)、投資方名稱,電話)
項(xiàng)目(項(xiàng)目編號(hào),創(chuàng)業(yè)公司代碼(b),孵化公司員工號(hào))
【問題 1】(5 分)
根據(jù)問題描述,補(bǔ)充圖 2-1 的實(shí)體聯(lián)系圖。
【問題 2】(4 分)
補(bǔ)充邏輯結(jié)構(gòu)設(shè)計(jì)結(jié)果中的(a)、(b)兩處空缺及完整性約束關(guān)系。
【問題 3】(6 分)
若創(chuàng)業(yè)項(xiàng)目的信息還需要包括投資額和投資時(shí)間,那么:
(1)是否需要增加新的實(shí)體來存儲(chǔ)投資額和投資時(shí)間?
(2)如果增加新的實(shí)體,請(qǐng)給出新實(shí)體的關(guān)系模式,并對(duì)圖 2-1 進(jìn)行補(bǔ)充。如果不需要增
加新的實(shí)體,請(qǐng)將“投資額”和“投資時(shí)間”兩個(gè)屬性補(bǔ)充連線到圖 2-1 合適的對(duì)象上,并對(duì)變
化的關(guān)系模式進(jìn)行修改。
試題三(共 15 分)
閱讀下列說明和圖,回答問題 1 至問題 3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說明】
某圖書公司欲開發(fā)一個(gè)基于 Web 的書籍銷售系統(tǒng),為顧客(Customer)提供在線購買書籍
(Books)的功能,同時(shí)對(duì)公司書籍的庫存及銷售情況進(jìn)行管理。系統(tǒng)的主要功能描述如下:
(1)首次使用系統(tǒng)時(shí),顧客需要在系統(tǒng)中注冊(cè)(Register detail)。顧客填寫注冊(cè)信息表要求
的信息,包括姓名(name)、收貨地址(address)、電子郵箱(email)等,系統(tǒng)將為其生成一個(gè)注
冊(cè)碼。
(2)注冊(cè)成功的顧客可以登錄系統(tǒng)在線購買書籍(Buy books)。購買時(shí)可以瀏覽書籍 信息,
包括書名(title)、作者(author)、內(nèi)容簡(jiǎn)介(introduction)等。如果某種書籍的庫存量為 0,那
么顧客無法查詢到該書籍的信息。顧客選擇所需購買的書籍及購買數(shù)量 (quantities),若購買
數(shù)量超過庫存量,提示庫存不足;若購買數(shù)量小于庫存量,系統(tǒng)將顯示驗(yàn)證界面,要求顧
客輸入注冊(cè)碼。注冊(cè)碼驗(yàn)證正確后,自動(dòng)生成訂單(Order),否則, 提示驗(yàn)證錯(cuò)誤。如果顧客
需要,可以選擇打印訂單(Printorder)。
(3)派送人員(Dispatcher)每天早晨從系統(tǒng)中獲取當(dāng)日的派送列表信息(Produce picklist),按
照收貨地址派送顧客訂購的書籍。
(4)用于銷售的書籍由公司的采購人員(Buyer)進(jìn)行采購(Reorderbooks)。采購人員每天從
系統(tǒng)中獲取庫存量低于再次訂購量的書籍信息,對(duì)這些書籍進(jìn)行再次購買,以保證充足的
庫存量。新書籍到貨時(shí),采購人員向在線銷售目錄(Catalog)中添加新的書籍信息(Addbooks)。
(5)采購人員裉據(jù)書籍的銷售情況,對(duì)銷量較低的書籍設(shè)置折扣或促銷活動(dòng)(Promote
books)。
(6)當(dāng)新書籍到貨時(shí),倉庫管理員(Warehouseman)接收書籍,更新庫存(Update stock)。
現(xiàn)采用面向?qū)ο蠓椒ㄩ_發(fā)書籍銷售系統(tǒng),得到如圖 3-1 所示的用例圖和圖 3-2 所示的初始
類圖(部分)。

【問題 1】(6 分)
根據(jù)說明中的描述,給出圖 3-1 中 A1?A3 所對(duì)應(yīng)的參與者名稱和 U1?U3 處所對(duì)應(yīng) 的用
例名稱。
【問題 2】(6 分)
根據(jù)說明中的描述,給出圖 3-1 中用例 U3 的用例描述。(用例描述中必須包括基本事 件
流和所有的備選事件流)。
【問題 3】(3 分)
根據(jù)說明中的描述,給出圖 3-2 中 C1?C3 所對(duì)應(yīng)的類名。
試題四(共 15 分)
閱讀下列說明和 C 代碼,回答問題 1 至 3,將解答寫在答題紙的對(duì)應(yīng)欄內(nèi)
【說明】
n 皇后問題描述為:在一個(gè) nXn 的棋盤上擺放 n 個(gè)皇后,要求任意兩個(gè)皇后不能沖突, 即
任意兩個(gè)皇后不在同一行、同一列或者同一斜線上。
算法的基本思想如下:
將第 i 個(gè)皇后擺放在第 i 行,i 從 1 開始,每個(gè)皇后都從第 1 列開始嘗試。嘗試時(shí)判斷 在
該列擺放皇后是否與前面的皇后有沖突,如果沒有沖突,則在該列擺放皇后,并考慮擺 放
下一個(gè)皇后;如果有沖突,則考慮下一列。如果該行沒有合適的位置,回溯到上一個(gè)皇后
考慮在原來位置的下一個(gè)位置上繼續(xù)嘗試擺放皇后,……,直到找到所有合理擺放方案。
【C 代碼】
下面是算法的 C 語言實(shí)現(xiàn)。
(1)常量和變量說明


【問題 1】(8 分)
根據(jù)題干說明,填充 C 代碼中的空(1)?(4)。
【問題 2】(3 分)
根據(jù)題干說明和 C 代碼,算法采用的設(shè)計(jì)策略為 (5)
【問題 3】(4 分)
當(dāng) n=4 時(shí),有 (6) 種擺放方式,分別為 (7) 。
【試題五和試題六中任選 1 題解答。若解答超過 1 題,則題號(hào)小的 1 題解答有效。】
試題五(共 15 分)
閱讀下列說明和 Java 代碼,將應(yīng)填入(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。
【說明】
某軟件公司欲開發(fā)一款汽車競(jìng)速類游戲,需要模擬長(zhǎng)輪胎和短輪胎急剎車時(shí)在路面上 留
下的不同痕跡,并考慮后續(xù)能模擬更多種輪胎急剎車時(shí)的痕跡?,F(xiàn)采用策略(Strategy) 設(shè)
計(jì)模式來實(shí)現(xiàn)該需求,所設(shè)計(jì)的類圖如圖 5-1 所示。


