Presentation is loading. Please wait.

Presentation is loading. Please wait.

第七章 檔案處理.

Similar presentations


Presentation on theme: "第七章 檔案處理."— Presentation transcript:

1 第七章 檔案處理

2  7.1 檔案I/O函式群 檔案I/O與作業系統:  檔案I/O與字元I/O都屬C的標準函式庫
 OS均有提供但使用不易(DOS-ASM)  檔案I/O各自不同  ANSI提供標準函式庫  I/O與OS由編譯器提供介面

3 7.1 檔案I/O函式群 檔案I/O與作業系統:

4 7.1 檔案I/O函式群 UNIX作業系統:  UNIX由C撰寫  可以直接以System Call呼叫I/O

5 7.1 檔案I/O函式群 UNIX作業系統:

6 7.1 檔案I/O函式群 DOS作業系統:  DOS由ASM撰寫  需透過函式呼叫DOS

7 7.1 檔案I/O函式群 DOS作業系統:

8 7.1 檔案I/O函式群 UNIX移植到DOS:  由編譯器提供“模擬UNIX系統的呼叫函式”

9 7.1 檔案I/O函式群 UNIX移植到DOS:

10 7.1 檔案的觀念 C的檔案觀念:

11  7.1 檔案的觀念 C的檔案觀念: #include<stdio.h> void main( ) { FILE *fp1;
char c; fp1=fopen(“text.txt”,”w”); while ((c=getchar( ))!=‘\n’) put(c,fp1); fclose(fp1); }

12 7.1 檔案的觀念 C的檔案觀念:

13  7.1 檔案的觀念 C的檔案觀念: #include<stdio.h> void main( ) { FILE *fp1;
char c; fp1=fopen(“text.txt”,”r”); while ((c=getchar( ))!=EOF) printf(c,fp1); fclose(fp1); } stream (pointer)

14  7.1 檔案的觀念 C的檔案觀念:  由fp1讀出一個字元: c=fgetc(fp1);  將c寫入fp1中:
fputc(c,fp1);

15 第八章 繼承

16 8.1 什麼是繼承 繼承的特質:  遺傳,包括特性,習慣…等  減少程式的重復撰寫

17 8.1 什麼是繼承 家族族譜:  姓相同  有些器官長的相  住址相同  電話一樣

18 8.1 什麼是繼承 生物:  相同的分類有共同的特色

19 8.1 什麼是繼承 幾何圖形:

20  8.1 什麼是繼承 幾何圖形:  四邊行的求面積公式可以被延用至後代  四邊形 : L1L2L3L4  矩形 : 長寬
 矩形 : 長寬  正方形 : 長寬 (長=寬)

21  8.2 用C++描述繼承 族譜: class GrandFather { 姓,名,血型,住址,電話, … }
class Father : public GrandFather { … } class Son : public Father { … }

22  8.2 用C++描述繼承 生物: class Animal { … }
class Mammal : public Animal { … } class Human : public Mammal { … }

23  8.2 用C++描述繼承 幾何圖形: class Shape { … }
class Rectangle : public Shape { … } class Square : public Rectangle { … }

24  8.2 用C++描述繼承 繼承的方式: class Animal { public : int Life; int canMove();
}; class Mammal : public Animal int Milk;

25  8.2 用C++描述繼承 繼承的方式: #include <iostream.h> // 矩形
// 矩形 class Rectangle { public : int nLength; int nWidth; int Area() { return nLength * nWidth; } }; // 正方形 class Square : public Rectangle { return nLength * nLength; }

26  8.2 用C++描述繼承 繼承的方式: // 主程式 void main() { Square a; a.nLength = 5;
// 主程式 void main() { Square a; a.nLength = 5; cout << a.Area() << endl; }

27  8.2 用C++描述繼承 繼承的權限: #include <iostream.h> // 矩形
// 矩形 class Rectangle { private : int nLength; int nWidth; public : Rectangle (int len=0, int wid=0) { nLength=len; nWidth=wid; } int Area () { return nLength * nWidth; } }; // 正方形 class Square : public Rectangle { public : Sequare (int len=0) { nLength=len; // 錯誤 } Area() { return nLength * nLength; }

28  8.2 用C++描述繼承 繼承的權限: protected 對繼承下來的class為public 其他的為private
#include <iostream.h> // 矩形 class Rectangle { protected : int nLength; int nWidth; public : Rectangle (int len=0, int wid=0) { nLength=len; nWidth=wid; } int Area () { return nLength * nWidth; } }; // 正方形 class Square : public Rectangle { public : Sequare (int len=0) { nLength=len; // 正確 } Area() { return nLength * nLength; } 對繼承下來的class為public 其他的為private

29  8.2 用C++描述繼承 繼承的等級: #include <iostream.h> // 矩形
// 矩形 class Rectangle { protected : int nLength; int nWidth; public : Rectangle (int len=0, int wid=0) { nLength=len; nWidth=wid; } int Area () { return nLength * nWidth; } }; // 正方形 class Square : public Rectangle { public : Sequare (int len=0) { nLength=len; // 正確 } Area() { return nLength * nLength; }

30  8.2 用C++描述繼承 繼承的等級: public class A { private : int nPrivate;
protected : int nProtected; public : int nPublic; } class B : public A class C : public C

31  8.2 用C++描述繼承 繼承的等級: protected class A { private : int nPrivate;
int nProtected; public : int nPublic; } class B : protected A class C : protected C

32  8.2 用C++描述繼承 繼承的等級: class A { private : int nPrivate; protected :
int nProtected; public : int nPublic; } class B : private A class C : private C

33 8.2 多重繼承 族譜:

34 8.2 多重繼承 幾何圖形:

35  8.2 多重繼承 範例:baby.cpp 結果: Father的建構元一 Mother的建構元 Child的建構元一 爸爸的老婆
結果: Father的建構元一 Mother的建構元 Child的建構元一 爸爸的老婆 媽媽的老公 住址

36  8.2 多重繼承 範例:baby.cpp Child Baby(“寶寶的小女友”,“寶寶的姓”,“寶寶的地址”,10);
假如在main( )中,baby的宣告為: Child Baby(“寶寶的小女友”,“寶寶的姓”,“寶寶的地址”,10); 衍生物件不會上傳參數 故呼叫沒有參數的建構元 結果: Father的建構元一 Mother的建構元 Child的建構元二 爸爸的老婆 媽媽的老公 住址

37   8.2 多重繼承 修正: 結果: Father的建構元二 Mother的建構元 Child的建構元二 爸爸的老婆 媽媽的老公 住址
Child( char *wife, char *surname, char *address, long money ): Father( wife, surname, address, money ) { cout << "Child 的建構元二" << endl; strcpy( , ); } 結果: Father的建構元二 Mother的建構元 Child的建構元二 爸爸的老婆 媽媽的老公 住址

38  8.2 多重繼承 範例:baby.cpp Cout<<Mother::GetMoney( )<<endl;
cout<<Father::Father::Surname<<endl; GetMoney GetMoney surname surname

39  8.2 多重繼承 範例:baby.cpp Long Child :: GetMoney ( ) {
return Father::GetMoney+Mother::GetMoney( ); } GetMoney GetMoney surname surname


Download ppt "第七章 檔案處理."

Similar presentations


Ads by Google