C語(yǔ)言程序設(shè)計(jì) 教案 10-1 文件的概念 - 副本_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì) 教案 10-1 文件的概念 - 副本_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì) 教案 10-1 文件的概念 - 副本_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì) 教案 10-1 文件的概念 - 副本_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì) 教案 10-1 文件的概念 - 副本_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《C語(yǔ)言程序設(shè)計(jì)》教案課程名稱C語(yǔ)言程序設(shè)計(jì)任課教師總課時(shí)64教學(xué)課題文件的概念授課班級(jí)授課日期課時(shí)2教學(xué)目標(biāo)知識(shí)目標(biāo):1.掌握文件的定義2.掌握文件的打開(kāi)與關(guān)閉能力目標(biāo):能夠熟練掌握文件的基本操作素質(zhì)目標(biāo):團(tuán)隊(duì)合作能力、團(tuán)隊(duì)互助,自我學(xué)習(xí)的習(xí)慣重點(diǎn)難點(diǎn)文件的定義與基本操作教學(xué)方法演示、講解、啟發(fā)教學(xué)資源教材《C語(yǔ)言程序設(shè)計(jì)》設(shè)備準(zhǔn)備VC++6.0,極域電子教室軟件,分發(fā)工作任務(wù)單教學(xué)環(huán)節(jié)(教學(xué)過(guò)程)教學(xué)內(nèi)容教師活動(dòng)學(xué)生活動(dòng)教學(xué)目標(biāo)課時(shí)1演示項(xiàng)目效果通過(guò)教室軟件演示程序執(zhí)行結(jié)果傾聽(tīng)、觀看、思考、陳述給學(xué)生演示任務(wù)結(jié)果10分鐘2理論講解講授文件的定義、打開(kāi)和關(guān)閉講授預(yù)備需要的理論知識(shí)15分鐘3舉例通過(guò)一個(gè)案例進(jìn)一步講解文件的定義、打開(kāi)和關(guān)閉講授、演示通過(guò)實(shí)際應(yīng)用幫助學(xué)生理解理論知識(shí)20分鐘4應(yīng)用布置兩個(gè)相關(guān)題目輔導(dǎo)、答疑通過(guò)做相關(guān)練習(xí)題幫助學(xué)生更好的理解相關(guān)知識(shí)45分鐘教學(xué)內(nèi)容(詳細(xì)):文件概述所謂文件,一般指存儲(chǔ)在計(jì)算機(jī)外部介質(zhì)上的一組相關(guān)數(shù)據(jù)的集合。在現(xiàn)代計(jì)算機(jī)的應(yīng)用領(lǐng)域中,數(shù)據(jù)處理是個(gè)重要方面,要實(shí)現(xiàn)數(shù)據(jù)處理,往往是要通過(guò)文件的形式來(lái)完成。本項(xiàng)目介紹如何將數(shù)據(jù)寫(xiě)入文件和從文件中讀出。1.文件的概念文件是指存儲(chǔ)在外部介質(zhì)上的數(shù)據(jù)集合,為標(biāo)識(shí)一個(gè)文件,每個(gè)文件都必須有一個(gè)文件名,文件名的一般形式為:文件名.[擴(kuò)展名],其中擴(kuò)展名是可選的,并按類別命名,例如,C語(yǔ)言源程序的擴(kuò)展名是C,而可執(zhí)行文件的擴(kuò)展名是EXE等等。2.文件類型(1)按文件的邏輯結(jié)構(gòu)分1)記錄文件:由具有一定結(jié)構(gòu)的記錄組成(定長(zhǎng)和不定長(zhǎng))。2)流式文件:由一個(gè)個(gè)字符(字節(jié))數(shù)據(jù)順序組成。(2)按存儲(chǔ)介質(zhì)1)普通文件:存儲(chǔ)介質(zhì)(磁盤(pán)、磁帶等)文件。2)設(shè)備文件:非存儲(chǔ)介質(zhì)(鍵盤(pán)、顯示器、打印機(jī)等)文件。(3)按數(shù)據(jù)的組織形式分1)文本文件:也稱ASCII碼文件。這種文件在保存時(shí),每個(gè)字符對(duì)應(yīng)一個(gè)字節(jié),用于存儲(chǔ)對(duì)應(yīng)的ASCII碼。2)二進(jìn)制文件:不是保存ASCII碼,而是按二進(jìn)制的編碼方式來(lái)保存文件內(nèi)容。例如:短整型數(shù)100,由1、0、0三個(gè)字符組成,它們的ASCII碼分別為49、48、48,所以在文本文件中存儲(chǔ)的是49、48、48三個(gè)數(shù),需要3個(gè)字節(jié)。在二進(jìn)制文件中直接存放的是100,只要占2個(gè)字節(jié)就行了。如圖10-1所示。ASCII文件ASCII文件100二進(jìn)制文件00000000011001000011000100110000011001000000000000110000圖10-1短整型數(shù)100的存儲(chǔ)形式示意3.文件的用途1)使程序與數(shù)據(jù)分離,數(shù)據(jù)文件的改動(dòng)不會(huì)引起程序的改動(dòng)。2)使數(shù)據(jù)共享,不同程序可以訪問(wèn)同一數(shù)據(jù)文件中的數(shù)據(jù)。3)程序運(yùn)行的中間數(shù)據(jù)或者結(jié)果數(shù)據(jù)可以長(zhǎng)期保存。4.文件的處理方式1)緩沖文件系統(tǒng):又稱為標(biāo)準(zhǔn)文件系統(tǒng)或高級(jí)文件系統(tǒng),是目前常用的文件系統(tǒng),也是ANSIC建議使用的文件系統(tǒng)。系統(tǒng)自動(dòng)為正在使用的文件開(kāi)辟內(nèi)存緩沖區(qū)??蓽p少主機(jī)和外部設(shè)備頻繁交換數(shù)據(jù)的次數(shù),緩沖文件系統(tǒng)的輸入輸出如圖所示。2)非緩沖文件系統(tǒng)又稱為低級(jí)文件系統(tǒng),它提供的文件輸入輸出操作函數(shù)更接近于操作系統(tǒng),它不能自動(dòng)設(shè)置緩沖區(qū),而是由用戶根據(jù)所處理的數(shù)據(jù)大小在程序中設(shè)置,其輸入輸出示意圖如圖所示。因此,非緩沖文件系統(tǒng)的操作與機(jī)器本身有關(guān),使用起來(lái)較為困難,但它節(jié)省內(nèi)存,執(zhí)行效率較高。5.文件的定義一般情況下,要使用一個(gè)文件,系統(tǒng)將在內(nèi)存中為這一文件開(kāi)辟一個(gè)“文件信息區(qū)”,用來(lái)存放文件的有關(guān)信息,如文件當(dāng)前的讀寫(xiě)位置、緩沖區(qū)中未被處理的字符數(shù)、文件操作方式、下一個(gè)字符的位置、文件緩沖區(qū)的位置等。這些信息保存在一個(gè)結(jié)構(gòu)體中,該結(jié)構(gòu)體由系統(tǒng)定義的,定義在stdio.h的頭文件中。VisualC++6.0系統(tǒng)中具體定義形式為:struct_iobuf{char*_ptr;/*文件輸入的下一個(gè)位置*/int_cnt;/*當(dāng)前緩沖區(qū)的相對(duì)位置*/char*_base;/*數(shù)據(jù)緩沖區(qū)的位置*/int_flag;/*文件狀態(tài)標(biāo)志*/int_file;/*用于有效性檢驗(yàn)*/int_charbuf;/*如無(wú)緩沖區(qū)不讀取字符*/int_bufsiz;/*緩沖區(qū)的大小*/char*_tmpfname;/*臨時(shí)文件名*/};typedefstruct_iobufFILE;C語(yǔ)言對(duì)文件的操作并不是直接通過(guò)文件名進(jìn)行的,而是根據(jù)文件名生成一個(gè)指向FILE結(jié)構(gòu)類型的指針。也就是首先定義一個(gè)FILE的指針,例如:FILE*fp;通過(guò)fp使用結(jié)構(gòu)體變量中的文件信息訪問(wèn)文件。也就是說(shuō),C程序中是通過(guò)文件指針變量fp找到與它相關(guān)的文件的,通過(guò)該指針對(duì)文件進(jìn)行操作。6.文件的打開(kāi)和關(guān)閉文件的讀寫(xiě)操作之前,必須先打開(kāi)文件;使用結(jié)束后,為了避免數(shù)據(jù)丟失,應(yīng)立即關(guān)閉文件。即文件的使用步驟一般為:首先打開(kāi)文件,然后進(jìn)行文件的讀寫(xiě)操作,最后關(guān)閉文件。文件的打開(kāi)和關(guān)閉都是通過(guò)函數(shù)來(lái)實(shí)現(xiàn)的。(1)文件的打開(kāi)C語(yǔ)言中,使用fopen()函數(shù)來(lái)打開(kāi)文件。格式:FILE*fp;fp=fopen("文件名","操作方式");功能:以指定的操作方式打開(kāi)一個(gè)文件。若文件正常打開(kāi),返回指向文件結(jié)構(gòu)體的指針;否則打開(kāi)失敗,返回NULL。操作方式含義文件不存在時(shí)文件存在時(shí)r只讀(文本文件)出錯(cuò)正常打開(kāi)w只寫(xiě)(文本文件)建立新文件文件原有內(nèi)容丟失a添加(文本文件)建立新文件在文件原有內(nèi)容末尾追加rb只讀(二進(jìn)制文件)出錯(cuò)正常打開(kāi)wb只寫(xiě)(二進(jìn)制文件)建立新文件文件原有內(nèi)容丟失ab添加(二進(jìn)制文件)建立新文件在文件原有內(nèi)容末尾追加r+讀/寫(xiě)(文本文件)出錯(cuò)正常打開(kāi)w+寫(xiě)/讀(文本文件)建立新文件文件原有內(nèi)容丟失a+讀/添加(文本文件)建立新文件在文件原有內(nèi)容末尾追加rb+讀/寫(xiě)(二進(jìn)制文件)出錯(cuò)正常打開(kāi)wb+寫(xiě)/讀(二進(jìn)制文件)建立新文件文件原有內(nèi)容丟失ab+讀/添加(二進(jìn)制文件)建立新文件在文件原有內(nèi)容末尾追加例如:FILE*fp;fp=fopen("test.txt","r");上面代碼表示以讀方式打開(kāi)當(dāng)前目錄下文件名為“text.txt”的文本文件。程序中一般會(huì)考慮作容錯(cuò)處理,常用的方法如下:if((fp=fopen("文件名","操作方式"))==NULL){printf("打開(kāi)文件失?。?);exit(0);/*結(jié)束程序運(yùn)行*/}(2)文件的關(guān)閉使用完一個(gè)文件后,應(yīng)使用fclose()函數(shù)及時(shí)關(guān)閉。fclose()函數(shù)和fopen()函數(shù)一樣,原型也在stdio.h中,調(diào)用的一般形式為:fclose(文件指針);例如:fcl

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論