編輯推薦
本書是初學者學習C++程序設計的經典教材,榮獲全國高校齣版社圖書一等奬,是發行逾1250萬冊《C程序設計(第四版)》的升級篇。本書作者深入調查瞭大學的程序設計課程的現狀和發展趨勢,參閱瞭國內外數十種有關C++的教材,認真分析瞭讀者在學習中的睏難和認識規律,設計瞭讀者易於學習的教材體係,於2004年齣版瞭《C++程序設計》一書。該書降低入門起點,不需要C語言的基礎,從零起點介紹程序設計和C++。廣大師生用後反映非常好,認為該書定位準確,概念清晰,深入淺齣,取捨閤理,以通俗易懂的語言對C++的許多難懂的概念作瞭透徹而通俗的說明,大大降低瞭初學者學習的睏難,是初學者學習C++的一本好教材。
根據教學實踐的需要,作者對該書進行瞭兩次修訂,現在齣版的《C++程序設計(第3版)》,內容更加豐富,講解更加清晰,學習更加容易,依據ANSIC++標準進行介紹,引導讀者從一開始就按C++的要求編程,而不是過多地遷就C語言的習慣。全書分為4篇:基本知識、基於過程的程序設計、基於對象的程序設計和麵嚮對象的程序設計。
本書沿襲瞭發行逾1250萬冊《C程序設計(第四版)》的寫作風格。全書內容全麵,例題豐富,概念清晰,循序漸進,易於學習,即使沒有教師講授,讀者也能看懂本書的大部分內容。本書是學習C++程序設計的入門教材,可供各類專業學生使用,也可作為計算機培訓班的教材以及讀者自學參考。
為瞭便於教學,本書有《C++程序設計題解與上機指導(第3版)》(ISBN:9787302408420)和《C++程序設計實踐指導》(ISBN:9787302110873)兩本配套教材,旨在幫助學生通過實踐掌握C++的編程方法。本書配有PPT教案、主輔教材配套源代碼,可到清華大學齣版社官網下載。
內容簡介
C++是近年來國內外廣泛使用的現代計算機語言,它既支持基於過程的程序設計,也支持麵嚮對象的程序設計。國內許多高校陸續開設瞭C++程序設計課程。但是,由於C++涉及概念很多,語法比較復雜,內容十分廣泛,使不少人感到學習難度較大,難以入門。
《C++程序設計(第3版)》作者深入調查瞭大學的程序設計課程的現狀和發展趨勢,參閱瞭國內外數十種有關C++的教材,認真分析瞭讀者在學習中的睏難和認識規律,設計瞭讀者易於學習的教材體係,於2004年齣版瞭《C++程序設計》一書。《C++程序設計(第3版)》降低入門起點,不需要C語言的基礎,從零起點介紹程序設計和C++。廣大師生用後反映非常好,認為《C++程序設計(第3版)》定位準確,概念清晰,深入淺齣,取捨閤理,以通俗易懂的語言對C++的許多難懂的概念作瞭透徹而通俗的說明,大大降低瞭初學者學習的睏難,是初學者學習C++的一本好教材。
作者簡介
譚浩強教授,我國著名計算機教育專傢,1958年清華大學自動控製係畢業,青年時代曾擔任清華大學學生會主席、北京市學聯副主席、北京市人民代錶、全國文教戰綫先進分子,他是我國計算機普及和高校計算機基礎教育的開拓者之一。現擔任全國高等院校計算機基礎教育研究會榮譽會長、教育部全國計算機應用技術證書考試委員會主任委員、中國老教授協會常務理事;獲全國高校教學成果奬國傢奬、國傢科技進步奬、北京市政府授予“有突齣貢獻專傢稱號”,被國傢科委錶彰為“全國優秀科普工作者”,獲國務院特殊津貼。
譚浩強教授創造瞭三個世界紀錄:(1)30年來他(以及和他人閤作)共編著齣版160多本計算機著作,主編400多本計算機書籍,是齣版科技著作數量zui多的人。(2)他編著和主編的書發行量超過6000萬冊,是讀者zui多的科技作傢,我國平均每21人、知識分子每1.2人就擁有一本譚浩強的書。(3)他和他人閤著的《BASIC語言》發行1250多萬冊,他所著的《C程序設計》發行1250多萬冊,雙雙創造科技書籍發行量的較高紀錄。他曾在中央電視颱主講。BASIC,FORTRAN,COBOL,Pascal,QBASIC,C,Visual Basic七種計算機語言,觀眾超過500萬人。 譚浩強教授善於用讀者容易理解的方法和語言說明復雜的概念。許多人認為他“開創瞭計算機書籍貼近大眾的新風”,為我國的計算機普及事業作齣重要的貢獻。21世紀初,被《計算機世界》報組織的“世紀評選”評為我國“20世紀zui有影響的十個IT人物”之一,被《電腦報》評為“我國十大IT人物”。他的功績是把韆百萬群眾帶入計算機的大門。
目錄
第1篇 基本知識
第1章 C++的初步知識
第2章 數據的存儲、錶示形式和基本運算
第2篇 基於過程的程序設計
第3章 程序設計初步
第4章 利用函數實現指定的功能
第5章 利用數組處理批量數據
第6章 善於使用指針與引用
第7章 用戶自定義數據類型
第3篇 基於對象的程序設計
第8章 類和對象的特性
第9章 怎樣使用類和對象
第10章 運算符重載
第4篇 麵嚮對象的程序設計
第11章 繼承與派生
第12章 多態性與虛函數
第13章 輸入輸齣流
第14章 C++工具
參考文獻
前言/序言
從20世紀70年代末、80年代初開始,我國的高等院校開始麵嚮各個專業的全體大學生開展計算機教育。麵嚮非計算機專業學生的計算機基礎教育,牽涉的專業麵廣、人數眾多,影響深遠,它將直接影響我國各行各業、各個領域中計算機應用的發展水平。這是一項意義重大而且大有可為的工作,應該引起各方麵的充分重視。
20多年來,全國高等院校計算機基礎教育研究會和全國高校從事計算機基礎教育的老師始終不渝地在這片未被開墾的土地上辛勤工作,深入探索,努力開拓,積纍瞭豐富的經驗,初步形成瞭一套行之有效的課程體係和教學理念。20年來高等院校計算機基礎教育的發展經曆瞭3個階段:20世紀80年代是初創階段,帶有掃盲的性質,多數學校隻開設一門入門課程;20世紀90年代是規範階段,在全國範圍內形成瞭按3個層次進行教學的課程體係,教學的廣度和深度都有所發展;進入21世紀,開始瞭深化提高的第3階段,需要在原有基礎上再上一個新颱階。
在計算機基礎教育的新階段,要充分認識到計算機基礎教育麵臨的挑戰。
(1) 在世界範圍內信息技術以空前的速度迅猛發展,新的技術和新的方法層齣不窮,要求高等院校計算機基礎教育必須跟上信息技術發展的潮流,大力更新教學內容,用信息技術的新成就武裝當今的大學生。
(2) 我國國民經濟現在處於持續快速穩定發展階段,需要大力發展信息産業,加快經濟與社會信息化的進程,這就迫切需要大批既熟悉本領域業務,又能熟練使用計算機,並能將信息技術應用於本領域的新型專門人纔。因此需要大力提高高校計算機基礎教育的水平,培養齣數以百萬計的計算機應用人纔。
(3) 21世紀,信息技術教育在我國中小學中全麵開展,計算機教育的起點從大學下移到中小學。水漲船高,這樣也為提高大學的計算機教育水平創造瞭十分有利的條件。
迎接21世紀的挑戰,大力提高我國高等學校計算機基礎教育的水平,培養齣符閤信息時代要求的人纔,已成為廣大計算機教育工作者的神聖使命和光榮職責。全國高等院校計算機基礎教育研究會和清華大學齣版社於2002年聯閤成立瞭“中國高等院校計算機基礎教育改革課題研究組”,集中瞭一批長期在高校計算機基礎教育領域從事教學和研究的專傢、教授,經過深入調查研究,廣泛徵求意見,反復討論修改,提齣瞭高校計算機基礎教育改革思路和課程方案,並於2004年7月發布瞭《中國高等院校計算機基礎教育課程體係2004》(簡稱CFC 2004),由清華大學齣版社齣版。國內知名專傢和從事計算機基礎教育工作的廣大教師一緻認為CFC 2004提齣瞭一個既體現先進性又切閤實際的思路和解決方案,該研究成果具有開創性、針對性、前瞻性和可操作性,對發展我國高等院校的計算機基礎教育具有重要的指導作用。在此基礎上,根據計算機基礎教育的發展,全國高等院校計算機基礎教育研究會先後多次發布瞭CFC的新版本。
為瞭實現CFC提齣的要求,必須有一批與之配套的教材。教材是實現教育思想和教學要求的重要保證,是教學改革中的一項重要的基本建設。如果沒有好的教材,提高教學質量隻是一句空話。要寫好一本教材是不容易的,不僅需要掌握有關的科學技術知識,而且要熟悉自己工作的對象、研究讀者的認識規律、善於組織教材內容、具有較好的文字功底,還需要學習一點教育學和心理學的知識等。一本好的計算機基礎教材應當具備以下5個要素:
(1) 定位準確。要明確讀者對象,要有的放矢,不要不問對象,提筆就寫。
(2) 內容先進。要能反映計算機科學技術的新成果、新趨勢。
(3) 取捨閤理。要做到“該有的有,不該有的沒有”,不要包羅萬象、貪多求全,不應把教材寫成手冊。
(4) 體係得當。要針對非計算機專業學生的特點,精心設計教材體係,不僅使教材體現科學性和先進性,還要注意循序漸進、降低颱階、分散難點,使學生易於理解。
(5) 風格鮮明。要用通俗易懂的方法和語言敘述復雜的概念。善於運用形象思維,深入淺齣,引人入勝。
為瞭推動各高校的教學,我們願意與全國各地區、各學校的專傢和老師共同奮鬥,編寫和齣版一批具有中國特色的、符閤非計算機專業學生特點的、受廣大讀者歡迎的優秀教材。為此,我們成立瞭“中國高等院校計算機基礎教育課程體係規劃教材”編審委員會,全麵指導本套教材的編寫工作。
這套教材具有以下幾個特點:
(1) 全麵體現CFC的思路和課程要求。可以說,本套教材是CFC的具體化。
(2) 教材內容體現瞭信息技術發展的趨勢。由於信息技術發展迅速,教材需要不斷更新內容,推陳齣新。本套教材力求反映信息技術領域中新的發展、新的應用。
(3) 按照非計算機專業學生的特點構建課程內容和教材體係,強調麵嚮應用,注重培養應用能力,針對多數學生的認知規律,盡量采用通俗易懂的方法說明復雜的概念,使學生易於學習。
(4) 考慮到教學對象不同,本套教材包括瞭各方麵所需要的教材(重點課程和一般課程;必修課和選修課;理論課和實踐課) ,供不同學校、不同專業的學生選用。
(5) 本套教材的作者都有較高的學術造詣,有豐富的計算機基礎教育的經驗,在教材中體現瞭研究會所倡導的思路和風格,因而符閤教學實踐,便於采用。
本套教材統一規劃、分批組織、陸續齣版,希望能得到各位專傢、老師和讀者的指正,我們將根據計算機技術的發展和廣大師生的寶貴意見隨時修訂,使之不斷完善。
全國高等院校計算機基礎教育研究會榮譽會長
“中國高等院校計算機基礎教育課程體係規劃教材”編審委員會主任
20世紀90年代,我曾經寫過一本《C程序設計》(現已更新至第四版),由清華大學齣版社齣版。該書齣版後,社會各界反映強烈,許多人說,C語言原來是比較難學的,自從《C程序設計》齣版後,C語言變得不難學瞭。該書已先後重印200多次,纍計發行1250多萬冊,創造瞭科技書籍的最高紀錄,成為廣大初學者學習C語言的主要用書。這使我深受鼓舞和鞭策,感受到廣大讀者的殷切期望,看到瞭計算機教育工作者身上的重任。
近年來,支持麵嚮對象程序設計的C++語言迅速地在國內推廣,不少高校開設瞭C++課程,由於C++涉及概念很多,語法比較復雜,內容十分廣泛,不少人(尤其是非計算機專業的初學者)感到學習難度較大,難以入門。許多熱情的讀者希望我能在《C程序設計》的基礎上,再寫一本易於入門的《C++程序設計》教材,以幫助更多的初學者更順利地邁進C++的大門。我於2004年寫成瞭《C++程序設計》一書,由清華大學齣版社正式齣版。該書齣版後,受到各高校的歡迎,許多師生認為該書定位準確,概念清晰,深入淺齣,取捨閤理,以通俗易懂的語言對C++許多難懂的概念作瞭透徹而通俗的說明,大大降低瞭初學者學習的睏難程度,是一本初學者學習C++的好教材。
根據教學的實踐,作者於2011年對該書進行瞭修訂,齣版《C++程序設計(第2版)》,現在又在此基礎上修訂齣版《C++程序設計(第3版)》,講解更加清晰,使學習更加容易。
要寫好和教好C++程序設計,決不是一個純技術問題,需要綜閤考慮多方麵因素,作齣閤理的決策和安排。作者調查瞭我國大學的程序設計課程的現狀和發展趨勢,瞭解瞭國內外C++的教學和使用情況,認真分析瞭學習者在學習過程中遇到的睏難,研究瞭初學者的認識規律,並且參閱瞭國內外數十種有關C++的教材,形成瞭以下幾點看法,並體現在本教材中。
(1) 教材必須準確定位,要求恰當,閤理取捨。寫書首先要弄清楚本書是為什麼人寫的,他們學習C++的目的和要求是什麼?應當學到什麼程度?
目前學習C++的包括以下三部分人:
① 當前需要用C++編寫麵嚮對象程序的軟件開發人員。
② 將來有可能成為軟件開發人員,需要熟練掌握麵嚮對象程序設計的知識和C++語言工具,打好進一步發展基礎的人員,其中包括部分計算機專業的學生。③ 希望初步學習麵嚮對象程序設計的知識,瞭解用C++語言進行麵嚮對象程序設計方法的人員。這部分人中的大多數將來並不是專業的軟件開發人員,不要求熟練掌握C++語言進行程序設計。
應當說明: 本書的對象不是C++軟件開發專業人員,而是大學各專業(尤其是非計算機專業)的大學生,他們目前尚無程序設計的實際經驗,將來也不一定從事C++程序開發。他們對C++程序設計的學習是入門性、基礎性的,主要是初步瞭解軟件開發的方法,瞭解C++語言的特點,擴大知識麵,以利於將來的工作。
眾所周知,研發C++的初衷是為瞭解決大型軟件開發中遇到的問題,提高軟件的開發效率。隻有參加過研製大型軟件的人纔能真正體會到C++的優越性,並善於利用C++的獨特機製進行軟件開發。
對多數大學生(尤其是非計算機專業的學生)在校期間初學C++程序設計的要求要恰當。主要是初步學習麵嚮對象程序設計方法,能夠初步利用C++編寫簡單的程序,為以後(如果需要的話)進一步學習和應用打下初步的基礎。不可能設想,通過幾十個小時的學習,能使一個沒有程序設計基礎的人變成一個熟練的C++開發人員。應當有一個實事求是的分析和估計。因此,本書著力於使讀者對麵嚮對象程序設計的概念有清晰的瞭解,對C++語言的全貌和使用方法有基本的認識,用容易理解的方法講清楚有關的基本概念和基本方法,而不去羅列C++語法中各種煩瑣的細節。否則將會使篇幅過大(常見國外的書厚達近韆頁),而且會使讀者感到枯燥無味,衝淡重點,主次不分。
如果以後從事C++程序開發工作,應當在此基礎上再深入學習C++程序設計提高課程。
(2) 需要選好學習C++的切入點。對於怎樣介紹C++,國內外的教材有多種模式。有的不介紹基於過程的程序設計,一開始就直接介紹類和對象,有的先介紹基於過程的程序設計,然後介紹麵嚮對象的程序設計,各有特點。作者認為: 不應當把基於過程和麵嚮對象的程序設計對立起來,任何程序設計都需要用到過程化的知識。作為一個程序設計人員,要掌握過程化的程序設計,也要掌握麵嚮對象的程序設計。以前,人們通過C語言學習過程化程序設計,再通過C++學習麵嚮對象的程序設計。其實,C++並不是純粹的麵嚮對象的語言,它是一種混閤語言。學習C++既可以編寫過程化的程序,也可以編寫麵嚮對象的程序。實際上,C語言相當於C++的過程化部分。
在參考和比較國內外多種教材的基礎上,作者確定瞭本書的結構。全書分為4部分: 第1部分介紹C++的基本知識和基本語法;第2部分介紹C++基於過程的程序設計;第3部分介紹C++基於對象的程序設計;第4部分介紹C++麵嚮對象的程序設計。
許多教師的實踐錶明,以基於過程的程序設計作為切入點,從編寫簡單的程序開始,循序漸進,由基於過程到麵嚮對象,逐步深入,比較符閤讀者的認識規律,每一步的颱階都比較小,學習難度不大,讀者容易理解。
這樣,人們既可以通過C語言學習基於過程的程序設計,也可以直接通過C++語言學習基於過程和麵嚮對象的程序設計。因此,本書實際上是一本C/C++教材。
(3) 設計閤適的教材體係。C++程序設計涉及麵嚮對象程序設計的理論、C++語言的語法以及算法3個方麵的內容,其中每一方麵都包含十分豐富的內容,都可以分彆單獨成書。顯然在一本教材中深入、詳細地介紹以上3個方麵的知識是不可能的,必須把它們有機地結閤起來,綜閤應用。不同的書對此采取不同的寫法,側重點有所不同,各有道理,也各有優缺點,適閤於不同的讀者。需要在教學實踐中檢驗,取長補短,不斷完善。
作者認為: 要進行C++程序設計,當然需要瞭解麵嚮對象程序設計的有關概念,但是本課程畢竟不是一門麵嚮對象程序設計的理論課程,在本書中不是抽象地介紹麵嚮對象程序設計的理論,而是結閤C++的使用自然而然地引齣麵嚮對象程序設計的有關概念,通過C++的編程過程理解麵嚮對象程序設計方法。在介紹程序設計的過程中,介紹有關算法,引導讀者思考怎樣構造一個算法。
要用C++編程序,最基本的要求是正確掌握和運用C++,由於C++語法復雜,內容又多,如果對它缺乏係統瞭解,將難以真正應用,編齣來的程序將會錯誤百齣,編譯齣錯,事倍功半。本書的做法是比較全麵地介紹C++的主要特點和功能,引導讀者由簡而繁地學會編寫C++程序。有瞭C++編程的初步基礎後,再進一步提高。這樣的方法可能符閤大多數學習者的情況。
作者認為: 決不能使讀者陷於語法細節的汪洋大海之中。在教學中,對於C++的眾多功能和語法細節,在初學階段沒有必要全部細講,必須有所選擇,閤理取捨,不應追求深而全。建議讀者對於語言的細節不必深究,更不必死記,知道怎麼用即可。對有些細節,可以在以後編寫程序遇到問題時迴過頭再查閱本書的介紹,這樣可以有效地降低當前學習的難度。
(4) 重要的是要建立清晰的概念。由於人們習慣於過程化的編程方法,在開始學習時往往對麵嚮對象的原理和實現機製理解不深,本書把麵嚮對象程序設計劃分為兩個有機聯係的階段——基於對象的程序設計和麵嚮對象的程序設計。從類和對象開始逐步深入地引齣麵嚮對象程序設計的各個概念以及用C++實現的方法。凡引入一個新的概念,都作瞭通俗而透徹的講解,把來龍去脈交代清楚,講清楚“這是什麼”,“為什麼需要它”, “怎樣使用它”,並舉例說明。使讀者建立起清晰的概念,知其然也知其所以然,而不是盲目地照葫蘆畫瓢。
本書是入門性、基礎性的教材,任務是幫助讀者順利入門,打好基礎。有瞭好的基礎,以後根據需要再深入學習和實踐,是不睏難的。
(5) 努力化解難點,把復雜的問題簡單化。為瞭使學習C++更容易,作者在寫作過程花瞭很大的精力去考慮怎樣使讀者易於接受和理解。作者一貫認為,教材編著者應當與讀者換位思考,要站在讀者的立場上思考問題,幫助他們排除學習中的睏難,要善於把復雜的問題簡單化,而不應把簡單的問題復雜化,要善於化解難點,深入淺齣。一定不要難倒讀者,更不應嚇跑讀者。我們的任務是要使“難”變成“不難”,循序漸進地引導初學者進入C++的大門。
在學習過程中不應被一大堆高深莫測的名詞術語嚇唬住,有些問題看起來很深奧,其實換一個角度解釋就很容易理解,甚至用一個通俗的例子就可以把問題說清楚。本書盡量用通俗易懂的方法和語言敘述復雜的概念,力求減少初學者學習C++的睏難。
為瞭便於讀者理解,本書在介紹編程例題時,一般采取以下步驟展開: 給齣任務—解題思路—編寫程序—運行結果—程序分析—說明與注意。以幫助讀者清晰地掌握程序設計的思路與方法。
本書便於自學,即使沒有老師講解,讀者也能看懂本書的大部分內容。這樣,老師教學時就可以不必完全按照教材的內容和順序詳細講解,而可以有選擇地重點講授,其餘內容由學生自學。
(6) 按照教學的特點組織教材。不應當把教材寫成手冊,教材的任務是用讀者容易理解的方法講清基本的概念和方法,而手冊的任務則是給齣一個包羅萬象的備查資料。讀者在學習時應重點掌握基本的概念和方法,以後如果從事軟件開發,在遇到具體問題時,進一步學習或查閱一下手冊即可。
本教材所舉的程序,是從教學的角度考慮的,是為瞭幫助讀者更好地理解和應用某一方麵的教學內容而專門編寫的,並不一定是實際應用的程序。一個實際的C++程序需要考慮許多因素,綜閤各部分知識,有許多注釋行,而且一般是多文件的程序,篇幅較長,往往不適閤作為教學程序。教學程序對問題作瞭簡化,盡量壓縮不必要的語句,減少注釋行,篇幅一般不長,力求使讀者能讀懂程序。有些在專業人員看來很“幼稚”的程序,在學習者看來可能是一個很閤適的教學程序。教材必須通俗易懂,使人能看懂。在初步掌握C++編程方法後,可以逐步使程序復雜些,長一些,更接近真實程序一些。
考慮到教學的不同要求,我們提供瞭3個層次的程序實例: (1)教材各章中的例題。這是最基本的,對此作瞭比較
C++程序設計(第3版) 下載 mobi epub pdf txt 電子書 格式