程序設(shè)計基礎(chǔ)C語言學(xué)習(xí)教案_第1頁
程序設(shè)計基礎(chǔ)C語言學(xué)習(xí)教案_第2頁
程序設(shè)計基礎(chǔ)C語言學(xué)習(xí)教案_第3頁
程序設(shè)計基礎(chǔ)C語言學(xué)習(xí)教案_第4頁
程序設(shè)計基礎(chǔ)C語言學(xué)習(xí)教案_第5頁
已閱讀5頁,還剩51頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、會計學(xué)1程序設(shè)計程序設(shè)計(chn x sh j)基礎(chǔ)基礎(chǔ)C語言語言第一頁,共56頁。第1頁/共56頁第二頁,共56頁。第2頁/共56頁第三頁,共56頁。枚舉枚舉(mi j)共用共用(n yn)體體結(jié)構(gòu)體與動態(tài)鏈表結(jié)構(gòu)體與動態(tài)鏈表結(jié)構(gòu)體對象在內(nèi)存中的存儲結(jié)構(gòu)體對象在內(nèi)存中的存儲結(jié)構(gòu)體結(jié)構(gòu)體第3頁/共56頁第四頁,共56頁。何刪除它的信息。n如何新加一個學(xué)生,并且添加完成后學(xué)生信息按數(shù)學(xué)成績有序第4頁/共56頁第五頁,共56頁。表8-1 某學(xué)校(xuxio)學(xué)生成績管理表學(xué)號學(xué)號姓名姓名性別性別入學(xué)時間入學(xué)時間計算機(jī)原理計算機(jī)原理英英 語語數(shù)數(shù) 學(xué)學(xué)音音 樂樂1令狐沖男1999908372822林

2、平之男1999789288783岳靈珊女1999897298664任瑩瑩女1999789587905 6 第5頁/共56頁第六頁,共56頁。第6頁/共56頁第七頁,共56頁。907889788392729572889887827866901234令狐沖林平之岳靈珊任瑩瑩男男女女1999199919991999第7頁/共56頁第八頁,共56頁。1令狐沖男1999908372822林平之男1999789288783岳靈珊女1999897298664任瑩瑩女199978958790采用一個整體描述學(xué)生相關(guān)(xinggun)信息第8頁/共56頁第九頁,共56頁。struct studentchar s

3、tudentID10; /*學(xué)生的序號學(xué)生的序號*/ char studentName10;/*學(xué)生的姓名學(xué)生的姓名*/ char studentSex4; /*學(xué)生的性別學(xué)生的性別*/ int timeOfEnter; /*學(xué)生的入學(xué)時間學(xué)生的入學(xué)時間*/ int scoreComputer; /*學(xué)生的計算機(jī)原理學(xué)生的計算機(jī)原理(yunl)成績成績*/ int scoreEnglish; /*學(xué)生的英語成績學(xué)生的英語成績*/ int scoreMath; /*學(xué)生的數(shù)學(xué)成績學(xué)生的數(shù)學(xué)成績*/ int scoreMusic; /*學(xué)生的音樂成績學(xué)生的音樂成績*/ ;第9頁/共56頁第十頁,共

4、56頁。普通變量普通變量結(jié)構(gòu)體變量結(jié)構(gòu)體變量數(shù)據(jù)類型固定(死板)自定義(靈活)定義方式Datatype varNamestruct student stu1;struct students1;struct s1,s2;訪問方式通過變量名訪問整體-部分存儲方式整體部分-整體,有內(nèi)存漏洞數(shù)組Datatype arrName5struct student stu50;指針Datatype *pointer普通結(jié)構(gòu)體指針結(jié)構(gòu)體內(nèi)的自引用指針(關(guān)系).-第10頁/共56頁第十一頁,共56頁。struct 結(jié)構(gòu)結(jié)構(gòu)(jigu)體名體名 類型關(guān)鍵字類型關(guān)鍵字 成員名成員名1; 類型關(guān)鍵字類型關(guān)鍵字 成員名成

5、員名2; . 類型關(guān)鍵字類型關(guān)鍵字 成員名成員名n;構(gòu)成結(jié)構(gòu)體的變量稱結(jié)構(gòu)體成員(成員(member)也稱域(域(filed)struct 結(jié)構(gòu)體名結(jié)構(gòu)體名定義了是一個模板,不分配內(nèi)存,用于生成結(jié)構(gòu)體變量第11頁/共56頁第十二頁,共56頁。struct studentchar studentID10; /*學(xué)生的序號學(xué)生的序號*/ char studentName10;/*學(xué)生的姓名學(xué)生的姓名*/ char studentSex4; /*學(xué)生的性別學(xué)生的性別*/ int timeOfEnter; /*學(xué)生的入學(xué)時間學(xué)生的入學(xué)時間(shjin)*/ int scoreComputer; /*學(xué)

6、生的計算機(jī)原理成績學(xué)生的計算機(jī)原理成績*/ int scoreEnglish; /*學(xué)生的英語成績學(xué)生的英語成績*/ int scoreMath; /*學(xué)生的數(shù)學(xué)成績學(xué)生的數(shù)學(xué)成績*/ int scoreMusic; /*學(xué)生的音樂成績學(xué)生的音樂成績*/ ;第12頁/共56頁第十三頁,共56頁。/出生日期的結(jié)構(gòu)出生日期的結(jié)構(gòu)(jigu)體體struct DATE int year; int month; int day;struct student char ID10; char name20; char sex; int age; float score; char addr30;結(jié)構(gòu)體定義

7、結(jié)構(gòu)體定義可以嵌套可以嵌套第13頁/共56頁第十四頁,共56頁。struct Complex double real; double imag;struct Node int data_id; struct Complex data; struct Node nextNode; struct Node *next;u普通成員變量(binling)的類型不能和本結(jié)構(gòu)體類型相同,即不能遞歸定義。u結(jié)構(gòu)體的成員變量(binling)可以是本結(jié)構(gòu)體類型的指針變量(binling)。這種結(jié)構(gòu)也叫自引用結(jié)構(gòu)。第14頁/共56頁第十五頁,共56頁。普通變量普通變量結(jié)構(gòu)體變量結(jié)構(gòu)體變量數(shù)據(jù)類型固定(死板)自定

8、義(靈活)定義方式Datatype varNamestruct student stu1;struct students1;struct s1,s2;訪問方式通過變量名訪問整體-部分存儲方式整體部分-整體,有內(nèi)存漏洞數(shù)組Datatype arrName5struct student stu50;指針Datatype *pointer普通結(jié)構(gòu)體指針結(jié)構(gòu)體內(nèi)的自引用指針(關(guān)系).-第15頁/共56頁第十六頁,共56頁。struct Complex double real; double imag;op1,op2;struct double real; double imag;op3;struct

9、Complex op1,op2; struct Complex double real; double imag;struct Complex類類型型(lixng)名太長了名太長了,能不能短一點?,能不能短一點?第16頁/共56頁第十七頁,共56頁。typedef struct Complex Complex; struct Complex double real; double imag;typedef struct student Complex;Complex就是(jish)struct Complex的同義詞Complex stu1,stu2; Complex stu1,stu2; 第

10、17頁/共56頁第十八頁,共56頁。第18頁/共56頁第十九頁,共56頁。c1.imag = 2.1; c1.real = 3.4;c2 - real = 4.5; c2 - imag = 5.6; (*c2).real = 6.7; (*c2).imag = 5.9; struct Complex c1 ;struct Complex *c2;c2 = (struct Complex *)malloc(sizeof(struct Complex );第19頁/共56頁第二十頁,共56頁。struct Complex c1 = 1.4,2.5;struct Complex c1 ;c1.rea

11、l = 1.4;c1.imag = 2.5;struct Complex c1, c2 ;c1.real = 1.4;c1.imag = 2.5;c2 = c1;第20頁/共56頁第二十一頁,共56頁。以相互賦值。n如何從鍵盤上接收數(shù)據(jù)到結(jié)構(gòu)(jigu)體對象的成員中。n如何訪問結(jié)構(gòu)(jigu)體對象的數(shù)據(jù)。n如何通過指針訪問結(jié)構(gòu)(jigu)體數(shù)組中的各個元素,及如何通過指針訪問結(jié)構(gòu)(jigu)體對象中的各個成員。第21頁/共56頁第二十二頁,共56頁。第22頁/共56頁第二十三頁,共56頁。n. -(chngyun)n可以取地址&n不可能直接參與算術(shù)和比較運算n面向?qū)ο蠛蛿?shù)據(jù)庫是st

12、ruct的思想的發(fā)展第23頁/共56頁第二十四頁,共56頁。第24頁/共56頁第二十五頁,共56頁。枚舉枚舉(mi j)共同體共同體結(jié)構(gòu)結(jié)構(gòu)(jigu)體與動態(tài)鏈表體與動態(tài)鏈表結(jié)構(gòu)體對象在內(nèi)存中的存儲結(jié)構(gòu)體對象在內(nèi)存中的存儲結(jié)構(gòu)體結(jié)構(gòu)體第25頁/共56頁第二十六頁,共56頁。struct DemoS1char x;char y;int z;struct DemoS1char x;int z;char y;DemoS1對象(duxing)的大小為:8DemoS2對象的大小為:12第26頁/共56頁第二十七頁,共56頁。第27頁/共56頁第二十八頁,共56頁。第28頁/共56頁第二十九頁,共56頁

13、。枚舉枚舉(mi j)共同體共同體結(jié)構(gòu)結(jié)構(gòu)(jigu)體與動態(tài)鏈表體與動態(tài)鏈表結(jié)構(gòu)在內(nèi)存中的存儲結(jié)構(gòu)在內(nèi)存中的存儲結(jié)構(gòu)體結(jié)構(gòu)體第29頁/共56頁第三十頁,共56頁。n當(dāng)我們需要添加一個學(xué)生時,程序會自動添加;n當(dāng)我們需要刪除一個學(xué)生時,程序會自動放棄該學(xué)生原來占有的內(nèi)存。動態(tài)(dngti)數(shù)據(jù)結(jié)構(gòu)-鏈表第30頁/共56頁第三十一頁,共56頁。Data1nextData2nextData3nextDatan不帶頭不帶頭(di tu)結(jié)點的動態(tài)鏈表結(jié)點的動態(tài)鏈表struct Link int data; struct Link *next;數(shù)據(jù)域:存儲數(shù)據(jù)元素信息數(shù)據(jù)域:存儲數(shù)據(jù)元素信息指針域:存

14、儲直接后繼的節(jié)點地址指針域:存儲直接后繼的節(jié)點地址head第31頁/共56頁第三十二頁,共56頁。typedef struct BookNode char ISBNISBN_LENGTH; char bookBOOK_LENGTH; char authorNAME_LENGTH; float price; struct BookNode * next;BookNode;數(shù)據(jù)(shj)域指針域節(jié)點信息第32頁/共56頁第三十三頁,共56頁。第33頁/共56頁第三十四頁,共56頁。第34頁/共56頁第三十五頁,共56頁。Datai-1nextDatai+1next.pq第35頁/共56頁第三十六頁

15、,共56頁。n如何表示從鏈表里刪除一個節(jié)點?BookNode * deleteNode(BookNode *head,char *bookISBN)第36頁/共56頁第三十七頁,共56頁。Datai-1nextDatainext.pq第37頁/共56頁第三十八頁,共56頁。nheadn當(dāng)i=1時是如何處理的?n如何將新插入的節(jié)點加入到鏈表里?int insertNode(BookNode *head,BookNode newBook,int i)第38頁/共56頁第三十九頁,共56頁。n鏈表是數(shù)據(jù)結(jié)構(gòu)的一種基本數(shù)據(jù)結(jié)構(gòu),鏈表掌握的程度影響數(shù)據(jù)結(jié)構(gòu)課程的掌握第39頁/共56頁第四十頁,共56頁。

16、枚舉枚舉(mi j)共同體共同體結(jié)構(gòu)結(jié)構(gòu)(jigu)體與動態(tài)鏈表體與動態(tài)鏈表結(jié)構(gòu)在內(nèi)存中的存儲結(jié)構(gòu)在內(nèi)存中的存儲結(jié)構(gòu)體結(jié)構(gòu)體第40頁/共56頁第四十一頁,共56頁。n在定義共同體類型的時候聲明該共同體的變量(binling)n像聲明 int 型變量(binling)一樣聲明共同體變量(binling)問題(wnt):會不會幾個變量占用同一塊內(nèi)存呢?第41頁/共56頁第四十二頁,共56頁。結(jié)構(gòu)體 成員各自占有內(nèi)存空間 大小為各成員占用空間的和+填充 定義時可以初始化 可以做函數(shù)參數(shù)和返回值 可定義結(jié)構(gòu)體指針和數(shù)組共同體 成員共同占有內(nèi)存空間 大小為成員變量中占用空間最大的 定義時不可初始化 不可

17、做函數(shù)參數(shù)和返回值 可定義結(jié)構(gòu)體指針和數(shù)組第42頁/共56頁第四十三頁,共56頁。第43頁/共56頁第四十四頁,共56頁。第44頁/共56頁第四十五頁,共56頁。typedef struct Members char nameNAME_LENGTH; char telTEL_LENGTH; char sexy; enum Status status; union char classNameCLASS_NAME_LENGTH; char titleTITLE_LENGTH; ;Members;#define CLASS_NAME_LENGTH 15 #define NAME_LENGTH 10

18、#define TITLE_LENGTH 10 #define TEL_LENGTH 12enum Statusstudent, teacher;#define MEMBERS_COUNT 100第45頁/共56頁第四十六頁,共56頁。第46頁/共56頁第四十七頁,共56頁。枚舉枚舉(mi j)共同體共同體結(jié)構(gòu)結(jié)構(gòu)(jigu)體與動態(tài)鏈表體與動態(tài)鏈表結(jié)構(gòu)在內(nèi)存中的存儲結(jié)構(gòu)在內(nèi)存中的存儲結(jié)構(gòu)體結(jié)構(gòu)體第47頁/共56頁第四十八頁,共56頁。enum 枚舉枚舉(mi j)類型名類型名有限集合元素列有限集合元素列表表;enum weekday sun,mon,tues,wednes, thurs,frisatur; enum weekday sun = 1,mon,tues,wednes, thurs,frisatur; 第48頁/共56頁第四十九頁,共56頁。 成員表列;成員表列;變量表列;變量表列;enum color red, white;enum color myColor;enum color red, whitemyColor;enumred, whitemyColor;第49頁/共56頁第五

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論