![C語言程序設(shè)計(jì)課件第12章 建構(gòu)法程序設(shè)計(jì)_第1頁](http://file4.renrendoc.com/view11/M00/29/11/wKhkGWWJY2aAGtIRAAElZ_qoduU023.jpg)
![C語言程序設(shè)計(jì)課件第12章 建構(gòu)法程序設(shè)計(jì)_第2頁](http://file4.renrendoc.com/view11/M00/29/11/wKhkGWWJY2aAGtIRAAElZ_qoduU0232.jpg)
![C語言程序設(shè)計(jì)課件第12章 建構(gòu)法程序設(shè)計(jì)_第3頁](http://file4.renrendoc.com/view11/M00/29/11/wKhkGWWJY2aAGtIRAAElZ_qoduU0233.jpg)
![C語言程序設(shè)計(jì)課件第12章 建構(gòu)法程序設(shè)計(jì)_第4頁](http://file4.renrendoc.com/view11/M00/29/11/wKhkGWWJY2aAGtIRAAElZ_qoduU0234.jpg)
![C語言程序設(shè)計(jì)課件第12章 建構(gòu)法程序設(shè)計(jì)_第5頁](http://file4.renrendoc.com/view11/M00/29/11/wKhkGWWJY2aAGtIRAAElZ_qoduU0235.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第12章建構(gòu)法程序設(shè)計(jì)本章主要內(nèi)容:12.1一個(gè)簡(jiǎn)單的C語言程序12.2一個(gè)復(fù)雜的C語言程序(重點(diǎn))本章教學(xué)要求:了解建構(gòu)法程序設(shè)計(jì)的概念熟悉建構(gòu)法程序設(shè)計(jì)的方法12.1一個(gè)簡(jiǎn)單的C語言程序建構(gòu)法程序設(shè)計(jì):就是從簡(jiǎn)單的一個(gè)C語言程序開始,不斷分析其存在的問題,并不斷地去解決它,完善它,直到一個(gè)比較理想的程序?yàn)橹埂?/p>
12.1.1已知半徑求圓的面積1.初始程序這個(gè)程序算法很簡(jiǎn)單,需要輸入的是半徑,需要輸出的是圓面積,計(jì)算的公式是s=3.14*r*r,程序需要設(shè)計(jì)兩個(gè)實(shí)型變量r、s分別存儲(chǔ)半徑和面積。源程序【1】:第12章建構(gòu)法程序設(shè)計(jì)12.1一個(gè)簡(jiǎn)單的C語言程序1.初始程序分析:在這個(gè)程序中,如果給出的半徑都是不小于0的實(shí)數(shù),程序肯定可以給出該圓的面積,并保留2位小數(shù);但是,當(dāng)輸入的半徑是小于0的實(shí)數(shù)時(shí),程序應(yīng)該給出輸入的半徑越界的提示,而程序仍然給出了一個(gè)圓面積值。這樣的程序稱為具有正確性,卻不具有健壯性。說明:程序的正確性是指輸入正確的數(shù)據(jù),給出正確的結(jié)果。程序的健壯性是指程序?qū)﹀e(cuò)誤的數(shù)據(jù)有相應(yīng)的處理。如何修改程序?第12章建構(gòu)法程序設(shè)計(jì)12.1一個(gè)簡(jiǎn)單的C語言程序2.改進(jìn)程序在輸入半徑以后對(duì)輸入半徑范圍內(nèi)的數(shù)據(jù),按圓面積計(jì)算,并輸出圓面積;對(duì)半徑范圍外的數(shù)據(jù),給出越界提示。程序改進(jìn)為源程序【2】如下:說明:程序中帶下劃線的部分是在源程序【1】的基礎(chǔ)上新增加的代碼。當(dāng)輸入半徑小于0時(shí),程序的運(yùn)行結(jié)果:請(qǐng)輸入半徑:-3↙輸入半徑越界!請(qǐng)輸入不小于0的實(shí)數(shù)!第12章建構(gòu)法程序設(shè)計(jì)12.1一個(gè)簡(jiǎn)單的C語言程序12.1.2求5個(gè)圓的面積。上面的程序運(yùn)行一次只能計(jì)算一個(gè)圓的面積,如果程序運(yùn)行一次可以計(jì)算5個(gè)圓的面積,如何修改程序呢?1.初始程序1是否在程序的運(yùn)行部分外面加一個(gè)循環(huán)控制就可以呢?程序需要設(shè)計(jì)一個(gè)循環(huán)控制變量i,完成循環(huán)5次的控制。源程序【3】:第12章建構(gòu)法程序設(shè)計(jì)12.1一個(gè)簡(jiǎn)單的C語言程序2.初始程序2初始程序1是程序運(yùn)行后,必須輸入5個(gè)數(shù)據(jù)才能結(jié)束。能否使程序變得通用一些,在程序運(yùn)行時(shí)輸入要循環(huán)的次數(shù),也就是處理數(shù)據(jù)的個(gè)數(shù),再按照這個(gè)給定的次數(shù),控制循環(huán)。程序改進(jìn)為源程序【4】如下:分析:程序運(yùn)行時(shí),如果我們給出的半徑都是不小于0的實(shí)數(shù),程序可以計(jì)算給定個(gè)數(shù)的圓的面積;但是,當(dāng)我們輸入的半徑有小于0的數(shù)時(shí),程序給出輸入半徑越界的提示,但是并沒有讓重新輸入,這樣就少計(jì)算了一個(gè)圓面積。如何改進(jìn)程序?第12章建構(gòu)法程序設(shè)計(jì)12.1一個(gè)簡(jiǎn)單的C語言程序3.改進(jìn)程序分析:在初始程序1上修改程序:當(dāng)輸入半徑范圍外的數(shù)據(jù)時(shí),除給出越界提示外,還要允許重新輸入半徑,直到輸入半徑范圍內(nèi)的數(shù)為止。程序改進(jìn)為:思考:(1)當(dāng)r小于0時(shí),為什么i--?(2)請(qǐng)?jiān)诔跏汲绦?(源程序【4】)上按照改進(jìn)要求修改程序。第12章建構(gòu)法程序設(shè)計(jì)12.1一個(gè)簡(jiǎn)單的C語言程序12.1.3求n個(gè)圓的面積。上面的程序可以處理多個(gè)圓面積,但是這多個(gè)圓的信息沒有保存,如何讓這些圓的信息保存下來呢?當(dāng)反復(fù)使用一組類型相同的數(shù)據(jù)時(shí),可以考慮用數(shù)組存儲(chǔ)。如何修改程序呢?1.初始程序要想保存圓的信息(主要是半徑),就要用數(shù)組來存儲(chǔ)它們。比如保留5個(gè)圓的半徑,要設(shè)置一個(gè)至少有5個(gè)元素的一維數(shù)組存儲(chǔ)圓的半徑。程序改進(jìn)為源程序【6】:第12章建構(gòu)法程序設(shè)計(jì)12.1一個(gè)簡(jiǎn)單的C語言程序1.初始程序說明:第1個(gè)圓半徑保存在a[0]中,第2個(gè)圓半徑保存在a[1]中,第3個(gè)圓半徑保存在a[2]中,第4個(gè)圓半徑保存在a[3]中,第5個(gè)圓半徑保存在a[4]中。2.改進(jìn)程序1源程序【6】只是把半徑保存下來了,如果想把半徑和面積再對(duì)應(yīng)輸出一遍,如何修改程序呢?源程序【7】如下:第12章建構(gòu)法程序設(shè)計(jì)12.1一個(gè)簡(jiǎn)單的C語言程序2.改進(jìn)程序1說明:對(duì)于域?qū)捒刂疲喊霃秸?列,面積占10列,采用右對(duì)齊。一行輸出一個(gè)半徑和對(duì)應(yīng)的面積。思考:如果每次輸入半徑后,不計(jì)算不輸出圓面積,而在最后一起輸出半徑和圓面積,如何修改程序?第12章建構(gòu)法程序設(shè)計(jì)12.1一個(gè)簡(jiǎn)單的C語言程序3.改進(jìn)程序2在源程序【7】的基礎(chǔ)上,還可以按照半徑的升序輸出半徑和面積。也就是在輸出前先對(duì)輸入的半徑排序,再輸出。程序改進(jìn)為:思考:(1)如果按降序?qū)Π霃脚判?,如何修改程序??)如果在輸出信息中,還想知道是第幾次輸入的半徑,如何修改程序?第12章建構(gòu)法程序設(shè)計(jì)12.2一個(gè)復(fù)雜的C語言程序在設(shè)計(jì)程序時(shí),當(dāng)某一程序段相對(duì)獨(dú)立,具有完整的功能時(shí),可以把這段代碼寫成函數(shù),在使用時(shí)隨時(shí)調(diào)用;當(dāng)這組數(shù)據(jù),在下一次程序運(yùn)行時(shí)還要使用,可以先用文件保存起來,需要時(shí)再讀取。12.2.1把接受n個(gè)半徑寫成函數(shù)1.初始程序在源程序【8】的基礎(chǔ)上把接受5個(gè)半徑寫成函數(shù),在主函數(shù)中對(duì)它調(diào)用完成所需要的功能。源程序【9】如下:第12章建構(gòu)法程序設(shè)計(jì)12.2一個(gè)復(fù)雜的C語言程序說明:把輸入半徑寫成一個(gè)函數(shù),在主函數(shù)中需要的時(shí)候調(diào)用它,這樣可以使主函數(shù)的結(jié)構(gòu)變得簡(jiǎn)單。劃線部分為調(diào)用語句。能否把對(duì)半徑的排序,5個(gè)半徑和面積的輸出也寫成函數(shù)呢?2.改進(jìn)程序把5個(gè)半徑的排序?qū)懗梢粋€(gè)排序函數(shù)sort(),把5個(gè)半徑和面積的輸出寫成輸出函數(shù)output(),程序改進(jìn)為:源程序【10】如下:第12章建構(gòu)法程序設(shè)計(jì)12.2一個(gè)復(fù)雜的C語言程序說明:從這個(gè)程序中可以看出,程序的主要功能以函數(shù)的形式出現(xiàn)后,這個(gè)功能就變成了一個(gè)通用的功能,就是對(duì)n個(gè)數(shù)據(jù)的處理了。在主函數(shù)中,隨時(shí)可以改為對(duì)10個(gè)數(shù),20個(gè)數(shù)的處理。思考:(1)把主函數(shù)改為對(duì)20個(gè)半徑的處理。(2)把程序的主要功能寫成函數(shù),程序結(jié)構(gòu)是簡(jiǎn)單了,把大問題劃分成了小問題,程序也更加通用了。但事物都是一分為二的,請(qǐng)大家分析,使用函數(shù)后程序付出的代價(jià)是什么?第12章建構(gòu)法程序設(shè)計(jì)12.2一個(gè)復(fù)雜的C語言程序12.2.2把接受的n個(gè)半徑保存成文件1.初始程序引入數(shù)組后,雖然可以反復(fù)使用半徑。但是,一旦關(guān)閉程序,再次運(yùn)行時(shí),半徑數(shù)據(jù)就都不存在了。原因就是這些半徑?jīng)]有以文件的形式存儲(chǔ)在外存上。下面寫一個(gè)函數(shù),把數(shù)組r的數(shù)據(jù)以文件的形式存放在外存上。在源程序【10】的主函數(shù)前增加writefile(floata[],intn)函數(shù),主函數(shù)改為:第12章建構(gòu)法程序設(shè)計(jì)12.2一個(gè)復(fù)雜的C語言程序2.改進(jìn)程序1能否寫一個(gè)函數(shù),把存入外存的文件讀過來,然后排序輸出。在上述程序中再增加一個(gè)讀文件函數(shù)readfile()。主函數(shù)改為:第12章建構(gòu)法程序設(shè)計(jì)12.2一個(gè)復(fù)雜的C語言程序3.改進(jìn)程序2能否把主函數(shù)完成的主要功能以功能菜單的形式提供給用戶,用戶根據(jù)需要有選擇地執(zhí)行這些功能。根據(jù)上面的修改要求,我們編寫了下列程序,請(qǐng)調(diào)試。第12章建構(gòu)法程序設(shè)計(jì)12.2一個(gè)復(fù)雜的C語言程序思考:(1)在output()函數(shù)中,加入字符型變量yn的作用是什么?函數(shù)最后一行代碼中g(shù)etch()的作用?(2)在寫文件函數(shù)中,把n個(gè)半徑數(shù)組保存到d盤根目錄上,文件名為filer.txt是固定的。能否把文件名作為參數(shù)傳給寫文件函數(shù),使保存數(shù)據(jù)的文件名根據(jù)需要而改變。(3)在主函數(shù)中,當(dāng)選擇0退出程序時(shí)執(zhí)行的代碼scanf("\n%c",&yn);的格式控制符中增加了
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023三年級(jí)英語上冊(cè) Module 1 Getting to know you Unit 3 Are you Kitty說課稿 牛津滬教版(三起)
- 21《古詩三首》說課稿-2024-2025學(xué)年語文四年級(jí)上冊(cè)統(tǒng)編版001
- 6《摸一摸》說課稿-2024-2025學(xué)年科學(xué)一年級(jí)上冊(cè)青島版
- 2024-2025學(xué)年高中生物 第3章 植物的激素調(diào)節(jié) 第1節(jié) 植物生長(zhǎng)素的發(fā)現(xiàn)說課稿 新人教版必修3001
- 2024年五年級(jí)英語下冊(cè) Module 7 Unit 2 I will be home at seven oclock說課稿 外研版(三起)
- 2025住宅裝修物業(yè)管理合同(合同范本)
- 8《池子與河流》(說課稿)-2023-2024學(xué)年統(tǒng)編版語文三年級(jí)下冊(cè)
- 2025鍋爐拆除安全施工合同
- 2025有關(guān)電梯廣告的合同范本
- Unit 6 Disaster and Hope Understanding ideas 說課稿-2023-2024學(xué)年外研版高中英語(2019)必修第三冊(cè)
- 職業(yè)衛(wèi)生培訓(xùn)課件
- 柴油墊資合同模板
- GB/T 44489-2024高級(jí)輔助駕駛地圖審查要求
- 2024-2030年中國體外除顫器行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 2024-2030年中國人力資源行業(yè)市場(chǎng)發(fā)展前瞻及投資戰(zhàn)略研究報(bào)告
- 2024-2030年中國樺樹汁行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 全冊(cè)(教案)外研版(一起)英語四年級(jí)下冊(cè)
- 偏差行為、卓越一生3.0版
- 國網(wǎng)浙江電科院:2024浙江工商業(yè)儲(chǔ)能政策及收益分析報(bào)告
- 中國兒童幽門螺桿菌感染診治專家共識(shí)2022
- JJG 4-2015鋼卷尺行業(yè)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論