版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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ū)別正確性用來(lái)描述程序在正常外界環(huán)境下的行為特征健壯性用來(lái)描述程序在異常外界環(huán)境下的行為特征,體現(xiàn)了程序的容錯(cuò)能力和故障回復(fù)能力引起程序錯(cuò)誤的原因可能來(lái)自程序內(nèi)部,也可能來(lái)自程序的外部;程序健壯性取決于程序本身的設(shè)計(jì)程序設(shè)計(jì)中可通過(guò)一些方法提高程序的健壯性檢查輸入數(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)了什么問(wè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,求其平方值不超過(guò)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è)給定的程序無(wú)故障運(yùn)行的概率??煽啃缘?個(gè)要素失效(未達(dá)到所期望的目標(biāo))時(shí)間運(yùn)行環(huán)境決定因素程序設(shè)計(jì)過(guò)程是主要因素重要特征設(shè)計(jì)可見性設(shè)計(jì)單元之間的耦合程度程序可理解性
1.了解程序可理解性的概念
2.初步掌握可理解性好的程序的表達(dá)方式一個(gè)程序必須直接反映問(wèn)題的本來(lái)面目,其邏輯應(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條語(yǔ)句可以實(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è)不同的過(guò)程設(shè)計(jì)與實(shí)現(xiàn)可重用構(gòu)件的過(guò)程使用可重用構(gòu)件進(jìn)行程序設(shè)計(jì)的過(guò)程要點(diǎn)建立重用的意識(shí)在設(shè)計(jì)程序解決某一問(wèn)題時(shí),考慮部分模塊設(shè)計(jì)與實(shí)現(xiàn)為可重用的構(gòu)件重用現(xiàn)有的構(gòu)件來(lái)達(dá)到預(yù)期的目標(biāo)要考慮的問(wèn)題如何構(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 核心素養(yǎng)導(dǎo)向教學(xué)
- 《GB-T 28200-2011鋼制儲(chǔ)物柜(架)技術(shù)要求及試驗(yàn)方法》專題研究報(bào)告
- GBT 19290.7-2021發(fā)展中的電子設(shè)備構(gòu)體機(jī)械結(jié)構(gòu)模數(shù)序列 第2-5部分:分規(guī)范 25 mm設(shè)備構(gòu)體的接口協(xié)調(diào)尺寸 各種設(shè)備用機(jī)柜接口尺寸專題研究報(bào)告
- 《寵物鑒賞》課件-寵物鳥的簡(jiǎn)介
- 2026年安徽省馬鞍山市單招職業(yè)傾向性測(cè)試題庫(kù)及參考答案詳解一套
- 心血管留圖資料
- 云數(shù)據(jù)庫(kù)運(yùn)維服務(wù)合同
- 智能電表調(diào)試技師(初級(jí))考試試卷及答案
- 種子包裝設(shè)計(jì)行業(yè)種子包裝設(shè)計(jì)師(蔬菜)崗位招聘考試試卷及答案
- (2025)全國(guó)勞動(dòng)保障知識(shí)競(jìng)賽題庫(kù)與參考答案
- 2025年煙花爆竹經(jīng)營(yíng)單位安全管理人員考試試題及答案
- 2025天津大學(xué)管理崗位集中招聘15人參考筆試試題及答案解析
- 2025廣東廣州黃埔區(qū)第二次招聘社區(qū)專職工作人員50人考試筆試備考題庫(kù)及答案解析
- 2025年云南省人民檢察院聘用制書記員招聘(22人)考試筆試參考題庫(kù)及答案解析
- 旋挖鉆機(jī)地基承載力驗(yàn)算2017.7
- xx鄉(xiāng)鎮(zhèn)衛(wèi)生院重癥精神病管理流程圖
- 2023年印江縣人民醫(yī)院緊缺醫(yī)學(xué)專業(yè)人才招聘考試歷年高頻考點(diǎn)試題含答案解析
- 安徽綠沃循環(huán)能源科技有限公司12000t-a鋰離子電池高值資源化回收利用項(xiàng)目(重新報(bào)批)環(huán)境影響報(bào)告書
- 《汽車電器故障問(wèn)題研究4600字(論文)》
- 公路工程標(biāo)準(zhǔn)施工招標(biāo)文件第八章-工程量清單計(jì)量規(guī)則(2018年版最終稿)
- DB44-T 2197-2019配電房運(yùn)維服務(wù)規(guī)范-(高清現(xiàn)行)
評(píng)論
0/150
提交評(píng)論