版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)1:
程序設(shè)計(jì)的基本目標(biāo)與準(zhǔn)則課題介紹課堂實(shí)驗(yàn)課后作業(yè)課題介紹
參考書目:C++程序設(shè)計(jì)實(shí)驗(yàn)教程
高等教育出版社李師賢主編程序設(shè)計(jì)的基本目標(biāo)與準(zhǔn)則程序的正確性程序的健壯性程序的可靠性程序可理解性程序的有效性程序可維護(hù)性程序可重用性程序正確性
1.了解程序正確性的概念什么是程序正確性?一個(gè)程序是否正確地實(shí)現(xiàn)了預(yù)定的目標(biāo)預(yù)定的目標(biāo)是什么?明確“做什么”程序規(guī)范,分成兩個(gè)部分要完成這個(gè)任務(wù)必須滿足的前提初始斷言(條件)完成此項(xiàng)任務(wù)的結(jié)果必須具備的性質(zhì)結(jié)果斷言(條件)如何保證其正確性?程序健壯性
1.了解程序健壯性的概念
2.初步掌握提高程序健壯性的設(shè)計(jì)方法什么是程序健壯性?決定一個(gè)程序在異常輸入下能否正常工作IEEE定義:系統(tǒng)或組件在接收不合法的輸入或在異常環(huán)境下正常運(yùn)轉(zhuǎn)的程度。健壯性和正確性的區(qū)別正確性用來描述程序在正常外界環(huán)境下的行為特征健壯性用來描述程序在異常外界環(huán)境下的行為特征,體現(xiàn)了程序的容錯(cuò)能力和故障回復(fù)能力引起程序錯(cuò)誤的原因可能來自程序內(nèi)部,也可能來自程序的外部;程序健壯性取決于程序本身的設(shè)計(jì)程序設(shè)計(jì)中可通過一些方法提高程序的健壯性檢查輸入數(shù)據(jù)的合法性模塊相互調(diào)用時(shí)檢查參數(shù)的合法性利用信息隱藏把模塊內(nèi)的實(shí)現(xiàn)細(xì)節(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);}運(yùn)行該程序,發(fā)現(xiàn)了什么問題?例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
//給定正整數(shù)n,求其平方值不超過n的最大正整數(shù)#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.了解程序可靠性的概念什么是程序可靠性?在給定的時(shí)段內(nèi),在一個(gè)給定的環(huán)境下,一個(gè)給定的程序無故障運(yùn)行的概率??煽啃缘?個(gè)要素失效(未達(dá)到所期望的目標(biāo))時(shí)間運(yùn)行環(huán)境決定因素程序設(shè)計(jì)過程是主要因素重要特征設(shè)計(jì)可見性設(shè)計(jì)單元之間的耦合程度程序可理解性
1.了解程序可理解性的概念
2.初步掌握可理解性好的程序的表達(dá)方式一個(gè)程序必須直接反映問題的本來面目,其邏輯應(yīng)該清晰、結(jié)構(gòu)應(yīng)該簡(jiǎn)單、編排應(yīng)該合理、注釋應(yīng)該簡(jiǎn)明。比較下列5個(gè)程序的可理解性例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.了解程序有效性的目標(biāo)如意義
2.初步了解如何分析程序時(shí)間復(fù)雜度和空間要求一個(gè)程序以最佳方式使用可用資源運(yùn)行資源:時(shí)間空間通訊帶寬算法和數(shù)據(jù)結(jié)構(gòu)比較下列兩個(gè)程序例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);}程序可維護(hù)性
1.了解程序可維護(hù)性
2.初步了解提高程序可維護(hù)性的主要方法可維護(hù)性是指一個(gè)程序產(chǎn)品正式交付使用后對(duì)其進(jìn)行修改的難易程度代碼的可理解性、可靠性和可擴(kuò)展性直接影響程序的維護(hù)量。程序的可維護(hù)性還和相關(guān)文檔的完善程度有關(guān)代碼注釋是程序文檔化的一種表現(xiàn)例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
增加了適當(dāng)?shù)淖⑨?include<stdio.h>voidmain(){
int
x,y;
//輸入兩個(gè)整數(shù)
printf("Entertwonumbers:\n");
scanf("%d%d",&x,&y);//輸出交換前的數(shù)據(jù)
printf("Thenumbersbeforeswap:%d%d\n",x,y);
//以下3條語句可以實(shí)現(xiàn)x和y的交換
x
=
x
+
y; y
=
x
-
y; x
=
x
-
y;//輸出交換后的數(shù)據(jù)
printf("Thenumbersafterswap:%d%d\n",x,y);}程序可重用性
1.了解程序重用的主要思想
2.初步掌握程序重用的實(shí)現(xiàn)技術(shù)程序可重用性是現(xiàn)代程序設(shè)計(jì)所追求的一個(gè)重要目標(biāo)。重用可以提高編碼的質(zhì)量和生產(chǎn)率通常把可以重用的程序部件稱為構(gòu)件,有不同的定義構(gòu)件是一個(gè)具有規(guī)范接口和明確上下文依賴的組裝單元,可以獨(dú)立部署和被第三方組裝。構(gòu)件是可以單獨(dú)生產(chǎn)、獲取和部署的二進(jìn)制單元,它們之間可以相互作用構(gòu)成一個(gè)功能系統(tǒng)掌握兩個(gè)不同的過程設(shè)計(jì)與實(shí)現(xiàn)可重用構(gòu)件的過程使用可重用構(gòu)件進(jìn)行程序設(shè)計(jì)的過程要點(diǎn)建立重用的意識(shí)在設(shè)計(jì)程序解決某一問題時(shí),考慮部分模塊設(shè)計(jì)與實(shí)現(xiàn)為可重用的構(gòu)件重用現(xiàn)有的構(gòu)件來達(dá)到預(yù)期的目標(biāo)要考慮的問題如何構(gòu)造重用性良好的構(gòu)件如何在技術(shù)上能夠方便地獲得和使用已有構(gòu)件如何確定構(gòu)件的生產(chǎn)成本和重用成本例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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度面包磚生產(chǎn)線技術(shù)改造升級(jí)合同4篇
- 二零二五年度屋頂花園人工草皮養(yǎng)護(hù)合同3篇
- 2025個(gè)人股權(quán)轉(zhuǎn)讓與環(huán)保責(zé)任承擔(dān)協(xié)議:綠色企業(yè)股權(quán)合作合同4篇
- 二零二五年度企業(yè)應(yīng)收賬款保理服務(wù)合同
- 二零二五年度城市道路橋梁改造工程承包合同4篇
- 二零二五年度農(nóng)業(yè)投資項(xiàng)目融資合同范本
- 課題申報(bào)參考:南越王墓出土鳳圖像研究
- 課題申報(bào)參考:梅蘭芳戲曲教育思想研究
- 二零二五年度民政協(xié)議離婚案件調(diào)解與法院速裁離婚案件審理合同
- 二零二五版煤炭電商平臺(tái)合作開發(fā)合同4篇
- 二零二五版電力設(shè)施維修保養(yǎng)合同協(xié)議3篇
- 2025年度版權(quán)授權(quán)協(xié)議:游戲角色形象設(shè)計(jì)與授權(quán)使用3篇
- 公務(wù)攝影拍攝技巧分享
- 倉儲(chǔ)中心退貨管理制度
- 豐田鋒蘭達(dá)說明書
- 典范英語8-15Here comes trouble原文翻譯
- 六安市葉集化工園區(qū)污水處理廠及配套管網(wǎng)一期工程環(huán)境影響報(bào)告書
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制課件第一章運(yùn)動(dòng)技能學(xué)習(xí)與控制概述
- 清華大學(xué)考生自述
- 人機(jī)工程學(xué)與眼鏡
- 中層后備干部培訓(xùn)心得體會(huì)范本
評(píng)論
0/150
提交評(píng)論