




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第3章 習(xí)題及參考答案1.用逐步求精方法解決下述的更新順序主文件的問題。 美國某雜志社需要一個(gè)軟件,以更新存有該雜志訂戶姓名、地址等數(shù)據(jù)的順序主文件。共有插入、修改和刪除等3種類型的事務(wù),分別對應(yīng)于事務(wù)代碼1、2和3。也就是說,事務(wù)類型如下:類型1:INSERT(插入一個(gè)新訂戶到主文件中)類型2:MODIFY(修改一個(gè)已有的訂戶記錄)類型3:DELETE(刪除一個(gè)已有的訂戶記錄) 事務(wù)是按訂戶名字的字母順序排序的。如果對一個(gè)訂戶既有修改事務(wù)又有刪除事務(wù),則已對那個(gè)訂戶的事務(wù)排好次序了,以便使修改發(fā)生在刪除之前。2. 分析圖所示的層次圖,確定每個(gè)模塊的內(nèi)聚類型。3. 分析圖,確定模塊之間的耦合類
2、型。 在圖中已經(jīng)給模塊之間的接口編了號碼,表描述了模塊間的接口。4. 假設(shè)你在一所職業(yè)高中工作,負(fù)責(zé)該校信息系統(tǒng)的建設(shè)與維護(hù)。財(cái)務(wù)科長請你研究用學(xué)校擁有的微型計(jì)算機(jī)生成工資明細(xì)表和各種財(cái)務(wù)報(bào)表的可能性。請?jiān)敿?xì)描述你用結(jié)構(gòu)化分析方法分析上述問題的過程。用面向數(shù)據(jù)流方法設(shè)計(jì)工資支付系統(tǒng)的軟件結(jié)構(gòu)。5. 用3種方法計(jì)算圖所示流圖的環(huán)形復(fù)雜度。6. 圖是用程序流程圖描繪的程序算法,請把它改畫為等價(jià)的盒圖。7. 某交易所規(guī)定給經(jīng)紀(jì)人的手續(xù)費(fèi)計(jì)算方法如下:總手續(xù)費(fèi)等于基本手續(xù)費(fèi)加上與交易中的每股價(jià)格和股數(shù)有關(guān)的附加手續(xù)費(fèi)。如果交易總金額少于1000元,則基本手續(xù)費(fèi)為交易金額的%;如果交易總金額在1000元
3、到10000元之間,則基本手續(xù)費(fèi)為交易金額的5%,再加34元;如果交易總金額超過10000元,則基本手續(xù)費(fèi)為交易金額的4%加上134元。當(dāng)每股售價(jià)低于14元時(shí),附加手續(xù)費(fèi)為基本手續(xù)費(fèi)的5%,除非買進(jìn)、賣出的股數(shù)不是100的倍數(shù),在這種情況下附加手續(xù)費(fèi)為基本手續(xù)費(fèi)的9%。當(dāng)每股售價(jià)在14元到25元之間時(shí),附加手續(xù)費(fèi)為基本手續(xù)費(fèi)的2%,除非交易的股數(shù)不是100的倍數(shù),在這種情況下附加手續(xù)費(fèi)為基本手續(xù)費(fèi)的6%。當(dāng)每股售價(jià)超過25元時(shí),如果交易的股數(shù)零散(即,不是100的倍數(shù)),則附加手續(xù)費(fèi)為基本手續(xù)費(fèi)的4%,否則附加手續(xù)費(fèi)為基本手續(xù)費(fèi)的1%。要求:(1)用判定表表示手續(xù)費(fèi)的計(jì)算方法;(2)用判定樹表
4、示手續(xù)費(fèi)的計(jì)算方法。8. 畫出下列偽碼程序的程序流程圖和盒圖。STARTIFPTHENWHILEqDOfENDDO ELSEBLOCKgnENDBLOCKENDIFSTOP9.圖給出的程序流程圖代表一個(gè)非結(jié)構(gòu)化的程序,請問:(1)為什么說它是非結(jié)構(gòu)化的(2)設(shè)計(jì)一個(gè)與它等價(jià)的結(jié)構(gòu)化程序。(3)在(2)題的設(shè)計(jì)中你使用附加的標(biāo)志變量flag了嗎若沒用,請?jiān)僭O(shè)計(jì)一個(gè)使用flag的程序;若用了,請?jiān)僭O(shè)計(jì)一個(gè)不用flag的程序。10. 研究下面給出的偽碼程序,要求:(1)畫出它的程序流程圖;(2)它是結(jié)構(gòu)化的還是非結(jié)構(gòu)化的說明你的理由;(3)若是非結(jié)構(gòu)化的,則 (a)把它改造成僅用三種控制結(jié)構(gòu)的結(jié)構(gòu)化
5、程序; (b)寫出這個(gè)結(jié)構(gòu)化設(shè)計(jì)的偽碼; (c)用盒圖表示這個(gè)結(jié)構(gòu)化程序。(4) 找出并改正程序邏輯中的錯(cuò)誤。參考答案1.答:解決任何問題之前都必須首先理解問題,對問題理解得越深入,解決起來也就越容易。為了獲得對順序主文件更新問題的直觀、具體的認(rèn)識,首先設(shè)想一個(gè)典型的主文件(稱為舊的主文件)、一個(gè)事務(wù)文件和更新后得到的新的主文件及異常情況報(bào)告,如圖所示。為了簡單起見,在圖中忽略了主文件和事務(wù)文件中所包含的訂戶地址信息。從圖可以看出,更新順序主文件系統(tǒng)有下述2個(gè)輸入文件: 舊的主文件(由包含訂戶姓名、地址信息的記錄組成); 事務(wù)文件。系統(tǒng)還有3個(gè)輸出文件: 新的主文件; 異常報(bào)告; 摘要和工作結(jié)
6、束信息。圖描繪了設(shè)想的順序主文件更新系統(tǒng)的概貌。 然后用逐步求精方法設(shè)計(jì)圖中關(guān)鍵的黑盒子“更新主文件”的實(shí)現(xiàn)算法。逐步求精方法實(shí)質(zhì)上是“自頂向下”的設(shè)計(jì)方法,它通過不斷分層細(xì)化解決問題的算法來設(shè)計(jì)軟件。它不像“各個(gè)擊破”技術(shù)那樣把整個(gè)問題分解為若干個(gè)重要程序相同的子問題。 在用逐步求精方法設(shè)計(jì)軟件的過程中,軟件的某個(gè)特定方面的重要性在一次又一次的求精中是變化的。最初,某個(gè)問題可能無關(guān)緊要,但后來同樣的問題會變得相當(dāng)重要。換句話說,可以把逐步求精方法看作是建立某個(gè)階段內(nèi)需要解決的各種問題的優(yōu)先級的一種技術(shù)。它能確保每個(gè)問題都在恰當(dāng)?shù)臅r(shí)間得到解決,而且在任何時(shí)刻都不需要同時(shí)解決7個(gè)以上問題。使用逐
7、步求精方法設(shè)計(jì)軟件的難點(diǎn)在于,在當(dāng)前的求精步驟中確定哪些是必須處理的重要事項(xiàng),哪些事項(xiàng)應(yīng)該推遲到后面的求精步驟中去處理。作為對“更新主文件”的第一步求精,我們把它分解為3個(gè)處理框,分別稱為“輸入”、“處理”和“輸出”,如圖所示。 在這個(gè)設(shè)計(jì)步驟中假設(shè),當(dāng)“處理”需要一個(gè)記錄時(shí),我們能夠在那個(gè)時(shí)候輸入正確的記錄。同樣,我們也能夠在當(dāng)時(shí)把正確的記錄寫入到正確的文件中。也就是說,在把逐步求精方法法運(yùn)用到解決更新主文件這個(gè)問題時(shí),我們是把輸入和輸出這兩方面的問題暫時(shí)分離出去,集中精力設(shè)計(jì)“處理”的算法。 為了搞清楚怎樣按照事務(wù)文件的指示,更新舊的主文件產(chǎn)生新的主文件,也就是說,為了設(shè)計(jì)出處理的算法,讓
8、我們再一次研究圖所示的例子。把第一個(gè)事務(wù)記錄(Brown)的關(guān)鍵字與第一個(gè)舊的主文件記錄(Abel)的關(guān)鍵字相比較。因?yàn)锽rown按字母順序排在Abel的后面,把Abel記錄不加更改地寫入新的主文件后,讀取下一個(gè)舊的主文件記錄(Brown)?,F(xiàn)在,事務(wù)記錄的關(guān)鍵字與舊的主文件記錄的關(guān)鍵字相同,又因?yàn)槭聞?wù)的類型是3(刪除),所以必須刪除Brown記錄,這可通過不把Brown記錄復(fù)制到新的主文件中來實(shí)現(xiàn)。接下來讀取下一個(gè)事務(wù)記錄(Haris)和下一個(gè)舊的主文件記錄(James),分別在各自的緩沖區(qū)里覆蓋Brown記錄,因?yàn)镠aris在James之前,而且事務(wù)類型為1(插入),所以把Haris記錄寫
9、到新的主文件中以實(shí)現(xiàn)插入。讀取下一個(gè)事務(wù)記錄(Jones),因?yàn)镴ones在James之后,把James記錄復(fù)制到新的主文件中,然后讀取下一個(gè)舊的主文件記錄,在舊文件記錄緩沖區(qū)中得到Jones記錄?,F(xiàn)在事務(wù)記錄關(guān)鍵字與舊的主文件記錄關(guān)鍵字相同,正如從事務(wù)文件中看到的那樣,先修改舊的主文件記錄(Jones記錄),然后把它刪除,以便讀取下一個(gè)事務(wù)記錄(Smith)和下一個(gè)舊的主文件記錄(也是Smith)。遺憾的是,事務(wù)類型是1(插入),但是在舊的主文件中已經(jīng)有Smith記錄了,因此,在輸入數(shù)據(jù)中有錯(cuò)誤,將Smith記錄寫入異常報(bào)告中。更確切地說,將Smith事務(wù)記錄寫入異常報(bào)告,而把Smith舊的
10、主文件記錄寫入新的主文件。 總結(jié)上述例子中揭示出的處理過程,得到表所示的處理規(guī)則。 根據(jù)表所示的處理規(guī)則,可以對圖中的“處理”框求精,得圖所示的第2步求精結(jié)果。為減少連線(特別是為了減少交叉線),在這張流程圖中用標(biāo)有相同字母(例如,字母A)的圓代表應(yīng)該連在一起的點(diǎn)。圖中連到“輸入”和“輸出”方框的虛線表示把如何處理輸入和輸出的設(shè)計(jì)決定推遲到較晚的求精步驟中再做出,該圖其余部分是實(shí)現(xiàn)“處理”的流程圖,或者說是對處理事務(wù)的算法的初步求精結(jié)果。正如剛才講過的,已把對輸入和輸出問題的考慮推遲了,此外,還沒有規(guī)定文件結(jié)束的條件,也沒有規(guī)定遇到出錯(cuò)條件時(shí)應(yīng)該怎樣處理。逐步求精方法的優(yōu)點(diǎn)就在于可以把這類問題
11、推遲到后面的求精步驟中去解決。 下一個(gè)設(shè)計(jì)步驟是求精圖中的“輸入”和“輸出”兩個(gè)處理框,得到圖。在這個(gè)設(shè)計(jì)步驟中仍然沒有處理到文件結(jié)束的條件,也沒有寫入工作結(jié)束的信息,這些設(shè)計(jì)工作可以在后面的求精步驟中完成。使用逐步求精方法設(shè)計(jì)軟件時(shí),每完成一個(gè)求精步驟都必須對這個(gè)求精步驟得出的設(shè)計(jì)結(jié)果仔細(xì)審查,沒有發(fā)現(xiàn)錯(cuò)誤才能進(jìn)行下一個(gè)求精步驟的設(shè)計(jì)工作,如果發(fā)現(xiàn)了錯(cuò)誤則應(yīng)該及時(shí)糾正。審查圖可以發(fā)現(xiàn),該設(shè)計(jì)包含一個(gè)嚴(yán)重錯(cuò)誤??紤]圖中給出的數(shù)據(jù)可以發(fā)現(xiàn)這個(gè)錯(cuò)誤。假設(shè)當(dāng)前的事務(wù)是2Jones,也就是修改Jones記錄,并且當(dāng)前的舊的主文件記錄是Jones。在圖的設(shè)計(jì)中,因?yàn)槭聞?wù)記錄的關(guān)鍵字與舊的主文件記錄的關(guān)鍵
12、字相同,沿最左邊的路徑到達(dá)“測試事務(wù)類型”判定框。因?yàn)楫?dāng)前的事務(wù)類型是“修改”,所以修改舊的主文件記錄并把修改后的記錄寫入新的主文件。然后讀取下一個(gè)事務(wù)記錄,該記錄是3Jones,也就是刪除Jones記錄,但是,已經(jīng)把修改后的Jones記錄寫入新的主文件記錄了。 在用逐步求精方法設(shè)計(jì)軟件的過程中對每個(gè)求精步驟得出的設(shè)計(jì)結(jié)果都進(jìn)行嚴(yán)格審查的好處是,一旦發(fā)現(xiàn)了錯(cuò)誤,不必從頭開始重做一遍,只需回到前一步的設(shè)計(jì)結(jié)果,從那里開始重新設(shè)計(jì)即可。在本設(shè)計(jì)中,第二步求精的結(jié)果(見圖)是正確的,可以把它作為第三步求精的基礎(chǔ)。 正如剛才講過的,圖所示設(shè)計(jì)的錯(cuò)誤在于,當(dāng)事務(wù)類型為2(修改)時(shí)沒有考慮下一個(gè)事務(wù)的影響
13、,就把修改后的主文件記錄寫入新的主文件了。為了改正上述錯(cuò)誤,我們采用“前瞻一步”的策略,也就是說,只有在分析了一個(gè)事務(wù)記錄的下一個(gè)事務(wù)記錄之后,才能處理該事務(wù)記錄。更具體地說,當(dāng)一個(gè)事務(wù)記錄的類型為“修改”時(shí),修改緩沖區(qū)中的舊主文件記錄,然后讀取下一個(gè)事務(wù)記錄,如果剛讀出的事務(wù)記錄的關(guān)鍵字與緩沖區(qū)中的舊主文件記錄的關(guān)鍵字不相同,則把緩沖區(qū)中已經(jīng)修改過的舊主文件記錄寫入新的主文件;如果新讀出的事務(wù)記錄的關(guān)鍵字與主文件記錄關(guān)鍵字相同,則依據(jù)新的事務(wù)記錄的類型來處理緩沖區(qū)中的舊主文件記錄。由于事務(wù)文件是預(yù)先排好序的,當(dāng)新讀出的事務(wù)記錄與主文件記錄有相同的關(guān)鍵字時(shí),也就是新讀出的事務(wù)記錄與前一個(gè)事務(wù)記
14、錄是針對同一個(gè)訂戶的事務(wù)時(shí),新讀出的事務(wù)記錄的類型只可能是“修改”或“刪除”(已知前一個(gè)事務(wù)記錄的類型是“修改”)。采用“前瞻一步”的設(shè)計(jì)策略,得出圖所示的第三步求精結(jié)果。 為簡單起見,當(dāng)針對同一位訂戶有多個(gè)事務(wù)時(shí),僅考慮了在修改事務(wù)之后又有修改事務(wù)或刪除事務(wù)的情況。實(shí)際上,如果對事務(wù)文件先進(jìn)行預(yù)處理,使得針對每位訂戶最多只有一個(gè)事務(wù),則更新順序主文件的算法可大大簡化。下面列出對事務(wù)文件可能做的一些預(yù)處理:如果針對同一個(gè)訂戶有多個(gè)修改事務(wù),則僅保留最后一個(gè)修改事務(wù)(本問題中的主文件記錄僅有訂戶姓名和地址兩項(xiàng)信息,多次修改地址則以最后一次修改為準(zhǔn));若插入一位新訂戶記錄后,又有零或多個(gè)修改事務(wù),
15、最后是一個(gè)刪除事務(wù),則略去這一系列事務(wù);若對一個(gè)訂戶記錄既有修改事務(wù)又有刪除事務(wù),則略去修改事務(wù),僅保留刪除事務(wù);若針對一位訂戶既有插入事務(wù)又有修改事務(wù),則用修改事務(wù)的內(nèi)容(地址信息)更正插入事務(wù)的內(nèi)容(地址信息),然后刪去這個(gè)修改事務(wù)。 在第4次求精的過程中,應(yīng)該考慮迄今為止被忽略的諸如打開和關(guān)閉文件這樣的細(xì)節(jié)問題。采用逐步求精方法設(shè)計(jì)軟件時(shí),這樣的細(xì)節(jié)問題是在基本算法被完全設(shè)計(jì)出來之后,最后處理的。顯然,不打開和關(guān)閉文件,程序是不可能正常運(yùn)行的,也就是說,這些問題是必須處理的,但是,重要的是,處理這類細(xì)節(jié)問題應(yīng)該在設(shè)計(jì)的最后階段進(jìn)行。在設(shè)計(jì)的早期階段,設(shè)計(jì)者集中精力關(guān)注的7個(gè)左右問題是不應(yīng)
16、該包括打開和關(guān)閉文件這樣的細(xì)節(jié)問題的。打開和關(guān)閉文件與特定軟件的設(shè)計(jì)無關(guān),它們只是作為任何設(shè)計(jì)的一部分的實(shí)現(xiàn)細(xì)節(jié)。然而,在后面的求精步驟中,打開和關(guān)閉文件變得重要起來,必須加以處理。 從前述設(shè)計(jì)過程可知,可以把逐步求精方法看作是建立在某個(gè)階段內(nèi)需要解決的各種問題的優(yōu)先級的一種技術(shù)。逐步求精方法能夠確保每個(gè)問題都得到解決,并且是在合適的時(shí)間解決,在任何時(shí)刻都不需要同時(shí)考慮7個(gè)以上的問題。2.答:從圖所示的層次圖可以看出,這個(gè)程序的功能是計(jì)算若干個(gè)指定地點(diǎn)的每日平均溫度。變量sum保存某地一天之內(nèi)在指定的時(shí)間取樣點(diǎn)的溫度之和。程序運(yùn)行時(shí)首先初始化變量sum并打開文件,然后讀取地點(diǎn)、時(shí)間和溫度等原始
17、數(shù)據(jù),創(chuàng)建用于保存這些數(shù)據(jù)的溫度記錄,接下來計(jì)算特定地點(diǎn)的日平均溫度,存儲溫度記錄。重復(fù)調(diào)用“讀取地點(diǎn)、時(shí)間和溫度”、“創(chuàng)建新的溫度記錄”、“計(jì)算特定地點(diǎn)的日平均溫度”和“存儲溫度記錄”等模塊,直至計(jì)算出并保存好所有指定地點(diǎn)的日平均溫度。最后,打印平均溫度并關(guān)閉文件。從上述敘述可知,“計(jì)算多個(gè)地點(diǎn)的日平均溫度”、“讀取地點(diǎn)、時(shí)間和溫度”、“創(chuàng)建新的溫度記錄”、“計(jì)算特定地點(diǎn)的日平均溫度”和“存儲溫度記錄”等5個(gè)模塊,每個(gè)都完成一個(gè)單一的功能,模塊內(nèi)所有處理元素都為完成同一個(gè)功能服務(wù),彼此結(jié)合得十分緊密,因此,這5個(gè)模塊的內(nèi)聚類型都是功能內(nèi)聚。初看起來,由于初始化變量sum和打開文件這兩個(gè)操作都
18、是在程序運(yùn)行的初始階段完成的,“初始化變量sum并打開文件”這個(gè)模塊的內(nèi)聚類型似乎是時(shí)間內(nèi)聚。但是,初始化變量sum是本程序特有的操作,而打開文件是硬件要求的操作,是任何使用文件的程序都包含的一個(gè)操作,并非本程序特有的操作。當(dāng)可以分配兩個(gè)或更多個(gè)不同級別的內(nèi)聚類型給一個(gè)模塊時(shí),規(guī)則是分配最低級別的內(nèi)聚類型給該模塊。因此,“初始化變量sum并打開文件”這個(gè)模塊的內(nèi)聚類型是偶然內(nèi)聚。同理,“關(guān)閉文件并打印平均溫度”這個(gè)模塊的內(nèi)聚類型也是偶然內(nèi)聚。這個(gè)模塊的內(nèi)聚類型也是偶然內(nèi)聚。3.答:綜合分析圖和表所提供的信息可知各個(gè)模塊之間的耦合情況。例如,當(dāng)模塊p調(diào)用模塊q時(shí)(接口1),它傳遞了一個(gè)參數(shù)飛機(jī)類
19、型。當(dāng)模塊q把控制返還給模塊p時(shí),它傳回一個(gè)狀態(tài)標(biāo)志。 某些模塊之間的耦合類型是明顯的,例如,模塊p和q之間(接口1)、模塊r和t之間(接口5)及模塊s和u之間(接口6)都是數(shù)據(jù)耦合,因?yàn)樗鼈儌鬟f的都是一個(gè)簡單變量。如果兩個(gè)模塊中的一個(gè)模塊給另一個(gè)模塊傳遞控制元素,也就是說,如果一個(gè)模塊明顯地控制另一個(gè)模塊的邏輯,則它們之間具有控制耦合。例如,當(dāng)給具有邏輯內(nèi)聚的模塊傳遞功能代碼時(shí)就傳遞了控制元素。另一個(gè)控制耦合的例子是把控制開關(guān)作為一個(gè)參數(shù)傳遞。圖中模塊q調(diào)用模塊r時(shí)(接口3)傳遞一個(gè)功能代碼,因此,這兩個(gè)模塊之間是控制耦合。圖右側(cè)文字說明,模塊p、t和u更新同一個(gè)數(shù)據(jù)庫,因此,它們之間具有公
20、共環(huán)境耦合。 當(dāng)模塊p調(diào)用模塊s時(shí)(接口2),如果模塊s使用或更新模塊p傳遞給它的零件清單中的所有元素,則模塊p和s之間的耦合是數(shù)據(jù)耦合;但是,如果模塊s只訪問該清單中的一部分元素,則模塊p和s之間的耦合是特征耦合。模塊q和s之間(接口4)的耦合情況與此類似。由于圖和表中給出的信息尚不足以準(zhǔn)確地描述各個(gè)模塊的功能,所以不能確定這兩對模塊之間的耦合是數(shù)據(jù)耦合還是特征耦合。4.答:我們在解答第2章第11題的過程中,已經(jīng)用結(jié)構(gòu)化分析方法詳細(xì)地分析了這個(gè)工資支付系統(tǒng),并且認(rèn)真審查了結(jié)構(gòu)化分析所得出的結(jié)果。因此,可以從圖所示的工資支付系統(tǒng)完整數(shù)據(jù)流圖出發(fā),設(shè)計(jì)工資支付系統(tǒng)的結(jié)構(gòu)。從圖可以看出,事務(wù)數(shù)據(jù)和
21、人事數(shù)據(jù)沿著兩條輸入通路進(jìn)入系統(tǒng),輸出數(shù)據(jù)沿著一條輸出通路離開系統(tǒng),數(shù)據(jù)流圖中沒有明顯的事務(wù)中心。因此,從整體上看這個(gè)數(shù)據(jù)流圖具有變換流的基本特征。 接下來應(yīng)該分析確定輸入流和輸出流的邊界,以孤立出變換中心?!叭?shù)據(jù)”和“收集數(shù)據(jù)”顯然位于輸入流中?!皩徍藬?shù)據(jù)”僅僅對收集來的事務(wù)數(shù)據(jù)進(jìn)行校核,并不對數(shù)據(jù)進(jìn)行加工處理,它的基本功能是確保輸入的事務(wù)數(shù)據(jù)是合理的,因此,也應(yīng)該歸入輸入流的行列。“更新人事數(shù)據(jù)”由人事科通過另一個(gè)程序完成,不屬于本系統(tǒng)應(yīng)完成的功能?!坝”砀瘛憋@然應(yīng)該位于輸出流中?!胺职l(fā)工資明細(xì)表”由人工完成,它不是工資支付程序的一部分。綜上所述,得出畫有流邊界的數(shù)據(jù)流圖,如圖所示。 下
22、一個(gè)設(shè)計(jì)步驟是,完成“第一級分解”。所謂第一級分解就是確定系統(tǒng)的總體控制結(jié)構(gòu)。通常,變換分析得出的系統(tǒng)高層結(jié)構(gòu)是一個(gè)“三叉”的控制結(jié)構(gòu),針對工資支付系統(tǒng)得出的高層控制結(jié)構(gòu)如圖所示。 再下一個(gè)設(shè)計(jì)步驟是,完成“第二級分解”。所謂第二級分解,就是把數(shù)據(jù)流圖中的每個(gè)處理映射成軟件結(jié)構(gòu)中的一個(gè)適當(dāng)?shù)哪K。變換分析的映射規(guī)則是,從變換中心的邊界開始沿著輸入通路向外移動,把輸入通路中每個(gè)處理映射成軟件結(jié)構(gòu)中“輸入信息處理控制模塊”控制下的一個(gè)低層模塊;然后沿輸出通路向外移動,把輸出通路中每個(gè)處理映射成直接或間接受“輸出信息處理控制模塊”控制的一個(gè)低層模塊;最后把變換中心內(nèi)的每個(gè)處理映射成受“變換中心控制模
23、塊”控制的一個(gè)低層模塊。 對于工資支付系統(tǒng)來說,第二級分解的結(jié)果如圖所示。 最后一個(gè)設(shè)計(jì)步驟是,對工資支付系統(tǒng)的初步設(shè)計(jì)結(jié)果進(jìn)行優(yōu)化。結(jié)合工資支付系統(tǒng)的功能研究圖所示的系統(tǒng)初步結(jié)構(gòu)可以看出,“接收工資數(shù)據(jù)”這個(gè)控制模塊是多余的:“取數(shù)據(jù)”模塊本身就具有根據(jù)需要讀取相應(yīng)數(shù)據(jù)的功能,沒必要在它上面再加一個(gè)控制模塊。此外,完成具體輸出功能的模塊只有一個(gè),無須再額外設(shè)置一個(gè)輸出信息處理控制模塊,因此應(yīng)該去掉“印出計(jì)算結(jié)果”模塊。優(yōu)化后的工資支付系統(tǒng)結(jié)構(gòu)如圖所示。 5.答:計(jì)算環(huán)形復(fù)雜度的方法主要有下述3種。(1)環(huán)形復(fù)雜度等于流圖中的區(qū)域數(shù) 圖所示流圖共有5個(gè)區(qū)域,因此它的環(huán)形復(fù)雜度等于5。圖用羅馬數(shù)
24、字標(biāo)注出該流圖中的區(qū)域,其中區(qū)域?yàn)閳D的外部區(qū)域。(2)環(huán)形復(fù)雜度等于流圖中邊的條數(shù)減去結(jié)點(diǎn)數(shù)之后再加2 圖所示流圖共有11條邊,8個(gè)結(jié)點(diǎn),所以它的環(huán)形復(fù)雜度為(3)環(huán)形復(fù)雜度等于程序中的判斷數(shù)加1 流圖中有2條輸出弧的結(jié)點(diǎn)(例如,圖中的結(jié)點(diǎn)c和f)對應(yīng)于程序中的1個(gè)判斷,有n(n2)條輸出弧的結(jié)點(diǎn)(例如,圖中的結(jié)點(diǎn)a有3條輸出?。?yīng)于程序中的n-1個(gè)判斷。因此,圖所示流圖的環(huán)形復(fù)雜度為21+1(3-1)+1=56. 答:分析圖可以看出,該處理過程由順序執(zhí)行的3個(gè)程序塊組成:首先執(zhí)行處理a,然后執(zhí)行一個(gè)DO-UNTIL型循環(huán),最后執(zhí)行處理j。DO-UNTIL型循環(huán)的循環(huán)體是處理b和一個(gè)IF-THEN-ELSE型分支結(jié)構(gòu),循環(huán)結(jié)束條件為x8。其中,IF-THEN-ELSE型分支結(jié)構(gòu)的分支條件是x1,THEN部分是處理f和另一個(gè)分支條件為 x6的 IF-THEN-ELSE型分支結(jié)構(gòu);ELSE部分是一個(gè) CASE型多分支結(jié)構(gòu)。這樣一層一層地分析下去,可以畫出圖所示的與圖等價(jià)的盒圖。7. 答:8. 答:(1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大連醫(yī)科大學(xué)《皮革整飾化學(xué)與工藝學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江藥科職業(yè)大學(xué)《學(xué)前兒童衛(wèi)生學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津醫(yī)學(xué)高等??茖W(xué)?!吨嗅t(yī)基礎(chǔ)理論》2023-2024學(xué)年第二學(xué)期期末試卷
- 衡陽師范學(xué)院南岳學(xué)院《信號與系統(tǒng)綜合實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 工程竣工驗(yàn)收報(bào)告防腐涂料質(zhì)量評估
- 針對進(jìn)口商品各種情況調(diào)查
- 2025年中國醫(yī)藥市場分析:規(guī)模突破4萬億元 基因藥物增速領(lǐng)跑行業(yè)
- 深溝槽專項(xiàng)施工方案
- 湖南省株洲市淥口區(qū)第三中學(xué)、株洲健坤瀟湘高級中學(xué)2024-2025學(xué)年高二上學(xué)期1月期末聯(lián)考數(shù)學(xué)試題(解析版)
- 成渝經(jīng)濟(jì)圈名校聯(lián)盟2024-2025學(xué)年高三上學(xué)期第一次聯(lián)考數(shù)學(xué)試題(解析版)
- 臨床科室科研用藥管理制度
- 多層光柵結(jié)構(gòu)的防偽技術(shù)研究
- 規(guī)劃選址及用地預(yù)審流程
- 《國有企業(yè)采購操作規(guī)范》【2023修訂版】
- 關(guān)于衛(wèi)健系統(tǒng)工作調(diào)研報(bào)告
- 烯烴習(xí)題參考答案
- 五年級語文下冊第五單元【教材解讀】-【單元先導(dǎo)課】
- 2023-2024學(xué)年山東省淄博市高青縣七年級下學(xué)期期中考試英語試題 (含答案)
- DQ-廠房設(shè)施設(shè)計(jì)確認(rèn)方案
- 常用中藥飲片介紹PPT幻燈片
- 各國鋼材牌號對照大全
評論
0/150
提交評論