第七章 檔案處理.

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

项目7 面向对象高级.
第1单元 操作系统概论 第一节 绪论 操作系统定义.
四資二甲 第三週作業 物件導向程式設計.
第一章 面向对象程序设计.
第九讲 类与对象 (I)面向对象基础.
第6章 多态性与虚函数.
補充: Input from a text file
類別與物件 Class & Object.
第八章 类和对象.
C++的檔案處理 綠園.
内容提要 对象的生命周期 构造函数 析构函数 拷贝构造函数. 常宝宝 北京大学计算机科学与技术系
Chapter 1 Introduction.
4.1 概述 4.2 类与对象的实现 4.3 对象的初始化和析构 4.4 类的包含 4.5 类模板
西安交通大学 计算机教学实验中心 大学C++程序设计教程 西安交通大学 计算机教学实验中心
C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
第三章 C++中的C 面向对象程序设计(C++).
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
類別(class) 類別class與物件object.
第一章 C++编程简介 丘志杰 电子科技大学 计算机学院 软件学院.
第四章 小技巧.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A.
THE C PROGRAMMING LANGUAGE
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
第一單元 建立java 程式.
第16章 虛擬與多形 16-1 虛擬函數 16-2 純虛擬函數與抽象類別 16-3 多形 16-4 虛擬繼承與虛擬解構子.
Struct結構 迴圈
第十三讲 文件流与 输出输入重载.
C++大学基础教程 第11章 多态性 北京科技大学 信息基础科学系 2019/4/8 北京科技大学.
第五章 递归与广义表 递归的概念 递归过程与递归工作栈 递归与回溯 广义表.
Name1..hour //加班時數 name2..hour //請假時數
程式結構&語法.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
挑戰C++程式語言 ──第8章 進一步談字元與字串
Oop8 function函式.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
C++的檔案處理 綠園.
字符串 (String) 字符串是 n (  0 ) 个字符的有限序列, 记作 S = “c1c2c3…cn” 其中,S 是串名字
Object-Oriented Programming in C++ 第二章 类和对象
File Input and Output Chap. 11: 施威銘的書 Chap. 7: K&R.
第一章 C语言概述 目录 什么是语言、程序 C语言的历史与发展 C语言的书写形式与程序结构 运行C语言的步骤与方法
第二章 类型、对象、运算符和表达式.
第九章 物件導向-進階.
第1章 C++面向对象程序设计要点 1.1 函数和函数参数 1.2 输入输出   1.3 类 1.4 抽象类型和模板.
目标 流程控制 字符串处理 C# 的类和对象 C# 访问修饰符 C# 构造函数和析构函数.
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
挑戰C++程式語言 ──第9章 函數.
辅导课程十一.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
实验三 键盘软加锁实验 2019/5/9.
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A.
谭浩强编著 C++面向对象程序设计 授课教师:姬广永 学习网站:
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班.
硬幣遊戲解題詳解 王豐緒 銘傳大學資訊工程學系.
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
第四章 陣列、指標與參考 4-1 物件陣列 4-2 使用物件指標 4-3 this指標 4-4 new 與 delete
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
C语言程序设计 第13章 文件操作.
資料結構與C++程式設計進階 C++與資料結構 講師:林業峻 CSIE, NTU 7/ 5, 2010.
方法(Method) 函數.
Presentation transcript:

第七章 檔案處理

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

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

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

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

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

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

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

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

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

 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); }

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

 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)

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

第八章 繼承

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

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

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

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

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

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

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

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

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

 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; }

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

 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; }

 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

 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; }

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

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

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

8.2 多重繼承  族譜:

8.2 多重繼承  幾何圖形:

 8.2 多重繼承 範例:baby.cpp 結果: Father的建構元一 Mother的建構元 Child的建構元一 爸爸的老婆 http://140.113.212.206/自強社講義網頁/C++/Program%20Files/ch8/baby.cpp 結果: Father的建構元一 Mother的建構元 Child的建構元一 爸爸的老婆 媽媽的老公 住址 piggy@abc.def

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

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

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

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