1 第二十章 大型程式的發展 使用名稱空間 熟悉大型程式的開發方式 條件式編譯指令的撰寫. 2 名稱空間 名稱空間就像是一個管理介面,可以將定義的識別 字放在名稱空間之下,而不會有相互衝突的發生 名稱空間的語法如下 把變數 var 放在名稱空間 name1 內 要存取使用名稱空 間 name1 的變數.

Slides:



Advertisements
Similar presentations
FCU, Department of ECE, IC Design Research Lab. TEL: # 4945 Pre-SIm , Post-Sim.
Advertisements

1 生物計算期末作業 暨南大學資訊工程系 2003/05/13. 2 compare f1 f2  只比較兩個檔案 f1 與 f2 ,比完後將結果輸出。 compare directory  以兩兩比對的方式,比對一個目錄下所有檔案的相 似程度。  將相似度很高的檔案做成報表輸出,報表中至少要.
6-1 指標簡介 6-2 指標與陣列 6-3 動態配置記憶體 6-4 本章綜合練習
布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
建立使用案例敘述 --Use Case Narrative
學習C++的基本語法 認識關鍵字與識別字的不同 學習程式碼偵錯的流程 學習如何提高程式的可讀性
PowerPoint2010 李燕秋 版面配置 版面配置指的是每一個頁面的內容配置 方式,不同的版面配置會有對應的母片。
Reference, primitive, call by XXX 必也正名乎 誌謝 : 部份文字取於前輩 TAHO 的文章.
如何將數字變成可用之資訊 現代化資料處理與應用概念. 如何將數字變成可用之資訊 人最容易接受的訊息是圖像化資訊。 在一堆數字中,要進行比較分析,一般會使用表格形 式計算與分析。 所以一般我們會將數字依關聯性, 轉換成表格計算與分析。 此表格一般稱試算表或稱表格。 再將結果轉換為圖表,進行比較與分析。
1 第一章 Word 的基本觀念 內容概要: Word 的特色 啟動與離開 Word 的方法 滑鼠游標與外型的介紹 基本操作 Word 視窗法則 使用 Word 遭遇問題時, 應如何利用軟體特 性而獲得輔助解說.
五小專案 黃詩晴 章乃云. 目錄 計算機 智慧盤 拼圖 記憶大挑戰 數學題庫 心得 參考文獻.
第 15 章 Servlet 程式設計 Java 2 程式設計入門與應用. 2 目錄 15-1 Servlet 的簡介 15-1 Servlet 的簡介 15-2 建立 Servlet 程式 15-2 建立 Servlet 程式 溫故知新 自我突破習題.
Review of Chapter 3 - 已學過的 rules( 回顧 )- 朝陽科技大學 資訊管理系 李麗華 教授.
第一章 變數、常數及資料型態. 變數 C 程式語言的變數名稱 第一個字必須是英文字母或底線 (_) 之後可以是數字, 英文字母或底線 (_) 不可以是保留字 例: Num (Ο) _score (Ο) C&C (X) 8num (X)
1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif.
例外處理. 內 容 大 綱 例外的產生 捕捉例外 丟出例外 例外的產生 (1/4) 一般常見的執行時期錯誤包括整數除法分母為 0(divide by zero) ,陣列索引值越限 (array index out of range) ,輸入輸出錯誤 (I/O error) 、檔案 不存在或無法存取.
第 18 章 名稱空間與例外處理 18-1 名稱空間 18-1 名稱空間 18-2 例外處理 18-2 例外處理.
JAVA 程式設計與資料結構 第十章 GUI Introdution III. File Chooser  File Chooser 是一個選擇檔案的圖形介面, 無論我們是要存檔還是要開啟檔案,使 用這個物件都會讓我們覺得容易且舒適。
南投縣社區大學 Excel 實務應用入門 講師 : 林泉成
第 7 章 程序與函數 7-1 模組化程式設計 7-1 模組化程式設計 7-2 VB.NET 的程序與函數 7-2 VB.NET 的程序與函數 7-3 程序與函數的變數範圍 7-3 程序與函數的變數範圍 7-4 VB.NET 常用的內建函數 7-4 VB.NET 常用的內建函數 7-5 遞迴函數 7-5.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
Chapter 13 塑模靜態觀點:物件圖 Static View : Object Diagram.
Introduction to Java Programming Lecture 17 Abstract Classes & Interfaces.
24-6 設定開始與結束場景中的 程式 最後我們要替這個遊戲收個尾, 幫它把開始 的等待畫面跟結束畫面處理一下。
: The largest Clique ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11324: The largest Clique 解題者:李重儀 解題日期: 2008 年 11 月 24 日 題意: 簡單來說,給你一個 directed.
最新計算機概論 第 5 章 系統程式. 5-1 系統程式的類型 作業系統 (OS) : 介於電腦硬體與 應用軟體之間的 程式,除了提供 執行應用軟體的 環境,還負責分 配系統資源。
Chapter 20 塑模動態觀點:狀態圖 Statechart Diagram. 學習目標  說明狀態圖的目的  定義狀態圖的基本記號  展示狀態圖的建構  定義活動、內部事件及遞延事件的狀態 圖記號.
圖層的操作與管理 圖層的作用就如同一張張透明的賽璐璐片, 你可以將動畫中的每項物件, 放置在不同圖 層中, 圖層交疊就形成完整的畫面。在各圖 層中的物件, 做任何的移動或變化, 都不會 相互干擾, 所以當你編輯一個物件時, 只要 在物件所在的圖層進行操作, 將可大幅降低 製作過程的複雜度與難度。
第12章 建立多表單與模組的應用程式 12-1 Visual Basic的方案與專案 12-2 模組化Visual Basic應用程式
: Fast and Easy Data Compressor ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10043: Fast and Easy Data Compressor 解題者:葉貫中 解題日期: 2007 年 3.
第三章 自動再裝載運用篇 使用時機:裝載計劃完成時,尚有剩餘空 間的情形,維持已固定計劃而繼續做裝載 最佳化。以支持次日裝載計劃而提前調整 作業模式。 裝載物品設定和裝載容器設定如前兩章介 紹,於此不再重複此動作,直接從裝載計 劃設定開始,直接從系統內定的物品和容 器選取所需.
資料庫程式設計與系統管理 SQL Server 2005 Express 第六章 進階資料庫設計.
: Multisets and Sequences ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11023: Multisets and Sequences 解題者:葉貫中 解題日期: 2007 年 4 月 24 日 題意:在這個題目中,我們要定義.
1-6 動畫的文件屬性 舞台是動畫實際播放的畫面, 所以舞台的大 小與長寬比例對將來動畫的呈現有很大的 影響。 Flash 預設的舞台尺寸是 550 Pixels × 400 Pixels, 背景為白色, 如果要更改舞台大小與 背景色, 請執行『修改 / 文件』命令, 開啟文 件屬性 (Document.
從此處輸入帳號密碼登入到管理頁面. 點選進到檔案管理 點選「上傳檔案」上傳資料 點選瀏覽選擇電腦裡的檔案 可選擇公開或不公開 為平台上的資料夾 此處為檔案分類,可顯示在展示頁面上,若要參加 MY EG 競賽,做品一律上傳到 “ 98 MY EG Contest ” 點選此處確定上傳檔案.
Chapter 17 Windows API 程式入門 VC++ 與 WindowsVC++ 與 Windows 建構遊戲設計的舞台 建構遊戲設計的舞台.
資料結構實習-一 參數傳遞.
6-2 認識元件庫與內建元件庫 Flash 的元件庫分兩種, 一種是每個動畫專 屬的元件庫 (Library) ;另一種則是內建元 件庫 (Common Libraries), 兩者皆可透過 『視窗』功能表來開啟, 以下即為您說明。
第二章第二章 Statistica 的工具欄. 本章目標:工具欄之使用 介紹 STATISTICA 是一個非常好用的統計軟體,只 要你對微軟的 Office 套裝軟體有較熟悉的瞭解, 那對 STATISTICA 的工具欄就非常容易掌握。 STATISTICA 的文件組織有四種類型,即 Workbook.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2008.
Management Abstracts Retrieval System; MARS 檢索操作.
第 9 章 TSR 程式基本教練. 本章提要 TSR 程式 以熱鍵 (Hot key) 叫用 TSR 程式 Clock 中斷 int 08h 、 int 1ch DOS reentrant 的問題 有用的 TSR 程式.
函式 Function Part.2 東海大學物理系‧資訊教育 施奇廷. 遞迴( Recursion ) 函式可以「呼叫自己」,這種動作稱為 「遞迴」 此程式的執行結果相當於陷入無窮迴圈, 無法停止(只能按 Ctrl-C ) 這給我們一個暗示:函式的遞迴呼叫可以 達到部分迴圈的效果.
JAVA 程式設計與資料結構 第二十章 Searching. Sequential Searching Sequential Searching 是最簡單的一種搜尋法,此演 算法可應用在 Array 或是 Linked List 此等資料結構。 Sequential Searching 的 worst-case.
演算法 8-1 最大數及最小數找法 8-2 排序 8-3 二元搜尋法.
845: Gas Station Numbers ★★★ 題組: Problem Set Archive with Online Judge 題號: 845: Gas Station Numbers. 解題者:張維珊 解題日期: 2006 年 2 月 題意: 將輸入的數字,經過重新排列組合或旋轉數字,得到比原先的數字大,
Linguistics phonetic symbols. 先下載 IPA 字型檔案,執行安裝。 由於這個程式的字型目錄設定錯誤, 所以等重新開機時就會發現字型消失。 所以必須根據以下步驟來讓 Windows 加入 IPA 字型。
Chapter 10 m-way 搜尋樹與B-Tree
第12章 多重表單與模組的應用程式 12-1 VB.NET的方案與專案 12-2 模組化VB.NET應用程式 12-3 多重表單的應用程式
Probability Distribution 機率分配 汪群超 12/12. 目的:產生具均等分配的數值 (Data) ,並以 『直方圖』的功能計算出數值在不同範圍內出現 的頻率,及繪製數值的分配圖,以反應出該 機率分配的特性。
Java2 程式實務 1 第八章 package 程式碼及函式庫管理 – 傳統的程式語言, C 及 PASCAL ,抑或是較新的 物件導向程式語言如 C++ 等: 程式語言本身並沒有任何的機制去管理程式碼及函式 庫等瑣碎繁雜的檔案。 –Java : 以類別為主的程式編譯方式, 以 package 來管理組織類別,使得系統發展能夠以一.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2009.
5 重複迴圈 5.1 增減運算符號 增量運算符號 減量運算符號
第 6 章 迴圈結構 6-1 計數迴圈 6-1 計數迴圈 6-2 條件迴圈 6-2 條件迴圈 6-3 巢狀迴圈 6-3 巢狀迴圈 6-4 While/End While 迴圈 6-4 While/End While 迴圈 6-5 跳出迴圈 6-5 跳出迴圈 6-6 VB.NET 的錯誤處理 6-6 VB.NET.
著作權所有 © 旗標出版股份有限公司 第 3 章 資料庫物件的關係. 本章提要 Access 資料庫物件的關係 Access 資料庫物件的關係 簡介 Access 的七大物件 簡介 Access 的七大物件 Access 的群組 Access 的群組.
Outlook 教學與研習 (1) - 設定及收發郵件 - 設定郵件規則 陽明大學資訊與通信中心 陳坤元 2006/03/27.
函式 Function 東海大學物理系‧資訊教育 施奇廷. 函式簡介 當程式越來越大、越複雜時,程式的維護、 除錯會變得更困難,此時必須引入函式來 簡化程式或將程式分段,將程式重複的部 分改寫為函式,將程式「模組化」 這種作法有下列優點:節省程式發展的時 間、邏輯容易瞭解、程式容易除錯、可分 工合作完成程式.
-Artificial Neural Network- Matlab操作介紹 -以類神經網路BPN Model為例
NVivo 7在文件分析應用.
Visual C++重點複習.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2010.
OmniFile Full Text 系列資料庫 個人化服務設定步驟. 此相關資料庫之個人化服 務只提供類似專題選粹的 服務,然無提供 mail 通知的 服務,讀者可建立個人 ID , 並儲存檢索策略,日後需 再進入該資料庫,查詢檢 索策略之新進文章。 導航目次 個人化服務說明 個人帳號密碼申請 個人化服務設定.
Microsoft Excel.
Introduction to Java Programming Lecture 16 Super and Sub Classes.
: Finding Paths in Grid ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11486: Finding Paths in Grid 解題者:李重儀 解題日期: 2008 年 10 月 14 日 題意:給一個 7 個 column.
著作權所有 © 旗標出版股份有限公司 第 14 章 製作信封、標籤. 本章提要 製作單一信封 製作單一郵寄標籤.
幼兒行為觀察與記錄 第八章 事件取樣法.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
VHDL語法(3).
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
Presentation transcript:

1 第二十章 大型程式的發展 使用名稱空間 熟悉大型程式的開發方式 條件式編譯指令的撰寫

2 名稱空間 名稱空間就像是一個管理介面,可以將定義的識別 字放在名稱空間之下,而不會有相互衝突的發生 名稱空間的語法如下 把變數 var 放在名稱空間 name1 內 要存取使用名稱空 間 name1 的變數 var

3 namespace 的使用範例 簡單的範例 (1/2)

4 簡單的範例 (2/2) 使用兩個名稱空間 的例子

5 使用 using 關鍵字 下面的程式,是名稱空間 使用 using 關鍵字的範例

6 使用不同的名稱空間 (1/2) 下面的範例,是在區塊內使用 不同的名稱空間

7 使用不同的名稱空間 (2/2)

8 根據 ANSI C++ ,標準函數庫裡所包含的函數、類別與 物件等等,均是全部定義在 std 這個名稱空間內 使用標準函數庫裡所提供的物件時,必須加上「 std:: 」 名稱空間 std (1/3)

9 名稱空間 std (2/3) ANSI C++ 以 iostream 來取代舊有的標頭檔 iostream.h , 以 cstdlib 取代原來的 stdlib.h 標頭檔 cout 與 endl 物件前面加上「 std:: 」,用以表示 cout 物件 是在 std 名稱空間內所定義的 您也可以在主程式 main() 的前面加上 using namespace std; // 使用 std 名稱空間 如此便可省去撰寫「 std:: 」

10 名稱空間 std (3/3) 在 C++ Bulider 中, system() 函數是定義在 std 名稱空 間中,若是在編譯時得到 Call to undefined function 'system' 只要在 system("pause"); 敘述前加上「 std:: 」,即可 正常編譯執行

11 舊式的寫法 (1/2) 下面的程式碼是使用舊有的 C++ 語法來撰寫

12 舊式的寫法 (2/2) Dev C++ 在編譯時會出現下列的警告訊息 #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section of the C++ standard. Examples include substituting the header for the header for C++ includes, or instead of the deprecated header. To disable this warning use -Wno-deprecated. 這個訊息是說,標頭檔裡使用較舊的語法

13 程式的模組化 模組化有利於程式的管理與維護,如下圖所示

14 各別編譯的實作 (1/11) 下面為各別編譯實作的範例

15 各別編譯的實作 (2/11)

16 各別編譯的實作 (3/11) 標頭檔 cwin.h ,用來儲存 CWin 類別的定義

17 各別編譯的實作 (4/11) show() 函數的定義儲存成檔案 show.cpp

18 各別編譯的實作 (5/11) 主程式 main() 存成 prog20_8.cpp

19 各別編譯的實作 (6/11) 下面的步驟介紹如何於 Dev C++ 裡分別建立主程式、 函數模組,以及標頭檔 步驟 1 首先建立一個全新的專案

20 各別編譯的實作 (7/11) 步驟 2 選擇所要存放的資料夾,如下圖所示

21 各別編譯的實作 (8/11) 步驟 3 按下「儲存」鈕後,進入 Dev C++ 的專案開發 環境

22 各別編譯的實作 (9/11) 步驟 4 輸入主程式 prog20_8.cpp 的內容

23 各別編譯的實作 (10/11) 步驟 5 重複步驟 4 ,將 show.cpp 與 cwin.h 加入 my_proj 中,最後應該會得到如下的視窗:

24 各別編譯的實作 (11/11) 步驟 6 按下 F9 鍵,將程式一起編譯。程式執行的結果 如下所示: 編譯後的目的檔與執行檔如下圖所示

25 條件式編譯 #ifdef 、 #else 與 #endif 指令

26 使用條件式編譯指令 (1/2) 接下來舉一個簡單的範例來說明如何使用這些指令

27 使用條件式編譯指令 (2/2) 實際送至編譯器裡編譯的主程式只剩下面的程式碼

28 #if 、 #else 、 #elif 與 #endif 指令 #if 、 #else 、 #elif 與 #endif 指令格式如下

29 前置處理指令的練習 下面的程式是前置處 理指令的綜合練習

30 #undef 指令 #undef 指令格式如下 若識別字並沒有被定義過,則不受 #undef 指令的影響

31 條件式編譯與大型程式的發展 (1/5) 接續 my_proj 專案,想加入一個繼承自 CWin 類別的子 類別 CMiniWin ,可以撰寫出如下的程式碼

32 條件式編譯與大型程式的發展 (2/5) 測試 cminiwin.h 標頭檔是否撰寫正確

33 條件式編譯與大型程式的發展 (3/5) 將檔案 cminiwin.h 及 prog20_11 加入專案中 接著請分別將 cwin.h 與 show.cpp 加入專案裡

34 條件式編譯與大型程式的發展 (4/5) 於 Dev C++ 裡編譯後得到下列的錯誤訊息: In file included from cminiwin.h from prog20_11.cpp redefinition of 'class CWin' 這錯誤訊息告訴我們 CWin 類別被重複定義

35 條件式編譯與大型程式的發展 (5/5) 重新建立一個專案,把 cwin.h 修改成如下的程式碼

36