




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021年10月10日星期日Visual Basic.NET程序设计实验实验1 求平方根2021年10月10日星期日【功能描述】 从程序窗口中任意输入一个正数,程序计算出该数的算术平方根并在窗口中显示出来。 2021年10月10日星期日【实验内容】 1窗体及Label、Button、TextBox控件的外观设置。 2Dim语句的运用。 3Math对象及其Sqrt()方法的应用。 4Try-Catch-End Try语句的运用。2021年10月10日星期日【实验目的】 1初步熟悉:VB.NET的开发环境;对象、属性、方法、事件的概念;事件响应的概念;程序、语句、变量、表达式的概念及格式;调试程序
2、的基本方法。 2掌握程序界面的设计的方法及通过程序界面进行信息输入输出的基本处理方法。2021年10月10日星期日【预备知识】 1面向对象程序设计2VB.NET程序3赋值运算和串联运算4Dim语句5Math类6Try-Catch-End Try 语句7MessageBox类8创建及保存项目9设计器窗口与代码编辑器窗口10添加事件过程代码(事件处理程序)11程序调试 2021年10月10日星期日【实验步骤】 1创建及保存项目 2“即时”窗口的使用 3窗体设计 4程序设计 5程序调试 6程序改进2021年10月10日星期日【问题与思考】 1进入代码编辑器窗口都有哪些操作方法?如何在窗体设计窗口与代
3、码编辑器窗口之间进行切换?2“即时”窗口有哪些功能?试试能否在程序被挂起时使用即时窗口检查变量或属性的值、计算表达式的值、修改变量或属性的值。3试试将过程名Button1_Click改为其它名字(如abc),看看程序还能否正常运行,为什么?4程序运行后,分别输入-2、1E2、1E200、1E9999,看看结果是否正确。如果不正确,程序如何继续改进?5通过联机帮助学习MsgBox()函数的用法,并比较该函数与MessageBox.Show()方法有何异同?2021年10月10日星期日面向对象程序设计概念 类具有同样性质和功能的事物所构成的集合称为类 对象具体的事物称为对象 对象是通过类产生的,是
4、类的实例,类是对象的模板,它定义了对象的特征和行为规则。 属性对象的特征称为属性 方法对象的功能称为方法 事件接收外界的特定刺激就是对象的事件 2021年10月10日星期日格式 在程序代码中调用对象的属性和方法的一般格式为:对象.属性对象.方法(参数)2021年10月10日星期日示例1 设human代表人类,boy代表张三,则给张三穿41号鞋(ShoesSize)的程序代码可写成:Dim boy as = 张三boy.ShoesSize = 412021年10月10日星期日示例2 当张三听到他的电话响(ring)的时候,大家要做什么?也就是说,张三的“电话响”这一事
5、件发生的时候,如何处理这一事件?处理这一事件的程序代码就是事件过程代码,称为事件响应。事件过程代码由程序员编写,如,可将事件响应代码写成:大家停止说话,然后把他的电话扔出窗外。假如这段事件过程代码的名称为phone,则程序代码可写成:Private Sub phone (参数) Handles boy.ring “大家停止说话”的相关代码 “把他的电话扔出窗外”的相关代码End Sub2021年10月10日星期日程序由语句组成 通常,一条语句书写成一行。如果一条语句太长,需要分多行书写,则要在没有结束的行末加上续行符:一个空格加一个下划线字符。 例如,语句:Label2.Text = x &a
6、mp; 的平方根是: & vbCrLf & y可写成:Label2.Text = x & 的平方根是: & _vbCrLf & y 一行也可书写多条语句,例如:x = 10 : y = x + 12 : z = x / 22021年10月10日星期日注释语句 为了增强程序的可读性,提高程序的可维护性,有良好习惯的程序员会为程序加上必要的文字说明,即给程序加上恰当的注释语句。注释语句用Rem或单引号开头,例如:获取用户的输入数据x = TextBox1.Texty = Math.Sqrt(x) 开平方根2021年10月10日星期日赋值运算和串联运算 赋值运
7、算符。给变量或属性赋值。 串联运算符。将多个字符串联接为一个字符串。 例如:x = 10y = x + 12Label2.Text = x & + & y & =? 上面程序的运行结果是:变量x的值为10,变量y的值为22,而标签控件Label2显示的文字内容为“10+22=?”。2021年10月10日星期日Dim语句 程序代码中要使用的变量需要事先声明。Dim语句可为一个或多个变量声明并分配存储空间。例如: 声明变量a用于存放整数值 Dim a As Integer 声明变量x用于存放长整数值,变量y用于存放字符串值 Dim x As Long, y As Strin
8、g 声明变量m和n用于存放双精度数值,变量d1和d2用于存放日期值 Dim m, n As Double, d1, d2 As Date 声明变量d用于存放16位整数值,并初始化变量的值为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类为三角函数、对数函数和其他通用数学函数提供常数和静态方法,该类的成员可直接进行访问
9、。例如,要将17度的正弦函数值赋给变量x,2的算术平方根赋给变量y,则代码为:x = Math.Sin(17 * Math.PI / 180)y = Math.Sqrt(2)2021年10月10日星期日Try-Catch-End Try 语句 用于处理给定代码段中可能出现的某些或所有错误,而同时代码仍保持运行。该语句的一般格式为:Try语句1Catch ex As Exception语句2End Try其中,“语句1”和“语句2”可以是任意多条语句。Try语句的功能是:如果“语句1”能正常运行,则运行“语句1”后跳到End Try后面的语句去继续运行;如果在运行“语句1”时出现错误,则运行“语
10、句2”。2021年10月10日星期日MessageBox类 MessageBox类用于显示可包含文本、按钮和符号(通知并指示用户)的消息框,并返回用户的选择结果(DialogResult)。通常使用Show方法来实现显示消息框的功能。常用的调用格式如下: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日星期日创建项目 启动Microsoft Visual Studio 2005,单击菜单“文件”“新建项目”,打开“新建项目”对话框,在“项目类型”中选择Visual Basic,在“模板”列表中选择“Windows 应用程序”,在“名称”框中输入项目的名称,如输入:01_求平方根,然后单击“确定”按钮创建项目,如图1-
12、2所示。若项目创建成功,则系统自动为项目添加一个名为Form1的窗体(Form1.vb)。 2021年10月10日星期日保存项目单击菜单“文件”“全部保存”,打开“保存项目”对话框,在“位置”框中输入项目的保存位置,或单击“浏览”按钮选择项目的保存位置。对于较为简单的项目,没有必要单独为解决方案创建目录,因此不选择“创建解决方案的目录”选项。最后单击“保存”按钮保存项目,如图1-3所示。 2021年10月10日星期日设计器窗口与代码编辑器窗口 VB.NET程序的每个功能窗口称为窗体。如果要查看某一窗体(如Form1.vb)的设计界面或相应代码,则可在“解决方案资源管理器”窗口中,右击窗体For
13、m1.vb,在弹出菜单中选择“查看代码”或“查看设计器”,如图1-4所示。也可以在“解决方案资源管理器”窗口单击相应的工具栏按钮,进入Form1.vb的代码编辑器窗口或Form1.vb的设计器窗口。2021年10月10日星期日添加事件过程代码 例如,给窗体Form1.vb中按钮Button1的Click事件添加事件过程代码。操作方法如下:进入Form1.vb的代码编辑器窗口,在“类名”列表框中选择Button1,在“方法名称”列表框中选择Click,如图1-5所示。这时,系统自动添加下面两条语句:Private Sub Button1_Click(ByVal sender As System.
14、Object, ByVal e As System.EventArgs) Handles Button1.ClickEnd Sub其中,Button1_Click为过程名称,sender及e为参数,这三个名字可根据需要进行修改。这对语句的功能是:声明用过程Button1_Click来处理Button1.Click事件。在这对语句中间输入相应代码来响应按钮Button1的Click事件。2021年10月10日星期日在代码编辑器窗口中选择对象的事件 2021年10月10日星期日程序调试启动调试(F5) 在代码编辑器编写程序时,系统自动检查代码是否有效,如果有语法错误或拼写错误,系统在错误的代码下面
15、加下划线提示。当鼠标移到下划线上方时,系统显示出该错误的有关错误信息,如图1-6所示。必须排除所有的语法错误和拼写错误,才能启动调试程序。2021年10月10日星期日程序调试逐语句运行(F8) 逐语句运行程序,就是系统在执行每一个语句前先暂停(称为挂起),由程序员确认。在代码编辑器窗口中,待执行的语句加黄色底纹,且窗口左侧有黄色箭头指示,如图1-7所示。当鼠标移到变量或属性上方时,系统会显示变量或属性的值。程序员可根据需要进行各种操作,常用的操作有:修改代码;检查和修改变量或属性的值;拖动箭头位置;按F8执行当前语句,并暂停在下一条语句;按F5运行当前语句及后面的所有语句;右击某语句,并从快捷
16、菜单中选择“运行到光标处”;按Ctrl+Alt+Break停止调试。2021年10月10日星期日进入调试状态的代码编辑器窗 2021年10月10日星期日设置断点 设置断点也是程序调试的常用方法。在需要跟踪的语句设置断点,当程序运行到被设置为断点的语句时,系统暂停执行该语句(称为中断),进入调试状态。这时,程序员可按逐语句运行程序的操作方法进行操作。设置或删除断点的操作方法是:单击代码编辑器窗口左侧,或将光标定位到相应的语句后按F9。当某一语句被设置为断点时,该语句加褐色底纹,且代码编辑器窗口左侧有褐色圆点指示,如图1-8所示。2021年10月10日星期日调试状态修改变量或属性的值 当按程序逐语
17、句运行,或程序运行至断点,或程序运行出现错误时,程序被挂起。这时,程序员可在代码编辑器中直接修改代码,还可以修改变量或属性的值。 程序处于挂起状态时,修改变量或属性的值的操作方法: 将鼠标悬停在表示变量或属性的代码上,则系统会在鼠标右下方显示该变量或属性的名称及其当前的值。单击鼠标右下方显示的信息,则出现插入点,输入新的值后按Enter键完成修改。2021年10月10日星期日创建及保存项目 (1)创建项目。启动Microsoft Visual Studio 2005,单击菜单“文件”“新建项目”,打开“新建项目”对话框,在“项目类型”中选择Visual Basic,在“模板”列表中选择“Win
18、dows 应用程序”,在“名称”框中输入项目的名称,输入:01_求平方根,然后单击“确定”按钮创建项目,如图1-2所示。若项目创建成功,则系统自动为项目添加一个名为Form1的窗体(Form1.vb)。(2)保存项目。单击菜单“文件”“全部保存”,打开“保存项目”对话框,在“位置”框中输入项目的保存位置,或单击“浏览”按钮选择项目的保存位置。对于较为简单的项目,没有必要单独为解决方案创建目录,因此不选择“创建解决方案的目录”选项。最后单击“保存”按钮保存项目,如图1-3所示。2021年10月10日星期日“即时”窗口的使用 按Ctrl+G或单击菜单“调试”“窗口”“即时”,进入“即时”窗口,分别
19、输入下面命令,并观察显示结果。? 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日星期日窗体设计 当用户在文本框TextBox1中输入数字然后单击(Click)计算按钮Button1时,程
20、序计算出所输入数的算术平方根并用标签Label2显示计算结果。2021年10月10日星期日“求平方根”窗体及控件的属性设置控件控件属性属性设置值设置值控件控件属性属性设置值设置值FormNameForm1LabelNameLabel2FormBorderStyleFixedSingleText(空)(空)MaximizeBoxFlaseTextBoxNameTextBox1Text求一个数的平方根求一个数的平方根Text(空)(空)LabelNameLabel1ButtonNameButton1Text输入一个正数:输入一个正数:Text计算计算2021年10月10日星期日程序设计 给按钮Bu
21、tton1的Click事件添加事件过程代码。用变量x来获取用户的输入,然后求出x的算术平方根并保存在变量y中,最后用Label2显示计算结果,如图1-10所示。2021年10月10日星期日程序调试 (1)按F5以“启动调试”模式运行程序,检查程序窗口是否不能改变大小,不能最大化,可以最小化。(2)分别输入不同的数值,并单击计算按钮,观察程序的显示结果是否正确。(3)关闭程序窗口,按F8以“逐语句”模式运行程序,输入数值并单击计算按钮,观察程序的运行情况。在每一次按F8时,分别将鼠标悬停于x、y、TextBox1.Text、Label2.Text上,观察这些值的变化。(4)关闭程序窗口,在第5行
22、设置断点,如图1-8所示。按F5运行程序,输入数值2并单击计算按钮,这时程序将在第5行挂起。将TextBox1.Text的值改为3,然后按F5继续运行程序,观察程序运行结果以及程序窗口中文本框内容的变化。(5)关闭程序窗口,清除所有断点,按F5重新运行程序,输入一串字母并单击计算按钮,观察程序的运行情况。2021年10月10日星期日程序改进运行程序时,如果用户不输入数值,而是输入字符串,则程序运行出现错误。一种常用的改进方法是,使用Try-Catch-End Try语句测试可能出现错误的代码段。如果用户输入的内容不能开平方根的话,就显示错误消息框,提示用户输入数值。其它的改进包括:将窗体For
23、m1.vb的AcceptButton属性设置为Button1,即将窗体Form1的默认接收按钮设置为Button1,则程序运行时,输入数值后按Enter键即可计算结果。将计算结果分两行显示。在字符串中间连接VB常数vbCrLf(回车换行符),则字符串可分多行显示。计算后清除文本框TextBox1中的内容。单击计算按钮Button1计算后,插入点(焦点)移回到文本框TextBox1中。2021年10月10日星期日改进后的求算术平方根程序代码 2021年10月10日星期日Visual Basic.NET程序设计实验实验2 加法练习2021年10月10日星期日【功能描述】 由计算机随机产生两位正整数
24、的加法练习题,给用户进行加法运算练习,并统计练习结果。 2021年10月10日星期日【实验内容】 1If-Else-End If语句的运用。 2Randomize语句及Rnd()函数的应用。 3Color结构及其应用。 4自定义过程及其调用。2021年10月10日星期日【实验目的】 1掌握比较、逻辑运算符及其表达式的运算。 2掌握If-Else-End If语句的格式、功能及运用。 3掌握随机数的产生及其使用方法。 4掌握利用变量进行计数的方法。 5熟悉变量的范围及其生存期。2021年10月10日星期日【预备知识】 1比较运算和逻辑运算 2If-Else-End If 语句 3Rnd()函数
25、4过程的声明与调用 5变量的范围与生存期 6Color结构2021年10月10日星期日【实验步骤】 1创建及保存项目 2窗体设计 3程序设计 4程序调试 5程序改进 2021年10月10日星期日【问题与思考】 1Rnd()函数的函数值是一个小数,因此表达式Rnd() * 89 + 10也存在小数,为什么在标签Label1上显示的题目没有小数?如果要显式地将Rnd() * 89 + 10转换为整数再赋值给变量x,有哪些方法?2通过联机帮助学习Random类的功能及使用方法,比较Random类与Rnd()函数的异同。3试按下面要求改写程序:当用户在做一道题目时,如果回答错误,则不重新出题,直到答对
26、了才重新出题。统计信息改为:共做了几道题,答了多少次。4试按下面要求改写程序:当用户在做一道题目时,如果回答错误,则不重新出题,但最多给3次机会,3次都答错才能算答错一道题。如果答对,或3次都答错,则重新出题。统计信息改为:共做了几道题,答错了几道题。5试将图2-1中的程序第13行“y=y+x”改为“y=y+Me.x”,看看程序的运行结果有什么变化。这说明Me.x的Me代表什么?x是什么变量?2021年10月10日星期日比较运算和逻辑运算 常用的比较运算符包括:=、=、Like、Is、IsNot等。如,若x为非负数,则VB表达式为:x=0。 常用的逻辑运算符包括:And、Or、Not、Xor等
27、。如,若x为区间(12,36)内的数,则VB表达式为:x12 And x 15 Theny = 100Elsey = 200End If2021年10月10日星期日Rnd()函数 使用Rnd()函数可产生一个0到1之间的随机数。如果要随机产生区间a,b上的整数,则可使用这样的表达式:Int(Rnd() * (b - a + 1) + a)。 由于每一次后续调用Rnd()函数都用序列中前一个生成的数作为下一个数的种子,因此对于任何给定的初始种子都会生成相同的数字序列。 为了解决这一问题,通常在调用Rnd()之前,先使用无参数的Randomize语句初始化随机数生成器,使生成器具有一个基于系统计时
28、器的种子。2021年10月10日星期日过程的声明与调用 一个过程通常是完成特定功能的一段代码,常见的过程有Sub过程、Function过程和Property过程等。 一般地,如果需要在程序的不同位置执行同样的任务,则可以将任务当作过程编写一次,然后就可以从程序的不同位置调用该任务。这是避免代码重复的一种有效方法。 若不要过程返回值,则可使用Sub过程。若是需要过程返回值,则必须使用Function过程。Property过程用于定义类、结构和模块中的属性。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,则该过程不限定级别,项目中的任意位置均可调用。如果指定为Private,则只有包含该过程的类(或模块)中可以调用。subname 过程名称。过程名称可以是任意有效的名字。为了程序更易于阅读,通常以见名知
30、义为准则,如过程Button1_Click用于响应Button1.Click事件。值得注意的是,过程名称本身与所响应的事件没有任何关系,比如说,可以用过程Button1_Click来响应Me.Load事件和Button2.Click事件,或者用过程bc来响应Button1.Click事件。parameterlist 参数列表。如果是事件过程,则参数必须符合所响应事件的参数要求,通常为系统自动产生,无需修改。通用过程的参数可根据需要进行定义。参数不是必须的。eventlist 事件列表。一个事件过程可用于响应多个事件。2021年10月10日星期日过程声明示例 用过程Btn_Click来响应按钮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过程也称为函数过程,常用于自定义一个函数,通过参数传递自变量,通过Return语句或函数名返回函数值。声明Function过程的一般语法是:modifiers Function f
32、unctionname (parameterlist) As returntype语句sEnd Sub 其中,functionname为函数名,returntype为返回值的类型。 可以通过Return语句返回函数值。 2021年10月10日星期日函数过程示例1 设函数f(x)=3x+4,现定义函数过程myf用于求f(x)的值: Function myf(ByVal x As Double) As Double Return 3 * x + 4 End Function 在需要求函数值的地方直接调用myf函数即可。如计算并显示x=1.5时的函数值,则可使用下面语句:MsgBox(myf(1.5
33、)2021年10月10日星期日函数过程示例2有一电费收费办法规定,用电量不超过60度时0.6元/度,若超过,则超过部分0.98元/度。现定义函数过程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语句,控制权会立即返回给调用代码。Return语句后面的语句不会运行。可
34、以在同一个过程中具有多个Return语句。 利用Exit Sub或Exit Function语句,控制权会立即返回给调用代码。Exit语句后面的语句不会运行。可以在同一个过程中具有多个Exit语句,而且可以在同一个过程中混用Return和Exit语句。 如果过程没有Return或Exit语句,则过程运行至End Sub或End Function语句结束,然后将控制权返回给调用代码。在一个过程中只能具有一个End Sub或End Function语句。2021年10月10日星期日过程的调用调用过程的格式为:Call procedureName (argumentList)其中,procedure
35、Name为过程名,argumentList为参数列表。作为语句时,Call可以写,也可以省略不写。作为函数参加表达式运算时,不能加Call。如果作为语句调用一个函数过程,返回值将被忽略。例如:gen()调用过程gen,没有参数Call book(D12) 调用过程book,并传送参数值D12y = dianfei(x) 调用过程dianfei,x值为参数,返回值赋给y2021年10月10日星期日变量的范围与生存期 变量的“范围”是指不必限定变量名便可以引用变量的所有代码的集合。变量的范围由声明变量的语句的位置决定,范围级别有:块范围、过程范围、模块范围和命名空间范围。 变量的“生存期”是指变量
36、可供使用的时间段。通常,变量存在的时间与声明它的元素(如过程或类)存在的时间相同。2021年10月10日星期日变量范围示例1 下面代码中的变量b的范围为“块范围”,只在声明它的If块内有效。当程序执行至语句a=a+b时,由于b的生存期已结束,因而程序会出现“名称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为局部变量,只在过程内有效。运行该程序,单击按钮Button1,则消息框将会显示“x=100,y=900,z=1000”信息。2021年10月10日星期日Color结构 结构和类两个实体支持的大多数功能都是相同的,对于初学者来说,可以暂时将结构理解为类。 Color结构用于表示颜色。可以使用Color结构的属性来表示一种颜色,如,Color.Red表示红色,Color.Blue表示蓝色。 也可以使用Color结构的方法来表示一种颜色。如: Color.FromArgb(255, 0, 0) 表示红色。 Color.FromArgb(0, 0, 255) 表示蓝色。 2021年
38、10月10日星期日创建及保存项目 (1)创建项目。启动Microsoft Visual Studio 2005,单击菜单“文件”“新建项目”,打开“新建项目”对话框,在“项目类型”中选择Visual Basic,在“模板”列表中选择“Windows 应用程序”,在“名称”框中输入项目的名称,输入:02_加法练习,然后单击“确定”按钮创建项目,如图1-2所示。若项目创建成功,则系统自动为项目添加一个名为Form1的窗体(Form1.vb)。(2)保存项目。单击菜单“文件”“全部保存”,打开“保存项目”对话框,在“位置”框中输入项目的保存位置,或单击“浏览”按钮选择项目的保存位置。对于较为简单的项
39、目,没有必要单独为解决方案创建目录,因此不选择“创建解决方案的目录”选项。最后单击“保存”按钮保存项目,如图1-3所示。2021年10月10日星期日窗体设计 程序运行后,在标签Label1上显示题目,当用户在文本框TextBox1中输入答案然后单击确定按钮Button1时,程序判断所输入的答案是否正确,并在标签Label2显示判断结果。同时,统计答题数及正确数,并在标签Label3显示统计结果。2021年10月10日星期日“加法练习”窗体及控件的属性设置控件控件属性属性设置值设置值控件控件属性属性设置值设置值FormNameForm1LabelNameLabel2FormBorderStyle
40、FixedSingleText(空)(空)Font宋体宋体, 12ptLabelNameLabel3MaximizeBoxFlaseText(空)(空)Text加法练习加法练习TextBoxNameTextBox1Text(空)(空)LabelNameLabel1ButtonNameButton1Text(空)(空)Text确定确定(&Y)2021年10月10日星期日程序设计定义过程gen 定义一个过程gen用于生成并显示题目。在窗体刚显示时,需要显示一道题目,即需要生成并显示题目。在用户单击确定按钮后又要显示另一道题目,即需要重新生成并显示题目。因此,为了避免代码重复,将生成并显示题
41、目定义为一个过程gen,这样,在需要新题目的位置调用该过程即可。随机产生两个两位整数,并保存在变量x、y中,然后将x、y串联成题目并在标签Label1上显示出来。参考代码如下: Private Sub gen() x = Rnd() * 89 + 10 y = Rnd() * 89 + 10 Label1.Text = x & + & y & = End Sub2021年10月10日星期日程序设计声明成员变量 当用户单击确定按钮时,需要判断用户输入的答案是否等于x+y。也就是说,在事件过程Button1_Click中需要使用过程gen中的变量x、y的值,因此,变量x、y
42、需要声明为成员变量。另外,因为需要统计用户的练习结果,所以设置两个变量ty、tn来统计用户答对和答错的题数。由于每单击一次确定按钮,过程Button1_Click就会运行一次,而过程运行结束时局部变量就不存在,因此,需要将变量ty、tn声明为成员变量。在Public Class Form1语句下面一行加入声明语句:Dim x, y, ty, tn As Integer2021年10月10日星期日程序设计Button1的Click事件 当用户单击确定按钮Button1时,用变量k来获取用户输入的答案,然后判断k是否等于x+y。若是,则显示回答正确信息,且答对题数加1;若否,则显示回答错误信息,且
43、答错题数加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日星期日程序设计Form1的Load事件 当窗体加载时,初始化随机数序列,然后调用过程gen生成题目。代码如下:Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Randomize() gen()End Sub2021年10月10日星期日程序调试 (1)按F5运行程序,检查程序窗口是否不能改变大小,不能最大化,可以最小化。(2)检查程序窗口是否有显示题目。(3)关闭程序窗口并重新运行,检查题目是否有变化。(4)
45、输入正确答案然后单击确定按钮,检查提示信息及统计信息是否与预期的一致,同时检查是否有重新生成题目。(5)输入错误答案然后单击确定按钮,检查提示信息及统计信息是否与预期的一致,同时检查是否有重新生成题目。(6)输入一串字母并单击计算按钮,观察程序的运行情况。2021年10月10日星期日程序改进运行程序时,如果用户不输入数值,而是输入字符串,则程序运行出现错误。请参考实验1,使用Try-Catch-End Try语句改进程序代码。其它需要改进的地方包括:将窗体Form1的默认接收按钮设置为Button1。由于单击按钮Button1后原来的题目被新的题目所代替,用户看不到刚答的那道题。因此,可将提示
46、信息改为类似如“37+28=80 答错了”,使用户可以确定刚做的那道题的对错。当输入错误、答对或答错时,提示信息使用不同的颜色显示。这可通过修改标签Label2的前景颜色(ForeColor)来实现,如下面语句可将提示信息的颜色变为红色。Label2.ForeColor = Color.Red单击计算按钮Button1计算后,清除文本框TextBox1中的内容,并将焦点移回到文本框TextBox1中。2021年10月10日星期日Visual Basic.NET程序设计实验实验3 猜数游戏 2021年10月10日星期日【功能描述】 由计算机随机产生一个1,100间的整数,给用户猜测,每次给出猜大
47、了还是猜小了的提示。最多猜5次,5次均猜错即为输。 2021年10月10日星期日【实验内容】 1For-Next语句及If-Else-End If语句的应用。 2ListBox控件的应用 3Int()、Val()、Str()函数的运用。 4MessageBox.Show()方法的运用。 5Me关键字的运用。2021年10月10日星期日【实验目的】 1掌握For-Next语句的格式、功能及运用。 2熟悉语句结构的嵌套及灵活应用。 3掌握通过代码改变窗体及其控件的属性的方法。 4熟悉人机交互的多种方法。2021年10月10日星期日【预备知识】 1赋值运算 2相关函数 3For-Next语句 4Me
48、ssageBox.Show()方法 5Me2021年10月10日星期日【实验步骤】 1创建及保存项目 2“即时”窗口的使用 3窗体设计 4程序设计 5程序调试 6程序改进2021年10月10日星期日【问题与思考】 1在“即时”窗口输入一些命令,比较函数Str()和CStr()的异同。2通过联机帮助学习Format()函数的使用方法。3试按下面要求改写程序:不限制用户的猜数次数,改为以成绩来评价游戏结果。每局(猜一个数)给初始分为100分,每猜错一次扣10分,直至猜对为止。然后重新产生一个数,进入下一局。每猜一次都在窗体上显示出累计得分。4试按下面要求改写程序:当用户挑战成功(5次之内猜对)或挑
49、战失败(5次都猜错)时,不用消息框显示游戏结果,改为用图片显示游戏结果。用一幅胜利形象的图片表示挑战成功,用一幅失败形象的图片表示挑战失败。5过程zoom中的For语句使用参数d作为步长值,如果有代码使用zoom(0)来调用该过程,会出现什么不良后果?如何改进?2021年10月10日星期日赋值运算赋值运算符除了实验1介绍的“”外,还有 += 、-= 、*= 、/= 、= 、= 、&= 等,这些运算符的运算功能是:将一个表达式与一个变量或属性进行运算,并将结果赋给该变量或属性。如:+= 将一个数值表达式的值与一个数值变量或属性的值相加,并将结果赋给该变量或属性。&= 连接Stri
50、ng表达式与String变量或属性,并将结果赋给该变量或属性。运算符“+=”除了作数值运算外,也可以作字符串(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()函数 该函数用于进行取整运算。Int(n)的返回值为不大于n的最大整数。 例如: Int(3.89) 返回值:3 Int(-3.2)返回值:-4。2021年
51、10月10日星期日Val()函数该函数用于将字符串转换为数值。转换时,如果第1个字符不是数字字符,则返回数值0。例如:Val(23KM)返回值:23Val(“APPLE”)返回值:0。Val()函数在转换时能识别E、小数点、&O前缀(八进制)、&H前缀(十六进制),并且会排除空格、制表符和换行符。例如:Val(2.6E3KM)返回值:2600Val(&O14)返回值:12Val(&H1F)返回值:31Val( 1615 198th Street N.E.) 返回值:16151982021年10月10日星期日Str()函数 与Val()函数对应的函数Str(),可
52、用于将数值转换为字符串。如果参数是正数,转换结果保留前导空格。例如: Str(345) 返回值: 345 Str(-3.14)返回值:-3.14。2021年10月10日星期日For-Next语句 常用的For语句格式为:For 循环变量 = 初值 To 终值 Step 步长值 语句sNext 循环变量 执行For语句时,初值赋给循环变量,并判断循环变量的值是否超过终值。如果超过,则执行Next后面的语句,否则执行“语句s”。执行Next语句时,循环变量加上步长值,然后判断循环变量的值是否超过终值。如果超过,则执行Next后面的语句,否则执行“语句s”。 2021年10月10日星期日 For-N
53、ext语句的运行过程 Yes循环变量 = 初值语句sNoNextFor循环变量 += 步长循环变量值超过终值?2021年10月10日星期日For 语句示例1 下面代码用于求100以内奇数的和,结果赋给变量s。 Dim i, s As Integer s = 0 For i = 1 To 100 Step 2 s += i Next i2021年10月10日星期日For 语句示例2 如果循环变量在For语句之前未声明,则可在For语句中声明。下面代码产生10个用Hello连接的字符串,结果赋给变量h。 Dim h As String For i As Integer = 1 To 10 Step
54、 1 h &= Hello Next i2021年10月10日星期日For 语句示例3 Next语句后面的循环变量可省略。步长为1时,“Step 1”也可省略。下面代码与示例2的代码运行结果相同。 Dim h As String For i As Integer = 1 To 10 h &= Hello Next2021年10月10日星期日For 语句示例4 示例3代码中,因为循环体内的语句没有使用循环变量i,因此循环的初值、终值及步长值可以任意设置,只要保证循环的次数为10次,程序的运行结果就保持不变。如将示例3代码改为下面代码,程序运行结果相同。 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为当前窗体中所有控件的集合。下面代码对当前窗体中的所有控件的文字颜色设置为红色。 For Each t As Control In Me.Controls t.ForeColor = Color.Red Next2021年
56、10月10日星期日例3-2 随机数程序在循环体内,如果某条件成立时需要退出For循环,则可采用Exit For语句。随机产生20以内的正整数,如果产生的数刚好是12,则不再继续产生,最多产生10个数。 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()方法用于一个消息框,但该方法的重要作用是与用户交互。该方法显示一个消息框后,用户根据提示信息作出选择,程序根据用户的选择再作出相应的处理。 MessageBox.Show()方法根据用户的选择返回对话框结果DialogResult,包括Abort(中止)、Cancel(取消)、Ignore(忽略)、o(否)、Yes(是)、Retry(重试)、OK(确定)等。2021年10月10日星期日例3-3 处理对话框结果下面代码询问用户是否要将变量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关键字可作为引用当前实例的对象变量。例如,下面代码将当前窗体最大化。 Me.WindowState = FormWindowState.Maximized2021年10月10日星期日创建及保存项目 (1
59、)创建项目。启动Microsoft Visual Studio 2005,单击菜单“文件”“新建项目”,打开“新建项目”对话框,在“项目类型”中选择Visual Basic,在“模板”列表中选择“Windows 应用程序”,在“名称”框中输入项目的名称,输入:03_猜数游戏,然后单击“确定”按钮创建项目,如图1-2所示。若项目创建成功,则系统自动为项目添加一个名为Form1的窗体(Form1.vb)。(2)保存项目。单击菜单“文件”“全部保存”,打开“保存项目”对话框,在“位置”框中输入项目的保存位置,或单击“浏览”按钮选择项目的保存位置。对于较为简单的项目,没有必要单独为解决方案创建目录,因
60、此不选择“创建解决方案的目录”选项。最后单击“保存”按钮保存项目,如图1-3所示。2021年10月10日星期日“即时”窗口的使用 按Ctrl+G或单击菜单“调试”“窗口”“即时”,进入“即时”窗口,分别输入下面命令,并观察显示结果。? 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上面最后一条命令分别运行两次,在显示的消息框中分别单击“是”和“否”按钮,并比较结果。2021年10月10日星期日窗体设计 窗体的标签Label1显示游戏说明。只有当用户单击开始按钮Button
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 摩托车发动机燃油喷射器清洗方法考核试卷
- 职业中介服务在解决就业问题中的作用考核试卷
- 森林改培对水土流失的防治措施考核试卷
- 水产品市场的消费者行为与购买习惯分析考核试卷
- 山东省武城县2025年初三年级下学期期末质量检测试题化学试题含解析
- 四川文轩职业学院《英语语言能力与测试(B)》2023-2024学年第一学期期末试卷
- 武汉商学院《空间设计》2023-2024学年第二学期期末试卷
- 培黎职业学院《健身健美》2023-2024学年第一学期期末试卷
- 山东科技职业学院《中文工具书使用与社科信息检索》2023-2024学年第一学期期末试卷
- 山东文化产业职业学院《广告学概论》2023-2024学年第二学期期末试卷
- 第9课++友好相处++学会合作+第2课时 【中职专用】中职思想政治《心理健康与职业生涯》高效课堂 (高教版基础模块)
- 四年级美术国考测试题附有答案
- 专题八 概率与统计(2020-2024)五年高考《数学》真题分类汇编(解析版)
- 供货保证措施以及应急保障措施
- 任务6-2 机场安检岗位的设置课件讲解
- 伦理与社会责任智慧树知到期末考试答案章节答案2024年浙江大学
- 物联网技术概论智慧树知到期末考试答案章节答案2024年西安交通大学
- (正式版)SHT 3075-2024 石油化工钢制压力容器材料选用规范
- 幼儿园大班语言《睡睡镇》课件
- 2024年山东省济南市市中区中考二模地理试卷
- 人教版一年级《天地人你我他》课件
评论
0/150
提交评论