版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗1:程序設(shè)計的基本目標與準則 o課題介紹o課堂實驗o課后作業(yè)課題介紹參考書目:C+程序設(shè)計實驗教程 高等教育出版社 李師賢 主編o程序設(shè)計的基本目標與準則n程序的正確性n程序的健壯性n程序的可靠性n程序可理解性n程序的有效性n程序可維護性n程序可重用性程序正確性1. 了解程序正確性的概念n什么是程序正確性?n一個程序是否正確地實現(xiàn)了預(yù)定的目標n預(yù)定的目標是什么?n明確“做什么”程序規(guī)范,分成兩個部分n要完成這個任務(wù)必須滿足的前提 初始斷言(條件)n完成此項任務(wù)的結(jié)果必須具備的性質(zhì)結(jié)果斷言(條件)n如何保證其正確性?程序健壯性1. 了解程序健壯性的概念2. 初步掌握提高程序健壯性的設(shè)計方法n
2、什么是程序健壯性?n決定一個程序在異常輸入下能否正常工作nIEEE定義:系統(tǒng)或組件在接收不合法的輸入或在異常環(huán)境下正常運轉(zhuǎn)的程度。n健壯性和正確性的區(qū)別n正確性用來描述程序在正常正常外界環(huán)境下的行為特征n健壯性用來描述程序在異常異常外界環(huán)境下的行為特征,體現(xiàn)了程序的容錯能力和故障回復(fù)能力n引起程序錯誤的原因可能來自程序內(nèi)部,也可能來自程序的外部;n程序健壯性取決于程序本身的設(shè)計n程序設(shè)計中可通過一些方法提高程序的健壯性n檢查輸入數(shù)據(jù)的合法性n模塊相互調(diào)用時檢查參數(shù)的合法性n利用信息隱藏把模塊內(nèi)的實現(xiàn)細節(jié)與外界隔離n降低模塊間的耦合度例1-2-1o#include ovoid main()oo
3、int x,y,result;o printf(Enter two number n);o scanf(%d %d,&x,&y);o result=x/y;o printf(The quotient of the two number: %dn,result);oo運行該程序,發(fā)現(xiàn)了什么問題?例1-2-2#include void main() int x,y,result; printf(Enter two number n); scanf(%d %d,&x,&y); while(y=0) printf(The divisor cannot be 0n); p
4、rintf(Enter two number n); scanf(%d %d,&x,&y); result=x/y; printf(The quotient of the two number: %dn,result);o比較例1-2-1和例1-2-2的健壯性o是否還可以修改?例1-2-3 2147483647 o/給定正整數(shù)n,求其平方值不超過n的最大正整數(shù)o#include ovoid main()oo int n;o int max;o printf(Enter a number:);o scanf(%d,&n);o max=1;o while (max*max
5、= n) max=max+1;o printf(The maximum integer is : %d n,max-1);oo該程序是否有值得修改的地方?程序可靠性1. 了解程序可靠性的概念n什么是程序可靠性?n在給定的時段內(nèi),在一個給定的環(huán)境下,一個給定的程序無故障運行的概率 。n可靠性的3個要素n失效(未達到所期望的目標)n時間n運行環(huán)境 n決定因素n程序設(shè)計過程是主要因素n重要特征n設(shè)計可見性n設(shè)計單元之間的耦合程度程序可理解性1. 了解程序可理解性的概念2. 初步掌握可理解性好的程序的表達方式n一個程序必須直接反映問題的本來面目,其邏輯應(yīng)該清晰、結(jié)構(gòu)應(yīng)該簡單、編排應(yīng)該合理、注釋應(yīng)該簡明
6、 。n比較下列5個程序的可理解性例1-4-1 #include void main() int a,b,c; int maxv; printf(Enter three numbers: n); scanf(%d %d %d,&a,&b,&c); if (ab) goto L1; if (bc) goto L2; maxv=c; goto L4;L1: if (bc) goto L3; if (ac) goto L3; maxv=c; goto L4;L2: maxv=b; goto L4;L3: maxv=a;L4: printf(The max number is:
7、%d n,maxv);例1-4-2o#include ovoid main()oo int a,b,c;o int maxv;o printf(Enter three numbers: n);o scanf(%d %d %d,&a,&b,&c);o if (ab)o o if (ac) maxv=a;o else maxv=c;o o elseo o if (bc) maxv=b;o else maxv=c; o o printf(The max number is: %d n,maxv);o例1-4-3o#include o#include ovoid main()o
8、o int a,b,c;o int maxv;o printf(Enter three numbers: n);o scanf(%d %d %d,&a,&b,&c);o maxv = (b+a)/2.0 + fabs(a-b)/2.0);o maxv = (maxv+c)/2.0 + fabs(maxv-c)/2.0);o printf(The max number is: %d n,maxv);o 例1-4-4o#include ovoid main()oo int a,b,c;o int maxv;o printf(Enter three numbers: n);o
9、 scanf(%d %d %d,&a,&b,&c);o maxv=a;o if (bmaxv) maxv=b;o if (cmaxv) maxv=c;o printf(The max number is: %d n,maxv);o 例1-4-5#include int max( int a, int b ) if( a b ) return( a ); else return( b ); void main() int a,b,c; int maxv; printf(Enter three numbers: n); scanf(%d %d %d,&a,&
10、b,&c); maxv = max (max(a,b),c); printf(The max number is: %d n,maxv);程序的有效性1. 了解程序有效性的目標如意義2. 初步了解如何分析程序時間復(fù)雜度和空間要求n一個程序以最佳方式使用可用資源運行n資源:n時間n空間n通訊帶寬n算法和數(shù)據(jù)結(jié)構(gòu)n比較下列兩個程序 例1-5-1o#include ovoid main()oo int sum;o int cnt;o sum = 0;o for (cnt=1;cnt=100;cnt+) sum=sum+cnt;o printf (The summing result is %
11、d n ,sum);o例1-5-2o#include ovoid main()oo int sum;o sum = (100 /2) * (1+100) ;o printf (The summing result is %d n ,sum);o程序可維護性1. 了解程序可維護性 2. 初步了解提高程序可維護性的主要方法 n可維護性是指一個程序產(chǎn)品正式交付使用后對其進行修改的難易程度n代碼的可理解性、可靠性和可擴展性直接影響程序的維護量。n程序的可維護性還和相關(guān)文檔的完善程度有關(guān)n代碼注釋是程序文檔化的一種表現(xiàn)例1-6-1#include void main() int x,y;printf (
12、Enter two numbers:n);scanf(%d %d,&x,&y);printf(The numbers before swap: %d %d n,x,y);x = x + y;y = x - y;x = x - y;printf(The numbers before swap: %d %d n,x,y);例1-6-2 增加了適當?shù)淖⑨?include void main() int x,y;/輸入兩個整數(shù) printf (Enter two numbers:n);scanf(%d %d,&x,&y); /輸出交換前的數(shù)據(jù)printf(The num
13、bers before swap: %d %d n,x,y);/以下3條語句可以實現(xiàn)x和y的交換 x = x + y;y = x - y;x = x - y; /輸出交換后的數(shù)據(jù)printf(The numbers after swap: %d %d n,x,y);程序可重用性1. 了解程序重用的主要思想 2. 初步掌握程序重用的實現(xiàn)技術(shù) n程序可重用性是現(xiàn)代程序設(shè)計所追求的一個重要目標。n重用可以提高編碼的質(zhì)量和生產(chǎn)率n通常把可以重用的程序部件稱為構(gòu)件,有不同的定義n構(gòu)件是一個具有規(guī)范接口和明確上下文依賴的組裝單元,可以獨立部署和被第三方組裝。n構(gòu)件是可以單獨生產(chǎn)、獲取和部署的二進制單元,它
14、們之間可以相互作用構(gòu)成一個功能系統(tǒng)n掌握兩個不同的過程n設(shè)計與實現(xiàn)可重用構(gòu)件的過程n使用可重用構(gòu)件進行程序設(shè)計的過程n要點n建立重用的意識n在設(shè)計程序解決某一問題時,考慮部分模塊設(shè)計與實現(xiàn)為可重用的構(gòu)件n重用現(xiàn)有的構(gòu)件來達到預(yù)期的目標n要考慮的問題n如何構(gòu)造重用性良好的構(gòu)件n如何在技術(shù)上能夠方便地獲得和使用已有構(gòu)件n如何確定構(gòu)件的生產(chǎn)成本和重用成本例1-7-1#include void main() double result;int i,x,y;result = 1;x = 5 ;y = 6 ;for (i = 0 ; i y ; i+) result = result * x ;print
15、f (The pow result is: %f n,result);例1-7-2#include double mathpow(int x , int y) double temp; int i; temp = 1; for (i = 0 ; i y ; i+) temp = temp * x ; return temp;void main() double result = 0;int x,y; x = 5 ;y = 6 ; result = mathpow(x,y) ;printf (The pow result is: %f n,result);例1-7-3#include #include void main() double result;int x,y;result = 0;x = 5 ;y = 6 ; result = pow(x,y) ;printf (The pow result is: %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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)員工培訓(xùn)協(xié)議(2026年考核機制)
- 2026銀河金融控股校招真題及答案
- 2025年企業(yè)員工培訓(xùn)與發(fā)展指導(dǎo)手冊
- 地質(zhì)調(diào)查員春節(jié)假期安全告知書
- 2025年企業(yè)研發(fā)創(chuàng)新與知識產(chǎn)權(quán)管理手冊
- 企業(yè)安全生產(chǎn)管理與事故預(yù)防策略手冊
- 卸車指揮工春節(jié)假期安全告知書
- 化纖聚合工春節(jié)假期安全告知書
- 新進員工崗前安全教育培訓(xùn)試題及答案
- 操作系統(tǒng)模擬試題(含答案)
- 常用機床電氣檢修(第二版)課件:M7475B 型立軸圓臺平面磨床電氣檢修
- 城市道路智慧路燈項目投標方案(技術(shù)標)
- 校車購買合同協(xié)議書
- 歷史課堂教學(xué)改進的幾點措施
- 1500V儲能系統(tǒng)全場景解決方案與典型案例分享
- 公路路面煤矸石基層應(yīng)用技術(shù)規(guī)范(DB15-T 3122-2023)
- 大學(xué)計算機基礎(chǔ)操作題(一)
- AQ-T7009-2013 機械制造企業(yè)安全生產(chǎn)標準化規(guī)范
- 小學(xué)美術(shù)與心理健康的融合滲透
- 2023年上海鐵路局人員招聘筆試題庫含答案解析
- 馬鞍山經(jīng)濟技術(shù)開發(fā)區(qū)建設(shè)投資有限公司馬鞍山城鎮(zhèn)南部污水處理廠擴建工程項目環(huán)境影響報告書
評論
0/150
提交評論