2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩124頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第六章,詳細(xì)設(shè)計(jì),詳細(xì)設(shè)計(jì)要提供關(guān)于算法的更多的細(xì)節(jié),例如:總體設(shè)計(jì)可以聲明一個(gè)模塊的作用是對(duì)一個(gè)表進(jìn)行排序,詳細(xì)設(shè)計(jì)則要確定使用哪種排序算法。在詳細(xì)設(shè)計(jì)階段為每個(gè)模塊增加了足夠的細(xì)節(jié)后,程序員才能夠以相當(dāng)直接的方式進(jìn)行下一階段的編碼工作。,詳細(xì)設(shè)計(jì)以總體設(shè)計(jì)階段的工作為基礎(chǔ)的,但又不同于總體設(shè)計(jì),主要表現(xiàn)為:,詳細(xì)設(shè)計(jì)階段的目的與任務(wù),詳細(xì)設(shè)計(jì)的目的: 為軟件結(jié)構(gòu)圖 (SC) 中的每一個(gè)模塊確定采用的算法和模塊內(nèi) 數(shù)據(jù)結(jié)構(gòu)

2、,用某種選定的表達(dá)工具給出清 晰的描述,從而在編碼階段可把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語言書寫的程序。,詳細(xì)設(shè)計(jì)階段的主要任務(wù):設(shè)計(jì)出程序的“藍(lán)圖”,以后程序員將根據(jù)這個(gè)藍(lán)圖寫出實(shí)際的程序代碼。因此詳細(xì)設(shè)計(jì)的結(jié)果基本上決定了最終的程序代碼的質(zhì)量。,詳細(xì)設(shè)計(jì)階段的主要任務(wù),詳細(xì)設(shè)計(jì)的的原則(1)模塊的邏輯描述正確可靠、清晰易讀。(2)采用結(jié)構(gòu)化程序設(shè)計(jì)方法,改善控制結(jié)構(gòu),降低程序復(fù)雜度,提高程序的可讀性、可測(cè)試性和

3、可維護(hù)性。,6.1 結(jié)構(gòu)化程序設(shè)計(jì),結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)是一種設(shè)計(jì)程序的技術(shù),它采用自頂向下、逐步求精的設(shè)計(jì)方法和單入口單出口的控制結(jié)構(gòu),并且只包含順序、選擇和循環(huán)三種控制結(jié)構(gòu)。,用順序和循環(huán)結(jié)構(gòu)完全可以實(shí)現(xiàn)選擇結(jié)構(gòu),,1、順序型,幾個(gè)連續(xù)的加工依次序排列,2、選擇型,由某個(gè)判斷式的取值決定選擇兩個(gè)加工中的一個(gè)。,3、當(dāng)型循環(huán)型 DO_WHILE,當(dāng)循環(huán)控制條件成立時(shí),重復(fù)執(zhí)行特定的加工。,4、直到型循環(huán)型 DO_UNTIL,重復(fù)

4、執(zhí)行特定的加工,直到循環(huán)控制條件成立時(shí)。,5、多分支結(jié)構(gòu) DO_CASE,經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì):順序,選擇,當(dāng)型循環(huán)擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì):順序,選擇+多分支,當(dāng)型循環(huán)+直到型循環(huán)修正的結(jié)構(gòu)程序設(shè)計(jì):順序,選擇+多分支,當(dāng)型循環(huán)+直到型循環(huán),break結(jié)構(gòu),結(jié)構(gòu)程序設(shè)計(jì),使用結(jié)構(gòu)程序設(shè)計(jì)技術(shù)的好處:,(1)自頂向下逐步求精的方法符合人類解決復(fù)雜問題的普遍規(guī)律,可顯著提高軟件開發(fā)的成功率和生產(chǎn)率 (2)先全局后局部、先整體后細(xì)節(jié)、先抽象后

5、具體的逐步求精過程開發(fā)出的程序有清晰的層次結(jié)構(gòu)。(3)使用單入口單出口的控制結(jié)構(gòu)而不使用GOTO語句,使得程序的靜態(tài)結(jié)構(gòu)和其動(dòng)態(tài)執(zhí)行情況比較一致(4)控制結(jié)構(gòu)有確定的邏輯模式,編寫程序代碼只限于使用很少幾種直截了當(dāng)?shù)姆绞?。?)程序清晰和模塊化使得在修改和重新設(shè)計(jì)一個(gè)軟件時(shí)可以重用的代碼量最大。(6)程序的邏輯結(jié)構(gòu)清晰,有利于程序正確性證明。,人機(jī)界面設(shè)計(jì)是接口設(shè)計(jì)的一個(gè)重要的組成部分。近年來,人機(jī)界面在系統(tǒng)中所占的比例越來越大

6、,在個(gè)別系統(tǒng)中人機(jī)界面的設(shè)計(jì)工作量甚至占總設(shè)計(jì)量的一半以上。 人機(jī)界面的設(shè)計(jì)質(zhì)量,直接影響用戶對(duì)軟件產(chǎn)品的評(píng)價(jià),從而影響軟件產(chǎn)品的競(jìng)爭(zhēng)力和壽命,因此,必須對(duì)人機(jī)界面設(shè)計(jì)給予足夠重視。,6.2 人機(jī)界面設(shè)計(jì),6.2.1 設(shè)計(jì)問題,在設(shè)計(jì)人機(jī)界面的過程中,會(huì)遇到下述4個(gè)問題:系統(tǒng)響應(yīng)時(shí)間、用戶幫助設(shè)施、出錯(cuò)信息處理和命令交互。 最好在設(shè)計(jì)初期就把這些問題作為重要的設(shè)計(jì)問題來考慮,這時(shí)修改比較容易,代價(jià)也低。,1.

7、 系統(tǒng)響應(yīng)時(shí)間,指從用戶完成某個(gè)控制動(dòng)作(例如,按回車鍵或點(diǎn)擊鼠標(biāo)),到軟件給出預(yù)期的響應(yīng)(輸出信息或做動(dòng)作)之間的這段時(shí)間。兩個(gè)重要屬性:長度和易變性。長度:系統(tǒng)響應(yīng)時(shí)間不能過長。當(dāng)用戶工作速度是由人機(jī)界面決定的時(shí)候,系統(tǒng)響應(yīng)時(shí)間過短也不好,這會(huì)迫使用戶加快操作節(jié)奏,從而可能會(huì)犯錯(cuò)誤。,易變性:指系統(tǒng)響應(yīng)時(shí)間相對(duì)于平均響應(yīng)時(shí)間的偏差,在許多情況下,這是系統(tǒng)響應(yīng)時(shí)間的更重要的屬性。響應(yīng)時(shí)間易變性低也有助于用戶建立起穩(wěn)定的工作節(jié)

8、奏。例如,穩(wěn)定在1秒的響應(yīng)時(shí)間比從0.1秒到2.5秒變化的響應(yīng)時(shí)間要好。響應(yīng)時(shí)間變化過大用戶往往擔(dān)心這暗示系統(tǒng)工作出現(xiàn)了異常。,2. 用戶幫助設(shè)施,大多數(shù)現(xiàn)代軟件都提供聯(lián)機(jī)幫助設(shè)施,這使得用戶無須離開用戶界面就能解決自己的問題。常見的幫助設(shè)施可分為兩類。集成的:一開始就設(shè)計(jì)在軟件里面,通常它對(duì)用戶工作內(nèi)容是敏感的,因此用戶可以從與剛剛完成的操作有關(guān)的主題中選擇一個(gè)請(qǐng)求幫助。顯然,這可以縮短用戶獲得幫助的時(shí)間,增加界面的友好性。附加

9、的:在系統(tǒng)建成后再添加到軟件中的,在多數(shù)情況下它實(shí)際上是一種查詢能力有限的聯(lián)機(jī)用戶手冊(cè)。,(1) 在用戶與系統(tǒng)交互期間,是否在任何時(shí)候都能獲得關(guān)于系統(tǒng)任何功能的幫助信息:提供部分功能的幫助信息和提供全部功能的幫助信息。(2) 用戶怎樣請(qǐng)求幫助:幫助菜單,特殊功能鍵F1和HELP命令。(3) 怎樣顯示幫助信息:在獨(dú)立的窗口中,指出參考某個(gè)文檔(不理想)和在屏幕固定位置顯示簡(jiǎn)短提示。(4) 用戶怎樣返回到正常的交互方式中:屏幕上的返回

10、按鈕和功能鍵(大型網(wǎng)絡(luò)游戲)。(5) 怎樣組織幫助信息:平面結(jié)構(gòu),信息的層次結(jié)構(gòu)和超文本結(jié)構(gòu)。,設(shè)計(jì)時(shí)應(yīng)考慮的問題:,3. 出錯(cuò)信息處理,出錯(cuò)或警告信息應(yīng)該具有下述屬性:(1) 信息應(yīng)該用用戶可以理解的術(shù)語描述問題。(2) 信息應(yīng)該提供有助于從錯(cuò)誤中恢復(fù)的建設(shè)性意見。如:不要用“選課失敗”,給出失敗的原因。(3) 信息應(yīng)該指出錯(cuò)誤可能導(dǎo)致哪些負(fù)面后果(例如,破壞數(shù)據(jù)文件),以便用戶檢查是否出現(xiàn)了這些問題,并在確實(shí)出現(xiàn)問題時(shí)及時(shí)解

11、決。(4) 信息應(yīng)伴隨著聽覺或視覺上的提示:如發(fā)出警告鈴聲、用閃爍方式或表示出錯(cuò)的顏色顯示信息。如:網(wǎng)絡(luò)防火墻,網(wǎng)絡(luò)連接圖標(biāo)等(5) 信息不能帶有指責(zé)色彩,即不能責(zé)怪用戶。當(dāng)確實(shí)出現(xiàn)了問題的時(shí)候,有效的出錯(cuò)信息能提高交互式系統(tǒng)的質(zhì)量,減輕用戶的挫折感。,4. 命令交互,現(xiàn)在用戶既可以從菜單中選擇軟件功能,也可通過鍵盤命令序列調(diào)用軟件功能。在提供命令交互方式時(shí),必須考慮下列設(shè)計(jì)問題。(1) 是否每個(gè)菜單選項(xiàng)都有對(duì)應(yīng)的命令(2)

12、 采用何種命令形式:控制序列(例如,Ctrl+P),功能鍵和鍵入命令。(3) 學(xué)習(xí)和記憶命令的難度有多大,忘記了命令怎么辦?(4) 用戶是否可以定制或縮寫命令?命令宏機(jī)制:用戶可以用自己定義的名字代表一個(gè)常用的命令序列。用戶只需輸入命令宏的名字就可以順序執(zhí)行它所代表的全部命令。,6.2.2 設(shè)計(jì)過程,用戶界面設(shè)計(jì)是一個(gè)迭代的過程:通常先創(chuàng)建設(shè)計(jì)模型,再用原型實(shí)現(xiàn)這個(gè)設(shè)計(jì)模型,并由用戶試用和評(píng)估,然后根據(jù)用戶意見進(jìn)行修改。用戶界

13、面工具箱或用戶界面開發(fā)系統(tǒng):用于界面設(shè)計(jì)和原型開發(fā),為簡(jiǎn)化窗口、菜單、設(shè)備交互、出錯(cuò)信息、命令及交互環(huán)境的許多其他元素的創(chuàng)建,提供了各種例程或?qū)ο蟆?用戶界面的評(píng)估周期:完成初步設(shè)計(jì)之后就創(chuàng)建第一級(jí)原型;用戶試用并評(píng)估該原型即確定其是否滿足需求,直接向設(shè)計(jì)者表述對(duì)界面的評(píng)價(jià);設(shè)計(jì)者根據(jù)用戶意見修改設(shè)計(jì)并實(shí)現(xiàn)下一級(jí)原型。上述評(píng)估過程持續(xù)進(jìn)行下去,直到用戶感到滿意,不需要再修改界面設(shè)計(jì)時(shí)為止。,6.2.3 人機(jī)界面設(shè)計(jì)指南,設(shè)計(jì)指

14、南:眾多設(shè)計(jì)者的經(jīng)驗(yàn)得出,有助于設(shè)計(jì)出友好、高效的人機(jī)界面。下面介紹3類設(shè)計(jì)指南:1. 一般交互指南涉及信息顯示、數(shù)據(jù)輸入和系統(tǒng)整體控制,因此,這類指南是全局性的,忽略它們將承擔(dān)較大風(fēng)險(xiǎn)。(1) 保持一致性:應(yīng)為人機(jī)界面中的菜單選擇、命令輸入、數(shù)據(jù)顯示及眾多的其他功能,使用一致的格式。(2) 提供有意義的反饋:應(yīng)向用戶提供視覺的和聽覺的反饋,以保證在用戶和系統(tǒng)之間建立雙向通信。,(3) 在執(zhí)行有較大破壞性的動(dòng)作之前要求用戶確認(rèn):

15、如果用戶要?jiǎng)h除一個(gè)文件,或覆蓋一些重要信息,或終止一個(gè)程序的運(yùn)行。(4) 允許取消絕大多數(shù)操作:UNDO或REVERSE功能曾經(jīng)使眾多終端用戶避免了大量時(shí)間浪費(fèi)。(5) 減少在兩次操作之間必須記憶的信息量。(6) 提高對(duì)話、移動(dòng)和思考的效率:減少用戶擊鍵的次數(shù),設(shè)計(jì)屏幕布局時(shí)應(yīng)考慮減少鼠標(biāo)移動(dòng)的距離,(7) 允許犯錯(cuò)誤:系統(tǒng)應(yīng)該能保護(hù)自己不受嚴(yán)重錯(cuò)誤的破壞。不允許刪除重要系統(tǒng)文件(8) 按功能對(duì)動(dòng)作分類,并據(jù)此設(shè)計(jì)屏幕布局:盡力

16、提高命令和動(dòng)作組織的“內(nèi)聚性”,下拉菜單的就是按動(dòng)作類型組織命令。 (9) 提供對(duì)用戶工作內(nèi)容敏感的幫助設(shè)施(參見6.2.1節(jié))。(10) 用簡(jiǎn)單動(dòng)詞或動(dòng)詞短語作為命令名。過長的命令名難于識(shí)別和記憶,也會(huì)占用過多的菜單空間。,下面是關(guān)于信息顯示的設(shè)計(jì)指南。(1) 只顯示與當(dāng)前工作內(nèi)容有關(guān)的信息:用戶在獲得有關(guān)系統(tǒng)的特定功能的信息時(shí),不必看到與之無關(guān)的數(shù)據(jù)、菜單和圖形。如windows提供多種顯示方式。(2) 應(yīng)該用便于用戶迅速吸

17、取信息的方式來表示數(shù)據(jù):例如,可以用圖形或圖表來取代龐大的表格。(3) 使用一致的標(biāo)記、標(biāo)準(zhǔn)的縮寫和可預(yù)知的顏色:顯示的含義應(yīng)該非常明確,用戶無須參照其他信息源就能理解。如點(diǎn)擊過的鏈接用紅色顯示。,2. 信息顯示指南,(4) 允許用戶保持可視化的語境:如果對(duì)所顯示的圖形進(jìn)行縮放,原始的圖像應(yīng)該一直顯示著(以縮小的形式放在顯示屏的一角),以使用戶知道當(dāng)前看到的圖像部分在原圖中所處的相對(duì)位置。(5) 產(chǎn)生有意義的出錯(cuò)信息(參見6.2.1

18、節(jié))。(6) 使用大小寫、縮進(jìn)和文本分組以幫助理解:人機(jī)界面顯示的信息大部分是文字,文字的布局和形式對(duì)用戶從中提取信息的難易程度有很大影響。,(7) 使用窗口分隔不同類型的信息:利用窗口用戶能夠方便地“保存”多種不同類型的信息。(8) 使用“模擬”顯示方式表示信息,以使信息更容易被用戶提取:例如,顯示煉油廠儲(chǔ)油罐的壓力時(shí),用類似溫度計(jì)的形式來表示壓力,用垂直移動(dòng)和顏色變化來指示危險(xiǎn)的壓力狀況,就容易引起用戶的警覺。如任務(wù)管理器。(

19、9) 高效率地使用顯示屏:當(dāng)使用多窗口時(shí),應(yīng)該有足夠的空間使得每個(gè)窗口至少都能顯示出一部分。,3. 數(shù)據(jù)輸入指南,下面是關(guān)于數(shù)據(jù)輸入的設(shè)計(jì)指南。(1) 盡量減少用戶的輸入動(dòng)作:用鼠標(biāo)從預(yù)定義的一組輸入中選一個(gè); (2) 保持信息顯示和數(shù)據(jù)輸入之間的一致性。顯示的視覺特征(顏色、文字大?。?yīng)該與輸入域一致。(3) 允許用戶自定義輸入:專家級(jí)用戶可能希望定義自己專用的命令或略去某些警告信息和動(dòng)作確認(rèn)。(4) 交互應(yīng)該是靈活的,并且可

20、調(diào)整成用戶最喜歡的輸入方式:例如,秘書可能非常喜歡鍵盤輸入,而經(jīng)理可能更喜歡使用鼠標(biāo)之類的點(diǎn)擊設(shè)備。,(5) 使在當(dāng)前動(dòng)作語境中不適用的命令不起作用:這可使得用戶不去做那些肯定會(huì)導(dǎo)致錯(cuò)誤的動(dòng)作。(6) 讓用戶控制交互流:用戶應(yīng)能夠跳過不必要的動(dòng)作,在不退出程序的情況下從錯(cuò)誤狀態(tài)中恢復(fù)正常。(7) 對(duì)所有輸入動(dòng)作都提供幫助(參見6.2.1節(jié))。(8) 消除冗余的輸入:除非可能發(fā)生誤解,否則不要要求用戶指定輸入數(shù)據(jù)的單位;盡可能提供默

21、認(rèn)值;絕對(duì)不要要求用戶提供程序可以自動(dòng)獲得或計(jì)算出來的信息。,6.3 過程設(shè)計(jì)的工具,6.3.1 程序流程圖,6.3.2 盒圖,6.3.3 PAD圖,6.3.6 過程設(shè)計(jì)語言,6.3.4 判定表,6.3.5 判定樹,過程設(shè)計(jì),從軟件開發(fā)的工程化觀點(diǎn)來看,在使用程序設(shè)計(jì)語言編制程序以前,需要對(duì)所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過程細(xì)節(jié),并給予清晰的表達(dá)。這就是過程設(shè)計(jì)的任務(wù)。在過程設(shè)計(jì)階段,要決定各

22、個(gè)模塊的實(shí)現(xiàn)算法,并精確地表達(dá)這些算法。表達(dá)過程規(guī)格說明的工具叫做過程設(shè)計(jì)工具,它可以分為以下三類: 圖形工具 表格工具 語言工具,6.3.1 程序流程圖,程序流程圖中常用的符號(hào),程序流程圖也稱為程序框圖,是歷史最悠久、使用最廣泛的一種描述工具,它獨(dú)立于任何一種程序設(shè)計(jì)語言,主要優(yōu)點(diǎn)是對(duì)控制流程的描繪比較直觀,便于掌握。,流程符號(hào)的使用規(guī)則,1、循環(huán)符號(hào)的使用,循環(huán)體,----- 循環(huán)流程符號(hào)的使用,2、判斷有一個(gè)入口,但也允

23、許有多個(gè)可選出口,----- 多出口判斷流程符號(hào)的使用,請(qǐng)利用程序流程圖描述下列問題的程序結(jié)構(gòu),某汽車修配廠,有一個(gè)存有汽車零件的倉庫,其中存有若干種零件,請(qǐng)編寫一個(gè)查詢程序,用于查詢?cè)搸熘心沉慵膸齑媪繛槎嗌佟?,程序流程圖的隨意性和靈活性使它存在一些缺點(diǎn):,(1)由于程序流程圖誘使程序員容易過早地考慮程序的具體控制流程,而忽略了程序的全局結(jié)構(gòu),它本身并不是逐步求精的好工具;,(2)程序流程圖中用箭頭代表控制流,這樣使得程序員不

24、受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)的精神,隨意轉(zhuǎn)移控制;,(3)程序流程圖在表示數(shù)據(jù)結(jié)構(gòu)方面存在不足。,練習(xí) 131頁4,6.3.2 盒圖(N-S圖),N-S圖的基本符號(hào),N-S圖有以下一些特點(diǎn):,(1)功能域(即某一個(gè)特定控制結(jié)構(gòu)的作用域)有明確的規(guī)定,并且可以很直觀地從N-S圖上看出來;,(2)它的控制轉(zhuǎn)移不能任意規(guī)定,必須遵守結(jié)構(gòu)化程序設(shè)計(jì)的要求;,(3)很容易確定局部數(shù)據(jù)和全局?jǐn)?shù)據(jù)的作用域;,(4)很容易表現(xiàn)嵌套關(guān)系,也

25、可以表示模塊的層次結(jié)構(gòu)。,N-S圖的嵌套定義形式,請(qǐng)利用程序流程圖描述下列問題的程序結(jié)構(gòu),某汽車修配廠,有一個(gè)存有汽車零件的倉庫,其中存有若干種零件,請(qǐng)編寫一個(gè)查詢程序,用于查詢?cè)搸熘心沉慵膸齑媪繛槎嗌佟?,131頁3,131頁4,解法2,解法1,問題分析圖(Problem Analysis Diagram)采用二維樹形結(jié)構(gòu)圖表示程序的控制流。將這種圖翻譯成程序代碼比較容易。用PAD 圖表達(dá)的軟件過程將呈樹形結(jié)構(gòu),它即克服了

26、傳統(tǒng)的流程圖不能清晰表現(xiàn)程序結(jié)構(gòu)的缺點(diǎn),又不像N-S圖那樣受到把全部程序約束在一個(gè)方框內(nèi)的限制。,6.3.3 PAD圖,PAD圖的基本符號(hào),PAD圖的主要優(yōu)點(diǎn)如下:,(1) 使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的PAD符號(hào)所設(shè)計(jì)出來的程序必然是結(jié)構(gòu)化程序。(2) PAD圖所描繪的程序結(jié)構(gòu)十分清晰。圖中最左面的豎線是程序的主線,即第一層結(jié)構(gòu)。隨著程序?qū)哟蔚脑黾樱琍AD圖逐漸向右延伸,每增加一個(gè)層次,圖形向右擴(kuò)展一條豎線。PAD圖中豎線的總條數(shù)就是

27、程序的層次數(shù)。(3) 用PAD圖表現(xiàn)程序邏輯,易讀、易懂、易記。PAD圖是二維樹形結(jié)構(gòu)的圖形,程序從圖中最左豎線上端的結(jié)點(diǎn)開始執(zhí)行,自上而下,從左向右順序執(zhí)行,遍歷所有結(jié)點(diǎn)。,(4) 容易將PAD圖轉(zhuǎn)換成高級(jí)語言源程序,這種轉(zhuǎn)換可用軟件工具自動(dòng)完成,從而可省去人工編碼的工作,有利于提高軟件可靠性和軟件生產(chǎn)率。(5) 既可用于表示程序邏輯,也可用于描繪數(shù)據(jù)結(jié)構(gòu)。(6) PAD圖的符號(hào)支持自頂向下、逐步求精方法的使用。開始時(shí)設(shè)計(jì)者可以

28、定義一個(gè)抽象的程序,隨著設(shè)計(jì)工作的深入而使用def符號(hào)逐步增加細(xì)節(jié),直至完成詳細(xì)設(shè)計(jì),如圖6.6所示。,圖6.6 使用PAD圖提供的定義功能來逐步求精的例子,,當(dāng)算法中包含多重嵌套的條件選擇時(shí),用判定表可以清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系。在判定表中的條件部分給出所有的兩分支判斷的列表,動(dòng)作部分給出所有可能的處理判定表用于表示程序的靜態(tài)邏輯,判定表不適于作為一種通用的設(shè)計(jì)工具,沒有一種簡(jiǎn)單的方法使它能同時(shí)清晰地表

29、示順序和重復(fù)等處理特性。要求將程序流程圖中的多分支判斷都改成兩分支判斷,6.3.4 判定表,建立判定表的步驟,左上部列出過程執(zhí)行期間的所有條件(或所有判斷)。左下部列出與一個(gè)具體過程(或模塊)有關(guān)的所有處理。右上部為各種可能組合條件,其中每一列表示一種可能組合:將特定條件取值組合與特定的處理相匹配,消去不可能發(fā)生的條件取值組合。右下部的每一列是和每一種條件組合所對(duì)應(yīng)的應(yīng)做的動(dòng)作。,假設(shè)某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量不超過

30、30kg的行李。當(dāng)行李重量超過30kg時(shí),對(duì)頭等艙的國內(nèi)乘客超重部分每公斤收費(fèi)4元,對(duì)其他艙的國內(nèi)乘客超重部分每公斤收費(fèi)6元,對(duì)外國乘客超重部分每公斤收費(fèi)比國內(nèi)乘客多一倍,對(duì)殘疾乘客超重部分每公斤收費(fèi)比正常乘客少一半。用判定表可以清楚地表示與上述每種條件組合相對(duì)應(yīng)的計(jì)算行李費(fèi)的算法,如表6.1所示。,下面以行李托運(yùn)費(fèi)的算法為例:,用判定表表示計(jì)算行李費(fèi)的算法,,,所有條件,所有可能做的動(dòng)作,表示做它左邊那項(xiàng)動(dòng)作,表示左邊那個(gè)條件成立,表

31、示條件成立與否不影響對(duì)動(dòng)作的選擇,是判定表的變種,也能清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系。形式簡(jiǎn)單,易于掌握和使用。同一元素可能重復(fù)出現(xiàn),分支的次序可能對(duì)最終的判定樹的簡(jiǎn)潔程度有較大的影響。,6.3.5 判定樹,用判定樹計(jì)算行李費(fèi)的算法,某校制定了教師的講課課時(shí)津貼標(biāo)準(zhǔn)。對(duì)于各種性質(zhì)的講座,無論教師是什么職稱,每課時(shí)津貼費(fèi)一律是50元;而對(duì)于一般的授課,則根據(jù)教師的職稱來決定每課時(shí)津貼費(fèi):教授30元,副教授25元

32、,講師20元,助教15元。用判定表和判定樹表示課時(shí)費(fèi)的計(jì)算方法。,作業(yè):,教師課時(shí)津貼判定樹,,PDL 是一種用于描述功能模塊的算法設(shè)計(jì)和加工細(xì)節(jié)的語言,使用自然語言的詞匯,同時(shí)使用程序設(shè)計(jì)語言的語法,稱為設(shè)計(jì)程序用語言。它是一種偽代碼(Pseudo code),PDL,-----關(guān)鍵詞+自然語言,偽代碼----文字形式的表達(dá)工具,不能在計(jì)算機(jī)上執(zhí)行,但形式上與代碼相似。用它來描述程序的結(jié)構(gòu),工作量要比畫圖小,又比較容易轉(zhuǎn)換真正的代碼

33、。,6.3.6 過程設(shè)計(jì)語言,PDL具有嚴(yán)格的關(guān)鍵字外部語法,用于定義控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),同時(shí)它的表示實(shí)際操作和條件的內(nèi)部語法可使用自然語言的詞匯。,(1)、數(shù)據(jù)說明:,格式: TYPE AS ,其功能是定義數(shù)據(jù)的類型和作用域,說明: 1. 變量名:是一個(gè)模塊內(nèi)部使用的變量或模塊間共用 的全局變量名。,2. 限定詞1 :標(biāo)明數(shù)據(jù)類型,3. 限定詞2 :標(biāo)明該變量的作用域,TYPE number AS S

34、TRING LENGTH (12),(2)、程序塊:,PDL的過程成分是由塊結(jié)構(gòu)構(gòu)成的,而塊將作為一個(gè)單個(gè)的實(shí)體來執(zhí)行。,BEGIN END,(3)、子程序結(jié)構(gòu):,把 PDL 中的過程稱為子程序。,PROCEDURE INTERFACE END,PROCEDURE spellcheck IS split document into sing

35、le words look up words in dictionary display words which are not in dictionary create a new dictionary END,示例: 拼詞檢查程序,(4)、基本控制結(jié)構(gòu):,IF THEN ; ELSE ; ENDIF,--- 選擇型結(jié)構(gòu),DO WHILE ; ENDDO,R

36、EPEAT UNTIL ; ENDREP,--- 重復(fù)型結(jié)構(gòu),DO LOOP ; EXIT WHEN ENDLOOP,DO FOR ; ENDFOR,--- 重復(fù)型結(jié)構(gòu),----- 多路選擇結(jié)構(gòu),CASE OF ; WHEN SELECT ; WHEN SELECT ; … … DEFA

37、ULT: ; ENDCASE,READ/WRITE TO ,--- 輸入/輸出結(jié)構(gòu),,Enter a vector Set Maximum to the value of the first element in the vector DO for each second one to the last IF value of THEN element is greater

38、 than the Maximum value Set Maximum to value of the element ENDDO Print the Maximum value,,,… … execute process a REPEAT UNTIL condition X8 execute process b IF condition X1

39、 THEN BEGIN execute process f IF condition X6 THEN REPEAT UNTIL condition X7 execute proc

40、ess i ENDREP ELSE BEGIN execute process g execute proces

41、s h END ENDIF END,請(qǐng)將下列的 PDL 表示的某模塊的過程性描述,改為用:1、N-S 圖 2、PAD 圖表示,,ELSE CASE OF Xi WHEN condition X2

42、 SELECT DO WHILE condition X5 execute process C ENDDO WHEN condition X3 SELECT process d

43、 WHEN condition X4 SELECT process e ENDCASE ENDIF ENDREP execute process jEND,PDL語言具有下述優(yōu)點(diǎn):(1) PDL描述可以直接作為注釋插在源程序中,這樣做能促使維護(hù)人員在修改程序代碼的同時(shí)也相應(yīng)地修改PDL注釋,因此有助于保持文檔

44、和程序的一致性,提高了文檔的質(zhì)量。(2)用PDL寫出的程序,既可以很抽象,又可以很具體,易實(shí)現(xiàn)自頂向下逐步求精的設(shè)計(jì)原則。(3)PDL描述同自然語言很接近,易于理解??梢允褂闷胀ǖ恼木庉嫵绦蚧蛭淖痔幚硐到y(tǒng),很方便地完成PDL的書寫和編輯工作。(4) PDL描述與程序結(jié)構(gòu)相似,而且已經(jīng)有自動(dòng)處理程序存在,可以自動(dòng)由PDL生成程序代碼PDL的缺點(diǎn)是不如圖形描述形象直觀,因此人們常常將PDL描述與一種圖形描述結(jié)合起來使用。,,6.4

45、 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,6.4.1 Jackson圖,6.4.2 Jackson程序設(shè)計(jì)方法,退出,Jackson程序設(shè)計(jì)方法,數(shù)據(jù)結(jié)構(gòu)既影響程序的結(jié)構(gòu)又影響程序的處理過程。面向數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)方法的最終目標(biāo)是得出對(duì)程序處理過程的描述。適合于在詳細(xì)設(shè)計(jì)階段設(shè)計(jì)每個(gè)模塊的處理過程。首先需要分析確定數(shù)據(jù)結(jié)構(gòu),并用適當(dāng)?shù)墓ぞ咔逦孛枥L數(shù)據(jù)結(jié)構(gòu)。,6.4.1 Jackson圖,Jackson圖表示方法,順序結(jié)構(gòu):數(shù)據(jù)由一個(gè)和多個(gè)數(shù)

46、據(jù)元素組成,每個(gè)元素按確定次序出現(xiàn)一次。選擇結(jié)構(gòu):數(shù)據(jù)包含兩個(gè)和多個(gè)數(shù)據(jù)元素,每次使用這個(gè)數(shù)據(jù)時(shí)按一定條件從這些數(shù)據(jù)元素中選擇一個(gè)。重復(fù)結(jié)構(gòu):重復(fù)結(jié)構(gòu)的數(shù)據(jù),根據(jù)使用時(shí)的條件,由一個(gè)數(shù)據(jù)元素出現(xiàn)零次或多次構(gòu)成。,Jackson圖的優(yōu)點(diǎn):,(1)Jackson圖不僅便于表示層次結(jié)構(gòu),而且也有利于對(duì)結(jié)構(gòu)自頂向下分解; (2)Jackson圖形象直觀,可讀性好;(3)Jackson圖不僅能表示數(shù)據(jù)結(jié)構(gòu),也能表示程序結(jié)構(gòu)(因?yàn)槌绦蚪Y(jié)構(gòu)也

47、可以由上述3種基本結(jié)構(gòu)組成)。,Jackson圖的缺點(diǎn):,,,在選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)中,選擇條件或循環(huán)結(jié)束條件不能直接在Jackson圖中表示出來。這樣就影響了圖形的表達(dá)能力,也不利于直接把圖翻譯成程序。,改進(jìn)的Jackson圖,標(biāo)識(shí)循環(huán)條件和分支條件框間連線改為直線,i是分支條件的編號(hào),i是循環(huán)結(jié)束條件的編號(hào),6.4.2 改進(jìn)的Jackson圖,Jackson圖實(shí)質(zhì)上是對(duì)第3.7節(jié)中介紹的層次方框圖的一種精化。 與層次圖的區(qū)

48、別: 層次圖中的一個(gè)方框通常代表一個(gè)模塊;而Jackson圖即使在描繪程序結(jié)構(gòu)時(shí),一個(gè)方框也并不代表一個(gè)模塊,通常一個(gè)方框只代表幾個(gè)語句。 層次圖表現(xiàn)的是調(diào)用關(guān)系,通常一個(gè)模塊除了調(diào)用下級(jí)模塊外,還完成其他操作;而Jackson圖表現(xiàn)的是組成關(guān)系,也就是說,一個(gè)方框中包括的操作僅僅由它下層框中的那些操作組成。,6.4.3 Jackson方法,Jackson結(jié)構(gòu)程序設(shè)計(jì)方法基本上由下述5個(gè)步驟組成:(1) 分析并確定輸入數(shù)

49、據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用Jackson圖描繪這些數(shù)據(jù)結(jié)構(gòu)。(2) 找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元。所謂有對(duì)應(yīng)關(guān)系是指有直接的因果關(guān)系,在程序中可以同時(shí)處理的數(shù)據(jù)單元(對(duì)于重復(fù)出現(xiàn)的數(shù)據(jù)單元必須重復(fù)的次序和次數(shù)都相同才可能有對(duì)應(yīng)關(guān)系)。(3) 用下述3條規(guī)則從描繪數(shù)據(jù)結(jié)構(gòu)的Jackson圖導(dǎo)出描繪程序結(jié)構(gòu)的Jackson圖:,第一,為每對(duì)有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元,按照它們?cè)跀?shù)據(jù)結(jié)構(gòu)圖中的層次在程序結(jié)構(gòu)圖的相應(yīng)層次

50、畫一個(gè)處理框(注意,如果這對(duì)數(shù)據(jù)單元在輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中所處的層次不同,則和它們對(duì)應(yīng)的處理框在程序結(jié)構(gòu)圖中所處的層次與它們之中在數(shù)據(jù)結(jié)構(gòu)圖中層次低的那個(gè)對(duì)應(yīng));第二,根據(jù)輸入數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對(duì)應(yīng)的處理框;第三,根據(jù)輸出數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對(duì)應(yīng)的處理框。,總之,描繪程序結(jié)構(gòu)的Jackson圖應(yīng)該綜合輸入數(shù)據(jù)結(jié)構(gòu)

51、和輸出數(shù)據(jù)結(jié)構(gòu)的層次關(guān)系而導(dǎo)出來。在導(dǎo)出程序結(jié)構(gòu)圖的過程中,由于改進(jìn)的Jackson圖規(guī)定在構(gòu)成順序結(jié)構(gòu)的元素中不能有重復(fù)出現(xiàn)或選擇出現(xiàn)的元素,因此可能需要增加中間層次的處理框。(4) 列出所有操作和條件(包括分支條件和循環(huán)結(jié)束條件),并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。(5) 用偽碼表示程序。Jackson方法中使用的偽碼和Jackson圖是完全對(duì)應(yīng)的,下面是和3種基本結(jié)構(gòu)對(duì)應(yīng)的偽碼。,(1)順序結(jié)構(gòu),A seqBCD

52、A end,(2)選擇結(jié)構(gòu),(3)重復(fù)結(jié)構(gòu),A select condition1BA or condition2CA or condition3DA end,A iter until(或while) conditionBA end,[例]一個(gè)正文文件由若干個(gè)記錄組成,每個(gè)記錄是一個(gè)字符串。要求統(tǒng)計(jì)每個(gè)記錄中空格字符的個(gè)數(shù),以及文件中空格字符的總個(gè)數(shù)。要求的輸出數(shù)據(jù)格式是,每復(fù)制一行輸入字符串之

53、后,另起一行印出這個(gè)字符串中的空格數(shù),最后印出文件中空格的總個(gè)數(shù)。對(duì)于這個(gè)簡(jiǎn)單例子而言,輸入和輸出數(shù)據(jù)的結(jié)構(gòu)很容易確定。圖6.12是用Jackson圖描繪的輸入輸出數(shù)據(jù)結(jié)構(gòu)。,圖6.12 表示輸入輸出數(shù)據(jù)結(jié)構(gòu)的Jackson圖,第二步是分析確定在輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元: 輸出數(shù)據(jù)總是通過對(duì)輸入數(shù)據(jù)的處理而得到的,因此在輸入輸出數(shù)據(jù)結(jié)構(gòu)最高層次的兩個(gè)單元總是有對(duì)應(yīng)關(guān)系的。這一對(duì)單元將和程序結(jié)構(gòu)圖中最頂層的方

54、框(代表程序)相對(duì)應(yīng),也就是說經(jīng)過程序的處理由正文文件得到輸出表格。 因?yàn)槊刻幚磔斎霐?shù)據(jù)中一個(gè)“字符串”之后,就可以得到輸出數(shù)據(jù)中一個(gè)“串信息”,它們都是重復(fù)出現(xiàn)的數(shù)據(jù)單元,而且出現(xiàn)次序和重復(fù)次數(shù)都完全相同,因此,“字符串”和“串信息”也是一對(duì)有對(duì)應(yīng)關(guān)系的單元。,依次考察輸入數(shù)據(jù)結(jié)構(gòu)中余下的數(shù)據(jù)單元:“字符”不可能和多個(gè)字符組成的“字符串”對(duì)應(yīng),和輸出數(shù)據(jù)結(jié)構(gòu)中其他數(shù)據(jù)單元也不能對(duì)應(yīng)。 “空格”能和“空格數(shù)”對(duì)應(yīng)嗎?顯然,單個(gè)空

55、格并不能決定一個(gè)記錄中包含的空格個(gè)數(shù),因此沒有對(duì)應(yīng)關(guān)系。 通過類似的考察發(fā)現(xiàn),輸入數(shù)據(jù)結(jié)構(gòu)中余下的任何一個(gè)單元在輸出數(shù)據(jù)結(jié)構(gòu)中都找不到對(duì)應(yīng)的單元,也就是說,在這個(gè)例子中輸入輸出數(shù)據(jù)結(jié)構(gòu)中只有上述兩對(duì)有對(duì)應(yīng)關(guān)系的單元。在圖6.12中用一對(duì)虛線箭頭把有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元連接起來,以突出表明這種對(duì)應(yīng)關(guān)系。,第三步是從數(shù)據(jù)結(jié)構(gòu)圖導(dǎo)出程序結(jié)構(gòu)圖。首先,在描繪程序結(jié)構(gòu)的Jackson圖的最頂層畫一個(gè)處理框“統(tǒng)計(jì)空格”,它與“正文文件”和“輸出

56、表格”這對(duì)最頂層的數(shù)據(jù)單元相對(duì)應(yīng)。第二層:因?yàn)樵谳敵鰯?shù)據(jù)結(jié)構(gòu)中“串信息”的上層還有“表格體”和“空格總數(shù)”兩個(gè)數(shù)據(jù)單元,在程序結(jié)構(gòu)圖的第二層應(yīng)該有與這兩個(gè)單元對(duì)應(yīng)的處理框——“程序體”和“印總數(shù)”。,第三層:與“字符串”和“串信息”相對(duì)應(yīng)的處理框——“處理字符串”。第四層:和“字符串”、“字符”及“空格數(shù)”等數(shù)據(jù)單元對(duì)應(yīng)的處理框“印字符串”、“分析字符”及“印空格數(shù)”,這3個(gè)處理是順序執(zhí)行的。但是,“字符”是重復(fù)出現(xiàn)的數(shù)據(jù)單元,因此

57、“分析字符”也應(yīng)該是重復(fù)執(zhí)行的處理。改進(jìn)的Jackson圖規(guī)定順序執(zhí)行的處理中不允許混有重復(fù)執(zhí)行或選擇執(zhí)行的處理,所以在“分析字符”這個(gè)處理框上面又增加了一個(gè)處理框“分析字符串”。最后得到的程序結(jié)構(gòu)圖為圖6.13。,圖6.13 描繪統(tǒng)計(jì)空格程序結(jié)構(gòu)的Jackson圖,第四步是列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。首先,列出統(tǒng)計(jì)空格個(gè)數(shù)需要的全部操作和條件。經(jīng)過簡(jiǎn)單分析不難把這些操作和條件分配到程序結(jié)構(gòu)圖的適當(dāng)位置

58、,結(jié)果為圖6.14。最后一步是用偽碼表示程序處理過程。因?yàn)镴ackson使用的偽碼和Jackson圖之間存在簡(jiǎn)單的對(duì)應(yīng)關(guān)系,所以從圖6.14很容易得出下面的偽碼:,圖6.14 把操作和條件分配到程序結(jié)構(gòu)圖的適當(dāng)位置,統(tǒng)計(jì)空格seq打開文件讀入字符串totalsum∶=0程序體iter until文件結(jié)束 處理字符串seq印字符串seq 印出字符串印字符串end

59、sum∶=0pointer∶=1 分析字符串iter until字符串結(jié)束 分析字符select字符是空格,處理空格seq sum∶=sum+1 pointer∶=pointer+1處理空格end 分析字符or字符不是空格處理非空格seq pointer∶=pointer+1處理非空格end

60、 分析字符end分析字符串end印空格數(shù)seq印出空格數(shù)目印空格數(shù)end,totalsum∶=totalsum+sum讀入字符串 處理字符串end程序體end印總數(shù)seq 印出空格總數(shù)印總數(shù)end關(guān)閉文件停止統(tǒng)計(jì)空格end,作業(yè):高考后將考生的基本情況文件(簡(jiǎn)稱考生基本情況文件)和考生高考成績文件(簡(jiǎn)稱考分文件)合并成一個(gè)新文件(簡(jiǎn)稱

61、考生新文件)??忌厩闆r文件和考分文件都是由考生記錄組成的。為簡(jiǎn)便起見,考生基本情況文件中的考生記錄的內(nèi)容包括:準(zhǔn)考證號(hào)、姓名、通訊地址??挤治募械目忌涗浀膬?nèi)容包括:準(zhǔn)考證號(hào)和各門考分。合并后的考生新文件自然也是由考生記錄組成,內(nèi)容包括:準(zhǔn)考證號(hào)、姓名、通訊地址和各門考分。Jackson程序設(shè)計(jì)方法由五個(gè)步驟組成:,第一步 數(shù)據(jù)結(jié)構(gòu)表示,對(duì)要求解的問題進(jìn)行分析,確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用Jackson圖描述這些數(shù)據(jù)

62、結(jié)構(gòu)。,第二步 找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)的對(duì)應(yīng)關(guān)系,找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元,即有直接因果關(guān)系、在程序中可以同時(shí)處理的數(shù)據(jù)單元。需要注意的是,對(duì)于重復(fù)的數(shù)據(jù)單元,必須是重復(fù)的次序、次數(shù)都相同才有可能有對(duì)應(yīng)關(guān)系。,第三步 確定程序結(jié)構(gòu)圖,根據(jù)下述三規(guī)則,由Jackson圖導(dǎo)出相應(yīng)的程序結(jié)構(gòu)圖:,(1)為每對(duì)有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元,按照它們?cè)跀?shù)據(jù)結(jié)構(gòu)圖中所處的層次,在程序結(jié)構(gòu)圖中的相應(yīng)層次畫一個(gè)處理框

63、。如果這對(duì)數(shù)據(jù)單元在輸入數(shù)據(jù)結(jié)構(gòu)圖和輸出數(shù)據(jù)結(jié)構(gòu)圖中所處的層次不同,那么應(yīng)以它們?cè)谳斎霐?shù)據(jù)結(jié)構(gòu)圖和輸出數(shù)據(jù)結(jié)構(gòu)圖中層次較低的那個(gè)層次作為它們?cè)诔绦蚪Y(jié)構(gòu)圖中的處理框所處的層次;,(2)對(duì)于輸入數(shù)據(jù)結(jié)構(gòu)中剩余的數(shù)據(jù)單元,根據(jù)它們所處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次為每個(gè)數(shù)據(jù)單元畫上相應(yīng)的處理框;,(3)對(duì)于輸出數(shù)據(jù)結(jié)構(gòu)中剩余的數(shù)據(jù)單元,根據(jù)它們所處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次為每個(gè)數(shù)據(jù)單元畫上相應(yīng)的處理框。,實(shí)際上,這一步是一個(gè)綜合的過程:

64、每對(duì)有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元合畫一個(gè)處理框,沒有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元?jiǎng)t各畫一個(gè)處理框。,第四步 列出并分配所有操作和條件,列出所有操作和條件(包括分支條件和循環(huán)結(jié)束條件),并把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。,操作:(1)停止 (2)打開兩個(gè)輸入文件; (3)建立輸出文件。(4)從輸入文件中各讀一條記錄(5)生成一條新記錄。(6)將新記錄寫入輸出文件。(7)關(guān)閉全部文件。 條件:I(1)文

65、件結(jié)束。,把操作和條件分配到程序結(jié)構(gòu)圖的適當(dāng)位置,用Jackson偽碼描述的程序:,產(chǎn)生新文件 seq打開兩個(gè)輸入文件從輸入文件中各讀一條記錄分析考生記錄iter until文件結(jié)束處理考生記錄 seq產(chǎn)生準(zhǔn)考證號(hào)產(chǎn)生姓名產(chǎn)生通訊地址,產(chǎn)生考分生成一條新記錄將新記錄寫入輸出文件從輸入文件中各讀一條記錄處理考生記錄 end關(guān)閉全部文件停止產(chǎn)生新文件 end,第五步 用偽碼表示程序,程序復(fù)雜性主

66、要是指模塊內(nèi)部程序的復(fù)雜性。它 直接關(guān)系到軟件開發(fā)費(fèi)用的多少,開發(fā)周期的長短和 軟件和軟件內(nèi)部潛伏錯(cuò)誤的多少。同時(shí)它也是軟件可 理解性的另一種度量。,6.5 程序復(fù)雜程度的定量度量,程序復(fù)雜程度定量度量意義:程序的復(fù)雜程度乘以適當(dāng)常數(shù)即可估算出軟件中故障的數(shù)量以及軟件開發(fā)需要的工作量。可以比較兩個(gè)不同的設(shè)計(jì)和算法的優(yōu)劣。定量的復(fù)雜程度可作為模塊規(guī)模的精確限度。,原理:程序的復(fù)雜性很大程度上取決于程序控制流的復(fù)雜程度。單一的順

67、序結(jié)構(gòu)最簡(jiǎn)單,循環(huán)和選擇構(gòu)成的環(huán)路越多,程序就越復(fù)雜。,6.5.1、McCabe 度量法,該方法是利用程序模塊的程序圖中環(huán)路的個(gè)數(shù),來計(jì)算程序的復(fù)雜性的。為此,該方法也稱為環(huán)路復(fù)雜度計(jì)算法。,它是一種退化了的程序流程圖。把程序流程圖中每個(gè)處理符號(hào)都退化成一個(gè)結(jié)點(diǎn),而原來流程圖中的流程線,則變成連接不同結(jié)點(diǎn)的有向弧。,1. 流圖(程序圖),(1)程序圖符號(hào),(2)從流程圖導(dǎo)出程序圖,程序圖僅描述程序內(nèi)部的控制流程,完全不表現(xiàn)對(duì)數(shù)據(jù)的

68、具體操作,以及分支和循環(huán)的具體條件。通常稱程序圖中開始點(diǎn)后面的那個(gè)節(jié)點(diǎn)為入口點(diǎn),稱停止點(diǎn)前面的那個(gè)節(jié)點(diǎn)為出口點(diǎn)。,圖6.16 由PDL翻譯成的流圖,用任何方法表示的過程設(shè)計(jì)結(jié)果,都可以翻譯成流圖:,圖6.17 由包含復(fù)合條件的PDL映射成的流圖,把復(fù)合條件分解為若干個(gè)簡(jiǎn)單條件,每個(gè)簡(jiǎn)單條件對(duì)應(yīng)流圖中一個(gè)結(jié)點(diǎn)。包含條件的結(jié)點(diǎn)稱為判定節(jié)點(diǎn),從每個(gè)判定結(jié)點(diǎn)引出兩條或多條邊。,當(dāng)過程設(shè)計(jì)中包含復(fù)合條件,即在條件中包含了一個(gè)或多個(gè)布爾運(yùn)算符(邏

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論