




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2023/2/4第1頁(yè)詳細(xì)設(shè)計(jì)工具Jackson程序設(shè)計(jì)方法第五章詳細(xì)設(shè)計(jì)
結(jié)構(gòu)程序設(shè)計(jì)基本任務(wù)
回答的關(guān)鍵問題:“怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)”
主要任務(wù)是設(shè)計(jì)出程序的“藍(lán)圖”,供程序員日后根據(jù)這個(gè)藍(lán)圖編寫出實(shí)際的程序代碼。
注意:設(shè)計(jì)程序的藍(lán)圖,不是具體地編寫程序。
主要采用結(jié)構(gòu)化的程序設(shè)計(jì)方法。軟件工程2023/2/4第2頁(yè)5.1詳細(xì)設(shè)計(jì)概述
1、什么是詳細(xì)設(shè)計(jì)?詳細(xì)設(shè)計(jì)為軟件結(jié)構(gòu)圖(SC:StructChart)圖或系統(tǒng)層次圖(HC:HierarchyChart)中的每一個(gè)模塊確定采用的算法和定義模塊內(nèi)數(shù)據(jù)結(jié)構(gòu),并用某種選定的表達(dá)工具給出清晰的描述。假如在總體設(shè)計(jì)階段,定義A模塊的作用是對(duì)一個(gè)表進(jìn)行排序,那么詳細(xì)設(shè)計(jì)就要指明采用哪一種排序算法并描述此算法的處理過(guò)程。2、詳細(xì)設(shè)計(jì)的目標(biāo):(1)能在邏輯上正確地實(shí)現(xiàn)每個(gè)模塊的功能;(2)使設(shè)計(jì)出的處理過(guò)程清晰易讀、好理解。軟件工程2023/2/4第3頁(yè)3、詳細(xì)設(shè)計(jì)應(yīng)完成的任務(wù):
①確定軟件各個(gè)組成部分內(nèi)所采用的算法和各部分的內(nèi)部數(shù)據(jù)組織形式;②對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行物理設(shè)計(jì),如確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。物理結(jié)構(gòu)主要指數(shù)據(jù)的存儲(chǔ)記錄格式、存儲(chǔ)記錄安排和存儲(chǔ)方法等。
③確定模塊接口的細(xì)節(jié),包括對(duì)系統(tǒng)外部的接口和用戶界面。對(duì)系統(tǒng)內(nèi)部其他模塊的接口,以及模塊輸入數(shù)據(jù)、輸出數(shù)據(jù)和局部數(shù)據(jù)的全部細(xì)節(jié)。軟件工程2023/2/4軟件工程(工程碩士)第4頁(yè)3、詳細(xì)設(shè)計(jì)應(yīng)完成的任務(wù):
④選用某種圖形、表格和語(yǔ)言等工具將每個(gè)模塊處理過(guò)程的詳細(xì)算法描述表達(dá)出來(lái),編寫詳細(xì)設(shè)計(jì)說(shuō)明書。⑤為每一個(gè)模塊設(shè)計(jì)出一組測(cè)試用例,以便在編碼階段對(duì)模塊代碼(即程序)進(jìn)行預(yù)定的測(cè)試,模塊的測(cè)試用例是軟件測(cè)試計(jì)劃的重要組成部分,通常包括測(cè)試輸入數(shù)據(jù)、期望輸出結(jié)果等內(nèi)容。⑥在詳細(xì)設(shè)計(jì)結(jié)束時(shí),進(jìn)行詳細(xì)設(shè)計(jì)的評(píng)審。把上述結(jié)果寫入詳細(xì)設(shè)計(jì)說(shuō)明書(程序規(guī)格說(shuō)明書),并通過(guò)復(fù)審形成正式文檔,作為下一階段(編碼)的工作依據(jù)。返回2023/2/4第5頁(yè)4、詳細(xì)設(shè)計(jì)的其它任務(wù)(1)少量的代碼設(shè)計(jì)。雖然編碼工作有待下一階段進(jìn)行,但為了提高數(shù)據(jù)的輸入、分類、存儲(chǔ)和檢索等操作的效率,并節(jié)約內(nèi)存空間,對(duì)數(shù)據(jù)庫(kù)中某些數(shù)據(jù)項(xiàng)的值須進(jìn)行專項(xiàng)代碼設(shè)計(jì),如數(shù)據(jù)庫(kù)的觸發(fā)器代碼、存儲(chǔ)過(guò)程的代碼設(shè)計(jì)等。(2)輸入/輸出格式設(shè)計(jì)。對(duì)于涉及眾多不同類型設(shè)備或具有網(wǎng)絡(luò)交換功能的系統(tǒng),需要特別詳細(xì)地設(shè)計(jì)數(shù)據(jù)的輸入/輸出以及交換格式。(3)人機(jī)對(duì)話(界面)設(shè)計(jì)。實(shí)時(shí)系統(tǒng)中用戶與計(jì)算機(jī)需要頻繁對(duì)話,因此有必要進(jìn)行對(duì)話方式、內(nèi)容、格式和界面的具體設(shè)計(jì)。
軟件工程2023/2/4第6頁(yè)5.2結(jié)構(gòu)化程序設(shè)計(jì)1、什么是結(jié)構(gòu)化程序?
結(jié)構(gòu)化程序可由若干個(gè)基本結(jié)構(gòu)組成,雖然每一個(gè)基本結(jié)構(gòu)可以包含一條或若干條語(yǔ)句,但任何程序都由順序、選擇、重復(fù)三種基本結(jié)構(gòu)構(gòu)造。這三種基本結(jié)構(gòu)具有以下特點(diǎn):①有一個(gè)入口,有一個(gè)出口;②結(jié)構(gòu)中每一部分都有被執(zhí)行到的機(jī)會(huì),也就是說(shuō),每一部分都應(yīng)當(dāng)有一條從入口到出口的路徑通過(guò)它(至少通過(guò)一次);③沒有死循環(huán)(無(wú)終止的循環(huán))。軟件工程2023/2/4第7頁(yè)2、什么是結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)程序設(shè)計(jì)是一種設(shè)計(jì)程序的技術(shù),它采用自頂向下逐步求精的設(shè)計(jì)方法和單入口單出口的控制結(jié)構(gòu)。逐步求精的含義(1)詳細(xì)設(shè)計(jì)階段逐步求精的含義:把一個(gè)模塊的功能逐步分解細(xì)化為一系列具體的處理步驟或某種高級(jí)語(yǔ)言的語(yǔ)句。(2)總體設(shè)計(jì)階段逐步求精的含義:把一個(gè)復(fù)雜問題的解法分解和細(xì)化成一個(gè)由許多模塊組成的層次結(jié)構(gòu)的軟件系統(tǒng)。軟件工程2023/2/4第8頁(yè)3、結(jié)構(gòu)程序設(shè)計(jì)技術(shù)的優(yōu)越性(1)自頂向下逐步求精的方法符合人類解決復(fù)雜問題的普遍規(guī)律,因此可以顯著提高軟件開發(fā)工程的成功率和生產(chǎn)率。(2)用先全局后局部、先整體后細(xì)節(jié)、先抽象后具體的逐步求精過(guò)程開發(fā)出的程序有清晰的層次結(jié)構(gòu),因此容易閱讀和理解。(3)不使用GOTO語(yǔ)句僅使用單入口單出口的控制結(jié)構(gòu),使得程序的靜態(tài)結(jié)構(gòu)和它的動(dòng)態(tài)執(zhí)行情況比較一致,易于閱讀和理解。軟件工程2023/2/4第9頁(yè)(4)控制結(jié)構(gòu)有確定的邏輯模式,編寫程序代碼只限于很少幾種直截了當(dāng)?shù)姆绞剑虼嗽闯绦蚯逦鲿?。?)程序清晰和模塊化使得在修改和重新設(shè)計(jì)一個(gè)軟件時(shí)可以重用的代碼量最大。(6)有利于程序正確性證明。軟件工程2023/2/4第10頁(yè)4、判斷一個(gè)程序是不是結(jié)構(gòu)化程序的方法(1)看是不是單入口單出口的控制結(jié)構(gòu);(2)能不能用NS圖或PAD圖表示。軟件工程2023/2/4第11頁(yè)5、非結(jié)構(gòu)程序轉(zhuǎn)化為結(jié)構(gòu)化程序兩種辦法:(1)重新組合判定條件;講究技藝(2)結(jié)構(gòu)化定理(使用FLAG標(biāo)置位)最可靠的方法,但比較繁鎖參閱熊前興,《結(jié)構(gòu)化程序設(shè)計(jì)》軟件工程2023/2/4第12頁(yè)5.3詳細(xì)設(shè)計(jì)工具什么是詳細(xì)設(shè)計(jì)工具?
用于表達(dá)過(guò)程規(guī)格說(shuō)明的工具叫做詳細(xì)設(shè)計(jì)工具,它可以分為以下三類:(1)圖形工具──利用圖形工具可以把過(guò)程的細(xì)節(jié)用圖形描述出來(lái)。程序流程圖、N-S圖、PAD圖、IPO圖。(2)表格工具──用表格方式描述過(guò)程的細(xì)節(jié),在中列出各種可能的操作和相應(yīng)的條件。判定樹、判定表。(3)語(yǔ)言工具──用某種高級(jí)語(yǔ)言(稱之為偽碼)來(lái)描述過(guò)程的細(xì)節(jié)。程序設(shè)計(jì)語(yǔ)言PDL。
從三個(gè)方面學(xué)習(xí):1、符號(hào)2、實(shí)例3、特點(diǎn)軟件工程2023/2/4第13頁(yè)5.3.1程序流程圖1、符號(hào)軟件工程2023/2/4第14頁(yè)2、實(shí)例:求頭100個(gè)奇數(shù)平方和C語(yǔ)言源程序main(){ints,i;s=0;for(i=1;i<=100;i++)s=s+(2*i-1)*(2*i-1);printf(“Thesumis\n”,s);}s=0i=1i<=100s=s+(2*i-1)*(2*i-1)i=i+1開始結(jié)束軟件工程2023/2/4第15頁(yè)3、特點(diǎn):優(yōu)點(diǎn):對(duì)控制流程的描繪很直觀,便于初學(xué)者掌握。缺點(diǎn):(1)程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過(guò)早地考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。(2)程序流程圖中用箭頭代表控制流,因此程序員不受約束,可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)的精神,隨意轉(zhuǎn)移控制。(3)程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。軟件工程2023/2/4第16頁(yè)5.2.2盒圖(N_S圖)N-S圖即盒狀圖或Chapin圖,是由Nassi和Shneiderman提出的一種符合結(jié)構(gòu)化程序設(shè)計(jì)原則的圖形描述工具,其目標(biāo)是開發(fā)一種不破壞結(jié)構(gòu)化構(gòu)成元素的過(guò)程設(shè)計(jì)表示。
軟件工程2023/2/4第17頁(yè)1、符號(hào):軟件工程2023/2/4第18頁(yè)2、實(shí)例S=0i=1i<=100s=s+(2*i-1)*(2*i-1)i=i+1輸出s軟件工程2023/2/4第19頁(yè)3、特點(diǎn):(1)功能域(即一個(gè)特定控制結(jié)構(gòu)的作用域)明確,很容易從盒圖上看出。(2)盒圖沒有箭頭,不可能任意轉(zhuǎn)移控制。(3)很容易確定局部和全程數(shù)據(jù)的作用域。(4)很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)軟件工程2023/2/4第20頁(yè)5.3.3PAD圖PAD圖(ProblemAnalysisDiagram)由日本日立公司在1979年發(fā)明,它用二維樹型結(jié)構(gòu)的圖來(lái)表示程序的控制流,比較容易翻譯成程序代碼。1、符號(hào):軟件工程2023/2/4第21頁(yè)2、實(shí)例:s=0i=1s=s+(2*i-1)*(2*i-1)i=i+1whilei<=100輸出s軟件工程2023/2/4第22頁(yè)3、特點(diǎn):(1)使用PAD圖設(shè)計(jì)的程序必然是結(jié)構(gòu)化程序(2)PAD圖描繪的程序結(jié)構(gòu)十分清晰。(3)用PAD圖表現(xiàn)程序邏輯,易讀、易懂、易記。(4)容易將PAD圖轉(zhuǎn)換成高級(jí)語(yǔ)言源程序(5)PAD圖既可用于表示程序邏輯,也可用于描繪數(shù)據(jù)結(jié)構(gòu)。(6)PAD圖的符號(hào)支持自頂向下、逐步求精方法的使用。(7)PAD圖面向高級(jí)語(yǔ)言。軟件工程2023/2/4第23頁(yè)5.3.4判定表
判定表能夠清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系,而其它的工具不易表示。1、表現(xiàn)形式:條件茬(cha)條件組合動(dòng)作茬動(dòng)作軟件工程2023/2/4第24頁(yè)2、實(shí)例:假設(shè)某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量不超過(guò)30公斤的行李。當(dāng)行李重量超過(guò)30公斤時(shí),對(duì)頭等艙的國(guó)內(nèi)乘客超重部分每公斤收費(fèi)4元,對(duì)其它艙的國(guó)內(nèi)乘客超重部分每公斤收費(fèi)6元,對(duì)外國(guó)乘客超重部分每公斤收費(fèi)比國(guó)內(nèi)乘客多一倍,對(duì)殘疾乘客超重部分每公斤收費(fèi)比正常乘客少一半。試用判定樹判定表表示上述每種組合相對(duì)應(yīng)的動(dòng)作。所有需要考慮的條件:(1)重量是否超過(guò)30公斤;(2)是否頭等艙;(3)是否國(guó)內(nèi)乘客;(4)是否殘疾人??赡懿扇√幚韯?dòng)作:(1)免費(fèi);(2)超出部分每公斤收費(fèi)2元;(3)超出部分每公斤收費(fèi)3元;(4)超出部分每公斤收費(fèi)4元;(5)超出部分每公斤收費(fèi)6元;(6)超出部分每公斤收費(fèi)8元;(7)超出部分每公斤收費(fèi)12元;軟件工程2023/2/4第25頁(yè)軟件工程2023/2/4第26頁(yè)實(shí)例:輸出si=i+1s=s+(2*i-1)*(2*i-1)i=1s=0FTi<=100軟件工程2023/2/4第27頁(yè)3、特點(diǎn):(1)容易表示條件組合;(2)不容易表示順序和重復(fù)等處理;(3)不適合作通用程序設(shè)計(jì)工具,軟件工程2023/2/4第28頁(yè)
判定樹是判定表的變種,也能清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系。
1、實(shí)例軟件工程2023/2/4第29頁(yè)2、特點(diǎn):優(yōu)點(diǎn):形式簡(jiǎn)單,不需任何說(shuō)明,易看出含義,易于掌握和使用。缺點(diǎn):簡(jiǎn)潔性不如判定表,相同的數(shù)據(jù)元素往往要重復(fù)寫多遍,而且越接近樹的葉端重復(fù)次數(shù)越多。軟件工程2023/2/4第30頁(yè)5.3.6過(guò)程設(shè)計(jì)語(yǔ)言PDL
PDL也稱為偽碼,是用正文形式表示數(shù)據(jù)和處理過(guò)程的設(shè)計(jì)工具。1、表現(xiàn)形式:(1)關(guān)鍵字外部語(yǔ)法(固定),用于定義結(jié)構(gòu)化控制結(jié)構(gòu)和數(shù)據(jù)說(shuō)明;(2)自然語(yǔ)言內(nèi)部語(yǔ)法(自由),表示處理特點(diǎn)。軟件工程2023/2/4第31頁(yè)2、實(shí)例Procedurespellcheckis
BEGINsplitdocumentintosinglewordslookupwordsindictionarydisplaybad_spelledwordscreateanewdictionary
ENDspellcheck軟件工程2023/2/4第32頁(yè)P(yáng)rocedurespellcheckis
BEGIN*splitdocumentintosinglewords
LOOPgetnextwordaddwordtowordlistinsortedorderEXITwhenallwordsprocessed
ENDLOOP
軟件工程2023/2/4第33頁(yè)*lookupwordsindictionary
LOOPgetawordfromwordlist
IFwordnotindictionaryTHENdisplaytheword,promptonuser’sterminal
IFuserresponsesayword‘ok’THENaddwordtogoodwordlist
ELSEaddwordtobadwordlist
ENDIF
ENDIFEXITwhenallwordsprocessed
ENDLOOP軟件工程2023/2/4第34頁(yè)*displaybad_spelledwords
LOOPfetchwordsfrombadwordlistdisplayEXITwhenallbad_spelledwordsprocessed
ENDLOOP*createanewdictionarydictionary:=dictionary+goodwordlist
ENDspellcheck軟件工程2023/2/4第35頁(yè)3、特點(diǎn):1.關(guān)鍵字的固定語(yǔ)法,它提供了結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說(shuō)明和模塊化的特點(diǎn)。2.自然語(yǔ)言的自由語(yǔ)法,它描述處理特點(diǎn)。3.數(shù)據(jù)說(shuō)明的手段既包括簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),又包括復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。4.模塊定義和調(diào)用的技術(shù),應(yīng)該提供各種接口描述模式。優(yōu)點(diǎn):
1.可以作為注釋直接插在源程序中間。
2.可以使用普通的正文編輯程序或文字處理系統(tǒng),很方便地完成PDL的書寫和編輯工作。
3.已經(jīng)有自動(dòng)處理程序存在,而且可以自動(dòng)由PDL生成程序代碼。軟件工程2023/2/4第36頁(yè)5.2Jackson程序設(shè)計(jì)方法
思想:出發(fā)點(diǎn)是數(shù)據(jù)結(jié)構(gòu)用JACKSON圖表示用JACKSON圖表示用JACKSON偽碼表示數(shù)據(jù)結(jié)構(gòu)過(guò)程描述程序結(jié)構(gòu)映射詳細(xì)組織問題環(huán)境可執(zhí)行的操作需完成的任務(wù)軟件工程2023/2/4第37頁(yè)(1)順序結(jié)構(gòu)順序結(jié)構(gòu)的數(shù)據(jù)由一個(gè)或多個(gè)數(shù)據(jù)元素組成,每個(gè)元素按確定次序依次出現(xiàn)。軟件工程5.2.1Jackson圖2023/2/4第38頁(yè)(2)選擇結(jié)構(gòu)選擇結(jié)構(gòu)的數(shù)據(jù)包含兩個(gè)或多個(gè)數(shù)據(jù)元素,每次使用這個(gè)數(shù)據(jù)時(shí)按一定條件從這些數(shù)據(jù)元素中選擇一個(gè)。軟件工程2023/2/4第39頁(yè)(3)重復(fù)結(jié)構(gòu)重復(fù)結(jié)構(gòu)的數(shù)據(jù),根據(jù)使用時(shí)的條件由一個(gè)數(shù)據(jù)元素出現(xiàn)零次或多次構(gòu)成。Jackson圖的優(yōu)點(diǎn)。便于表示層次結(jié)構(gòu),而且是對(duì)結(jié)構(gòu)進(jìn)行自頂向下分解的有力工具。。形象直觀可讀性好。既能表示數(shù)據(jù)結(jié)構(gòu),也能表示程序結(jié)構(gòu)軟件工程2023/2/4第40頁(yè)5.3.2改進(jìn)的Jackson圖
上面介紹的Jackson圖的缺點(diǎn):(1)不能直接在圖上表示選擇條件或循環(huán)結(jié)束條件,影響了圖的表達(dá)能力,也不易直接把圖翻譯成程序;(2)框間連線為斜線,不易在行式打印機(jī)上輸出。軟件工程2023/2/4第41頁(yè)Jackson偽碼。
AseqBCDAendAselectcond1BAorcond2CAorcond3DAendAiteruntil(或while)condBAend軟件工程2023/2/4第42頁(yè)(1)分析并確定輸入數(shù)據(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ù)單元。(3)用下述三條規(guī)則從描繪數(shù)據(jù)結(jié)構(gòu)的Jackson圖導(dǎo)出描述程序結(jié)構(gòu)的Jackson圖(4)列出所有操作和條件(包括分支條件和循環(huán)結(jié)束條件),并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。(5)用偽碼表示程序。軟件工程5.3.3Jackson方法2023/2/4第43頁(yè)例子:一個(gè)正文文件由若干個(gè)記錄組成,每個(gè)記錄是一個(gè)字符串。要求統(tǒng)計(jì)每個(gè)記錄中空格字符的個(gè)數(shù),以及文件中空格字符的總個(gè)數(shù)。要求的輸出數(shù)據(jù)格式是,每復(fù)制一行輸入字符串之后,另起一行印出這個(gè)字符串中的空格數(shù),最后印出文件中空格的總個(gè)數(shù)。輸出格式:原樣輸出字符串1,字符串1空格數(shù)原樣輸出字符串2,字符串2空格數(shù)……原樣輸出字符串n,字符串n空格數(shù)輸出空格總數(shù)軟件工程2023/2/4第44頁(yè)第一步:繪出輸入數(shù)據(jù)和輸出數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)輸出文件串信息*字符串空格數(shù)表格體空格總數(shù)正文文件字符*空格○非空格○字符串*IISI輸入數(shù)據(jù)結(jié)構(gòu)輸出數(shù)據(jù)結(jié)構(gòu)軟件工程2023/2/4第45頁(yè)第二步:分析確定在輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元。輸出文件串信息*字符串空格數(shù)表格體空格總數(shù)正文文件字符*空格○非空格○字符串*IISI輸入數(shù)據(jù)結(jié)構(gòu)輸出數(shù)據(jù)結(jié)構(gòu)軟件工程2023/2/4第46頁(yè)第三步:從數(shù)據(jù)結(jié)構(gòu)圖導(dǎo)出程序結(jié)構(gòu)圖。(1)為每對(duì)有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元,按照它們?cè)跀?shù)據(jù)結(jié)構(gòu)圖中的層次在程序結(jié)構(gòu)圖的相應(yīng)層次畫一個(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)。
(2)根據(jù)輸入數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對(duì)應(yīng)的處理框。(3)根據(jù)輸出數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對(duì)應(yīng)的處理框。
程序結(jié)構(gòu)圖統(tǒng)計(jì)空格處理字符串*處理空格○處理非空格○處理字符串表格體印總數(shù)I印字符串印空格數(shù)分析字符串分析字符*IS軟件工程2023/2/4第47頁(yè)第四步:列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。最后的程序結(jié)構(gòu)圖統(tǒng)計(jì)空格處理字符串*處理空格○處理非空格○程序體印總數(shù)I(文件結(jié)束)印字符串印空格數(shù)分析字符串分析字符*打開文件讀入字符串Totalsum:=0關(guān)閉文件停止印出空格總數(shù)印出字符串sum:=0pointer:=1Totalsum:=Totalsum+sum讀入字符串I(字符串結(jié)束)印出空格數(shù)目sum:=sum+1pointer:=pointer+1pointer:=pointer+1S(字符是空格)Sum:保存空格個(gè)數(shù)的變量;Totalsum:保存空格總數(shù)的變量;Pointer:當(dāng)前分析的字符在字符串中的位置;軟件工程2023/2/4第48頁(yè)第五步:用偽碼表示程序處理過(guò)程。從圖5.14可以得出下列代碼:統(tǒng)計(jì)空格seq
打開文件
讀入字符串
totalsum:=0
程序體iteruntil文件結(jié)束處理字符串seq
印字符串seq
印出字符串印字符串end
sum:=0pointer:=1
分析字符串iteruntil字符串結(jié)束分析字符select字符是空格處理空格seq
sum:=sum+1pointer:=pointer+1
處理空格end
分析字符or字符不是空格處理非空格seq
pointer:=pointer+1
處理非空格end
分析字符end
分析字符串end
印空格數(shù)seq
印出空格數(shù)目印空格數(shù)end
totalsum:=totalsum+sum
讀入字符串處理字符串end
程序體end
印總數(shù)seq
印出空格總數(shù)印總數(shù)end
關(guān)閉文件停止統(tǒng)計(jì)空格end軟件工
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)通信技術(shù)試題及答案
- 行政法學(xué)研討會(huì)試題及答案分享
- 對(duì)火災(zāi)應(yīng)急預(yù)案的評(píng)價(jià)(3篇)
- 兒科火災(zāi)應(yīng)急演練預(yù)案(3篇)
- 計(jì)算機(jī)硬件選型與配置試題及答案
- 2025年企業(yè)整合與風(fēng)險(xiǎn)管理的策略探討及試題及答案
- 2025年軟件設(shè)計(jì)師考試的職業(yè)生涯規(guī)劃試題及答案
- 2025年競(jìng)爭(zhēng)優(yōu)勢(shì)構(gòu)建與風(fēng)險(xiǎn)管理試題及答案
- 行政管理法律法規(guī)試題及答案
- 2025企業(yè)技術(shù)培訓(xùn)生勞動(dòng)合同模板
- 礦山委托經(jīng)營(yíng)協(xié)議書
- 浙江省杭州市2024年中考英語(yǔ)真題(含答案)
- 《陸上風(fēng)電場(chǎng)工程設(shè)計(jì)概算編制規(guī)定及費(fèi)用標(biāo)準(zhǔn)》(NB-T 31011-2019)
- 天文學(xué)導(dǎo)論知到章節(jié)答案智慧樹2023年中國(guó)科學(xué)技術(shù)大學(xué)
- 網(wǎng)店運(yùn)營(yíng)與管理課件
- 餐飲店運(yùn)營(yíng)方案完整篇
- 知識(shí)產(chǎn)權(quán)保護(hù)對(duì)珠三角生產(chǎn)性服務(wù)業(yè)集聚的影響研究
- 古河鉆機(jī)HCR1200構(gòu)造說(shuō)明中文
- 電力管道試通記錄表
- 消化呼吸循環(huán)泌尿
- 年產(chǎn)15萬(wàn)噸優(yōu)質(zhì)鑄造生鐵、球墨鑄鐵試運(yùn)行方案.
評(píng)論
0/150
提交評(píng)論