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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實驗1:

程序設計的基本目標與準則課題介紹課堂實驗課后作業(yè)課題介紹

參考書目:C++程序設計實驗教程

高等教育出版社李師賢主編程序設計的基本目標與準則程序的正確性程序的健壯性程序的可靠性程序可理解性程序的有效性程序可維護性程序可重用性程序正確性

1.了解程序正確性的概念什么是程序正確性?一個程序是否正確地實現了預定的目標預定的目標是什么?明確“做什么”程序規(guī)范,分成兩個部分要完成這個任務必須滿足的前提初始斷言(條件)完成此項任務的結果必須具備的性質結果斷言(條件)如何保證其正確性?程序健壯性

1.了解程序健壯性的概念

2.初步掌握提高程序健壯性的設計方法什么是程序健壯性?決定一個程序在異常輸入下能否正常工作IEEE定義:系統或組件在接收不合法的輸入或在異常環(huán)境下正常運轉的程度。健壯性和正確性的區(qū)別正確性用來描述程序在正常外界環(huán)境下的行為特征健壯性用來描述程序在異常外界環(huán)境下的行為特征,體現了程序的容錯能力和故障回復能力引起程序錯誤的原因可能來自程序內部,也可能來自程序的外部;程序健壯性取決于程序本身的設計程序設計中可通過一些方法提高程序的健壯性檢查輸入數據的合法性模塊相互調用時檢查參數的合法性利用信息隱藏把模塊內的實現細節(jié)與外界隔離降低模塊間的耦合度例1-2-1#include<stdio.h>voidmain(){

int

x,y,result;

printf("Entertwonumber\n");

scanf("%d%d",&x,&y);result=x/y;

printf("Thequotientofthetwonumber:%d\n",result);}運行該程序,發(fā)現了什么問題?例1-2-2#include<stdio.h>voidmain(){

int

x,y,result;

printf("Entertwonumber\n");

scanf("%d%d",&x,&y);

while(y==0){

printf("Thedivisorcannotbe0\n");

printf("Entertwonumber\n");

scanf("%d%d",&x,&y);}result=x/y;

printf("Thequotientofthetwonumber:%d\n",result);}比較例1-2-1和例1-2-2的健壯性是否還可以修改?例1-2-3

2147483647

//給定正整數n,求其平方值不超過n的最大正整數#include<stdio.h>voidmain(){

intn;

intmax;

printf("Enteranumber:");

scanf("%d",&n);max=1;while(max*max<=n)max=max+1;

printf("Themaximumintegeris:%d\n",max-1);}該程序是否有值得修改的地方?程序可靠性

1.了解程序可靠性的概念什么是程序可靠性?在給定的時段內,在一個給定的環(huán)境下,一個給定的程序無故障運行的概率。可靠性的3個要素失效(未達到所期望的目標)時間運行環(huán)境決定因素程序設計過程是主要因素重要特征設計可見性設計單元之間的耦合程度程序可理解性

1.了解程序可理解性的概念

2.初步掌握可理解性好的程序的表達方式一個程序必須直接反映問題的本來面目,其邏輯應該清晰、結構應該簡單、編排應該合理、注釋應該簡明。比較下列5個程序的可理解性例1-4-1

#include<stdio.h>voidmain(){

int

a,b,c;

int

maxv;

printf("Enterthreenumbers:\n");

scanf("%d%d%d",&a,&b,&c);if(a>b)gotoL1;if(b>c)gotoL2;

maxv=c;

gotoL4;L1:if(b>c)gotoL3;if(a>c)gotoL3;

maxv=c;

gotoL4;L2:

maxv=b;

gotoL4;L3:

maxv=a;L4:

printf("Themaxnumberis:%d\n",maxv);}例1-4-2#include<stdio.h>voidmain(){

int

a,b,c;

int

maxv;

printf("Enterthreenumbers:\n");

scanf("%d%d%d",&a,&b,&c);if(a>b){if(a>c)maxv=a; elsemaxv=c;}else{if(b>c)maxv=b; elsemaxv=c;}

printf("Themaxnumberis:%d\n",maxv);}例1-4-3#include<stdio.h>#include<math.h>voidmain(){

int

a,b,c;

int

maxv;

printf("Enterthreenumbers:\n");

scanf("%d%d%d",&a,&b,&c);

maxv=(b+a)/2.0+fabs((a-b)/2.0);

maxv=(maxv+c)/2.0+fabs((maxv-c)/2.0);

printf("Themaxnumberis:%d\n",maxv);}例1-4-4#include<stdio.h>voidmain(){

int

a,b,c;

int

maxv;

printf("Enterthreenumbers:\n");

scanf("%d%d%d",&a,&b,&c);

maxv=a;if(b>maxv)maxv=b;if(c>maxv)maxv=c;

printf("Themaxnumberis:%d\n",maxv);}例1-4-5#include<stdio.h>intmax(inta,intb){if(a>b)return(a);else

return(b);}

voidmain(){

int

a,b,c;

int

maxv;

printf("Enterthreenumbers:\n");

scanf("%d%d%d",&a,&b,&c);

maxv=max(max(a,b),c);

printf("Themaxnumberis:%d\n",maxv);}程序的有效性

1.了解程序有效性的目標如意義

2.初步了解如何分析程序時間復雜度和空間要求一個程序以最佳方式使用可用資源運行資源:時間空間通訊帶寬算法和數據結構比較下列兩個程序例1-5-1#include<stdio.h>voidmain(){

intsum;

int

cnt;sum=0;for(cnt=1;cnt<=100;cnt++)sum=sum+cnt;

printf("Thesummingresultis%d\n",sum);}例1-5-2#include<stdio.h>voidmain(){

intsum;sum=(100/2)*(1+100);

printf("Thesummingresultis%d\n",sum);}程序可維護性

1.了解程序可維護性

2.初步了解提高程序可維護性的主要方法可維護性是指一個程序產品正式交付使用后對其進行修改的難易程度代碼的可理解性、可靠性和可擴展性直接影響程序的維護量。程序的可維護性還和相關文檔的完善程度有關代碼注釋是程序文檔化的一種表現例1-6-1#include<stdio.h>voidmain(){

int

x,y;

printf("Entertwonumbers:\n");

scanf("%d%d",&x,&y);

printf("Thenumbersbeforeswap:%d%d\n",x,y); x

=

x

+

y; y

=

x

-

y; x

=

x

-

y;

printf("Thenumbersbeforeswap:%d%d\n",x,y);}例1-6-2

增加了適當的注釋#include<stdio.h>voidmain(){

int

x,y;

//輸入兩個整數

printf("Entertwonumbers:\n");

scanf("%d%d",&x,&y);//輸出交換前的數據

printf("Thenumbersbeforeswap:%d%d\n",x,y);

//以下3條語句可以實現x和y的交換

x

=

x

+

y; y

=

x

-

y; x

=

x

-

y;//輸出交換后的數據

printf("Thenumbersafterswap:%d%d\n",x,y);}程序可重用性

1.了解程序重用的主要思想

2.初步掌握程序重用的實現技術程序可重用性是現代程序設計所追求的一個重要目標。重用可以提高編碼的質量和生產率通常把可以重用的程序部件稱為構件,有不同的定義構件是一個具有規(guī)范接口和明確上下文依賴的組裝單元,可以獨立部署和被第三方組裝。構件是可以單獨生產、獲取和部署的二進制單元,它們之間可以相互作用構成一個功能系統掌握兩個不同的過程設計與實現可重用構件的過程使用可重用構件進行程序設計的過程要點建立重用的意識在設計程序解決某一問題時,考慮部分模塊設計與實現為可重用的構件重用現有的構件來達到預期的目標要考慮的問題如何構造重用性良好的構件如何在技術上能夠方便地獲得和使用已有構件如何確定構件的生產成本和重用成本例1-7-1#include<stdio.h>voidmain(){doubleresult;

int

i,x,y; result=1; x=5; y=6; for(i=0;i<y;i++) result=result*x;

printf("Thepowresultis:%f\n",result);}例1-7-2#include<stdio.h>doublemathpow(intx,inty){doubletemp;

inti;temp=1;for(i=0;i<y;i++)

temp=temp*x;returntemp;}voidmain()

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論