《課程要求和學(xué)習(xí)方法(1)優(yōu)秀文檔》由會(huì)員分享,可在線閱讀,更多相關(guān)《課程要求和學(xué)習(xí)方法(1)優(yōu)秀文檔(22頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,主編 沈顯君 楊進(jìn)才 張勇,C+語言程序設(shè)計(jì)教程,前 言,C+語言程序設(shè)計(jì)教程,前言,C+之父,Bjarne Stroustrup,C+歷史,語言的發(fā)展是一個(gè)逐步遞進(jìn)的過程,C+是直接從 C 語言發(fā)展過來的,而 C 語言是從 B 語言發(fā)展過來的。,最初導(dǎo)致C+誕生的原因是在Bjarne博士等人試圖去分析UNIX的內(nèi)核的時(shí)候,這項(xiàng)工作開始于1979年4月,當(dāng)時(shí)由于沒有合適的工具能夠有效的分析由于內(nèi)核分布而造成的網(wǎng)絡(luò)流量,以及怎樣將內(nèi)核模塊化。,當(dāng)然懷著這個(gè)目的,你或許永遠(yuǎn)無法成為C+高手,但我把這個(gè)原因放在最
2、前面,可以給大家一個(gè)很明確的激勵(lì),當(dāng)你接觸C+后,發(fā)現(xiàn)從學(xué)習(xí)中獲得樂趣比高的工資更有動(dòng)力;,C+是Java和C#的始祖。,1983年12月,Rick Mascitti建議命名為CPlusPlus,即C+。,C+語言程序設(shè)計(jì)教程(第二版)沈顯君 楊進(jìn)才 張勇編著 清華大學(xué)出版社,TIOBE 10月編程語言排行榜,因此,學(xué)習(xí)C+后學(xué)習(xí)Java與C#會(huì)事半工倍、倍感輕松。,1983年8月,第一個(gè)C+實(shí)現(xiàn)投入使用,利用網(wǎng)絡(luò)資源進(jìn)行學(xué)習(xí)、交流、答疑。,3)學(xué)習(xí)C+可以學(xué)習(xí)到計(jì)算機(jī)底層的理論,即使不是用C+開發(fā),對(duì)計(jì)算機(jī)運(yùn)行機(jī)制的理解,對(duì)建制穩(wěn)定的系統(tǒng),對(duì)運(yùn)用其他語言,也是一種促進(jìn)。,縱觀當(dāng)今程序語言家族
3、,我覺得只有C可以C+相提并論,門當(dāng)戶對(duì),其它語言都無法和C+相提并論。,NET 提供的 C+.,但對(duì)許多半生不熟的 C+初學(xué)者(或雖然學(xué)了不少時(shí)間,但沒有深入到它的各個(gè)層面的人),大概會(huì)覺得難以接受。,在C+中重點(diǎn)講述的面向?qū)ο蟮母拍?這些概念是用C+進(jìn)行Windows程序設(shè)計(jì)的基礎(chǔ)。,同年10月,Bjarne博士完成了一個(gè)可以運(yùn)行的預(yù)處理程序,稱之為Cpre,它為C加上了類似Simula的類機(jī)制。在這個(gè)過程中,Bjarne博士開始思考是不是要開發(fā)一種新的語言,當(dāng)時(shí)貝爾實(shí)驗(yàn)室對(duì)這個(gè)想法很感興趣,就讓Bjarne博士等人組成一個(gè)開發(fā)小組,專門進(jìn)行研究。,C+歷史上的主要事件,1983年8月,第
4、一個(gè)C+實(shí)現(xiàn)投入使用,1983年12月,Rick Mascitti建議命名為CPlusPlus,即C+。,1985年2月,第一個(gè)C+Release E發(fā)布。10月,CFront的第一個(gè)商業(yè)發(fā)布,CFront Release 1.0。,10月,Bjarne博士完成了經(jīng)典巨著The C+Programming Language第一版,1988年10月,第一次USENIX C+實(shí)現(xiàn)者工作會(huì)議在科羅拉多州舉行。,1989年12月,ANSI X3J16在華盛頓組織會(huì)議。1990年3月,第一次ANSI X3J16技術(shù)會(huì)議在新澤西州召開,5月,C+的又一個(gè)傳世經(jīng)典ARM誕生。,7月,模板被加入。11月,異常
5、被加入。,1991年6月,The C+Programming Language第二版完成。,6月,第一次ISO WG21會(huì)議在瑞典召開。,10月,CFront Release 3.0發(fā)布。,1993年3月,運(yùn)行時(shí)類型識(shí)別在俄勒岡州被加入。7月,名字空間在德國慕尼黑被加入。,1994年8月,ANSI/ISO委員會(huì)草案登記。,1997年7月,The C+Programming Language第三版完成。,10月,ISO標(biāo)準(zhǔn)通過表決被接受 1998年11月,ISO標(biāo)準(zhǔn)被批準(zhǔn)。,1987年12月,GNU C+發(fā)布。,1988年1 月,第一個(gè)Oregon Software C+發(fā)布。,6 月,第一個(gè)Z
6、ortech C+發(fā)布。,1990年5 月,第一個(gè)Borland C+發(fā)布。,3 月,第一個(gè)Microsoft C+發(fā)布。,5 月,第一個(gè)IBM C+發(fā)布。,C+語言程序設(shè)計(jì)教程,前言,關(guān)于C+語言課程,與,C,語言的關(guān)系,是從,C,語言發(fā)展演變擴(kuò)充而來,是“,帶類的,”,更好的,C,。,C,是,C+,的一個(gè)子集,,C,語言程序不加修改可以在,C+,編譯器中編譯。,因此,,C+,既可以,C,語言為基礎(chǔ),也可以單獨(dú)學(xué)習(xí)。,C+,與,Java,和,C#,C+,是,Java,和,C#,的始祖。,Java,和,C#,是,C+,的子集與簡化,因此,學(xué)習(xí),C+,后學(xué)習(xí),Java,與,C#,會(huì)事半工倍、倍感
7、輕松,。,C+語言程序設(shè)計(jì)教程,前言,關(guān)于C+語言課程,與,數(shù)據(jù)結(jié)構(gòu),課程的關(guān)系,C,、,Java,、,C+,均為數(shù)據(jù)結(jié)構(gòu)的描述語言,其中,C+,是最完善的描述語言。,因此,,C+,是作為,數(shù)據(jù)結(jié)構(gòu),基礎(chǔ)的最佳課程。,C+,與,Windows,程序設(shè)計(jì)課程,在,C+,中重點(diǎn)講述的面向?qū)ο蟮母拍?這些概念是用,C+,進(jìn)行,Windows,程序設(shè)計(jì)的基礎(chǔ)。,在,C+,課程中,重點(diǎn)不涉及,Windows,可視化編程以及各種類庫的使用如,MFC,。,TIOBE 10月編程語言排行榜,NET 這類更新的開發(fā)工具(語言)相提并論,這種說法是個(gè)誤導(dǎo)。,C是C+的一個(gè)子集,C語言程序不加修改可以在C+編譯器中
8、編譯。,簡單的另一個(gè)方面是功能的局限。,主編 沈顯君 楊進(jìn)才 張勇,1997年7月,The C+Programming Language第三版完成。,執(zhí)行速度方面,C+的設(shè)計(jì)者的思想就是在改進(jìn)開發(fā)效率的同時(shí)盡量不增加C+的系統(tǒng)開銷,當(dāng)然有些地方非增加開銷不可,也把開銷控制在最小程度內(nèi)。,NET 主要框架的發(fā)明者 Anders 曾說,在現(xiàn)代的編程世界,對(duì)軟件生產(chǎn)力的需求是最重要的;,10月,Bjarne博士完成了經(jīng)典巨著The C+Programming Language第一版,從基本數(shù)據(jù)類型看起,從基本流程控制語句寫起。,C+是Java和C#的始祖。,C+語言程序設(shè)計(jì)教程習(xí)題解答與實(shí)驗(yàn)指導(dǎo)(第
9、二版)楊進(jìn)才 沈顯君 編著 清華大學(xué)出版社,但我個(gè)人認(rèn)為,C+是個(gè)難學(xué)易用的語言(引自臺(tái)灣技術(shù)作家 jjhou 的說法,因?yàn)槲业暮芏?C+知識(shí)都是從他的譯作中獲得的)。,接下來就是我們怎么學(xué)才能學(xué)好這門課呢!,微軟公司恨不的所有人都學(xué)VB,只有他一家會(huì)C+。,NET 平臺(tái)最自然的語言。,當(dāng)軟件規(guī)模大到一定程度的時(shí)候,其他語言就越來越無法駕馭,這時(shí)C+的優(yōu)勢就體現(xiàn)出來了。,在面向?qū)ο蟛糠种卦趯?duì)概念的掌握,對(duì)每個(gè)概念回答是什么?為什么?如何?這三個(gè)問題。,主要語言的長期變化趨勢圖,前十名編程語言在5年、10年、15年前的排名情況,教材、參考書與課時(shí)安排,C+語言程序設(shè)計(jì)教程,前言,教材,C+,語言
10、程序設(shè)計(jì)教程,(,第二版,),沈顯君 楊進(jìn)才 張勇,編著 清華大學(xué)出版社,參考書,C+,語言程序設(shè)計(jì)教程習(xí)題解答與實(shí)驗(yàn)指導(dǎo),(,第二版,),楊進(jìn)才 沈顯君,編著 清華大學(xué)出版社,C+Primer(3RD),中文版,.Stanley,Josee,Lajoie,著,.,潘愛民,張麗譯,.,北京:中國電力出版社,C+,程序設(shè)計(jì)教程(第,4,版),.,著,.,施平安譯,.,北京,:,清華大學(xué)出版社,NET都炒的很火,特別是JAVA,大有炸平廬山,停止地球轉(zhuǎn)動(dòng)之勢。,北京:清華大學(xué)出版社,執(zhí)行速度方面,C+的設(shè)計(jì)者的思想就是在改進(jìn)開發(fā)效率的同時(shí)盡量不增加C+的系統(tǒng)開銷,當(dāng)然有些地方非增加開銷不可,也把開
11、銷控制在最小程度內(nèi)。,Java和C#是C+的子集與簡化,C是什么東西?是用來代替匯編編寫操作系統(tǒng)的語言,用C+代替C,可以得出兩個(gè)結(jié)論:第一,C+必須具有同C相當(dāng)?shù)膱?zhí)行速度;,第二,C+必須比C具有較高的開發(fā)效率。,具非權(quán)威研究報(bào)告,C+比C的執(zhí)行開銷多出不到10%。,C+語言程序設(shè)計(jì)教程,NET 平臺(tái)最自然的語言。,上小學(xué)的時(shí)候,書上有個(gè)故事,是關(guān)于王羲之學(xué)習(xí)書法的:王獻(xiàn)之問他父親王羲之,學(xué)習(xí)書法的秘訣是什么,他父親把他帶到后院,指著18口大水缸說,你如果把這里的水都寫完了,就知道書法的秘訣在那里了。,所以,學(xué)習(xí)C+的第一個(gè)方法是:切忌浮躁。,縱觀當(dāng)今程序語言家族,我覺得只有C可以C+相提并
12、論,門當(dāng)戶對(duì),其它語言都無法和C+相提并論。,對(duì)我來說現(xiàn)在還談不上學(xué)好,但在學(xué)習(xí)中得到一些經(jīng)驗(yàn):,一般應(yīng)用軟件的生產(chǎn)力,最關(guān)鍵的不是編程語言,而是開發(fā)工具,更確切地說,是開發(fā)工具所使用的 Framework。,C+語言程序設(shè)計(jì)教程,其次,我們還得承認(rèn),學(xué)習(xí)要下苦功,要?jiǎng)?wù)實(shí)。,學(xué)習(xí)目標(biāo),本課程主要介紹C+語言本身,包括常用的數(shù)據(jù)結(jié)構(gòu)和算法。以面向?qū)ο蟮某绦蛟O(shè)計(jì)方法貫穿始終,著重從程序設(shè)計(jì)方法學(xué)的角度講述其意義和用途,要求在掌握C+語言的同時(shí),能夠?qū)ΜF(xiàn)實(shí)世界中較簡單的問題及其解決方法用C+語言進(jìn)行描述。,課程講授將結(jié)合實(shí)例,著重講解基本概念和方法為主。,C+語言程序設(shè)計(jì)教程,前言,如何學(xué)好C+,C
13、+語言程序設(shè)計(jì)教程,前言,能細(xì)能粗,在面向過程編程部分,對(duì)數(shù)據(jù)類型、運(yùn)算符、語句等要注重細(xì)節(jié)。做到細(xì)致掌握。,在面向?qū)ο蟛糠种卦趯?duì)概念的掌握,對(duì)每個(gè)概念回答是什么?為什么?如何?這三個(gè)問題。做到掌握思想。,重視實(shí)踐,和學(xué)好所有編程語言一樣,做到“上機(jī)、上機(jī)、再上機(jī)”。,如何學(xué)好C+,C+語言程序設(shè)計(jì)教程,前言,利用資源,利用網(wǎng)絡(luò)資源進(jìn)行學(xué)習(xí)、交流、答疑。如清華大學(xué)的,BBS,站的,C+,學(xué)習(xí)園地上有大量的帖子。,地址:,帖子舉例,1,如今在網(wǎng)上很多為要不要學(xué),C+,爭的不可開交,因?yàn)楝F(xiàn)在,JAVA,,,C#,,。,NET,都炒的很火,特別是,JAVA,,大有炸平廬山,停止地球轉(zhuǎn)動(dòng)之勢。用林銳同
14、志的話說,其實(shí),JAVA,只是,C+,外甥,跑到舅舅身上撒了一泡尿而已。,首先,我們從,JAVA,的來歷上來說,,JAVA,的設(shè)計(jì)初衷是用來給家用電器設(shè)計(jì)程序使用的,最初設(shè)計(jì)者想用,C+,,但覺得,C+,太復(fù)雜,就在,C+,的基礎(chǔ)上做了一些簡化,設(shè)計(jì)出了,JAVA,,它的設(shè)計(jì)思想是跨平臺(tái),所以必須先在運(yùn)行平臺(tái)上安裝虛擬機(jī),然后把源程序編譯成中間語言在運(yùn)行,這是一個(gè)優(yōu)點(diǎn),但我們說任意優(yōu)點(diǎn)都是建立在缺點(diǎn)上的,,如何學(xué)好C+,C+語言程序設(shè)計(jì)教程,前言,JAVA的缺點(diǎn)就是運(yùn)行速度慢,這對(duì)于某些系統(tǒng)來說是致命弱點(diǎn)。況且,JAVA中沒有指針,對(duì)于制作系統(tǒng)軟件來說,這更是無法饒恕的。,再來看C+。C+產(chǎn)生
15、于美國貝爾實(shí)驗(yàn)室,就是發(fā)明電話那個(gè)公司。設(shè)計(jì)初衷是用來改進(jìn)C的開發(fā)效率,C是面向過程的語言,開發(fā)效率底,貝爾實(shí)驗(yàn)室有大量的C程序員,所以只要在開發(fā)效率上提高一點(diǎn)點(diǎn),就可以節(jié)約數(shù)目龐大的成本。,C是什么東西?是用來代替匯編編寫操作系統(tǒng)的語言,用C+代替C,可以得出兩個(gè)結(jié)論:第一,C+必須具有同C相當(dāng)?shù)膱?zhí)行速度;第二,C+必須比C具有較高的開發(fā)效率。執(zhí)行速度方面,C+的設(shè)計(jì)者的思想就是在改進(jìn)開發(fā)效率的同時(shí)盡量不增加C+的系統(tǒng)開銷,當(dāng)然有些地方非增加開銷不可,也把開銷控制在最小程度內(nèi)。,具非權(quán)威研究報(bào)告,C+比C的執(zhí)行開銷多出不到10%。開發(fā)效率方面,C+引進(jìn)了面向?qū)ο髾C(jī)制,庫機(jī)制,最大程度上實(shí)現(xiàn)了
16、代碼重用,這是軟件開發(fā)人員的福音。C+在改進(jìn)C的開發(fā)效率的同時(shí),對(duì)C的缺陷做了一些修補(bǔ)。C的優(yōu)點(diǎn)在C+中都得到了很好的保留,C的缺點(diǎn)在C+中都有了改進(jìn),有了更好的解決辦法。而且,為了現(xiàn)有的大量C程序維護(hù),C+還全面兼容了C。,縱觀當(dāng)今程序語言家族,我覺得只有C可以C+相提并論,門當(dāng)戶對(duì),其它語言都無法和C+相提并論。無論從什么角度來說,C+都算的上語言中的老大。,如何學(xué)好C+,C+語言程序設(shè)計(jì)教程,前言,帖子舉例2,發(fā)信站:BBS 水木清華站(Wed Feb 2 00:01:12 2005),站內(nèi),C+的優(yōu)缺點(diǎn)C+是個(gè)難學(xué)易用的語言,很多人說 C+難,又難學(xué),又難用;但我個(gè)人認(rèn)為,C+是個(gè)難學(xué)易用的語言(引自臺(tái)灣技術(shù)作家 jjhou 的說法,因?yàn)槲业暮芏?C+知識(shí)都是從他的譯作中獲得的)。,難學(xué)這一點(diǎn),無須贅言;即使是著名的 C+大師,亦從不諱言,C+比其他語言復(fù)雜得多。,易用這點(diǎn),對(duì) C+高手來說,該是不成問題的。但對(duì)許多半生不熟的 C+初學(xué)者(或雖然學(xué)了不少時(shí)間,但沒有深入到它的各個(gè)層面的人),大概會(huì)覺得難以接受。不過,個(gè)人的經(jīng)驗(yàn),我?guī)缀趺刻於荚谑褂?C+,大部份的時(shí)間,我感覺寫