實驗1:程序設(shè)計的基本目標與準則_第1頁
實驗1:程序設(shè)計的基本目標與準則_第2頁
實驗1:程序設(shè)計的基本目標與準則_第3頁
實驗1:程序設(shè)計的基本目標與準則_第4頁
實驗1:程序設(shè)計的基本目標與準則_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論