本書遵循以計算思維能力培養(yǎng)為切入點的教學改革思路,以 C++語言作為實現(xiàn)工具,介紹計算機和程序設計的基礎知識與基本方法。全書的主要內容包括計算機基礎知識、C++程序設計概述、分支結構、循環(huán)控制結構、數(shù)組與指針、函數(shù)、類與對象、繼承與多態(tài)。__eol__在本書編寫過程中,考慮到初學者的認知特點及培養(yǎng)程序設計能力的教學要求,對 C++語言本身的語法規(guī)則做了適當處理和組織編排,突出算法的重要概念和本質特點。全書以實際問題的求解過程為向導,突出從問題到算法,再到程序的一種思維過程,強調計算機求解問題的思路引導與程序設計思維方式的訓練,重點放在程序設計的思想與方法上。__eol__本書例題豐富,與《程序設計基礎學習指導書(C++)》(ISBN 978-7-121-26967-7)一起構成了一套完整的教學用書,可作為高等學校計算機與程序設計基礎課程的教材,也可供社會各類計算機應用人員閱讀參考。__eol__
以案例切入,引出知識點,提高讀者學習興趣。 融入算法設計思想培養(yǎng),將傳統(tǒng)的面向過程程序設計和現(xiàn)代的面向對象程序設計有機結合。 針對核心語法,進行重點解釋,設置經典案例分析,深入淺出,降低初學者學習的難度。 本書包含配套學習用書《程序設計基礎學習指導書(C++)》(ISBN 978-7-121-26967-7),增加知識點結構圖、常見問題討論和常見錯誤分析,以及包含豐富的習題與答案詳解,感興趣的讀者朋友可以對照使用。 本書配套教學資源請登錄http://www.hxedu.com.cn/hxedu/fg/book/bookinfo.html?code=G0267140免費獲取。
李戰(zhàn)春,華中科技大學教授,博士,教育部文科計算機基礎教學指導分委員會委員,負責“大學計算機基礎”校級精品課程建設、“C++程序設計”教學內容與方法改革、學習主體個性化的C++實驗體系構建與實踐等工作。
第1章 計算機基礎知識
1.1計算機的概況
1.1.1計算機的發(fā)展
1.1.2計算機的分類和特點
1.1.3計算機的特點與性能指標
1.1.4計算機的應用領域
1.2計算機中的信息表示
1.2.1信息編碼與數(shù)制的基本概念
1.2.2數(shù)制之間的相互轉換
1.2.3計算機中的數(shù)據表示14
1.3計算機系統(tǒng)的組成及其工作原理
1.3.1計算機硬件組成
1.3.2計算機軟件組成
1.3.3計算機硬件與軟件協(xié)同工作
1.4計算機程序設計與算法基礎
1.4.1程序設計與程序設計語言
1.4.2語言處理程序
1.4.3計算機程序的執(zhí)行過程
1.4.4算法的概念
1.4.5算法設計舉例
1.4.6算法的表示
1.4.7算法的結構化描述
1.5綜合應用——配置自己的計算機
1.6本章小結
1.7習題
第2章 C++程序設計概述
2.1簡單的C++程序實例
2.1.1一個簡單的程序結構
2.1.2C++程序的編輯和實現(xiàn)
2.2C++語言規(guī)則
2.2.1C++的字符集
2.2.2關鍵字
2.2.3標識符
2.2.4標點符號
2.3C++的數(shù)據類型
2.3.1基本數(shù)據類型
2.3.2其他數(shù)據類型
2.4運算符和表達式
2.4.1基本運算符及其表達式
2.4.2C++的運算符、優(yōu)先級和結合性
2.4.3語句
2.5簡單的輸入/輸出
2.5.1數(shù)據的輸入/輸出
2.5.2輸出格式控制
2.6本章小結
2.7習題
第3章 分支結構
3.1if分支結構
3.1.1單分支結構
3.1.2雙分支結構
3.1.3多分支結構語句
3.1.4分支結構中的if嵌套問題
3.2switch開關語句
3.2.1switch開關語句
3.2.2switch應用實例
3.3綜合應用
3.4本章小結
3.5習題
第4章 循環(huán)控制結構
4.1循環(huán)語句
4.1.1for語句
4.1.2while語句
4.1.3do-while語句
4.1.4三種語句的共性和區(qū)別
4.1.5多重循環(huán)
4.2break語句與continue語句
4.2.1break語句
4.2.2continue語句
4.3常用算法應用舉例
4.3.1窮舉法
4.3.2迭代法
4.3.3遞推法
4.4輸入/輸出文件簡介
4.5綜合應用
4.6本章小結
4.7習題
第5章數(shù)組與指針
5.1一維數(shù)組
5.1.1一維數(shù)組的定義與初始化
5.1.2一維數(shù)組的應用
5.2字符數(shù)組與字符串
5.3二維數(shù)組
5.3.1二維數(shù)組的定義與初始化
5.3.2二維數(shù)組的訪問
5.3.3二維數(shù)組的應用
5.4指針
5.4.1內存空間的訪問方式
5.4.2指針變量的聲明與運算
5.4.3指針與數(shù)組的關系
5.4.4多級指針與多維數(shù)組
5.4.5指針數(shù)組
5.5動態(tài)內存分配
5.5.1動態(tài)內存的申請和釋放
5.5.2動態(tài)數(shù)組
5.5.3動態(tài)數(shù)組應用舉例
5.6綜合應用
5.6.1查找算法
5.6.2排序算法
5.6.3約瑟夫問題
5.6.4貪心算法——裝船問題
5.7本章小結
5.8習題
第6章 函數(shù)
6.1函數(shù)基本概念
6.1.1理解函數(shù)
6.1.2C++語言中的函數(shù)
6.2函數(shù)的聲明、定義與調用
6.2.1函數(shù)聲明
6.2.2函數(shù)定義
6.2.3函數(shù)調用
6.2.4程序實例
6.3變量的存儲方式和生存期
6.3.1存儲特性與作用域
6.3.2變量的生存期
6.4函數(shù)參數(shù)傳遞
6.4.1值傳遞
6.4.2指針傳遞
6.4.3引用傳遞
6.4.4數(shù)組參數(shù)
6.4.5程序實例
6.5函數(shù)嵌套與遞歸調用
6.5.1嵌套調用
6.5.2遞歸調用
6.5.3程序實例
6.6函數(shù)重載及參數(shù)默認值設置
6.6.1函數(shù)重載
6.6.2帶默認形參值的函數(shù)
6.7多文件程序結構
6.7.1多文件結構
6.7.2預處理功能
6.7.3多文件應用實例
6.8綜合應用
6.9本章小結
6.10習題
第7章類與對象
7.1從面向過程到面向對象
7.2類和對象
7.2.1類的定義
7.2.2對象的定義與使用
7.2.3構造函數(shù)與析構函數(shù)
7.2.4UML類圖
7.2.5程序實例
7.3類的高級應用
7.3.1類的組合
7.3.2友元
7.3.3運算符重載
7.3.4靜態(tài)成員
7.4本章小結
7.5習題
第8章繼承與多態(tài)
8.1繼承與派生
8.1.1派生類的定義
8.1.2同名覆蓋與新成員的派生
8.1.3類型兼容
8.1.4程序實例
8.2多態(tài)與虛函數(shù)
8.2.1虛函數(shù)的定義
8.2.2純虛函數(shù)
8.3本章小結
8.4習題
附錄A庫函數(shù)集錦
參考文獻
“計算機與程序設計基礎”是一門非常重要的計算機課程,其目的是介紹計算機和程序設計的 基礎知識,使學生掌握算法設計與程序設計的基本思想、方法和技術,通過課后練習,培養(yǎng)學生解 決問題和編程的能力,熟悉上機的全過程及調試程序的基本方法與技巧,從而更好地培養(yǎng)學生的創(chuàng) 新能力,為未來應用計算機進行科學研究與實際應用奠定堅實的基礎。
本書系統(tǒng)介紹了計算機的基礎知識、程序設計基本概念和編程思想。針對初學者的特點,力求 做到深入淺出,將復雜的概念用簡潔淺顯的語言來講述,使讀者可以輕松地入門,循序漸進地提高。
本書由作者總結多年教學實踐經驗編寫而成,針對程序設計的每個知識模塊都采用“提出問 題”→“分析問題設計算法”→“編出程序”→“運行程序”→“介紹所涉及的知識點”→“補 充實例”→“課后習題”的模式組織教學內容,目的是教會學生如何編寫程序,而不是背語法。
按程序設計的思路組織全書的內容,真正講授程序設計,把重點放在講述程序設計的方法上, 而非語言本身,注重對學生進行程序設計方法、算法和計算思維的訓練,將 C++ 語言只作為講授 程序設計的載體工具。書中穿插介紹了遞推法、迭代法、窮舉法、試探法、遞歸法、分治法等算法 設計策略,有利于讀者掌握有關程序設計方法。
根據講述設計方法的需要,對 C++ 語言本身采取“有所取、有所不取”的策略。對于那些常 用的語言成分,與講述程序設計方法有關的語言成分,將穿插在程序設計過程中,并做詳細準確的 介紹。不涉及與講述程序設計方法關系不大且不常用的語法知識。
全書選取大量的案例,以案例為驅動,改變單純解釋語法成分的做法。讓程序設計始終貫穿整 個教學過程,充分體現(xiàn)了以案例為驅動,突出實踐的特點。本書案例多選擇與實際應用相關的、實 用的題目。本書所有例子均在 Visual C++ 6.0 環(huán)境下調試通過。
為了方便學習和加強實驗教學,同時編寫了該書的配套用書《程序設計基礎學習指導書(C++)》(ISBN 978-7-121-26967-7)。
本書的全部資源和配套課件可從華信教育資源網 http://www.hxedu.com.cn 注冊免費下載。
本書的第 1 章由李戰(zhàn)春編寫,第 2 章由黃曉濤編寫,第 3 章由徐永兵編寫,第 4 章由黃慶鳳編寫,第 5 章由江敏編寫,第 6 章由胡兵編寫,第 7 章和第 8 章由李赤松編寫。在本書的編寫過程中, 編者查閱和參考了大量文獻,在此對書后所列出的參考文獻的作者一并表示感謝。另外,對廣大讀 者和師生對本書提出誠懇的建議和意見也表示衷心的感謝。由于作者水平有限,書中難免存在不足 和錯誤之處,懇請讀者批評指正。