版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、結(jié)構(gòu)化SD(Structured Design) 設(shè)計(jì)內(nèi)容:設(shè)計(jì)內(nèi)容: 數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì) 體系結(jié)構(gòu)的設(shè)計(jì)體系結(jié)構(gòu)的設(shè)計(jì) 接口設(shè)計(jì)接口設(shè)計(jì) 過程設(shè)計(jì)過程設(shè)計(jì)總體設(shè)計(jì)總體設(shè)計(jì)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)軟件需求:解決軟件需求:解決“做什么做什么” 軟件設(shè)計(jì):解決軟件設(shè)計(jì):解決“怎么做怎么做”分析模型數(shù)據(jù)數(shù)據(jù)字典字典數(shù)數(shù)據(jù)據(jù)流流圖圖狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖實(shí)體關(guān)系圖實(shí)體關(guān)系圖控制規(guī)格說明控制規(guī)格說明處理規(guī)格說明處理規(guī)格說明數(shù)據(jù)對象描述數(shù)據(jù)對象描述數(shù)據(jù)建模數(shù)據(jù)建模功能建模功能建模行為建模行為建模數(shù)據(jù)流圖數(shù)據(jù)流圖狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖處理規(guī)格說明處理規(guī)格說明控制規(guī)格說明控制規(guī)格說明過程設(shè)計(jì)過程設(shè)計(jì)接口設(shè)計(jì)接口
2、設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)ER圖圖數(shù)據(jù)對象描述數(shù)據(jù)對象描述數(shù)據(jù)字典數(shù)據(jù)字典第六章詳細(xì)設(shè)計(jì)第六章詳細(xì)設(shè)計(jì) 詳細(xì)設(shè)計(jì)的目標(biāo)和任務(wù)詳細(xì)設(shè)計(jì)的目標(biāo)和任務(wù) 如何具體的實(shí)現(xiàn)所要求的系統(tǒng),得出目標(biāo)系統(tǒng)的精確描述。如何具體的實(shí)現(xiàn)所要求的系統(tǒng),得出目標(biāo)系統(tǒng)的精確描述。 詳細(xì)設(shè)計(jì)的結(jié)果最終決定編碼階段程序的質(zhì)量。(邏輯正確、詳細(xì)設(shè)計(jì)的結(jié)果最終決定編碼階段程序的質(zhì)量。(邏輯正確、性能滿足要求、便于閱讀和理解)性能滿足要求、便于閱讀和理解)詳細(xì)設(shè)計(jì)是編碼的先導(dǎo)詳細(xì)設(shè)計(jì)是編碼的先導(dǎo)。6.1 結(jié)構(gòu)程序設(shè)計(jì)結(jié)構(gòu)程序設(shè)計(jì)常用的結(jié)構(gòu)程序設(shè)計(jì)類型:常用的結(jié)構(gòu)程序設(shè)計(jì)類型: 經(jīng)典的:順序、選擇、循環(huán)經(jīng)典的:順序、
3、選擇、循環(huán) 擴(kuò)展的:擴(kuò)展的:DOCASE、DOUNTIL 修正的:修正的:LEAVE 或或BREAK 提出的目的提出的目的 限制限制GoTo語句的使用,提高程序的可讀性、可測試性、語句的使用,提高程序的可讀性、可測試性、可維護(hù)性可維護(hù)性 結(jié)構(gòu)程序設(shè)計(jì)定義結(jié)構(gòu)程序設(shè)計(jì)定義 是一種程序設(shè)計(jì)技術(shù),它采用自頂向下、逐步求精的設(shè)是一種程序設(shè)計(jì)技術(shù),它采用自頂向下、逐步求精的設(shè)計(jì)方法和單入口、單出口的控制結(jié)構(gòu),并且只包含順序、計(jì)方法和單入口、單出口的控制結(jié)構(gòu),并且只包含順序、選擇、循環(huán)三種結(jié)構(gòu)選擇、循環(huán)三種結(jié)構(gòu)三種基本控制結(jié)三種基本控制結(jié)構(gòu)構(gòu)其他常用控制結(jié)其他常用控制結(jié)構(gòu)構(gòu) 重要性重要性 是門面,直接影響
4、到軟件產(chǎn)品的壽命和市場的競爭力是門面,直接影響到軟件產(chǎn)品的壽命和市場的競爭力 money 典型問題典型問題 系統(tǒng)響應(yīng)時(shí)間系統(tǒng)響應(yīng)時(shí)間 用戶求助機(jī)制(上下文敏感幫助方式)用戶求助機(jī)制(上下文敏感幫助方式) 出錯(cuò)信息處理(提示有意義的錯(cuò)誤信息)出錯(cuò)信息處理(提示有意義的錯(cuò)誤信息) 命令交互方式(鼠標(biāo)點(diǎn)擊命令交互方式(鼠標(biāo)點(diǎn)擊式)式)6.2 人機(jī)界面設(shè)計(jì)人機(jī)界面設(shè)計(jì) 創(chuàng)建系統(tǒng)功能的外部模型創(chuàng)建系統(tǒng)功能的外部模型 確定為完成此系統(tǒng)功能人、機(jī)各自的任務(wù)確定為完成此系統(tǒng)功能人、機(jī)各自的任務(wù) 考慮界面設(shè)計(jì)中的典型問題考慮界面設(shè)計(jì)中的典型問題 借助借助CASE工具構(gòu)造界面原型工具構(gòu)造界面原型 實(shí)現(xiàn)設(shè)計(jì)模型實(shí)現(xiàn)
5、設(shè)計(jì)模型 試用并評估界面質(zhì)量試用并評估界面質(zhì)量 修改修改 此過程是一個(gè)迭代過程。此過程是一個(gè)迭代過程。設(shè)計(jì)過程設(shè)計(jì)過程界面設(shè)計(jì)形式界面設(shè)計(jì)形式 主要有:主要有: 問題描述語言、數(shù)據(jù)表、圖形與圖標(biāo)、菜單、對話框、問題描述語言、數(shù)據(jù)表、圖形與圖標(biāo)、菜單、對話框、窗口等窗口等 選用界面形式時(shí),應(yīng)考慮:選用界面形式時(shí),應(yīng)考慮: 使用的難易程度使用的難易程度 學(xué)習(xí)的難易程度學(xué)習(xí)的難易程度 操作速度操作速度 控制控制 開發(fā)的難易程度開發(fā)的難易程度 數(shù)據(jù)輸入界面設(shè)計(jì)數(shù)據(jù)輸入界面設(shè)計(jì) 目標(biāo):盡量減少用戶工作,并盡可能減少輸入的出錯(cuò)率目標(biāo):盡量減少用戶工作,并盡可能減少輸入的出錯(cuò)率 數(shù)據(jù)顯示界面設(shè)計(jì)數(shù)據(jù)顯示界面
6、設(shè)計(jì) 包括:屏幕查詢、文件瀏覽、圖形顯示和報(bào)告。包括:屏幕查詢、文件瀏覽、圖形顯示和報(bào)告。 控制界面的設(shè)計(jì)控制界面的設(shè)計(jì) 主要目的:讓用戶能主動(dòng)地控制系統(tǒng)的工作主要目的:讓用戶能主動(dòng)地控制系統(tǒng)的工作 主要方式:窗口、對話框、菜單、功能鍵、圖標(biāo)、主要方式:窗口、對話框、菜單、功能鍵、圖標(biāo)、 直接點(diǎn)擊、目錄語言、自然語言直接點(diǎn)擊、目錄語言、自然語言等等主要內(nèi)容主要內(nèi)容 盡量減少用戶輸入的動(dòng)作盡量減少用戶輸入的動(dòng)作 保證信息顯示方式與數(shù)據(jù)輸入方式的一致性保證信息顯示方式與數(shù)據(jù)輸入方式的一致性 隱藏當(dāng)前狀態(tài)下不可選用的命令隱藏當(dāng)前狀態(tài)下不可選用的命令 為所有輸入動(dòng)作提供幫助信息為所有輸入動(dòng)作提供幫助信
7、息 確認(rèn)輸入確認(rèn)輸入/刪除、明確取消動(dòng)作刪除、明確取消動(dòng)作 提示輸入范圍提示輸入范圍 允許編輯允許編輯 提供反饋信息和提供反饋信息和Undo功能功能 允許用戶定做輸入格式允許用戶定做輸入格式 采用靈活多樣的交互方式,允許用戶自選輸入方式采用靈活多樣的交互方式,允許用戶自選輸入方式 允許用戶控制交互過程允許用戶控制交互過程數(shù)據(jù)輸入界面設(shè)計(jì)數(shù)據(jù)輸入界面設(shè)計(jì) 采用統(tǒng)一的標(biāo)號、標(biāo)準(zhǔn)的縮寫和預(yù)先定義好的顏色采用統(tǒng)一的標(biāo)號、標(biāo)準(zhǔn)的縮寫和預(yù)先定義好的顏色 僅顯示與當(dāng)前上下文有關(guān)的信息僅顯示與當(dāng)前上下文有關(guān)的信息 相關(guān)的數(shù)據(jù)顯示在一起相關(guān)的數(shù)據(jù)顯示在一起 避免因數(shù)據(jù)過于費(fèi)解造成的用戶煩惱避免因數(shù)據(jù)過于費(fèi)解造成
8、的用戶煩惱 允許用戶對可視環(huán)境進(jìn)行維護(hù),如放大、縮小圖像允許用戶對可視環(huán)境進(jìn)行維護(hù),如放大、縮小圖像 只顯示有意義的出錯(cuò)信息只顯示有意義的出錯(cuò)信息 使用大小寫、縮進(jìn)和文本分組以幫助理解使用大小寫、縮進(jìn)和文本分組以幫助理解數(shù)據(jù)顯示界面設(shè)計(jì)數(shù)據(jù)顯示界面設(shè)計(jì)6.3過程設(shè)計(jì)的工具詳細(xì)設(shè)計(jì)工具:詳細(xì)設(shè)計(jì)工具:(1) (1) 圖形工具圖形工具(2) (2) 表格工具表格工具(3) (3) 語言工具語言工具程序流程圖程序流程圖NS盒圖盒圖PAD圖圖判定表(判定表(Decision Table)判定樹(判定樹(Decision Tree)過程設(shè)計(jì)語言(過程設(shè)計(jì)語言(PDL,又稱偽碼),又稱偽碼)過程設(shè)計(jì)工具:
9、過程設(shè)計(jì)工具:描述程序處理過程的工具。描述程序處理過程的工具。6.3.1.程序流程圖(程序框圖)程序流程圖中的標(biāo)準(zhǔn)符號程序流程圖中的標(biāo)準(zhǔn)符號程序流程圖的控制結(jié)構(gòu)程序流程圖的控制結(jié)構(gòu)AB順序順序ABC選擇(選擇(if-then-else型)型)TFANC多分支選擇(多分支選擇(case型)型)1Bn2AC當(dāng)型循環(huán)(當(dāng)型循環(huán)(do-while型)型)TFAC直到型循環(huán)(直到型循環(huán)(do-until型)型)TF練習(xí)練習(xí):給出工資計(jì)算系統(tǒng)中給出工資計(jì)算系統(tǒng)中“計(jì)計(jì)算應(yīng)發(fā)工資算應(yīng)發(fā)工資”的程序流程圖的程序流程圖例例:工資系統(tǒng)中的工資系統(tǒng)中的“計(jì)算應(yīng)發(fā)工資計(jì)算應(yīng)發(fā)工資” 這個(gè)加工在數(shù)據(jù)字典中的條目描述這個(gè)
10、加工在數(shù)據(jù)字典中的條目描述數(shù)據(jù)加工名稱數(shù)據(jù)加工名稱:計(jì)算應(yīng)發(fā)工資計(jì)算應(yīng)發(fā)工資加工編號加工編號:1.2說明說明:根據(jù)職工的工資檔案及本月獎(jiǎng)金發(fā)放表數(shù)據(jù)計(jì)算每個(gè)職工的應(yīng)發(fā)工資根據(jù)職工的工資檔案及本月獎(jiǎng)金發(fā)放表數(shù)據(jù)計(jì)算每個(gè)職工的應(yīng)發(fā)工資輸入數(shù)據(jù)流輸入數(shù)據(jù)流:獎(jiǎng)金發(fā)放表及工資檔案獎(jiǎng)金發(fā)放表及工資檔案輸出數(shù)據(jù)流輸出數(shù)據(jù)流:應(yīng)發(fā)工資表應(yīng)發(fā)工資表加工邏輯加工邏輯:DO WHILE工資檔案文件指針未指向文件尾工資檔案文件指針未指向文件尾 從工資檔案中取出當(dāng)前職工工資的各項(xiàng)基本數(shù)據(jù)進(jìn)從工資檔案中取出當(dāng)前職工工資的各項(xiàng)基本數(shù)據(jù)進(jìn) 行累加行累加 在獎(jiǎng)金發(fā)放表中按職工號查找到該職工的獎(jiǎng)金數(shù)在獎(jiǎng)金發(fā)放表中按職工號查找到
11、該職工的獎(jiǎng)金數(shù) 對獎(jiǎng)金數(shù)與工資基本數(shù)據(jù)的累計(jì)和進(jìn)行求和得到對獎(jiǎng)金數(shù)與工資基本數(shù)據(jù)的累計(jì)和進(jìn)行求和得到 該職工的應(yīng)發(fā)工資數(shù)該職工的應(yīng)發(fā)工資數(shù)ENDDO 練習(xí)練習(xí):給出工資計(jì)算系統(tǒng)中給出工資計(jì)算系統(tǒng)中“計(jì)算應(yīng)發(fā)工資計(jì)算應(yīng)發(fā)工資”的程序流程圖的程序流程圖三種基本控制結(jié)構(gòu)三種基本控制結(jié)構(gòu)ABC(a) 順序順序條件條件FTelse部分部分then部分部分(b) If-then-else型分支型分支case條件條件值值1值值2值值ncase1部分部分case2部分部分casen部分部分(c) case型多分支型多分支循環(huán)條件循環(huán)條件do-while 部分部分(d) do-while型循環(huán)型循環(huán)循環(huán)條件循環(huán)
12、條件do-until 部分部分(e) do-until型循環(huán)型循環(huán)A(f) 調(diào)用子程序調(diào)用子程序A6.3.2. 盒圖(N-S圖)用方框圖代替?zhèn)鹘y(tǒng)的流程圖。是一種不允許違背結(jié)構(gòu)程序設(shè)用方框圖代替?zhèn)鹘y(tǒng)的流程圖。是一種不允許違背結(jié)構(gòu)程序設(shè)計(jì)精神的圖形工具。計(jì)精神的圖形工具。練習(xí):采用練習(xí):采用N-S圖描述圖描述”計(jì)算應(yīng)發(fā)工資模塊計(jì)算應(yīng)發(fā)工資模塊”例例:工資系統(tǒng)中的工資系統(tǒng)中的“計(jì)算應(yīng)發(fā)工資計(jì)算應(yīng)發(fā)工資” 這個(gè)加工在數(shù)據(jù)字典中的條目描述這個(gè)加工在數(shù)據(jù)字典中的條目描述數(shù)據(jù)加工名稱數(shù)據(jù)加工名稱:計(jì)算應(yīng)發(fā)工資計(jì)算應(yīng)發(fā)工資加工編號加工編號:1.2說明說明:根據(jù)職工的工資檔案及本月獎(jiǎng)金發(fā)放表數(shù)據(jù)計(jì)算每個(gè)職工的應(yīng)
13、發(fā)工資根據(jù)職工的工資檔案及本月獎(jiǎng)金發(fā)放表數(shù)據(jù)計(jì)算每個(gè)職工的應(yīng)發(fā)工資輸入數(shù)據(jù)流輸入數(shù)據(jù)流:獎(jiǎng)金發(fā)放表及工資檔案獎(jiǎng)金發(fā)放表及工資檔案輸出數(shù)據(jù)流輸出數(shù)據(jù)流:應(yīng)發(fā)工資表應(yīng)發(fā)工資表加工邏輯加工邏輯:DO WHILE工資檔案文件指針未指向文件尾工資檔案文件指針未指向文件尾 從工資檔案中取出當(dāng)前職工工資的各項(xiàng)基本數(shù)據(jù)進(jìn)從工資檔案中取出當(dāng)前職工工資的各項(xiàng)基本數(shù)據(jù)進(jìn) 行累加行累加 在獎(jiǎng)金發(fā)放表中按職工號查找到該職工的獎(jiǎng)金數(shù)在獎(jiǎng)金發(fā)放表中按職工號查找到該職工的獎(jiǎng)金數(shù) 對獎(jiǎng)金數(shù)與工資基本數(shù)據(jù)的累計(jì)和進(jìn)行求和得到對獎(jiǎng)金數(shù)與工資基本數(shù)據(jù)的累計(jì)和進(jìn)行求和得到 該職工的應(yīng)發(fā)工資數(shù)該職工的應(yīng)發(fā)工資數(shù)ENDDO PAD圖基本符
14、號圖基本符號條件條件 A A B (a)順序)順序條件條件 AB(b)if-then-else型分支型分支while 條件條件A(d)do-while型循環(huán)型循環(huán)Until 條件條件A(e)repeat-until型循環(huán)型循環(huán)條件條件 ABM=1=2=n(c) case型多分支型多分支ABCDdef(f)定義)定義A6.6.3 PAD圖圖 問題分析圖(問題分析圖(Problem Analysis Diagram)采用二維樹形結(jié)采用二維樹形結(jié)構(gòu)圖表示程序的控制流。構(gòu)圖表示程序的控制流。使用使用PAD圖提供的圖提供的“定義功能定義功能”來逐步求精的例子來逐步求精的例子例題 用PAD圖描述下述算法:
15、將數(shù)組A(1)到A(10) 用選擇法進(jìn)行大小排序輸入輸入A(1)到到A(10)的值的值置初始值:置初始值:n10SortSortdefi=1while in A(i)=maxi=i+1 j=i+1max=A(i) while jn j=j+1 maxA(j) A(j)=max TF定義Sort練習(xí):采用練習(xí):采用PAD圖描述圖描述“計(jì)算應(yīng)發(fā)工資模塊計(jì)算應(yīng)發(fā)工資模塊”例例:工資系統(tǒng)中的工資系統(tǒng)中的“計(jì)算應(yīng)發(fā)工資計(jì)算應(yīng)發(fā)工資” 這個(gè)加工在數(shù)據(jù)字典中的條目描述這個(gè)加工在數(shù)據(jù)字典中的條目描述數(shù)據(jù)加工名稱數(shù)據(jù)加工名稱:計(jì)算應(yīng)發(fā)工資計(jì)算應(yīng)發(fā)工資加工編號加工編號:1.2說明說明:根據(jù)職工的工資檔案及本月獎(jiǎng)金
16、發(fā)放表數(shù)據(jù)計(jì)算每個(gè)職工的應(yīng)發(fā)工資根據(jù)職工的工資檔案及本月獎(jiǎng)金發(fā)放表數(shù)據(jù)計(jì)算每個(gè)職工的應(yīng)發(fā)工資輸入數(shù)據(jù)流輸入數(shù)據(jù)流:獎(jiǎng)金發(fā)放表及工資檔案獎(jiǎng)金發(fā)放表及工資檔案輸出數(shù)據(jù)流輸出數(shù)據(jù)流:應(yīng)發(fā)工資表應(yīng)發(fā)工資表加工邏輯加工邏輯:DO WHILE工資檔案文件指針未指向文件尾工資檔案文件指針未指向文件尾 從工資檔案中取出當(dāng)前職工工資的各項(xiàng)基本數(shù)據(jù)進(jìn)從工資檔案中取出當(dāng)前職工工資的各項(xiàng)基本數(shù)據(jù)進(jìn) 行累加行累加 在獎(jiǎng)金發(fā)放表中按職工號查找到該職工的獎(jiǎng)金數(shù)在獎(jiǎng)金發(fā)放表中按職工號查找到該職工的獎(jiǎng)金數(shù) 對獎(jiǎng)金數(shù)與工資基本數(shù)據(jù)的累計(jì)和進(jìn)行求和得到對獎(jiǎng)金數(shù)與工資基本數(shù)據(jù)的累計(jì)和進(jìn)行求和得到 該職工的應(yīng)發(fā)工資數(shù)該職工的應(yīng)發(fā)工資數(shù)
17、ENDDO 實(shí)例實(shí)例1:某風(fēng)景區(qū)門票預(yù)定價(jià)格折扣執(zhí)行如下規(guī)定:在旅游季:某風(fēng)景區(qū)門票預(yù)定價(jià)格折扣執(zhí)行如下規(guī)定:在旅游季節(jié)(節(jié)(7,8,9,12月),如訂票量小于等于月),如訂票量小于等于20張,折扣為張,折扣為5;訂票量大于訂票量大于20張,折扣為張,折扣為15;在非旅游季節(jié),如訂票量小于;在非旅游季節(jié),如訂票量小于等于等于20張,折扣為張,折扣為20;訂票量大于;訂票量大于20張,折扣為張,折扣為30。旅游時(shí)間 7-9,12月1-6,10,11月定票量 20 205%15%20% 30% 條件類別條件類別條件組合條件組合 操操 作作 操作執(zhí)行操作執(zhí)行6.6.4 判定表判定表當(dāng)算法中包含多重嵌
18、套的條件選擇時(shí),用判定表能清晰地當(dāng)算法中包含多重嵌套的條件選擇時(shí),用判定表能清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對應(yīng)關(guān)系表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對應(yīng)關(guān)系不能清晰地表示順序和重復(fù)等處理不能清晰地表示順序和重復(fù)等處理.不能作為通用設(shè)計(jì)工具不能作為通用設(shè)計(jì)工具練習(xí)練習(xí):一單位對不同職級一單位對不同職級,不同工齡員工的基本獎(jiǎng)金是不同的不同工齡員工的基本獎(jiǎng)金是不同的.基本獎(jiǎng)金基本獎(jiǎng)金=獎(jiǎng)金基數(shù)獎(jiǎng)金基數(shù)+上浮上浮職級分為職級分為:助工助工,工程師工程師,高工高工獎(jiǎng)金基數(shù)獎(jiǎng)金基數(shù):350,400,500工齡計(jì)算工齡計(jì)算:=20年年,助工上浮助工上浮30%,工程師上浮工程師上浮35%,高工上
19、浮高工上浮45%試給出試給出“基本獎(jiǎng)金計(jì)算基本獎(jiǎng)金計(jì)算”判定表判定表實(shí)例實(shí)例3:假設(shè)某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量不:假設(shè)某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量不超過超過30公斤的行李。當(dāng)行李重量超過公斤的行李。當(dāng)行李重量超過30公斤時(shí),對頭等艙的國公斤時(shí),對頭等艙的國內(nèi)乘客超重部分每公斤收費(fèi)內(nèi)乘客超重部分每公斤收費(fèi)4元,對其他艙的國內(nèi)乘客超重部元,對其他艙的國內(nèi)乘客超重部分每公斤收費(fèi)分每公斤收費(fèi)6元,對外國乘客超重部分每公斤收費(fèi)比國內(nèi)乘元,對外國乘客超重部分每公斤收費(fèi)比國內(nèi)乘客多一倍,對殘疾乘客超重部分每公斤收費(fèi)比近常乘客少一半??投嘁槐?,對殘疾乘客超重部分每公斤收費(fèi)比近常乘客少一半。用
20、判定表表示計(jì)算行李費(fèi)的算法用判定表表示計(jì)算行李費(fèi)的算法折扣量折扣量 算法算法旅游時(shí)間旅游時(shí)間7-9,12月月 旅游時(shí)間旅游時(shí)間1-6,10-11月月定票量定票量20 15%定票量定票量20 30%6.3.5 判定樹判定樹實(shí)例實(shí)例1:風(fēng)景區(qū)門票折扣量算法判定樹:風(fēng)景區(qū)門票折扣量算法判定樹練習(xí)練習(xí):“基本獎(jiǎng)金計(jì)算基本獎(jiǎng)金計(jì)算”的判定樹的判定樹練習(xí):用判定樹計(jì)算行李費(fèi)的算法練習(xí):用判定樹計(jì)算行李費(fèi)的算法 介于自然語言和形式化語言之間的半形式化語言介于自然語言和形式化語言之間的半形式化語言.用正文形用正文形式表示數(shù)據(jù)和處理過程的設(shè)計(jì)工具。式表示數(shù)據(jù)和處理過程的設(shè)計(jì)工具。 正文分內(nèi)外兩層正文分內(nèi)外兩層
21、外層用嚴(yán)格的外層用嚴(yán)格的關(guān)鍵字語法關(guān)鍵字語法描述操作的描述操作的基本控制結(jié)構(gòu)基本控制結(jié)構(gòu) 內(nèi)層用自然語言描述加工操作內(nèi)層用自然語言描述加工操作 控制結(jié)構(gòu)關(guān)鍵詞:控制結(jié)構(gòu)關(guān)鍵詞: if_then_else、while_do、repeat_until、case_of 優(yōu)點(diǎn):優(yōu)點(diǎn): 可直接嵌在源代碼中作為設(shè)計(jì)文檔和注釋,可直接嵌在源代碼中作為設(shè)計(jì)文檔和注釋,可讀性可讀性 可用一般文本編輯器或字處理軟件編輯可用一般文本編輯器或字處理軟件編輯 已有已有PDL自動(dòng)處理器,且可自動(dòng)由自動(dòng)處理器,且可自動(dòng)由PDL生成程序代碼生成程序代碼6.3.6 過程設(shè)計(jì)語言(過程設(shè)計(jì)語言(PDL)PROCEDURE spe
22、llcheck IS BEGIN split document into single words look up words in dictionary display words which are not in dictionary create a new dictionary END spellcheck示例示例1: 拼詞檢查程序拼詞檢查程序 將下述偽碼用流程圖和NS盒圖,PADb表示 startif p thenwhile q do fend do elseblock g hend blockend ifstop例題1習(xí)題習(xí)題:請使用流程圖、請使用流程圖、PAD圖和圖和PDL語言描
23、述下列程序的算法。語言描述下列程序的算法。(1)在數(shù)據(jù)在數(shù)據(jù)A(1)A(10)中求最大數(shù)和次大數(shù)。中求最大數(shù)和次大數(shù)。 (2)輸入三個(gè)正整數(shù)作為邊長,判斷該三條邊構(gòu)成的三角形輸入三個(gè)正整數(shù)作為邊長,判斷該三條邊構(gòu)成的三角形是等邊、等腰還是一般三角形。是等邊、等腰還是一般三角形。 Jackson結(jié)構(gòu)圖結(jié)構(gòu)圖ACBD順序順序 A選擇選擇BOCODOAB*重復(fù)重復(fù) 6. 4 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法用用Jackson圖描繪三種基本的邏輯數(shù)據(jù)結(jié)構(gòu)圖描繪三種基本的邏輯數(shù)據(jù)結(jié)構(gòu)ABCDAS(i)B*AI(i)A_S(i)6.4.2 改進(jìn)的改進(jìn)的Jackson圖圖注意(注意(1)順序結(jié)構(gòu)
24、中)順序結(jié)構(gòu)中B,C,D任一個(gè)都不能是選擇出現(xiàn)或重復(fù)出現(xiàn)的數(shù)據(jù)元素任一個(gè)都不能是選擇出現(xiàn)或重復(fù)出現(xiàn)的數(shù)據(jù)元素(2)Jackson圖與層次圖的區(qū)別圖與層次圖的區(qū)別0B0D0C0B實(shí)例1: 某倉庫管理系統(tǒng)每天要處理某倉庫管理系統(tǒng)每天要處理大批單據(jù)大批單據(jù)所組成的事務(wù)文件。所組成的事務(wù)文件。單據(jù)分為單據(jù)分為訂貨單訂貨單和和發(fā)貨單發(fā)貨單兩種,每張單據(jù)由兩種,每張單據(jù)由多行多行組成,訂組成,訂貨單每行包括零件號、零件名、單價(jià)、數(shù)量四個(gè)數(shù)據(jù)項(xiàng),貨單每行包括零件號、零件名、單價(jià)、數(shù)量四個(gè)數(shù)據(jù)項(xiàng),發(fā)貨單每行包括零件號、零件名、數(shù)量三個(gè)數(shù)據(jù)項(xiàng),用發(fā)貨單每行包括零件號、零件名、數(shù)量三個(gè)數(shù)據(jù)項(xiàng),用Jackson結(jié)構(gòu)
25、圖表示該事務(wù)文件的數(shù)據(jù)結(jié)構(gòu)。結(jié)構(gòu)圖表示該事務(wù)文件的數(shù)據(jù)結(jié)構(gòu)。事務(wù)文件事務(wù)文件訂貨單訂貨單O發(fā)貨單發(fā)貨單O訂貨行訂貨行*發(fā)貨行發(fā)貨行*零件號零件號零件名零件名單價(jià)單價(jià)數(shù)量數(shù)量零件號零件號零件名零件名數(shù)量數(shù)量* 單單 據(jù)據(jù)表示表示“事務(wù)文件事務(wù)文件”數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)的Jackson圖圖用用Jackson圖描述下述一列火車的構(gòu)成:圖描述下述一列火車的構(gòu)成:一列火車最多有兩個(gè)火車頭。只有一個(gè)火車頭時(shí)則位于列車最前面,若還有第一列火車最多有兩個(gè)火車頭。只有一個(gè)火車頭時(shí)則位于列車最前面,若還有第二個(gè)火車頭時(shí),則第二個(gè)火車頭位于列車最后面。火車頭可能是內(nèi)燃機(jī)車也可二個(gè)火車頭時(shí),則第二個(gè)火車頭位于列車最后面
26、。火車頭可能是內(nèi)燃機(jī)車也可能是電氣機(jī)車。車廂分為硬座車廂,硬臥車廂和軟臥車廂三種。硬座車廂在所能是電氣機(jī)車。車廂分為硬座車廂,硬臥車廂和軟臥車廂三種。硬座車廂在所有車廂的前面,軟臥車廂在所有車廂的后面。此外在硬臥車廂和軟臥車廂之間有車廂的前面,軟臥車廂在所有車廂的后面。此外在硬臥車廂和軟臥車廂之間還有一節(jié)餐車。還有一節(jié)餐車。ACBD順序順序 A選擇選擇BOCODOAB*重復(fù)重復(fù) 用用Jackson圖描繪三種基本的程序結(jié)構(gòu)圖描繪三種基本的程序結(jié)構(gòu)A seq B C DA endA select cond1 BA or cond2 CA or cond3 DA endA iter while(un
27、til) cond BA end對應(yīng)偽碼:對應(yīng)偽碼:6.4.3 Jackson 程序設(shè)計(jì)方法方法程序設(shè)計(jì)方法方法 分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用用Jackson圖描繪這些數(shù)據(jù)結(jié)構(gòu)。圖描繪這些數(shù)據(jù)結(jié)構(gòu)。 找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對應(yīng)關(guān)系找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對應(yīng)關(guān)系的單元。的單元。 從描繪數(shù)據(jù)結(jié)構(gòu)的從描繪數(shù)據(jù)結(jié)構(gòu)的Jackson圖導(dǎo)出描繪程序結(jié)構(gòu)圖導(dǎo)出描繪程序結(jié)構(gòu)的的Jackson圖。圖。 列出所有操作和條件,并把它們分配到程序結(jié)構(gòu)列出所有操作和條件,并把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。圖的適當(dāng)位置。 用偽碼表示程序。
28、用偽碼表示程序。 實(shí)例實(shí)例2:某單位原來存在一個(gè)職工工資文件和一個(gè)職工檔案文某單位原來存在一個(gè)職工工資文件和一個(gè)職工檔案文件件,兩個(gè)文件中的記錄均按照職工編號升序排列且數(shù)目兩個(gè)文件中的記錄均按照職工編號升序排列且數(shù)目 相等相等,現(xiàn)在要將兩個(gè)獨(dú)立的文件合并為一個(gè)職工工資檔案文件現(xiàn)在要將兩個(gè)獨(dú)立的文件合并為一個(gè)職工工資檔案文件.1)分析問題。確定輸入,輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用分析問題。確定輸入,輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用JACKSON圖描述出來圖描述出來檔案文件檔案文件職工記錄職工記錄*職工工資檔案文件職工工資檔案文件職職稱稱職工記錄職工記錄*工工號號工工齡齡姓姓名名工工號號工工資資津津貼貼工工號號
29、姓姓名名職職稱稱工工齡齡津津貼貼工工資資職工記錄職工記錄*工資文件工資文件(a)輸入數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)輸入數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)(b)輸出數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)輸出數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)2)找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對應(yīng)關(guān)系的單元,找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對應(yīng)關(guān)系的單元,并按照下列規(guī)則導(dǎo)出描述程序結(jié)構(gòu)的并按照下列規(guī)則導(dǎo)出描述程序結(jié)構(gòu)的JACKSON圖圖產(chǎn)生工資檔案文件產(chǎn)生工資檔案文件產(chǎn)產(chǎn)生生工工號號產(chǎn)產(chǎn)生生姓姓名名產(chǎn)產(chǎn)生生職職稱稱產(chǎn)產(chǎn)生生工工齡齡產(chǎn)產(chǎn)生生津津貼貼產(chǎn)產(chǎn)生生工工資資產(chǎn)生職工記錄產(chǎn)生職工記錄*生成工資檔案文件的程序結(jié)構(gòu)圖生成工資檔案文件的程序結(jié)構(gòu)圖3)列出完成結(jié)構(gòu)圖中各處理框功能的所有操作,分
30、支及循列出完成結(jié)構(gòu)圖中各處理框功能的所有操作,分支及循環(huán)條件,并把它們放到程序結(jié)構(gòu)圖相應(yīng)的位置環(huán)條件,并把它們放到程序結(jié)構(gòu)圖相應(yīng)的位置產(chǎn)生工資檔案文件產(chǎn)生工資檔案文件產(chǎn)產(chǎn)生生工工號號產(chǎn)產(chǎn)生生姓姓名名產(chǎn)產(chǎn)生生職職稱稱產(chǎn)產(chǎn)生生工工齡齡產(chǎn)產(chǎn)生生津津貼貼產(chǎn)產(chǎn)生生工工資資產(chǎn)生檔案記錄產(chǎn)生檔案記錄*圖改進(jìn)前的程序結(jié)構(gòu)圖圖改進(jìn)前的程序結(jié)構(gòu)圖ABEDGFCI(1)基本操作基本操作A.打開輸入文件打開輸入文件B.新建工資檔案文件新建工資檔案文件C.讀取輸入文件的一條記錄讀取輸入文件的一條記錄D.合并生成工資檔案文件合并生成工資檔案文件E.將工資檔案文件寫入記錄將工資檔案文件寫入記錄F.關(guān)閉文件關(guān)閉文件G.終止終
31、止條件條件:I(1)輸入文件結(jié)束輸入文件結(jié)束產(chǎn)生工資檔案文件產(chǎn)生工資檔案文件產(chǎn)產(chǎn)生生工工號號產(chǎn)產(chǎn)生生姓姓名名產(chǎn)產(chǎn)生生職職稱稱產(chǎn)產(chǎn)生生工工齡齡產(chǎn)產(chǎn)生生津津貼貼產(chǎn)產(chǎn)生生工工資資產(chǎn)生職工記錄產(chǎn)生職工記錄*圖改進(jìn)后的程序結(jié)構(gòu)圖圖改進(jìn)后的程序結(jié)構(gòu)圖ABEDGFC程序體程序體I(1)4)用用Jackson偽代碼寫出程序的處理過程偽代碼寫出程序的處理過程改進(jìn)后的程序結(jié)構(gòu)圖改進(jìn)后的程序結(jié)構(gòu)圖對應(yīng)的偽代碼如下對應(yīng)的偽代碼如下產(chǎn)生工資檔案文件產(chǎn)生工資檔案文件 seq打開兩個(gè)輸入文件打開兩個(gè)輸入文件新建工資檔案文件新建工資檔案文件程序體程序體itel while 輸入文件未結(jié)束輸入文件未結(jié)束產(chǎn)生工資檔案記錄產(chǎn)生工資
32、檔案記錄seq從兩個(gè)輸入文件中各讀取一條記錄從兩個(gè)輸入文件中各讀取一條記錄合并生成工資檔案記錄合并生成工資檔案記錄將生成的工資檔案記錄寫入工資檔案文件中將生成的工資檔案記錄寫入工資檔案文件中產(chǎn)生工資檔案記錄產(chǎn)生工資檔案記錄end 程序體程序體end關(guān)閉所有文件關(guān)閉所有文件終止終止產(chǎn)生工資檔案文件產(chǎn)生工資檔案文件end課堂練習(xí)課堂練習(xí) 問題描述:問題描述: 某倉庫存放多種零件(如某倉庫存放多種零件(如P1、P2、),每個(gè)零件的每),每個(gè)零件的每次進(jìn)貨、發(fā)貨都有一張卡片做出記錄,每月根據(jù)這樣一次進(jìn)貨、發(fā)貨都有一張卡片做出記錄,每月根據(jù)這樣一疊卡片打印一張?jiān)聢?bào)表。報(bào)表每行列出某種零件本月庫疊卡片打印
33、一張?jiān)聢?bào)表。報(bào)表每行列出某種零件本月庫存量的凈變化。用存量的凈變化。用Jackson設(shè)計(jì)方法對該問題進(jìn)行設(shè)計(jì)。設(shè)計(jì)方法對該問題進(jìn)行設(shè)計(jì)。X月報(bào)表月報(bào)表零件名零件名 凈變化凈變化P1 200P2 100P3 150 月報(bào)表格式月報(bào)表格式表頭表頭表體表體舉例舉例4 一個(gè)正文文件由若干記錄組成,每個(gè)記錄是一個(gè)字符串。要一個(gè)正文文件由若干記錄組成,每個(gè)記錄是一個(gè)字符串。要求:求: * 統(tǒng)計(jì)每個(gè)記錄中空格字符個(gè)數(shù)及文件中空格字符的總個(gè)數(shù)統(tǒng)計(jì)每個(gè)記錄中空格字符個(gè)數(shù)及文件中空格字符的總個(gè)數(shù) *輸出格式是每復(fù)制一行輸入字符串,下一行是這個(gè)字符串的空輸出格式是每復(fù)制一行輸入字符串,下一行是這個(gè)字符串的空格數(shù),最后印出文件中空格的總個(gè)數(shù)格數(shù),最后印出文件中空格的總個(gè)數(shù)設(shè)計(jì)過程如上述五個(gè)步驟。設(shè)計(jì)過程如上述五個(gè)步驟。第一步:第一步:第二步第二步第三步:第三步:6.5 程序復(fù)雜程度的定量度量程序復(fù)雜程度的定量度量意義:意義: 程序的復(fù)雜程度乘以適當(dāng)常數(shù)即可估算出軟件程序的復(fù)雜程度乘以適當(dāng)常數(shù)即可估算出軟件中故障的數(shù)量以及軟件開發(fā)需要的工作量。中故障的數(shù)量以及軟件開發(fā)需要的工作量。
溫馨提示
- 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è)價(jià)值》課件
- 2024民法典實(shí)施后住宅小區(qū)綠化養(yǎng)護(hù)服務(wù)合同3篇
- 2024某酒店與旅游公司之間的旅游服務(wù)合同
- 2024年渣土運(yùn)輸車分時(shí)租賃協(xié)議3篇
- 2024微商虛擬貨幣交易合作協(xié)議3篇
- 2024年車輛股權(quán)分割轉(zhuǎn)讓協(xié)議樣本版B版
- 2024年版智能停車場建設(shè)與運(yùn)營合同
- 2024投標(biāo)書城市更新改造項(xiàng)目合同范本3篇
- 2024智能語音交互系統(tǒng)研發(fā)與商業(yè)化合同
- 2024年實(shí)習(xí)生職業(yè)素養(yǎng)培養(yǎng)實(shí)習(xí)協(xié)議書3篇
- 宮腔鏡手術(shù)并發(fā)癥及處理
- 安全生產(chǎn)治本攻堅(jiān)三年行動(dòng)方案2024~2026(工貿(mào))
- 2024版內(nèi)蒙古自治區(qū)勞動(dòng)合同書(臨時(shí)工、季節(jié)工、農(nóng)民輪換工)
- GB/T 23587-2024淀粉制品質(zhì)量通則
- 急性化膿性中耳炎病人的護(hù)理課件
- 中小學(xué)美術(shù)教學(xué)論
- 臨床醫(yī)學(xué)研究生畢業(yè)答辯模板
- 中藥煎煮協(xié)議書
- 軍工單位保密協(xié)議范本
- 南方的耕作制度
- 期末測試卷(試題)-2023-2024學(xué)年人教精通版英語五年級上冊
評論
0/150
提交評論