出版時間:2010.7 出版社:機(jī)械工業(yè)出版社 作者:(美)Bjarne Stroustrup 頁數(shù):649 譯者:王剛 等
Tag標(biāo)簽:無
前言
程序設(shè)計是這樣一門藝術(shù),它將問題求解方案描述成計算機(jī)可以執(zhí)行的形式。程序設(shè)計中很多工作都花費(fèi)在尋找求解方案以及對其求精上。通常,只有在真正編寫程序求解一個問題的過程中才會對問題本身理解透徹。本書適合于那些從未有過編程經(jīng)驗但愿意努力學(xué)習(xí)程序設(shè)計的初學(xué)者,它能幫助你理解使用C++語言進(jìn)行程序設(shè)計的基本原理并獲得實踐技巧。我的目標(biāo)是使你獲得足夠多的知識和經(jīng)驗,以便能使用最新最好的技術(shù)進(jìn)行簡單有用的編程工作。達(dá)到這一目標(biāo)需要多長時間呢?作為大學(xué)一年級課程的一部分,你可以在一個學(xué)期內(nèi)完成這本書的學(xué)習(xí)(假定你有另外四門中等難度的課程)。如果你是自學(xué)的話,不要期望能花費(fèi)更少的時間完成學(xué)習(xí)(一般來說,每周15個小時,共14周是合適的學(xué)時安排)。三個月可能看起來是一段很長的時間,但要學(xué)習(xí)的內(nèi)容很多,寫第一個簡單程序之前,就要花費(fèi)一個小時。而且,所有學(xué)習(xí)過程都是漸進(jìn)的:每一章都會介紹一些新的有用的概念,并通過從實際應(yīng)用中獲取的例子來闡述這些概念。隨著學(xué)習(xí)進(jìn)程的推進(jìn),你通過程序代碼表達(dá)思想的能力——也就是讓計算機(jī)按你的期望工作的能力,會逐漸穩(wěn)步地提高。我從不會說:“先學(xué)習(xí)一個月的理論知識,然后看看你是否能使用這些理論吧。”為什么要學(xué)習(xí)程序設(shè)計呢?因為計算機(jī)文化是建立在軟件之上的。如果不理解軟件,那么你將退化到只能相信“魔術(shù)”的境地,并且將被排除在很多最為有趣、最具經(jīng)濟(jì)效益和社會效益的領(lǐng)域之外。當(dāng)談?wù)摮绦蛟O(shè)計時,我所想到的是整個計算機(jī)程序家族,從帶有GuI(圖形用戶界面)的個人計算機(jī)程序,到工程計算和嵌入式系統(tǒng)控制程序(如數(shù)碼相機(jī)、汽車和手機(jī)中的程序),以及文字處理程序等,在很多日常應(yīng)用和商業(yè)應(yīng)用中都能看到這些程序。程序設(shè)計與數(shù)學(xué)有些相似,如果認(rèn)真去做的話,它會是一種非常有用的智力訓(xùn)練,可以鍛煉我們的思考能力。然而,由于計算機(jī)能做出反饋,程序設(shè)計又不像大多數(shù)數(shù)學(xué)形式那么抽象,因而對更多人來說更容易接受??梢哉f,程序設(shè)計是一條能夠打開你的眼界,將世界變得更美好的途徑。最后,程序設(shè)計非常有趣。為什么學(xué)習(xí)c++這門程序設(shè)計語言呢?學(xué)習(xí)程序設(shè)計不可能不借助一門程序設(shè)計語言,而c++直接支持現(xiàn)實世界中的軟件所使用的那些關(guān)鍵概念和技術(shù)。c++是使用最為廣泛的程序設(shè)計語言之一,其應(yīng)用領(lǐng)域幾乎沒有局限。從大洋深處到火星表面,到處都能發(fā)現(xiàn)c++程序的身影。C++是由一個開放的國際標(biāo)準(zhǔn)組織全面考量、精心設(shè)計的。在任何一種計算機(jī)平臺上都能找到高質(zhì)量的和免費(fèi)的C++實現(xiàn)。而且,你用c++所學(xué)到的程序設(shè)計思想,大多數(shù)都可直接用于其他程序設(shè)計語言,如c、c#、Fonran以及Java。最后一個原因,我喜歡c++適合編寫優(yōu)美、高效的代碼這一特點。
內(nèi)容概要
本書是經(jīng)典程序設(shè)計思想與C++開發(fā)實踐的完美結(jié)合,是C++之父回歸校園后對C++編程原理和技巧的全新闡述。書中全面地介紹了程序設(shè)計基本原理,包括基本概念、設(shè)計和編程技術(shù)、語言特性以及標(biāo)準(zhǔn)庫等,教你學(xué)會如何編寫具有輸入、輸出、計算以及簡單圖形顯示等功能的程序。此外,本書通過對C++思想和歷史的討論、對經(jīng)典實例(如矩陣運(yùn)算、文本處理、測試以及嵌入式系統(tǒng)程序設(shè)計)的展示,以及對C語言的簡單描述,為你呈現(xiàn)了一幅程序設(shè)計的全景圖。
·C++初學(xué)者的權(quán)威指南。無論你是從事軟件開發(fā)還是其他領(lǐng)域的工作,本書將為你打開程序開發(fā)之門。
·中高級程序員的必備參考。通過觀察程序設(shè)計大師如何處理編程中的各種問題,使你獲得新的領(lǐng)悟和指引。
·全面闡釋C++基本概念和技術(shù)。與傳統(tǒng)的C++教材相比,本書對基本概念和技術(shù)的介紹更為深入,為你編寫實用、正確、易維護(hù)和有效的代碼打下堅實的基礎(chǔ)。
·強(qiáng)調(diào)現(xiàn)代C++編程風(fēng)格。本書從開篇就介紹現(xiàn)代C++程序設(shè)計技術(shù),并揭示了大量關(guān)于如何使用C++標(biāo)準(zhǔn)庫來簡化程序設(shè)計的原理,使你快速掌握實用編成技巧。
·配套教輔資源豐富。本書網(wǎng)站(www.stroustrup.com/Programming)提供了豐富的輔助資料,包括實例源碼、PPT、勘誤等。
作者簡介
Bjarne Stroustrup
英國劍橋大學(xué)計算機(jī)科學(xué)博士,C++的設(shè)計者和最初的實現(xiàn)者。他現(xiàn)在是德州農(nóng)工大學(xué)計算機(jī)科學(xué)首席教授。1993年,由于在C++領(lǐng)域的重大貢獻(xiàn),他獲得了ACM的
Grace Murray Hopper大獎并成為ACM院士。在進(jìn)入學(xué)術(shù)界之前,他在AT&T貝爾實驗室工作,是ISO
C++標(biāo)準(zhǔn)委
書籍目錄
出版者的話
譯者序
前言
第0章 致讀者
0.1 本書結(jié)構(gòu)
0.2 講授和學(xué)習(xí)本書的方法
0.3 程序設(shè)計和計算機(jī)科學(xué)
0.4 創(chuàng)造性和問題求解
0.5 反饋方法
0.6 參考文獻(xiàn)
0.7 作者簡介
第1章 計算機(jī)、人與程序設(shè)計
1.1 介紹
1.2 軟件
1.3 人
1.4 計算機(jī)科學(xué)
1.5 計算機(jī)已無處不在
1.6 程序員的理想
第一部分 基本知識
第2章 Hello,World!
2.1 程序
2.2 經(jīng)典的第一個程序
2.3 編譯
2.4 鏈接
2.5 編程環(huán)境
第3章 對象、類型和值
3.1 輸入
3.2 變量
3.3 輸入和類型
3.4 運(yùn)算和運(yùn)算符
3.5 賦值和初始化
3.6 組合賦值運(yùn)算符
3.7 命名
3.8 類型和對象
3.9 類型安全
第4章 計算
4.1 計算
4.2 目標(biāo)和工具
4.3 表達(dá)式
4.4 語句
4.5 函數(shù)
4.6 向量
4.7 語言特性
第5章 錯誤
5.1 介紹
5.2 錯誤的來源
5.3 編譯時錯誤
5.4 連接時錯誤
5.5 運(yùn)行時錯誤
5.6 異常
5.7 邏輯錯誤
5.8 估計
5.9 調(diào)試
5.10 前置條件和后置條件
5.11 測試
第6章 編寫一個程序
6.1 一個問題
6.2 對問題的思考
6.3 回到計算器問題
6.4 文法
6.5 將文法轉(zhuǎn)換為程序
6.6 試驗第一個版本
6.7 試驗第二個版本
6.8 單詞流
6.9 程序結(jié)構(gòu)
第7章 完成一個程序
7.1 介紹
7.2 輸入和輸出
7.3 錯誤處理
7.4 處理負(fù)數(shù)
7.5 模運(yùn)算:%
7.6 清理代碼
7.7 錯誤恢復(fù)
7.8 變量
第8章 函數(shù)相關(guān)的技術(shù)細(xì)節(jié)
8.1 技術(shù)細(xì)節(jié)
8.2 聲明和定義
8.3 頭文件
8.4 作用域
8.5 函數(shù)調(diào)用和返回
8.6 求值順序
8.7 名字空間
第9章 類相關(guān)的技術(shù)細(xì)節(jié)
9.1 用戶自定義類型
9.2 類和成員
9.3 接口和實現(xiàn)
9.4 演化一個類
9.5 枚舉類型
9.6 運(yùn)算符重載
9.7 類接口
9.8 Date類
第二部分 輸入和輸出
第10章 輸入/輸出流
第11章 定制輸入/輸出
第12章 一個顯示模型
第13章 圖形類
第14章 設(shè)計圖形類
第15章 繪制函數(shù)圖和數(shù)據(jù)圖
第16章 圖形用戶界面
第三部分 數(shù)據(jù)結(jié)構(gòu)和算法
第17章 向量和自由空間
第18章 向量和數(shù)組
第19章 向量、模板和異常
第20章 容器和迭代器
第21章 算法和映射
第四部分 拓寬視野
第22章 理念和歷史
第23章 文本處理
第24章 數(shù)值計算
第25章 嵌入式系統(tǒng)程序設(shè)計
第26章 測試
第27章 C語言
術(shù)語表
參考書目
第五部分 附錄?
附錄A C++語言概要
附錄B 標(biāo)準(zhǔn)庫概要
附錄C Visual Studio簡要入門教程
附錄D 安裝FLTK
附錄E GUI實現(xiàn)
章節(jié)摘錄
插圖:第0章 致讀者 本章匯集了多種信息,目的是使你對本書剩余部分的內(nèi)容有初步了解。你可以略過本章,直接閱讀后面你感興趣的部分。對教師來說,可以立即發(fā)現(xiàn)很多有用的內(nèi)容。如果沒有一個好的老師指導(dǎo)你學(xué)習(xí)本書,請不要試圖閱讀并理解本章的所有內(nèi)容,只要閱讀“本書結(jié)構(gòu)”一節(jié)和“講授和學(xué)習(xí)本書的方法”一節(jié)的第一部分即可。當(dāng)你已經(jīng)能自如編寫和執(zhí)行小程序時,可能需要回過頭來重讀本章。0.1 本書結(jié)構(gòu)本書由四個部分和若干個附錄組成:·第一部分:基本知識,介紹了程序設(shè)計的基本概念和技術(shù),以及開始編寫代碼需要了解的一些C++語言和庫的知識。這部分包括類型系統(tǒng)、算術(shù)運(yùn)算、控制結(jié)構(gòu)、錯誤處理,以及函數(shù)和用戶自定義類型的設(shè)計、實現(xiàn)和使用等內(nèi)容?!さ诙糠郑狠斎耄敵?,介紹了如何從鍵盤和文件獲取數(shù)值和文本數(shù)據(jù),以及如何生成相應(yīng)的輸出到屏幕和文件。然后介紹了如何以圖形化方式表示數(shù)值數(shù)據(jù)、文本和幾何圖形,以及如何從圖形用戶界面(graphical user interface,GUI)獲取輸入數(shù)據(jù)。·第三部分:數(shù)據(jù)結(jié)構(gòu)和算法,關(guān)注C++標(biāo)準(zhǔn)庫中的容器和算法框架(標(biāo)準(zhǔn)模板庫standard template library.STL)。展示了容器(如向量、列表和映射)是如何(用指針、數(shù)組、動態(tài)內(nèi)存、異常和模板)實現(xiàn)的以及如何使用它們。還展示了標(biāo)準(zhǔn)庫算法(如排序、查找和內(nèi)積)如何設(shè)計及使用。·第四部分:拓寬視野,通過對C++思想和歷史的討論,通過一些實例(如矩陣運(yùn)算、文本處理、測試以及嵌入式系統(tǒng)程序設(shè)計),以及通過C語言的一個簡單描述,為我們呈現(xiàn)了程序設(shè)計的一個全景。·第五部分:附錄,提供了一些不適合作為教學(xué)但很有用的內(nèi)容,如c++語言和標(biāo)準(zhǔn)庫的概要介紹,以及集成開發(fā)環(huán)境(integrated development environment,IDE)和圖形用戶界面庫(GUl庫)的入門簡介等。
媒體關(guān)注與評論
“這本書非常好,首先它以簡單、易懂的方式闡述了C++原理和實踐.而且強(qiáng)調(diào)養(yǎng)成良好的編程習(xí)慣,注意編程細(xì)節(jié),C++編程人員都應(yīng)該人手一冊,常讀常新?!?“作為C++語言的發(fā)明人,作者站在專業(yè)程序員的角度講述如何為現(xiàn)實世界中的計算問題設(shè)計有效的解決方案。盡管《C++程序設(shè)計原理與實踐》采用的是C++語言,但其中涵蓋的程序設(shè)計思想同樣適用于其他語言,而且這些頗具實踐意義的編程思想還可以彌補(bǔ)高校程序設(shè)計課程偏重語法細(xì)節(jié),忽視總體思想方法和整體過程實現(xiàn)的問題,使讀者充分認(rèn)識到程序設(shè)計是一種解決問題的方法和能力,最終是對程序設(shè)計語言的應(yīng)用,這也是《C++程序設(shè)計原理與實踐》的價值所在?!?“這本書是學(xué)習(xí)程序設(shè)計的最佳選擇.無論是課堂學(xué)習(xí)還是自學(xué),《C++程序設(shè)計原理與實踐》獨具深度的思想、縝密的思路、開闊的視野及專業(yè)的講解都會使你獲益匪淺?!?“這本書與作者另一本享有盛譽(yù)的著作——《C++程序設(shè)計語言(特別版)》相輔相成……” ——Amazon評論
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載