VB程序設(shè)計(jì)基礎(chǔ)_第1頁(yè)
VB程序設(shè)計(jì)基礎(chǔ)_第2頁(yè)
VB程序設(shè)計(jì)基礎(chǔ)_第3頁(yè)
VB程序設(shè)計(jì)基礎(chǔ)_第4頁(yè)
VB程序設(shè)計(jì)基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩96頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二章VisualBasic.NET程序設(shè)計(jì)基礎(chǔ)

2.1控制臺(tái)應(yīng)用程序知識(shí)點(diǎn)1控制臺(tái)程序控制臺(tái)程序沒有窗體,只顯示DOS窗口和命令行程序代碼,控制臺(tái)程序運(yùn)行快捷,非常適合調(diào)試程序時(shí)使用。

2.1控制臺(tái)應(yīng)用程序知識(shí)點(diǎn)2編碼規(guī)范1.字母不區(qū)分大小寫。2.語(yǔ)句書寫自由3.程序的注釋可以用英文標(biāo)點(diǎn)符號(hào)單引號(hào)“’”或Rem開頭來標(biāo)識(shí)一條注釋語(yǔ)句。4.各關(guān)鍵字、標(biāo)識(shí)符之間要用空格隔開。編寫一個(gè)控制臺(tái)應(yīng)用程序,程序執(zhí)行時(shí)提示用戶輸入兩個(gè)整數(shù),然后輸出兩數(shù)之和。

ModuleModule1SubMain()

Dimnum1,num2,sumAsInteger'定義3個(gè)整型變量

Console.Write("請(qǐng)輸入第一個(gè)整數(shù):")'輸出一串字符

num1=Console.ReadLine()'讀取一行字符

Console.Write("請(qǐng)輸入第二個(gè)整數(shù):")num2=Console.ReadLine()sum=num1+num2

Console.WriteLine(num1&"加上"&num2&"等于"&sum)'輸出一行字符及一個(gè)回車符

Console.Read()'讀取一個(gè)字符EndSubEndModuleConsole類的方法在控制臺(tái)應(yīng)用程序中進(jìn)行信息的輸入與輸出,一般要調(diào)用Console類的方法。⑴Console類的Read方法【格式】:Console.Read()【功能】:從鍵盤讀取一個(gè)字符,并作為函數(shù)的返回值。⑵Console類的ReadLine方法【格式】:Console.ReadLine()【功能】:從鍵盤讀取一行字符,并作為函數(shù)的返回值。⑶Console類的Write方法【格式1】:Console.Write(X)【功能】將指定的X顯示在屏幕上。參數(shù)X是任意類型的數(shù)據(jù)。【格式2】:Console.Write(格式字符串,表達(dá)式列表)

【功能】:按照格式字符串的約定,輸出提示字符和表達(dá)式的值。⑷Console類的WriteLine方法【格式1】:Console.WriteLine(X)【功能】:將指定的X顯示在屏幕上,并以換行符結(jié)尾。【格式2】:Console.WriteLine(格式字符串,表達(dá)式列表)【功能】:按照格式字符串的約定,輸出提示字符和表達(dá)式的值,并以換行符結(jié)尾。例如,有下列程序段: x=120 y=280 Console.WriteLine("x={0},y={1}",x,y)則輸出結(jié)果為:x=120,y=2802.2數(shù)據(jù)類型、常量與變量知識(shí)點(diǎn)1基本數(shù)據(jù)類型 數(shù)據(jù)的類型是指數(shù)據(jù)在計(jì)算機(jī)內(nèi)部的表述和存儲(chǔ)形式,不同的數(shù)據(jù)類型具有不同的存儲(chǔ)長(zhǎng)度、取值范圍和允許的操作。 VisualBasic.NET提供了豐富的數(shù)據(jù)類型,其中主要有數(shù)值型、字符型、布爾型、日期型、對(duì)象型和枚舉類型

知識(shí)點(diǎn)1基本數(shù)據(jù)類型1.?dāng)?shù)值型數(shù)據(jù) 數(shù)值型數(shù)據(jù)是指能進(jìn)行數(shù)學(xué)運(yùn)算的數(shù)據(jù),VisualBasic.NET的數(shù)值型數(shù)據(jù)分為整數(shù)型、浮點(diǎn)型和十進(jìn)制型3類。2.字符類型數(shù)據(jù) ⑴字符型(Char) Char型數(shù)據(jù)用于存放一個(gè)Unicode字符,占2個(gè)字節(jié),字符可以包括所有西文字符和漢字。例如,"A"、"5"都是Char型數(shù)據(jù)。 ⑵字符串型(String) 字符串型數(shù)據(jù)是用雙引號(hào)括起來的字符序列,其中的字符可以是西文字符和漢字。例如,"computer"、"中國(guó)"、"我喜歡使用VisualBasic.NET"等知識(shí)點(diǎn)1基本數(shù)據(jù)類型3.布爾型數(shù)據(jù)(Boolean) 又稱為邏輯型,其取值只有兩個(gè):True和False。True轉(zhuǎn)換為-1,F(xiàn)alse轉(zhuǎn)換為0;非0數(shù)據(jù)被轉(zhuǎn)換為True,0被轉(zhuǎn)換為False。4.日期型數(shù)據(jù)(Date) 日期格式:#mm/dd/yyyy#(月/日/年) 時(shí)間格式:#hh:mm:ss#(時(shí):分:秒) 表示日期和時(shí)間時(shí),日期和時(shí)間之間用一個(gè)空格分隔。例如,#7/15/2009#、#17:28:15#和#7/22/200912:29:12PM#都是合法的日期型數(shù)據(jù)。5.字節(jié)型數(shù)據(jù)(Byte) 字節(jié)型數(shù)據(jù)用于存儲(chǔ)一個(gè)字節(jié)的無符號(hào)整數(shù),其取值范圍為0~255。6.對(duì)象型數(shù)據(jù)(Object) 對(duì)象型數(shù)據(jù)是VB.NET默認(rèn)的數(shù)據(jù)類型,它可以引用應(yīng)用程序中的任何一個(gè)對(duì)象,也可引用其他任何數(shù)據(jù)類型的數(shù)據(jù)。知識(shí)點(diǎn)2常量與變量1.常量 常量是指在程序運(yùn)行過程中其值不變的量。

⑴直接常量:

以直接明顯的形式給出的數(shù)據(jù)。如:3.14E-8、-780,"Computer"、#2/9/2004#、True等都是直接常量。

⑵符號(hào)常量: 程序中若要多次用到某一常量,用戶就可以把該常量定義為符號(hào)常量。定義符號(hào)常量的語(yǔ)句格式及功能如下:【格式】:Const符號(hào)常量名[As數(shù)據(jù)類型]=表達(dá)式【功能】:使用Const定義指定名稱的符號(hào)常量,并賦常量值。

知識(shí)點(diǎn)2常量與變量

例如:。 ConstXasInteger=100‘聲明整型常量X代表100 ConstDAY1asDate=#3/15/2004#‘聲明日期常量DAY1 ConstPWD=“Tiger”‘聲明字符串常量PWD代表”Tiger”

⑶系統(tǒng)常量 系統(tǒng)常量是由VisualBasic.NET提供的具有專門名稱和作用的常量,可以直接在程序中使用。如:vbRed表示紅色,vbCrLf表示回車換行。2.變量 變量是指那些在程序運(yùn)行過程中,其值可以改變的量。⑴變量的命名規(guī)則變量名必須以字母或漢字開頭,其后可以是下劃線、字母、漢字和數(shù)字。變量名的長(zhǎng)度不能大于255個(gè)字符。不允許將VisualBasic.NET的關(guān)鍵字用作變量名,但可以把關(guān)鍵字嵌入變量名中。 下面列出的變量名是有效的:

aABCintMaxs_nameA1學(xué)生_1Sum_ave 而下面列出的變量名則是無效的、非法的:

2a(數(shù)字開頭)Date(和關(guān)鍵字重名)Y,2(有標(biāo)點(diǎn)符號(hào))2.變量⑵變量的聲明變量的聲明有顯式聲明和隱式聲明兩種方法。①變量的顯式聲明【格式】:Declare變量名As數(shù)據(jù)類型[=初值]【功能】:聲明一個(gè)由“變量名”指定的變量,并可以給它賦初值。Dimx,y,zAsSingleDimnAsInteger=12,tAsLong=1Dimaa,bb,ccAsDouble=456.789√√×2.變量②變量的隱式聲明 在VisualBasic.NET中,變量的隱式聲明是在變量名后面加上一個(gè)數(shù)據(jù)類型符,直接確定變量的類型。 例如,有下列語(yǔ)句:

DimN%,sum!,strName$ ‘定義N為整型變量,sum為單精度型變量,strName為字符串變量 ③OptionExplicit語(yǔ)句

OptionExplicitOff OptionExplicitOn編寫一個(gè)程序,由用戶輸入圓的半徑,計(jì)算并輸出圓的周長(zhǎng)和面積。SubMain()

ConstPIAsSingle=3.14Dimr,l,sAsSingleConsole.Write("請(qǐng)輸入圓的半徑:")r=Console.ReadLinel=2*PI*rs=PI*r*rConsole.WriteLine(“圓的周長(zhǎng)是:”&l)Console.WriteLine("圓的面積是:"&s)Console.Read()EndSub2.3運(yùn)算符和表達(dá)式

知識(shí)點(diǎn)1算術(shù)運(yùn)算符

例如,表達(dá)式4+5\6*7/8Mod9的值是5

運(yùn)算符功能優(yōu)先級(jí)表達(dá)式表達(dá)式實(shí)例表達(dá)式結(jié)果^乘方運(yùn)算1X^Y5^3125-取負(fù)2-X-5-5*乘法運(yùn)算3X*Y3*515/浮點(diǎn)除法運(yùn)算3X/Y5/31.6666667\整數(shù)除法運(yùn)算4X\Y5\31Mod取模運(yùn)算5XModY5Mod32+加法運(yùn)算6X+Y5+38-減法運(yùn)算6X-Y5-322.3運(yùn)算符和表達(dá)式知識(shí)點(diǎn)2字符串運(yùn)算符"計(jì)算機(jī)"+"程序設(shè)計(jì)"‘結(jié)果為"計(jì)算機(jī)程序設(shè)計(jì)""計(jì)算機(jī)"&"程序設(shè)計(jì)"‘結(jié)果為"計(jì)算機(jī)程序設(shè)計(jì)""125"+"25" ‘結(jié)果為"12525""125"+25 ‘結(jié)果為150"125"&25 ‘結(jié)果為"12525""ABC"+100 ‘結(jié)果出錯(cuò)"ABC"&100 ‘結(jié)果為"ABC100"可以在Main函數(shù)中使用Console.WriteLine方法來輸出驗(yàn)證這些表達(dá)式知識(shí)點(diǎn)3關(guān)系運(yùn)算符運(yùn)算符功能表達(dá)式實(shí)例結(jié)果=等于"Visual"="Visul"False>大于"Visual">"Visl"True>=大于等于20>=21False<小于55<89True<=小于等于"23"<="12"False<>不等于"xyz"<>"XYZ"TrueLike字符串匹配"韓非子"Like"韓*"TrueIs對(duì)象引用比較XIsY(若X和Y引用同一個(gè)對(duì)象)True知識(shí)點(diǎn)4邏輯運(yùn)算符運(yùn)算符功能優(yōu)先級(jí)表達(dá)式格式說明Not取反1Notx進(jìn)行取反操作,即由真變假或由假變真And與2xAndy兩個(gè)操作數(shù)均為真時(shí)結(jié)果為真,否則為假Or或3xOry兩個(gè)操作數(shù)均為假時(shí),結(jié)果為假,否則為真Xor異或4xXory兩個(gè)操作數(shù)相異時(shí),結(jié)果為真,否則為假AndAlso短路與5xAndAlsoy類似And運(yùn)算符OrElse短路或6xOrElsey類似Or運(yùn)算符知識(shí)點(diǎn)4邏輯運(yùn)算符3+5>8And8>3‘結(jié)果為False3+5>8Or8>3‘結(jié)果為TrueNot5<3And6*2=10+2 ‘結(jié)果為True“a”>”A”Xor“9”>“0”‘結(jié)果為False5>=5Or4*7<>7‘結(jié)果為True(12<2)AndAlso(10>1) ‘結(jié)果為False(10<20)OrElse(12*8<100) ‘結(jié)果為True2.3運(yùn)算符和表達(dá)式

知識(shí)點(diǎn)5賦值運(yùn)算符 知識(shí)點(diǎn)6表達(dá)式 VB.NET的表達(dá)式可以分為:算術(shù)表達(dá)式、字符串表達(dá)式、關(guān)系表達(dá)式和邏輯表達(dá)式。

1.表達(dá)式的書寫規(guī)則 ①表達(dá)式從左到右都在同一行上書寫。 ②乘號(hào)“*”不能省略。 ③表達(dá)式中的所有括號(hào)都只能用圓括號(hào)(),且括號(hào)必須配對(duì)。 例如,數(shù)學(xué)中的表達(dá)式3[x+5(y+z)],在程序中只能寫成:3*(x+5*(y+z))。2.3運(yùn)算符和表達(dá)式2.運(yùn)算符的優(yōu)先級(jí)算術(shù)運(yùn)算符>=字符運(yùn)算符>關(guān)系運(yùn)算符>邏輯運(yùn)算符對(duì)于相同類型的運(yùn)算符,則按照規(guī)定的優(yōu)先級(jí)順序進(jìn)行運(yùn)算。若表達(dá)式中有括號(hào)和函數(shù),則先計(jì)算括號(hào)內(nèi)的表達(dá)式值和函數(shù)。3.不同數(shù)據(jù)類型的轉(zhuǎn)換在算術(shù)運(yùn)算中,如果參加運(yùn)算的數(shù)據(jù)具有不同的數(shù)據(jù)類型,則可以通過顯式或隱式的方法進(jìn)行類型的轉(zhuǎn)換,通常是精度低的向精度高的數(shù)據(jù)類型轉(zhuǎn)換。數(shù)據(jù)類型由低到高的排列次序?yàn)椋築yte<Short<Integer<Long<Single<Double<Decimal2.4常用內(nèi)部函數(shù)函數(shù)是完成某些特定運(yùn)算的程序模塊。內(nèi)部函數(shù)也稱標(biāo)準(zhǔn)函數(shù),是由VisualBasic.NET系統(tǒng)提供的,可在任何程序中直接調(diào)用。每個(gè)內(nèi)部函數(shù)都有其特定的功能,并且在調(diào)用時(shí)都有唯一的函數(shù)返回值。下面表示函數(shù)參數(shù)時(shí),用N表示數(shù)值型數(shù)據(jù),用C表示字符串型數(shù)據(jù),用D表示日期型數(shù)據(jù)。知識(shí)點(diǎn)1數(shù)學(xué)函數(shù)在VisualBasic.NET中,數(shù)學(xué)函數(shù)是在System.Math類中定義的,為了直接使用數(shù)學(xué)函數(shù),需要在程序模塊的開頭引入System.Math類,使用的語(yǔ)句如下:

ImportsSystem.Math如果沒有使用該語(yǔ)句引入Math類,則需要在數(shù)學(xué)函數(shù)名前加上Math.來引用。例如,Math.Sqrt(25)。表2-7常用的數(shù)學(xué)函數(shù)函數(shù)名含義實(shí)例結(jié)果Abs(N)取絕對(duì)值A(chǔ)bs(-3.5)3.5Sin(N)正弦函數(shù)Sin(30*3.14/180)0.5Cos(N)余弦函數(shù)Cos(60*3.14/180)0.5Int(N)取不大于N的最大整數(shù)Int(-8.6)-9Sqrt(N)平方根函數(shù)Sqrt(9)3Rnd[(N)]產(chǎn)生小于1但大于或等于0的隨機(jī)數(shù)Rnd0~1之間的小數(shù)Exp(N)以e為底的指數(shù)函數(shù),即eNExp(3)20.086Log(N)以e為底的自然對(duì)數(shù),即ln(N)Log(10)2.3Sign(N)符號(hào)函數(shù)Sign(-5)-1Tan(N)正切函數(shù)Tan(45*3.14/180)1Atan(N)反正切函數(shù)Atan(0)0⑶隨機(jī)數(shù)函數(shù)的使用技巧用Rnd函數(shù)產(chǎn)生隨機(jī)整數(shù):可以通過將由Rnd函數(shù)產(chǎn)生的隨機(jī)小數(shù)乘以一個(gè)整數(shù),然后再對(duì)結(jié)果取整獲得。 例如要產(chǎn)生一個(gè)0~25之間的隨機(jī)數(shù),可以由以下語(yǔ)句實(shí)現(xiàn): num=Int(Rnd()*26) 產(chǎn)生一個(gè)從N到M之間的隨機(jī)整數(shù)(M>N,包括M和N)的表達(dá)式為:

Int(Rnd*(M-N+1))+N。 產(chǎn)生隨機(jī)英文字符:英文字符A的ASCII碼為65,26個(gè)大寫字母的ASCII碼值范圍是65~90,其實(shí)現(xiàn)語(yǔ)句為:

Num=Int(Rnd*26)+65 Letter=Chr(Num)知識(shí)點(diǎn)2常用的數(shù)據(jù)類型轉(zhuǎn)換函數(shù)函數(shù)名含義實(shí)例結(jié)果Asc(C)字符轉(zhuǎn)換成ASCII碼值A(chǔ)sc(“A”)65Chr(N)ASCII碼值轉(zhuǎn)換成對(duì)應(yīng)字符Chr(65)“A”Str(N)數(shù)值轉(zhuǎn)換為字符串Str(123.45)“123.45”Val(C)數(shù)字字符串轉(zhuǎn)換為數(shù)值Val(“123AB”)123Hex(N)十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)Hex(100)64Oct(N)十進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制數(shù)Oct(100)144Lcase(C)大寫字母轉(zhuǎn)換為小寫字母Lcase(“ABC12”)“abc12”Ucase(C)小寫字母轉(zhuǎn)換為大寫字母Ucase(“abc78”)“ABC78”知識(shí)點(diǎn)3字符串操作函數(shù)函數(shù)名含義實(shí)例結(jié)果Left(C,N)從字符串C左邊取出N個(gè)字符Left(“ABCDEF”,3)“ABC”Right(C,N)從字符串C右邊取出N個(gè)字符Right(“ABCDEF”,3)“DEF”Mid(C,N1,N2)從字符串C的N1位開始向右取N2個(gè)字符Mid(“ABCDEFG”,2,3)“BCD”Trim(C)除去字符串左右兩邊的空格Trim(“ABC“)“ABC”Ltrim(C)除去字符串左邊的空格Ltrim(“ab”)“ab”Rtrim(C,N)除去字符串右邊的空格Rtrim(“ABC“)“ABC”InStr(C1,C2)返回字符串C2在字符串C1中第一次出現(xiàn)的位置InStr(”VisualBasic”,“as”)9Len(C)計(jì)算字符串C的長(zhǎng)度Len(“abcde”)5知識(shí)點(diǎn)4日期和時(shí)間函數(shù)函數(shù)名含義實(shí)例結(jié)果Now返回系統(tǒng)當(dāng)前的日期和時(shí)間Now2009-7-811:32:08Day(D)返回指定日期中的日(1~31)Month(D)返回指定日期中的月(1~12)Month(#3/2/2009#)3Year(D)返回指定日期中的年Year(#10/1/2009#")2009WeekDay(D)返回對(duì)應(yīng)的星期數(shù)(1~7)星期日為1,星期一為2Weekday(#7/22/2009#)4即星期三在使用Day函數(shù)時(shí),需要用Microsoft.VisualBasic命名空間限定該函數(shù),例如:Microsoft.VisualBasic.DateAndTime.Day(#7/22/2009#)也可以使用Day屬性來獲取日期中的某一天,例如:#7/22/2009#.Day任務(wù)3解析Dimnum,nAsInteger '聲明模塊級(jí)變量'下面是“開始猜數(shù)”按鈕的事件過程代碼PrivateSubbtnStart_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnRnd.Click

txtInput.BackColor=Color.Pink

txtInput.Focus()

Randomize()

num=Int(Rnd()*100)+1

txtInput.Text=""

txtResult.Text=""EndSub'下面是“確定”按鈕的事件過程代碼PrivateSubbtnOk_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesbtnOk.Click

n=Val(txtInput.Text) Ifn=numThen txtResult.Text="恭喜你!猜對(duì)了"txtInput.BackColor=Color.WhiteElseIfn>numThentxtResult.Text=n&"太大了!"txtInput.Text=""txtInput.Focus()ElsetxtResult.Text=n&"太小了!"txtInput.Text=""txtInput.Focus()EndIfEndSub'下面是“查看”按鈕的事件過程代碼PrivateSubbtnView_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesbtnView.Click

txtResult.Text="您要猜的數(shù)是"&numEndSub2.5順序結(jié)構(gòu)程序設(shè)計(jì) 順序結(jié)構(gòu)的流程圖:知識(shí)點(diǎn)1賦值語(yǔ)句【格式1】:變量名=表達(dá)式【功能】:給變量賦值?!靖袷?】:對(duì)象名.屬性名=表達(dá)式【功能】:給對(duì)象的屬性賦值。當(dāng)賦值號(hào)兩邊的數(shù)據(jù)類型不同時(shí),系統(tǒng)將強(qiáng)制轉(zhuǎn)換為賦值號(hào)左邊變量的數(shù)據(jù)類型。例如:a1%=6.845'變量a1為整型,表達(dá)式的值經(jīng)四舍五入后再賦給a1,結(jié)果為7。X!=6.2831528#'變量x為單精度型,賦值結(jié)果為6.283153,有效位降低為7位。知識(shí)點(diǎn)1賦值語(yǔ)句當(dāng)把字符串賦值給數(shù)值型變量時(shí),系統(tǒng)會(huì)將字符串自動(dòng)轉(zhuǎn)換成數(shù)值再賦值,但當(dāng)字符串中包含非數(shù)字字符或是一空串時(shí),則出錯(cuò)。例如:a%="31.456"'變量a中的結(jié)果是31。a!="31.456"'變量a中的結(jié)果是31.456。a%="31xy34"'出現(xiàn)“類型不匹配”錯(cuò)誤知識(shí)點(diǎn)1賦值語(yǔ)句當(dāng)把邏輯值賦給數(shù)值變量時(shí),True轉(zhuǎn)換為-1,F(xiàn)alse轉(zhuǎn)換為0;把數(shù)值型值賦給邏輯變量時(shí),非0值轉(zhuǎn)換為True,0轉(zhuǎn)換為False。例如:DimBLAsBoolean

'聲明變量BL為邏輯型BL=5

‘變量BL中的數(shù)據(jù)為True。任何非字符串型的數(shù)據(jù)賦值給字符串型變量時(shí),將被轉(zhuǎn)換成字符串型。知識(shí)點(diǎn)1賦值語(yǔ)句在程序設(shè)計(jì)中,我們常常會(huì)用到下面的賦值語(yǔ)句:

sum=sum+n賦值號(hào)左邊的變量名只能是變量,不能是常量、函數(shù)或表達(dá)式。例如,以下的賦值語(yǔ)句都是非法的:

Sin(1.23)=a'左邊是函數(shù)

9=a+1'左邊是常數(shù)

a+1=8'左邊是表達(dá)式知識(shí)點(diǎn)1賦值語(yǔ)句不能用一個(gè)賦值語(yǔ)句同時(shí)給多個(gè)變量賦值。例如,以下的賦值語(yǔ)句是錯(cuò)誤的:Dima,b,cAsLonga=b=c=10程序執(zhí)行時(shí)會(huì)把b=c=10看成是關(guān)系表達(dá)式,它的值是False,再將其轉(zhuǎn)換后賦給變量a,結(jié)果a的值是0。知識(shí)點(diǎn)1賦值語(yǔ)句下列程序段的功能是交換兩個(gè)變量的值。Dima,b,cAsIntegera=15b=-25c=a'將a中的數(shù)據(jù)存入ca=b'將b中的數(shù)據(jù)存入ab=c'將c中的數(shù)據(jù)存入b,實(shí)現(xiàn)交換知識(shí)點(diǎn)1賦值語(yǔ)句知識(shí)點(diǎn)2InputBox函數(shù)語(yǔ)法格式為:InputBox(<提示>[,<標(biāo)題>][,<默認(rèn)值>][,<X坐標(biāo)位置>][,<Y坐標(biāo)位置>])功能:打開一個(gè)對(duì)話框,接受用戶從鍵盤輸入的數(shù)據(jù),該函數(shù)的返回值是字符串類型。

例如,有如下語(yǔ)句:DimsNameAsStringsName=InputBox("請(qǐng)輸入學(xué)生姓名:","姓名輸入","張三")知識(shí)點(diǎn)2InputBox函數(shù)知識(shí)點(diǎn)3MsgBox函數(shù)MsgBox函數(shù)產(chǎn)生一個(gè)消息對(duì)話框,常用于在程序運(yùn)行過程中顯示一些提示性的消息,或要求用戶對(duì)某個(gè)問題作出“是”或“否”的判斷等。MsgBox函數(shù)的語(yǔ)法格式為:MsgBox(提示[,按鈕類型][,標(biāo)題])說明:<提示>是必選項(xiàng),不能省略。MsgBox函數(shù)返回的值(一個(gè)整型數(shù))記錄了用戶在消息框中選擇了哪一個(gè)按鈕。例如,執(zhí)行下列語(yǔ)句后:DimnAsIntegern=MsgBox("文件的內(nèi)容已改變。"&vbCrLf&"想保存文件嗎?",35,"記事本")若用戶在對(duì)話框中單擊“是”按鈕,n的值為6;若單擊“否”按鈕,n的值為7;若單擊“取消”按鈕,n的值為2。知識(shí)點(diǎn)3MsgBox函數(shù)知識(shí)點(diǎn)4MessageBox類MessageBox.Show()函數(shù)與MsgBox函數(shù)功能相同,也是產(chǎn)生一個(gè)消息對(duì)話框,用于在程序運(yùn)行過程中顯示一些提示性的消息,或要求用戶對(duì)某個(gè)問題作出“是”或“否”的判斷等。MessageBox.Show()函數(shù)的語(yǔ)法格式為:MessageBox.Show(提示[,標(biāo)題][,按鈕類型][,圖標(biāo)類型][,默認(rèn)按鈕])知識(shí)點(diǎn)4MessageBox類例如,下列語(yǔ)句也可以得到圖2-10所示的消息對(duì)話框。DimnAsIntegern=MessageBox.Show("文件的內(nèi)容已改變。"&vbCrLf&"想保存文件嗎?","記事本",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button1)任務(wù)4編寫一個(gè)求解三角形面積的程序要求:使用InputBox函數(shù)輸入三角形的三條邊,計(jì)算其面積并用MsgBox函數(shù)輸出。其中面積S=,p=(a+b+c)。ImportsSystem.MathPublicClassfrmAreaPrivateSubfrmArea_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMe.ClickDima,b,c,p,sAsSinglea=Val(InputBox("請(qǐng)輸入三角形的邊長(zhǎng)A:"))b=Val(InputBox("請(qǐng)輸入三角形的邊長(zhǎng)B:"))c=Val(InputBox("請(qǐng)輸入三角形的邊長(zhǎng)C:"))Ifa+b>cAnda+c>bAndb+c>aThenp=(a+b+c)/2s=Sqrt(p*(p-a)*(p-b)*(p-c))MsgBox("A="&a&",B="&b&",C="&c&",面積="&s,,"三角形的面積")ElseMsgBox("輸入的三條邊不能構(gòu)成三角形")EndIfEndSubEndClass順序結(jié)構(gòu)的上機(jī)習(xí)題

1.隨機(jī)產(chǎn)生一個(gè)三位正整數(shù),并逆序輸出它。例如:產(chǎn)生的數(shù)為123,則輸出的數(shù)為321。界面如下圖所示:算法定義5個(gè)變量N=隨機(jī)數(shù)分別求出百位、十位、個(gè)位數(shù)a、b、cM=C*100+B*10+A將N和M分別顯示在兩個(gè)文本框中順序結(jié)構(gòu)的上機(jī)習(xí)題

2.由鍵盤輸入任意一個(gè)字符,用消息對(duì)話框顯示它的ASCII碼值。2.6條件分支結(jié)構(gòu)程序設(shè)計(jì)知識(shí)點(diǎn)1簡(jiǎn)單分支結(jié)構(gòu)(單分支結(jié)構(gòu))單行結(jié)構(gòu)的語(yǔ)法格式為:【格式】:If條件表達(dá)式Then語(yǔ)句行塊結(jié)構(gòu)的語(yǔ)法格式是:【格式】:If條件表達(dá)式Then 語(yǔ)句塊EndIf分支結(jié)構(gòu)的控制流程圖條件表達(dá)式語(yǔ)句塊TrueFalse條件表達(dá)式語(yǔ)句塊1TrueFalse語(yǔ)句塊2知識(shí)點(diǎn)1簡(jiǎn)單分支結(jié)構(gòu)(單分支結(jié)構(gòu))例如,要根據(jù)成績(jī)變量(Score)來統(tǒng)計(jì)通過計(jì)算機(jī)考試的人數(shù)(Sum),實(shí)現(xiàn)的語(yǔ)句是:IfScore>=60ThenSum=Sum+1又例如,已知兩個(gè)數(shù)值型變量x和y,如果x小于y,則交換x和y的值,否則不交換。實(shí)現(xiàn)的程序代碼段是:Ifx<yThen t=x x=y y=tEndIf知識(shí)點(diǎn)2選擇分支結(jié)構(gòu)(雙分支結(jié)構(gòu))【格式】:

If條件表達(dá)式Then 語(yǔ)句塊1Else 語(yǔ)句塊2EndIf【功能】:對(duì)給定的條件表達(dá)式進(jìn)行判斷,若條件表達(dá)式的值為True,則程序執(zhí)行Then后面的語(yǔ)句塊1,執(zhí)行完畢后,再跳到EndIf后面去執(zhí)行其他語(yǔ)句;若表達(dá)式的值為False,則執(zhí)行Else之后的語(yǔ)句塊2,然后再執(zhí)行EndIf后面的其他語(yǔ)句。知識(shí)點(diǎn)2選擇分支結(jié)構(gòu)(雙分支結(jié)構(gòu))例如,計(jì)算分段函數(shù):則實(shí)現(xiàn)的程序代碼段是:

Ifx>=0Then y=Sin(x)+Sqrt(x^2+1)Else y=Cos(x)-x^3+3*xEndIf任務(wù)5編寫一個(gè)出租車計(jì)費(fèi)程序已知出租車的起步價(jià)是6元,基價(jià)里程是2.5公里;超過2.5公里的部分,每公里加收1.2元;如果路程超過10公里,則超出部分加收50%的空貼費(fèi)。編寫一個(gè)出租車計(jì)費(fèi)程序。界面如下圖所示,在文本框txtDistance中輸入公里數(shù),單擊“計(jì)算”按鈕則在文本框txtCost中顯示應(yīng)付的出租車費(fèi);單擊“清空”按鈕則清空兩個(gè)文本框任務(wù)5解析PublicClassfrmTaxiCost

DimnAsSingle,costAsSinglePrivateSubbtnCalculate_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnCalculate.Click

n=Val(txtDistance.Text)Ifn<=2.5Thencost=6

cost=6+(n-2.5)*1.2Ifn>10Thencost=cost+(n-10)*1.2*0.5'超過10公里的加收超出部分50%的空車費(fèi)

EndIfcost=Math.Round(cost)

'四舍五入取整EndIftxtCost.Text=cost&"元"EndSubPrivateSubbtnClear_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnClear.Click

txtDistance.Text=""txtCost.Text="“‘或txtCost.Clear()EndSubEndClass知識(shí)點(diǎn)3多分支結(jié)構(gòu)

1.使用If…Then…ElseIf語(yǔ)句

【格式】:

If條件表達(dá)式1Then 語(yǔ)句塊1ElseIf條件表達(dá)式2Then 語(yǔ)句塊2…[Else 語(yǔ)句塊n+1]EndIf【功能】:依次對(duì)給定的條件表達(dá)式進(jìn)行判斷,哪個(gè)條件表達(dá)式的值為True,則程序就執(zhí)行該條件Then后面的語(yǔ)句塊,執(zhí)行完畢后,程序轉(zhuǎn)到EndIf之后的語(yǔ)句執(zhí)行,不再判斷其他條件表達(dá)式。當(dāng)所有條件表達(dá)式的值都為False時(shí),則執(zhí)行Else后面的語(yǔ)句塊。多分支結(jié)構(gòu)的控制流程圖2.使用SelectCase語(yǔ)句【格式】:

SelectCase測(cè)試條件表達(dá)式 Case表達(dá)式列表1語(yǔ)句塊1Case表達(dá)式列表2 語(yǔ)句塊2…[CaseElse語(yǔ)句塊n+1]EndSelect【功能】:首先計(jì)算測(cè)試條件表達(dá)式的值,然后將該值依次與各Case后面的表達(dá)式列表值進(jìn)行比較,若與某一列表值相等,就執(zhí)行與該Case相關(guān)聯(lián)的語(yǔ)句塊,執(zhí)行完畢后,程序轉(zhuǎn)到EndSelect之后的語(yǔ)句,不再與其他列表值進(jìn)行比較。當(dāng)所有列表表達(dá)式的值均不能與測(cè)試條件表達(dá)式的值相匹配時(shí),則執(zhí)行CaseElse后面的語(yǔ)句塊。說明:“測(cè)試條件表達(dá)式”可以是數(shù)值型或字符串表達(dá)式。“表達(dá)式列表”可以是以下3種形式:表達(dá)式列表:如:Case2,4,6,8表達(dá)式To表達(dá)式:如:Case20to50Is比較運(yùn)算符表達(dá)式:如:CaseIs<10注意Is前面不要加變量,初學(xué)者容易犯這樣的錯(cuò)誤。上述三種形式在數(shù)據(jù)類型相同的條件下可以混合使用。例如:Case"a"To"n",Is>"x"Case2,4,6,8,Is>10任務(wù)6:編寫一個(gè)購(gòu)物打折程序某商場(chǎng)采用購(gòu)物打折的優(yōu)惠辦法促銷,每位顧客一次購(gòu)物在100元以上,按九折優(yōu)惠;在500元以上,按八折優(yōu)惠;在1000元以上,按七折優(yōu)惠;在5000元以上,按六折優(yōu)惠。編寫程序,輸入顧客的購(gòu)物款,計(jì)算并顯示出顧客的實(shí)際應(yīng)付款。要求分別用If…Then…

ElseIf語(yǔ)句和SelectCase語(yǔ)句來實(shí)現(xiàn)。程序運(yùn)行界面任務(wù)6解析思路分析:設(shè)顧客的購(gòu)物款為x,打折后的貨款為y,則優(yōu)惠公式為:

Dimx,yAsSingle'使用If……ElseIf語(yǔ)句PrivateSubbtnElseIf_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesbtnElseIf.Click

x=Val(txtInput.Text)Ifx<100Theny=xElseIfx<500Theny=x*0.9ElseIfx<1000Theny=x*0.8ElseIfx<5000Theny=x*0.7Elsey=x*0.6EndIftxtOutput.Text=yEndSub

PrivateSubbtnSelect_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesbtnSelect.Click

x=Val(txtInput.Text)SelectCasexCaseIs<100y=xCaseIs<500y=x*0.9CaseIs<1000y=x*0.8CaseIs<5000y=x*0.7CaseElsey=x*0.6EndSelecttxtOutput.Text=y

EndSub條件分支結(jié)構(gòu)的習(xí)題編寫一個(gè)求解一元二次方程根的程序。要求用戶輸入方程的3個(gè)系數(shù),判斷是否是二次方程,如果是,根據(jù)Δ分2種情況求解方程的根(有解或無解);如果是一次方程,直接求出根。2.7循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)是指在程序設(shè)計(jì)中,在指定條件下從程序的某處開始有規(guī)律地反復(fù)執(zhí)行某一程序段的現(xiàn)象,被重復(fù)執(zhí)行的程序段稱為“循環(huán)體”。VisualBasic.NET提供了兩種類型的循環(huán)結(jié)構(gòu),一種是計(jì)數(shù)循環(huán),另一種是條件循環(huán)。知識(shí)點(diǎn)1For…Next循環(huán)如果知道循環(huán)的次數(shù),就可以使用For…Next循環(huán)結(jié)構(gòu),F(xiàn)or…Next語(yǔ)句以指定的次數(shù)執(zhí)行一組語(yǔ)句。【格式】:For循環(huán)變量=初值To終值[Step步長(zhǎng)]語(yǔ)句塊1[ExitFor] 語(yǔ)句塊2Next循環(huán)變量說明:⑴循環(huán)變量、初值和終值都是必要參數(shù),不能省略,它們必須為數(shù)值型。⑵步長(zhǎng)可以是正數(shù)或者負(fù)數(shù)。如果初值小于或等于終值,步長(zhǎng)的值應(yīng)該為正;反之,步長(zhǎng)應(yīng)該為負(fù)。步長(zhǎng)的值為1時(shí),可以省略不寫。⑶語(yǔ)句塊可以是一條語(yǔ)句,也可以是多條語(yǔ)句,通常稱為循環(huán)體。循環(huán)體在循環(huán)過程中被反復(fù)執(zhí)行。⑷For…Next循環(huán)是計(jì)數(shù)循環(huán),通常用于循環(huán)次數(shù)確定的場(chǎng)合。一個(gè)For循環(huán)的循環(huán)次數(shù)計(jì)算公式是:Int((終值-初值)/步長(zhǎng)+1)。⑸ExitFor子句是可選項(xiàng),它可以放置在循環(huán)體的任何位置。程序在執(zhí)行過程中遇到ExitFor子句時(shí),將強(qiáng)行退出循環(huán)去執(zhí)行Next后面的語(yǔ)句。ExitFor子句常與條件判斷語(yǔ)句配合使用,使得循環(huán)操作能在一些特殊場(chǎng)合下提前終止。⑹For循環(huán)的執(zhí)行步驟是:①設(shè)置循環(huán)變量的值等于給定的初值;②判斷循環(huán)變量的值是否超過所設(shè)定的終值,如果是的話,則結(jié)束循環(huán),去執(zhí)行Next后面的語(yǔ)句。當(dāng)步長(zhǎng)為正時(shí),超過是指循環(huán)變量的值大于所設(shè)定的終值;當(dāng)步長(zhǎng)為負(fù)時(shí),超過是指循環(huán)變量的值小于所設(shè)定的終值。③如果循環(huán)變量的值不超過所設(shè)定的終值,則執(zhí)行For與Next語(yǔ)句之間的語(yǔ)句塊(循環(huán)體)。④循環(huán)體執(zhí)行完成后,循環(huán)變量自動(dòng)增加一個(gè)給定的步長(zhǎng),然后轉(zhuǎn)到步驟②,繼續(xù)循環(huán)。例如,計(jì)算1+2+3+4+……+100的和。程序代碼段如下:Dimi,sumAsInteger'聲明循環(huán)變量為整型數(shù)sum=0'求和變量在循環(huán)外清零Fori=1To100Step1sum=sum+i'循環(huán)累加NextI注意:由于步長(zhǎng)等于1,程序中的Step1可以省略。此程序的循環(huán)次數(shù)是Int((100-1)/1+1)=100。循環(huán)結(jié)束時(shí),循環(huán)變量i的值是101,它超過了終值100。思考:若要求1~100之間的奇數(shù)或偶數(shù)的和,上述程序應(yīng)如何修改?知識(shí)點(diǎn)2ForEach…Next循環(huán)使用ForEach…Next語(yǔ)句可以對(duì)一個(gè)集合(或數(shù)組)中的每個(gè)元素都執(zhí)行一遍循環(huán)體。集合是聚集在一起的一組對(duì)象的統(tǒng)稱,使用集合可以很容易地實(shí)現(xiàn)添加、刪除和計(jì)數(shù)等功能。每個(gè)窗體都有一個(gè)控件集合,代表該窗體上的所有控件。使用索引可獲取該集合某個(gè)控件的引用,并可使用ForEach…Next語(yǔ)句遍歷整個(gè)集合?!靖袷健浚?ForEach循環(huán)變量In集合或數(shù)組 循環(huán)體 Next

任務(wù)7編寫一個(gè)能判斷素?cái)?shù)并且能遍歷窗體控件的程序數(shù)學(xué)上把只能被1或自身整除的整數(shù)稱為素?cái)?shù)。編寫程序,輸入一個(gè)大于2的整數(shù),單擊“判斷素?cái)?shù)”按鈕,將在標(biāo)簽中顯示該數(shù)“是素?cái)?shù)”或“不是素?cái)?shù)”;單擊“遍歷控件”按鈕,將遍歷窗體上的所有控件,并將每個(gè)控件的背景色設(shè)為淡綠色。如圖2-18所示。任務(wù)7解析編寫兩個(gè)命令按鈕的Click事件過程代碼,如下所示:PublicClassfrmForCyclePrivateSubbtnForNext_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnForNext.ClickDimn,iAsInteger,flagAsBoolean

n=Val(txtNum.Text)flag=TrueFori=2ToMath.Sqrt(n)'終值也可以寫成n-1IfnModi=0Thenflag=FalseExitForEndIfNextiIfflagThen'如果flag為True則n是素?cái)?shù)lblDisp.Text=n&"是素?cái)?shù)"ElselblDisp.Text=n&"不是素?cái)?shù)"EndIfEndSub '下列代碼用于遍歷控件PrivateSubbtnForEach_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesbtnForEach.Click

DimthisConAsSystem.Windows.Forms.Control'定義一個(gè)控件類的對(duì)象變量

ForEachthisConInMe.ControlsthisCon.BackColor=Color.LightGreenNextEndSubEndClass知識(shí)點(diǎn)3Do…Loop循環(huán)Do…Loop循環(huán)又稱為條件循環(huán),可以根據(jù)循環(huán)條件的成立與否來決定是否執(zhí)行循環(huán)體。前測(cè)型循環(huán)結(jié)構(gòu)的語(yǔ)法格式為:【格式】: Do[While|Until條件] 語(yǔ)句塊1 [ExitDo] [語(yǔ)句塊2]Loop【功能】:在執(zhí)行循環(huán)體前先判斷是否滿足循環(huán)的條件,若滿足才進(jìn)入循環(huán)。前測(cè)型循環(huán)結(jié)構(gòu)的流程圖

后測(cè)型循環(huán)結(jié)構(gòu)的流程圖

知識(shí)點(diǎn)3Do…Loop循環(huán)后測(cè)型循環(huán)結(jié)構(gòu)的語(yǔ)法格式為:【格式】: Do 語(yǔ)句塊1 [ExitDo] [語(yǔ)句塊2]Loop[While|Until條件]【功能】:先進(jìn)入循環(huán)執(zhí)行循環(huán)體,然后判斷是否滿足循環(huán)的條件,若滿足繼續(xù)循環(huán)。知識(shí)點(diǎn)3Do…Loop循環(huán)說明:⑴前測(cè)型循環(huán)結(jié)構(gòu)為先判斷后執(zhí)行,循環(huán)體可能一次也不執(zhí)行;后測(cè)型循環(huán)結(jié)構(gòu)為先執(zhí)行后判斷,循環(huán)體至少要被執(zhí)行一次。⑵關(guān)鍵字While用于指明條件為True時(shí)執(zhí)行循環(huán)體一次;關(guān)鍵字Until用于指明條件為True時(shí)循環(huán)結(jié)束。⑶條件是條件表達(dá)式,其值可以是True或False。⑷如省略[While|Until條件]選項(xiàng)時(shí),表示循環(huán)是無條件循環(huán),此時(shí)循環(huán)體內(nèi)必須要有ExitDo子句跳出循環(huán),否則就成了死循環(huán),即循環(huán)會(huì)無終止地反復(fù)進(jìn)行下去。例如,編程計(jì)算0~2

溫馨提示

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