《C#面向?qū)ο蟪绦蛟O(shè)計(jì)》第章:C#編程基礎(chǔ)-87課件_第1頁
《C#面向?qū)ο蟪绦蛟O(shè)計(jì)》第章:C#編程基礎(chǔ)-87課件_第2頁
《C#面向?qū)ο蟪绦蛟O(shè)計(jì)》第章:C#編程基礎(chǔ)-87課件_第3頁
《C#面向?qū)ο蟪绦蛟O(shè)計(jì)》第章:C#編程基礎(chǔ)-87課件_第4頁
《C#面向?qū)ο蟪绦蛟O(shè)計(jì)》第章:C#編程基礎(chǔ)-87課件_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C#面向?qū)ο蟪绦蛟O(shè)計(jì)第章:C#編程基礎(chǔ)第1頁,共33頁。主要內(nèi)容與學(xué)習(xí)目標(biāo)主要內(nèi)容:(1)變量與常數(shù)、聲明變量、給變量賦值、讀取變量的值、MessageBox.Show方法、連接字符串、換行符。(2)基本數(shù)據(jù)類型、整型、讀取從文本框中輸入的值、將計(jì)算結(jié)果顯示在文本框中、將數(shù)字字符串轉(zhuǎn)換為整數(shù)、異常(格式異常、溢出異常)處理。(3)字符數(shù)據(jù)類型、將指定字符串轉(zhuǎn)換為字符、將字符轉(zhuǎn)換為字符串、Char數(shù)據(jù)類型和數(shù)值類型之間的轉(zhuǎn)換、Char.IsLetter方法、Char.IsDigit方法。(4)非整型數(shù)據(jù)類型、Single.Parse(s)方法、Decimal.Parse(s)方法、格式化字符串、

2、求冪運(yùn)算、非整數(shù)數(shù)據(jù)類型比較。(5)格式化輸出。(6)算術(shù)表達(dá)式與算術(shù)運(yùn)算符、算術(shù)運(yùn)算符優(yōu)先級規(guī)則。(7)基本數(shù)據(jù)類型的相互轉(zhuǎn)換、隱式數(shù)值轉(zhuǎn)換、顯式轉(zhuǎn)換。(8)bool類型變量、關(guān)系運(yùn)算符、關(guān)系表達(dá)式、關(guān)系表達(dá)式的值。(9)面向?qū)ο蟪绦蛟O(shè)計(jì)初步、類和對象、消息和方法、創(chuàng)建自己的類、聲明類、聲明字段、了解修飾符private和public、聲明方法、聲明對象與創(chuàng)建對象、調(diào)用方法。(10)局部變量、局部變量的作用范圍和實(shí)例字段的作用范圍。學(xué)習(xí)目標(biāo):(1)掌握變量與常數(shù)的含義、聲明和使用。(2)了解數(shù)據(jù)類型及使用。(3)了解數(shù)據(jù)類型的轉(zhuǎn)換及溢出。(4)初步掌握MessageBox.Show方法的使用

3、。(5)掌握如何向項(xiàng)目中添加類和引用。(6)掌握賦值運(yùn)算符的使用。(7)掌握算術(shù)運(yùn)算符和關(guān)系運(yùn)算符的使用。(8)初步掌握類和對象的使用。第2頁,共33頁。2.1 變量與常數(shù)2.1.1 變量的含意2.1.2 變量聲明2.1.3 常數(shù)第3頁,共33頁。2.1.1 變量的含意 假設(shè)有兩數(shù)為x、y,我們想求出兩者之和,這在數(shù)學(xué)中表示為:x+y。要在程序中計(jì)算x、y的和,我們必須首先聲明將要指定給它們的數(shù)據(jù)類型。為其賦值之后,才能計(jì)算其和。 假設(shè)x、y都是整數(shù)。為了聲明指定給它們的數(shù)據(jù)類型是整數(shù),可編寫如下語句: int x; int y; 進(jìn)行此聲明后,即為x和y分配了存儲(chǔ)數(shù)據(jù)值的存儲(chǔ)位置,內(nèi)存狀態(tài)如

4、圖2.1所示。 這些存儲(chǔ)位置稱為“變量”。而x和y是與存儲(chǔ)位置關(guān)聯(lián)的名稱,稱為變量名。做出上述聲明之后,x和y的值只能是整數(shù)值。我們使用賦值運(yùn)算符“=”給x和y賦值。例如: x = 100; y = 98; 此時(shí)x的值是100,y的值是98。內(nèi)存狀態(tài)如圖2.2所示。第4頁,共33頁。 圖2.1 聲明整型變量的結(jié)果 第5頁,共33頁。圖2.2 整型變量x、y賦值的結(jié)果第6頁,共33頁。2.1.2 變量聲明 在C#中,使用變量之前,必須首先聲明它。聲明變量的一般格式為: 數(shù)據(jù)類型 變量名; 任務(wù)2.1 計(jì)算路程問題描述:有一輛汽車每小時(shí)可以行駛x公里,欲計(jì)算y小時(shí)能行駛多少公里(假設(shè)x和y均為整數(shù)

5、)。編寫一程序解決該問題。解決此問題需要使用公式:路程 = 速度 時(shí)間。要編寫解決該問題的程序,可以使用3個(gè)變量:v、t和s。變量v用于存放速度的值,變量t用于存放時(shí)間的值,變量s用于存放路程的值。第7頁,共33頁。2.1.3 常數(shù)1. 常數(shù)的含義2. 聲明常數(shù)注意:盡管常數(shù)與變量有些相像,但不能像變量一樣更改其值或給它們賦新值。第8頁,共33頁。2.2 基本數(shù)據(jù)類型每個(gè)變量都具有一個(gè)類型,以確定哪些值可以存儲(chǔ)在該變量中。 2.2.1 整型2.2.2 字符數(shù)據(jù)類型2.2.3 非整型2.2.4 格式化輸出2.2.5 算術(shù)運(yùn)算2.2.6 基本數(shù)據(jù)類型的相互轉(zhuǎn)換2.2.7 算術(shù)溢出及顯式轉(zhuǎn)換溢出2.

6、2.8 布爾類型第9頁,共33頁。2.2.1 整型 C#支持9種整型:sbyte(8位有符號整型)、byte(8位無符號整型)、short(16位有符號整型)、ushort(16位無符號整型)、int(32位有符號整型)、uint(32位無符號整型)、long(64位有符號整型)、和ulong(64位無符號整型)。 如果整數(shù)表示的值超出了 ulong 的范圍,就會(huì)產(chǎn)生編譯錯(cuò)誤。 如果某個(gè)變量總是存儲(chǔ)整數(shù)而不是帶小數(shù)的數(shù)字,則將它聲明為以上類型中的一種。沒有一個(gè)數(shù)值類型是存放在單個(gè)字節(jié)中的。但有時(shí)數(shù)據(jù)要存放成字節(jié),必須能訪問各個(gè)字節(jié)。這時(shí)該數(shù)據(jù)可存放在byte、sbyte類型的變量中,如果某個(gè)變

7、量包含二進(jìn)制數(shù)據(jù)或未知種類的數(shù)據(jù),則將其聲明為byte類型。任務(wù)2.2:整數(shù)相乘主要知識(shí)點(diǎn):讀取從文本框中輸入的值。將計(jì)算結(jié)果顯示在文本框中。將數(shù)字字符串轉(zhuǎn)換為整數(shù)。異常(格式異常、溢出異常)處理。問題描述:用戶從鍵盤輸入整數(shù)(如圖2.7所示),當(dāng)單擊【相乘】按鈕時(shí),計(jì)算它們的積,并顯示結(jié)果。1. 創(chuàng)建項(xiàng)目和窗體2. 編寫應(yīng)用程序的代碼3. 測試應(yīng)用程序第10頁,共33頁。圖2.7 整數(shù)相乘第11頁,共33頁。2.2.2 字符數(shù)據(jù)類型 字符數(shù)據(jù)類型char用來處理Unicode字符。Unicode 字符是 16 位字符,用于表示世界上多數(shù)已知的書面語言。char變量以無符號的16位(兩個(gè)字節(jié))

8、數(shù)字的形式存儲(chǔ),取值范圍為0到65535。每個(gè)數(shù)值代表一個(gè)Unicode字符。 Unicode的前128個(gè)數(shù)值(0127)對應(yīng)于標(biāo)準(zhǔn)美國鍵盤上的字母和符號。這前 128 個(gè)數(shù)值與ASCII字符集中定義的數(shù)值相同。隨后的128個(gè)數(shù)值(128到 255)表示特殊字符,如拉丁字母、重音符號、貨幣符號以及分?jǐn)?shù)。其余的數(shù)值用于表示不同種類的符號,包括世界范圍的各種文本字符、音調(diào)符號以及數(shù)學(xué)和技術(shù)符號。任務(wù)2.3:字符檢問題描述:從鍵盤輸入一個(gè)字符,檢查輸入字符是否為字母字符或數(shù)字,如果不是,則輸出“輸入的字符不是字母字符或數(shù)字”。如果輸入的字符是字母字符,則輸出該字母字符的整數(shù)值。在任何一種情況下,都會(huì)

9、顯示適當(dāng)?shù)南?。解決方案:1. 創(chuàng)建項(xiàng)目和窗體2. 編寫應(yīng)用程序的代碼3. 測試應(yīng)用程序第12頁,共33頁。2.2.3 非整型 非整型數(shù)據(jù)類型是同時(shí)使用整數(shù)部分和小數(shù)部分來表示數(shù)值的類型。非整型數(shù)據(jù)類型有:float(7位有效位)、double(15到16位有效位)和decimal(28到29位有效位)。 它們都是有符號類型。如果某個(gè)變量可以包含小數(shù),則將其聲明為這些類型之一。 如果希望實(shí)數(shù)被視為非整型類型,請使用文本類型字符,文本類型字符用M表示 decimal,用F表示float,用D表示double。任務(wù)2.4:貸款計(jì)算器 主要知識(shí)點(diǎn):Single.Parse(s)方法。Decimal.

10、Parse(s)方法。格式化字符串。求冪運(yùn)算。 問題描述:編寫一貸款計(jì)數(shù)器程序(如圖2.9所示),對于特定的貸款數(shù)量、年利率和貸款周期,計(jì)算月付款和總付款。計(jì)算月付款的公式為:月付款=p*r/(1-(1+r)-n)其中p為貸款金額;r為月利率(年利率除以12),以0到1(100%)之間的數(shù)給出;n是還完貸款需要的時(shí)間(以月為單位)。解決方案:1. 創(chuàng)建項(xiàng)目和窗體2. 編寫應(yīng)用程序的代碼3. 測試應(yīng)用程序第13頁,共33頁。圖2.9 貸款計(jì)算第14頁,共33頁。2.2.4 格式化輸出 可通過調(diào)用String.Format方法格式化輸出信息。String.Format方法的一般格式為: Strin

11、g.Format(formats, 參數(shù)列表); 其中formats為包含一個(gè)或多個(gè)格式規(guī)范N, M: Sn的字符串,String.Format方法返回formats字符串,只不過將formats字符串中的第一個(gè)格式規(guī)范替換為參數(shù)列表中的第一個(gè)參數(shù)的值(該值被轉(zhuǎn)換為字符串),第二個(gè)格式規(guī)范替換為參數(shù)列表中的第二個(gè)參數(shù)的值(該值被轉(zhuǎn)換為字符串),依此類推。 在格式規(guī)范N, M: Sn中,N是從零開始的整數(shù),表示要格式化的參數(shù),0表示要格式化的參數(shù)是參數(shù)列表中的第一個(gè)參數(shù),1表示要格式化的參數(shù)是參數(shù)列表中的第二個(gè)參數(shù),依此類推。M是整數(shù)(可選),指示包含格式化值的區(qū)域的寬度,剩余部分用空格填充。如

12、果 M 的符號為負(fù),則格式化值在區(qū)域中左對齊;如果 M 的符號為正,則該值右對齊。S是格式字符(可選),n為整數(shù)(可選),指定小數(shù)位數(shù)。在格式規(guī)范N, M: Sn中,只有N是必需的,其他兩項(xiàng)可有可無。 格式化輸出說明如表2.3所示。第15頁,共33頁。表2.3 格式化輸出說明第16頁,共33頁。2.2.5 算術(shù)運(yùn)算1. 算術(shù)表達(dá)式與算術(shù)運(yùn)算符在前面的示例中,op1*op2、op1/op2、5/3 都是算術(shù)表達(dá)式,因?yàn)樗鼈兌加伤阈g(shù)運(yùn)算符和操作數(shù)組成。算術(shù)運(yùn)算符(如*)指定了數(shù)值計(jì)算。表2.4歸納了C#中所使用的算術(shù)運(yùn)算符。2. 算術(shù)運(yùn)算符優(yōu)先級規(guī)則在C#中,算術(shù)運(yùn)算符優(yōu)先級規(guī)則與我們所學(xué)的標(biāo)準(zhǔn)代

13、數(shù)中的算術(shù)運(yùn)算規(guī)則是一樣的。如表2.5所示。第17頁,共33頁。表2.4 算術(shù)運(yùn)算符第18頁,共33頁。表2.5 算術(shù)運(yùn)算符的優(yōu)先級第19頁,共33頁。2.2.6 基本數(shù)據(jù)類型的相互轉(zhuǎn)換程序中在給變量賦值或進(jìn)行數(shù)據(jù)間混合運(yùn)算時(shí),要注意所賦值的數(shù)據(jù)類型是否與變量的數(shù)據(jù)類型一致、進(jìn)行混合運(yùn)算的數(shù)據(jù)的類型是否一致。如果它們的類型不同,則有兩種情況:隱式轉(zhuǎn)換和顯式轉(zhuǎn)換。下面我們對隱式轉(zhuǎn)換和顯式轉(zhuǎn)換進(jìn)行討論。1. 隱式數(shù)值轉(zhuǎn)換表2.6顯示了預(yù)定義的隱式數(shù)值轉(zhuǎn)換。隱式轉(zhuǎn)換可能在多種情形下發(fā)生,包括在賦值語句中和數(shù)據(jù)間混合運(yùn)算時(shí)及調(diào)用方法時(shí)。前面講過數(shù)據(jù)間混合運(yùn)算時(shí),可能發(fā)生隱式轉(zhuǎn)換,稱為“數(shù)據(jù)提升”的隱式

14、轉(zhuǎn)換應(yīng)用于算術(shù)操作符的操作數(shù)。提升基于表2.7的規(guī)則,這種轉(zhuǎn)換之所以稱為“提升”,是因?yàn)椴僮鲾?shù)是從低精度轉(zhuǎn)換為高精度。2. 顯式轉(zhuǎn)換任務(wù)2.5:隱式和強(qiáng)制數(shù)值轉(zhuǎn)換問題描述:創(chuàng)建一簡單的程序,測試隱式和強(qiáng)制數(shù)值轉(zhuǎn)換。第20頁,共33頁。表2.6 隱式數(shù)值轉(zhuǎn)換第21頁,共33頁。表2.7 算術(shù)提升規(guī)則第22頁,共33頁。2.2.7 算術(shù)溢出及顯式轉(zhuǎn)換溢出算術(shù)運(yùn)算符(+、-、*、/)產(chǎn)生的結(jié)果及顯式數(shù)值轉(zhuǎn)換的結(jié)果可能會(huì)超出目標(biāo)類型可能值的范圍。在一般情況下:可能會(huì)丟失數(shù)據(jù)或引發(fā)異常。任務(wù)2.6:算術(shù)溢出及顯式轉(zhuǎn)換溢出問題描述:創(chuàng)建一簡單的程序,測試算術(shù)溢出及顯式轉(zhuǎn)換溢出。第23頁,共33頁。2.2.

15、8 布爾類型bool數(shù)據(jù)類型是被解釋為true 或false的無符號值。如果某個(gè)變量只能包含“真/假”、“是/否”或“開/關(guān)”信息,則將它聲明為bool類型。bool沒有文本類型字符。關(guān)系運(yùn)算符都返回bool類型的結(jié)果。關(guān)系運(yùn)算符為=、!=、=,關(guān)系運(yùn)算符將值彼此比較,結(jié)果為一bool類型的值,詳見表2.8。任務(wù)2.7:數(shù)值比較問題描述:創(chuàng)建一簡單的程序,測試布爾型變量、關(guān)系運(yùn)算符及關(guān)系表達(dá)式。第24頁,共33頁。表2.8 關(guān)系運(yùn)算符第25頁,共33頁。2.3 面向?qū)ο蟪绦蛟O(shè)計(jì)初步2.3.1 類和對象2.3.2 消息和方法2.3.3 使用現(xiàn)有的類2.3.4 創(chuàng)建自己的類第26頁,共33頁。2.

16、3.1 類和對象面向?qū)ο蟪绦蛟O(shè)計(jì)中兩個(gè)最重要的概論是類和對象。從廣義的術(shù)語來講,對象是一個(gè)可以想象的物體,它既可是有形的也可是無形的。對象具有屬性。例如,按鈕或標(biāo)簽之類的GUI對象具有屬性,屬性是對象的特性。如按鈕具有名稱、寬度、高度和標(biāo)題等屬性。窗口具有名稱、寬度、高度、標(biāo)題和背景顏色等屬性。對象具有行為方式(方法),它們用來描述對象可以執(zhí)行的操作。例如,按鈕可以被禁用、可以設(shè)置標(biāo)題。標(biāo)簽可以顯示文本。窗口可以改變大小,還可以出現(xiàn)或消失。表2.9列出了某些GUI對象及其屬性和方法。又如,人具有姓名、性別、年齡等屬性。類是對象的符號表示形式,它是計(jì)算機(jī)用來創(chuàng)建對象的模板。與藍(lán)圖描述構(gòu)成建筑的項(xiàng)

17、一樣,類以同樣的方式描述組成對象的屬性和方法等。就像一幅藍(lán)圖可以用于建成多座建筑一樣,一個(gè)類也可以用于根據(jù)需要?jiǎng)?chuàng)建多個(gè)對象。如果使用藍(lán)圖類比,類就是藍(lán)圖,對象就是基于該藍(lán)圖的建筑。又如人是一個(gè)類,你是人,我是人,都是人類的實(shí)例或稱對象。一個(gè)類描述一類事物,描述這些事物所應(yīng)具有的屬性,如人有姓名、性別、年齡等屬性。一個(gè)對象是類的一個(gè)實(shí)例,它具有確定的屬性值,如王飛(人的實(shí)例)年齡是20,性別是男。人類只有一個(gè),人類的實(shí)例可以有無數(shù)多個(gè)。第27頁,共33頁。表2.9 GUI對象及其屬性和方法第28頁,共33頁。2.3.2 消息和方法在編寫面向?qū)ο蟪绦虻倪^程中,我們首先定義類,當(dāng)程序開始運(yùn)行時(shí),由這

18、些類創(chuàng)建對象以完成任務(wù)。任務(wù)可以是計(jì)算月付款、計(jì)算總付款、格式化字符串等。為了命令類或?qū)ο髨?zhí)行一項(xiàng)任務(wù),我們要為其發(fā)送一個(gè)消息,例如,我們發(fā)送消息pow給Math類,以計(jì)算指數(shù)。處理消息的類或?qū)ο蟊匦柘鄳?yīng)編程,不能將消息隨便發(fā)送給一個(gè)類或?qū)ο?,而只能將消息發(fā)送給能夠理解這個(gè)消息的類或?qū)ο?。處理所收到消息的類或?qū)ο蟊仨氂袑?yīng)的方法,也就是類或?qū)ο鬄橥瓿梢豁?xiàng)任務(wù)而執(zhí)行的指令序列。只能有對象調(diào)用的方法為實(shí)例方法,否則是靜態(tài)方法,靜態(tài)方法將在第5章詳細(xì)講述。向?qū)ο蟀l(fā)送消息使對象調(diào)用方法,向類發(fā)送消息將調(diào)用類的方法。注意,發(fā)送給類或?qū)ο蟮南⒈仨毰c方法的名稱相同。向類或?qū)ο蟀l(fā)送調(diào)用方法的消息,可能以參數(shù)

19、的形式來發(fā)送值。再看一個(gè)靜態(tài)方法的例子。Math類定義了靜態(tài)方法pow,該方法按參數(shù)指定的值,計(jì)算指數(shù)。由于Math類有靜態(tài)方法pow的定義,我們可以向Math類發(fā)送pow消息,按參數(shù)指定的值,計(jì)算指數(shù)。如以下代碼計(jì)算23的值,并賦給變量b:double b = Math.pow(2,3);圖2.14描述了消息的發(fā)送過程。方法可能返回值也可能不返回值,這要看方法的定義。在后面的章節(jié)中我們將講述方法的定義。第29頁,共33頁。圖2.14 發(fā)送消息給類或?qū)ο蟮?0頁,共33頁。2.3.3 使用現(xiàn)有的類前面章節(jié)我們已經(jīng)使用了.NET類庫中的類,如Math類、MessageBox類。下面我們使用.NET類庫中的類String。1. String類任務(wù)2.8:文字游戲 編寫一個(gè)與用戶一起玩的Eggy-Peggy文字游戲的應(yīng)用程序,該程序把用戶指定的字符串轉(zhuǎn)換為新字符串,在指定字符串的所有元音字母前增加“egg”單詞。如圖2.15所

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論