C語言程序設(shè)計課件1第0章 前言課程要求和學(xué)習(xí)方法-供參考_第1頁
C語言程序設(shè)計課件1第0章 前言課程要求和學(xué)習(xí)方法-供參考_第2頁
C語言程序設(shè)計課件1第0章 前言課程要求和學(xué)習(xí)方法-供參考_第3頁
C語言程序設(shè)計課件1第0章 前言課程要求和學(xué)習(xí)方法-供參考_第4頁
C語言程序設(shè)計課件1第0章 前言課程要求和學(xué)習(xí)方法-供參考_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

關(guān)于C++語言

TIOBE編程社區(qū)指數(shù)是衡量編程語言流行度的指標。該指數(shù)每月更新一次,是基于谷歌、必應(yīng)等25種搜索引擎上與編程相關(guān)的搜索查詢得到的結(jié)果。TIOBE指數(shù)旨在反映編程語言受歡迎程度的變化。關(guān)于C++語言與C、Java、Python、C#語言的關(guān)系C++是從C語言發(fā)展演變擴充而來,是“帶類的”更好的C。C是C++的一個子集,C語言程序不加修改可以在C++編譯器中編譯。因此,C++既可以C語言為基礎(chǔ),也可以單獨學(xué)習(xí)。C++、Java、C#和Python都是面向?qū)ο蟮木幊陶Z言。C++更接近于底層,編譯成本地機器碼,由操作系統(tǒng)直接運行,運行效率高。Java在C++的基礎(chǔ)上做了更高級的封裝。Java編譯成字節(jié)碼,由Java虛擬機讀取運行,一次編譯到處運行,運行效率偏低。Python是基于C++創(chuàng)造的,是一種腳本語言。簡單易學(xué),編程效率高,但運行效率低。C#在微軟在C++基礎(chǔ)上發(fā)展出來的,限制掉了C++的一些東西,又增加了一些如內(nèi)存自動回收等功能,是限制了的C++版。是為了提升開發(fā)效率和軟件工業(yè)化的產(chǎn)物。

關(guān)于C++語言C、Java、Python、C#語言的使用

自從微軟推出全新的開發(fā)語言C#之后,關(guān)于C++與C#之間的爭論就沒有停止過。就像C++繼承了C語言的許多特性一樣,C#也繼承了C++的許多特性,同時增加了很多現(xiàn)代編程語言的新特性。配合強大的.NETFramework,C#下的應(yīng)用開發(fā)越來越簡單,應(yīng)用也越來越廣泛。C++會不會被新興的C#革命?我們應(yīng)該學(xué)習(xí)C++還是C#?雖然C#和.NETFramework讓開發(fā)變得更簡單,使用幾行C#代碼就可以完成幾十行C++代碼才能完成的功能,而且C#具有簡單的類庫操作和面向?qū)ο缶幊痰耐昝捞匦?,但是,所謂成也蕭何,敗也蕭何,正是因為.NETFramework的引入,在C#和操作系統(tǒng)之間隔了一層,讓我們無法了解C#背后的真相,處處受制于.NETFramework。同樣實現(xiàn)一個功能,使用C#我們只有一種方法,而使用C++,我們?nèi)绻靼妆澈蟮臋C制,就可以用不同的方法應(yīng)對不同的情況,實現(xiàn)最優(yōu)的方案。沒有編程語言比C++更加貼近Windows操作系統(tǒng)了,這一點是不可否認的。可以說,只要追求自由的人存在,C++就不會消失;只要操作系統(tǒng)是用C++寫的,C++就不會消失。從應(yīng)用領(lǐng)域上講,C#主要應(yīng)用在Windows平臺上,用于開發(fā)與用戶界面、網(wǎng)絡(luò)和數(shù)據(jù)庫相關(guān)的應(yīng)用。而C++主要應(yīng)用在Windows、Linux和嵌入式系統(tǒng)等平臺,其業(yè)務(wù)領(lǐng)域也非常廣泛,從服務(wù)器應(yīng)用程序的開發(fā)到多媒體游戲的開發(fā),從圖像處理到工程控制,處處都有C++的身影。平臺的廣泛性讓C++的應(yīng)用范圍更加廣泛。

C#是繼承自C++的,學(xué)好C++之后,可以輕松地學(xué)好C#;但是,學(xué)好C#卻不一定能保證學(xué)好C++。語言無所謂好壞強弱之分,C#能做的,C++不一定都能做,而C++能做的,C#也不一定都能做好。所以,根據(jù)應(yīng)用場景選擇合適的語言才是最重要的。

在自由和束縛之間,我們選擇自由;在C++和C#之間,我選擇C++。C++、C#和.net不得不說的那點事關(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。教材、參考書與課時安排教材C++語言程序設(shè)計教程(第四版)楊進才沈顯君編著清華大學(xué)出版社參考書C++語言程序設(shè)計教程習(xí)題解答與實驗指導(dǎo)(第四版)沈顯君楊進才胡珀編著清華大學(xué)出版社C++PrimerPlus(6RD)中文版StephenPrata著.張海龍,袁國忠

譯北京:人民郵電出版社出版ThinkinC++(C++編程思想)卷1,BruceEckel,ChuckAll

著,劉宗田

譯機械工業(yè)出版社

其它參考書目

(Reference)

TheC++ProgrammingLanguage(特別版)

BjarneStroustrup

機械工業(yè)出版社

C++高級編程

NicholasA.Solter

機械工業(yè)出版社

高質(zhì)量程序設(shè)計指南——C++/C語言林銳

電子工業(yè)出版社

C++程序設(shè)計教程(第4版).H.M.Deitel,P.J.Deitel

著.施平安譯.北京:清華大學(xué)出版社

C++編程與習(xí)題解答徐漫江等譯機械工業(yè)出版社面向?qū)ο蟮南到y(tǒng)分析(第二版)邵維忠楊芙清編著清華大學(xué)出版社

課程性質(zhì)

專業(yè)必修課

授課時數(shù)

32學(xué)時

課外討論時數(shù)

17學(xué)時

實驗時數(shù)

14學(xué)時學(xué)習(xí)要求保持良好的課堂紀律,頭腦清醒,思維活躍課前請做好預(yù)習(xí),課后請做好復(fù)習(xí)認真、獨立完成課本習(xí)題重視上機實踐,有效利用寶貴的上機時間,按時提交上機作業(yè)成績構(gòu)成平時考勤:10%

課堂討論活動:10%

平時上機:40%

期末考試:40%學(xué)習(xí)要求及成績構(gòu)成如何學(xué)好C++能細能粗在面向過程編程部分,對數(shù)據(jù)類型、運算符、語句等要注重細節(jié)。做到細致掌握。在面向?qū)ο蟛糠种卦趯Ω拍畹恼莆眨瑢γ總€概念回答“是什么?為什么?如何?”這三個問題。做到掌握思想。如何學(xué)好C++重視實踐,多讀多寫

1.多讀多讀就是強調(diào)多閱讀和學(xué)習(xí)別人的優(yōu)秀代碼,特別是一些優(yōu)秀的開源產(chǎn)品的源代碼。通過閱讀這些源代碼,不僅可以學(xué)習(xí)具體的語言知識、開發(fā)技術(shù),還可以從中學(xué)習(xí)設(shè)計思想、編程風(fēng)格等。向高手學(xué)習(xí),是成為高手的唯一途徑。2.多寫多寫,就是多多地進行開發(fā)實踐。編程是一門技藝,它來自于實踐,光紙上談兵是無法學(xué)好編程的。多寫包括很多方面,比如,在開發(fā)環(huán)境中完成書本上的例子程序,重新實現(xiàn)網(wǎng)絡(luò)上的例程,開發(fā)實現(xiàn)一些小程序等。多讀的目的只是學(xué)習(xí)別人的知識和經(jīng)驗,多寫的目的是將別人的知識和經(jīng)驗內(nèi)化為自己的知識和經(jīng)驗。同時,通過多寫可以發(fā)現(xiàn)很多在閱讀技術(shù)書籍、閱讀程序代碼時隱藏的問題。通過自己編寫程序、調(diào)試程序,可以獲得寶貴的第一手開發(fā)經(jīng)驗,培養(yǎng)自己的動手能力,從而成為一個真正的高手。如何學(xué)好C++善用網(wǎng)絡(luò)

1)和Baidu、Google做朋友在開發(fā)實踐中,與其說程序是編出來的,倒不如說是搜出來的。如果遇到一個語法上的細節(jié)問題就可以用Baidu、Google搜索關(guān)于C++的教程;如果遇到函數(shù)使用上的問題,就可以用Baidu、Google搜索這個函數(shù)的文檔;如果遇到常見的開發(fā)任務(wù),就可以用Baidu、Google搜索已有的示例代碼。甚至當(dāng)遇到程序中的疑難雜癥時,都可以用Baidu、Google搜索有沒有人遇到相同的問題??傊?,編程開發(fā)離不開Baidu、Google。網(wǎng)絡(luò)就像一個大金礦,而Baidu、Google就是采礦機器。善用Baidu、Google、和Baidu、Google做朋友,可以幫助我們充分利用豐富的網(wǎng)絡(luò)資源來學(xué)好C++。2)多逛逛CSDN中的C++編程之類的版塊3)QQ、MSN上“不恥上問”如何學(xué)好C++利用資源利用網(wǎng)絡(luò)資源進行學(xué)習(xí)、交流、答疑。如CSDN的C++學(xué)習(xí)園地上有大量的帖子。帖子舉例1

如今在網(wǎng)上很多為要不要學(xué)C++爭的不可開交,因為現(xiàn)在JAVA,C#,.NET都炒的很火,特別是JAVA,大有炸平廬山,停止地球轉(zhuǎn)動之勢。用林銳同志的話說,其實JAVA只是C++外甥,跑到舅舅身上撒了一泡尿而已。首先,我們從JAVA

的來歷上來說,JAVA的設(shè)計初衷是用來給家用電器設(shè)計程序使用的,最初設(shè)計者想用C++,但覺得C++太復(fù)雜,就在C++的基礎(chǔ)上做了一些簡化,設(shè)計出了JAVA,它的設(shè)計思想是跨平臺,所以必須先在運行平臺上安裝虛擬機,然后把源程序編譯成中間語言在運行,這是一個優(yōu)點,但我們說任意優(yōu)點都是建立在缺點上的,如何學(xué)好C++

JAVA的缺點就是運行速度慢,這對于某些系統(tǒng)來說是致命弱點。況且,JAVA中沒有指針,對于制作系統(tǒng)軟件來說,這更是無法饒恕的。再來看C++。C++產(chǎn)生于美國貝爾實驗室,就是發(fā)明電話那個公司。設(shè)計初衷是用來改進C的開發(fā)效率,C是面向過程的語言,開發(fā)效率底,貝爾實驗室有大量的C程序員,所以只要在開發(fā)效率上提高一點點,就可以節(jié)約數(shù)目龐大的成本。

C是什么東西?是用來代替匯編編寫操作系統(tǒng)的語言,用C++代替C,可以得出兩個結(jié)論:第一,C++必須具有同C相當(dāng)?shù)膱?zhí)行速度;第二,C++必須比C具有較高的開發(fā)效率。執(zhí)行速度方面,C++的設(shè)計者的思想就是在改進開發(fā)效率的同時盡量不增加C++的系統(tǒng)開銷,當(dāng)然有些地方非增加開銷不可,也把開銷控制在最小程度內(nèi)。據(jù)非權(quán)威研究報告,C++比C的執(zhí)行開銷多出不到10%。開發(fā)效率方面,C++引進了面向?qū)ο髾C制,庫機制,最大程度上實現(xiàn)了代碼重用,這是軟件開發(fā)人員的福音。C++在改進C的開發(fā)效率的同時,對C的缺陷做了一些修補。C的優(yōu)點在C++中都得到了很好的保留,C的缺點在C++中都有了改進,有了更好的解決辦法。而且,為了現(xiàn)有的大量C程序維護,C++還全面兼容了C。縱觀當(dāng)今程序語言家族,我覺得只有C可以C++相提并論,門當(dāng)戶對,其它語言都無法和C++相提并論。無論從什么角度來說,C++都算的上語言中的老大。如何學(xué)好C++帖子舉例2※C++的優(yōu)缺點╱C++是個「難學(xué)易用」的語言

很多人說C++難,又難學(xué),又難用;但我個人認為,C++是個「難學(xué)易用」的語言(引自臺灣技術(shù)作家侯捷的說法,因為我的很多C++知識都是從他的譯作中獲得的)。「難學(xué)」這一點,無須贅言;即使是著名的C++大師,亦從不諱言,C++比其他語言復(fù)雜得多。「易用」這點,對C++高手來說,該是不成問題的。但對許多半生不熟的C++初學(xué)者(或雖然學(xué)了不少時間,但沒有深入到它的各個層面的人),大概會覺得難以接受。不過,個人的經(jīng)驗,我?guī)缀趺刻於荚谑褂肅++,大部份的時間,我感覺寫C++代碼比寫B(tài)asic代碼更輕松愉快;但每當(dāng)我想要深度控制某些細節(jié)時,C++源于C的低階能力,又給我最大的自由度和幾乎不遜于Assembly的高效(當(dāng)然,有必要時C/C++代碼內(nèi)也可以直接插入一段匯編代碼)。微軟C#語言和.NET主要框架的發(fā)明者Anders曾說,在現(xiàn)代的編程世界,對軟件生產(chǎn)力的需求是最重要的;因此,現(xiàn)代編程語言,應(yīng)該重視其生產(chǎn)力,更甚于低階的控制力。對于這位超級高手的言論,我當(dāng)然沒有任何反對的意見。只不過,我想說明一點,即∶很多人認為C++的缺點是生產(chǎn)力不高,不能和Delphi,JAVA,VB,C#.NET這類更新的開發(fā)工具(語言)相提并論,這種說法是個誤導(dǎo)。如何學(xué)好C++

一般應(yīng)用軟件的生產(chǎn)力,最關(guān)鍵的不是編程語言,而是開發(fā)工具,更確切地說,是開發(fā)工具所使用的Framework。JAVA,C#這些主流編程語言,因為有強大的Framework支援,當(dāng)然在很多方面占有優(yōu)勢;相對的,C++并不是由單一廠商所獨占,它的標準化、函式庫、開發(fā)工具等各方面的支援,難以統(tǒng)一。我記得曾看過一個頗有趣的說法∶「C++?!這家伙你想怎么搞都可以,只不過,無論你想搞什么,都得自己來!」那么,學(xué)習(xí)C++究竟有什么好處呢?首先,關(guān)于生產(chǎn)力。沒錯,假如沒有適當(dāng)?shù)拈_發(fā)工具,例如∶VC,BCB等,使用C++,連寫個普通GUI的程序,都會覺得痛苦萬分。但,這只是指「一般應(yīng)用軟件」。相對地,假如你想要做的不是一般普通的應(yīng)用,而是有特殊的,特別是大型的專案、又或極度要求運行期效能的程序,那么,至少在目前,C/C++是最好的選擇。此外,學(xué)會C++,還有意想不到的額外好處。如果你熟悉C++的一些深入部份,例如C++ObjectModel,那么學(xué)習(xí)其他主流的編程語言,例如JAVA,C#等,簡直易如反掌。并且,你會很容易看清楚,JAVA,C#等,只不過是基于單根繼承(所有類都衍生自同一個基類),在許多功能方面,受限了的C++簡化版。(題外話,微軟的.NET提供的C++.NET,即所謂的ManagedC++,光看這名字本身,就很有趣。C++在.NET平臺上為何要「受控管」,原因自然是為了相容于.NET;另一方面,C#本身就是.NET平臺最自然的語言。換言之,C#可以看成是一個受限的C++版本。)如何學(xué)好C++帖子舉例3

首先:盲目的做事是沒有高的效率的,所以我們必須清楚我們?yōu)槭裁匆獙W(xué)習(xí)c++!我的看法是這樣的:

1)C++的程序員身價普遍較高,當(dāng)然,前提是你必須是高手。我所在的城市,那些公司根本就招不到合格的C++程序員,一方面C++程序員要求高,學(xué)習(xí)C++的人越來越少了。當(dāng)然懷著這個目的,你或許永遠無法成為C++高手,但我把這個原因放在最前面,可以給大家一個很明確的激勵,當(dāng)你接觸C++后,發(fā)現(xiàn)從學(xué)習(xí)中獲得樂趣比高的工資更有動力;

2)C++的優(yōu)勢是用來開發(fā)大型軟件,從中可以學(xué)到很多優(yōu)秀的軟件設(shè)計思想。C++不是軟件開發(fā)的首選工具,一般說來,大多人更愿意學(xué)習(xí)和使用VB,為什么,簡單。簡單的另一個方面是功能的局限。微軟公司恨不的所有人都學(xué)VB,只有他一家會C++。容易上手,大家都喜歡學(xué),喜歡用,很多人拿一本200頁的書,看個兩三個星期,就覺得自己是個程序員了,可以開發(fā)軟件了,而且覺得做出來的東西很不錯。當(dāng)軟件規(guī)模大到一定程度的時候,其他語言就越來越無法駕馭,這時C++的優(yōu)勢就體現(xiàn)出來了。你說做個成績管理系統(tǒng),人事查詢系統(tǒng),用VB,DELPHI,C#,JAVA都行,但是例如銀行,電信,保險,操作系統(tǒng),數(shù)據(jù)倉庫,圖形處理,編譯系統(tǒng),較底層的軟件時,其他工具幾乎是無法完成的。就說C++的指針,JAVA沒有,在遇到數(shù)據(jù)量交大的數(shù)據(jù)排序,搜索,動態(tài)內(nèi)存分配時,它就沒有辦法了。所以說,學(xué)習(xí)C++,不僅僅是學(xué)到

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論