軟件水平考試(中級)軟件設計師下午(應用技術)試題模擬試卷41_第1頁
軟件水平考試(中級)軟件設計師下午(應用技術)試題模擬試卷41_第2頁
軟件水平考試(中級)軟件設計師下午(應用技術)試題模擬試卷41_第3頁
軟件水平考試(中級)軟件設計師下午(應用技術)試題模擬試卷41_第4頁
軟件水平考試(中級)軟件設計師下午(應用技術)試題模擬試卷41_第5頁
已閱讀5頁,還剩20頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

軟件水平考試(中級)軟件設計師下午

(應用技術)試題模擬試卷41

一、必答題(本題共15題,每題1.0分,共15分。)

閱讀以下關于住宅安全系統的技術說明,根據要求回答問題1?問題4。[說呢基

于某嵌入式系統的住宅安全系統可使用傳感器(如紅外探頭、攝像頭等)來檢測各種

意外情況,如非法進入、火警和水災等。房主可以在安裝該系統時配置安全監控

設備(如傳感器、顯示器、報警器等),也可以在系統運行時修改配置,通過錄像機

和電視機監控與系統連接的所有傳感器,并通過控制面板上的鍵盤與系統進行信息

交互。在安裝過程中,系統給每個傳感器賦予一個ID編號和類型,并設置房主密

碼以啟動和關閉系統,設置傳感器事件發生時應自動撥出的電話號碼。當系統檢測

到一個傳感器事件時,就激活警報,撥出預置的電話號碼,并報告關于位置和檢測

到的事件的性質等信息v住宅安全系統的頂層數捱流圖如圖6-13所示,圖6-14是

住宅安全系統的第0層數據流圖,圖6-15是對住宅安全系統的第0層數據流圖中

圖6-13住宅安全系統的頂層數據流圖

圖814住宅安全系統第0層數據流圖

加工4的細化圖。圖6-15加工4的細化數據流圖

1、需求分析是一個包括創建和維持系統需求文檔所必需的一切活動的過程。一個

通用的需求分析過程模型如圖6-16所示,請從以下供選擇的答案中選擇合適的內

容填寫到圖6-16中相應的位置中。

可行性研究

可行性推告

系統?!?/p>

■求文桓

圖&16需求分析過程模型圖[供選擇的答案]

A.用戶需求和功能需求B.需求描述C需求導出和分析D.需藻薯效性驗證、

標準答案:這是一道要求讀者掌握需求分析過程模型的理解識記題。本題所涉及的

知識點如下。需求分析是一個包括創建和維持系統需求文檔所必需的一切活匆的

過程。它通常包括5個通用的活動:系統可行性研究、需求導出和分析?、需求描述

和文檔編寫、需求有效性驗證及需求管理。每個通用的活動的相關說明見表6-

15o

表6-15需求分析過程各活動說明表

活動名稱說明

指明現有軟硬件技術能否實現用戶對新系統的要求,從業務角度來決定系

可行性研究

統開發是否劃算及在預算范圍內能否完成開發任務

通過對現有系統分析、與潛在用戶和購買者討論、進行任務分析等導出系

需求導出和分析統需求的過程,也可能需要開發一個或多個不同的系統模型和原型,來幫

助分析員了解所要描述的系統

檢查需求的可實現性、一致性和完備性,以發現需求文檔中可能存在的錯

需求有效性驗證

誤并給予改正

把在分析活動中收集到的信息以文檔的形式確定下來,包括兩類需求:用

需求描述戶需求,即從客戶和最終用戶角度對系統需求的抽象描述;系統需求,即

對系統要提供的功能的詳盡描述

檢查需求的可實現性、一致性和完備性,以發現需求文檔中可能存在的錯

需求有效性驗證

誤并給予改正

用于獲取、組織和記錄系統需求并使客戶和項目團隊在系統變更需求上達

需求管理

成并保持一致

本試題完整的需求分析過程模型如圖6-24所示,圖中說明了這些活動之間的美

系,也說明了在需求分析過程的每個階段將產生哪些文檔。

圖224需求分析過程模型圖

知識點解析:暫無解析

2、請將住宅安全系統的頂層數據流圖(見圖6-13)中(A)?(D)空缺處,以及第。層數

據流圖(見圖6-14)中(E)空缺處的內容填寫完整。

標準答案:這是一道要求讀者掌握分層數據流圖中數據流的平衡原則的綜合分析

題。本題的解答思路如下。①為了表達復雜問題的處理過程,用一個數據流圖往

往不夠。一般是按問題的層次結構進行逐步分解,并以分層的數據流圖來反映這種

結構關系。通常根據層次關系,將數據流圖分為頂層數據流圖、中間層數據流圖和

底層數據流圖。把整個軟件系統看成是一個大的加工,然后根據系統從哪些外部實

體接收數據流,以及系統發送數據流到哪些外部實體,就可以畫出系統的輸入偷出

圖,即頂層數據流圖。中間層數據流圖是將父層數據流圖中的某個加工進行組

化,而它的某些加工還可以進一步細化,這樣就形成了一層層的子加工。除頂層圖

外,其余分層數據流圖從0開始編號,例如,0層圖的加工號可以是“1,2,3,…”,其

子圖號可能是“1.1,1.2』.3,…”,再下一層的子圖可能是“1.1.1,1.1.2,,1.1.3,…”,依次

類推。本題的圖6-13并不是完整的頂層數據流圖,解答時需通過題干的說明信息

及第。層數據流圖來分析頂層圖并解答問題。②題干中提及的關鍵信息“房主可以

在安裝該系統時配置安全監控設備(如傳感器、顯示器、報警器等)“,在頂層數據

流圖(圖6-13)中這3個名詞并沒有完整地出現,僅出現了“報警器”一詞。在圖6-13

中“電視機''實際上起題干中關鍵信息"顯示器''的作用。結合圖6-13中“傳感器狀態”

這一輸出數據流信息可判斷出,(D)空缺處應填入“芍感器”這一外部實體。③由于

子層數據流圖是其父數據流圖中某一部分內部的細節圖(或加工圖),因此子層數據

流圖的輸入/輸出數據流應該保持一致,即在上一級數據流圖中有幾條數據流,其

子圖也一定有同樣的數據流,而且它們的輸送方向是一致的。④在住宅安全系統

第。層數據流圖(見圖6-14)中,加工5(信息及狀態顯示)的輸出數據流為“TV信

號,,,其中“IV”是日常生活中電視機的英文縮寫。在圖6-13頂層數據流圖中有一外

部實體——“錄像機、電視機”,因此可推理出圖6-13中(B)空缺處的數據流就是

“TV信號”。⑤根據數據流的方向可知,在圖6-13頂層數據流圖中(C)空缺處的數

據流屬于輸出數據流。在第。層數據流圖(見圖6-14)中,共有“TV信號”、“電話撥

號”、"告警類型''和"顯示信息”4個輸出數據流。在圖6-13頂層數據流圖中現己存

在,,TV信號”、“電話撥號”和“顯示信息”3個輸出數據流,因此可推理出圖6/3中

流向“報警器”外部實體的數據流是“告警類型”,即(C)空缺處填寫的數據流應是“告

警類型⑥根據數據流的方向可知,在圖6-14所示的第0層數據流圖中(E)空缺

處的數據流屬于輸入數據流,且與“傳感器監控''這一加工處理相關。在圖6-13頂

層數據流圖中,外部實體“傳感器”流入“住宅安全系統''的輸入數據流是“傳感器狀

態”,由此可推理出圖6-13中(E)空缺處的數據流就是“傳感器狀態”。⑦同理,根

據數據流的方向可知,在圖6-13所示的頂層數據流圖中(A)空缺處的數據流屬于輸

入數據流。在第。層數據流圖(見圖6-14)中流入“住宅安全系統”加工的輸入數據流

共有4個,分別是“用戶配置請求”、“開始/停止”、“用戶密碼”和“傳感器狀態”。在

圖6-13所示的頂層數據流圖中現已存在“開始/停止”、“用戶密碼”和“傳感器狀態”3

個輸出數據流,因此可毒理出圖6-13中由“控制面板”外部實體流出的數據流是“用

戶配置請求”,即(A)空缺處填寫的數據流應是“用廣配置請求”。⑧將以上分析結

果歸納整理,完整的住宅安全系統頂層數據流圖如圖6-25所示。

086-25完整的住宅安全系統頂層數據流圖

知識點解析:暫無解析

3、將圖6-15所示的加工4的細化數據流圖中的數據流補充完整,請按以下答題格

式示例的要求回答問題。[答題格式示例][數據流的起點]一(數據流名稱)一[數據流

名稱終點]或[數據流的起點]一(數據流名稱)

標準答案:本試題的解答思路也是根據數據流圖的數據流平衡原則進行分析的,詳

細的解答步驟如下。⑴由于子圖是其父圖中某一部分內部的細節圖(加工圖),所

以子圖的輸入/輸出數據流應該保持一致。其含義是:在上一級中有幾條數據流,

其子圖也一定有同樣的數據流,而且它們的輸送方向是一致的。②在第0層數據

流圖(見圖6-14)中,“4傳感器監控”加工模塊有1條輸入數據流—“傳感器狀態”

和3條輸出數據流—“電話撥號”、“傳感器數據”和“告警類型”。③在圖6-15所

示的加工4的細化數據流圖中,只有輸出數據流“告警類型”,因此,該加工圖缺少

了“傳感器狀態”、“電話撥號”和“傳感器數據”這3條數據流。④由于加工4的細

化數據流圖(見圖6-15)的內部結構、數據流向已清晰地給出,因此只需將“傳感器

狀態”、"電話撥號''和"傳感器數據''這3條數據流進行對號入座。⑤根據常識可

知,“電話撥號”是加工處理“4.5撥號”的輸出數據流;“傳感器狀態”是“4.4讀傳感

器”處理的輸入數據流。⑥“傳感器數據''應該是經,41格式顯示”處理過的數據

流,所以作為“4.1格式顯示”的輸出數據流。其中,“格式顯示”處理是指將準備輸

出顯示的傳感器數據處理成第0層數據流圖(見圖6-14)中“5信息與狀態顯示”能夠

接受的傳感器數據格式。⑦按照試題中答題格式示例的要求,將以上分析結果整

理如下:[4.5撥號]一(電話撥號)(傳感器狀態)一[4.4讀傳感器][4.1格式顯示]一(傳

感器數據)⑧另外,將以上分析結果歸納整理,完整的加工4的細化數據流圖如圖

6-26所示。圖&26完整的加工4的細化數據流圖

知識點解析:暫無解析

4、修改在住宅安全系統第。層數據流圖(見圖6-14]中的數據存儲“配置信息”,將

會影響第0層數據流圖中的哪些加工?

標準答案:這是一道要求讀者掌握數據流圖(DFD圖)中數據存儲作用的綜合分析

題。本題的解答思路如下。①在數據流圖(DFD圖)中,數據存儲是指邏輯上要求

存儲的數據,它不考慮具體數據的存儲介質和技術手段。②在圖6-15所示的加工

4的細化數據流圖中,“4.2評估設置”這一加工處理用到了配置信息文件,由此可

知,在第。層數據流圖(見圖6-14)中“4傳感器監控”加工將用到配置信息文件,即

“4傳感器監控”加工處理與數據存儲“配置信息”有關聯。③由題干關鍵信息“房

主……可以在系統運行時修改配置”可知,此處的“修改配置”結果將存儲到“配置信

息”這一數據存儲中。在第。層數據流圖(見圖6-14)中,“3密碼處理”是用于檢驗密

碼的,但是它只有一個輸出數據流“檢驗ID信息”到“信息及狀態顯示”加工處理,

并沒有反饋回來的數據流,所以“檢驗ID信息”是已經驗證通過的用戶的信息,用

戶輸入密碼應是在“3密碼處理”這個環節中進行驗證的。如果密碼驗證是在“5信息

及狀態顯示''中進行的,那么從“5信息及狀態顯示”應有一條不合法的用戶數捱流

反饋到“密碼處理,可見,“密碼處理”要用到數據存儲“配置信息、”中的用戶名和密

碼。④由以上分析可知,在第0層數據流圖(見圖6-14)中,由于輸出到加工處理

“5信息及狀態顯示”的數據流是用來“檢驗ID信息”的,因此,“5信息及狀態顯示”

加工處理也將與“配置信息”這一數據存儲相關聯。

知識點解析:暫無解析

閱讀下列某網上訂書管理系統的說明和E-R圖,根據要求問答問題1?問題3c

[說明1某網上訂書系統的E-R圖(已消除了不必要的冗余)如圖6-17所示(圖中沒有

標出主碼)。圖中實體的說明如表6-10所示,相關屬性說明如表6-11所示。

圖6-17某網上訂書管理系統E?R圖

表6-10某網上訂書系統實體說明表6-11某周上訂書系統相關屬性說明

實體說明主要屬性說明

Books書店內的書qty_in_stock圖書庫存量

Customers與書店有業務的顧客year_published出版日期

Orders顧客向書店下的購書單ordernum購書單編號

cid顧客編號

唯一標識每種圖書的編

bid

cardnum顧客信用卡號碼

orderdate填購書單日期

Qty訂購某種圖書的數量

ship_date發貨日期

一個顧客可以在同一天填寫多張購書單,每張購書單上可填寫多種圖書,每種圖書

可以訂購多本,bid相同的圖書在同一張購書單上不能出現多次。注:為簡化起

見,不考慮信用卡號碼泄漏所帶來的安全性等問題。

5、根據圖6-17所示的E-R圖中給出的詞匯,按照“關系模式名(屬性,屬性,…)”

的格式,將此E-R圖轉換為4個關系模式,并指出每個關系模式中的主碼和外

碼,其中模式名根據需要取實體名或聯系名。

標準答案:題干己經指明轉換為4個關系模式,根據E-R圖和說明可以先得出

Books、Customers和orders三個關系模式。由于一個客戶可以填寫多張購書單,而

一張購書單僅僅屬于一個客戶,因此PlaceOrder不需要單獨成為一個關系模式,而

購書單和書之間是多對多的關系,所以OrderList需要單獨一個關系模式。圖6-17

所示的E-R圖轉換為4個關系模式及其主鍵、外鍵如下。

1.Cuslomers(cid,cname,adderss,cardnum)主鍵為:cid

2.Orders(ordemum,orderdate,cid)主鍵為:ordemum:外鍵為:cid

3.Books(bid,titlc,author,qty_in_stock,ycar_publicshcd,price)主鍵為:bid

4.Orderlisl(bid,ordernuin,qty,ship_date)主鍵為:(bid,ordemum),外鍵為bid、

ordernum

知識點解析:暫無解析

6、創建Customers表時,cid使用INTEGER數據類型,cname使用CHAR(80)數據

類型,address使用CHAR(200)數據類型,cardnum使用CHAR(16)數據類型并且要

求此?。&逸TABLECustomers彳Ci&-INTEGERNO不NULL,吾句空缺處填入正確的內

cnameCHAR(80)NOTNULL.

addressCHAR(200),

cardnumCHAR(16)NOTNULL,

⑴,

(2))

容。

標準答案:依題意分析,對于關系模式Customers的主鍵為cid,而cardnum列值

唯一,因此(1)、(2)空缺處應分別在空缺處填入PrimaryKeycid和UNIQUE

cardnumo

知識點解析:暫無解析

7、以下的SQL語句是書店用于查詢“所有訂購了bid為“23-456,圖書的用戶訂購

其他圖書的情況''的不完整語句,請在空缺處填入正確的內容。

Selectbid

PreenOrderlistA

Wherenotexists(Select?frocOrders3

whereA.ordernum=B.ordemumandB.cid(3)

ISelectcidfroraOrderlistC,Orders□

where(4).bid??123-456r

and(5)=D.orcemun))

標準答案:依題意分析,最內層的SQL語句查找訂購了123-456的客戶

cid,ordernum只出現在Orderlist和order中,因此(5)空缺處應填寫C.ordcrnum,(4)

空缺處應該填寫C。因為要求尋找這些用戶還訂購哪些其他書籍,所以(3)空缺處

應填寫in。

知識點解析:暫無解析

閱讀以下說明和圖,根據要求回答問題1?問題4。[說明]某電子商務公司開辦了

在線電子商務網站,主要為各注冊的商家提供在線商品銷售功能。為更好地吸引用

?該公司計劃為注冊的商家提供商品(Commodity)促銷(Promotion)功能。商品的

分類(Category)不同,促銷的方式和內容也會有所不同。注冊商家可發布促銷信

息。商家首先要在自己所銷售商品的分類中,選擇促銷涉及的某一具體分類,然后

選出該分類的一個或多個商品(一種商品僅屬于一種分類),接著制定出一個比較優

惠的折扣政策和促銷活動的優惠時間,最后由系統生成促銷信息并將該促銷信息公

布在網站上。商家發布促銷信息后,網站的注冊用戶便可通過網站購買促銷商

品。用戶可選擇參與某一個促銷(Promotion)活動,并選擇具體的促銷商品

(Commodity),輸入購買數量等購買信息。系統生成相應的一份促銷訂單(POrder)。

只要用戶在優惠活動的時間范圍內,通過網站提供的在線支付系統,確認在線支付

該促銷訂單(即完成支付),就可以優惠的價格完成商品的購買活動,否則該促銷訂

單失效。系統采用面向對象方法開發,系統中的類及類之間的關系用UML類圖表

示,如圖6-18所示是該系統類圖中的一部分;系統的動態行為采用UML序列圖表

示,如圖6-19所示是發布促銷的序列圖。

圖6-18在線促銷系統部分類圖

rb'igmag)

圖&19發布促銷的序列圖

8、識別關聯的多重度是面向對象建模過程中的一個重要步驟。請根據說明中給出

的描述,將如圖6-18所示中(1)?(6)空缺處的內容填寫完整。

標準答案:這是一道要求讀者在充分理解需求的基礎上,補充UML類圖中的類間

關系的多樣件描述的綜合分析題.本題的解答思路如下.(1)關聯表示了對象間的

結構關系,它暗示兩個類在概念上位于相同的級別。在UML類圖中,符號

----?'表示其相聯的兩個類之間存在關聯關系。(2)識別關聯的多重度是面向對象

建模過程中的一個重要步驟。即說明一個關聯的實例中有多少個相互連接的對象是

很重要的。其中,這個“多少”被稱為關聯角色的多重度,把它寫成一個表示取值范

圍的表達式或寫成一個具體值。指定關聯一端的多重度,就是說明在關聯另一端的

類的每個對象要求在本端的類必須有多少個對象。(3)由題干描述中給出的關鍵信

息”……選出該分類的一個或多個商品(一種商品僅屬于一種分類)……”可知,一個

商品(Commodity)屬于一種分類,一個分類(Calegory)中包含0個或多個商品對象,

因此類Commodity和類Category的多樣性關系為:。?n或1?n個商品對象對應1

個分類對象,即(1)空缺處所填寫的內容是“0…n”或(2)空缺處所填寫的內

容是“I”。(4)由于一個促銷(Promotion)中由一個或多個商品(Commodity)組成(至少

一個),而一個商品可以屬于0個或多個促銷,因此類Promotion和類Commodity

的多樣性關系為:。?n個促銷對象對應1?n個商品對象,即(3)空缺處所填寫的內

容是“0…n”,(4)空缺處圻填寫的內容是(5)一個促銷(Promolion)可以產生

多個促銷訂單(POrder),一個促銷訂單只能對應一個促銷。所以類Promotion和類

POrder的多樣性關系為:1個促銷對象涉及?!璶個促銷訂單對象,即(5)空缺處所

填寫的內容是“1”,(6)空缺處所填寫的內容是“0…n”。

知識點解析:暫無解析

9、請從表6-12中選擇相應的方法名,填寫到圖6-19所示中(7)?(10)空缺處的對應

位置中。

表6-12可選消息列表

功能描述方法名

向促銷訂單中添加所選的商品buyCommodities

向促銷中添加要促銷的商品addCommodities

查找某個促銷的所有促銷訂單信息列表getPromotionOrders

生成商品信息createCommodity

查找某個分類中某商家的所有商品信息列表getCommodities

生成促銷信息createPromotion

生成促銷訂單信息createPOrder

查找某個分類的所有促銷信息列表getCategoryPremotion

查找某商家所銷售的所有分類列表getCategories

查找某個促銷所涉及的所有商品信息列表getPromofionCommodities

標準答案:這是一道要求讀者用UML序列圖對系統的行為進行分析和建模的綜合

分析題。本題的解答思路如下。序列圖描述對象間的消息交互,刻畫系統的行

為。根據題目的描述:商家(Businessman)在發布促銷信息時,要先瀏覽自己所銷售

商品的分類及分類中的具體商品信息;商家通過⑺空缺處所填入的getCategories

消息將瀏覽請求提交給類CatagoryManager實例,再由類CatagoryManager的實例

通過⑻空缺處所填入的gelCommodities消息請求類Category(商品分類)實例獲得其

分類中該商家的所有商品;類Category的實例通過gctCominodityinfo消息請求類

Comodity(商品)的實例返回商品的詳細描述信息。當把商家所銷售的商品分類及分

類中的具體商品信息返回給商家之后,商家在其中選擇要促銷的一個或多個商品,

并輸入一些促銷信息,通過(9)空缺處所填入的CreatePromotion消息請求類

PromotionManager實例生成促銷信息。類PromotionManager實例通過Create消息

創建一個促銷(Promolion)對象,并通過(10)空缺處所填入的addCommdities消息向

新建的促銷對象中添加要促銷的商品對象。

知識點解析:暫無解析

10、該電子商務公司還時外開放一項出租圖書和唱碟的業務。由于業務需求,該公

司委托軟件開發公司A開發一套信息管理系統。該系統將記錄所有的圖書信息、

唱碟信息、用戶信息和用戶租借信息等。A公司決定采用面向對象的分析和設計方

法開發此系統。某類圖書或唱碟被借閱時應記錄的信息如表6?13所示,如圖6-20

所示描述了系統定義的兩個類Book和CD,分別表示圖書和唱碟的信息。

表6-13圖書建碟借閱情況記錄表

圖書建磔名稱:

借出時間歸還時間用戶

過進一步分析,設計人員新定義一個類Items_on_loan,以表示類Book和CD的共

有屬性和方法(要注意,不同名稱的屬性和方法表示不同的含義,如CD中的

composer與Book中的author無任何關系)。同時為了記錄每種圖書或唱碟的歷史

記錄,引入類CirculalionHistory,類中存儲的信息是如圖1-1所示中所表示的內

容。請采用UML表示法將類Book、類CD、類Items_onloan和類Circulation

Book類名CD

title《名稱》

author為怪

)ccoposer

key><,川(<?1?producer

Referencetitleperforners

Referenceauthor

?法Referencetitle

ReferencekeywordReferencecoaiposer

Referpnoproducer

Referenceperforoers

History之間的關系表示出來。圖6-20類Book和CD

標準答案:如果新定義的類Items_on」oan要表示類Book和類CD的共有屬性和方

法,那么就需要從類Book、CD中找出相同的屬性和方法。由試題中給出的圖6-

20可知,Book和CD都有title屬性和referencetitle方法,因此類Items_on_loan的

屬性為title,方法為referencetitle。類Book和類CD應該繼承類Items_on」oan,

因此它們之間的關系是繼承關系,而CirculationHistory表示對象的租借次薪,它不

屬于類Items_on_loan的屬性,但類Items_on_loan應該能夠查詢到

CirculalionHistory記錄的信息,所以它們之間是聚集關系。類Book、類CD、類

Items_on_loan和類CirculalionHistory之間的UML關系如圖6-27所示。

圖6?27各個類之間的UML關系

知識點解析:暫無解析

11、現需了解十大最暢銷(借出次數最多)圖書或唱碟。為此引入類TemPopulate以

存儲所有十大暢銷圖書或CD的名稱及其被借出的次數。利用順序圖描述某類圖書

或唱碟被借出后成為十大暢銷圖書或唱碟時對象間的消息交互,通常在系統一次運

行過程中,應有(11)個TenPopulale實例對象最合適,一個TenPopulale類實例對象

最多需要和(12)個hems_on」oan實例對象交互。[供選擇的答案](11)A.1B.2

C.10D.n(圖書和唱碟種類數)(12)A.2B.10C.20D.n(圖書和唱碟種類數)

標準答案:類TemPopulate存儲十大暢銷圖書或CD的名稱及其被借出的次數,順

序圖中要明確的給出這一對象。通常在系統一次運行過程中,有1個TenPopulate

實例對象最合適。為了記錄圖書或唱片的借出信息,每當有圖書或唱片被借出

時,都需要和類TemPopulate的對象發生交互。因此,有可能所有的圖書和唱片都

要和類TemPopulate對余發生交互,即一個類TenPopulate實例對象最多需要和圖

書及唱碟種類數個Items_on_loan實例對象交互。

知識點解析:暫無解析

閱讀以下某旅館客房管理系統的算法說明和程序流程圖,根據要求回答問題1?問

題4。[算法說明]某旅館共有N間客房。每間客房的房間號、房間等級、床位數

及占用狀態分別存放在數組ROOM、RANK、NBED和STATUS中。房間等級值

為1、2或3。房間的狀態值為0(空閑)或1(占用)??头渴且苑块g(不是床位)為單位

出租的。程序流程圖(見圖6-21)所反映的算法是,根據幾個散客的要求預訂一間空

房。程序的輸入為:人數M,房間等級要求R(R=O表示任意等級都可以)。程序的

輸出為:所有可供選擇的房間號。圖&21某算法程序流程圖

12、在程序流程圖(見圖6-21)中,若要某個房間I被選中,則需要滿足什么條件?

標準答案:在程序流程圖(見圖6-21)中,I表示房間序號(需注意不是房間的編號)。

當I>N時表示所有的房間都檢查過了,若STATUS⑴[力0,表示房間已被占用,

則檢查下一個房間;否則直看房間的床鋪是否足夠。若NBED⑴VM表示房間床

鋪不夠,則檢查下一個房間;若床鋪足夠,則需看客人對房間等級是否有要求。若

R!=0,表示客人對房間等級有要求,則檢查RANK⑴是否等于R。若不等于,則

檢查下一個房間;若RANK(I)==R或者R==0,分別表示房間等級滿足要求和客人

對房間等級無要求,則當前的房間I滿足所有的條件。接著可將房間I的房間編號

ROOM⑴存放到RM(J)中,然后檢查下一個房間。綜合以上分析結果,某個房間I

要滿足下列條件才可被選中:①房間未被占用,即STATUS⑴=二0;②房間的床

鋪要足夠,WNBED(I)>=M;③若客人要求特定的房間等級R(R!=0),則

RANK(I)==R,否則RANK(I)的值不做考慮。

知識點解析:暫無解析

表6-14桌旋棺房間的情猊表

序號iROOIRANKNBEDSTATUS

111C1260

211C2361

312C1120

412C2330

513C1121

613c2230

當輸

入M=3,R=0時,該算法的輸出是(1)。當輸入M=2,R=1時,該算法的輸出是

⑵。

標準答案:當輸入M=3,R=(HH,表示客人的人數為3,對房間的等級沒有要求,

因此,只要房間的床鋪足夠且房間未被占用即可滿足要求。換言之,在表6-14中

NBED列中的值大于等于3,STATUS列中的值為0即可滿足條件,因此輸出的結

果為:110112021302。當輸入M=2,R=1時,表示客人的人數為2,要求房間的

等級為1級,因此,在房間的床鋪足夠且房間未被占用時,還要求房間的等級為1

級才可滿足要求。換言之,表6-14中RANK列中的值等于1,NBED列中的值大

于等于2,STATUS列中的值為。即可滿足條件,因此,輸出的結果為:1201。

知識點解析:暫無解析

14、如果等級為r的房間每人每天的住宿費為RATE(r),其中RATE為數組,則為

使該算法在輸出每個候選的房間號RM(J)后,再輸出這批散客每天所需的總住宿費

DAYRENT(J),在程序流程圖(見圖6-21)中“ROOM⑴—RM(J)”(b所指向的方框中)

之后應增加的處理語句是(3)。

標準答案:結合常識可知,由于房間的費用是根據房間的等級和房間所住客人的數

量決定的,因此在等級為r的房間每人每天的住宿費為RATE(r)的前提下,為使該

算法在輸出每個候選的房間號RM(J)后,再輸出這枇散客每天所需的總住宿費

DAYRENT(J),在圖6-21中“ROOM⑴一>RM(J)”之后應增加的處理語句如下。

RATE(RANK(I))*M—DAYRENT(J)

知識點解析:暫無解析

15、如果限制該算法最多輸出K個可供選擇的房間號,則在程序流程圖(見圖6-21)

中力>N”(a所指向的判斷框中)應修改為(4)。

標準答案:如果要限制該算法最多輸出K個可供選擇的房間號,則必須知道已經

選擇的房間的個數。由于變量J的值代表了滿足條,牛的房間數量,因此在圖6-21

中判斷語句“I>N”應修改為:I>N||J=Ko

知識點解析:暫無解析

二、選答題(本題共3題,每題L0分,共3分。)

16、閱讀以下應用程序說明和C程序,將C程序段中(1)?(7)空缺處的語句填寫完

整。[說明]以下[C程序]完成從指定數據文件中讀入職工的工號和他完成產品個數

的數據信息,對同一職工多次完成的產品個數進行累計,最后按表5-22所示的格

式輸出職工完成產品數量的名次(ORDER)。該名次是按每位職工完成的產品數量

(QUANTITY)排序,之后同一名次的職工人數(COUNT)和他們的職工號

(NUMBER,同一名次的職工號以從小到大的順序輸出)。

表5-22職工完成產品數重名次輸出格式表

ORDERQUANTITYCOUNTRUBBER

4256235

619219

716721114

????????????

以下[C程序]采用鏈表結構存儲有關信息,鏈表中的每個表元對應一位職工。在數

據輸入同時,形成一個有序鏈表(按完成的產品數量和工號排序)。當一個職工有新

的數據輸入,在累計他的完成數量時會改變原來鏈表的有序性,為此應對鏈表進行

刪除、查找和插入等處理。[C程序]

#include<stdio.h>

typedefstructele{

intno?QI

structele*nextt

}el?n:

main(intargc?char*?argv){

FILE*fp;elem*h?*u?*proc():

if<argc==2&&(fp=fopen(argv[l],.r?))JHNULL){

hxproc(fp);

fcldse(fp)i

output(h):

while(hI=NULL)(

u=h-*next?free(h);h=u:

fscanf(fp.*%d,?&m>>

for(v=base:v!=NULL&&v->no!=n:u=v.v=v->next),

if((1))

if((2))

baae?v->ncxt?

else

u->next=v-nexti

v-xj+=m;

else

v?(elem*)malloc(sizeof(elen))?

v->no■n:v-xj■m:p■base;

while(pl-NULL)

if((3))breakj

else(

uxp:pxp->next;

)

if((4))

base>v;

else

u->next=v:

(5);

fscanf(fp.?ld-,&n):

)

returnbase:

)

output(elem?head){

intcount,order:elem*u?*v;

printf('ORDERQUANTITYCOUNTNUMBERS*)i

u?headtorder?1i

while(u!=NULL){

for(count=1,v?u->next;(6);count**,v=v->next):

printf<B%4d%9d%6d",order.u->q.count):

order*35counti

for(i(7)?printf(?t4d'?u->no).u?:u->next):

printfC

)

標準答案:這是一道要求讀者掌握有序鏈表的特點及其如何在有序鏈表上實現插

入、刪除、查找的操作的程序分析題。本題的解答思路如下。仔細閱讀[C程序]可

知,該程序代碼采用鏈表結構存儲有關信息,鏈表中的每個結點對應一位職工。在

數據輸入時,形成一個有序鏈表(按完成的產品數量和工號排序)。當一個職工有新

的數據輸入,在累計該職工的完成數量時會改變原來鏈表的有序性,因此需要對鏈

表中的結點重新進行排序。而對程序的排序操作可以看成是一組查找、刪除、插入

操作的組合操作,這組操作又和鏈表的特點密切相關。鏈表是用一組任意的存儲

空間來依次存放線性表中的數據元素及其元素之間關系的存儲結構。由于鏈表的存

儲空間是在程序運行的過程中動態分配的,需要一個個分配一個存儲空間,因此無

須事先估計存儲空間大小,也不會出現存儲空間的浪費,并能夠使存儲器中的碎片

充分地得到利用,但是存儲空間的地址不一定連續。用鏈表表示一個數據結構

時,為了表示數據元素之間的邏輯關系,每個數據元素的存儲空間都包括數據域和

指針域兩個部分。數據域用來存放數據元素本身的值,指針域用來存放和該數據元

素存在某種邏輯關系的其他元素的地址(或對應數組的下標),從而通過指針域中的

指針指示數據元素之間的邏輯關系。在鏈表結構中進行插入和刪除運算不需要移

動數據元素,只需修改數據元素的指針域的地址就可以建立元素之間新的邏輯關

系。由于這種結構失去了隨機存取的特性,只能依照鏈接順序訪問,存取效率不

高,因此不適合進行查找運算。本試題函數proc()完成的功能是從給定的數據文件

中輸入職工的工號(即fscanf(fp,”%d”,&n);)和該職工完成的產品數量信息(即

fscanf(fp,"%d",&m);),從而形成一個按照產品數量和工號排序的職工有序鏈表。

例如輸入一個工號為n的職工的全部信息后,就利用指針v從鏈表的首結點開始順

序搜索滿足條件(即工號等于n)的結點,這個過程依賴for循環語句(即for(v=base

v!=NULL&&v->no!=n;u=v,v=v->next);)的實現。當循環條件v!=NULL且v->

no!二n為真時,說明指針v指向的當前結點存在但卻不是滿足條件的結點,所以指

針v通過語句U=v,v=v->next實現向后移動,繼而指向下一個結點,然后再重復

上述的判斷、移動過程,直到找到滿足條件的結點或確定鏈表中根本不存在這樣的

結點為止。由于這兩種結果不能同時發生,所以for循環后的if?else條件語句,先

要對上述杳找過程可能產生的兩種結果做出選擇,然后再決定繼續執行的操作。又

由于if條件為真的情況下,要執行的復合語句中包含累計產品數量的語句(即v->

q+m;),所以可判斷出程序首先是對鏈表中存在的剛輸入職工的工號的情況進行處

理,因此(1)空缺處所填寫的內容是%!=?41;1±&&虹>1]0==曖或其他等價形式,根

據上述鏈表中存在剛輸入職工工號的情況,則需要重新對該工號職工進行產品數量

的累計,從而改變原來鏈表的有序性,為此應該對鏈表中的結點重新進行排序。那

么,該程序的排序操作可以看成是一組刪除、查找、插入操作的組合操作。首

先,將鏈表中滿足條件(即工號為n)的結點v刪除。刪除分為兩種情況:①當刪除

的結點是鏈表的首結點,即v與base同指向一個結點時,需改變鏈表的頭指針,

讓它指向首結點的直接后繼結點,因此(2)空缺處所填寫的內容是、二base"或其他

等價形式;②當刪除的結點是鏈表中的其他結點時,需改變鏈表中要刪除結點的

直接前驅結點的后繼指針。其次,在有序鏈表中為上述被刪除的結點v尋找合適

的插入位置。插入位置是根據待插入的結點(即上述被刪除的結點)中產品累計數量

的多少,以及工號的大小與鏈表中現存結點進行比較確定的。根據它們的比較結

果,插入位置可以有以下3種情況(令指針p指向鏈表中正在與待插入結點進行比

較的結點,而指針u用來指向其直接前驅結點)。①指針p所指向結點的q值(即產

品累計數量)小于待插入結點v的q值(即產品累計數量),于是將結點v插入到p所

指向的結點之前。②指針p所指向結點的q值與待插入結點v的q值相等,但前

者的no值(即工號)大于后者的no值,于是將結點v插入到p所指向的結點之前。

③指針p所指向結點的q值比待插入結點v的q值都大,于是一直向后尋找,直

到p=NULL為止,這時指針u指向鏈表中的最后一個結點,因而將結點v插入到

鏈表的尾部,即成為結點U的直接后繼。由以上分析可知,(3)空缺處所填寫的內

容是“p->qVv->qIIp->q==v->q&&p->no>n->no”或其他等價形式。由于以

上分析中前兩種情況都屬于在指針P所指向結點之前插入結點v,因此要考慮一個

關鍵的插入位置,以及是否在首結點之前插入,即⑷空缺處所填寫的內容是

“p==base”或其他等價形式,(5)空缺處所填寫的內容是“v->ncxt=p”或其他等價形

式。函數oulputO完成的功能是按照指定的格式輸出。(6)空缺處所在的for循環實

現了相同q值的結點個數的統計,這些結點按照工號從小到大的順序形成一個有序

鏈表段。為了使表達式正確計算,(6)空缺處需要填入"v!=NULL&&v?>q==u->q”

或其他等價形式。由于(7)空缺處所在的for循環實現了有相同產品個數的職工工

號的順序輸出,因此(7)空缺處所填寫的內容是“count--!=0(或u!=v)”或其他等價形

式。

知識點解析:暫無解析

17、閱讀以下關于某訂單管理系統的技術說明、部分UML類圖及C++代碼,將

C++程序中(1)?⑸空缺處的語句填寫完整。[說明]某訂單管理系統的部分UML類

圖如圖5-15所本。圖5?15某訂單管理系統的部分UML類圖圖5/5

中,Product表示產品,ProductList表示產品目錄,Order表示產品訂單,OrdeHtem

表示產品訂單中的一個條目,OrderLisl表示訂單列表,SalesSystem提供訂單管理

系統的操作接口。請完善類Order的成員函數getOrderedAmount。和類

SalesSystem的slatislic。方法,各個類的屬性及部分方法定義參見下面的C++代

?tringpid;

?trinodMcrlpclOG;//rMHf

doubleprlc?i〃產a?依

publics

voidMtFtcductPrle*(doublepxiee);〃H/3價

■Er8ttxo3ccld|〃

?triago?tPro^AcWM€riptlon(lt〃M/1Mtt

double9?tPrefectFrieeOj〃艮

〃XH?

C!<MProAuctUact〃產4m

Rxi*M?:

vectorsFroduct30dMem

publici

FroAaetUstOf

FXCAJCI9?cFro^u:tey:fitexllnt?XI:〃供”金力良中

void3dProduEPrg*ctt)j

Product?o?CPTQ^ct>r:O(ttrlnQpldli〃Mumrn.pidwmt

unsignedint<x?eFroa^ctJlB0une():〃腳i產鼻”囊中獻金依■

cl<fsorderXt^l〃g?th類

private:

FroA*ct?produccFcri/fJ*7mM*

Imentity!“UWM

pubHci

ovdcrXt?B(Freduet*.iat>;

FroA?ct,9et^ro<kKcp?r(>i

IM9?<Qu?ntity(lf〃穌.wwawMi

cl”.Oantor(

溫馨提示

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

評論

0/150

提交評論