商品簡介
本書詳細介紹了C 面向對象的核心編程思想和方法,特別注重程序設計的實用性,使讀者具備運用面向對象的方法分析和解決實際問題的能力。本書以面向對象的程序設計貫穿始終,共9章,主要包括:C 程序設計基礎、文件操作、類的基礎、繼承、多態、虛函數、對象組合、異常處理、標準模板庫STL(主要介紹編程常用的string類、容器類、迭代器及其算法等)以及通過ODBC對數據庫進行編程等,為后繼課程的學習和課程設計打下堅實的基礎。書中列舉了數百個可供直接使用的程序示例代碼,并給出了運行結果。本書語言流暢、實例豐富,講解了C 程序設計的核心內容。全部代碼都在Visual Studio C 2010環境下調試通過,并配有大量的習題,同時在網站提供了該書的電子教案和程序示例源碼,特別適合作為高等學校C 編程和面向對象程序設計課程的教材。
名人推薦
(1) 本書主要講解面向對象的程序設計理論和編程方法,這些是計算機科學與技術專業學生的編程基礎。(2) 本書作者近20年來一直從事程序設計方面的教學和科研工作,主講過程序設計方面的多門課程,如C、C 和Java,積累了豐富的教學經驗。“從實踐到理論,再從理論到實踐,循序而漸進”是作者教學的心得體會,編寫教材也不例外,作者深知學生的薄弱環節和學習特點,具有針對性。(3) 該書內容與時俱進,講解了C 的許多新內容。例如,string類、體現了泛型程序設計思想的STL,以及基于STL的基本程序設計方法、通過ODBC對常規數據庫的編程方法等。作者認為,隨著C 的發展,教材也應當與之同步。本書另辟新章專門講解了這些內容,并結合實例給出了具體應用和綜合舉例。為讀者采用C 進行課程設計和項目研發打下堅實的基礎。(4) 作業安排從易到難,環環相扣。許多學生學過C ,卻不會編程。因此,本書設計了許多與實際有關的習題,并且它們彼此相關。(5) 課程設計。C 課程往往都有課程設計,為便于教師組織教學和學生理解課程設計要求,本書的*后給出了課程設計的基本要求和文檔模板,為課程設計的順利進行提供了便利。(6) 力求通俗易懂。編寫本書的目的是讓讀者通過自學或在教師的講授下,能夠運用C 語言的核心要素,進行面向對象的程序設計。因此,本書圍繞著如何進行C 編程展開。為了便于讀者的學習,作者力求該書的語言通俗易懂,將復雜的概念采用淺顯的語言講述,便于讀者理解和掌握。本書編排特點(1) 每章開始均引出本章要講解的內容和學習要求。(2) 每章安排的習題都具有很強的操作性,能通過計算機編程驗證。(3) 對書中重要的內容采用黑體標記,特別重要的內容采用下面加點標記。(4) 本書強調程序的可讀性。書中的程序全部采用統一的程序設計風格。例如,類名、方法名和變量名的定義做到“望名知義”;語句的末尾或下一句的開頭放上左大括號,而右大括號自成一行,并采用縮排格式組織程序代碼;此外,對程序中的語句還進行了盡可能多的注釋。希望讀者模仿這種程序設計風格。(5) 本書包含了大量的程序示例,全部采用Microsoft Visual C 2010(Express) 版本給出了運行結果。凡是程序開頭帶有程序名編號的程序都是完整的程序,可以直接在計算機上編譯運行。(6) 本書采用醒目的標記來顯示知識點。這些注意和思考的標記,都穿插在內容中,幫助讀者盡快找到重要的信息。
目次
章C 程序設計基礎11.1為什么要學習C 程序設計11.2過程化程序設計和面向對象程序設計21.3簡單的輸出和輸入方法21.3.1cout對象21.3.2cin對象41.4標識符71.5布爾類型81.6培養良好的編程風格81.6.1風格對比91.6.2注釋方法91.7格式化輸出111.7.1采用操作符實現格式化輸出121.7.2采用函數成員實現格式化輸出171.7.3對函數成員的初步討論191.8格式化輸入191.8.1指定輸入域寬191.8.2讀取一行201.8.3讀取一個字符211.8.4讀取字符時容易出錯的地方221.9函數的默認參數231.10引用作函數參數251.11函數重載271.12內存的動態分配和釋放30思考與練習33第2章文件操作362.1文件的基本概念362.1.1文件命名的原則362.1.2使用文件的基本過程362.2.1打開文件382.2.2文件的打開模式392.2.3定義流對象時打開文件402.2.4測試文件打開是否成功402.2.5關閉文件412.3采用流操作符讀寫文件412.3.1采用<<寫文件412.3.2格式化輸出在寫文件中的應用432.3.3采用>>從文件讀數據452.3.4檢測文件結束462.4流對象作為參數472.5出錯檢測492.6采用函數成員讀寫文件512.6.1采用>>讀文件的缺陷512.6.2采用函數getline讀文件522.6.3采用函數get讀文件532.6.4采用函數put寫文件542.7多文件操作552.8二進制文件572.8.1二進制文件的操作572.8.2讀寫結構體記錄582.9訪問文件622.9.1順序訪問文件的缺陷622.9.2定位函數seekp和seekg622.9.3返回位置函數tellp和tellg652.10輸入輸出文件67思考與練習71第3章類的基礎部分733.1過程化程序設計與面向對象程序設計的區別733.1.1過程化程序設計的缺陷743.1.2面向對象程序設計的基本思想743.2類的基本概念753.3定義函數成員783.4定義對象793.4.1訪問對象的成員793.4.2指向對象的指針793.4.3引入私有成員的原因813.5類的多文件組織823.6私有函數成員的作用843.7內聯函數853.8構造函數和析構函數873.8.1構造函數873.8.2析構函數893.8.3帶參構造函數913.8.4構造函數應用舉例——輸入有效的對象933.8.5重載構造函數953.8.6缺省構造函數的表現形式973.9對象數組983.10類的應用舉例1013.11抽象數組類型1063.11.1創建抽象數組類型1063.11.2擴充抽象數組類型109思考與練習114第4章類的高級部分1154.1靜態成員1154.1.1靜態數據成員1164.1.2靜態函數成員1184.2友元函數1214.3對象賦值問題1254.4拷貝構造函數1274.4.1默認的拷貝構造函數1294.4.2調用拷貝構造函數的情況1294.4.3拷貝構造函數中的常參數1314.5運算符重載1314.5.1重載賦值運算符1324.5.2this指針1344.5.3重載運算符時要注意的問題1374.5.4重載雙目算術運算符1384.5.5重載單目算術運算符1404.5.6重載關系運算符1414.5.7重載流操作符<<和>>1424.5.8重載類型轉換運算符1444.5.9重載\\操作符1494.5.10操作符重載綜合舉例——自定義string類1544.6對象組合163思考與練習165第5章繼承、多態和虛函數1665.1繼承1665.2保護成員和類的訪問1715.3構造函數和析構函數1745.3.1缺省構造函數和析構函數的調用1755.3.2向基類的構造函數傳參數1765.4覆蓋基類的函數成員1795.5虛函數1825.6純虛函數和抽象類1855.6.1純虛函數1855.6.2抽象類1865.6.3指向基類的指針1895.7多重繼承1905.8多繼承192思考與練習195第6章異常處理1986.1異常1986.1.1拋出異常1996.1.2處理異常1996.2基于對象的異常處理2016.3捕捉多種類型的異常2036.4通過異常對象獲取異常信息2056.5再次拋出異常207思考與練習208第7章模板2097.1函數模板2097.1.1從函數重載到函數模板2097.1.2在函數模板中使用操作符需要注意的地方2127.1.3在函數模板中使用多種類型2137.1.4重載函數模板2137.1.5定義函數模板的方法2147.2類模板2157.2.1定義類模板的方法2157.2.2定義類模板的對象2177.2.3類模板與繼承219思考與練習222第8章標準模板庫STL2238.1標準模板庫簡介2238.2string類型2268.2.1如何使用string類型2268.2.2為string對象讀取一行2268.2.3string對象的比較2278.2.4string對象的初始化2278.2.5string的函數成員2288.2.6string對象應用舉例2308.3迭代器類2318.4順序容器2338.4.1矢量類2348.4.2列表類2398.4.3雙端隊列類2428.5函數對象與泛型算法2448.5.1函數對象2458.5.2泛型算法2488.6關聯容器2518.6.1集合和多重集合類2518.6.2映射和多重映射類2538.7容器適配器2558.7.1棧容器適配器2558.7.2隊列容器適配器2568.7.3優先級隊列容器適配器257思考與練習258第9章數據庫程序設計2599.1數據庫簡介2599.2SQL語句2609.2.1定義表2609.2.2查詢2609.2.3插入2619.2.4刪除2619.2.5修改2619.3數據庫連接2629.3.1ODBC簡介2629.3.2ODBC驅動程序2629.3.3創建數據源2629.4數據庫編程中的基本操作2649.4.1數據庫編程的基本過程2649.4.2數據庫查詢2659.4.3插入記錄2669.4.4修改記錄2679.4.5刪除記錄2689.5數據庫編程綜合舉例269思考與練習276附錄A課程設計要求278A.1課程設計簡介278A.2程序結構282A.3程序的主要特點283A.4操作說明283A.4.1收銀模塊283A.4.2書庫管理模塊284A.4.3報表模塊284A.4.4退出系統285附錄B課程設計報告格式286參考文獻288