C++面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版)課件整套電子教案_第1頁
C++面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版)課件整套電子教案_第2頁
C++面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版)課件整套電子教案_第3頁
C++面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版)課件整套電子教案_第4頁
C++面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版)課件整套電子教案_第5頁
已閱讀5頁,還剩407頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C++面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版)

C++面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版)

第一章面向?qū)ο蟪绦蛟O(shè)計(jì)概述08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)第一章面向?qū)ο蟪绦蛟O(shè)計(jì)概述1.1面向?qū)ο蟮幕靖拍?.2C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.3C++程序的基本組成1.4VisualC++6.0開發(fā)環(huán)境08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.1面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟪绦蛟O(shè)計(jì)的本質(zhì)是把數(shù)據(jù)及對數(shù)據(jù)的操作方法放在一起,作為一個(gè)相互依存、不可分離的整體——對象。對同類型對象抽象出其共性,形成類。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.1面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟪绦蛟O(shè)計(jì)方法具有4個(gè)基本特征:抽象、封裝、繼承和多態(tài)性。抽象(abstract)就是忽略事物的非本質(zhì)特征,只注意那些與當(dāng)前目標(biāo)有關(guān)的本質(zhì)特征,從而找出事物的共性,把具有共同性質(zhì)的事物劃分為一類,得出一個(gè)抽象的概念。面向?qū)ο蠓椒ㄖ械摹邦悺睂⒕哂邢嗤瑢傩院托袨榈囊唤M對象提供了抽象的描述,一個(gè)屬于某類的對象稱為該類的一個(gè)實(shí)例。

08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.1面向?qū)ο蟮幕靖拍罘庋b(encapsulation)就是把每個(gè)對象的數(shù)據(jù)(屬性)和操作(行為)包裝在一個(gè)類中,并盡可能隱藏對象的內(nèi)部細(xì)節(jié)。一般限制直接訪問對象的屬性,而應(yīng)通過操作接口訪問,這樣使程序中模塊之間關(guān)系更簡單、數(shù)據(jù)更安全。對程序的修改也僅限于類的內(nèi)部,使得由于修改程序所帶來的影響局部化。

08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.1面向?qū)ο蟮幕靖拍疃鄳B(tài)性(polymorphism)是指允許不同類的對象對同一消息作出的響應(yīng)不相同。一般類中定義的屬性或行為,被特殊類繼承后,可以具有不同的數(shù)據(jù)類型或者是表現(xiàn)出不同的行為。這使得同一個(gè)屬性或行為在一般類及其各個(gè)特殊類中具有不同的語義08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.1面向?qū)ο蟮幕靖拍钔ㄟ^使用面向?qū)ο蟪绦蛟O(shè)計(jì)的抽象、封裝、繼承和多態(tài)性等機(jī)制,程序更易于維護(hù)、更新和升級。利用代碼可重用性,程序員可以在程序中大量使用成熟的類庫,從而縮短程序的開發(fā)時(shí)間,提高程序員的工作效率和程序的可靠性。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.2C++面向?qū)ο蟪绦蛟O(shè)計(jì)本書介紹的主要就是使用最為廣泛的C++語言和使用C++語言進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)的方法。在學(xué)習(xí)編程之前,我們首先來簡單了解以下C++程序的開發(fā)過程。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.2C++面向?qū)ο蟪绦蛟O(shè)計(jì)程序的開發(fā)通常要經(jīng)過編輯、編譯、連接、運(yùn)行調(diào)試這幾個(gè)步驟。編輯是將源程序輸入到計(jì)算機(jī)中,生成后綴為.cpp的磁盤文件。編譯(compile)是將程序的源代碼轉(zhuǎn)換成機(jī)器語言代碼。程序員編制的源程序被編譯后,會生成一個(gè)目標(biāo)文件,這個(gè)文件通常以.obj作為文件擴(kuò)展名,該目標(biāo)文件為源程序的目標(biāo)代碼。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.2C++面向?qū)ο蟪绦蛟O(shè)計(jì)但是編譯后的程序還不能由計(jì)算機(jī)執(zhí)行,因?yàn)槟繕?biāo)代碼只是一個(gè)個(gè)的程序塊,需要相互銜接成為一個(gè)適應(yīng)一定操作系統(tǒng)環(huán)境的程序整體。為了把它轉(zhuǎn)換成可執(zhí)行程序,必須進(jìn)行連接(link)。C++程序通常是通過同時(shí)連接一個(gè)或多個(gè)目標(biāo)文件以及一個(gè)或幾個(gè)庫而創(chuàng)建的。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.2C++面向?qū)ο蟪绦蛟O(shè)計(jì)庫(.lib)是一組由機(jī)器指令構(gòu)成的程序代碼,是可連接文件。庫有標(biāo)準(zhǔn)庫和用戶生成的庫。標(biāo)準(zhǔn)庫是由C++提供的,用戶生成的庫是由軟件開發(fā)商或程序員提供的。文件與庫連接的結(jié)果,即生成一個(gè)后綴為.exe的計(jì)算機(jī)可執(zhí)行程序。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.3C++程序的基本組成我們就從最簡單的例子來分析C++程序的構(gòu)成:#include<iostream>usingnamespacestd;voidmain(){cout<<"Hello,World!\n";cout<<"I'mastudent.\n";}08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.3C++程序的基本組成程序運(yùn)行結(jié)果為:Hello,World!I’mastudent.08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.3C++程序的基本組成一個(gè)C++程序是由三部分組成的,分別是:注釋部分、編譯預(yù)處理和程序主體。程序的注釋部分是程序員為讀者作的說明,是提高程序可讀性的一種方法。每個(gè)以符號“#”開頭的行,稱為編譯預(yù)處理行。如本例中“#include”稱為編譯指令。

08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.3C++程序的基本組成在程序的主體部分中,main是主函數(shù)名,函數(shù)是C++程序中最小的功能單位,每一個(gè)C++程序都必須有一個(gè)main()函數(shù),并且main()表明了程序執(zhí)行的開始點(diǎn)。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.3C++程序的基本組成每一種編程語言都使用一組字符來構(gòu)造成編程語句。用C++語言編寫程序時(shí),除了字符型數(shù)據(jù)以外,其它所有成分都只能由字符集中的字符構(gòu)成。C++語言的字符集由下列字符構(gòu)成:08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.3C++程序的基本組成26個(gè)大寫英文字母:ABCDEFGHIJKLMNOPQRSTUVWXYZ26個(gè)小寫英文字母:abcdefghijklmnopqrstuvwxyz10個(gè)數(shù)字字符:0123456789特殊字符:

+-*/=,._:;?\"'~︱!#%&()[]{}^<>空格08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.3C++程序的基本組成詞法記號是最小的詞法單元,接下來介紹C++的關(guān)鍵字、標(biāo)識符、文字、運(yùn)算符、分隔符、空白符。關(guān)鍵字

C++中,關(guān)鍵字又稱保留字,它是預(yù)先定義好的標(biāo)識符,這些標(biāo)識符對C++編譯程序有著特殊的含義。

08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.3C++程序的基本組成標(biāo)識符

標(biāo)識符是程序員聲明的單詞,它命名程序正文中的一些實(shí)體,如函數(shù)名、變量名、類名、對象名等。

文字

文字是在程序中直接使用符號表示的數(shù)據(jù),包括數(shù)字、字符、字符串和布爾文字。操作符(運(yùn)算符)

操作符是用于實(shí)現(xiàn)各種運(yùn)算的符號。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.3C++程序的基本組成分隔符

分隔符用于分隔各個(gè)詞法記號或程序正文,這些分隔符不表示任何實(shí)際的操作,僅用于構(gòu)造程序

空白

在程序編譯時(shí)的詞法分析階段將程序正文分解為詞法記號和空白??瞻资强崭?、制表符、換行符和注釋的總稱。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.4VisualC++6.0開發(fā)環(huán)境VisualC++6.0是微軟公司推出的一個(gè)功能強(qiáng)大的可視化軟件開發(fā)工具。VisualC++6.0不僅是一個(gè)C++編譯器,它還有一個(gè)非常好的集成開發(fā)環(huán)境——DeveloperStudio,包括編輯器編譯器、調(diào)試器以及程序向?qū)У冉M件,用它可以在編寫C++程序時(shí)對程序的結(jié)構(gòu)進(jìn)行可視化的管理。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.4VisualC++6.0開發(fā)環(huán)境本節(jié)簡單介紹VisualC++6.0集成開發(fā)環(huán)境的特點(diǎn)、界面風(fēng)格和簡單工具的使用。安裝完VisualC++6.0后,從Windows的“開始|程序”菜單中選擇MicrosoftVisualStudio6.0菜單中的MicrosoftVisualC++6.0菜單項(xiàng),就啟動(dòng)了VisualC++集成開發(fā)環(huán)境,出現(xiàn)集成開發(fā)環(huán)境的主窗口DeveloperStudio。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.4VisualC++6.0開發(fā)環(huán)境下面通過實(shí)例說明如何利用VisualC++6.0創(chuàng)建一個(gè)C++程序。啟動(dòng)VisualC++6.0,打開File菜單,執(zhí)行New菜單命令,出現(xiàn)New對話框,如圖1-1所示。在Project頁面窗口中選擇Win32ConsoleApplication選項(xiàng),創(chuàng)建一個(gè)Win32控制臺應(yīng)用程序。在Projectname編輯框中輸入項(xiàng)目名稱Hello,在Location編輯框中輸入保存項(xiàng)目的路徑。

08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.4VisualC++6.0開發(fā)環(huán)境圖1-1創(chuàng)建一個(gè)Win32控制臺應(yīng)用程序08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.4VisualC++6.0開發(fā)環(huán)境在Win32ConsoleApplication-Step1of1對話框中設(shè)置控制臺應(yīng)用程序的類型,如圖1-2所示。這里我們要?jiǎng)?chuàng)建一個(gè)空項(xiàng)目程序,因此選擇第一項(xiàng)Anemptyproject,單擊Finish按鈕,出現(xiàn)NewProjectInformation對話框,單擊OK按鈕,將生成一個(gè)空項(xiàng)目。

08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.4VisualC++6.0開發(fā)環(huán)境圖1-2設(shè)置控制臺應(yīng)用程序的類型08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.4VisualC++6.0開發(fā)環(huán)境向項(xiàng)目Hello中添加源程序文件。打開Project菜單,選擇AddtoProject|New,出現(xiàn)如圖1-3所示的添加項(xiàng)目文件對話框。在的Files頁面窗口中選擇C++SourceFile,在右邊的File編輯框中輸入C++源程序文件名稱Hello,在Location編輯框中輸入保存該文件的路徑。單擊OK按鈕,在主窗口DeveloperStudio左邊的項(xiàng)目工作區(qū)窗口的SouceFiles文件夾目錄下出現(xiàn)Hello.cpp文件,雙擊該文件,在右邊的編輯窗口中輸入例1-1的源程序代碼。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.4VisualC++6.0開發(fā)環(huán)境圖1-3添加項(xiàng)目文件C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.4VisualC++6.0開發(fā)環(huán)境編譯運(yùn)行源程序Hello.cpp。打開Build菜單,選擇BuildHello.exe命令項(xiàng)或按快捷鍵F7,系統(tǒng)開始對項(xiàng)目Hello進(jìn)行編譯、連接,同時(shí)在輸出窗口中顯示出編譯的內(nèi)容,當(dāng)出現(xiàn)Hello.exe–0error(s),0warning(s)字樣時(shí),表示Hello.exe可執(zhí)行文件已經(jīng)正確無誤地生成了,如圖1-4所示。在Build菜單中選取ExecuteHello.exe命令項(xiàng)或按快捷鍵Ctrl+F5,就可以運(yùn)行剛剛生成的Hello.exe

08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.4VisualC++6.0開發(fā)環(huán)境圖1-4Hello項(xiàng)目DeveloperStudio窗口C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.4VisualC++6.0開發(fā)環(huán)境用戶通過選擇Help菜單下的Contents命令或Search工具欄按鈕就可以進(jìn)入MSDN幫助系統(tǒng),也可單擊F1鍵快速獲取相關(guān)內(nèi)容的幫助。圖1-5是MSDNLibrary是一般界面

。

08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)1.4VisualC++6.0開發(fā)環(huán)境圖1-5MSDN幫助系統(tǒng)C++面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版)

C++面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版)

第二章

C++語言基礎(chǔ)08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)第二章

C++語言基礎(chǔ)2.1數(shù)據(jù)類型和基本輸入輸出2.2運(yùn)算符和表達(dá)式2.3基本控制結(jié)構(gòu)2.4函數(shù)2.5構(gòu)造類型2.6指針項(xiàng)目設(shè)計(jì)1控制臺程序的人機(jī)界面設(shè)計(jì)08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.1數(shù)據(jù)類型和基本輸入輸出2.1.1基本數(shù)據(jù)類型2.1.2常量2.1.3變量2.1.4基本輸入、輸出08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.1.1基本數(shù)據(jù)類型基本數(shù)據(jù)類型是C++系統(tǒng)的內(nèi)部數(shù)據(jù)類型,包括bool(布爾型)、int(整型)、char(字符型)、float(單精度浮點(diǎn)型)、double(雙精度浮點(diǎn)型)以及基本數(shù)據(jù)類型中short(短型)和long(長型)、signed(有符號)和unsigned(無符號)之分。C++的數(shù)據(jù)類型如下圖所示:08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.1.1基本數(shù)據(jù)類型

C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.1.1基本數(shù)據(jù)類型使用基本數(shù)據(jù)類型要注意兩點(diǎn):無符號(unsigned)和有符號(signed)的區(qū)別在于數(shù)值最高位的含義。int型在16位系統(tǒng)中和在32位系統(tǒng)中,所占用字節(jié)數(shù)是不一樣的。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.1.2常量所謂常量是指在程序運(yùn)行的整個(gè)過程中其值始終不可改變的量,也就是直接使用符號(文字)表示的值。例如10,-6,2.3,-5.7,‘A’,‘b’都是常量。整型常量整型常量就是整型常數(shù)。整型常量可以用以下三種形式表示:十進(jìn)制整數(shù):十進(jìn)制整數(shù)沒有前綴。例如:237、-568、65535、162708二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.1.2常量八進(jìn)制整數(shù):八進(jìn)制整數(shù)要以數(shù)字0開頭,即以0作為八進(jìn)制數(shù)的前綴。例如:015(十進(jìn)制為13)、0101(十進(jìn)制為65)、0177777(十進(jìn)制為65535)十六進(jìn)制整常數(shù):十六進(jìn)制整數(shù)要以數(shù)字0x或0X開頭,即以0x作為十六進(jìn)制數(shù)的前綴。例如:0X2A(十進(jìn)制為42)、0XA0(十進(jìn)制為160)、0XFFFF(十進(jìn)制為65535)實(shí)型常量實(shí)型常量也稱為實(shí)數(shù)或者浮點(diǎn)數(shù)。實(shí)數(shù)只采用十進(jìn)制,它有二種形式:小數(shù)形式和指數(shù)形式。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.1.2常量十進(jìn)制數(shù)的形式:由數(shù)碼0~9和小數(shù)點(diǎn)組成。例如:0.0、25.0、5.789、0.13、300.、-267.8230等均為合法的實(shí)數(shù)。注意,實(shí)型常量中必須含有小數(shù)點(diǎn)。指數(shù)形式:由十進(jìn)制數(shù),加階碼標(biāo)志“e”或“E”以及階碼(只能為整數(shù),可以帶符號)組成。例如:2.1E5(等于2.1×105)、3.7E-2(等于3.7×10-2)、-2.8E-2(等于-2.8×10-2)實(shí)型常量默認(rèn)都按雙精度double型處理。但可以添加后綴“f”或“F”即表示該數(shù)為單精度浮點(diǎn)數(shù)。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.1.2常量字符常量字符常量是用單引號括起來的一個(gè)字符。例如:‘a(chǎn)’、‘b’、‘=’、‘+’、‘?’。有以下特點(diǎn):字符常量只能用單引號括起來,不能用雙引號或其它括號。字符常量只能是單個(gè)字符,不能是字符串。字符可以是字符集中任意字符。但數(shù)字被定義為字符型其含義就發(fā)生了變化。如‘5’和5是不同的。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.1.2常量轉(zhuǎn)義字符是一種特殊的字符常量。轉(zhuǎn)義字符以反斜線“\”開頭,后跟一個(gè)或幾個(gè)字符。轉(zhuǎn)義字符具有特定的含義,不同于字符原有的意義,故稱“轉(zhuǎn)義”字符。例如,“\n”就是一個(gè)轉(zhuǎn)義字符,其意義是“回車換行”。轉(zhuǎn)義字符主要用來表示那些用一般字符不便于表示的控制代碼。廣義地講,字符集中的任何一個(gè)字符均可用轉(zhuǎn)義字符來表示。字符串常量08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.1.2常量字符串常量是由一對雙引號括起的字符序列。例如:“CHINA”,“Cprogram”,“$12.5”等都是合法的字符串常量。字符串常量和字符常量是不同的量。它們之間主要有以下區(qū)別字符常量由單引號括起來,字符串常量由雙引號括起來字符常量只能是單個(gè)字符,字符串常量則可以含一個(gè)或多個(gè)字符字符常量占一個(gè)字節(jié)的內(nèi)存空間。字符串常量占的內(nèi)存字節(jié)數(shù)等于字符串中字節(jié)數(shù)加1。增加的一個(gè)字節(jié)中存放字符“\0”(ASCII碼為0)。這是字符串結(jié)束的標(biāo)志。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.1.2常量布爾常量布爾型常量只有兩個(gè):true(真)和false(假)。符號常量除了前面講過的直接用文字表示常量外,也可以為常量命名,這種代替常量本身的標(biāo)識符稱為符號常量。C++中用const定義符號常量。符號常量在使用之前一定要首先聲明,常量聲明語句的形式為:const數(shù)據(jù)類型說明符常量名=常量值;08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.1.2常量符號常量在聲明時(shí)一定要賦初值,而在程序中間不能改變其值。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.1.3變量在程序的執(zhí)行過程中其值可以變化的量稱為變量,變量是需要用名字來標(biāo)識的。變量的定義就像常量具有各種類型一樣,變量也具有相應(yīng)的類型。變量在使用之前需要首先聲明其類型和名稱。變量名應(yīng)是合法的標(biāo)識符。變量聲明語句的形式如下:<數(shù)據(jù)類型><變量名表>;08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.1.3變量變量的初始化在聲明一個(gè)變量的同時(shí),也可以給它賦以初值,而這實(shí)質(zhì)上就是給對應(yīng)的內(nèi)存單元賦值,這一過程稱為初始化。例如:inta=3,b=5;//指定a,b為整型變量,a的初值為3,b的初//值為5C++中變量的初始化還有另一種形式,例如:inta(3),b(5);需要注意的是,一個(gè)未初始化的變量不是沒有數(shù)值,而是取決于變量所在系統(tǒng)中的存儲形式,它可能是系統(tǒng)的默認(rèn)值或無效值。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.1.4基本輸入、輸出C++中使用標(biāo)準(zhǔn)輸入流cin和標(biāo)準(zhǔn)輸出流cout來實(shí)現(xiàn)數(shù)據(jù)的輸入與輸出。輸出流(cout)通過cout可以輸出一個(gè)整數(shù)、實(shí)數(shù)、字符及字符串,cout中的插入符“<<”可以連續(xù)寫多個(gè),每個(gè)后面可以跟一個(gè)要輸出的常量、變量、轉(zhuǎn)義字符以及表達(dá)式等。輸入流(cin)cin可以獲得多個(gè)鍵盤的輸入值,cin中的插入符“>>”可以連續(xù)寫多個(gè),每個(gè)后面可以跟一個(gè)表達(dá)式,該表達(dá)式通常是獲得輸入值的變量或?qū)ο蟆?8二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2運(yùn)算符和表達(dá)式2.2.1算術(shù)運(yùn)算符和算術(shù)表達(dá)式2.2.2賦值運(yùn)算符和賦值表達(dá)式2.2.3逗號運(yùn)算符和逗號表達(dá)式2.2.4關(guān)系運(yùn)算符和關(guān)系表達(dá)式2.2.5邏輯運(yùn)算符和邏輯表達(dá)式2.2.6++、--與sizeof運(yùn)算符2.2.7位運(yùn)算符2.2.8三目運(yùn)算符08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2運(yùn)算符和表達(dá)式2.2.9運(yùn)算符的優(yōu)先順序2.2.10運(yùn)算式中的類型轉(zhuǎn)換08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.1算術(shù)運(yùn)算符和算術(shù)表達(dá)式C++中由算術(shù)運(yùn)算符、操作數(shù)和括號構(gòu)成的表達(dá)式稱為算術(shù)表達(dá)式。C++中基本算術(shù)運(yùn)算符有:+(加法),–(減法或負(fù)號),*(乘法),/(除法),%(求余)。這些算術(shù)運(yùn)算符和數(shù)學(xué)運(yùn)算的概念及運(yùn)算方法是一致的,但有幾點(diǎn)需要說明:“–”減法運(yùn)算,即是雙目運(yùn)算符又是單目運(yùn)算符,作單目運(yùn)算符時(shí),是求負(fù)運(yùn)算,例如:-5,-x等。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.1算術(shù)運(yùn)算符和算術(shù)表達(dá)式“/”除法運(yùn)算,當(dāng)參與相除運(yùn)算的兩個(gè)操作數(shù)均為整型時(shí),其結(jié)果也為整型,取商的整數(shù)部分,舍去小數(shù),因此表達(dá)式1/2的結(jié)果為0。如果兩個(gè)操作數(shù)中有一個(gè)是實(shí)型,則結(jié)果為雙精度實(shí)型?!?”求余運(yùn)算,要求參與運(yùn)算的操作數(shù)均為整型。例如:表達(dá)式a%b,其值等于兩數(shù)相除后的余數(shù),即a被b除的余數(shù),符號與a相同。優(yōu)先級和結(jié)合性。在一個(gè)包含多種算術(shù)運(yùn)算的混合運(yùn)算中,先乘除、后加減的運(yùn)算規(guī)則是由運(yùn)算符的優(yōu)先級來保證的;在算術(shù)運(yùn)算符中,除單目運(yùn)算符外,其余運(yùn)算符的結(jié)合性都是自左向右。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.2賦值運(yùn)算符和賦值表達(dá)式C++中賦值運(yùn)算符“=”是一個(gè)雙目運(yùn)算符,運(yùn)算的結(jié)合性為自右向左。帶有賦值運(yùn)算符的表達(dá)式被稱為賦值表達(dá)式,其作用就是將賦值符右邊表達(dá)式的值賦給左邊的操作數(shù)。例如,x=a+b就是一個(gè)賦值表達(dá)式。在賦值符“=”之前加上其它雙目運(yùn)算符可構(gòu)成復(fù)合賦值符。C++提供了10種復(fù)合賦值運(yùn)算符:+=,–=,*=,/=,%=,<<=,>=,&=,^=,|=。例如:a+=5等價(jià)于a=a+508二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.3逗號運(yùn)算符和逗號表達(dá)式在C語言中逗號“,”也是一種運(yùn)算符,稱為逗號運(yùn)算符。逗號運(yùn)算符是優(yōu)先級最低的運(yùn)算符。其形式為:表達(dá)式1,表達(dá)式2,…表達(dá)式n在計(jì)算時(shí),C++將自左向右逐個(gè)計(jì)算每個(gè)表達(dá)式,最終整個(gè)表達(dá)式的結(jié)果是最后計(jì)算的那個(gè)表達(dá)式的類型和值。例如:j=(i=12,i+8)//表達(dá)式值為2008二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.4關(guān)系運(yùn)算符和關(guān)系表達(dá)式比較兩個(gè)量的運(yùn)算符稱為關(guān)系運(yùn)算符。關(guān)系運(yùn)算符將兩個(gè)數(shù)據(jù)進(jìn)行比較,判定兩個(gè)數(shù)據(jù)是否符合給定的關(guān)系。例如,“x>y”中的“>”表示一個(gè)大于關(guān)系運(yùn)算。C++提供了6種關(guān)系運(yùn)算符:<(小于),<=(小于等于),>(大于),>=(大于等于),==(等于),!=(不等于)。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.4關(guān)系運(yùn)算符和關(guān)系表達(dá)式有幾點(diǎn)需要注意“等于”關(guān)系運(yùn)算符是兩個(gè)等號“==”,而不是一個(gè)等號“=”(賦值運(yùn)算符)。在6個(gè)關(guān)系運(yùn)算符中,前4個(gè)優(yōu)先級相同,后2個(gè)也相同,且前4個(gè)高于后2個(gè)。關(guān)系運(yùn)算符的優(yōu)先級,低于算術(shù)運(yùn)算符,但高于賦值運(yùn)算符。用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來,進(jìn)行關(guān)系運(yùn)算的式子就是關(guān)系表達(dá)式。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.4關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系表達(dá)式的值為邏輯值即“真”或“假”。在C++編譯系統(tǒng)中,往往將“真”表示為“true”或1,將“假”表示為“false”或0。而任何不為0的數(shù)被認(rèn)為是“真”,0被認(rèn)為是“假”。例如設(shè)x1=1,x2=2,x3=3,則:

(x1>x2)!=x3//表達(dá)式為1。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.5邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符用于將多個(gè)關(guān)系表達(dá)式或邏輯量(“真”或“假”)組成一個(gè)邏輯表達(dá)式。C++提供了下列三種邏輯運(yùn)算符:

&& 邏輯與

|| 邏輯或

! 邏輯非例如,下面的表達(dá)式都是邏輯表達(dá)式:(x>=1&&(x<2),(x<1)||(x>5),!(x==0)08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.5邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符的運(yùn)算規(guī)則如下:&&:雙目運(yùn)算符,當(dāng)且僅當(dāng)兩個(gè)操作數(shù)的值都為“真”時(shí),運(yùn)算結(jié)果為“真”,否則為“假”。等價(jià)于“同時(shí)”的含義。

||:雙目運(yùn)算符,當(dāng)且僅當(dāng)兩個(gè)操作數(shù)的值都為“假”時(shí),運(yùn)算結(jié)果為“假”,否則為“真”。等價(jià)于“或者”的含義。

!:單目運(yùn)算符,當(dāng)操作數(shù)的值為“真”時(shí),運(yùn)算結(jié)果為“假”;當(dāng)操作數(shù)的值為“假”時(shí),運(yùn)算結(jié)果為“真”。等價(jià)于“否定”的含義。例如,設(shè)x=5,則(x>=0)&&(x<25)的值為“真”,(x<-5)||(x>5)的值為“假”。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.5邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符的優(yōu)先級如下:邏輯非的優(yōu)先級最高,邏輯與次之,邏輯或最低,即:!(非)→&&(與)→||(或)與其它種類運(yùn)算符的優(yōu)先關(guān)系:!→算術(shù)運(yùn)算→關(guān)系運(yùn)算→&&→||→賦值運(yùn)算08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.6++、--與sizeof運(yùn)算符自增、自減運(yùn)算符單目運(yùn)算符自增(++)和自減(––)的作用是使整型變量的值增1或減1。這兩個(gè)運(yùn)算符都有前置和后置兩種使用形式。例如:++i與i++的作用相當(dāng)于i=i+1;––i與i––的作用相當(dāng)于i=i–1。這里需要注意的是:自增(++)和自減(––)運(yùn)算符只能用于變量,而不能用于常量或表達(dá)式,如3++或(a+b)++都是不合法的。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.6++、--與sizeof運(yùn)算符++和––的結(jié)合性是“自右至左”。若自增(++)和自減(––)僅用于某個(gè)變量的增1和減1,則前置和后置兩種使用形式是等價(jià)的,但如果將自增(++)和自減(––)和其他運(yùn)算符組合在一起,則前置和后置兩種使用形式在求值次序上就會產(chǎn)生不同:

++i,––i(在使用i參與其他運(yùn)算之前,先使i的值加(減)1)i++,i––(在使用i參與其他運(yùn)算之后,再使i的值加(減)1)08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.6++、--與sizeof運(yùn)算符sizeof運(yùn)算符sizeof運(yùn)算符用于計(jì)算操作數(shù)在內(nèi)存中所占的字節(jié)數(shù)。它使用的語法形式為:sizeof(<數(shù)據(jù)類型>)sizeof(<表達(dá)式>)運(yùn)算結(jié)果返回值為“數(shù)據(jù)類型”所指定的類型或“表達(dá)式”的結(jié)果類型所占的字節(jié)數(shù)。例如:sizeof(int)//計(jì)算整型int所占內(nèi)參的字節(jié)數(shù)sizeof("hello")//計(jì)算字符串常量的實(shí)際長度08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.7位運(yùn)算符位運(yùn)算符是對操作數(shù)按其在計(jì)算機(jī)內(nèi)表示的二進(jìn)制數(shù)逐位地進(jìn)行邏輯運(yùn)算或移位運(yùn)算。C++語言提供了6種位運(yùn)算:位邏輯運(yùn)算符“按位與”運(yùn)算符&運(yùn)算規(guī)則:參加運(yùn)算的兩個(gè)操作數(shù),如果兩個(gè)數(shù)相應(yīng)位的值都是1,則該位的結(jié)果值為1,否則為0。例如:如果要保留整數(shù)a的低字節(jié),屏蔽掉其高字節(jié),只需要將a和b進(jìn)行按位與運(yùn)算即可,其中b的高字節(jié)每位置為0,低字節(jié)每位置為1,即0010101001010010&0000000011111111=000000000101001008二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.7位運(yùn)算符“按位或”運(yùn)算符|運(yùn)算規(guī)則:參加運(yùn)算的兩個(gè)操作數(shù),如果兩個(gè)數(shù)相應(yīng)位的值都是0,則該位的結(jié)果值為0,否則為1.例如:如果把a(bǔ)的第10位置為1,而且不要破壞其它位,可以對a和b進(jìn)行“按位或”運(yùn)算,其中b的第10位置為1,其它位置為0,即0010000001010010|0000001000000000=0010001001010010“按位異或”運(yùn)算符^運(yùn)算規(guī)則:參加運(yùn)算的兩個(gè)操作數(shù),如果兩個(gè)數(shù)的相應(yīng)位的值不同,則該位的結(jié)果值為1,否則為0。例如:如要把a(bǔ)的奇數(shù)位翻轉(zhuǎn),可以對a和b進(jìn)行“按位異或”運(yùn)算,其中b的奇數(shù)位置為1,偶數(shù)位置為0,即0000000001010010^0101010101010101=010101010000011108二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.7位運(yùn)算符“按位取反”運(yùn)算符~運(yùn)算規(guī)則:對一個(gè)操作數(shù)的每一位都取反,即將1變?yōu)?,0變?yōu)?。移位運(yùn)算符左移運(yùn)算符<<運(yùn)算規(guī)則:對運(yùn)算符<<左邊的操作數(shù)的每一位全部左移右邊運(yùn)算量表示的位數(shù),右邊空出的位補(bǔ)0。左移1位相當(dāng)于該數(shù)乘以2,左移n位相當(dāng)于該數(shù)乘以2n。例如:chara=0x21;則a<<2的過程00100001<<2=10000100即a<<2的值為0x84。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.7位運(yùn)算符右移運(yùn)算符>>運(yùn)算規(guī)則:對運(yùn)算符>>左邊的運(yùn)算量的每一位全部右移右邊運(yùn)算量表示的位數(shù),右邊低位被移出去舍棄掉,空出的高位補(bǔ)0還是補(bǔ)1,分兩種情況對無符號數(shù)進(jìn)行右移時(shí),空出的高位補(bǔ)0。這種右移稱為邏輯右移。例如:unsignedchara=0x8a;a:10001010等于十進(jìn)制數(shù)138a>>1:010001010等于十進(jìn)制數(shù)69

補(bǔ)0舍棄對帶符號數(shù)進(jìn)行右移時(shí),空出的高位全部以符號位填補(bǔ)。即正數(shù)補(bǔ)0,負(fù)數(shù)補(bǔ)1。這種右移稱為算術(shù)右移。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.7位運(yùn)算符例如chara=0x8a;a:10001010等于十進(jìn)制數(shù)-118a>>1:110001010等于十進(jìn)制數(shù)-59

補(bǔ)1舍棄位賦值運(yùn)算符位運(yùn)算符與賦值運(yùn)算符結(jié)合可以組成位賦值運(yùn)算符。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.8三目運(yùn)算符C++中唯一的三目運(yùn)算符是條件運(yùn)算符語法格式為:

<條件表達(dá)式>?<表達(dá)式1>:<表達(dá)式2>“條件表達(dá)式”是C++中可以產(chǎn)生“真”和“假”結(jié)果的任何表達(dá)式,如果條件表達(dá)式的結(jié)果為“真”,則執(zhí)行表達(dá)式1,否則執(zhí)行表達(dá)式2。例如:n=(a>b)?1:0;//如果a>b成立,則n的 //值為1,否則為008二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.9運(yùn)算符的優(yōu)先順序運(yùn)算符優(yōu)先順序如下表:08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.9運(yùn)算符的優(yōu)先順序08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.10運(yùn)算式中的類型轉(zhuǎn)換當(dāng)表達(dá)式中出現(xiàn)了多種類型數(shù)據(jù)的混合運(yùn)算時(shí),往往需要進(jìn)行類型轉(zhuǎn)換。表達(dá)式中的類型轉(zhuǎn)換分為兩種:自動(dòng)轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換。自動(dòng)轉(zhuǎn)換自動(dòng)轉(zhuǎn)換的基本原則是將數(shù)據(jù)類型按照從低到高的順序進(jìn)行轉(zhuǎn)換。類型越高,數(shù)據(jù)的表示范圍越大,精度也越高,各種類型的高低順序如下:char、short、int、unsigned、long、unsignedlong、float、double08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.10運(yùn)算式中的類型轉(zhuǎn)換自動(dòng)轉(zhuǎn)換遵循以下規(guī)則若參與運(yùn)算量的類型不同,則先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。轉(zhuǎn)換按數(shù)據(jù)長度增加的方向進(jìn)行,以保證精度不降低。如int型和long型運(yùn)算時(shí),先把int量轉(zhuǎn)成long型后再進(jìn)行運(yùn)算。所有的浮點(diǎn)運(yùn)算都是以雙精度進(jìn)行的,即使僅含float單精度量運(yùn)算的表達(dá)式,也要先轉(zhuǎn)換成double型,再作運(yùn)算。char型和short型參與運(yùn)算時(shí),必須先轉(zhuǎn)換成int型。在賦值運(yùn)算中,賦值號兩邊量的數(shù)據(jù)類型不同時(shí),賦值號右邊量的類型將轉(zhuǎn)換為左邊量的類型。如果右邊量的數(shù)據(jù)類型長度比左邊量的數(shù)據(jù)類型長度長時(shí),將丟失一部分?jǐn)?shù)據(jù),這樣會降低精度,丟失的部分按四舍五入向前舍入。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.10運(yùn)算式中的類型轉(zhuǎn)換強(qiáng)制轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換是通過類型說明符和括號來實(shí)現(xiàn)的,其一般形式為:(<類型說明符>)<表達(dá)式>或<類型說明符>(<表達(dá)式>)例如:(float)a//把a(bǔ)轉(zhuǎn)換為實(shí)型

(int)(x+y)//把x+y的結(jié)果轉(zhuǎn)換為整型08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3基本控制結(jié)構(gòu)2.3.1表達(dá)式語句、空語句和復(fù)合語句2.3.2選擇控制語句2.3.3循環(huán)控制語句2.3.4break和continue語句實(shí)訓(xùn)2程序控制結(jié)構(gòu)的應(yīng)用08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.1表達(dá)式語句、空語句和復(fù)合語句順序結(jié)構(gòu)程序就是由順序執(zhí)行語句組成的,程序運(yùn)行是按照書寫的順序進(jìn)行,不發(fā)生控制轉(zhuǎn)移,所以它是最簡單的。表達(dá)式語句表達(dá)式語句由表達(dá)式后加一個(gè)分號構(gòu)成。例如:a+b;num=3;空語句空語句僅由一個(gè)分號構(gòu)成。例如:;就是一個(gè)空語句復(fù)合語句復(fù)合語句是由一對大括號{}括起來的兩條或兩條以上的語句構(gòu)成的。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.1表達(dá)式語句、空語句和復(fù)合語句例如:需要注意的是,在復(fù)合語句中定義的變量只作用于該復(fù)合語句的范圍,而在復(fù)合語句外,這些變量卻不能被調(diào)用。voidmain(){……{t=x;

x=y;

y=t;}//復(fù)合語句……}08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.2選擇控制語句選擇結(jié)構(gòu)是用來判斷所給定的條件是否滿足,并根據(jù)判定的結(jié)果(真或假)決定哪些語句被執(zhí)行。用if語句實(shí)現(xiàn)選擇結(jié)構(gòu)if語句是專門用來實(shí)現(xiàn)選擇結(jié)構(gòu)的語句。它根據(jù)給定的條件進(jìn)行判斷,以決定執(zhí)行某個(gè)分支程序段。其語法形式為:if(<表達(dá)式>)<語句1>[else<語句2>]08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.2選擇控制語句例如:if(x>y)max=x;elsemax=y;if語句中的語句2可以為空。當(dāng)語句2為空時(shí),else可以省略。if語句的嵌套處理多分支的情況時(shí),C++語言允許在if或if–else中的〈語句1〉或〈語句2〉部分中再使用if或if–else語句,這種設(shè)計(jì)方法稱為嵌套。if語句的嵌套中,else部分總是與前面最靠近的、還沒有配對的if配對。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.2選擇控制語句例如:比較兩個(gè)數(shù)的大小#include<iostream>usingnamespacestd;voidmain(){ intx,y; cout<<"Enterxandy:"; cin>>x>>y; if(x!=y) if(x>y) cout<<"x>y"<<endl; else cout<<"x<y"<<endl; else cout<<"x=y"<<endl;}08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.2選擇控制語句如果if語句的嵌套都是發(fā)生在else分支中,就可以應(yīng)用if…elseif語句。語法形式為:if(<表達(dá)式1>)<語句1>;elseif(<表達(dá)式2>)<語句2>;

......elseif(<表達(dá)式n>)<語句n>;例如:求分段函數(shù)y=f(x)的值,f(x)的表達(dá)式如下:

x2―1(x<–1)y=x2(–1≤x≤1)x2+1(x>1)08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.2選擇控制語句#include<iostream>usingnamespacestd;voidmain(){ floatx,y; cout<<"Enterx:"; cin>>x; if(x<-1) y=x*x-1; elseif(x>=-1&&x<=1) y=x*x; elsey=x*x+1; cout<<"f(x)="<<y<<endl;}08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.2選擇控制語句switch語句C++語言提供了直接實(shí)現(xiàn)多分支選擇結(jié)構(gòu)的語句:switch語句,稱為多分支語句,也叫開關(guān)語句。switch語句的語法形式如下:switch(<表達(dá)式>){case<常量表達(dá)式1>:語句1;[break;]case<常量表達(dá)式2>:語句2;[break;]......case<常量表達(dá)式n>:語句n;[break;][default:語句n+1;[break;]] }08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.2選擇控制語句使用switch語句需要注意的是:switch后面的表達(dá)式可以是整型、字符型、枚舉型,而case后面的常量表達(dá)式的類型必須與其匹配。每個(gè)case后面常量表達(dá)式的值必須各不相同,各case及default子句的先后次序不影響程序執(zhí)行結(jié)果。每個(gè)case分支可以有多條語句,但不必用{}。case后面的常量表達(dá)式僅起語句標(biāo)號作用,并不進(jìn)行條件判斷。系統(tǒng)一旦找到入口標(biāo)號,就從此標(biāo)號開始執(zhí)行,不再進(jìn)行標(biāo)號判斷,所以必須加上break語句,以便結(jié)束switch語句,否則會從入口點(diǎn)開始一直執(zhí)行到switch結(jié)構(gòu)的結(jié)束點(diǎn)。當(dāng)若干分支需要執(zhí)行相同操作時(shí),可以使多個(gè)case分支共用一組語句。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.2選擇控制語句例如:用switch語句實(shí)現(xiàn)計(jì)算器的簡單功能。#include<iostream>usingnamespacestd;voidmain(){ floatx,y;//運(yùn)算數(shù)

charoper;//運(yùn)算符

cout<<"Enterx,oper,y:"; cin>>x>>oper>>y;

08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.2選擇控制語句

switch(oper) { case'+':cout<<"x+y="<<x+y<<endl;break; case'-':cout<<"x-y="<<x-y<<endl;break; case'*':cout<<"x*y="<<x*y<<endl;break; case'/':if(y==0) { cout<<"divisoriszero!\n"; break; } cout<<"x/y="<<x/y<<endl;break; default:cout<<"operatorhasnoeffect!\n"; }}08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.3循環(huán)控制語句C++中提供了三種循環(huán)控制語句:while語句、do-while語句和for語句。

while語句while語句的語法形式如下:while(<表達(dá)式>)<語句>其中表達(dá)式是循環(huán)條件,語句為循環(huán)體。執(zhí)行順序是:先判斷表達(dá)式的值,當(dāng)表達(dá)式為真時(shí)便開始執(zhí)行while循環(huán)體中的語句,然后反復(fù)執(zhí)行,每次執(zhí)行都會判斷表達(dá)式是否為真,直到有一次執(zhí)行循環(huán)體后條件表達(dá)式的值為假時(shí)終止。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.3循環(huán)控制語句例如:用while語句求100以內(nèi)的奇數(shù)之和。#include<iostream>usingnamespacestd;voidmain(){ inti=1,sum=0; while(i<=100) { sum+=i; i+=2; } cout<<"sum="<<sum<<endl;}08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.3循環(huán)控制語句使用while語句需要注意的有:如果循環(huán)體有多個(gè)語句時(shí),要用大括號{}把它們括起來,以復(fù)合語句形式出現(xiàn)。循環(huán)體中必須有修改條件表達(dá)式的語句,可以使條件由成立轉(zhuǎn)為不成立,從而結(jié)束循環(huán)。否則如果開始時(shí)條件為真,就會永遠(yuǎn)為真,使循環(huán)體永遠(yuǎn)重復(fù)執(zhí)行下去,稱為“死循環(huán)”。do-while語句do-while語句的語法形式如下:do<語句>while(<表達(dá)式>);執(zhí)行順序是:先執(zhí)行循環(huán)中的語句,然后再判斷表達(dá)式是否為真,如果為真則繼續(xù)循環(huán);如果為假,則終止循環(huán)。因此,do-while循環(huán)至少要執(zhí)行一次循環(huán)語句。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.3循環(huán)控制語句例如:用do-while語句求100以內(nèi)的奇數(shù)之和。#include<iostream>usingnamespacestd;voidmain(){ inti=1,sum=0; do { sum+=i; i+=2; }while(i<=100); cout<<"sum="<<sum<<endl;}08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.3循環(huán)控制語句for語句for語句的語法形式如下:for([表達(dá)式1];[表達(dá)式2];[表達(dá)式3])<語句>其中,表達(dá)式1:給循環(huán)控制變量賦初值;表達(dá)式2:循環(huán)條件,是一個(gè)邏輯表達(dá)式,它決定什么時(shí)候退出循環(huán);表達(dá)式3:循環(huán)變量增值,規(guī)定循環(huán)控制變量每循環(huán)一次后按什么方式變化。for語句的執(zhí)行流程是:首先計(jì)算一次表達(dá)式1的值,再計(jì)算表達(dá)式2(循環(huán)控制條件)的值,并根據(jù)表達(dá)式2的值判斷是否執(zhí)行循環(huán)體。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.3循環(huán)控制語句例如:用for語句求100以內(nèi)的奇數(shù)之和。#include<iostream>usingnamespacestd;voidmain(){ inti,sum; sum=0; for(i=1;i<=100;i+=2) sum+=i; cout<<"sum="<<sum<<endl;}08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.3循環(huán)控制語句使用for語句需要注意的是:表達(dá)式1、表達(dá)式2、表達(dá)式3都可以省略,但分號“;”不能省略。若表達(dá)式1省略或者是與循環(huán)條件無關(guān)的其他表達(dá)式,則應(yīng)該在for語句之前給循環(huán)控制條件賦初值。若表達(dá)式2省略,則循環(huán)將無終止地進(jìn)行下去。若表達(dá)式3省略或者是與循環(huán)條件無關(guān)的其他表達(dá)式,則應(yīng)該在循環(huán)體中另有語句改變循環(huán)條件,以保證循環(huán)能正常結(jié)束。表達(dá)式1和表達(dá)式3可以是一個(gè)簡單的表達(dá)式,也可以是逗號表達(dá)式,既可以是給循環(huán)變量賦初值,也可以是與循環(huán)變量無關(guān)的其它表達(dá)式。例如:for(i=1,sum=0;i<=100;sum+=i,i+=2);08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.3循環(huán)控制語句循環(huán)結(jié)構(gòu)與選擇結(jié)構(gòu)的嵌套循環(huán)結(jié)構(gòu)與選擇結(jié)構(gòu)可以互相嵌套,以實(shí)現(xiàn)復(fù)雜算法。例如:輸入一個(gè)整數(shù),求出它的所有因子。#include<iostream>usingnamespacestd;voidmain(){ intn,k; cout<<"Enterapositiveinteger:"; cin>>n; cout<<"Number"<<n<<"Factors"; for(k=1;k<=n;k++) if(n%k==0) cout<<k<<""; cout<<endl;}08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.3循環(huán)控制語句例如:編寫程序打印以下圖案:*************************08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.3循環(huán)控制語句#include<iostream>usingnamespacestd;voidmain(){ inti,j,n=4; for(i=1;i<=n;i++)//輸出前4行圖案

{//在圖案左側(cè)空30列 for(j=1;j<=30;j++) cout<<‘’;

for(j=1;j<=8-2*i;j++) cout<<''; for(j=1;j<=2*i-1;j++) cout<<'*'; cout<<endl; }08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.3循環(huán)控制語句

for(i=1;i<=n-1;i++)//輸出后3行圖案

{ //在圖案左側(cè)空30列 for(j=1;j<=30;j++) cout<<‘’;

for(j=1;j<=7-2*i;j++) cout<<'*'; cout<<endl; }}08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.4break和continue語句C++轉(zhuǎn)移語句包括break、continue、goto和return語句。轉(zhuǎn)移語句的作用是改變程序的順序執(zhí)行流程,將程序執(zhí)行流程轉(zhuǎn)移到程序其他地方。break語句break語句可用在switch多分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中。在switch結(jié)構(gòu)中,break語句用于跳出switch結(jié)構(gòu)。在循環(huán)結(jié)構(gòu)中,break語句用于跳出循環(huán),即程序遇到break語句時(shí)提前結(jié)束循環(huán),執(zhí)行循環(huán)外的下一條語句。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.3.4break和continue語句例如:用窮舉法找出1~10之間的質(zhì)數(shù)并顯示出來。代碼見教材P29~P30continue語句continue語句只用于循環(huán)結(jié)構(gòu)。當(dāng)遇到continue語句時(shí),程序只跳過continue語句后的其余語句,即僅結(jié)束本次循環(huán),并直接進(jìn)入下一次循環(huán)。例如:輸出100以內(nèi)能被3整除且個(gè)位數(shù)為6的所有整數(shù)。代碼見教材[例2-18]08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)訓(xùn)2程序控制結(jié)構(gòu)的應(yīng)用實(shí)訓(xùn)說明在實(shí)訓(xùn)中,我們要實(shí)現(xiàn)的功能是驗(yàn)證哥德巴赫猜想,即任一充分大的偶數(shù)可以用兩個(gè)素?cái)?shù)之和表示。程序分析先不考慮怎樣判斷一個(gè)數(shù)是否為素?cái)?shù),而從整體上對這個(gè)問題進(jìn)行考慮。我們可以這樣做:讀入一個(gè)偶數(shù)num,將它分成p和q兩部分,使得num=p+q。那么怎樣分呢?可以令p從2開始,每次增加1,而令q=num-p,如果p、q均為素?cái)?shù),則正為所求,否則令p=p+1再試。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)訓(xùn)2程序控制結(jié)構(gòu)的應(yīng)用算法如下:讀入大于3的偶數(shù)num。p=1do{

p=p+1;q=num-p;判斷p是否素?cái)?shù)?判斷q是否素?cái)?shù)?}while(p、q有一個(gè)不是素?cái)?shù))輸出num=p+q。接下來分析第5、6步,怎樣判斷一個(gè)數(shù)是否為素?cái)?shù)要判斷一個(gè)數(shù)i是否為素?cái)?shù),方法是用小于等于i的平方根的數(shù)依次去除i,看能否除盡,若都除不盡則i必為素?cái)?shù),反之則不是。程序員代碼見教材實(shí)訓(xùn)208二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4函數(shù)2.4.1函數(shù)的定義和調(diào)用2.4.2函數(shù)的參數(shù)傳遞2.4.3函數(shù)參數(shù)的引用傳遞2.4.4帶默認(rèn)形參值的函數(shù)2.4.5函數(shù)的嵌套與遞歸調(diào)用2.4.6內(nèi)聯(lián)函數(shù)2.4.7函數(shù)的重載實(shí)訓(xùn)3函數(shù)的應(yīng)用08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.1函數(shù)的定義和調(diào)用函數(shù)的定義函數(shù)定義的一般形式如下:<函數(shù)類型>

<函數(shù)名>(<形式參數(shù)表>){

<函數(shù)體>}

函數(shù)類型規(guī)定了所定義函數(shù)返回值的類型。函數(shù)名是一個(gè)有效的C++標(biāo)識符,同一個(gè)文件中的函數(shù)不能同名。函數(shù)體是一個(gè)語句序列,用于實(shí)現(xiàn)函數(shù)的具體功能。

08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.1函數(shù)的定義和調(diào)用例如:定義一個(gè)函數(shù),求二個(gè)數(shù)中最大者intmax(intx,inty)//定義函數(shù)max{intz;if(x>y)z=x;elsez=y;returnz;}08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.2函數(shù)的參數(shù)傳遞C++中函數(shù)的參數(shù)傳遞有兩種方式,一種是按值傳遞,另一種是地址傳遞或引用傳遞。這里先來說明按值傳遞的參數(shù)傳遞方法。按值傳遞方法是把實(shí)參的值拷貝給形參,即調(diào)用函數(shù)向被調(diào)用函數(shù)傳遞的參數(shù)是變量本身值。在內(nèi)存中,由于形參與實(shí)參占用不同的存儲單元,這時(shí)形參值的變化將不影響實(shí)參的值。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.2函數(shù)的參數(shù)傳遞例如:交換函數(shù)的兩個(gè)參數(shù)的值#include<iostream>usingnamespacestd;//交換函數(shù)swap(),用于交換x和y的值voidswap(intx,inty){ inttemp; temp=x; x=y; y=temp; cout<<"x="<<x<<",y="<<y<<endl;}08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.2函數(shù)的參數(shù)傳遞值傳遞的最大好處是保持函數(shù)的獨(dú)立性。在值傳遞的情況下,函數(shù)只有通過return來返回某個(gè)類型的值。voidmain(){ inta=10,b=20; cout<<"a="<<a<<",b="<<b<<endl; swap(a,b); cout<<"a="<<a<<",b="<<b<<endl;}

08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.3函數(shù)參數(shù)的引用傳遞引用引用是C++提供的一種特殊類型的變量,定義引用類型變量實(shí)質(zhì)上是給一個(gè)已定義的變量起一個(gè)別名,系統(tǒng)不會為引用類型變量分配內(nèi)存空間,只是使引用類型變量與其相關(guān)聯(lián)的變量使用同一個(gè)內(nèi)存空間。定義引用類型變量的一般格式為:<數(shù)據(jù)類型>&<引用名>=<變量名>;例如:inta=3;int&ra=a;//ra就是一個(gè)引用,它是變量a的別名08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.3函數(shù)參數(shù)的引用傳遞例如:為變量i聲明一個(gè)引用r,在程序中分別對r和i進(jìn)行計(jì)算。#include<iostream>usingnamespacestd;voidmain(){ inti=10; int&r=i;//r是變量i的引用

r++;//同時(shí)執(zhí)行i++ cout<<"i="<<i<<",r="<<r<<endl; i=22;//同時(shí)執(zhí)行r=22 cout<<"i="<<i<<",r="<<r<<endl;}08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.3函數(shù)參數(shù)的引用傳遞在使用引用時(shí),需要注意的是:定義引用類型變量時(shí),必須將其初始化。而且引用變量類型必須與為它初始化的變量類型相同。一旦一個(gè)引用被初始化后,就不能改為指向其他變量。當(dāng)引用類型變量的初始化值是常量時(shí),則必須將該引用類型定義成const類型。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.3函數(shù)參數(shù)的引用傳遞函數(shù)的引用傳遞引用也可作為形參,如果將引用作為形參,則在函數(shù)中對形參所做的更改對主函數(shù)中的實(shí)參有效。例如:引用作為函數(shù)參數(shù)的調(diào)用方式,使兩數(shù)成功地進(jìn)行交換。#include<iostream>usingnamespacestd;08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.3函數(shù)參數(shù)的引用傳遞voidswap(int&x,int&y)//引用作為函數(shù)形參{ inttemp; temp=x; x=y; y=temp;}voidmain(){ inta=10,b=20; cout<<"a="<<a<<",b="<<b<<endl; swap(a,b); cout<<"a="<<a<<",b="<<b<<endl;}08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.4帶默認(rèn)形參值的函數(shù)C++允許在函數(shù)聲明或定義中給一個(gè)或多個(gè)參數(shù)指定默認(rèn)值。例如,下面聲明一個(gè)帶默認(rèn)值參數(shù)的函數(shù)fun():voidfun(intval=10);則如下的函數(shù)調(diào)用把實(shí)參值20傳遞給形參:fun(20);而如果函數(shù)調(diào)用用省略實(shí)參,則把默認(rèn)值10傳遞給形參,如下所示:fun();//等同于fun(10)08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.4帶默認(rèn)形參值的函數(shù)在設(shè)置函數(shù)的默認(rèn)參數(shù)值時(shí)要注意:當(dāng)函數(shù)既有聲明又有定義后,不能在函數(shù)定義中指定默認(rèn)參數(shù)。如果函數(shù)有多個(gè)形參,在聲明和定義函數(shù)時(shí),必須將帶默認(rèn)值的形參放在參數(shù)表的右部,即默認(rèn)參數(shù)應(yīng)按從右到左的順序定義,在帶默認(rèn)值的形參右邊不能有未指定默認(rèn)值的形參。在函數(shù)調(diào)用時(shí),系統(tǒng)按從左到右的順序?qū)?shí)參與形參結(jié)合。當(dāng)實(shí)參的數(shù)目不足時(shí),系統(tǒng)將按照同樣的順序用聲明或定義中的默認(rèn)值來補(bǔ)齊所缺少的參數(shù)。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.5函數(shù)的嵌套與遞歸調(diào)用嵌套調(diào)用函數(shù)允許嵌套調(diào)用。所謂嵌套調(diào)用就是在調(diào)用一個(gè)函數(shù)并執(zhí)行該函數(shù)中,又調(diào)用另一個(gè)函數(shù)的情況。例如:編寫一個(gè)計(jì)算組合數(shù)的程序。計(jì)算組合數(shù)的公式如下:

08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.5函數(shù)的嵌套與遞歸調(diào)用在本例中,組合數(shù)的計(jì)算用函數(shù)functionA()進(jìn)行,而它需要的階乘計(jì)算由函數(shù)functionB()進(jìn)行。主函數(shù)main()調(diào)用函數(shù)functionA(),而函數(shù)functionA()三次調(diào)用函數(shù)functionB(),計(jì)算m!,n!,(m-n)!。計(jì)算結(jié)果返回給主函數(shù)進(jìn)行輸出。m和n由鍵盤輸入。源程序代碼見教材:[例2-23]08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.5函數(shù)的嵌套與遞歸調(diào)用例子中函數(shù)的調(diào)用如下圖所示:08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.5函數(shù)的嵌套與遞歸調(diào)用遞歸調(diào)用函數(shù)可以直接或間接地調(diào)用自身,稱為遞歸調(diào)用。遞歸調(diào)用分兩個(gè)階段:第一階段:遞推。將原問題不斷分解為新的子問題,逐漸從未知向已知推進(jìn),最終達(dá)到已知條件,即遞歸結(jié)束的條件,這時(shí)遞推階段結(jié)束。例如求4!可以這樣分解:4!=4×3!→3!=3×2!→2!=2×1!→1!=1×0!→0!=108二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.5函數(shù)的嵌套與遞歸調(diào)用第二階段:回歸。從已知條件出發(fā),按照遞推的逆過程,逐一求值回歸,最后達(dá)到遞歸的開始處,結(jié)束回歸階段,完成遞歸調(diào)用。例如求4!的回歸階段如下:4!=4×3!=24←3!=3×2!=6←2!=2×1!=2←1!=1×0!=1←0!=1遞歸部分實(shí)例及代碼見教材:[例2-24]和

[例2-25]08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.6內(nèi)聯(lián)函數(shù)當(dāng)函數(shù)被調(diào)用時(shí)。若把函數(shù)體直接嵌入函數(shù)調(diào)用處,則可消除附加的現(xiàn)場處理的時(shí)間開銷,提高程序的運(yùn)行效率。當(dāng)然,這樣將會加大代碼占用內(nèi)存的空間開銷。C++提供了實(shí)現(xiàn)上述嵌入功能的函數(shù),這種函數(shù)稱為內(nèi)聯(lián)(inline)函數(shù)。內(nèi)聯(lián)函數(shù)一般適用于代碼較短的函數(shù)。定義一個(gè)內(nèi)聯(lián)函數(shù)只需在函數(shù)頭前加入關(guān)鍵字inline。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.6內(nèi)聯(lián)函數(shù)例如:用內(nèi)聯(lián)函數(shù)計(jì)算圓的面積。#include<iostream>usingnamespacestd;inlinedoubleCalArea(doubleradius)//內(nèi)聯(lián)函數(shù),計(jì)算圓的面積{ return3.14*radius*radius;}voidmain(){ doublearea,r(2.0);//r是圓的半徑

area=CalArea(r); //調(diào)用內(nèi)聯(lián)函數(shù)求圓的面積,編譯時(shí)此處被替換為 //CalArea函數(shù)體語句

cout<<area<<endl;}08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.7函數(shù)的重載C++中允許功能相近的函數(shù)在相同的作用范圍內(nèi)以相同函數(shù)名定義,從而形成重載。函數(shù)的重載指的是兩個(gè)以上的函數(shù),取相同的函數(shù)名,但是形參的個(gè)數(shù)或者類型不同,編譯器根據(jù)實(shí)參和形參的類型及個(gè)數(shù)的最佳匹配,自動(dòng)確定調(diào)用哪一個(gè)函數(shù)。函數(shù)重載例子及代碼見教材:[例2-27]08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.4.7函數(shù)的重載函數(shù)重載要注意的是:重載函數(shù)必須具有不同的參數(shù)個(gè)數(shù)或不同的參數(shù)類型,若只有返回值的類型不同是不行的。例如:①intadd(intx,inty);intadd(inta,intb);//錯(cuò)誤!編譯器不以形 //參名來區(qū)分函數(shù)②intadd(intx,inty);voidadd(intx,inty);//錯(cuò)誤!編譯器不以 //返回值來區(qū)分函數(shù)不要將不同功能的函數(shù)定義為重載函數(shù),以免出現(xiàn)對調(diào)用結(jié)果的誤解、混淆。例如避免出現(xiàn)下述重載函數(shù)定義:intadd(intx,inty){returnx+y;}floatadd(floatx,floaty){returnx-y;}

08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)訓(xùn)3函數(shù)的應(yīng)用實(shí)訓(xùn)說明在實(shí)訓(xùn)中,我們要實(shí)現(xiàn)的是古典的數(shù)學(xué)問題----Hanoi(漢諾)塔問題。問題的描述是:古代有一個(gè)梵塔,塔內(nèi)有3個(gè)座A、B、C,開始時(shí)A座上有64個(gè)盤子,盤子大小不等,大的在下,小的在上(如圖2-4)。有一個(gè)老和尚想把這64個(gè)盤子從A座移到C座,但每次只允許移動(dòng)一個(gè)盤,且在移動(dòng)過程中在3個(gè)座上都始終保持大盤在下,小盤在上,移動(dòng)過程中可以利用B座?,F(xiàn)在有N個(gè)按大小順序擺放的盤子放在A座上,請利用B座,按照漢諾塔問題限定的要求(每次移動(dòng)小盤始終都在最上面),將A座上的N個(gè)盤子移到C座上。程序要求用函數(shù)實(shí)現(xiàn)盤子的移動(dòng)操作,并能打印出每次盤子的移動(dòng)步驟。08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)訓(xùn)3函數(shù)的應(yīng)用程序分析為了解決N個(gè)圓盤的漢諾塔,可以按下面方式進(jìn)行操作:將A桿上面的N-1個(gè)盤子,借助B桿,移到C桿上;將A桿上剩余的N號盤子移到B桿上;將C桿上的N-1個(gè)盤子,借助A桿,移到B桿上。根據(jù)以上分析,設(shè)計(jì)移動(dòng)N個(gè)盤子的遞歸函數(shù):voidhanoi(intn,charone,chartwo,charthree);設(shè)計(jì)打印輸出移動(dòng)步驟函數(shù):voidmove(chargetone,charputone);設(shè)計(jì)主函數(shù),輸入盤子數(shù)n,調(diào)用以上函數(shù),輸出結(jié)果。程序源代碼見教材實(shí)訓(xùn)308二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.5構(gòu)造類型2.5.1數(shù)組與字符串2.5.2結(jié)構(gòu)體2.5.3共用體2.5.4枚舉類型2.5.5用typedef定義類型08二月2023C++面向?qū)ο蟪绦蛟O(shè)計(jì)2.5.1數(shù)組與字符串?dāng)?shù)組是一組具有相同類型數(shù)據(jù)的有序集合,其中每個(gè)數(shù)據(jù)稱為數(shù)組的元素。數(shù)組的定義定義數(shù)組的一般形式為:<數(shù)據(jù)類型><數(shù)組名>[<常量表達(dá)式1>][<常量表達(dá)式2>]…;其中,數(shù)據(jù)類型是任一種基本數(shù)據(jù)類型或構(gòu)造數(shù)據(jù)類型。數(shù)組名是用戶定義的數(shù)組標(biāo)識符。方括號中的常量表達(dá)式表示數(shù)據(jù)元素的個(gè)數(shù),也稱為數(shù)組的長度。例如:

int

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論