版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
實驗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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個人借款借條范本編制標準2篇
- 山地生態(tài)旅游項目租賃合同二零二五年度版2篇
- 2025年度個人創(chuàng)業(yè)貸款合同示范文本7篇
- 2025年度臨建板房施工現場廢棄物處理與施工合同4篇
- 2025年度高端門面租賃及品牌推廣合作協議4篇
- 2025版美容院美容師顧客滿意度調查與改進合同4篇
- 二零二五版智能科技門面租賃合同電子版4篇
- 2025年度高速公路監(jiān)控弱電系統工程合同范本4篇
- 2025年度煤礦安全監(jiān)控系統安裝與維護服務合同4篇
- 2025材皮木糠生物質顆粒生產合作協議3篇
- 2025年度版權授權協議:游戲角色形象設計與授權使用3篇
- 心肺復蘇課件2024
- 《城鎮(zhèn)燃氣領域重大隱患判定指導手冊》專題培訓
- 湖南財政經濟學院專升本管理學真題
- 全國身份證前六位、區(qū)號、郵編-編碼大全
- 2024-2025學年福建省廈門市第一中學高一(上)適應性訓練物理試卷(10月)(含答案)
- 《零售學第二版教學》課件
- 廣東省珠海市香洲區(qū)2023-2024學年四年級下學期期末數學試卷
- 房地產行業(yè)職業(yè)生涯規(guī)劃
- 江蘇省建筑與裝飾工程計價定額(2014)電子表格版
- MOOC 數字電路與系統-大連理工大學 中國大學慕課答案
評論
0/150
提交評論