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

下載本文檔

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

文檔簡介

第2章C#編程基礎(chǔ)主講人:XXX——面向?qū)ο蟪绦蛟O(shè)計(jì)C#編程基礎(chǔ)基本數(shù)據(jù)類型

2變量與常量

1面向?qū)ο蟪绦蛟O(shè)計(jì)初步

32.1變量與常量2.1.1變量的含意2.1.2變量聲明2.1.3常數(shù)2.1.1變量的含意假設(shè)有兩數(shù)為x、y,我們想求出兩者之和,這在數(shù)學(xué)中表示為:x+y。要在程序中計(jì)算x、y的和,我們必須首先聲明將要指定給它們的數(shù)據(jù)類型。為其賦值之后,才能計(jì)算其和。

假設(shè)x、y都是整數(shù)。為了聲明指定給它們的數(shù)據(jù)類型是整數(shù),可編寫如下語句:

intx;

inty;

進(jìn)行此聲明后,即為x和y分配了存儲(chǔ)數(shù)據(jù)值的存儲(chǔ)位置。

這些存儲(chǔ)位置稱為“變量”。而x和y是與存儲(chǔ)位置關(guān)聯(lián)的名稱,稱為變量名。做出上述聲明之后,x和y的值只能是整數(shù)值。我們使用賦值運(yùn)算符“=”給x和y賦值。例如:

x=100;

y=98;

此時(shí)x的值是100,y的值是98。2.1.2變量聲明在C#中,使用變量之前,必須首先聲明它。聲明變量的一般格式為:數(shù)據(jù)類型變量名;如何命名變量?給變量分配有意義的名稱;使用大小寫混合方案。該方案要求變量名的首字母小寫,變量名中每個(gè)單詞的首字母大寫。如newAccountBalance切忌使用C#的關(guān)鍵字雖然C#區(qū)分大小寫,但是不要僅僅通過大小寫的不同來區(qū)分不同的變量。如Sum和sum的同時(shí)使用。任務(wù)2.1計(jì)算路程任務(wù)2.1計(jì)算路程問題描述:有一輛汽車每小時(shí)可以行駛x公里,欲計(jì)算y小時(shí)能行駛多少公里(假設(shè)x和y均為整數(shù))。編寫一程序解決該問題。解決此問題需要使用公式:路程=速度×?xí)r間。要編寫解決該問題的程序,可以使用3個(gè)變量:v、t和s。變量v用于存放速度的值,變量t用于存放時(shí)間的值,變量s用于存放路程的值。2.1.3常數(shù)1.常數(shù)的含義2.聲明常數(shù)注意:盡管常數(shù)與變量有些相像,但不能像變量一樣更改其值或給它們賦新值。2.1.3常數(shù)使用const關(guān)鍵字以及該常量值的類型來聲明一個(gè)常量聲明常量時(shí)必須對(duì)其賦值//地球的半徑為6378kmconstintearthRadius=6378;//到太陽的平均距離為149600000kmconstlongmeanDistanceToSun=149600000;//平均軌道速度是29.79km/sconstdoublemeanOrbitalVelocity=29.79D;2.1.3常數(shù)----討論為什么有必要使用常量?列舉更多的需要使用常量的情況;-防止一些固定的量被無意修改,導(dǎo)致程序運(yùn)算出現(xiàn)錯(cuò)誤;-可能的情況有物理化學(xué)數(shù)學(xué)等學(xué)科在計(jì)算中使用的常量,一些現(xiàn)實(shí)中固定不變的量,例如英文字母的個(gè)數(shù)等等。2.2基本數(shù)據(jù)類型每個(gè)變量都具有一個(gè)類型,以確定哪些值可以存儲(chǔ)在該變量中。算術(shù)運(yùn)算基本數(shù)據(jù)類型的相互轉(zhuǎn)換算術(shù)溢出及顯式轉(zhuǎn)換溢出布爾類型整型字符數(shù)據(jù)類型非整型格式化輸出2.2.1整型C#支持9種整型:sbyte(8位有符號(hào)整型)、byte(8位無符號(hào)整型)、short(16位有符號(hào)整型)、ushort(16位無符號(hào)整型)、int(32位有符號(hào)整型)、uint(32位無符號(hào)整型)、long(64位有符號(hào)整型)、和ulong(64位無符號(hào)整型)。如果整數(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è)變量包含二進(jìn)制數(shù)據(jù)或未知種類的數(shù)據(jù),則將其聲明為byte類型。任務(wù)2.2:整數(shù)相乘主要知識(shí)點(diǎn):①讀取從文本框中輸入的值。②將計(jì)算結(jié)果顯示在文本框中。③將數(shù)字字符串轉(zhuǎn)換為整數(shù)。④異常(格式異常、溢出異常)處理。問題描述:

用戶從鍵盤輸入整數(shù),當(dāng)單擊【相乘】按鈕時(shí),計(jì)算它們的積,并顯示結(jié)果。1.創(chuàng)建項(xiàng)目和窗體2.編寫應(yīng)用程序的代碼3.測(cè)試應(yīng)用程序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.算術(shù)運(yùn)算符優(yōu)先級(jí)規(guī)則在C#中,算術(shù)運(yùn)算符優(yōu)先級(jí)規(guī)則與我們所學(xué)的標(biāo)準(zhǔn)代數(shù)中的算術(shù)運(yùn)算規(guī)則是一樣的。表2.4算術(shù)運(yùn)算符課題討論1、讀右列中的代碼,然后回答問題。intx=10;inty=x++;?y的值是什么,為什么?2、讀右列中的代碼,然后回答問題。x+=10;?x的值是什么,為什么?3、讀右列中的代碼,然后回答問題。intz=30;inta=x+y*z;?a的值是什么?為什么?將該代碼改寫成更具有可讀性的形式。4、讀右列中的代碼,然后回答問題。inta=10;intb=a++;boolmyBool=(a==b);?這段代碼做了些什么?myBool的值是多少?實(shí)訓(xùn)內(nèi)容:制作一個(gè)簡單的加減運(yùn)算器設(shè)計(jì)如下圖windows應(yīng)用程序做簡單的整數(shù)加法和減發(fā)運(yùn)算。注意:異常的處理。2.2.3非整型非整型數(shù)據(jù)類型是同時(shí)使用整數(shù)部分和小數(shù)部分來表示數(shù)值的類型。非整型數(shù)據(jù)類型有:float(7位有效位)、double(15到16位有效位)和decimal(28到29位有效位)。它們都是有符號(hào)類型。如果某個(gè)變量可以包含小數(shù),則將其聲明為這些類型之一。如果希望實(shí)數(shù)被視為非整型類型,請(qǐng)使用文本類型字符,文本類型字符用M表示decimal,用F表示float,用D表示double。2.2.3非整型實(shí)踐操作:設(shè)計(jì)一個(gè)應(yīng)用程序,輸入以攝氏為單位的溫度,輸出以華氏為單位的溫度。攝氏與華氏的公式為:F=1.8*C+32實(shí)訓(xùn)內(nèi)容:設(shè)計(jì)一個(gè)應(yīng)用程序,輸入圓柱體的高和直徑,分別計(jì)算出表面積和體積。要求將∏(3.14159)設(shè)置為常量。注意:異常的處理。任務(wù)2.4:貸款計(jì)算器主要知識(shí)點(diǎn):①Single.Parse(s)方法。②Decimal.Parse(s)方法。③格式化字符串。④求冪運(yùn)算。問題描述:編寫一貸款計(jì)數(shù)器程序,對(duì)于特定的貸款數(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.測(cè)試應(yīng)用程序2.2.4格式化輸出可通過調(diào)用String.Format方法格式化輸出信息。String.Format方法的一般格式為:String.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)換為字符串),依此類推。2.2.4格式化輸出在格式規(guī)范{N,M:Sn}中,N是從零開始的整數(shù),表示要格式化的參數(shù),0表示要格式化的參數(shù)是參數(shù)列表中的第一個(gè)參數(shù),1表示要格式化的參數(shù)是參數(shù)列表中的第二個(gè)參數(shù),依此類推。M是整數(shù)(可選),指示包含格式化值的區(qū)域的寬度,剩余部分用空格填充。如果M的符號(hào)為負(fù),則格式化值在區(qū)域中左對(duì)齊;如果M的符號(hào)為正,則該值右對(duì)齊。S是格式字符(可選),n為整數(shù)(可選),指定小數(shù)位數(shù)。在格式規(guī)范{N,M:Sn}中,只有N是必需的,其他兩項(xiàng)可有可無。表2.3格式化輸出說明2.2.4格式化輸出實(shí)踐操作:將借貸計(jì)算器的練習(xí)按照書上的講解,自己實(shí)現(xiàn)。要求:將輸出的英文提示改成中文,同時(shí)將輸出對(duì)齊。

完成后,提交檢查。實(shí)訓(xùn)內(nèi)容:設(shè)計(jì)一個(gè)應(yīng)用程序,計(jì)算“身體質(zhì)量指數(shù)”(BMI),反映體重有關(guān)的健康問題的危險(xiǎn)程序。BMI計(jì)算公式為:BMI=w/h2其中:w是以千克為單位的體重。H是以米為單位的身高。要求:計(jì)算結(jié)果保留2位小數(shù)。

窗體界面自行設(shè)計(jì)。2.2.2字符數(shù)據(jù)類型字符數(shù)據(jù)類型char用來處理Unicode字符。Unicode字符是16位字符,用于表示世界上多數(shù)已知的書面語言。char變量以無符號(hào)的16位(兩個(gè)字節(jié))數(shù)字的形式存儲(chǔ),取值范圍為0到65535。每個(gè)數(shù)值代表一個(gè)Unicode字符。Unicode的前128個(gè)數(shù)值(0~127)對(duì)應(yīng)于標(biāo)準(zhǔn)美國鍵盤上的字母和符號(hào)。這前128個(gè)數(shù)值與ASCII字符集中定義的數(shù)值相同。隨后的128個(gè)數(shù)值(128到255)表示特殊字符,如拉丁字母、重音符號(hào)、貨幣符號(hào)以及分?jǐn)?shù)。其余的數(shù)值用于表示不同種類的符號(hào),包括世界范圍的各種文本字符、音調(diào)符號(hào)以及數(shù)學(xué)和技術(shù)符號(hào)。任務(wù)2.3:字符檢查問題描述:從鍵盤輸入一個(gè)字符,檢查輸入字符是否為字母字符或數(shù)字,如果不是,則輸出“輸入的字符不是字母字符或數(shù)字”。如果輸入的字符是字母字符,則輸出該字母字符的整數(shù)值。在任何一種情況下,都會(huì)顯示適當(dāng)?shù)南?。解決方案:1.創(chuàng)建項(xiàng)目和窗體2.編寫應(yīng)用程序的代碼3.測(cè)試應(yīng)用程序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)換。下面我們對(duì)隱式轉(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ù)提升”的隱式轉(zhuǎn)換應(yīng)用于算術(shù)操作符的操作數(shù)。提升基于表2.7的規(guī)則,這種轉(zhuǎn)換之所以稱為“提升”,是因?yàn)椴僮鲾?shù)是從低精度轉(zhuǎn)換為高精度。2.顯式轉(zhuǎn)換表2.6隱式數(shù)值轉(zhuǎn)換任務(wù)2.5:隱式和強(qiáng)制數(shù)值轉(zhuǎn)換任務(wù)2.5:隱式和強(qiáng)制數(shù)值轉(zhuǎn)換問題描述:創(chuàng)建一簡單的程序,測(cè)試隱式和強(qiáng)制數(shù)值轉(zhuǎn)換。表2.7算術(shù)提升規(guī)則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)建一簡單的程序,測(cè)試算術(shù)溢出及顯式轉(zhuǎn)換溢出。2.2.8布爾類型bool數(shù)據(jù)類型是被解釋為true或false的無符號(hào)值。如果某個(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)建一簡單的程序,測(cè)試布爾型變量、關(guān)系運(yùn)算符及關(guān)系表達(dá)式。表2.8關(guān)系運(yùn)算符2.3.1類和對(duì)象2.3.2消息和方法2.3.3使用現(xiàn)有的類2.3.4創(chuàng)建自己的類2.3面向?qū)ο蟪绦蛟O(shè)計(jì)初步面向?qū)ο蟪绦蛟O(shè)計(jì)中兩個(gè)最重要的概論是類和對(duì)象。從廣義的術(shù)語來講,對(duì)象是一個(gè)可以想象的物體,它既可是有形的也可是無形的。對(duì)象具有屬性。例如,按鈕或標(biāo)簽之類的GUI對(duì)象具有屬性,屬性是對(duì)象的特性。如按鈕具有名稱、寬度、高度和標(biāo)題等屬性。窗口具有名稱、寬度、高度、標(biāo)題和背景顏色等屬性。對(duì)象具有行為方式(方法),它們用來描述對(duì)象可以執(zhí)行的操作。例如,按鈕可以被禁用、可以設(shè)置標(biāo)題。標(biāo)簽可以顯示文本。窗口可以改變大小,還可以出現(xiàn)或消失。表2.9列出了某些GUI對(duì)象及其屬性和方法。又如,人具有姓名、性別、年齡等屬性。2.3.1類和對(duì)象類是對(duì)象的符號(hào)表示形式,它是計(jì)算機(jī)用來創(chuàng)建對(duì)象的模板。與藍(lán)圖描述構(gòu)成建筑的項(xiàng)一樣,類以同樣的方式描述組成對(duì)象的屬性和方法等。就像一幅藍(lán)圖可以用于建成多座建筑一樣,一個(gè)類也可以用于根據(jù)需要?jiǎng)?chuàng)建多個(gè)對(duì)象。如果使用藍(lán)圖類比,類就是藍(lán)圖,對(duì)象就是基于該藍(lán)圖的建筑。又如人是一個(gè)類,你是人,我是人,都是人類的實(shí)例或稱對(duì)象。一個(gè)類描述一類事物,描述這些事物所應(yīng)具有的屬性,如人有姓名、性別、年齡等屬性。一個(gè)對(duì)象是類的一個(gè)實(shí)例,它具有確定的屬性值,如王飛(人的實(shí)例)年齡是20,性別是男。人類只有一個(gè),人類的實(shí)例可以有無數(shù)多個(gè)。2.3.1類和對(duì)象表2.9GUI對(duì)象及其屬性和方法在編寫面向?qū)ο蟪绦虻倪^程中,我們首先定義類,當(dāng)程序開始運(yùn)行時(shí),由這些類創(chuàng)建對(duì)象以完成任務(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ū)ο蟆L幚硭盏较⒌念惢驅(qū)ο蟊仨氂袑?duì)應(yīng)的方法,也就是類或?qū)ο鬄橥瓿梢豁?xiàng)任務(wù)而執(zhí)行的指令序列。只能有對(duì)象調(diào)用的方法為實(shí)例方法,否則是靜態(tài)方法,靜態(tài)方法將在第5章詳細(xì)講述。向?qū)ο蟀l(fā)送消息使對(duì)象調(diào)用方法,向類發(fā)送消息將調(diào)用類的方法。注意,發(fā)送給類或?qū)ο蟮南⒈仨毰c方法的名稱相同。向類或?qū)ο蟀l(fā)送調(diào)用方法的消息,可能以參數(shù)的形式來發(fā)送值。2.3.2消息和方法再看一個(gè)靜態(tài)方法的例子。Math類定義了靜態(tài)方法pow,該方法按參數(shù)指定的值,計(jì)算指數(shù)。由于Math類有靜態(tài)方法pow的定義,我們可以向Math類發(fā)送pow消息,按參數(shù)指定的值,計(jì)算指數(shù)。如以下代碼計(jì)算23的值,并賦給變量b:doubleb=Math.pow(2,3);圖2.14描述了消息的發(fā)送過程。方法可能返回值也可能不返回值,這要看方法的定義。在后面的章節(jié)中我們將講述方法的定義。2.3.2消息和方法2.3.2消息和方法前面章節(jié)我們已經(jīng)使用了.NET類庫中的類,如Math類、MessageBox類。下面我們使用.NET類庫中的類String。1.String類任務(wù)2.8:文字游戲編寫一個(gè)與用戶一起玩的Eggy-Peggy文字游戲的應(yīng)用程序,該程序把用戶指定的字符串轉(zhuǎn)換為新字符串,在指定字符串的所有元音字母前增加“egg”單詞。如圖2.15所示。2.3.3使用現(xiàn)有的類2.3.3使用現(xiàn)有的類String類聲明對(duì)象(對(duì)象變量):類名對(duì)象名;創(chuàng)建對(duì)象:new類名(參數(shù)列表);消息傳遞(調(diào)用方法或讀取或設(shè)置屬性的值)對(duì)象名.方法名(參數(shù)列表)對(duì)象名.屬性名(可選參數(shù))對(duì)象名.屬性名=表達(dá)式匿名對(duì)象對(duì)象初始化方法連接String對(duì)象2.3.3使用現(xiàn)有的類String類的常用屬性及方法常用屬性:Length:獲取實(shí)例中的字符數(shù)常用方法:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論