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