本書內(nèi)容包括:1. C++編程基礎(chǔ),主要包括內(nèi)置數(shù)據(jù)類型、表達(dá)式、運算符、控制結(jié)構(gòu)(分支和循環(huán))、函數(shù)等,輔以一些有趣的練習(xí)題目,將將簡單的小游戲作為編程練習(xí),目的激發(fā)學(xué)生學(xué)習(xí)興趣同時加強編程練習(xí)。2. 面向?qū)ο蟪绦虿糠,主要有類、對象的概念及?lián)系,對象的構(gòu)造和析構(gòu)、運算符重載、繼承、多態(tài)。同時用簡單案例通過問題分析、程序?qū)崿F(xiàn)、運行結(jié)果分析等一系列講解幫助同學(xué)理解面向?qū)ο蟪绦蛟O(shè)計的本質(zhì)與核心。3. 異常處理、文件讀寫、模板、標(biāo)準(zhǔn)模板庫等內(nèi)容,進(jìn)一步強化程序設(shè)計的理念。內(nèi)容有易漸難,符合學(xué)生的學(xué)習(xí)規(guī)律,本教材的讀者對象可以是計算機科學(xué)與技術(shù)、軟件工程及相關(guān)專業(yè)本科及研究生。
面向?qū)ο蟪绦蛟O(shè)計的核心是設(shè)計對象,通過對象交互來解決問題。這種設(shè)計理念和方法與現(xiàn)實世界的構(gòu)成有著密切聯(lián)系,例如現(xiàn)實世界由各種事物構(gòu)成,事物之間通過交互來處理各種問題等。對象將數(shù)據(jù)和對數(shù)據(jù)進(jìn)行的操作進(jìn)行了有效的封裝,同時增加了信息隱藏的特性,這使得對象很容易被復(fù)用、維護和理解。因此,面向?qū)ο蟪绦蛟O(shè)計技術(shù)更有利于軟件的設(shè)計與開發(fā),在很長一段時間內(nèi)是軟件開發(fā)的一種主流技術(shù)。C++是一門面向?qū)ο蟪绦蛟O(shè)計語言,它兼容C,在C語言的基礎(chǔ)上擴展而來,因此它既支持面向過程程序設(shè)計,又支持面向?qū)ο蟪绦蛟O(shè)計。C++程序結(jié)構(gòu)靈活、代碼簡潔、可移植性好,同時安全性好、執(zhí)行效率高、可兼容性和可擴展性強,因而被廣泛應(yīng)用于各種應(yīng)用領(lǐng)域和系統(tǒng)軟件開發(fā)中。21世紀(jì)是一個集信息化、網(wǎng)絡(luò)化、智能化于一體的時代。在這個時代,信息處理、網(wǎng)絡(luò)控制、智能算法研究等都離不開程序設(shè)計,因此掌握一門程序設(shè)計語言將是中高端人才必備的技能。而編寫C++教材也是作者多年的心愿,正是在此背景下,我們編寫了本書。本書特點本書融入了作者多年教授程序設(shè)計語言課程的體會和感受,對學(xué)生容易弄混或不易理解的地方通過案例、提示、注意等進(jìn)行反復(fù)強調(diào),從而加深學(xué)生的理解。同時將程序設(shè)計的思路盡量用日常生活中的事件進(jìn)行解釋,避免抽象。對每個知識點,通過提出待解決問題、設(shè)計分析、實現(xiàn)、運行結(jié)論分析等環(huán)節(jié)來逐一講解。書中本著案例不在多和難、貴在精的原則,引導(dǎo)學(xué)生抓住問題本質(zhì)。每章結(jié)束都有本章小結(jié)來總結(jié)所學(xué)知識點,并提供習(xí)題,習(xí)題答案同步提供在網(wǎng)上,學(xué)生可自行檢測學(xué)習(xí)效果。本書內(nèi)容全書由13章構(gòu)成,其中前三章為程序設(shè)計基礎(chǔ),是C和C++共有的知識部分,沒有C語言學(xué)習(xí)經(jīng)歷的學(xué)生可通過學(xué)習(xí)這三章奠定基礎(chǔ)。這部分內(nèi)容包括編程本質(zhì)、編寫程序的思路、面向?qū)ο蟪绦蚋拍、?biāo)識符、控制結(jié)構(gòu)、數(shù)據(jù)類型、表達(dá)式、名字空間、函數(shù)等。第4章到第11章為面向?qū)ο蟪绦蛟O(shè)計部分,這部分內(nèi)容采用循序漸進(jìn)的方式逐一展開介紹,重點介紹面向?qū)ο蟾拍,包括類與對象、運算符重載、組合與繼承、多態(tài)、模板、字符串、異常處理、輸入輸出流和文件等。通過這部分內(nèi)容的學(xué)習(xí),學(xué)生應(yīng)掌握面向?qū)ο蟪绦蛟O(shè)計的核心思想。第12章為C++標(biāo)準(zhǔn)模板庫(STL),包括容器、迭代器以及各種算法,這是一些類模板和函數(shù)模板,它們體現(xiàn)了C++泛化程序設(shè)計的思想,在C++程序開發(fā)中可以直接使用。通過本章內(nèi)容的學(xué)習(xí),希望學(xué)生能在學(xué)習(xí)別人經(jīng)驗的同時,體會泛化程序設(shè)計的思想,并思考如何能更好地進(jìn)行代碼復(fù)用,從而養(yǎng)成對設(shè)計成果積累的習(xí)慣,以提高編程效率。第13章為利用C++開發(fā)的綜合案例,通過旅行商問題、貪吃蛇游戲和學(xué)生信息管理系統(tǒng)案例的學(xué)習(xí),希望學(xué)生能在軟件開發(fā)中進(jìn)一步提高問題分析、設(shè)計、實現(xiàn)、調(diào)試等能力。對學(xué)生的學(xué)習(xí)要求程序設(shè)計實踐性較強,因此課后練習(xí)非常重要,學(xué)生在學(xué)習(xí)知識點的過程中,建議首先將書中案例在計算機上進(jìn)行調(diào)試,根據(jù)理解分析程序運行結(jié)果并用程序的實際輸出結(jié)果驗證分析,從而能夠讀懂程序、理解程序、掌握相關(guān)知識點,并能夠舉一反三,利用掌握的相關(guān)知識點完成課后的編程練習(xí)。課時安排根據(jù)多年的教學(xué)經(jīng)驗,建議學(xué)時為64,其中理論32學(xué)時、實驗32學(xué)時。編程基礎(chǔ)是程序設(shè)計的基石,基礎(chǔ)不好,將會極大地降低學(xué)生的學(xué)習(xí)興趣,因此建議前三章內(nèi)容的教學(xué)進(jìn)度慢一點,反復(fù)夯實基礎(chǔ),再開始后面內(nèi)容的學(xué)習(xí)。本書同時配有課件和習(xí)題答案,如有需要,可到華章網(wǎng)站下載。本書第10章和第11章由張雪松編寫,其余章節(jié)由宋存利編寫,全書統(tǒng)稿由宋存利完成。本書在編寫過程中,得到了不少專家、學(xué)者的指導(dǎo),同時也參考了學(xué)生學(xué)習(xí)程序設(shè)計語言課程的一些想法,在此對他們表示感謝。由于時間匆忙,書中難免有表述不當(dāng)之處,歡迎您對書中內(nèi)容提出批評和修改建議,我們將不勝感激。如需回函,請務(wù)必寫明您的電子郵件地址。作者聯(lián)系方式如下。E-mail:scunli@163com微信號:scunli1975作 者2020年10月于大連交通大學(xué)
宋存利,大連交通大學(xué)副教授,工學(xué)博士。主要研究方向為生產(chǎn)調(diào)度問題、智能優(yōu)化算法等。主講課程有“軟件工程”“C++程序設(shè)計”“JSP程序設(shè)計”等,教學(xué)經(jīng)驗豐富,深受學(xué)生喜愛。曾主持或參加過多項遼寧省自然科學(xué)基金項目和遼寧省教育廳科研項目,作為主要參與人參與了多項國家自然科學(xué)基金項目。張雪松,大連交通大學(xué)講師,工學(xué)博士。主要研究方向為計算機視覺和軟件工程。主講課程有“C++程序設(shè)計”“Java程序設(shè)計”等,教學(xué)經(jīng)驗豐富,深受學(xué)生喜愛。精通C++和Java等主流編程語言,同時具有豐富的軟件項目開發(fā)和管理經(jīng)驗。曾主持或參加過多項遼寧省自然科學(xué)基金項目和遼寧省教育廳科研項目,作為主要參與人參與了多項國家自然科學(xué)基金項目。