




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、2021年10月10日星期日Visual Basic.NET程序設(shè)計實驗實驗1 求平方根2021年10月10日星期日【功能描述】 從程序窗口中任意輸入一個正數(shù),程序計算出該數(shù)的算術(shù)平方根并在窗口中顯示出來。 2021年10月10日星期日【實驗內(nèi)容】 1窗體及Label、Button、TextBox控件的外觀設(shè)置。 2Dim語句的運用。 3Math對象及其Sqrt()方法的應(yīng)用。 4Try-Catch-End Try語句的運用。2021年10月10日星期日【實驗?zāi)康摹?1初步熟悉:VB.NET的開發(fā)環(huán)境;對象、屬性、方法、事件的概念;事件響應(yīng)的概念;程序、語句、變量、表達式的概念及格式;調(diào)試程序
2、的基本方法。 2掌握程序界面的設(shè)計的方法及通過程序界面進行信息輸入輸出的基本處理方法。2021年10月10日星期日【預(yù)備知識】 1面向?qū)ο蟪绦蛟O(shè)計2VB.NET程序3賦值運算和串聯(lián)運算4Dim語句5Math類6Try-Catch-End Try 語句7MessageBox類8創(chuàng)建及保存項目9設(shè)計器窗口與代碼編輯器窗口10添加事件過程代碼(事件處理程序)11程序調(diào)試 2021年10月10日星期日【實驗步驟】 1創(chuàng)建及保存項目 2“即時”窗口的使用 3窗體設(shè)計 4程序設(shè)計 5程序調(diào)試 6程序改進2021年10月10日星期日【問題與思考】 1進入代碼編輯器窗口都有哪些操作方法?如何在窗體設(shè)計窗口與代
3、碼編輯器窗口之間進行切換?2“即時”窗口有哪些功能?試試能否在程序被掛起時使用即時窗口檢查變量或?qū)傩缘闹?、計算表達式的值、修改變量或?qū)傩缘闹怠?試試將過程名Button1_Click改為其它名字(如abc),看看程序還能否正常運行,為什么?4程序運行后,分別輸入-2、1E2、1E200、1E9999,看看結(jié)果是否正確。如果不正確,程序如何繼續(xù)改進?5通過聯(lián)機幫助學(xué)習(xí)MsgBox()函數(shù)的用法,并比較該函數(shù)與MessageBox.Show()方法有何異同?2021年10月10日星期日面向?qū)ο蟪绦蛟O(shè)計概念 類具有同樣性質(zhì)和功能的事物所構(gòu)成的集合稱為類 對象具體的事物稱為對象 對象是通過類產(chǎn)生的,是
4、類的實例,類是對象的模板,它定義了對象的特征和行為規(guī)則。 屬性對象的特征稱為屬性 方法對象的功能稱為方法 事件接收外界的特定刺激就是對象的事件 2021年10月10日星期日格式 在程序代碼中調(diào)用對象的屬性和方法的一般格式為:對象.屬性對象.方法(參數(shù))2021年10月10日星期日示例1 設(shè)human代表人類,boy代表張三,則給張三穿41號鞋(ShoesSize)的程序代碼可寫成:Dim boy as = 張三boy.ShoesSize = 412021年10月10日星期日示例2 當張三聽到他的電話響(ring)的時候,大家要做什么?也就是說,張三的“電話響”這一事
5、件發(fā)生的時候,如何處理這一事件?處理這一事件的程序代碼就是事件過程代碼,稱為事件響應(yīng)。事件過程代碼由程序員編寫,如,可將事件響應(yīng)代碼寫成:大家停止說話,然后把他的電話扔出窗外。假如這段事件過程代碼的名稱為phone,則程序代碼可寫成:Private Sub phone (參數(shù)) Handles boy.ring “大家停止說話”的相關(guān)代碼 “把他的電話扔出窗外”的相關(guān)代碼End Sub2021年10月10日星期日程序由語句組成 通常,一條語句書寫成一行。如果一條語句太長,需要分多行書寫,則要在沒有結(jié)束的行末加上續(xù)行符:一個空格加一個下劃線字符。 例如,語句:Label2.Text = x &a
6、mp; 的平方根是: & vbCrLf & y可寫成:Label2.Text = x & 的平方根是: & _vbCrLf & y 一行也可書寫多條語句,例如:x = 10 : y = x + 12 : z = x / 22021年10月10日星期日注釋語句 為了增強程序的可讀性,提高程序的可維護性,有良好習(xí)慣的程序員會為程序加上必要的文字說明,即給程序加上恰當?shù)淖⑨屨Z句。注釋語句用Rem或單引號開頭,例如:獲取用戶的輸入數(shù)據(jù)x = TextBox1.Texty = Math.Sqrt(x) 開平方根2021年10月10日星期日賦值運算和串聯(lián)運算 賦值運
7、算符。給變量或?qū)傩再x值。 串聯(lián)運算符。將多個字符串聯(lián)接為一個字符串。 例如:x = 10y = x + 12Label2.Text = x & + & y & =? 上面程序的運行結(jié)果是:變量x的值為10,變量y的值為22,而標簽控件Label2顯示的文字內(nèi)容為“10+22=?”。2021年10月10日星期日Dim語句 程序代碼中要使用的變量需要事先聲明。Dim語句可為一個或多個變量聲明并分配存儲空間。例如: 聲明變量a用于存放整數(shù)值 Dim a As Integer 聲明變量x用于存放長整數(shù)值,變量y用于存放字符串值 Dim x As Long, y As Strin
8、g 聲明變量m和n用于存放雙精度數(shù)值,變量d1和d2用于存放日期值 Dim m, n As Double, d1, d2 As Date 聲明變量d用于存放16位整數(shù)值,并初始化變量的值為100 變量h用于存放字符串值,并初始化變量的值為Hello Dim d As Int16 = 100, h As String = Hello 聲明變量mButton是一個新的按鈕對象 Dim mButton As New System.Windows.Forms.Button2021年10月10日星期日Math類 Math類為三角函數(shù)、對數(shù)函數(shù)和其他通用數(shù)學(xué)函數(shù)提供常數(shù)和靜態(tài)方法,該類的成員可直接進行訪問
9、。例如,要將17度的正弦函數(shù)值賦給變量x,2的算術(shù)平方根賦給變量y,則代碼為:x = Math.Sin(17 * Math.PI / 180)y = Math.Sqrt(2)2021年10月10日星期日Try-Catch-End Try 語句 用于處理給定代碼段中可能出現(xiàn)的某些或所有錯誤,而同時代碼仍保持運行。該語句的一般格式為:Try語句1Catch ex As Exception語句2End Try其中,“語句1”和“語句2”可以是任意多條語句。Try語句的功能是:如果“語句1”能正常運行,則運行“語句1”后跳到End Try后面的語句去繼續(xù)運行;如果在運行“語句1”時出現(xiàn)錯誤,則運行“語
10、句2”。2021年10月10日星期日MessageBox類 MessageBox類用于顯示可包含文本、按鈕和符號(通知并指示用戶)的消息框,并返回用戶的選擇結(jié)果(DialogResult)。通常使用Show方法來實現(xiàn)顯示消息框的功能。常用的調(diào)用格式如下:MessageBox.Show(text, caption, buttons, icon, defaultButton)其中:text 要在消息框中顯示的文本caption 要在消息框的標題欄中顯示的文本buttons 指定在消息框中顯示哪些按鈕icon 指定在消息框中顯示哪個圖標defaultButton 指定消息框中的默認按鈕2021年10
11、月10日星期日MessageBox示例 MessageBox.Show (要退出嗎?, 確認, MessageBoxButtons.YesNo,MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)2021年10月10日星期日創(chuàng)建項目 啟動Microsoft Visual Studio 2005,單擊菜單“文件”“新建項目”,打開“新建項目”對話框,在“項目類型”中選擇Visual Basic,在“模板”列表中選擇“Windows 應(yīng)用程序”,在“名稱”框中輸入項目的名稱,如輸入:01_求平方根,然后單擊“確定”按鈕創(chuàng)建項目,如圖1-
12、2所示。若項目創(chuàng)建成功,則系統(tǒng)自動為項目添加一個名為Form1的窗體(Form1.vb)。 2021年10月10日星期日保存項目單擊菜單“文件”“全部保存”,打開“保存項目”對話框,在“位置”框中輸入項目的保存位置,或單擊“瀏覽”按鈕選擇項目的保存位置。對于較為簡單的項目,沒有必要單獨為解決方案創(chuàng)建目錄,因此不選擇“創(chuàng)建解決方案的目錄”選項。最后單擊“保存”按鈕保存項目,如圖1-3所示。 2021年10月10日星期日設(shè)計器窗口與代碼編輯器窗口 VB.NET程序的每個功能窗口稱為窗體。如果要查看某一窗體(如Form1.vb)的設(shè)計界面或相應(yīng)代碼,則可在“解決方案資源管理器”窗口中,右擊窗體For
13、m1.vb,在彈出菜單中選擇“查看代碼”或“查看設(shè)計器”,如圖1-4所示。也可以在“解決方案資源管理器”窗口單擊相應(yīng)的工具欄按鈕,進入Form1.vb的代碼編輯器窗口或Form1.vb的設(shè)計器窗口。2021年10月10日星期日添加事件過程代碼 例如,給窗體Form1.vb中按鈕Button1的Click事件添加事件過程代碼。操作方法如下:進入Form1.vb的代碼編輯器窗口,在“類名”列表框中選擇Button1,在“方法名稱”列表框中選擇Click,如圖1-5所示。這時,系統(tǒng)自動添加下面兩條語句:Private Sub Button1_Click(ByVal sender As System.
14、Object, ByVal e As System.EventArgs) Handles Button1.ClickEnd Sub其中,Button1_Click為過程名稱,sender及e為參數(shù),這三個名字可根據(jù)需要進行修改。這對語句的功能是:聲明用過程Button1_Click來處理Button1.Click事件。在這對語句中間輸入相應(yīng)代碼來響應(yīng)按鈕Button1的Click事件。2021年10月10日星期日在代碼編輯器窗口中選擇對象的事件 2021年10月10日星期日程序調(diào)試啟動調(diào)試(F5) 在代碼編輯器編寫程序時,系統(tǒng)自動檢查代碼是否有效,如果有語法錯誤或拼寫錯誤,系統(tǒng)在錯誤的代碼下面
15、加下劃線提示。當鼠標移到下劃線上方時,系統(tǒng)顯示出該錯誤的有關(guān)錯誤信息,如圖1-6所示。必須排除所有的語法錯誤和拼寫錯誤,才能啟動調(diào)試程序。2021年10月10日星期日程序調(diào)試逐語句運行(F8) 逐語句運行程序,就是系統(tǒng)在執(zhí)行每一個語句前先暫停(稱為掛起),由程序員確認。在代碼編輯器窗口中,待執(zhí)行的語句加黃色底紋,且窗口左側(cè)有黃色箭頭指示,如圖1-7所示。當鼠標移到變量或?qū)傩陨戏綍r,系統(tǒng)會顯示變量或?qū)傩缘闹?。程序員可根據(jù)需要進行各種操作,常用的操作有:修改代碼;檢查和修改變量或?qū)傩缘闹?;拖動箭頭位置;按F8執(zhí)行當前語句,并暫停在下一條語句;按F5運行當前語句及后面的所有語句;右擊某語句,并從快捷
16、菜單中選擇“運行到光標處”;按Ctrl+Alt+Break停止調(diào)試。2021年10月10日星期日進入調(diào)試狀態(tài)的代碼編輯器窗 2021年10月10日星期日設(shè)置斷點 設(shè)置斷點也是程序調(diào)試的常用方法。在需要跟蹤的語句設(shè)置斷點,當程序運行到被設(shè)置為斷點的語句時,系統(tǒng)暫停執(zhí)行該語句(稱為中斷),進入調(diào)試狀態(tài)。這時,程序員可按逐語句運行程序的操作方法進行操作。設(shè)置或刪除斷點的操作方法是:單擊代碼編輯器窗口左側(cè),或?qū)⒐鈽硕ㄎ坏较鄳?yīng)的語句后按F9。當某一語句被設(shè)置為斷點時,該語句加褐色底紋,且代碼編輯器窗口左側(cè)有褐色圓點指示,如圖1-8所示。2021年10月10日星期日調(diào)試狀態(tài)修改變量或?qū)傩缘闹?當按程序逐語
17、句運行,或程序運行至斷點,或程序運行出現(xiàn)錯誤時,程序被掛起。這時,程序員可在代碼編輯器中直接修改代碼,還可以修改變量或?qū)傩缘闹怠?程序處于掛起狀態(tài)時,修改變量或?qū)傩缘闹档牟僮鞣椒ǎ?將鼠標懸停在表示變量或?qū)傩缘拇a上,則系統(tǒng)會在鼠標右下方顯示該變量或?qū)傩缘拿Q及其當前的值。單擊鼠標右下方顯示的信息,則出現(xiàn)插入點,輸入新的值后按Enter鍵完成修改。2021年10月10日星期日創(chuàng)建及保存項目 (1)創(chuàng)建項目。啟動Microsoft Visual Studio 2005,單擊菜單“文件”“新建項目”,打開“新建項目”對話框,在“項目類型”中選擇Visual Basic,在“模板”列表中選擇“Win
18、dows 應(yīng)用程序”,在“名稱”框中輸入項目的名稱,輸入:01_求平方根,然后單擊“確定”按鈕創(chuàng)建項目,如圖1-2所示。若項目創(chuàng)建成功,則系統(tǒng)自動為項目添加一個名為Form1的窗體(Form1.vb)。(2)保存項目。單擊菜單“文件”“全部保存”,打開“保存項目”對話框,在“位置”框中輸入項目的保存位置,或單擊“瀏覽”按鈕選擇項目的保存位置。對于較為簡單的項目,沒有必要單獨為解決方案創(chuàng)建目錄,因此不選擇“創(chuàng)建解決方案的目錄”選項。最后單擊“保存”按鈕保存項目,如圖1-3所示。2021年10月10日星期日“即時”窗口的使用 按Ctrl+G或單擊菜單“調(diào)試”“窗口”“即時”,進入“即時”窗口,分別
19、輸入下面命令,并觀察顯示結(jié)果。? 3/2a=9? a*4-3? a & 5= & a*5? Math.PI? Math.Sqrt(3)? Math.Sin(30*Math.PI/180)? MessageBox.Show (你好!)? MessageBox.Show (要退出嗎?, 確認, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)2021年10月10日星期日窗體設(shè)計 當用戶在文本框TextBox1中輸入數(shù)字然后單擊(Click)計算按鈕Button1時,程
20、序計算出所輸入數(shù)的算術(shù)平方根并用標簽Label2顯示計算結(jié)果。2021年10月10日星期日“求平方根”窗體及控件的屬性設(shè)置控件控件屬性屬性設(shè)置值設(shè)置值控件控件屬性屬性設(shè)置值設(shè)置值FormNameForm1LabelNameLabel2FormBorderStyleFixedSingleText(空)(空)MaximizeBoxFlaseTextBoxNameTextBox1Text求一個數(shù)的平方根求一個數(shù)的平方根Text(空)(空)LabelNameLabel1ButtonNameButton1Text輸入一個正數(shù):輸入一個正數(shù):Text計算計算2021年10月10日星期日程序設(shè)計 給按鈕Bu
21、tton1的Click事件添加事件過程代碼。用變量x來獲取用戶的輸入,然后求出x的算術(shù)平方根并保存在變量y中,最后用Label2顯示計算結(jié)果,如圖1-10所示。2021年10月10日星期日程序調(diào)試 (1)按F5以“啟動調(diào)試”模式運行程序,檢查程序窗口是否不能改變大小,不能最大化,可以最小化。(2)分別輸入不同的數(shù)值,并單擊計算按鈕,觀察程序的顯示結(jié)果是否正確。(3)關(guān)閉程序窗口,按F8以“逐語句”模式運行程序,輸入數(shù)值并單擊計算按鈕,觀察程序的運行情況。在每一次按F8時,分別將鼠標懸停于x、y、TextBox1.Text、Label2.Text上,觀察這些值的變化。(4)關(guān)閉程序窗口,在第5行
22、設(shè)置斷點,如圖1-8所示。按F5運行程序,輸入數(shù)值2并單擊計算按鈕,這時程序?qū)⒃诘?行掛起。將TextBox1.Text的值改為3,然后按F5繼續(xù)運行程序,觀察程序運行結(jié)果以及程序窗口中文本框內(nèi)容的變化。(5)關(guān)閉程序窗口,清除所有斷點,按F5重新運行程序,輸入一串字母并單擊計算按鈕,觀察程序的運行情況。2021年10月10日星期日程序改進運行程序時,如果用戶不輸入數(shù)值,而是輸入字符串,則程序運行出現(xiàn)錯誤。一種常用的改進方法是,使用Try-Catch-End Try語句測試可能出現(xiàn)錯誤的代碼段。如果用戶輸入的內(nèi)容不能開平方根的話,就顯示錯誤消息框,提示用戶輸入數(shù)值。其它的改進包括:將窗體For
23、m1.vb的AcceptButton屬性設(shè)置為Button1,即將窗體Form1的默認接收按鈕設(shè)置為Button1,則程序運行時,輸入數(shù)值后按Enter鍵即可計算結(jié)果。將計算結(jié)果分兩行顯示。在字符串中間連接VB常數(shù)vbCrLf(回車換行符),則字符串可分多行顯示。計算后清除文本框TextBox1中的內(nèi)容。單擊計算按鈕Button1計算后,插入點(焦點)移回到文本框TextBox1中。2021年10月10日星期日改進后的求算術(shù)平方根程序代碼 2021年10月10日星期日Visual Basic.NET程序設(shè)計實驗實驗2 加法練習(xí)2021年10月10日星期日【功能描述】 由計算機隨機產(chǎn)生兩位正整數(shù)
24、的加法練習(xí)題,給用戶進行加法運算練習(xí),并統(tǒng)計練習(xí)結(jié)果。 2021年10月10日星期日【實驗內(nèi)容】 1If-Else-End If語句的運用。 2Randomize語句及Rnd()函數(shù)的應(yīng)用。 3Color結(jié)構(gòu)及其應(yīng)用。 4自定義過程及其調(diào)用。2021年10月10日星期日【實驗?zāi)康摹?1掌握比較、邏輯運算符及其表達式的運算。 2掌握If-Else-End If語句的格式、功能及運用。 3掌握隨機數(shù)的產(chǎn)生及其使用方法。 4掌握利用變量進行計數(shù)的方法。 5熟悉變量的范圍及其生存期。2021年10月10日星期日【預(yù)備知識】 1比較運算和邏輯運算 2If-Else-End If 語句 3Rnd()函數(shù)
25、4過程的聲明與調(diào)用 5變量的范圍與生存期 6Color結(jié)構(gòu)2021年10月10日星期日【實驗步驟】 1創(chuàng)建及保存項目 2窗體設(shè)計 3程序設(shè)計 4程序調(diào)試 5程序改進 2021年10月10日星期日【問題與思考】 1Rnd()函數(shù)的函數(shù)值是一個小數(shù),因此表達式Rnd() * 89 + 10也存在小數(shù),為什么在標簽Label1上顯示的題目沒有小數(shù)?如果要顯式地將Rnd() * 89 + 10轉(zhuǎn)換為整數(shù)再賦值給變量x,有哪些方法?2通過聯(lián)機幫助學(xué)習(xí)Random類的功能及使用方法,比較Random類與Rnd()函數(shù)的異同。3試按下面要求改寫程序:當用戶在做一道題目時,如果回答錯誤,則不重新出題,直到答對
26、了才重新出題。統(tǒng)計信息改為:共做了幾道題,答了多少次。4試按下面要求改寫程序:當用戶在做一道題目時,如果回答錯誤,則不重新出題,但最多給3次機會,3次都答錯才能算答錯一道題。如果答對,或3次都答錯,則重新出題。統(tǒng)計信息改為:共做了幾道題,答錯了幾道題。5試將圖2-1中的程序第13行“y=y+x”改為“y=y+Me.x”,看看程序的運行結(jié)果有什么變化。這說明Me.x的Me代表什么?x是什么變量?2021年10月10日星期日比較運算和邏輯運算 常用的比較運算符包括:=、=、Like、Is、IsNot等。如,若x為非負數(shù),則VB表達式為:x=0。 常用的邏輯運算符包括:And、Or、Not、Xor等
27、。如,若x為區(qū)間(12,36)內(nèi)的數(shù),則VB表達式為:x12 And x 15 Theny = 100Elsey = 200End If2021年10月10日星期日Rnd()函數(shù) 使用Rnd()函數(shù)可產(chǎn)生一個0到1之間的隨機數(shù)。如果要隨機產(chǎn)生區(qū)間a,b上的整數(shù),則可使用這樣的表達式:Int(Rnd() * (b - a + 1) + a)。 由于每一次后續(xù)調(diào)用Rnd()函數(shù)都用序列中前一個生成的數(shù)作為下一個數(shù)的種子,因此對于任何給定的初始種子都會生成相同的數(shù)字序列。 為了解決這一問題,通常在調(diào)用Rnd()之前,先使用無參數(shù)的Randomize語句初始化隨機數(shù)生成器,使生成器具有一個基于系統(tǒng)計時
28、器的種子。2021年10月10日星期日過程的聲明與調(diào)用 一個過程通常是完成特定功能的一段代碼,常見的過程有Sub過程、Function過程和Property過程等。 一般地,如果需要在程序的不同位置執(zhí)行同樣的任務(wù),則可以將任務(wù)當作過程編寫一次,然后就可以從程序的不同位置調(diào)用該任務(wù)。這是避免代碼重復(fù)的一種有效方法。 若不要過程返回值,則可使用Sub過程。若是需要過程返回值,則必須使用Function過程。Property過程用于定義類、結(jié)構(gòu)和模塊中的屬性。2021年10月10日星期日事件過程 聲明Sub事件過程的一般語法是:modifiers Sub subname (parameterlist
29、) Handles eventlist語句sEnd Sub 2021年10月10日星期日通用過程 聲明Sub通用過程的一般語法是:modifiers Sub subname (parameterlist)語句sEnd Sub 2021年10月10日星期日過程語法說明 modifiers 指定訪問級別。常用的有Public、Friend和Private,默認為Friend。如果指定為Public,則該過程不限定級別,項目中的任意位置均可調(diào)用。如果指定為Private,則只有包含該過程的類(或模塊)中可以調(diào)用。subname 過程名稱。過程名稱可以是任意有效的名字。為了程序更易于閱讀,通常以見名知
30、義為準則,如過程Button1_Click用于響應(yīng)Button1.Click事件。值得注意的是,過程名稱本身與所響應(yīng)的事件沒有任何關(guān)系,比如說,可以用過程Button1_Click來響應(yīng)Me.Load事件和Button2.Click事件,或者用過程bc來響應(yīng)Button1.Click事件。parameterlist 參數(shù)列表。如果是事件過程,則參數(shù)必須符合所響應(yīng)事件的參數(shù)要求,通常為系統(tǒng)自動產(chǎn)生,無需修改。通用過程的參數(shù)可根據(jù)需要進行定義。參數(shù)不是必須的。eventlist 事件列表。一個事件過程可用于響應(yīng)多個事件。2021年10月10日星期日過程聲明示例 用過程Btn_Click來響應(yīng)按鈕B
31、utton1、Button2及標簽Label2的Click事件,則事件過程可聲明為:Private Sub Btn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Label2.ClickEnd Sub2021年10月10日星期日Function過程的聲明 Function過程也稱為函數(shù)過程,常用于自定義一個函數(shù),通過參數(shù)傳遞自變量,通過Return語句或函數(shù)名返回函數(shù)值。聲明Function過程的一般語法是:modifiers Function f
32、unctionname (parameterlist) As returntype語句sEnd Sub 其中,functionname為函數(shù)名,returntype為返回值的類型。 可以通過Return語句返回函數(shù)值。 2021年10月10日星期日函數(shù)過程示例1 設(shè)函數(shù)f(x)=3x+4,現(xiàn)定義函數(shù)過程myf用于求f(x)的值: Function myf(ByVal x As Double) As Double Return 3 * x + 4 End Function 在需要求函數(shù)值的地方直接調(diào)用myf函數(shù)即可。如計算并顯示x=1.5時的函數(shù)值,則可使用下面語句:MsgBox(myf(1.5
33、)2021年10月10日星期日函數(shù)過程示例2有一電費收費辦法規(guī)定,用電量不超過60度時0.6元/度,若超過,則超過部分0.98元/度?,F(xiàn)定義函數(shù)過程dianfei用于計算電費,代碼如下: Function dianfei(ByVal ydl As Integer) As Single If ydl 60 Then dianfei = 36 + (ydl - 60) * 0.98 Else dianfei = ydl * 0.6 End If End Function2021年10月10日星期日從過程中返回 利用Return語句,控制權(quán)會立即返回給調(diào)用代碼。Return語句后面的語句不會運行。可
34、以在同一個過程中具有多個Return語句。 利用Exit Sub或Exit Function語句,控制權(quán)會立即返回給調(diào)用代碼。Exit語句后面的語句不會運行。可以在同一個過程中具有多個Exit語句,而且可以在同一個過程中混用Return和Exit語句。 如果過程沒有Return或Exit語句,則過程運行至End Sub或End Function語句結(jié)束,然后將控制權(quán)返回給調(diào)用代碼。在一個過程中只能具有一個End Sub或End Function語句。2021年10月10日星期日過程的調(diào)用調(diào)用過程的格式為:Call procedureName (argumentList)其中,procedure
35、Name為過程名,argumentList為參數(shù)列表。作為語句時,Call可以寫,也可以省略不寫。作為函數(shù)參加表達式運算時,不能加Call。如果作為語句調(diào)用一個函數(shù)過程,返回值將被忽略。例如:gen()調(diào)用過程gen,沒有參數(shù)Call book(D12) 調(diào)用過程book,并傳送參數(shù)值D12y = dianfei(x) 調(diào)用過程dianfei,x值為參數(shù),返回值賦給y2021年10月10日星期日變量的范圍與生存期 變量的“范圍”是指不必限定變量名便可以引用變量的所有代碼的集合。變量的范圍由聲明變量的語句的位置決定,范圍級別有:塊范圍、過程范圍、模塊范圍和命名空間范圍。 變量的“生存期”是指變量
36、可供使用的時間段。通常,變量存在的時間與聲明它的元素(如過程或類)存在的時間相同。2021年10月10日星期日變量范圍示例1 下面代碼中的變量b的范圍為“塊范圍”,只在聲明它的If塊內(nèi)有效。當程序執(zhí)行至語句a=a+b時,由于b的生存期已結(jié)束,因而程序會出現(xiàn)“名稱b未聲明”的錯誤。 Dim a As Int16 = 20 If a 10 Then Dim b As Int16 b = 200 End If a = a + b2021年10月10日星期日變量范圍示例2在如圖2-1所示的代碼中,第2行聲明的變量x、y為成員變量,可以在過程Button1_Click和過程proc中使用。第4行及第11
37、行聲明的變量z、x為局部變量,只在過程內(nèi)有效。運行該程序,單擊按鈕Button1,則消息框?qū)@示“x=100,y=900,z=1000”信息。2021年10月10日星期日Color結(jié)構(gòu) 結(jié)構(gòu)和類兩個實體支持的大多數(shù)功能都是相同的,對于初學(xué)者來說,可以暫時將結(jié)構(gòu)理解為類。 Color結(jié)構(gòu)用于表示顏色??梢允褂肅olor結(jié)構(gòu)的屬性來表示一種顏色,如,Color.Red表示紅色,Color.Blue表示藍色。 也可以使用Color結(jié)構(gòu)的方法來表示一種顏色。如: Color.FromArgb(255, 0, 0) 表示紅色。 Color.FromArgb(0, 0, 255) 表示藍色。 2021年
38、10月10日星期日創(chuàng)建及保存項目 (1)創(chuàng)建項目。啟動Microsoft Visual Studio 2005,單擊菜單“文件”“新建項目”,打開“新建項目”對話框,在“項目類型”中選擇Visual Basic,在“模板”列表中選擇“Windows 應(yīng)用程序”,在“名稱”框中輸入項目的名稱,輸入:02_加法練習(xí),然后單擊“確定”按鈕創(chuàng)建項目,如圖1-2所示。若項目創(chuàng)建成功,則系統(tǒng)自動為項目添加一個名為Form1的窗體(Form1.vb)。(2)保存項目。單擊菜單“文件”“全部保存”,打開“保存項目”對話框,在“位置”框中輸入項目的保存位置,或單擊“瀏覽”按鈕選擇項目的保存位置。對于較為簡單的項
39、目,沒有必要單獨為解決方案創(chuàng)建目錄,因此不選擇“創(chuàng)建解決方案的目錄”選項。最后單擊“保存”按鈕保存項目,如圖1-3所示。2021年10月10日星期日窗體設(shè)計 程序運行后,在標簽Label1上顯示題目,當用戶在文本框TextBox1中輸入答案然后單擊確定按鈕Button1時,程序判斷所輸入的答案是否正確,并在標簽Label2顯示判斷結(jié)果。同時,統(tǒng)計答題數(shù)及正確數(shù),并在標簽Label3顯示統(tǒng)計結(jié)果。2021年10月10日星期日“加法練習(xí)”窗體及控件的屬性設(shè)置控件控件屬性屬性設(shè)置值設(shè)置值控件控件屬性屬性設(shè)置值設(shè)置值FormNameForm1LabelNameLabel2FormBorderStyle
40、FixedSingleText(空)(空)Font宋體宋體, 12ptLabelNameLabel3MaximizeBoxFlaseText(空)(空)Text加法練習(xí)加法練習(xí)TextBoxNameTextBox1Text(空)(空)LabelNameLabel1ButtonNameButton1Text(空)(空)Text確定確定(&Y)2021年10月10日星期日程序設(shè)計定義過程gen 定義一個過程gen用于生成并顯示題目。在窗體剛顯示時,需要顯示一道題目,即需要生成并顯示題目。在用戶單擊確定按鈕后又要顯示另一道題目,即需要重新生成并顯示題目。因此,為了避免代碼重復(fù),將生成并顯示題
41、目定義為一個過程gen,這樣,在需要新題目的位置調(diào)用該過程即可。隨機產(chǎn)生兩個兩位整數(shù),并保存在變量x、y中,然后將x、y串聯(lián)成題目并在標簽Label1上顯示出來。參考代碼如下: Private Sub gen() x = Rnd() * 89 + 10 y = Rnd() * 89 + 10 Label1.Text = x & + & y & = End Sub2021年10月10日星期日程序設(shè)計聲明成員變量 當用戶單擊確定按鈕時,需要判斷用戶輸入的答案是否等于x+y。也就是說,在事件過程Button1_Click中需要使用過程gen中的變量x、y的值,因此,變量x、y
42、需要聲明為成員變量。另外,因為需要統(tǒng)計用戶的練習(xí)結(jié)果,所以設(shè)置兩個變量ty、tn來統(tǒng)計用戶答對和答錯的題數(shù)。由于每單擊一次確定按鈕,過程Button1_Click就會運行一次,而過程運行結(jié)束時局部變量就不存在,因此,需要將變量ty、tn聲明為成員變量。在Public Class Form1語句下面一行加入聲明語句:Dim x, y, ty, tn As Integer2021年10月10日星期日程序設(shè)計Button1的Click事件 當用戶單擊確定按鈕Button1時,用變量k來獲取用戶輸入的答案,然后判斷k是否等于x+y。若是,則顯示回答正確信息,且答對題數(shù)加1;若否,則顯示回答錯誤信息,且
43、答錯題數(shù)加1 。Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim k As Integer k = TextBox1.Text If x + y = k Then Label2.Text = 答對了! ty = ty + 1 Else Label2.Text = 答錯了! tn = tn + 1 End If Label3.Text = 共答了 & ty + tn & 題, & ty & 題
44、答對。 gen()End Sub2021年10月10日星期日程序設(shè)計Form1的Load事件 當窗體加載時,初始化隨機數(shù)序列,然后調(diào)用過程gen生成題目。代碼如下:Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Randomize() gen()End Sub2021年10月10日星期日程序調(diào)試 (1)按F5運行程序,檢查程序窗口是否不能改變大小,不能最大化,可以最小化。(2)檢查程序窗口是否有顯示題目。(3)關(guān)閉程序窗口并重新運行,檢查題目是否有變化。(4)
45、輸入正確答案然后單擊確定按鈕,檢查提示信息及統(tǒng)計信息是否與預(yù)期的一致,同時檢查是否有重新生成題目。(5)輸入錯誤答案然后單擊確定按鈕,檢查提示信息及統(tǒng)計信息是否與預(yù)期的一致,同時檢查是否有重新生成題目。(6)輸入一串字母并單擊計算按鈕,觀察程序的運行情況。2021年10月10日星期日程序改進運行程序時,如果用戶不輸入數(shù)值,而是輸入字符串,則程序運行出現(xiàn)錯誤。請參考實驗1,使用Try-Catch-End Try語句改進程序代碼。其它需要改進的地方包括:將窗體Form1的默認接收按鈕設(shè)置為Button1。由于單擊按鈕Button1后原來的題目被新的題目所代替,用戶看不到剛答的那道題。因此,可將提示
46、信息改為類似如“37+28=80 答錯了”,使用戶可以確定剛做的那道題的對錯。當輸入錯誤、答對或答錯時,提示信息使用不同的顏色顯示。這可通過修改標簽Label2的前景顏色(ForeColor)來實現(xiàn),如下面語句可將提示信息的顏色變?yōu)榧t色。Label2.ForeColor = Color.Red單擊計算按鈕Button1計算后,清除文本框TextBox1中的內(nèi)容,并將焦點移回到文本框TextBox1中。2021年10月10日星期日Visual Basic.NET程序設(shè)計實驗實驗3 猜數(shù)游戲 2021年10月10日星期日【功能描述】 由計算機隨機產(chǎn)生一個1,100間的整數(shù),給用戶猜測,每次給出猜大
47、了還是猜小了的提示。最多猜5次,5次均猜錯即為輸。 2021年10月10日星期日【實驗內(nèi)容】 1For-Next語句及If-Else-End If語句的應(yīng)用。 2ListBox控件的應(yīng)用 3Int()、Val()、Str()函數(shù)的運用。 4MessageBox.Show()方法的運用。 5Me關(guān)鍵字的運用。2021年10月10日星期日【實驗?zāi)康摹?1掌握For-Next語句的格式、功能及運用。 2熟悉語句結(jié)構(gòu)的嵌套及靈活應(yīng)用。 3掌握通過代碼改變窗體及其控件的屬性的方法。 4熟悉人機交互的多種方法。2021年10月10日星期日【預(yù)備知識】 1賦值運算 2相關(guān)函數(shù) 3For-Next語句 4Me
48、ssageBox.Show()方法 5Me2021年10月10日星期日【實驗步驟】 1創(chuàng)建及保存項目 2“即時”窗口的使用 3窗體設(shè)計 4程序設(shè)計 5程序調(diào)試 6程序改進2021年10月10日星期日【問題與思考】 1在“即時”窗口輸入一些命令,比較函數(shù)Str()和CStr()的異同。2通過聯(lián)機幫助學(xué)習(xí)Format()函數(shù)的使用方法。3試按下面要求改寫程序:不限制用戶的猜數(shù)次數(shù),改為以成績來評價游戲結(jié)果。每局(猜一個數(shù))給初始分為100分,每猜錯一次扣10分,直至猜對為止。然后重新產(chǎn)生一個數(shù),進入下一局。每猜一次都在窗體上顯示出累計得分。4試按下面要求改寫程序:當用戶挑戰(zhàn)成功(5次之內(nèi)猜對)或挑
49、戰(zhàn)失?。?次都猜錯)時,不用消息框顯示游戲結(jié)果,改為用圖片顯示游戲結(jié)果。用一幅勝利形象的圖片表示挑戰(zhàn)成功,用一幅失敗形象的圖片表示挑戰(zhàn)失敗。5過程zoom中的For語句使用參數(shù)d作為步長值,如果有代碼使用zoom(0)來調(diào)用該過程,會出現(xiàn)什么不良后果?如何改進?2021年10月10日星期日賦值運算賦值運算符除了實驗1介紹的“”外,還有 += 、-= 、*= 、/= 、= 、= 、&= 等,這些運算符的運算功能是:將一個表達式與一個變量或?qū)傩赃M行運算,并將結(jié)果賦給該變量或?qū)傩?。如?= 將一個數(shù)值表達式的值與一個數(shù)值變量或?qū)傩缘闹迪嗉?,并將結(jié)果賦給該變量或?qū)傩浴?amp;= 連接Stri
50、ng表達式與String變量或?qū)傩?,并將結(jié)果賦給該變量或?qū)傩浴_\算符“+=”除了作數(shù)值運算外,也可以作字符串(String)連接運算,但通常使用“&=”作為String連接運算符。 2021年10月10日星期日賦值運算示例 下面代碼運行后,變量x的值為20,而變量y的值為128。 Dim x As Int16 = 12 Dim y As String = 12 x += 8 y &= 82021年10月10日星期日Int()函數(shù) 該函數(shù)用于進行取整運算。Int(n)的返回值為不大于n的最大整數(shù)。 例如: Int(3.89) 返回值:3 Int(-3.2)返回值:-4。2021年
51、10月10日星期日Val()函數(shù)該函數(shù)用于將字符串轉(zhuǎn)換為數(shù)值。轉(zhuǎn)換時,如果第1個字符不是數(shù)字字符,則返回數(shù)值0。例如:Val(23KM)返回值:23Val(“APPLE”)返回值:0。Val()函數(shù)在轉(zhuǎn)換時能識別E、小數(shù)點、&O前綴(八進制)、&H前綴(十六進制),并且會排除空格、制表符和換行符。例如:Val(2.6E3KM)返回值:2600Val(&O14)返回值:12Val(&H1F)返回值:31Val( 1615 198th Street N.E.) 返回值:16151982021年10月10日星期日Str()函數(shù) 與Val()函數(shù)對應(yīng)的函數(shù)Str(),可
52、用于將數(shù)值轉(zhuǎn)換為字符串。如果參數(shù)是正數(shù),轉(zhuǎn)換結(jié)果保留前導(dǎo)空格。例如: Str(345) 返回值: 345 Str(-3.14)返回值:-3.14。2021年10月10日星期日For-Next語句 常用的For語句格式為:For 循環(huán)變量 = 初值 To 終值 Step 步長值 語句sNext 循環(huán)變量 執(zhí)行For語句時,初值賦給循環(huán)變量,并判斷循環(huán)變量的值是否超過終值。如果超過,則執(zhí)行Next后面的語句,否則執(zhí)行“語句s”。執(zhí)行Next語句時,循環(huán)變量加上步長值,然后判斷循環(huán)變量的值是否超過終值。如果超過,則執(zhí)行Next后面的語句,否則執(zhí)行“語句s”。 2021年10月10日星期日 For-N
53、ext語句的運行過程 Yes循環(huán)變量 = 初值語句sNoNextFor循環(huán)變量 += 步長循環(huán)變量值超過終值?2021年10月10日星期日For 語句示例1 下面代碼用于求100以內(nèi)奇數(shù)的和,結(jié)果賦給變量s。 Dim i, s As Integer s = 0 For i = 1 To 100 Step 2 s += i Next i2021年10月10日星期日For 語句示例2 如果循環(huán)變量在For語句之前未聲明,則可在For語句中聲明。下面代碼產(chǎn)生10個用Hello連接的字符串,結(jié)果賦給變量h。 Dim h As String For i As Integer = 1 To 10 Step
54、 1 h &= Hello Next i2021年10月10日星期日For 語句示例3 Next語句后面的循環(huán)變量可省略。步長為1時,“Step 1”也可省略。下面代碼與示例2的代碼運行結(jié)果相同。 Dim h As String For i As Integer = 1 To 10 h &= Hello Next2021年10月10日星期日For 語句示例4 示例3代碼中,因為循環(huán)體內(nèi)的語句沒有使用循環(huán)變量i,因此循環(huán)的初值、終值及步長值可以任意設(shè)置,只要保證循環(huán)的次數(shù)為10次,程序的運行結(jié)果就保持不變。如將示例3代碼改為下面代碼,程序運行結(jié)果相同。 Dim h As Stri
55、ng For i As Integer = 20 To 1 Step -2 h &= Hello Next2021年10月10日星期日For Each 語句 For語句的另一常用格式為:For Each 元素 In 集合語句sNext 元素 該語句的功能是對集合中的每一元素都運行“語句s”。2021年10月10日星期日例3-1 遍歷集合中的元素 Me.Controls為當前窗體中所有控件的集合。下面代碼對當前窗體中的所有控件的文字顏色設(shè)置為紅色。 For Each t As Control In Me.Controls t.ForeColor = Color.Red Next2021年
56、10月10日星期日例3-2 隨機數(shù)程序在循環(huán)體內(nèi),如果某條件成立時需要退出For循環(huán),則可采用Exit For語句。隨機產(chǎn)生20以內(nèi)的正整數(shù),如果產(chǎn)生的數(shù)剛好是12,則不再繼續(xù)產(chǎn)生,最多產(chǎn)生10個數(shù)。 Dim k As Integer, s As String For i As Integer = 1 To 10 k = Int(Rnd() * 20 + 1) s &= k & , If k = 12 Then Exit For End If Next MsgBox(s)2021年10月10日星期日MessageBox.Show()方法 在實驗1中曾使用MessageBox.S
57、how()方法用于一個消息框,但該方法的重要作用是與用戶交互。該方法顯示一個消息框后,用戶根據(jù)提示信息作出選擇,程序根據(jù)用戶的選擇再作出相應(yīng)的處理。 MessageBox.Show()方法根據(jù)用戶的選擇返回對話框結(jié)果DialogResult,包括Abort(中止)、Cancel(取消)、Ignore(忽略)、o(否)、Yes(是)、Retry(重試)、OK(確定)等。2021年10月10日星期日例3-3 處理對話框結(jié)果下面代碼詢問用戶是否要將變量x的值加上100,如果用戶選擇是,則x值加100,否則x值不變。 Dim x As Integer = Val(TextBox1.Text) Dim
58、r As DialogResult r = MessageBox.Show(x的值要加上100嗎?, 增加, MessageBoxButtons.YesNo, MessageBoxIcon.Question) If r = Windows.Forms.DialogResult.Yes Then x += 100 End If TextBox2.Text = x2021年10月10日星期日MeMe關(guān)鍵字可作為引用當前實例的對象變量。例如,下面代碼將當前窗體最大化。 Me.WindowState = FormWindowState.Maximized2021年10月10日星期日創(chuàng)建及保存項目 (1
59、)創(chuàng)建項目。啟動Microsoft Visual Studio 2005,單擊菜單“文件”“新建項目”,打開“新建項目”對話框,在“項目類型”中選擇Visual Basic,在“模板”列表中選擇“Windows 應(yīng)用程序”,在“名稱”框中輸入項目的名稱,輸入:03_猜數(shù)游戲,然后單擊“確定”按鈕創(chuàng)建項目,如圖1-2所示。若項目創(chuàng)建成功,則系統(tǒng)自動為項目添加一個名為Form1的窗體(Form1.vb)。(2)保存項目。單擊菜單“文件”“全部保存”,打開“保存項目”對話框,在“位置”框中輸入項目的保存位置,或單擊“瀏覽”按鈕選擇項目的保存位置。對于較為簡單的項目,沒有必要單獨為解決方案創(chuàng)建目錄,因
60、此不選擇“創(chuàng)建解決方案的目錄”選項。最后單擊“保存”按鈕保存項目,如圖1-3所示。2021年10月10日星期日“即時”窗口的使用 按Ctrl+G或單擊菜單“調(diào)試”“窗口”“即時”,進入“即時”窗口,分別輸入下面命令,并觀察顯示結(jié)果。? Int(4.8)? Int(-0.2)? Val(3e2x6)? Val(+3e-2x6)? Val(&O23)? Val(&H23)? Str(2.4)? Str(10000000000000000000)? Str(10000000000000000000.0)? MessageBox.Show(1+1=2 ?, 問題, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes上面最后一條命令分別運行兩次,在顯示的消息框中分別單擊“是”和“否”按鈕,并比較結(jié)果。2021年10月10日星期日窗體設(shè)計 窗體的標簽Label1顯示游戲說明。只有當用戶單擊開始按鈕Button
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《表演藝術(shù)入門》課件
- 2025設(shè)備維修服務(wù)合同模板
- 2025店鋪租賃合同模板
- 小兒面部紅斑侏儒綜合征的臨床護理
- 2025臨時搭建工程腳手架租賃合同模板
- 2025商戶租賃合同終止協(xié)議范本
- 2025年續(xù)租辦公室租賃合同范本
- 沈陽高三地理試卷及答案
- 商洛九年級期末試卷及答案
- 山東高一化學(xué)月考試卷及答案
- BEC商務(wù)英語初級考試歷年真題及答案6套
- 消除“艾梅乙”醫(yī)療歧視-從我做起
- 2024年辦公室水電管理制度(二篇)
- 高中語文-1.4《十八歲出門遠行》課件-新人教版必修3
- 4公民的基本權(quán)利和義務(wù) 第一課時《公民的基本權(quán)利》教學(xué)設(shè)計-2024-2025學(xué)年六年級上冊道德與法治統(tǒng)編版
- DB32 1072-2007 太湖地區(qū)城鎮(zhèn)污水處理廠及重點工業(yè)行業(yè)主要水污染物排放限值
- 2024中考英語試題分類匯編:非謂語(含解析)
- 第七屆江西省大學(xué)生金相技能大賽知識競賽單選題題庫附有答案
- 第9課++友好相處++學(xué)會合作+第2課時 【中職專用】中職思想政治《心理健康與職業(yè)生涯》高效課堂 (高教版基礎(chǔ)模塊)
- 四年級美術(shù)國考測試題附有答案
- 供貨保證措施以及應(yīng)急保障措施
評論
0/150
提交評論