c語言電子教案_第1頁
c語言電子教案_第2頁
c語言電子教案_第3頁
c語言電子教案_第4頁
c語言電子教案_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《程序設(shè)計(jì)基礎(chǔ)》教案

第一章程序設(shè)計(jì)和C語言課題C語言概述教案號(hào) 1教學(xué)目的1、了解C語言出現(xiàn)的歷史背景2、掌握C語言程序的結(jié)構(gòu)、書寫格式和上機(jī)步驟教材分析教學(xué)重點(diǎn)C語言程序的結(jié)構(gòu)教學(xué)難點(diǎn)上機(jī)步驟課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合 教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過程設(shè)計(jì)一新課引入從計(jì)算機(jī)應(yīng)用基礎(chǔ)中學(xué)過的計(jì)算機(jī)語言及語言處理系統(tǒng)引出C語言。二講授新課一、C語言出現(xiàn)的背景二、C語言的特點(diǎn)語言簡(jiǎn)潔、緊湊,使用方便、靈活;運(yùn)算符豐富數(shù)據(jù)類型多(整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類等)具有結(jié)構(gòu)化的控制語句語法不太嚴(yán)格,自由度大既是高級(jí)語言,又具有低級(jí)語言的功能成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率可移植性好三、C語言程序構(gòu)成(采用程序?qū)嵗右哉f明,并提倡良好的程序設(shè)計(jì)書寫風(fēng)格)C語言是由函數(shù)構(gòu)成的,至少有一個(gè)main()函數(shù);每個(gè)函數(shù)由函數(shù)首部和函數(shù)體組成;函數(shù)體由說明語句、執(zhí)行語句組成;每個(gè)C程序從main()函數(shù)開始執(zhí)行,并在main()中結(jié)束;每個(gè)語句和數(shù)據(jù)定義的最后必須加分號(hào);C程序無輸入、輸出語句:輸入功能由scanf()函數(shù)完成;輸出功能由printf()函數(shù)完成;可加注釋/*……*/四、上機(jī)步驟(上機(jī)環(huán)境:TurboC2.0).進(jìn)入環(huán)境2.編輯源程序3.保存源程序4.編譯源程序5.執(zhí)行程序,查看結(jié)果 6.退出C環(huán)境三課堂小結(jié)1、C語言的構(gòu)成要素,main函數(shù)在程序中的作用2、上機(jī)操作的過程備注安排上機(jī)實(shí)驗(yàn),熟悉TC環(huán)境及簡(jiǎn)單的C語言程序構(gòu)成頁碼 1

第二章算法——程序的靈魂

第二章算法——程序的靈魂第三章 最簡(jiǎn)單的第三章 最簡(jiǎn)單的C程序設(shè)計(jì)―-順序程序設(shè)計(jì)備注 頁碼 備注 頁碼 課題用指針處理鏈表教案號(hào)24教學(xué)目的領(lǐng)會(huì)存儲(chǔ)動(dòng)態(tài)分配和釋放,領(lǐng)會(huì)鏈表的基本概念。教材分析教學(xué)重點(diǎn)存儲(chǔ)動(dòng)態(tài)分配和釋放,鏈表的概念教學(xué)難點(diǎn)存儲(chǔ)動(dòng)態(tài)分配和釋放,鏈表的概念課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過程設(shè)計(jì)(3)C編譯程序必須給數(shù)組分配存放其全部元素的存儲(chǔ)空間,而對(duì)鏈表不必也不可能預(yù)先分配全部存儲(chǔ)空間,因?yàn)镃編譯程序元法確定鏈表中的元素的個(gè)數(shù)。2.用自引用結(jié)構(gòu)實(shí)現(xiàn)鏈表結(jié)構(gòu)需要解決三個(gè)問題(1)必須指出鏈表第一個(gè)結(jié)點(diǎn)的位置,否則無法存取該鏈表中的結(jié)點(diǎn)實(shí)現(xiàn)方法:定義一個(gè)指向該結(jié)構(gòu)對(duì)象的指針,或定義一個(gè)該結(jié)構(gòu)類型的變量,使其指向鏈表的第一個(gè)結(jié)點(diǎn)即可。如:structnode*head;(2)在建立一鏈表時(shí),如何獲得下一個(gè)新的結(jié)點(diǎn)的存放空間。實(shí)現(xiàn)方法:用C編譯系統(tǒng)提供的庫函數(shù)malloc(size)動(dòng)態(tài)分配存儲(chǔ)空間得到。除此之外,還可用calloc函數(shù)。如:structnode*p1,*p2;■■■p2=(structnode*)malloc(size(structnode));或:p2=(structnode*)calloc(1,size(structnode));if(p2==NULL)exit(0);p1—>next=p2;/*此處設(shè)p1指向新結(jié)點(diǎn)的上一結(jié)點(diǎn)*/另外:free函數(shù)可用于釋放內(nèi)存區(qū)。如:free(p);表示釋放由p指向的內(nèi)存區(qū),使這部分內(nèi)存區(qū)能被其他變量使用。(3)要明確指出鏈表的鏈尾。實(shí)現(xiàn)方法:通常把最后結(jié)點(diǎn)中的成員項(xiàng)next置為空指針NULL即可。三、簡(jiǎn)單鏈表例:建立一個(gè)如下圖所示的簡(jiǎn)單鏈表,并輸出各結(jié)點(diǎn)中的數(shù)據(jù)。99101——?99103——?9910789.5-9085第九章用戶自己建立數(shù)據(jù)類型第九章用戶自己建立數(shù)據(jù)類型課題用指針處理鏈表教案號(hào)24教學(xué)目的領(lǐng)會(huì)存儲(chǔ)動(dòng)態(tài)分配和釋放,領(lǐng)會(huì)鏈表的基本概念。教材分析教學(xué)重點(diǎn)存儲(chǔ)動(dòng)態(tài)分配和釋放,鏈表的概念教學(xué)難點(diǎn)存儲(chǔ)動(dòng)態(tài)分配和釋放,鏈表的概念課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過程設(shè)計(jì)#defineNULL0structstrudent{longnum;floatscore;structstudent*next;};main(){structstudenta,b,c,*head,*p;head=&a;a.num=99101;a.score=89.5;a.next=&b;b.num=99103;b.score=90;b.next=&c;c.num=99107;c.score=85;c.next=NULL;p=head;do{printf(“%ld%5.1f\n”,p->num,p->score);p=p->next;}while(p!=NULL);}四、鏈表的建立五、鏈表的輸出例11.9編寫一個(gè)輸出鏈表的函數(shù)print。voidprint(structstudent*head){structstudent*p;printf(“\nNow,These%drecordsare:\n”,n);p=head;if(head!=NULL)do{printf(“%ld%5.1f\n”,p->num,p->score);p=p->next;}while(p!=NULL);備注上機(jī)練習(xí)頁碼49

課題用指針處理鏈表教案號(hào)24教學(xué)目的領(lǐng)會(huì)存儲(chǔ)動(dòng)態(tài)分配和釋放,領(lǐng)會(huì)鏈表的基本概念。教材分析教學(xué)重點(diǎn)存儲(chǔ)動(dòng)態(tài)分配和釋放,鏈表的概念教學(xué)難點(diǎn)存儲(chǔ)動(dòng)態(tài)分配和釋放,鏈表的概念課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過程設(shè)計(jì)六、鏈表的刪除操作七、鏈表的插入操作例11.11寫一個(gè)函數(shù)insert插入一結(jié)點(diǎn)。分析:插入點(diǎn)可能有以下三種情況:在鏈表中間、表頭、表尾。structstudent*insert(structstudent*head,structstudent*stud){structstudent*p0,*p1,*p2;p1=head;p0=stud;if(head==NULL){head=p0;p0->next=NULL;}else{while((p0->num>p1->num)&&(p1->next!=NULL)){p2=p1;p1=p1->next;}if(p0->num<=p1->num)if(head==p1){head=p0;p0->next=p1;}else{p2->next=p0;p0->next=p1;}else{p1->next=p0;p0->next=NULL;}}return(head);}三課堂小結(jié)本課主要學(xué)習(xí)了結(jié)構(gòu)變量與指針的應(yīng)用,利用指針引用結(jié)構(gòu)成員;并介紹了鏈表的概念,作為鏈表結(jié)點(diǎn)的結(jié)構(gòu)類型,及存儲(chǔ)動(dòng)態(tài)分配與釋放的使用,靜態(tài)鏈表的建立及其他操作,同學(xué)們?cè)趯?duì)鏈表操作時(shí),應(yīng)分析可能的情況,并畫出鏈表的示意圖。本章我們只學(xué)習(xí)了單向鏈表,在后續(xù)課程中還將學(xué)習(xí)其他類型的鏈表。。四布置作業(yè)(P330)9備注上機(jī)練習(xí)頁碼50

課題共用體、枚舉類型和typedef教案號(hào)25教學(xué)目的1、掌握共用體類型的說明、共用體變量的定義、成員的引用2、領(lǐng)會(huì)枚舉類型變量的定義,了解typedef的作用教材分析教學(xué)重點(diǎn)掌握共用體類型的說明、共用體變量的定義、成員的引用教學(xué)難點(diǎn)共用體變量的賦值及所占存儲(chǔ)空間、成員的引用課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過程設(shè)計(jì)一復(fù)習(xí)引導(dǎo)結(jié)構(gòu)體變量所獲得的存儲(chǔ)空間是各成員項(xiàng)所占空間之和。二講授新課一、共用體(聯(lián)合)聯(lián)合(共同體)也是一種構(gòu)造類型的數(shù)據(jù)結(jié)構(gòu)。在一個(gè)“聯(lián)合”內(nèi)可以定義多種不同的數(shù)據(jù)類型因?yàn)橛袝r(shí)我們需要使幾種不同類型的變量放到同一內(nèi)存單兀中。允許利用同一存儲(chǔ)區(qū)域來存儲(chǔ)、處理不同類型的數(shù)據(jù)。使幾個(gè)不同的變量共占同一段內(nèi)存的結(jié)構(gòu),稱為“聯(lián)合”(共同體)類型的結(jié)構(gòu)。1、共用體的概念使幾個(gè)不同類型的變量共占同一段內(nèi)存的結(jié)構(gòu)。共用體類型的定義形式:union共用體名{ 數(shù)據(jù)類型1 變量名1;數(shù)據(jù)類型2 變量名2;■■■ ■■■數(shù)據(jù)類型n 變量名n;};例如:uniondata{inti;charch;floatf;}a,b;其中,變量a,b的成員i,ch,f共用一段空間。變量a,b的空間分別為4字節(jié)。2、共用體變量的引用共用體變量名.成員名如:a.i 或 a.f3、共用體變量的特點(diǎn)同一內(nèi)存段瞬時(shí)只能存放成員表中的一種,此時(shí)其他成員不起作用;共用體變量的地址及各成員的地址相同;即 &a、&a.i、&a.ch、&a.f均是同一地址。備注頁碼51

課題共用體、枚舉類型和typedef教案號(hào)25教學(xué)目的1、掌握共用體類型的說明、共用體變量的定義、成員的引用2、領(lǐng)會(huì)枚舉類型變量的定義,了解typedef的作用教材分析教學(xué)重點(diǎn)掌握共用體類型的說明、共用體變量的定義、成員的引用教學(xué)難點(diǎn)共用體變量的賦值及所占存儲(chǔ)空間、成員的引用課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過程設(shè)計(jì)(3)不能用共用體變量名進(jìn)行賦值、初始化等操作;如:union{inti;charch;floatf;}a={1,'a',1.5};X(4)共用體與結(jié)構(gòu)體可以嵌套使用。(5)不能用共用體變量作為函數(shù)參數(shù),也不能使函數(shù)帶回共用體變量,但可用指向共用體變量的指針作函數(shù)的參數(shù)。二、枚舉類型1、枚舉類型的概念列舉出所有可能的取值的一種數(shù)據(jù)結(jié)構(gòu)。2、枚舉類型的定義enum枚舉名{枚舉值表};例:enumweekday{sun,mon,tue,wed,thu,fri,sat};enumweekdayweek_end,workday;或enumweekday{sun,mon,tue,wed,thu,fri,sat}workday;或enum{sun,mon,tue,wed,thu,fri,sat}week_end;3、枚舉類型變量的賦值和使用.枚舉值是常量,不是變量;sun=5;mon=2;sun=mon;X.枚舉類型是有序數(shù)據(jù)類型,枚舉元素是有值的;例:main(){enumweekday{sun,mon,tue,wed,thu,fri,sat}a,b,c;a=sun;b=mon;c=tue;printg“%d,%d,%d”,a,b,c);}運(yùn)行結(jié)果為:0,1,2可改變枚舉元素的值。enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat}day;備注頁碼52

課題共用體、枚舉類型和typedef教案號(hào)25教學(xué)目的1、掌握共用體類型的說明、共用體變量的定義、成員的引用2、領(lǐng)會(huì)枚舉類型變量的定義,了解typedef的作用教材分析教學(xué)重點(diǎn)掌握共用體類型的說明、共用體變量的定義、成員的引用教學(xué)難點(diǎn)共用體變量的賦值及所占存儲(chǔ)空間、成員的引用課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合 教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過程設(shè)計(jì).枚舉元素可比較;例:默認(rèn)時(shí),mon>sun.只能將枚舉值賦予枚舉變量;例:a=sun;b=mon; 是正確的而a=0; b=1; 是錯(cuò)誤的但b=(enumweekday)1;是正確的.枚舉兀素不是字符串常量,使用時(shí)不要加引號(hào)。.由于C編譯程序?qū)⒚杜e量作為整型數(shù)來處理,所以可使用常數(shù)的地方,都可以使用枚舉常量。三、用typedef定義類型C語言不僅提供了豐富的數(shù)據(jù)類型,而且還允許用戶自己定義類型說明符,即允許用戶為數(shù)據(jù)類型取別名。類型定義符typedef可用來完成此項(xiàng)功能。typedef可完成為類型取別名.typedef的一般形式:typedef舊類型名新類型名;:typedeffloatreal;reala,f;再如:typedefchar*pointer;pointerp,string="example”;但我們必須明白:首先,定義的新名只是原名的一個(gè)別名,并不是建立一個(gè)新的數(shù)據(jù)類型;其次,新名和原名同時(shí)存在并有效,即原名并不失去效用,在程序中仍可使用;最后,用新名和原名定義的對(duì)象具有相同的性質(zhì)和效果。三課堂小結(jié)本課主要學(xué)習(xí)了共用體、枚舉類型及用typedef定義類型。在使用共用體變量時(shí),要和結(jié)構(gòu)體變量做好區(qū)分。四布置作業(yè)《C語言習(xí)題集》同步練習(xí)第9章習(xí)題備注頁碼53第十章對(duì)文件的輸入輸出第十章對(duì)文件的輸入輸出課題文件教案號(hào)26教學(xué)目的1、掌握標(biāo)準(zhǔn)設(shè)備輸入/輸出函數(shù)的使用2、掌握緩沖文件系統(tǒng)的使用教材分析教學(xué)重點(diǎn)標(biāo)準(zhǔn)設(shè)備輸入/輸出函數(shù)(部分)的使用,文件的使用教學(xué)難點(diǎn)文件的使用課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合 教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過程設(shè)計(jì)一、講授新課C語言把文件看成是一個(gè)字符(字節(jié))的序列。按數(shù)據(jù)的組織形式,分為ASCII文件和二進(jìn)制文件。前者每一個(gè)字節(jié)存放一個(gè)ASCII字符,后者把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲(chǔ)形式輸出到磁盤上存放。前者占空間多,需要轉(zhuǎn)換,后者節(jié)省空間和轉(zhuǎn)換時(shí)間,但一個(gè)字節(jié)不對(duì)應(yīng)一個(gè)字符,不能直接輸出字符形式。C語言中可利用高級(jí)I/O庫函數(shù)來存取文件,存取文件的過程與其他語言中的處理過程類似。通常按如下順序進(jìn)行:■■打開文件■■讀寫文件(若干次)■■■關(guān)閉文件這個(gè)處理順序表明:一個(gè)文件被存取之前首先要打開它,只有文件被打開后才能進(jìn)行讀/寫操作,文件讀/寫完畢后必須關(guān)閉。一、文件的打開在操作系統(tǒng)中,每一個(gè)文件都有一個(gè)名字以供識(shí)別,如存儲(chǔ)在磁盤上的C源程序文件fileLc,file2.c等。文件名是文件的外部名,通過它可以找到文件的實(shí)際存儲(chǔ)設(shè)備、位置、大小、特性等諸如此類的相關(guān)信息。這些信息只能由操作系統(tǒng)的文件管理系統(tǒng)掌握與管理,因此要存取文件必須通過操作系統(tǒng)的文件系統(tǒng)。這意味著一個(gè)C語言程序沒有直接通過文件的外部名存取一個(gè)外部文件的能力,程序中要存取文件必須與文件系統(tǒng)取得聯(lián)系,把要存取文件的有關(guān)信息和要求,諸如文件的名字、讀文件還是寫文件、以何種方式讀/寫等告訴文件系統(tǒng),由文件系統(tǒng)在設(shè)備中建立、尋找、定位文件,分配存取文件的緩沖區(qū),做好存取文件要求的一切準(zhǔn)備工作。上述存取文件的有關(guān)信息和要求都由程序通過I/

溫馨提示

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

評(píng)論

0/150

提交評(píng)論