0人評分過此書

由重構學習C++程式設計

出版日期
2023/06/01
閱讀格式
PDF
書籍分類
學科分類
ISBN
9789863507123

本館館藏

借閱規則
當前可使用人數 30
借閱天數 14
線上看 0
借閱中 0
選擇分享方式

推薦本館採購書籍

您可以將喜歡的電子書推薦給圖書館,圖書館會參考讀者意見進行採購

讀者資料
圖書館
* 姓名
* 身分
系所
* E-mail
※ 我們會寄送一份副本至您填寫的Email中
電話
※ 電話格式為 區碼+電話號碼(ex. 0229235151)/ 手機格式為 0900111111
* 請輸入驗證碼
本書主要針對高中與大學開始接觸程式設計的初學者,及想學好C++11程式設計的讀者所設計。書中文字敘述力求淺顯簡潔,並以大量範例、片語、學習要點、風格要點等方式,逐步引導初學者進入程式設計的領域。

這本書以「重構」為中心,也就是以一再改寫來引導初學者,強調機制的原理與應用,並用於程式之中。期待藉此正確的程式設計技術傳遞給廣大讀者群,以提升讀者對程式設計的興趣。

本書特色
1. 以「重構」為中心,也就是以一再改寫來引導初學者。
2. 透過「學習要點」、「風格要點」、「特殊字元」等設計,隨時提醒讀者各項學習重點,以提升學習效率。
3. 本書搭配專屬網站(https://sites.google.com/view/cplusplusrefactor),提供各章練習題、作業,並隨時更新相關補充資料、程式碼等資訊。
4. 以更多完整範例、相關圖示說明複雜的觀念與方法,同時強化各範例間的關聯性,讓讀者能從中反覆練習、更瞭解所學之實際應用。
  • 前言
  • 關於「批改娘」
  • 1 程式設計
    • 1.1 程式
      • 1.1.1 高階語言
      • 1.1.2 編譯器
    • 1.2 設計
      • 1.2.1 流程圖
      • 1.2.2 編輯
      • 1.2.3 編譯
      • 1.2.4 執行
  • 2 基本程式架構
    • 2.1 程式骨架
    • 2.2 變數
    • 2.3 輸出
    • 2.4 輸入
  • 3 運算
    • 3.1 指定
      • 3.1.1 交換變數值
      • 3.1.2 指定敘述算式
    • 3.2 運算
      • 3.2.1 算術運算
      • 3.2.2 比較運算
      • 3.2.3 邏輯運算
  • 4 判斷
    • 4.1 if 判斷
      • 4.1.1 if 語意
      • 4.1.2 if then else 語意
      • 4.1.3 巢狀if
    • 4.2 判斷式值
      • 4.2.1 絕對值
      • 4.2.2 三者最大值
      • 4.2.3 面積周長
    • 4.3 switch 判斷
      • 4.3.1 計算次方
      • 4.3.2 計算天數
      • 4.3.3 算數運算
      • 4.3.4 #define
      • 4.3.5 比較運算
  • 5 迴圈
    • 5.1 while 迴圈
      • 5.1.1 複合敘述
      • 5.1.2 數列和
      • 5.1.3 最大公因數
    • 5.2 for 迴圈
      • 5.2.1 固定次數迴圈
      • 5.2.2 質數判斷
      • 5.2.3 複合敘述
      • 5.2.4 長除法模擬
      • 5.2.5 檢查11 的倍數
    • 5.3 do while 迴圈
      • 5.3.1 複合敘述
    • 5.4 break
    • 5.5 continue
    • 5.6 巢狀迴圈
  • 6 標準輸入輸出
    • 6.1 輸入資料
      • 6.1.1 長除法模擬
      • 6.1.2 檢查11 的倍數
    • 6.2 輸出訊息
      • 6.2.1 輸出中加入空白及換行
      • 6.2.2 輸出中加入字串
    • 6.3 多變數輸出入
    • 6.4 格式輸出入操控子
  • 7 陣列
    • 7.1 屬性
    • 7.2 一維陣列
      • 7.2.1 初始化
      • 7.2.2 迴圈處理
    • 7.3 assert
    • 7.4 一維陣列應用
      • 7.4.1 尋找特定值
      • 7.4.2 計算內積
      • 7.4.3 費伯納西數
      • 7.4.4 質數判定
      • 7.4.5 泡沫排序法
      • 7.4.6 記憶體配置
    • 7.5 多維陣列
      • 7.5.1 用法
      • 7.5.2 初始化
      • 7.5.3 矩陣相乘
      • 7.5.4 質數
      • 7.5.5 記憶體配置
    • 7.6 多維陣列應用
      • 7.6.1 生命遊戲
      • 7.6.2 鏡子房間
      • 7.6.3 繞圈
      • 7.6.4 井字遊戲
  • 8 浮點數
    • 8.1 宣告
    • 8.2 位元組數
    • 8.3 輸出與輸入
    • 8.4 類別轉換
      • 8.4.1 靜態轉型
      • 8.4.2 計算平均
    • 8.5 泰勒展開式
      • 8.5.1 float 計算級數
      • 8.5.2 double 計算級數
      • 8.5.3 不直接算階乘
    • 8.6 開平方根
  • 9 函式
    • 9.1 呼叫函式
      • 9.1.1 標頭檔
      • 9.1.2 函式原型
      • 9.1.3 檢查函式回傳值
      • 9.1.4 程式庫
    • 9.2 定義有回傳值的函式
      • 9.2.1 回傳值
      • 9.2.2 主程式
      • 9.2.3 決定閏年
    • 9.3 定義無回傳值的函式
      • 9.3.1 將各位數分別印出
    • 9.4 多個參數的函式
      • 9.4.1 計算天數
      • 9.4.2 印出連續整數
      • 9.4.3 算式判斷
      • 9.4.4 比較判斷
    • 9.5 參數傳遞
      • 9.5.1 形式與實際參數
      • 9.5.2 陣列參數傳遞
      • 9.5.3 多維陣列參數
      • 9.5.4 預設參數值
    • 9.6 生命遊戲
      • 9.6.1 readLife
      • 9.6.2 evolve
      • 9.6.3 printLife
      • 9.6.4 main
    • 9.7 鏡子房間
      • 9.7.1 init
      • 9.7.2 setDir、setRow、setCol
      • 9.7.3 inRoom
      • 9.7.4 windowIndex
      • 9.7.5 main
    • 9.8 井字遊戲
      • 9.8.1 init
      • 9.8.2 playerToMove
      • 9.8.3 play
      • 9.8.4 win
      • 9.8.5 main
    • 9.9 結語
  • 10 指標
    • 10.1 指標變數
      • 10.1.1 宣告
      • 10.1.2 大小
      • 10.1.3 取值
      • 10.1.4 nullptr
      • 10.1.5 綜合說明範例
      • 10.1.6 取記憶體位址
    • 10.2 指標參數傳遞
      • 10.2.1 藉由指標交換變數值
      • 10.2.2 藉由指標改變變數值
    • 10.3 指標與陣列
      • 10.3.1 利用指標改陣列元素
      • 10.3.2 指標的陣列語法
      • 10.3.3 指標算術
      • 10.3.4 多維陣列指標
    • 10.4 指標回傳值
    • 10.5 用途與限制
      • 10.5.1 用途
      • 10.5.2 限制
  • 11 參考類別
    • 11.1 宣告及初始
      • 11.1.1 語法
      • 11.1.2 位元組數
      • 11.1.3 指定
      • 11.1.4 參考變數範例
    • 11.2 參數傳遞
      • 11.2.1 交換變數值
      • 11.2.2 參考參數傳遞
    • 11.3 參考回傳值
    • 11.4 參考應用
  • 12 字元
    • 12.1 宣告
    • 12.2 輸出
    • 12.3 字元常數
    • 12.4 輸入
      • 12.4.1 get 及put
      • 12.4.2 eof
    • 12.5 常用函式
      • 12.5.1 字元分類函式
      • 12.5.2 字元轉換函式
  • 13 宣告修飾
    • 13.1 修飾大小
      • 13.1.1 位元組數
      • 13.1.2 輸出格式
      • 13.1.3 溢位
    • 13.2 有號及無號
    • 13.3 C++11 標準類別
      • 13.3.1 C++11 有號整數
      • 13.3.2 C++11 無號整數
      • 13.3.3 溢位
    • 13.4 常數
      • 13.4.1 常數參數
      • 13.4.2 常數陣列
      • 13.4.3 常數指標
      • 13.4.4 常數參考
    • 13.5 靜態宣告
      • 13.5.1 靜態變數
    • 13.6 auto
  • 14 字串
    • 14.1 宣告及輸出入
      • 14.1.1 輸出入
      • 14.1.2 eof
      • 14.1.3 getline
    • 14.2 串接
    • 14.3 字串常數
    • 14.4 操作函式
      • 14.4.1 empty 及clear
      • 14.4.2 length
      • 14.4.3 複製
      • 14.4.4 連結
      • 14.4.5 修改
      • 14.4.6 比較
      • 14.4.7 部分字串
      • 14.4.8 部分字串substr
    • 14.5 C-style 字串
      • 14.5.1 位元組數
      • 14.5.2 初始化
      • 14.5.3 慣例結尾
      • 14.5.4 輸入
    • 14.6 簡易BASIC 解譯器
      • 14.6.1 BASIC
      • 14.6.2 函式說明
      • 14.6.3 readVariable
      • 14.6.4 processCode
      • 14.6.5 runCode
      • 14.6.6 用BASIC 求質數的程式
  • 15 位元運算
    • 15.1 宣告
    • 15.2 檢查位元
      • 15.2.1 [] 語法
      • 15.2.2 set 及reset
    • 15.3 位元且
    • 15.4 位元或
    • 15.5 位元互斥或
      • 15.5.1 位元互斥互換
    • 15.6 位元互補
    • 15.7 位元數目排序
      • 15.7.1 bitset 排序
  • 16 結構
    • 16.1 結構宣告
    • 16.2 結構欄位
    • 16.3 表列初始
    • 16.4 結構指標
      • 16.4.1 -> 取欄位
    • 16.5 記憶體位址
      • 16.5.1 結構大小
      • 16.5.2 欄位擺放與對齊
    • 16.6 參數傳遞
      • 16.6.1 有理數範例
      • 16.6.2 指標傳遞
      • 16.6.3 參考傳遞
    • 16.7 標頭檔
      • 16.7.1 有理數
      • 16.7.2 日期
      • 16.7.3 學生
    • 16.8 生命遊戲
      • 16.8.1 標頭檔
      • 16.8.2 操作函式
    • 16.9 鏡子房間
      • 16.9.1 initRoom
      • 16.9.2 setDir
      • 16.9.3 setMovement
      • 16.9.4 changeDir 及oneStep
      • 16.9.5 inRoom 及windowIndex
      • 16.9.6 hasMirror
      • 16.9.7 主程式
    • 16.10 繞圈
      • 16.10.1 initBoard
      • 16.10.2 printBoard
      • 16.10.3 changeDir 及oneStep
      • 16.10.4 主程式
    • 16.11 位元數目排序
      • 16.11.1 readNumberComputeOnes
      • 16.11.2 sortNumberSet
      • 16.11.3 printNumberSet
      • 16.11.4 主程式
    • 16.12 井字遊戲
      • 16.12.1 init
      • 16.12.2 playerToMove 及playerMoved
      • 16.12.3 play
      • 16.12.4 win
      • 16.12.5 主程式
    • 16.13 簡易BASIC 解譯器
      • 16.13.1 結構宣告
      • 16.13.2 操作函式
      • 16.13.3 readVariable
      • 16.13.4 processCode
      • 16.13.5 runCode
      • 16.13.6 主程式
    • 16.14 結語
  • 17 模組化
    • 17.1 vector
      • 17.1.1 初始化
      • 17.1.2 調整大小
      • 17.1.3 存取
      • 17.1.4 存取範例
      • 17.1.5 批次初始
      • 17.1.6 搜尋
    • 17.2 生命遊戲
      • 17.2.1 個別檔案
      • 17.2.2 個別編譯檔案
      • 17.2.3 聯結個別目的檔
      • 17.2.4 優點
    • 17.3 井字遊戲
      • 17.3.1 個別檔案
      • 17.3.2 個別編譯檔案
    • 17.4 鏡子房間
      • 17.4.1 標頭檔
      • 17.4.2 操作函式
      • 17.4.3 movement.cc
      • 17.4.4 room.cc
      • 17.4.5 主程式
      • 17.4.6 個別編譯並聯結
    • 17.5 繞圈
      • 17.5.1 標頭檔
      • 17.5.2 操作函式
      • 17.5.3 主程式
      • 17.5.4 個別編譯並聯結
      • 17.5.5 重複標頭檔
    • 17.6 BASIC
      • 17.6.1 標頭檔
      • 17.6.2 操作函式
      • 17.6.3 主程式
      • 17.6.4 個別編譯並聯結
  • 18 類別
    • 18.1 井字遊戲
      • 18.1.1 TicTacToe 類別宣告
      • 18.1.2 TicTacToe 實作
    • 18.2 權限
    • 18.3 類別與結構
    • 18.4 建構子
    • 18.5 常數成員函式
    • 18.6 類別與實體
      • 18.6.1 Position
      • 18.6.2 初始列
      • 18.6.3 實體
    • 18.7 類別成員
      • 18.7.1 Movement
      • 18.7.2 實作
      • 18.7.3 類別成員範例
    • 18.8 鏡子房間
      • 18.8.1 Room
      • 18.8.2 Room 實作
      • 18.8.3 主程式
    • 18.9 繞圈
      • 18.9.1 Board
      • 18.9.2 主程式
    • 18.10 生命遊戲
      • 18.10.1 Life
      • 18.10.2 Life 實作
      • 18.10.3 主程式
    • 18.11 BASIC
      • 18.11.1 Variable
      • 18.11.2 VariableSet
      • 18.11.3 Statement
      • 18.11.4 Program
    • 18.12 有理數
      • 18.12.1 轉換建構子
  • 19 遞迴
    • 19.1 定義
      • 19.1.1 自然數判定
    • 19.2 費伯納西數
      • 19.2.1 遞迴實作
    • 19.3 計算時間
    • 19.4 constexpr
      • 19.4.1 使用constexpr
      • 19.4.2 不使用constexpr
    • 19.5 最大公因數
    • 19.6 遞迴實作
    • 19.7 三位撇節法
      • 19.7.1 字串遞迴實作
      • 19.7.2 數字遞迴實作
    • 19.8 河內塔
      • 19.8.1 遞迴解
      • 19.8.2 遞迴實作
    • 19.9 八后問題
      • 19.9.1 遞迴窮舉解
      • 19.9.2 遞迴實作
      • 19.9.3 列出遞迴過程
    • 19.10 老鼠走迷宮
      • 19.10.1 Maze
      • 19.10.2 Maze 操作函式
      • 19.10.3 主程式
    • 19.11 數獨
      • 19.11.1 Sudoku
      • 19.11.2 Sudoku 成員函式
      • 19.11.3 窮舉流程
      • 19.11.4 主程式
    • 19.12 疊紙片
      • 19.12.1 Paper
      • 19.12.2 Solution
      • 19.12.3 PaperStack
      • 19.12.4 主程式
    • 19.13 效能考量
  • 20 繼承
    • 20.1 基礎類別
      • 20.1.1 頂層函式
      • 20.1.2 函式成員
    • 20.2 多載
    • 20.3 繞圈
    • 20.4 老鼠走迷宮
      • 20.4.1 Maze 函式成員
      • 20.4.2 衍生類別使用基礎類別功能
      • 20.4.3 衍生類別增加基礎類別沒有的功能
      • 20.4.4 衍生類別改寫基礎類別功能
      • 20.4.5 老鼠走迷宮主程式
    • 20.5 數獨
      • 20.5.1 Sudoku 函式成員
      • 20.5.2 衍生類別使用基礎類別功能
      • 20.5.3 衍生類別增加基礎類別沒有的功能
      • 20.5.4 數獨主程式
    • 20.6 井字遊戲
      • 20.6.1 TicTacToe 函式成員
      • 20.6.2 衍生類別使用基礎類別功能
      • 20.6.3 衍生類別增加基礎類別沒有的功能
      • 20.6.4 主程式
    • 20.7 生命遊戲
      • 20.7.1 衍生類別使用基礎類別的功能
      • 20.7.2 Life 函式成員
      • 20.7.3 衍生類別增加基礎類別沒有的功能
      • 20.7.4 主程式
    • 20.8 鏡子房間
      • 20.8.1 Room 函式成員
      • 20.8.2 衍生類別使用基礎類別的功能
      • 20.8.3 衍生類別增加基礎類別沒有的功能
      • 20.8.4 鏡子房間主程式
  • 21 運算子
    • 21.1 運算子函式
    • 21.2 位元數目排序
      • 21.2.1 實作
      • 21.2.2 主程式
    • 21.3 有理數
      • 21.3.1 實作
      • 21.3.2 運算子測試
      • 21.3.3 泡沫排序
      • 21.3.4 演算法程式庫
      • 21.3.5 自定比較函式
    • 21.4 比較1 位元個數
    • 21.5 lambda function
      • 21.5.1 capture
      • 21.5.2 有理數排序
    • 21.6 位元數目排序重構
    • 21.7 頂層運算子函式
      • 21.7.1 實作
      • 21.7.2 測試
    • 21.8 錯誤處理
      • 21.8.1 例外
      • 21.8.2 機制
      • 21.8.3 運算元函式例外
      • 21.8.4 讀入Rational
      • 21.8.5 讀入所有Rational
    • 21.9 隱藏類別轉換
      • 21.9.1 隱藏類別轉換分類
      • 21.9.2 有理數
      • 21.9.3 函式參數
    • 21.10 explicit
  • 22 鏈結序列
    • 22.1 資料結構
    • 22.2 記憶體配置
      • 22.2.1 區域變數
      • 22.2.2 動態記憶體配置
    • 22.3 名稱空間
      • 22.3.1 宣告名稱空間
      • 22.3.2 名稱空間用法
    • 22.4 鏈結序列
      • 22.4.1 鏈結序列及節點
      • 22.4.2 函式成員
      • 22.4.3 函式成員實作
      • 22.4.4 鏈結序列操作
    • 22.5 鏈結序列遞迴實作
    • 22.6 排序鏈結序列
      • 22.6.1 insert 函式成員
      • 22.6.2 函式成員實作
      • 22.6.3 SortedList 操作
      • 22.6.4 函式成員實作
      • 22.6.5 遞迴實作測試
      • 22.6.6 刪除節點
    • 22.7 鏈結序列範例
      • 22.7.1 記憶體管理
      • 22.7.2 合併鏈結序列
    • 22.8 堆疊
      • 22.8.1 費伯納西數
  • 23 移動與深度複製
    • 23.1 指標物件問題
      • 23.1.1 Integer
      • 23.1.2 鏈結序列
    • 23.2 移動
      • 23.2.1 左值與右值
      • 23.2.2 移動機制
      • 23.2.3 Integer
      • 23.2.4 LinkedList
    • 23.3 深度複製
      • 23.3.1 Integer
      • 23.3.2 LinkedList
    • 23.4 建構子
  • 24 智慧指標
    • 24.1 共享指標
      • 24.1.1 鏈結序列
    • 24.2 唯一指標
      • 24.2.1 鏈結序列
  • 25 二元樹
    • 25.1 節點類別
      • 25.1.1 別名
      • 25.1.2 名稱空間
      • 25.1.3 函式成員
    • 25.2 二元樹
      • 25.2.1 函式成員
      • 25.2.2 遍歷
      • 25.2.3 搜尋
      • 25.2.4 範例
    • 25.3 二元搜尋樹
      • 25.3.1 類別
      • 25.3.2 函式成員
      • 25.3.3 範例
      • 25.3.4 由大到小
    • 25.4 重建二元樹
      • 25.4.1 實作
      • 25.4.2 範例
    • 25.5 二元樹交集及聯集
      • 25.5.1 遞迴定義
      • 25.5.2 頂層函式實作
      • 25.5.3 頂層函式測試
      • 25.5.4 繼承類別實作
      • 25.5.5 繼承類別測試
      • 25.5.6 新類別實作
      • 25.5.7 新類別測試
      • 25.5.8 比較
  • 26 多型與虛擬函式
    • 26.1 函式綁定
      • 26.1.1 靜態綁定
      • 26.1.2 動態綁定
    • 26.2 多型
    • 26.3 BASIC
      • 26.3.1 Statement.h
      • 26.3.2 statement.cc
      • 26.3.3 program.h
      • 26.3.4 program.cc
      • 26.3.5 BASIC 主程式
  • 27 檔案處理
    • 27.1 開啟與關閉檔案
      • 27.1.1 開啟檔案
      • 27.1.2 關閉檔案
    • 27.2 標準檔案指標
    • 27.3 文字檔案處理
      • 27.3.1 以字元為單位
      • 27.3.2 以行為單位
      • 27.3.3 以變數為單位
    • 27.4 二進制檔案處理
      • 27.4.1 印出檔案內容
      • 27.4.2 輸出入緩衝區
      • 27.4.3 結構陣列
    • 27.5 移動讀寫位置
      • 27.5.1 輸入檔
      • 27.5.2 輸入檔
      • 27.5.3 應用
    • 27.6 EOF
  • 28 運算子及多載
    • 28.1 運算子
    • 28.2 二元樹交集聯集
      • 28.2.1 聯集交集實作
      • 28.2.2 實作測試
    • 28.3 函數
      • 28.3.1 樹狀結構
      • 28.3.2 Function 基礎類別
      • 28.3.3 Function 衍生類別
      • 28.3.4 變數與常數
      • 28.3.5 二元運算子
      • 28.3.6 一元運算子
      • 28.3.7 Function 主程式
      • 28.3.8 檔案關係
      • 28.3.9 動態轉型
    • 28.4 檔案輸入
      • 28.4.1 檔案輸出
  • 29 模板
    • 29.1 類別模板
      • 29.1.1 Stack 模板
      • 29.1.2 括號平衡
      • 29.1.3 費伯納西數
      • 29.1.4 深度優先搜尋
      • 29.1.5 河內塔
      • 29.1.6 八后問題
      • 29.1.7 類別模板優點
    • 29.2 函式模板
      • 29.2.1 輸出模板
      • 29.2.2 深度優先搜尋模板
      • 29.2.3 合併
      • 29.2.4 彈性合併
      • 29.2.5 函式模板優點
    • 29.3 別名模板
  • 30 前置處理
    • 30.1 引入
    • 30.2 定義
    • 30.3 條件編譯
      • 30.3.1 命令列選項
      • 30.3.2 重複定義
      • 30.3.3 是否定義
    • 30.4 巨集函數
    • 30.5 #、LINE 、FILE
    • 30.6 ##
    • 30.7 應用
  • 31 不想教的東西
    • 31.1 goto
      • 31.1.1 問題
    • 31.2 全域變數
      • 31.2.1 問題
    • 31.3 多重繼承
    • 31.4 保護及私有繼承
    • 31.5 朋友類別及函式
    • 31.6 輸出格式
    • 31.7 指標技巧
    • 31.8 修改記憶體
    • 31.9 征服銀河系
  • 徵引書目
  • Index

評分與評論

請登入後再留言與評分
幫助
您好,請問需要甚麼幫助呢?
使用指南

客服專線:0800-000-747

服務時間:週一至週五 AM 09:00~PM 06:00

loading