版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第一章第一章 概說概說C+1.0 1.0 本科程在專業(yè)學習中的地位本科程在專業(yè)學習中的地位1.1 1.1 程序設計語言程序設計語言 1.2 C+1.2 C+前史前史 1.3 C+1.3 C+ 1.4 C+1.4 C+編程流程編程流程 1.5 1.5 最小樣板程序最小樣板程序1.6 1.6 程序與算法程序與算法 1.7 1.7 過程化程序設計過程化程序設計 1.8 1.8 對象化程序設計對象化程序設計 1.91.9 小結小結 第一章第一章 概說概說C+1.0 本科程在專業(yè)學習中的地位本科程在專業(yè)學習中的地位智能無線終端應用智能無線終端應用(5-7(5-7學期學期) ) 電磁場與電磁波;電磁場與電
2、磁波; 數字圖象處理;數字圖象處理; 信號檢測與處理;信號檢測與處理; 微波技術與天線;微波技術與天線; 射頻電路設計原理與應用射頻電路設計原理與應用。 專業(yè)基礎課程專業(yè)基礎課程第一層次第一層次(3-5(3-5學期學期) ): 電路原理、模擬電子技術、數字電路與數字邏輯;電路原理、模擬電子技術、數字電路與數字邏輯;第二層次第二層次(5-6(5-6學期學期) ): 信號與系統(tǒng)信號與系統(tǒng)、數字信號處理、電子測量原理;數字信號處理、電子測量原理;第三層次第三層次(5-7(5-7學期學期) ): MATLAB與系統(tǒng)仿真與系統(tǒng)仿真、電子線路、電子線路CAD、DSP原理及應用原理及應用智能信息處理支持課程
3、智能信息處理支持課程1. 1. 高端軟件設計支持高端軟件設計支持(2-4(2-4學期學期) ) 程序設計基礎程序設計基礎C C; C+C+程序設計;程序設計; 可視化編程與應用??梢暬幊膛c應用。 2. 2. 芯片級設計支持芯片級設計支持(5-7(5-7學期學期) ) 微機原理與應用;微機原理與應用; 單片機原理與應用;單片機原理與應用; 嵌入式系統(tǒng);嵌入式系統(tǒng); 專業(yè)課程設計。專業(yè)課程設計。工業(yè)信號檢測系統(tǒng)工業(yè)信號檢測系統(tǒng)與智能電子產品研發(fā)與智能電子產品研發(fā)(5-7(5-7學期學期) ) 傳感器原理與應用;傳感器原理與應用; 檢測技術基礎;檢測技術基礎; 數據庫開發(fā)與應用;數據庫開發(fā)與應用;
4、 現代電氣及現代電氣及PLCPLC技術;技術; 樓宇智能化技術。樓宇智能化技術。 第一章第一章 概說概說C+本科程學習的高端目標:本科程學習的高端目標:1. 程序設計競賽;程序設計競賽;2. 初級程序員初級程序員(證書):第四五學期(證書):第四五學期 相當于實習工程師(本科畢業(yè))相當于實習工程師(本科畢業(yè))3. 中級程序員中級程序員(證書):第五六學期(證書):第五六學期 相當于助理工程師(本科畢業(yè)工作相當于助理工程師(本科畢業(yè)工作 1 年以上)年以上)4. 高級程序員高級程序員(證書):第六七學期(證書):第六七學期 相當于工程師(本科畢業(yè)工作相當于工程師(本科畢業(yè)工作 5 年以上)年以上
5、)5. 軟件設計師軟件設計師(證書):第七八學期(證書):第七八學期 相當于高級工程師(本科畢業(yè)工作相當于高級工程師(本科畢業(yè)工作 9 年以上)年以上)第一章第一章 概說概說C+ C+到底難不難學?它從開始誕生以來,到底難不難學?它從開始誕生以來,發(fā)展勢發(fā)展勢頭 一 直 旺 到 現 在頭 一 直 旺 到 現 在 , 背 后 一 定 也 有 它 的 道 理 。, 背 后 一 定 也 有 它 的 道 理 。 C+綜合了各家之長,功能多綜合了各家之長,功能多,操作起來簡單。有人,操作起來簡單。有人說它難學,這是正常的說它難學,這是正常的,否則,否則,一學就會的東西,還一學就會的東西,還用得著努力教和
6、學嗎?用得著努力教和學嗎?至于學習的結果,就因人而異,至于學習的結果,就因人而異,甚至大相徑庭了。難怪有的人趣味盎然,有的人大嘆甚至大相徑庭了。難怪有的人趣味盎然,有的人大嘆苦經??嘟洝?中國古代有名畫家王冕就是因為信奉了這樣一句中國古代有名畫家王冕就是因為信奉了這樣一句話而成才的:話而成才的:沒有學不會的事情!沒有學不會的事情! 第一章第一章 概說概說C+1.1 程序設計語言程序設計語言(Programming Language)(Programming Language) 人們用程序設計語言描述需要解決的問題,用人們用程序設計語言描述需要解決的問題,用“語語言翻譯言翻譯/編譯器編譯器”加工
7、以使計算機理解其描述,爾后就加工以使計算機理解其描述,爾后就能使計算機代替人們工作了。雖然編程語言最終目的能使計算機代替人們工作了。雖然編程語言最終目的是促使計算機為人們工作,但人們用編程語言對問題是促使計算機為人們工作,但人們用編程語言對問題的描述方式與內容,隨著使用群體的擴大,越來越多的描述方式與內容,隨著使用群體的擴大,越來越多地成為人們之間相互地成為人們之間相互交流過程描述與信息表達的工具交流過程描述與信息表達的工具。 計算機上的機器指令也稱為機器代碼,它是機器語計算機上的機器指令也稱為機器代碼,它是機器語言的程序。機器語言是低級語言,匯編語言是機器語言的程序。機器語言是低級語言,匯編
8、語言是機器語言的直接符號表示,所以基本上也是低級語言。而言的直接符號表示,所以基本上也是低級語言。而C+則是高級語言則是高級語言 。第一章第一章 概說概說C+ mov eax, DWORD PTR a $ebp 8b 45 fc lea eax, DWORD PTR eax+eax*2 8d 04 40 mov ecx, DWORD PTR b $ebp 8b 4d f8 add ecx, ecx 03 c9 sub eax, ecx 2b c1 inc eax 40 mov DWORD PTR a $ebp, eax 89 45 fc匯編語言和某個特定的機器語言:匯編語言和某個特定的機器語言
9、:第一章第一章 概說概說C+ 程序語言越低級,則必須對過程描寫越具體,指令程序語言越低級,則必須對過程描寫越具體,指令也就越接近機器的硬件邏輯。程序語言越高級,就越接也就越接近機器的硬件邏輯。程序語言越高級,就越接近對問題的描述與表達,因而更直觀,容易被人們所理近對問題的描述與表達,因而更直觀,容易被人們所理解。解。 程序語言從低級到高級的發(fā)展,也就是從具體描述程序語言從低級到高級的發(fā)展,也就是從具體描述(編程)(編程)到抽象描述到抽象描述(編程)(編程),高級語言的抽象描述最,高級語言的抽象描述最后都后都需用需用“語言編譯器語言編譯器”自動轉化成機器的具體實現。自動轉化成機器的具體實現。 語
10、言編譯器語言編譯器的發(fā)展,則是從簡單到復雜的過程。語的發(fā)展,則是從簡單到復雜的過程。語言越是高級,描述越是抽象,則用于自動化轉換的言越是高級,描述越是抽象,則用于自動化轉換的語言語言編譯器編譯器越復雜,以便人們對問題只需有個相對簡單的描越復雜,以便人們對問題只需有個相對簡單的描述(編程),就能夠被機器所理解。述(編程),就能夠被機器所理解。 第一章第一章 概說概說C+1.2 C+前史(Pre-C+ history) 1953年年12月,月,IBM公司的公司的John Backus寫了一份備忘錄,寫了一份備忘錄,建議為建議為IBM704設計一種全新的編程語言。設計一種全新的編程語言。Backus
11、多年工作在多年工作在計算機上,深切體會到編程困難,他的目標是設計一種用于科計算機上,深切體會到編程困難,他的目標是設計一種用于科學計算的學計算的“公式翻譯語言公式翻譯語言”。 他帶領的一個團隊,終于在他帶領的一個團隊,終于在1954年完成了年完成了FORTRAN語言語言的設計和實現的設計和實現。在那以后,不同版本的。在那以后,不同版本的FORTRAN語言紛紛面語言紛紛面世。世。1966年,美國統(tǒng)一了它的標準年,美國統(tǒng)一了它的標準,稱為,稱為FORTRAN66語言,語言,此后,又被更新為此后,又被更新為FORTRAN77和和FORTRAN90。FORTRAN語言的后繼版本要兼容以前大量的語言的后
12、繼版本要兼容以前大量的FORTRAN老程序,這一負老程序,這一負擔阻礙了它,無法革新成現代編程語言特征。但不管怎樣,擔阻礙了它,無法革新成現代編程語言特征。但不管怎樣,FORTRAN語言一直活躍了語言一直活躍了40多年多年,Backus為此摘取了為此摘取了1977年年度的度的“圖靈獎圖靈獎”。 第一章第一章 概說概說C+代數語言代數語言ALGOL 1958年,一個國際商業(yè)和學術計算機科學家組成年,一個國際商業(yè)和學術計算機科學家組成的委員會在瑞士開會,探討改進的委員會在瑞士開會,探討改進FORTRAN問題,并問題,并嘗試設計一種標準化的計算機語言。嘗試設計一種標準化的計算機語言。1960年,該委
13、員年,該委員會在會在1958年討論的基礎上,定義了一種新的語言年討論的基礎上,定義了一種新的語言國際代數語言國際代數語言ALGOL60,首次引入了局部變量和遞首次引入了局部變量和遞歸概念歸概念,在數學表達和算法描述上比,在數學表達和算法描述上比FORTRAN更出更出色,而且它不是解釋執(zhí)行,而是色,而且它不是解釋執(zhí)行,而是編譯后運行編譯后運行,比,比FORTRAN程序效率更高。但由于程序效率更高。但由于ALGOL語言的設語言的設計要求是計要求是獨立于機器獨立于機器的,所以就面臨許多語言實現方的,所以就面臨許多語言實現方面的技術問題,致使面的技術問題,致使ALGOL語言無法流行。但它卻語言無法流行
14、。但它卻演變?yōu)槠渌幊陶Z言設計的概念基礎。演變?yōu)槠渌幊陶Z言設計的概念基礎。第一章第一章 概說概說C+ 科學計算借助于科學計算借助于FORTRAN獲得快速進展的時候,獲得快速進展的時候,還沒有一種適用于商業(yè)計算的語言。美國國防部注意還沒有一種適用于商業(yè)計算的語言。美國國防部注意到了這種情況,到了這種情況,1959年年5月月,五角大樓委托,五角大樓委托Grace Murray Hopper博士領導一個委員會,開始設計博士領導一個委員會,開始設計面向面向商業(yè)的通用語言商業(yè)的通用語言COBOL。COBOL最重要的特征是語最重要的特征是語法與英文很接近,可以讓不懂計算機的人也能看懂程法與英文很接近,可
15、以讓不懂計算機的人也能看懂程序。序。1968年,年,COBOL語言進行了標準化語言進行了標準化。后又在。后又在1974年和年和1984年進行了標準化更新。年進行了標準化更新。COBOL語言曾經風語言曾經風靡一時。靡一時。 商用語言商用語言COBOL第一章第一章 概說概說C+BASIC語言語言 60年代中期,美國年代中期,美國Dartmouth學院的學院的John G.Kemeney和和Thomas E.Kurtz認為,像認為,像FORTRAN這樣的編程語言,都是為這樣的編程語言,都是為專業(yè)人員設計的,而他們希望能為無經驗的人提供一種簡單的專業(yè)人員設計的,而他們希望能為無經驗的人提供一種簡單的編
16、程語言,特別希望那些非計算機專業(yè)的學生也能通過這種語編程語言,特別希望那些非計算機專業(yè)的學生也能通過這種語言學會使用計算機。于是,他們在簡化言學會使用計算機。于是,他們在簡化FORTRAN的基礎上,的基礎上,研究出了研究出了BASIC語言。由于語言。由于BASIC語言易學易用語言易學易用,很快就成為,很快就成為最流行的計算機語言之一,幾乎所有小型和個人計算機都使用最流行的計算機語言之一,幾乎所有小型和個人計算機都使用它。它。BASIC語言發(fā)展到后來,出現了許多改版,典型的有語言發(fā)展到后來,出現了許多改版,典型的有1983年推出的年推出的TrueBASIC,1985年推出的年推出的QBASIC,
17、以及,以及1991年推年推出的出的Visual BASIC(簡稱(簡稱VB)。)。VB一直風靡至今長盛不衰。一直風靡至今長盛不衰。 第一章第一章 概說概說C+Lisp語言語言 同在同在60年代中期,美國年代中期,美國MIT的的John McCarthy等等人設計和實現了人設計和實現了用于人工智能研究用于人工智能研究的的Lisp語言。語言。Lisp語言是語言是基于表處理的函數語言基于表處理的函數語言,由于該語言更面向問,由于該語言更面向問題,因此較題,因此較容易編程,描述能力更強容易編程,描述能力更強,更易于進行程,更易于進行程序正確性驗證和軟件維護。但由于實現序正確性驗證和軟件維護。但由于實現
18、技術復雜,處技術復雜,處理文件等能力不強,運行效率低理文件等能力不強,運行效率低,該工具一直停留在,該工具一直停留在實驗室階段。實驗室階段。 第一章第一章 概說概說C+計算機教學語言計算機教學語言LOGO和結構化的編程語言和結構化的編程語言Pascal 1967年,美國麻省理工大學人工智能實驗室年,美國麻省理工大學人工智能實驗室S.Papert為兒童為兒童設計了一種設計了一種LOGO編程語言。他用編程語言。他用LOGO語言啟發(fā)孩子們的學語言啟發(fā)孩子們的學習與思考,一些孩子用習與思考,一些孩子用LOGO語言設計出了真正的程序,于是語言設計出了真正的程序,于是LOGO成為一種熱門的計算機教學語言。
19、成為一種熱門的計算機教學語言。 1971年,瑞士聯邦技術學院年,瑞士聯邦技術學院N.Wirth教授發(fā)明了教授發(fā)明了Pascal語語言。言。Pascal語言語法嚴謹,層次分明,程序易寫,具有很強的語言語法嚴謹,層次分明,程序易寫,具有很強的可讀性,是第一個結構化的編程語言可讀性,是第一個結構化的編程語言。它一出世就受到廣泛歡。它一出世就受到廣泛歡迎,為此,他獲得迎,為此,他獲得1984年度的年度的“圖靈獎圖靈獎”。 第一章第一章 概說概說C+Simula67語言語言 1967年,挪威奧斯陸的年,挪威奧斯陸的Johan Dahl和和Kristen Nygaard推出了推出了Simula67語言。該
20、語言語言。該語言第一次提出類第一次提出類的概念的概念,能夠把應用中的概念直接用編程語言描述,能夠把應用中的概念直接用編程語言描述,比其他語言編寫的程序更具可讀性,而且編譯系統(tǒng)捕比其他語言編寫的程序更具可讀性,而且編譯系統(tǒng)捕捉類型錯誤的能力十分強,保證了程序規(guī)模擴大之后,捉類型錯誤的能力十分強,保證了程序規(guī)模擴大之后,錯誤量不會非線性增長。該語言曾配置在好幾個大型錯誤量不會非線性增長。該語言曾配置在好幾個大型計算機上,但由于計算機上,但由于編譯實現不完善編譯實現不完善,導致運行效率低,導致運行效率低下,只能執(zhí)行一些小型程序,所以像下,只能執(zhí)行一些小型程序,所以像ALGOL語言一語言一樣,沒能流行
21、,但成為未來面世的樣,沒能流行,但成為未來面世的面向對象編程語言面向對象編程語言的概念基礎的概念基礎。 第一章第一章 概說概說C+C語言語言 1970年,年,AT&T的的Bell實驗室實驗室D.Ritchie和和K.Thompson共同發(fā)明了共同發(fā)明了C語言。研制語言。研制C語言的初衷是語言的初衷是用它編寫用它編寫UNIX系統(tǒng)程序,因此,它實際上是系統(tǒng)程序,因此,它實際上是UNIX的的“副產品副產品”。它充分。它充分結合了結合了和和的優(yōu)的優(yōu)點點,又,又,所以大受程序設計師,所以大受程序設計師的青睞,成為計算機產業(yè)界的寵兒。為此,他們兩位的青睞,成為計算機產業(yè)界的寵兒。為此,他們兩位獲得
22、了獲得了1983年度的年度的“圖靈獎圖靈獎”。 第一章第一章 概說概說C+C+語言語言 70年代中期,年代中期,Bjarne Stroustrup在劍橋大學計算機中心在劍橋大學計算機中心工作。他使用過工作。他使用過Simula和和ALGOL,實現過低級語言,實現過低級語言BCPL,接,接觸過觸過C。他。他對對Simula的類體系的類體系感受頗深,感受頗深,對對ALGOL的結構的結構也也頗有好感,他深知頗有好感,他深知運行效率運行效率的意義,所以,十分欣賞的意義,所以,十分欣賞C語言。語言。以以C為背景,以為背景,以Simula思想為基礎,正好符合既要編程簡單、思想為基礎,正好符合既要編程簡單、
23、正確可靠,又要運行高效、可移植的設想正確可靠,又要運行高效、可移植的設想。1979年,年,Bjarne Stroustrup到了到了Bell實驗室,開始從事實驗室,開始從事將將C改良為帶類的改良為帶類的C (C with classes)的工作。的工作。1983年將該語言年將該語言正式命名為正式命名為C+。90年代,年代,程序員開始慢慢從程序員開始慢慢從C中淡出,轉入中淡出,轉入C+。此后,。此后,C+穩(wěn)步發(fā)展,穩(wěn)步發(fā)展,1998年年ISO/ANSI C+標準正式制定,如今已是標準正式制定,如今已是如日中天如日中天。鑒。鑒于于C+對現代計算機產業(yè)的貢獻對現代計算機產業(yè)的貢獻,1995年年BYT
24、E雜志將雜志將Bjarne Stroustrup列入列入“計算機工業(yè)計算機工業(yè)20個最具影響力的人個最具影響力的人”。 第一章第一章 概說概說C+1.3 C+1.3 C+ C+是從是從C語言中繼承而來的。語言中繼承而來的。C+的發(fā)展壯大,主要是的發(fā)展壯大,主要是因為程序設計方法的發(fā)展。程序設計方法的發(fā)展,主要是計算因為程序設計方法的發(fā)展。程序設計方法的發(fā)展,主要是計算機應用范圍的擴大和編程規(guī)模的擴大。機應用范圍的擴大和編程規(guī)模的擴大。 C語言之所以風靡一時,在于當時需要計算機解決的問題語言之所以風靡一時,在于當時需要計算機解決的問題多半是小規(guī)模問題,一般通過單臺計算機獨立蠻算便可解決。多半是小
25、規(guī)模問題,一般通過單臺計算機獨立蠻算便可解決。隨著計算機的發(fā)展,人們開始著手解決隨著計算機的發(fā)展,人們開始著手解決大數據量大數據量的處理問題,的處理問題,需要處理大量需要處理大量復雜結構的數據復雜結構的數據。C程序員雖然經過程序員雖然經過艱苦的努力艱苦的努力,設計出許多設計出許多精巧的程序精巧的程序,但是在,但是在理解上卻越來越困難,運行問理解上卻越來越困難,運行問題也越來越多題也越來越多。程序需要。程序需要“保修(可維護性要求)保修(可維護性要求)”,需要,需要“擴充(可擴展性要求)擴充(可擴展性要求)”,需要,需要“加固(安全性要求)加固(安全性要求)”。而這些精巧的程序由于內在結構的弱點
26、而這些精巧的程序由于內在結構的弱點數據結構與算法盤數據結構與算法盤根錯節(jié),無法被可逆地拆解,很難分析根錯節(jié),無法被可逆地拆解,很難分析“險情險情”和重新使用。和重新使用。第一章第一章 概說概說C+ 設計計算機語言的專家要改革這一現狀,提出程設計計算機語言的專家要改革這一現狀,提出程序設計語言應該序設計語言應該具有數據類型的擴充能力具有數據類型的擴充能力。于是基于。于是基于數據類型和面向數據類型的編程語言不斷浮出水面。數據類型和面向數據類型的編程語言不斷浮出水面。這些方法,是以程序員自己定義或設計數據類型的方這些方法,是以程序員自己定義或設計數據類型的方式將復雜結構的數據進行系統(tǒng)的組織,統(tǒng)一的管
27、理,式將復雜結構的數據進行系統(tǒng)的組織,統(tǒng)一的管理,以使程序組織合理,算法設計簡單和易懂,以使程序組織合理,算法設計簡單和易懂,C+便是便是其中之一,從商業(yè)化角度看,其中之一,從商業(yè)化角度看,C+更是其中的跤跤者。更是其中的跤跤者。在在C的簡捷、高效的簡捷、高效的基礎上,的基礎上,C+添加了自定義數據類添加了自定義數據類型的整套設施型的整套設施,以適應大規(guī)模編程的需要。因此,進,以適應大規(guī)模編程的需要。因此,進入市場后,面向對象的編程方法也開始工業(yè)化了。入市場后,面向對象的編程方法也開始工業(yè)化了。 第一章第一章 概說概說C+C繼承者繼承者 C+對對C的繼承是青出于藍而勝于藍,因為是對的繼承是青出
28、于藍而勝于藍,因為是對C的繼承,也就承諾了對的繼承,也就承諾了對C的包容。的包容。C+對對C的包容,也的包容,也包括對程序設計方法的包括對程序設計方法的包容包容,這就決定了,這就決定了C+擅長擅長面面向對象程序設計向對象程序設計的同時,還可以進行的同時,還可以進行基于過程的程序基于過程的程序設計設計,因而,因而C+就適應的問題規(guī)模而論,大小由之。就適應的問題規(guī)模而論,大小由之。 C+是一種是一種混合型混合型程序設計語言,程序設計語言,“混合混合”體現體現在在可以采用不同的程序設計方法可以采用不同的程序設計方法,進行各種目的的編,進行各種目的的編程。程。 “混合混合”意味著絕不放棄計算機意味著絕
29、不放棄計算機高效運行高效運行的實用性特的實用性特征,而又致力于提高征,而又致力于提高大規(guī)模程序的編程大規(guī)模程序的編程質量,提高程質量,提高程序設計語言的問題描述能力。序設計語言的問題描述能力。 第一章第一章 概說概說C+標準標準C+ 有了有了C+標準,專家們在標準,專家們在開發(fā)開發(fā)C+編譯器編譯器時,可以時,可以避免大量避免大量的研究無序性和重復勞動的研究無序性和重復勞動,并且也為組織大規(guī)模的編譯軟件開,并且也為組織大規(guī)模的編譯軟件開發(fā)創(chuàng)造了前提條件;發(fā)創(chuàng)造了前提條件; 有了有了C+標準文檔,語言設計者,程序員和用戶三者就可以標準文檔,語言設計者,程序員和用戶三者就可以有一致的語言來互通,有一
30、致的語言來互通,在程序員社區(qū)可以暢通地交流在程序員社區(qū)可以暢通地交流,編寫的,編寫的程序變得更有效,更通用,更易懂。程序變得更有效,更通用,更易懂。 有了有了C+標準,程序員所開發(fā)的軟件產品具有更高的系統(tǒng)標準,程序員所開發(fā)的軟件產品具有更高的系統(tǒng)可可移植性移植性;C+標準還在標準還在防止技術封鎖防止技術封鎖,促進軟件技術的交流促進軟件技術的交流,提高軟件競爭力等方面起到了很好的保護作用;提高軟件競爭力等方面起到了很好的保護作用; 所以當所以當C+發(fā)展到一定規(guī)模的時候,無論是用戶、程序員,發(fā)展到一定規(guī)模的時候,無論是用戶、程序員,還是還是C+語言的設計者,都在竭力推動標準化的工作。語言的設計者,
31、都在竭力推動標準化的工作。第一章第一章 概說概說C+ 使用標準使用標準C+,也意味著程序員可以充分享用,也意味著程序員可以充分享用C+的資源的資源標準庫。從而帶來更多的快速和方便,提高標準庫。從而帶來更多的快速和方便,提高抽象編程的程度。所以,學習抽象編程的程度。所以,學習C+,理所當然地要學,理所當然地要學習標準習標準C+。 在我國,個人計算機配置的操作系統(tǒng)以在我國,個人計算機配置的操作系統(tǒng)以Windows居居多,比較容易獲得的多,比較容易獲得的標準標準C+就是就是Borland公司的公司的C+ Builder 6或者以上版本,或者或者以上版本,或者微軟公司的微軟公司的Visual C+、
32、.net或者以上版本。若在或者以上版本。若在linux系統(tǒng)上,比較容系統(tǒng)上,比較容易獲得的標準易獲得的標準C+工具就是工具就是Borland C+ Kylix 3.0以以上版本。另外,上版本。另外,通用的通用的C+編譯器當數編譯器當數C+3.0了,它了,它即有即有Windows版本,又有版本,又有Linux版本。版本。 第一章第一章 概說概說C+1.4 C+1.4 C+編程流程編程流程 程序設計語言發(fā)展到現在,無論程序設計語言發(fā)展到現在,無論編譯型編譯型還是還是解釋型解釋型,一般,一般都附帶提供一個都附帶提供一個集成開發(fā)環(huán)境集成開發(fā)環(huán)境(Integrated Development Envir
33、onment,IDE)。程序員可以在該環(huán)境中,編輯程序代)。程序員可以在該環(huán)境中,編輯程序代碼,逐個編譯源文件,裝配和鏈接全部源文件及其資源文件,碼,逐個編譯源文件,裝配和鏈接全部源文件及其資源文件,直至調試運行。甚至軟件包裝和做成軟件產品都可以一體化。直至調試運行。甚至軟件包裝和做成軟件產品都可以一體化。 解釋型環(huán)境(如解釋型環(huán)境(如VB)中,編輯代碼后,沒有編譯和鏈接)中,編輯代碼后,沒有編譯和鏈接的中間環(huán)節(jié),可以直接運行,方便編程開發(fā)。但由于程序運行的中間環(huán)節(jié),可以直接運行,方便編程開發(fā)。但由于程序運行不能離開解釋器現場,所以不能離開解釋器現場,所以效率上效率上便落了下風。對于規(guī)模化的便
34、落了下風。對于規(guī)?;拇蟪绦?,大程序,低性能低性能表現得更加明顯,所以真正的計算任務和中大表現得更加明顯,所以真正的計算任務和中大型軟件開發(fā)一般都不用解釋型環(huán)境開發(fā)。型軟件開發(fā)一般都不用解釋型環(huán)境開發(fā)。 第一章第一章 概說概說C+ C+語言的程序因為要體現高性能,所以都是編語言的程序因為要體現高性能,所以都是編譯型的。譯型的。C+的的IDE(集成開發(fā)環(huán)境)(集成開發(fā)環(huán)境)用解釋型的逐用解釋型的逐條語句執(zhí)行方式以方便開發(fā)調試條語句執(zhí)行方式以方便開發(fā)調試,用編譯型的方式來用編譯型的方式來生成最終能脫離開發(fā)環(huán)境的執(zhí)行代碼以提高運行效率生成最終能脫離開發(fā)環(huán)境的執(zhí)行代碼以提高運行效率。 IDE功能齊全,
35、調試功能很強,程序編好后,可功能齊全,調試功能很強,程序編好后,可以立刻在環(huán)境中調試以獲得初步測試結果,然后,可以立刻在環(huán)境中調試以獲得初步測試結果,然后,可以方便地做成以方便地做成beta版形式,拿到實際環(huán)境中進一步測版形式,拿到實際環(huán)境中進一步測試,最后做成軟件發(fā)行版。試,最后做成軟件發(fā)行版。 一般的編程操作流程為:編輯(一般的編程操作流程為:編輯(edit)編譯編譯(compile)鏈接(鏈接(link或或make或或build)調試調試(debug),該過程循環(huán)往復,直至完成。),該過程循環(huán)往復,直至完成。 第一章第一章 概說概說C+ C+源程序,或稱源程序,或稱源代碼源代碼(sour
36、ce code),簡稱代碼,簡稱代碼(code),以,以擴展名為擴展名為.cpp(在(在Windows環(huán)境中)的文本環(huán)境中)的文本形式存放。形式存放。 程序被編譯程序被編譯(compile)后,會生成后,會生成目標代碼目標代碼(object code),以以.obj為文件擴展名為文件擴展名存放。目標代碼即機器代存放。目標代碼即機器代碼,是計算機能夠識別的指令集合,但是,目標指令碼,是計算機能夠識別的指令集合,但是,目標指令(也稱目標代碼)還不能在具體的計算機上運行,因(也稱目標代碼)還不能在具體的計算機上運行,因為目標代碼只是一個個獨立的為目標代碼只是一個個獨立的程序段程序段,程序段之間還,程
37、序段之間還沒有彼此呼應,程序段中用到的沒有彼此呼應,程序段中用到的C+庫代碼和其他資庫代碼和其他資源還沒有掛上。源還沒有掛上。 第一章第一章 概說概說C+ 為了把成組的程序段轉換為可執(zhí)行程序,必須進為了把成組的程序段轉換為可執(zhí)行程序,必須進行鏈接行鏈接(link),鏈接的過程就是將目標代碼整合(或稱,鏈接的過程就是將目標代碼整合(或稱轉換)成可執(zhí)行文件,轉換)成可執(zhí)行文件,可執(zhí)行文件通常以可執(zhí)行文件通常以.exe為文件為文件擴展名擴展名。 C+程序在編譯后,通過同時鏈接若干個目標文程序在編譯后,通過同時鏈接若干個目標文件與若干個庫文件而創(chuàng)建可執(zhí)行程序。庫文件是系統(tǒng)件與若干個庫文件而創(chuàng)建可執(zhí)行程
38、序。庫文件是系統(tǒng)提供的程序鏈接資源,不同公司的提供的程序鏈接資源,不同公司的IDE產品有不同的產品有不同的后綴,例如,后綴,例如,Visual C+的庫文件的后綴是的庫文件的后綴是.lib。標準。標準C+提供提供C+標準庫,用戶庫是由軟件開發(fā)商或程序標準庫,用戶庫是由軟件開發(fā)商或程序員提供的。目標文件與庫文件鏈接的結果,生成計算員提供的。目標文件與庫文件鏈接的結果,生成計算機可執(zhí)行程序。機可執(zhí)行程序。 第一章第一章 概說概說C+1.5 最小樣板程序最小樣板程序(Minimum Sample Program) C+編譯器能理解的有標準輸出的最小程序為:編譯器能理解的有標準輸出的最小程序為:#in
39、cludeint main()std:cout”hello world.n”;為了讓人能更好地理解,并讓程序體現出其邏輯結構。為了讓人能更好地理解,并讓程序體現出其邏輯結構。上述程序最好寫成如下所示的有結構形式:上述程序最好寫成如下所示的有結構形式:#includeint main() std:cout”hello world.n”;第一章第一章 概說概說C+ 程序中程序中“iostreamiostream”是是C+C+為特定環(huán)境編制的標準輸入輸出為特定環(huán)境編制的標準輸入輸出流類的標準庫頭文件。流類的標準庫頭文件。 “ “coutcout”是是標準輸出設備的名字,標準輸出設備的名字,“”是操作
40、命令,指示是操作命令,指示將后面的數據(字串將后面的數據(字串Hello world.nHello world.n),送到顯示器設備上),送到顯示器設備上去。去。 “std”std”是是“名空間名空間”。程序中有若干名字,程序規(guī)模大起。程序中有若干名字,程序規(guī)模大起來后,難免會有名字沖突,就好像學校中遇到同名學生:來后,難免會有名字沖突,就好像學校中遇到同名學生:A A班班中有張三,中有張三,B B班中也有張三,當班中也有張三,當A A、B B班在一起上課時,就有名班在一起上課時,就有名字沖突問題。解決的簡單辦法就是兩個張三分別命名為:字沖突問題。解決的簡單辦法就是兩個張三分別命名為:“A A
41、班的張三班的張三”,“B B班的張三班的張三”。C+C+也是這樣來解決問題的。為也是這樣來解決問題的。為了防止程序員自己又命名一個了防止程序員自己又命名一個“coutcout”而造成沖突而造成沖突, ,就特地對就特地對語言專門提供的標準設備名語言專門提供的標準設備名“coutcout”冠以前綴冠以前綴“std:”std:”,表,表示示“標準庫中的標準庫中的coutcout”。 第一章第一章 概說概說C+編程風格編程風格(Programming Style) C+的程序語法是以空格和換行(回車)來區(qū)分詞法單位,的程序語法是以空格和換行(回車)來區(qū)分詞法單位,以特定的字符來辨認語法的,如,分號以特
42、定的字符來辨認語法的,如,分號“;”表示語句的結束。表示語句的結束。除此之外,其書寫形式就比較隨意。程序設計格式的隨意性,除此之外,其書寫形式就比較隨意。程序設計格式的隨意性,給程序設計風格帶來了可朔性。給程序設計風格帶來了可朔性。 程序設計風格應以程序設計風格應以可讀性可讀性為準則,合理的為準則,合理的緊湊性、模塊整緊湊性、模塊整體性、對齊、鋸齒型嵌套、注釋體性、對齊、鋸齒型嵌套、注釋都是形成特定風格的因素。都是形成特定風格的因素。為了讓程序表現出為了讓程序表現出美感美感,又不致于語句前后內容含混不清、結構,又不致于語句前后內容含混不清、結構混亂,語句書寫講究疏密得當。混亂,語句書寫講究疏密
43、得當。 高級程序員的程序風格,體現了極大的一貫性和藝術性。高級程序員的程序風格,體現了極大的一貫性和藝術性。每個初學者必須要模仿編程風格,隨著編程量的增加,對程序每個初學者必須要模仿編程風格,隨著編程量的增加,對程序的感受多多,會不知不覺地形成自己獨特的風格。的感受多多,會不知不覺地形成自己獨特的風格。第一章第一章 概說概說C+最小樣本程序最小樣本程序/=/ min_sample.cpp/ 帶標準輸出的最小樣本程序帶標準輸出的最小樣本程序/=#includeint main() std:cout”helloWorld.n”;/顯示字符串顯示字符串/=第一章第一章 概說概說C+1.6 1.6 程
44、序與算法程序與算法(Program & Algorithm)(Program & Algorithm) 計算機程序是用計算機語言所要求的規(guī)范描述出計算機程序是用計算機語言所要求的規(guī)范描述出來的一系列動作,它表達了程序員要求計算機執(zhí)行的來的一系列動作,它表達了程序員要求計算機執(zhí)行的操作。操作。 優(yōu)秀的程序員尤其是優(yōu)秀的程序員尤其是C+程序員,追求編程方法的程序員,追求編程方法的實效性實效性。這意味著所謂。這意味著所謂“學會計算機語言,看得懂語學會計算機語言,看得懂語法,了解了語言的描述方法法,了解了語言的描述方法”,還是不夠的,它和熟,還是不夠的,它和熟練運用計算機語言,練運用計
45、算機語言,能用語言高效、正確地描述問題、能用語言高效、正確地描述問題、解決問題解決問題是有天壤之別的。是有天壤之別的。 學習計算機語言在于讓計算機準確地執(zhí)行程序,和學習計算機語言在于讓計算機準確地執(zhí)行程序,和學習其他語言一樣,都需要一個學習其他語言一樣,都需要一個充分的實踐充分的實踐過程。過程。第一章第一章 概說概說C+算法算法(Algorithm)的定義的定義 1)目的性)目的性 算法是有求解目的的動作序列,算法必須有算法是有求解目的的動作序列,算法必須有運算結果運算結果,而程序只是強調過程性而程序只是強調過程性;2)抽象性)抽象性 算法離不開數據結構,而數據結構在具體的算法離不開數據結構,
46、而數據結構在具體的計算機上實現要受到表示范圍的限制,算法比具體的計算機上實現要受到表示范圍的限制,算法比具體的程序設計抽象層次要高一些,算法甚至不在乎用什么程序設計抽象層次要高一些,算法甚至不在乎用什么編程語言來描述;編程語言來描述;3)研究性)研究性 算法許多時候用于理論研究,描述算法的目算法許多時候用于理論研究,描述算法的目的是溝通人們的思想,而不是實現,所以,算法可以的是溝通人們的思想,而不是實現,所以,算法可以用偽編程語言來描述。用偽編程語言來描述。第一章第一章 概說概說C+編程與結構編程與結構(Programming & Structure) 編程是為了解決計算問題,計算問題
47、強調算法,編程是為了解決計算問題,計算問題強調算法,程序設計程序設計也就是在一定抽象層次上的算法設計也就是在一定抽象層次上的算法設計。這里的抽象層次應理解。這里的抽象層次應理解為數據的描述方式。當許多編程問題含有大量縱橫交錯的數據為數據的描述方式。當許多編程問題含有大量縱橫交錯的數據時,人們便逐漸意識到數據組織與數據結構的重要,意識到數時,人們便逐漸意識到數據組織與數據結構的重要,意識到數據存在的形式必須脫離程序。據存在的形式必須脫離程序。1976年,計算機專家年,計算機專家N.Wirth提提出這樣的經典公式:出這樣的經典公式: 程序程序 算法算法 數據結構數據結構 強調編程中強調編程中數據結
48、構的描述應相對算法而獨立數據結構的描述應相對算法而獨立。程序不再是單。程序不再是單純的過程體(操作序列)了,不再是單純的算法了,而是算法純的過程體(操作序列)了,不再是單純的算法了,而是算法和數據結構的有機組織。和數據結構的有機組織。 第一章第一章 概說概說C+1.7 1.7 過程化程序設計過程化程序設計(Procedural Programming)(Procedural Programming) 過程化程序設計主要體現在算法上,編程就是解決算法如過程化程序設計主要體現在算法上,編程就是解決算法如何設計問題。當算法很大時,就考慮將它按功能劃分。程序組何設計問題。當算法很大時,就考慮將它按功能
49、劃分。程序組織圍繞算法的切分而展開。這一類問題一般都是小規(guī)模的問題,織圍繞算法的切分而展開。這一類問題一般都是小規(guī)模的問題,一般的程序設計語言都可以勝任。一般的程序設計語言都可以勝任。 過程程序設計按照問題來設計算法。它所使用的是語言中過程程序設計按照問題來設計算法。它所使用的是語言中現成的基本數據類型。問題模型反映為過程結構模型,實際上現成的基本數據類型。問題模型反映為過程結構模型,實際上就是功能模型。但由于過程模塊與數據的復雜關系沒有清晰地就是功能模型。但由于過程模塊與數據的復雜關系沒有清晰地分離出來,所以它一般都是分離出來,所以它一般都是“具體問題具體解決具體問題具體解決”,無法重復無法
50、重復使用其中的使用其中的“零部件零部件”,而且,問題龐大以后,其復雜性會無,而且,問題龐大以后,其復雜性會無法收場。法收場。 第一章第一章 概說概說C+結構化程序設計結構化程序設計(Structured Programming) 結構化程序設計方法主要體現在過程的功能劃分結構化程序設計方法主要體現在過程的功能劃分與過程內部的編寫規(guī)則上,因此它是一種與過程內部的編寫規(guī)則上,因此它是一種規(guī)范的過程規(guī)范的過程化化程序設計思想程序設計思想 。 結構化程序描述任何實體的操作序列只需用結構化程序描述任何實體的操作序列只需用“順順序,選擇(分支),重復(循環(huán))序,選擇(分支),重復(循環(huán))”三種基本控制結三
51、種基本控制結構。構。 結構化程序設計中的各個結構化程序設計中的各個過程體過程體和各個組成部分和各個組成部分以以模塊模塊來表示。每個模塊,其內聚性來表示。每個模塊,其內聚性(agregation)越強,越強,外聯性外聯性(association)越少,則模塊獨立性越好。越少,則模塊獨立性越好。 第一章第一章 概說概說C+ 內聚性內聚性,即模塊內部所涉及的功能越單一越好。這,即模塊內部所涉及的功能越單一越好。這樣一旦修改起來,就職責明確,不會因為這個原因那樣一旦修改起來,就職責明確,不會因為這個原因那個原因都來找這個模塊算帳。個原因都來找這個模塊算帳。 外聯性外聯性,即模塊之間的聯系越少越好,聯系
52、意味著,即模塊之間的聯系越少越好,聯系意味著依賴性,外聯性少,模塊的獨立性就好,獨立性意味依賴性,外聯性少,模塊的獨立性就好,獨立性意味著自說自話地修改本模塊與外界無關。因此就容易編著自說自話地修改本模塊與外界無關。因此就容易編程和修改。程和修改。 減少外聯性還涉及到對數據的分離與歸類。將過程減少外聯性還涉及到對數據的分離與歸類。將過程體中的數據分離出來,獨立地用數據結構去描述其數體中的數據分離出來,獨立地用數據結構去描述其數據和處理,這都是模塊劃分的原則。據和處理,這都是模塊劃分的原則。 第一章第一章 概說概說C+1.8 1.8 對象化程序設計對象化程序設計(Objectified Prog
53、ramming)(Objectified Programming) 伴隨著人類對計算機的依賴性日益增強,程序規(guī)伴隨著人類對計算機的依賴性日益增強,程序規(guī)模不斷擴大,模不斷擴大,模塊數呈指數級遞增模塊數呈指數級遞增,模塊間的,模塊間的數據傳數據傳遞五花八門遞五花八門,同一程序中,同一程序中模塊之間的關系錯綜復雜模塊之間的關系錯綜復雜,結構化程序設計的規(guī)范已經不能保證程序的正確性,結構化程序設計的規(guī)范已經不能保證程序的正確性,可維護性和重用性了。人們開始意識到不可能在語言可維護性和重用性了。人們開始意識到不可能在語言中內置所有的待解決問題的數據結構,必須讓語言具中內置所有的待解決問題的數據結構,必
54、須讓語言具有有自建數據結構自建數據結構的能力。的能力。 數據結構對于算法,對于程序是如此的重要,但數據結構對于算法,對于程序是如此的重要,但當時大多數語言都沒有專門支持對數據結構的直接描當時大多數語言都沒有專門支持對數據結構的直接描述。述。 第一章第一章 概說概說C+ 在在C語言中有一種結構語言中有一種結構(struct)類型,可以在單純空間上復類型,可以在單純空間上復合其他數據類型,描述數據的組織,但還是不能避免其數據操合其他數據類型,描述數據的組織,但還是不能避免其數據操作的安全問題。在大規(guī)模程序設計中,問題尤其突出。軟件發(fā)作的安全問題。在大規(guī)模程序設計中,問題尤其突出。軟件發(fā)展似有一個不
55、可逾越的極限,因此,在軟件產業(yè)界曾一度有展似有一個不可逾越的極限,因此,在軟件產業(yè)界曾一度有軟軟件危機件危機之說。之說。 其實其實浩瀚的編程大軍浩瀚的編程大軍并非每個人都必須要精通問題的每并非每個人都必須要精通問題的每個細節(jié),這就像使用電視機的人并非都要精通其內部的每個細個細節(jié),這就像使用電視機的人并非都要精通其內部的每個細節(jié)!我們可用電視機的外殼,把電視機的內部電路和外部使用節(jié)!我們可用電視機的外殼,把電視機的內部電路和外部使用一分為二。外部使用只需要了解電視機的基本操作方法,內部一分為二。外部使用只需要了解電視機的基本操作方法,內部電路提供電視機的各項功能,兩者都需要一個共同的規(guī)范電路提供
56、電視機的各項功能,兩者都需要一個共同的規(guī)范電視機的按鈕操作功能。電視機的按鈕操作功能。第一章第一章 概說概說C+ 抽象數據類型抽象數據類型就是想要描述這一共同的規(guī)范,它就是想要描述這一共同的規(guī)范,它描述數據描述數據的組織和相關的操作的組織和相關的操作。如果語言能夠自由定義數據類型,那么,。如果語言能夠自由定義數據類型,那么,問題就能化成以抽象數據類型為媒介的使用與實現獨立的兩部問題就能化成以抽象數據類型為媒介的使用與實現獨立的兩部分,因而該語言的解決問題的能力一定就強。分,因而該語言的解決問題的能力一定就強。衡量一個語言的衡量一個語言的優(yōu)劣,能否自定義或者說擴充數據類型是其重要指標優(yōu)劣,能否自
57、定義或者說擴充數據類型是其重要指標。 C+有一個有一個類類(class)機制機制,這正是,這正是C語言欠缺的地方。語言欠缺的地方。數據數據類型的本質是數據組織類型的本質是數據組織(實現)(實現)和其操作(和其操作(使用)使用)的捆綁性的捆綁性。當對應到具體編程時,用抽象數據類型來界定,就能把編程大當對應到具體編程時,用抽象數據類型來界定,就能把編程大軍分為兩個陣營,一個是專業(yè)性極強的,專門軍分為兩個陣營,一個是專業(yè)性極強的,專門實現實現抽象數據類抽象數據類型的編程,好比生產電視機者;另一個是專門型的編程,好比生產電視機者;另一個是專門使用使用抽象數據類抽象數據類型的編程,好比使用電視機者。型的
58、編程,好比使用電視機者。 第一章第一章 概說概說C+ 要能使抽象數據類型能夠維護要能使抽象數據類型能夠維護兩大程序員陣營兩大程序員陣營的編程利益,的編程利益,必須要在語言的設計中加入一些語言機制,這些語言機制采用必須要在語言的設計中加入一些語言機制,這些語言機制采用了許多難以想象的技術,實現了了許多難以想象的技術,實現了數據封裝數據封裝,類型安全類型安全等,而且等,而且還必然要使代碼更容易閱讀和維護,否則沒有人愿意用。還必然要使代碼更容易閱讀和維護,否則沒有人愿意用。 抽象數據類型的使用,最終像使用基本數據類型那樣簡單,抽象數據類型的使用,最終像使用基本數據類型那樣簡單,對應的對應的實體就稱之
59、為對象實體就稱之為對象。因此,編程的意義就是算法在。因此,編程的意義就是算法在對象對象之間穿梭之間穿梭,或曰,或曰針對對象的算法設計針對對象的算法設計。所以其相應的編程就是。所以其相應的編程就是對象化的編程了。對象化的編程了。 無論是無論是實現抽象數據類型的程序員群體實現抽象數據類型的程序員群體,還是使,還是使用抽象數用抽象數據類型的程序員群體據類型的程序員群體,他們都以同樣的參照在工作,都在做算,他們都以同樣的參照在工作,都在做算法設計的工作,所以更加直截了當而又具體的編程模式變成了法設計的工作,所以更加直截了當而又具體的編程模式變成了:程序程序 算法算法 抽象數據類型抽象數據類型第一章第一章 概說概說C+面向對象的程序設計面向對象的程序設計(Object-Oriented Prog
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度南寧住宅租賃合同解除及賠償協(xié)議
- 二零二五年度草原畜牧業(yè)生產承包合同模板4篇
- 二零二五年度學校食堂廚房設備采購及安裝工程合同3篇
- 2025年農藥企業(yè)質量管理體系認證合同示范文本
- 2025年度特殊材質窗簾定制安裝服務合同4篇
- 2025年度耐腐蝕抹灰材料勞務班組分包合同2篇
- 二零二五年度非物質文化遺產保護中心租賃合同終止公告
- 二零二五年度簡易工廠股權轉讓及經營權轉讓合同
- 二零二五年度智能家居系統(tǒng)安裝與維護服務合同
- 二零二五年度新材料研發(fā)與應用股權投資合同
- 我的家鄉(xiāng)瓊海
- (2025)專業(yè)技術人員繼續(xù)教育公需課題庫(附含答案)
- 《互聯網現狀和發(fā)展》課件
- 【MOOC】計算機組成原理-電子科技大學 中國大學慕課MOOC答案
- 2024年上海健康醫(yī)學院單招職業(yè)適應性測試題庫及答案解析
- 2024年湖北省武漢市中考語文適應性試卷
- 非新生兒破傷風診療規(guī)范(2024年版)解讀
- EDIFIER漫步者S880使用說明書
- 上海市華東師大二附中2025屆高二數學第一學期期末統(tǒng)考試題含解析
- IP授權合作合同模板
- 2024中華人民共和國農村集體經濟組織法詳細解讀課件
評論
0/150
提交評論