全套課件:Visual Basic.NET程序設(shè)計(jì)實(shí)驗(yàn)實(shí)訓(xùn)指導(dǎo) 邱炳城_第1頁(yè)
全套課件:Visual Basic.NET程序設(shè)計(jì)實(shí)驗(yàn)實(shí)訓(xùn)指導(dǎo) 邱炳城_第2頁(yè)
全套課件:Visual Basic.NET程序設(shè)計(jì)實(shí)驗(yàn)實(shí)訓(xùn)指導(dǎo) 邱炳城_第3頁(yè)
全套課件:Visual Basic.NET程序設(shè)計(jì)實(shí)驗(yàn)實(shí)訓(xùn)指導(dǎo) 邱炳城_第4頁(yè)
全套課件:Visual Basic.NET程序設(shè)計(jì)實(shí)驗(yàn)實(shí)訓(xùn)指導(dǎo) 邱炳城_第5頁(yè)
已閱讀5頁(yè),還剩395頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2021年10月10日星期日Visual Basic.NET程序設(shè)計(jì)實(shí)驗(yàn)實(shí)驗(yàn)1 求平方根2021年10月10日星期日【功能描述】 從程序窗口中任意輸入一個(gè)正數(shù),程序計(jì)算出該數(shù)的算術(shù)平方根并在窗口中顯示出來(lái)。 2021年10月10日星期日【實(shí)驗(yàn)內(nèi)容】 1窗體及Label、Button、TextBox控件的外觀設(shè)置。 2Dim語(yǔ)句的運(yùn)用。 3Math對(duì)象及其Sqrt()方法的應(yīng)用。 4Try-Catch-End Try語(yǔ)句的運(yùn)用。2021年10月10日星期日【實(shí)驗(yàn)?zāi)康摹?1初步熟悉:VB.NET的開發(fā)環(huán)境;對(duì)象、屬性、方法、事件的概念;事件響應(yīng)的概念;程序、語(yǔ)句、變量、表達(dá)式的概念及格式;調(diào)試程序

2、的基本方法。 2掌握程序界面的設(shè)計(jì)的方法及通過(guò)程序界面進(jìn)行信息輸入輸出的基本處理方法。2021年10月10日星期日【預(yù)備知識(shí)】 1面向?qū)ο蟪绦蛟O(shè)計(jì)2VB.NET程序3賦值運(yùn)算和串聯(lián)運(yùn)算4Dim語(yǔ)句5Math類6Try-Catch-End Try 語(yǔ)句7MessageBox類8創(chuàng)建及保存項(xiàng)目9設(shè)計(jì)器窗口與代碼編輯器窗口10添加事件過(guò)程代碼(事件處理程序)11程序調(diào)試 2021年10月10日星期日【實(shí)驗(yàn)步驟】 1創(chuàng)建及保存項(xiàng)目 2“即時(shí)”窗口的使用 3窗體設(shè)計(jì) 4程序設(shè)計(jì) 5程序調(diào)試 6程序改進(jìn)2021年10月10日星期日【問(wèn)題與思考】 1進(jìn)入代碼編輯器窗口都有哪些操作方法?如何在窗體設(shè)計(jì)窗口與代

3、碼編輯器窗口之間進(jìn)行切換?2“即時(shí)”窗口有哪些功能?試試能否在程序被掛起時(shí)使用即時(shí)窗口檢查變量或?qū)傩缘闹?、?jì)算表達(dá)式的值、修改變量或?qū)傩缘闹怠?試試將過(guò)程名Button1_Click改為其它名字(如abc),看看程序還能否正常運(yùn)行,為什么?4程序運(yùn)行后,分別輸入-2、1E2、1E200、1E9999,看看結(jié)果是否正確。如果不正確,程序如何繼續(xù)改進(jìn)?5通過(guò)聯(lián)機(jī)幫助學(xué)習(xí)MsgBox()函數(shù)的用法,并比較該函數(shù)與MessageBox.Show()方法有何異同?2021年10月10日星期日面向?qū)ο蟪绦蛟O(shè)計(jì)概念 類具有同樣性質(zhì)和功能的事物所構(gòu)成的集合稱為類 對(duì)象具體的事物稱為對(duì)象 對(duì)象是通過(guò)類產(chǎn)生的,是

4、類的實(shí)例,類是對(duì)象的模板,它定義了對(duì)象的特征和行為規(guī)則。 屬性對(duì)象的特征稱為屬性 方法對(duì)象的功能稱為方法 事件接收外界的特定刺激就是對(duì)象的事件 2021年10月10日星期日格式 在程序代碼中調(diào)用對(duì)象的屬性和方法的一般格式為:對(duì)象.屬性對(duì)象.方法(參數(shù))2021年10月10日星期日示例1 設(shè)human代表人類,boy代表張三,則給張三穿41號(hào)鞋(ShoesSize)的程序代碼可寫成:Dim boy as = 張三boy.ShoesSize = 412021年10月10日星期日示例2 當(dāng)張三聽到他的電話響(ring)的時(shí)候,大家要做什么?也就是說(shuō),張三的“電話響”這一事

5、件發(fā)生的時(shí)候,如何處理這一事件?處理這一事件的程序代碼就是事件過(guò)程代碼,稱為事件響應(yīng)。事件過(guò)程代碼由程序員編寫,如,可將事件響應(yīng)代碼寫成:大家停止說(shuō)話,然后把他的電話扔出窗外。假如這段事件過(guò)程代碼的名稱為phone,則程序代碼可寫成:Private Sub phone (參數(shù)) Handles boy.ring “大家停止說(shuō)話”的相關(guān)代碼 “把他的電話扔出窗外”的相關(guān)代碼End Sub2021年10月10日星期日程序由語(yǔ)句組成 通常,一條語(yǔ)句書寫成一行。如果一條語(yǔ)句太長(zhǎng),需要分多行書寫,則要在沒有結(jié)束的行末加上續(xù)行符:一個(gè)空格加一個(gè)下劃線字符。 例如,語(yǔ)句:Label2.Text = x &a

6、mp; 的平方根是: & vbCrLf & y可寫成:Label2.Text = x & 的平方根是: & _vbCrLf & y 一行也可書寫多條語(yǔ)句,例如:x = 10 : y = x + 12 : z = x / 22021年10月10日星期日注釋語(yǔ)句 為了增強(qiáng)程序的可讀性,提高程序的可維護(hù)性,有良好習(xí)慣的程序員會(huì)為程序加上必要的文字說(shuō)明,即給程序加上恰當(dāng)?shù)淖⑨屨Z(yǔ)句。注釋語(yǔ)句用Rem或單引號(hào)開頭,例如:獲取用戶的輸入數(shù)據(jù)x = TextBox1.Texty = Math.Sqrt(x) 開平方根2021年10月10日星期日賦值運(yùn)算和串聯(lián)運(yùn)算 賦值運(yùn)

7、算符。給變量或?qū)傩再x值。 串聯(lián)運(yùn)算符。將多個(gè)字符串聯(lián)接為一個(gè)字符串。 例如:x = 10y = x + 12Label2.Text = x & + & y & =? 上面程序的運(yùn)行結(jié)果是:變量x的值為10,變量y的值為22,而標(biāo)簽控件Label2顯示的文字內(nèi)容為“10+22=?”。2021年10月10日星期日Dim語(yǔ)句 程序代碼中要使用的變量需要事先聲明。Dim語(yǔ)句可為一個(gè)或多個(gè)變量聲明并分配存儲(chǔ)空間。例如: 聲明變量a用于存放整數(shù)值 Dim a As Integer 聲明變量x用于存放長(zhǎng)整數(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是一個(gè)新的按鈕對(duì)象 Dim mButton As New System.Windows.Forms.Button2021年10月10日星期日Math類 Math類為三角函數(shù)、對(duì)數(shù)函數(shù)和其他通用數(shù)學(xué)函數(shù)提供常數(shù)和靜態(tài)方法,該類的成員可直接進(jìn)行訪問(wèn)

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 語(yǔ)句 用于處理給定代碼段中可能出現(xiàn)的某些或所有錯(cuò)誤,而同時(shí)代碼仍保持運(yùn)行。該語(yǔ)句的一般格式為:Try語(yǔ)句1Catch ex As Exception語(yǔ)句2End Try其中,“語(yǔ)句1”和“語(yǔ)句2”可以是任意多條語(yǔ)句。Try語(yǔ)句的功能是:如果“語(yǔ)句1”能正常運(yùn)行,則運(yùn)行“語(yǔ)句1”后跳到End Try后面的語(yǔ)句去繼續(xù)運(yùn)行;如果在運(yùn)行“語(yǔ)句1”時(shí)出現(xiàn)錯(cuò)誤,則運(yùn)行“語(yǔ)

10、句2”。2021年10月10日星期日MessageBox類 MessageBox類用于顯示可包含文本、按鈕和符號(hào)(通知并指示用戶)的消息框,并返回用戶的選擇結(jié)果(DialogResult)。通常使用Show方法來(lái)實(shí)現(xiàn)顯示消息框的功能。常用的調(diào)用格式如下:MessageBox.Show(text, caption, buttons, icon, defaultButton)其中:text 要在消息框中顯示的文本caption 要在消息框的標(biāo)題欄中顯示的文本buttons 指定在消息框中顯示哪些按鈕icon 指定在消息框中顯示哪個(gè)圖標(biāo)defaultButton 指定消息框中的默認(rèn)按鈕2021年10

11、月10日星期日MessageBox示例 MessageBox.Show (要退出嗎?, 確認(rèn), MessageBoxButtons.YesNo,MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)2021年10月10日星期日創(chuàng)建項(xiàng)目 啟動(dòng)Microsoft Visual Studio 2005,單擊菜單“文件”“新建項(xiàng)目”,打開“新建項(xiàng)目”對(duì)話框,在“項(xiàng)目類型”中選擇Visual Basic,在“模板”列表中選擇“Windows 應(yīng)用程序”,在“名稱”框中輸入項(xiàng)目的名稱,如輸入:01_求平方根,然后單擊“確定”按鈕創(chuàng)建項(xiàng)目,如圖1-

12、2所示。若項(xiàng)目創(chuàng)建成功,則系統(tǒng)自動(dòng)為項(xiàng)目添加一個(gè)名為Form1的窗體(Form1.vb)。 2021年10月10日星期日保存項(xiàng)目單擊菜單“文件”“全部保存”,打開“保存項(xiàng)目”對(duì)話框,在“位置”框中輸入項(xiàng)目的保存位置,或單擊“瀏覽”按鈕選擇項(xiàng)目的保存位置。對(duì)于較為簡(jiǎn)單的項(xiàng)目,沒有必要單獨(dú)為解決方案創(chuàng)建目錄,因此不選擇“創(chuàng)建解決方案的目錄”選項(xiàng)。最后單擊“保存”按鈕保存項(xiàng)目,如圖1-3所示。 2021年10月10日星期日設(shè)計(jì)器窗口與代碼編輯器窗口 VB.NET程序的每個(gè)功能窗口稱為窗體。如果要查看某一窗體(如Form1.vb)的設(shè)計(jì)界面或相應(yīng)代碼,則可在“解決方案資源管理器”窗口中,右擊窗體For

13、m1.vb,在彈出菜單中選擇“查看代碼”或“查看設(shè)計(jì)器”,如圖1-4所示。也可以在“解決方案資源管理器”窗口單擊相應(yīng)的工具欄按鈕,進(jìn)入Form1.vb的代碼編輯器窗口或Form1.vb的設(shè)計(jì)器窗口。2021年10月10日星期日添加事件過(guò)程代碼 例如,給窗體Form1.vb中按鈕Button1的Click事件添加事件過(guò)程代碼。操作方法如下:進(jìn)入Form1.vb的代碼編輯器窗口,在“類名”列表框中選擇Button1,在“方法名稱”列表框中選擇Click,如圖1-5所示。這時(shí),系統(tǒng)自動(dòng)添加下面兩條語(yǔ)句:Private Sub Button1_Click(ByVal sender As System.

14、Object, ByVal e As System.EventArgs) Handles Button1.ClickEnd Sub其中,Button1_Click為過(guò)程名稱,sender及e為參數(shù),這三個(gè)名字可根據(jù)需要進(jìn)行修改。這對(duì)語(yǔ)句的功能是:聲明用過(guò)程Button1_Click來(lái)處理Button1.Click事件。在這對(duì)語(yǔ)句中間輸入相應(yīng)代碼來(lái)響應(yīng)按鈕Button1的Click事件。2021年10月10日星期日在代碼編輯器窗口中選擇對(duì)象的事件 2021年10月10日星期日程序調(diào)試啟動(dòng)調(diào)試(F5) 在代碼編輯器編寫程序時(shí),系統(tǒng)自動(dòng)檢查代碼是否有效,如果有語(yǔ)法錯(cuò)誤或拼寫錯(cuò)誤,系統(tǒng)在錯(cuò)誤的代碼下面

15、加下劃線提示。當(dāng)鼠標(biāo)移到下劃線上方時(shí),系統(tǒng)顯示出該錯(cuò)誤的有關(guān)錯(cuò)誤信息,如圖1-6所示。必須排除所有的語(yǔ)法錯(cuò)誤和拼寫錯(cuò)誤,才能啟動(dòng)調(diào)試程序。2021年10月10日星期日程序調(diào)試逐語(yǔ)句運(yùn)行(F8) 逐語(yǔ)句運(yùn)行程序,就是系統(tǒng)在執(zhí)行每一個(gè)語(yǔ)句前先暫停(稱為掛起),由程序員確認(rèn)。在代碼編輯器窗口中,待執(zhí)行的語(yǔ)句加黃色底紋,且窗口左側(cè)有黃色箭頭指示,如圖1-7所示。當(dāng)鼠標(biāo)移到變量或?qū)傩陨戏綍r(shí),系統(tǒng)會(huì)顯示變量或?qū)傩缘闹?。程序員可根據(jù)需要進(jìn)行各種操作,常用的操作有:修改代碼;檢查和修改變量或?qū)傩缘闹?;拖?dòng)箭頭位置;按F8執(zhí)行當(dāng)前語(yǔ)句,并暫停在下一條語(yǔ)句;按F5運(yùn)行當(dāng)前語(yǔ)句及后面的所有語(yǔ)句;右擊某語(yǔ)句,并從快捷

16、菜單中選擇“運(yùn)行到光標(biāo)處”;按Ctrl+Alt+Break停止調(diào)試。2021年10月10日星期日進(jìn)入調(diào)試狀態(tài)的代碼編輯器窗 2021年10月10日星期日設(shè)置斷點(diǎn) 設(shè)置斷點(diǎn)也是程序調(diào)試的常用方法。在需要跟蹤的語(yǔ)句設(shè)置斷點(diǎn),當(dāng)程序運(yùn)行到被設(shè)置為斷點(diǎn)的語(yǔ)句時(shí),系統(tǒng)暫停執(zhí)行該語(yǔ)句(稱為中斷),進(jìn)入調(diào)試狀態(tài)。這時(shí),程序員可按逐語(yǔ)句運(yùn)行程序的操作方法進(jìn)行操作。設(shè)置或刪除斷點(diǎn)的操作方法是:?jiǎn)螕舸a編輯器窗口左側(cè),或?qū)⒐鈽?biāo)定位到相應(yīng)的語(yǔ)句后按F9。當(dāng)某一語(yǔ)句被設(shè)置為斷點(diǎn)時(shí),該語(yǔ)句加褐色底紋,且代碼編輯器窗口左側(cè)有褐色圓點(diǎn)指示,如圖1-8所示。2021年10月10日星期日調(diào)試狀態(tài)修改變量或?qū)傩缘闹?當(dāng)按程序逐語(yǔ)

17、句運(yùn)行,或程序運(yùn)行至斷點(diǎn),或程序運(yùn)行出現(xiàn)錯(cuò)誤時(shí),程序被掛起。這時(shí),程序員可在代碼編輯器中直接修改代碼,還可以修改變量或?qū)傩缘闹怠?程序處于掛起狀態(tài)時(shí),修改變量或?qū)傩缘闹档牟僮鞣椒ǎ?將鼠標(biāo)懸停在表示變量或?qū)傩缘拇a上,則系統(tǒng)會(huì)在鼠標(biāo)右下方顯示該變量或?qū)傩缘拿Q及其當(dāng)前的值。單擊鼠標(biāo)右下方顯示的信息,則出現(xiàn)插入點(diǎn),輸入新的值后按Enter鍵完成修改。2021年10月10日星期日創(chuàng)建及保存項(xiàng)目 (1)創(chuàng)建項(xiàng)目。啟動(dòng)Microsoft Visual Studio 2005,單擊菜單“文件”“新建項(xiàng)目”,打開“新建項(xiàng)目”對(duì)話框,在“項(xiàng)目類型”中選擇Visual Basic,在“模板”列表中選擇“Win

18、dows 應(yīng)用程序”,在“名稱”框中輸入項(xiàng)目的名稱,輸入:01_求平方根,然后單擊“確定”按鈕創(chuàng)建項(xiàng)目,如圖1-2所示。若項(xiàng)目創(chuàng)建成功,則系統(tǒng)自動(dòng)為項(xiàng)目添加一個(gè)名為Form1的窗體(Form1.vb)。(2)保存項(xiàng)目。單擊菜單“文件”“全部保存”,打開“保存項(xiàng)目”對(duì)話框,在“位置”框中輸入項(xiàng)目的保存位置,或單擊“瀏覽”按鈕選擇項(xiàng)目的保存位置。對(duì)于較為簡(jiǎn)單的項(xiàng)目,沒有必要單獨(dú)為解決方案創(chuàng)建目錄,因此不選擇“創(chuàng)建解決方案的目錄”選項(xiàng)。最后單擊“保存”按鈕保存項(xiàng)目,如圖1-3所示。2021年10月10日星期日“即時(shí)”窗口的使用 按Ctrl+G或單擊菜單“調(diào)試”“窗口”“即時(shí)”,進(jìn)入“即時(shí)”窗口,分別

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 (要退出嗎?, 確認(rèn), MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)2021年10月10日星期日窗體設(shè)計(jì) 當(dāng)用戶在文本框TextBox1中輸入數(shù)字然后單擊(Click)計(jì)算按鈕Button1時(shí),程

20、序計(jì)算出所輸入數(shù)的算術(shù)平方根并用標(biāo)簽Label2顯示計(jì)算結(jié)果。2021年10月10日星期日“求平方根”窗體及控件的屬性設(shè)置控件控件屬性屬性設(shè)置值設(shè)置值控件控件屬性屬性設(shè)置值設(shè)置值FormNameForm1LabelNameLabel2FormBorderStyleFixedSingleText(空)(空)MaximizeBoxFlaseTextBoxNameTextBox1Text求一個(gè)數(shù)的平方根求一個(gè)數(shù)的平方根Text(空)(空)LabelNameLabel1ButtonNameButton1Text輸入一個(gè)正數(shù):輸入一個(gè)正數(shù):Text計(jì)算計(jì)算2021年10月10日星期日程序設(shè)計(jì) 給按鈕Bu

21、tton1的Click事件添加事件過(guò)程代碼。用變量x來(lái)獲取用戶的輸入,然后求出x的算術(shù)平方根并保存在變量y中,最后用Label2顯示計(jì)算結(jié)果,如圖1-10所示。2021年10月10日星期日程序調(diào)試 (1)按F5以“啟動(dòng)調(diào)試”模式運(yùn)行程序,檢查程序窗口是否不能改變大小,不能最大化,可以最小化。(2)分別輸入不同的數(shù)值,并單擊計(jì)算按鈕,觀察程序的顯示結(jié)果是否正確。(3)關(guān)閉程序窗口,按F8以“逐語(yǔ)句”模式運(yùn)行程序,輸入數(shù)值并單擊計(jì)算按鈕,觀察程序的運(yùn)行情況。在每一次按F8時(shí),分別將鼠標(biāo)懸停于x、y、TextBox1.Text、Label2.Text上,觀察這些值的變化。(4)關(guān)閉程序窗口,在第5行

22、設(shè)置斷點(diǎn),如圖1-8所示。按F5運(yùn)行程序,輸入數(shù)值2并單擊計(jì)算按鈕,這時(shí)程序?qū)⒃诘?行掛起。將TextBox1.Text的值改為3,然后按F5繼續(xù)運(yùn)行程序,觀察程序運(yùn)行結(jié)果以及程序窗口中文本框內(nèi)容的變化。(5)關(guān)閉程序窗口,清除所有斷點(diǎn),按F5重新運(yùn)行程序,輸入一串字母并單擊計(jì)算按鈕,觀察程序的運(yùn)行情況。2021年10月10日星期日程序改進(jìn)運(yùn)行程序時(shí),如果用戶不輸入數(shù)值,而是輸入字符串,則程序運(yùn)行出現(xiàn)錯(cuò)誤。一種常用的改進(jìn)方法是,使用Try-Catch-End Try語(yǔ)句測(cè)試可能出現(xiàn)錯(cuò)誤的代碼段。如果用戶輸入的內(nèi)容不能開平方根的話,就顯示錯(cuò)誤消息框,提示用戶輸入數(shù)值。其它的改進(jìn)包括:將窗體For

23、m1.vb的AcceptButton屬性設(shè)置為Button1,即將窗體Form1的默認(rèn)接收按鈕設(shè)置為Button1,則程序運(yùn)行時(shí),輸入數(shù)值后按Enter鍵即可計(jì)算結(jié)果。將計(jì)算結(jié)果分兩行顯示。在字符串中間連接VB常數(shù)vbCrLf(回車換行符),則字符串可分多行顯示。計(jì)算后清除文本框TextBox1中的內(nèi)容。單擊計(jì)算按鈕Button1計(jì)算后,插入點(diǎn)(焦點(diǎn))移回到文本框TextBox1中。2021年10月10日星期日改進(jìn)后的求算術(shù)平方根程序代碼 2021年10月10日星期日Visual Basic.NET程序設(shè)計(jì)實(shí)驗(yàn)實(shí)驗(yàn)2 加法練習(xí)2021年10月10日星期日【功能描述】 由計(jì)算機(jī)隨機(jī)產(chǎn)生兩位正整數(shù)

24、的加法練習(xí)題,給用戶進(jìn)行加法運(yùn)算練習(xí),并統(tǒng)計(jì)練習(xí)結(jié)果。 2021年10月10日星期日【實(shí)驗(yàn)內(nèi)容】 1If-Else-End If語(yǔ)句的運(yùn)用。 2Randomize語(yǔ)句及Rnd()函數(shù)的應(yīng)用。 3Color結(jié)構(gòu)及其應(yīng)用。 4自定義過(guò)程及其調(diào)用。2021年10月10日星期日【實(shí)驗(yàn)?zāi)康摹?1掌握比較、邏輯運(yùn)算符及其表達(dá)式的運(yùn)算。 2掌握If-Else-End If語(yǔ)句的格式、功能及運(yùn)用。 3掌握隨機(jī)數(shù)的產(chǎn)生及其使用方法。 4掌握利用變量進(jìn)行計(jì)數(shù)的方法。 5熟悉變量的范圍及其生存期。2021年10月10日星期日【預(yù)備知識(shí)】 1比較運(yùn)算和邏輯運(yùn)算 2If-Else-End If 語(yǔ)句 3Rnd()函數(shù)

25、4過(guò)程的聲明與調(diào)用 5變量的范圍與生存期 6Color結(jié)構(gòu)2021年10月10日星期日【實(shí)驗(yàn)步驟】 1創(chuàng)建及保存項(xiàng)目 2窗體設(shè)計(jì) 3程序設(shè)計(jì) 4程序調(diào)試 5程序改進(jìn) 2021年10月10日星期日【問(wèn)題與思考】 1Rnd()函數(shù)的函數(shù)值是一個(gè)小數(shù),因此表達(dá)式Rnd() * 89 + 10也存在小數(shù),為什么在標(biāo)簽Label1上顯示的題目沒有小數(shù)?如果要顯式地將Rnd() * 89 + 10轉(zhuǎn)換為整數(shù)再賦值給變量x,有哪些方法?2通過(guò)聯(lián)機(jī)幫助學(xué)習(xí)Random類的功能及使用方法,比較Random類與Rnd()函數(shù)的異同。3試按下面要求改寫程序:當(dāng)用戶在做一道題目時(shí),如果回答錯(cuò)誤,則不重新出題,直到答對(duì)

26、了才重新出題。統(tǒng)計(jì)信息改為:共做了幾道題,答了多少次。4試按下面要求改寫程序:當(dāng)用戶在做一道題目時(shí),如果回答錯(cuò)誤,則不重新出題,但最多給3次機(jī)會(huì),3次都答錯(cuò)才能算答錯(cuò)一道題。如果答對(duì),或3次都答錯(cuò),則重新出題。統(tǒng)計(jì)信息改為:共做了幾道題,答錯(cuò)了幾道題。5試將圖2-1中的程序第13行“y=y+x”改為“y=y+Me.x”,看看程序的運(yùn)行結(jié)果有什么變化。這說(shuō)明Me.x的Me代表什么?x是什么變量?2021年10月10日星期日比較運(yùn)算和邏輯運(yùn)算 常用的比較運(yùn)算符包括:=、=、Like、Is、IsNot等。如,若x為非負(fù)數(shù),則VB表達(dá)式為:x=0。 常用的邏輯運(yùn)算符包括:And、Or、Not、Xor等

27、。如,若x為區(qū)間(12,36)內(nèi)的數(shù),則VB表達(dá)式為:x12 And x 15 Theny = 100Elsey = 200End If2021年10月10日星期日Rnd()函數(shù) 使用Rnd()函數(shù)可產(chǎn)生一個(gè)0到1之間的隨機(jī)數(shù)。如果要隨機(jī)產(chǎn)生區(qū)間a,b上的整數(shù),則可使用這樣的表達(dá)式:Int(Rnd() * (b - a + 1) + a)。 由于每一次后續(xù)調(diào)用Rnd()函數(shù)都用序列中前一個(gè)生成的數(shù)作為下一個(gè)數(shù)的種子,因此對(duì)于任何給定的初始種子都會(huì)生成相同的數(shù)字序列。 為了解決這一問(wèn)題,通常在調(diào)用Rnd()之前,先使用無(wú)參數(shù)的Randomize語(yǔ)句初始化隨機(jī)數(shù)生成器,使生成器具有一個(gè)基于系統(tǒng)計(jì)時(shí)

28、器的種子。2021年10月10日星期日過(guò)程的聲明與調(diào)用 一個(gè)過(guò)程通常是完成特定功能的一段代碼,常見的過(guò)程有Sub過(guò)程、Function過(guò)程和Property過(guò)程等。 一般地,如果需要在程序的不同位置執(zhí)行同樣的任務(wù),則可以將任務(wù)當(dāng)作過(guò)程編寫一次,然后就可以從程序的不同位置調(diào)用該任務(wù)。這是避免代碼重復(fù)的一種有效方法。 若不要過(guò)程返回值,則可使用Sub過(guò)程。若是需要過(guò)程返回值,則必須使用Function過(guò)程。Property過(guò)程用于定義類、結(jié)構(gòu)和模塊中的屬性。2021年10月10日星期日事件過(guò)程 聲明Sub事件過(guò)程的一般語(yǔ)法是:modifiers Sub subname (parameterlist

29、) Handles eventlist語(yǔ)句sEnd Sub 2021年10月10日星期日通用過(guò)程 聲明Sub通用過(guò)程的一般語(yǔ)法是:modifiers Sub subname (parameterlist)語(yǔ)句sEnd Sub 2021年10月10日星期日過(guò)程語(yǔ)法說(shuō)明 modifiers 指定訪問(wèn)級(jí)別。常用的有Public、Friend和Private,默認(rèn)為Friend。如果指定為Public,則該過(guò)程不限定級(jí)別,項(xiàng)目中的任意位置均可調(diào)用。如果指定為Private,則只有包含該過(guò)程的類(或模塊)中可以調(diào)用。subname 過(guò)程名稱。過(guò)程名稱可以是任意有效的名字。為了程序更易于閱讀,通常以見名知

30、義為準(zhǔn)則,如過(guò)程Button1_Click用于響應(yīng)Button1.Click事件。值得注意的是,過(guò)程名稱本身與所響應(yīng)的事件沒有任何關(guān)系,比如說(shuō),可以用過(guò)程Button1_Click來(lái)響應(yīng)Me.Load事件和Button2.Click事件,或者用過(guò)程bc來(lái)響應(yīng)Button1.Click事件。parameterlist 參數(shù)列表。如果是事件過(guò)程,則參數(shù)必須符合所響應(yīng)事件的參數(shù)要求,通常為系統(tǒng)自動(dòng)產(chǎn)生,無(wú)需修改。通用過(guò)程的參數(shù)可根據(jù)需要進(jìn)行定義。參數(shù)不是必須的。eventlist 事件列表。一個(gè)事件過(guò)程可用于響應(yīng)多個(gè)事件。2021年10月10日星期日過(guò)程聲明示例 用過(guò)程Btn_Click來(lái)響應(yīng)按鈕B

31、utton1、Button2及標(biāo)簽Label2的Click事件,則事件過(guò)程可聲明為:Private Sub Btn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Label2.ClickEnd Sub2021年10月10日星期日Function過(guò)程的聲明 Function過(guò)程也稱為函數(shù)過(guò)程,常用于自定義一個(gè)函數(shù),通過(guò)參數(shù)傳遞自變量,通過(guò)Return語(yǔ)句或函數(shù)名返回函數(shù)值。聲明Function過(guò)程的一般語(yǔ)法是:modifiers Function f

32、unctionname (parameterlist) As returntype語(yǔ)句sEnd Sub 其中,functionname為函數(shù)名,returntype為返回值的類型。 可以通過(guò)Return語(yǔ)句返回函數(shù)值。 2021年10月10日星期日函數(shù)過(guò)程示例1 設(shè)函數(shù)f(x)=3x+4,現(xiàn)定義函數(shù)過(guò)程myf用于求f(x)的值: Function myf(ByVal x As Double) As Double Return 3 * x + 4 End Function 在需要求函數(shù)值的地方直接調(diào)用myf函數(shù)即可。如計(jì)算并顯示x=1.5時(shí)的函數(shù)值,則可使用下面語(yǔ)句:MsgBox(myf(1.5

33、)2021年10月10日星期日函數(shù)過(guò)程示例2有一電費(fèi)收費(fèi)辦法規(guī)定,用電量不超過(guò)60度時(shí)0.6元/度,若超過(guò),則超過(guò)部分0.98元/度?,F(xiàn)定義函數(shù)過(guò)程dianfei用于計(jì)算電費(fèi),代碼如下: 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日星期日從過(guò)程中返回 利用Return語(yǔ)句,控制權(quán)會(huì)立即返回給調(diào)用代碼。Return語(yǔ)句后面的語(yǔ)句不會(huì)運(yùn)行???/p>

34、以在同一個(gè)過(guò)程中具有多個(gè)Return語(yǔ)句。 利用Exit Sub或Exit Function語(yǔ)句,控制權(quán)會(huì)立即返回給調(diào)用代碼。Exit語(yǔ)句后面的語(yǔ)句不會(huì)運(yùn)行??梢栽谕粋€(gè)過(guò)程中具有多個(gè)Exit語(yǔ)句,而且可以在同一個(gè)過(guò)程中混用Return和Exit語(yǔ)句。 如果過(guò)程沒有Return或Exit語(yǔ)句,則過(guò)程運(yùn)行至End Sub或End Function語(yǔ)句結(jié)束,然后將控制權(quán)返回給調(diào)用代碼。在一個(gè)過(guò)程中只能具有一個(gè)End Sub或End Function語(yǔ)句。2021年10月10日星期日過(guò)程的調(diào)用調(diào)用過(guò)程的格式為:Call procedureName (argumentList)其中,procedure

35、Name為過(guò)程名,argumentList為參數(shù)列表。作為語(yǔ)句時(shí),Call可以寫,也可以省略不寫。作為函數(shù)參加表達(dá)式運(yùn)算時(shí),不能加Call。如果作為語(yǔ)句調(diào)用一個(gè)函數(shù)過(guò)程,返回值將被忽略。例如:gen()調(diào)用過(guò)程gen,沒有參數(shù)Call book(D12) 調(diào)用過(guò)程book,并傳送參數(shù)值D12y = dianfei(x) 調(diào)用過(guò)程dianfei,x值為參數(shù),返回值賦給y2021年10月10日星期日變量的范圍與生存期 變量的“范圍”是指不必限定變量名便可以引用變量的所有代碼的集合。變量的范圍由聲明變量的語(yǔ)句的位置決定,范圍級(jí)別有:塊范圍、過(guò)程范圍、模塊范圍和命名空間范圍。 變量的“生存期”是指變量

36、可供使用的時(shí)間段。通常,變量存在的時(shí)間與聲明它的元素(如過(guò)程或類)存在的時(shí)間相同。2021年10月10日星期日變量范圍示例1 下面代碼中的變量b的范圍為“塊范圍”,只在聲明它的If塊內(nèi)有效。當(dāng)程序執(zhí)行至語(yǔ)句a=a+b時(shí),由于b的生存期已結(jié)束,因而程序會(huì)出現(xiàn)“名稱b未聲明”的錯(cuò)誤。 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為成員變量,可以在過(guò)程Button1_Click和過(guò)程proc中使用。第4行及第11

37、行聲明的變量z、x為局部變量,只在過(guò)程內(nèi)有效。運(yùn)行該程序,單擊按鈕Button1,則消息框?qū)?huì)顯示“x=100,y=900,z=1000”信息。2021年10月10日星期日Color結(jié)構(gòu) 結(jié)構(gòu)和類兩個(gè)實(shí)體支持的大多數(shù)功能都是相同的,對(duì)于初學(xué)者來(lái)說(shuō),可以暫時(shí)將結(jié)構(gòu)理解為類。 Color結(jié)構(gòu)用于表示顏色??梢允褂肅olor結(jié)構(gòu)的屬性來(lái)表示一種顏色,如,Color.Red表示紅色,Color.Blue表示藍(lán)色。 也可以使用Color結(jié)構(gòu)的方法來(lái)表示一種顏色。如: Color.FromArgb(255, 0, 0) 表示紅色。 Color.FromArgb(0, 0, 255) 表示藍(lán)色。 2021年

38、10月10日星期日創(chuàng)建及保存項(xiàng)目 (1)創(chuàng)建項(xiàng)目。啟動(dòng)Microsoft Visual Studio 2005,單擊菜單“文件”“新建項(xiàng)目”,打開“新建項(xiàng)目”對(duì)話框,在“項(xiàng)目類型”中選擇Visual Basic,在“模板”列表中選擇“Windows 應(yīng)用程序”,在“名稱”框中輸入項(xiàng)目的名稱,輸入:02_加法練習(xí),然后單擊“確定”按鈕創(chuàng)建項(xiàng)目,如圖1-2所示。若項(xiàng)目創(chuàng)建成功,則系統(tǒng)自動(dòng)為項(xiàng)目添加一個(gè)名為Form1的窗體(Form1.vb)。(2)保存項(xiàng)目。單擊菜單“文件”“全部保存”,打開“保存項(xiàng)目”對(duì)話框,在“位置”框中輸入項(xiàng)目的保存位置,或單擊“瀏覽”按鈕選擇項(xiàng)目的保存位置。對(duì)于較為簡(jiǎn)單的項(xiàng)

39、目,沒有必要單獨(dú)為解決方案創(chuàng)建目錄,因此不選擇“創(chuàng)建解決方案的目錄”選項(xiàng)。最后單擊“保存”按鈕保存項(xiàng)目,如圖1-3所示。2021年10月10日星期日窗體設(shè)計(jì) 程序運(yùn)行后,在標(biāo)簽Label1上顯示題目,當(dāng)用戶在文本框TextBox1中輸入答案然后單擊確定按鈕Button1時(shí),程序判斷所輸入的答案是否正確,并在標(biāo)簽Label2顯示判斷結(jié)果。同時(shí),統(tǒng)計(jì)答題數(shù)及正確數(shù),并在標(biāo)簽Label3顯示統(tǒng)計(jì)結(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è)計(jì)定義過(guò)程gen 定義一個(gè)過(guò)程gen用于生成并顯示題目。在窗體剛顯示時(shí),需要顯示一道題目,即需要生成并顯示題目。在用戶單擊確定按鈕后又要顯示另一道題目,即需要重新生成并顯示題目。因此,為了避免代碼重復(fù),將生成并顯示題

41、目定義為一個(gè)過(guò)程gen,這樣,在需要新題目的位置調(diào)用該過(guò)程即可。隨機(jī)產(chǎn)生兩個(gè)兩位整數(shù),并保存在變量x、y中,然后將x、y串聯(lián)成題目并在標(biāo)簽Label1上顯示出來(lái)。參考代碼如下: Private Sub gen() x = Rnd() * 89 + 10 y = Rnd() * 89 + 10 Label1.Text = x & + & y & = End Sub2021年10月10日星期日程序設(shè)計(jì)聲明成員變量 當(dāng)用戶單擊確定按鈕時(shí),需要判斷用戶輸入的答案是否等于x+y。也就是說(shuō),在事件過(guò)程Button1_Click中需要使用過(guò)程gen中的變量x、y的值,因此,變量x、y

42、需要聲明為成員變量。另外,因?yàn)樾枰y(tǒng)計(jì)用戶的練習(xí)結(jié)果,所以設(shè)置兩個(gè)變量ty、tn來(lái)統(tǒng)計(jì)用戶答對(duì)和答錯(cuò)的題數(shù)。由于每單擊一次確定按鈕,過(guò)程Button1_Click就會(huì)運(yùn)行一次,而過(guò)程運(yùn)行結(jié)束時(shí)局部變量就不存在,因此,需要將變量ty、tn聲明為成員變量。在Public Class Form1語(yǔ)句下面一行加入聲明語(yǔ)句:Dim x, y, ty, tn As Integer2021年10月10日星期日程序設(shè)計(jì)Button1的Click事件 當(dāng)用戶單擊確定按鈕Button1時(shí),用變量k來(lái)獲取用戶輸入的答案,然后判斷k是否等于x+y。若是,則顯示回答正確信息,且答對(duì)題數(shù)加1;若否,則顯示回答錯(cuò)誤信息,且

43、答錯(cuò)題數(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 = 答對(duì)了! ty = ty + 1 Else Label2.Text = 答錯(cuò)了! tn = tn + 1 End If Label3.Text = 共答了 & ty + tn & 題, & ty & 題

44、答對(duì)。 gen()End Sub2021年10月10日星期日程序設(shè)計(jì)Form1的Load事件 當(dāng)窗體加載時(shí),初始化隨機(jī)數(shù)序列,然后調(diào)用過(guò)程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運(yùn)行程序,檢查程序窗口是否不能改變大小,不能最大化,可以最小化。(2)檢查程序窗口是否有顯示題目。(3)關(guān)閉程序窗口并重新運(yùn)行,檢查題目是否有變化。(4)

45、輸入正確答案然后單擊確定按鈕,檢查提示信息及統(tǒng)計(jì)信息是否與預(yù)期的一致,同時(shí)檢查是否有重新生成題目。(5)輸入錯(cuò)誤答案然后單擊確定按鈕,檢查提示信息及統(tǒng)計(jì)信息是否與預(yù)期的一致,同時(shí)檢查是否有重新生成題目。(6)輸入一串字母并單擊計(jì)算按鈕,觀察程序的運(yùn)行情況。2021年10月10日星期日程序改進(jìn)運(yùn)行程序時(shí),如果用戶不輸入數(shù)值,而是輸入字符串,則程序運(yùn)行出現(xiàn)錯(cuò)誤。請(qǐng)參考實(shí)驗(yàn)1,使用Try-Catch-End Try語(yǔ)句改進(jìn)程序代碼。其它需要改進(jìn)的地方包括:將窗體Form1的默認(rèn)接收按鈕設(shè)置為Button1。由于單擊按鈕Button1后原來(lái)的題目被新的題目所代替,用戶看不到剛答的那道題。因此,可將提示

46、信息改為類似如“37+28=80 答錯(cuò)了”,使用戶可以確定剛做的那道題的對(duì)錯(cuò)。當(dāng)輸入錯(cuò)誤、答對(duì)或答錯(cuò)時(shí),提示信息使用不同的顏色顯示。這可通過(guò)修改標(biāo)簽Label2的前景顏色(ForeColor)來(lái)實(shí)現(xiàn),如下面語(yǔ)句可將提示信息的顏色變?yōu)榧t色。Label2.ForeColor = Color.Red單擊計(jì)算按鈕Button1計(jì)算后,清除文本框TextBox1中的內(nèi)容,并將焦點(diǎn)移回到文本框TextBox1中。2021年10月10日星期日Visual Basic.NET程序設(shè)計(jì)實(shí)驗(yàn)實(shí)驗(yàn)3 猜數(shù)游戲 2021年10月10日星期日【功能描述】 由計(jì)算機(jī)隨機(jī)產(chǎn)生一個(gè)1,100間的整數(shù),給用戶猜測(cè),每次給出猜大

47、了還是猜小了的提示。最多猜5次,5次均猜錯(cuò)即為輸。 2021年10月10日星期日【實(shí)驗(yàn)內(nèi)容】 1For-Next語(yǔ)句及If-Else-End If語(yǔ)句的應(yīng)用。 2ListBox控件的應(yīng)用 3Int()、Val()、Str()函數(shù)的運(yùn)用。 4MessageBox.Show()方法的運(yùn)用。 5Me關(guān)鍵字的運(yùn)用。2021年10月10日星期日【實(shí)驗(yàn)?zāi)康摹?1掌握For-Next語(yǔ)句的格式、功能及運(yùn)用。 2熟悉語(yǔ)句結(jié)構(gòu)的嵌套及靈活應(yīng)用。 3掌握通過(guò)代碼改變窗體及其控件的屬性的方法。 4熟悉人機(jī)交互的多種方法。2021年10月10日星期日【預(yù)備知識(shí)】 1賦值運(yùn)算 2相關(guān)函數(shù) 3For-Next語(yǔ)句 4Me

48、ssageBox.Show()方法 5Me2021年10月10日星期日【實(shí)驗(yàn)步驟】 1創(chuàng)建及保存項(xiàng)目 2“即時(shí)”窗口的使用 3窗體設(shè)計(jì) 4程序設(shè)計(jì) 5程序調(diào)試 6程序改進(jìn)2021年10月10日星期日【問(wèn)題與思考】 1在“即時(shí)”窗口輸入一些命令,比較函數(shù)Str()和CStr()的異同。2通過(guò)聯(lián)機(jī)幫助學(xué)習(xí)Format()函數(shù)的使用方法。3試按下面要求改寫程序:不限制用戶的猜數(shù)次數(shù),改為以成績(jī)來(lái)評(píng)價(jià)游戲結(jié)果。每局(猜一個(gè)數(shù))給初始分為100分,每猜錯(cuò)一次扣10分,直至猜對(duì)為止。然后重新產(chǎn)生一個(gè)數(shù),進(jìn)入下一局。每猜一次都在窗體上顯示出累計(jì)得分。4試按下面要求改寫程序:當(dāng)用戶挑戰(zhàn)成功(5次之內(nèi)猜對(duì))或挑

49、戰(zhàn)失?。?次都猜錯(cuò))時(shí),不用消息框顯示游戲結(jié)果,改為用圖片顯示游戲結(jié)果。用一幅勝利形象的圖片表示挑戰(zhàn)成功,用一幅失敗形象的圖片表示挑戰(zhàn)失敗。5過(guò)程zoom中的For語(yǔ)句使用參數(shù)d作為步長(zhǎng)值,如果有代碼使用zoom(0)來(lái)調(diào)用該過(guò)程,會(huì)出現(xiàn)什么不良后果?如何改進(jìn)?2021年10月10日星期日賦值運(yùn)算賦值運(yùn)算符除了實(shí)驗(yàn)1介紹的“”外,還有 += 、-= 、*= 、/= 、= 、= 、&= 等,這些運(yùn)算符的運(yùn)算功能是:將一個(gè)表達(dá)式與一個(gè)變量或?qū)傩赃M(jìn)行運(yùn)算,并將結(jié)果賦給該變量或?qū)傩?。如?= 將一個(gè)數(shù)值表達(dá)式的值與一個(gè)數(shù)值變量或?qū)傩缘闹迪嗉?,并將結(jié)果賦給該變量或?qū)傩浴?amp;= 連接Stri

50、ng表達(dá)式與String變量或?qū)傩?,并將結(jié)果賦給該變量或?qū)傩?。運(yùn)算符“+=”除了作數(shù)值運(yùn)算外,也可以作字符串(String)連接運(yùn)算,但通常使用“&=”作為String連接運(yùn)算符。 2021年10月10日星期日賦值運(yùn)算示例 下面代碼運(yùn)行后,變量x的值為20,而變量y的值為128。 Dim x As Int16 = 12 Dim y As String = 12 x += 8 y &= 82021年10月10日星期日Int()函數(shù) 該函數(shù)用于進(jìn)行取整運(yùn)算。Int(n)的返回值為不大于n的最大整數(shù)。 例如: Int(3.89) 返回值:3 Int(-3.2)返回值:-4。2021年

51、10月10日星期日Val()函數(shù)該函數(shù)用于將字符串轉(zhuǎn)換為數(shù)值。轉(zhuǎn)換時(shí),如果第1個(gè)字符不是數(shù)字字符,則返回?cái)?shù)值0。例如:Val(23KM)返回值:23Val(“APPLE”)返回值:0。Val()函數(shù)在轉(zhuǎn)換時(shí)能識(shí)別E、小數(shù)點(diǎn)、&O前綴(八進(jìn)制)、&H前綴(十六進(jìn)制),并且會(huì)排除空格、制表符和換行符。例如:Val(2.6E3KM)返回值:2600Val(&O14)返回值:12Val(&H1F)返回值:31Val( 1615 198th Street N.E.) 返回值:16151982021年10月10日星期日Str()函數(shù) 與Val()函數(shù)對(duì)應(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語(yǔ)句 常用的For語(yǔ)句格式為:For 循環(huán)變量 = 初值 To 終值 Step 步長(zhǎng)值 語(yǔ)句sNext 循環(huán)變量 執(zhí)行For語(yǔ)句時(shí),初值賦給循環(huán)變量,并判斷循環(huán)變量的值是否超過(guò)終值。如果超過(guò),則執(zhí)行Next后面的語(yǔ)句,否則執(zhí)行“語(yǔ)句s”。執(zhí)行Next語(yǔ)句時(shí),循環(huán)變量加上步長(zhǎng)值,然后判斷循環(huán)變量的值是否超過(guò)終值。如果超過(guò),則執(zhí)行Next后面的語(yǔ)句,否則執(zhí)行“語(yǔ)句s”。 2021年10月10日星期日 For-N

53、ext語(yǔ)句的運(yùn)行過(guò)程 Yes循環(huán)變量 = 初值語(yǔ)句sNoNextFor循環(huán)變量 += 步長(zhǎng)循環(huán)變量值超過(guò)終值?2021年10月10日星期日For 語(yǔ)句示例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 語(yǔ)句示例2 如果循環(huán)變量在For語(yǔ)句之前未聲明,則可在For語(yǔ)句中聲明。下面代碼產(chǎn)生10個(gè)用Hello連接的字符串,結(jié)果賦給變量h。 Dim h As String For i As Integer = 1 To 10 Step

54、 1 h &= Hello Next i2021年10月10日星期日For 語(yǔ)句示例3 Next語(yǔ)句后面的循環(huán)變量可省略。步長(zhǎng)為1時(shí),“Step 1”也可省略。下面代碼與示例2的代碼運(yùn)行結(jié)果相同。 Dim h As String For i As Integer = 1 To 10 h &= Hello Next2021年10月10日星期日For 語(yǔ)句示例4 示例3代碼中,因?yàn)檠h(huán)體內(nèi)的語(yǔ)句沒有使用循環(huán)變量i,因此循環(huán)的初值、終值及步長(zhǎng)值可以任意設(shè)置,只要保證循環(huán)的次數(shù)為10次,程序的運(yùn)行結(jié)果就保持不變。如將示例3代碼改為下面代碼,程序運(yùn)行結(jié)果相同。 Dim h As Stri

55、ng For i As Integer = 20 To 1 Step -2 h &= Hello Next2021年10月10日星期日For Each 語(yǔ)句 For語(yǔ)句的另一常用格式為:For Each 元素 In 集合語(yǔ)句sNext 元素 該語(yǔ)句的功能是對(duì)集合中的每一元素都運(yùn)行“語(yǔ)句s”。2021年10月10日星期日例3-1 遍歷集合中的元素 Me.Controls為當(dāng)前窗體中所有控件的集合。下面代碼對(duì)當(dāng)前窗體中的所有控件的文字顏色設(shè)置為紅色。 For Each t As Control In Me.Controls t.ForeColor = Color.Red Next2021年

56、10月10日星期日例3-2 隨機(jī)數(shù)程序在循環(huán)體內(nèi),如果某條件成立時(shí)需要退出For循環(huán),則可采用Exit For語(yǔ)句。隨機(jī)產(chǎn)生20以內(nèi)的正整數(shù),如果產(chǎn)生的數(shù)剛好是12,則不再繼續(xù)產(chǎn)生,最多產(chǎn)生10個(gè)數(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()方法 在實(shí)驗(yàn)1中曾使用MessageBox.S

57、how()方法用于一個(gè)消息框,但該方法的重要作用是與用戶交互。該方法顯示一個(gè)消息框后,用戶根據(jù)提示信息作出選擇,程序根據(jù)用戶的選擇再作出相應(yīng)的處理。 MessageBox.Show()方法根據(jù)用戶的選擇返回對(duì)話框結(jié)果DialogResult,包括Abort(中止)、Cancel(取消)、Ignore(忽略)、o(否)、Yes(是)、Retry(重試)、OK(確定)等。2021年10月10日星期日例3-3 處理對(duì)話框結(jié)果下面代碼詢問(wèn)用戶是否要將變量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)鍵字可作為引用當(dāng)前實(shí)例的對(duì)象變量。例如,下面代碼將當(dāng)前窗體最大化。 Me.WindowState = FormWindowState.Maximized2021年10月10日星期日創(chuàng)建及保存項(xiàng)目 (1

59、)創(chuàng)建項(xiàng)目。啟動(dòng)Microsoft Visual Studio 2005,單擊菜單“文件”“新建項(xiàng)目”,打開“新建項(xiàng)目”對(duì)話框,在“項(xiàng)目類型”中選擇Visual Basic,在“模板”列表中選擇“Windows 應(yīng)用程序”,在“名稱”框中輸入項(xiàng)目的名稱,輸入:03_猜數(shù)游戲,然后單擊“確定”按鈕創(chuàng)建項(xiàng)目,如圖1-2所示。若項(xiàng)目創(chuàng)建成功,則系統(tǒng)自動(dòng)為項(xiàng)目添加一個(gè)名為Form1的窗體(Form1.vb)。(2)保存項(xiàng)目。單擊菜單“文件”“全部保存”,打開“保存項(xiàng)目”對(duì)話框,在“位置”框中輸入項(xiàng)目的保存位置,或單擊“瀏覽”按鈕選擇項(xiàng)目的保存位置。對(duì)于較為簡(jiǎn)單的項(xiàng)目,沒有必要單獨(dú)為解決方案創(chuàng)建目錄,因

60、此不選擇“創(chuàng)建解決方案的目錄”選項(xiàng)。最后單擊“保存”按鈕保存項(xiàng)目,如圖1-3所示。2021年10月10日星期日“即時(shí)”窗口的使用 按Ctrl+G或單擊菜單“調(diào)試”“窗口”“即時(shí)”,進(jìn)入“即時(shí)”窗口,分別輸入下面命令,并觀察顯示結(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 ?, 問(wèn)題, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes上面最后一條命令分別運(yùn)行兩次,在顯示的消息框中分別單擊“是”和“否”按鈕,并比較結(jié)果。2021年10月10日星期日窗體設(shè)計(jì) 窗體的標(biāo)簽Label1顯示游戲說(shuō)明。只有當(dāng)用戶單擊開始按鈕Button

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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)論