VBNET实验指导_第1页
VBNET实验指导_第2页
VBNET实验指导_第3页
VBNET实验指导_第4页
VBNET实验指导_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VB.NET实验指导VB.NET实验指导目录实验一 VB.NET环境熟悉2实验二 顺序结构5实验三 选择结构、循环结构程序设计9实验四 单重循环结构13实验五 多重循环结构16实验六 一维数组19实验七 二维、多维数组24实验八 过程28实验九 过程+数组+循环31实验十 常用控件35实验十一 对话框与菜单程序设计42实验十二 综合练习48实验一 VB.NET环境熟悉一. 实验目的(1) 掌握启动与退出VB.NET的方法。(2) 掌握建立、编辑和运行一个简单的VB.NET应用程序的全过程。(3) 掌握常用控件(文本框、标签、命令按钮)的应用。二. 实验要求根据实验内容要求编写一个简单的应用程序,学会使用VB .NET 中的常用控件并设置控件的属性,运行程序并保存文件。三. 实验范例(1) 启动VB.NET,创建一个“Windows应用程序”类型的应用程序。要求:在屏幕上的文本框里面输入你的名字,按回车键以后,输入的名字在窗体上自左向右移动,若内容超出窗体范围时,从左侧再开始。步骤一、打开VB.NET,选择“新建项目”选项,就能看到如下的“新建项目”窗口,选择“Windows应用程序”。步骤二、在窗体上面放置所需要的控件对象。Label1,label2,textbox1,timer1Label1.text=”信息登陆”Label2.text=”请输入你的姓名”步骤三、输入代码Public Class Form1 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load TextBox1.Focus() 设置焦点在文本框上,即让光标在文本框跳跃 Timer1.Enabled = False 定时器设置为不可用 End Sub Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If Asc(e.KeyChar) = 13 Then 检测用户是否在文本框输入了回车 Label1.Text = TextBox1.Text & vbCrLf 把用户在文本框输入的内容显示在标签上 Timer1.Enabled = True 开启定时器 End If End Sub Sub MyMove() Label1.Left = Label1.Left + 10 自左向右移动标签 If Label1.Left Me.Width Then 检测标签是否移动出窗体边界 Label1.Left = 0 - Label1.Width 当标签移动出窗体边界,则设置标签到最左侧 End If End Sub Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick Timer1.Interval = 200 设置定时器时间 Call MyMove() 调用移动标签的过程 End SubEnd Class步骤四、按运行按钮或者F5,运行程序,查看程序的运行结果。步骤五、保存文件四. 实验内容(1) 参照上例完成一次Windows应用程序的设计和运行。(2) 模仿教材例1.1,改变事件过程中的上下移动为左右移动,也要考虑文字出窗体边界的情况。各控件及属性在属性窗口设置。(3) 按照教材例2.2对窗体3个事件过程(load、click、DbClick)的编程,3个事件中装入不同的图片,图片在上机的机器中自己查找。(4) 按钮、字号、内容和格式的复制练习,效果如图在Textbox1中输入一字符串,建立3个命令按钮。Button1:text内容为“隶书25磅”,事件过程代码为 Textbox1.font=new font(“隶书”,25)Button2:text内容为“幼圆15磅”,代码类似Button3:Text内容为“复制=”,要求复制在Textbox1中选中的内容以及字体格式。选中的内容通过Textbox1的.SelectedText属性;字体通过Font直接赋值。五. 实验提示利用Application.StartupPath()可获取启动应用程序的路径,在默认情况下是该项目的“bin”的子文件夹,因此插入的图片可以存放在此文件夹下。实验二 顺序结构一. 实验目的掌握表达式、赋值语句的正确书写规则掌握常用函数的使用掌握inputbox与MsgBox的使用二. 实验要求根据要求编写完整的应用程序,学会定义各种数据类型变量的定义方法,掌握InputBox、MsgBox等语句的使用。三. 实验范例编一个华氏温度与摄氏温度之间转换的程序,运行界面如图所示,装换显示保留两位小数。根据题目要求设计界面如下:代码如下:Public Class Form1 Dim f!, c! Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click f = TextBox1.Text c = 5 / 9 * (f - 32) TextBox2.Text = Format(c, 0.00) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click c = TextBox2.Text f = 9 / 5 * c + 32 TextBox1.Text = Format(f, 0.00) End Sub Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click TextBox1.Text = TextBox2.Text = End SubEnd Class运行结果如图:四. 实验内容1. 设计一个应用程序,输出系统的当前日期,并按照“xxxx年xx月xx日”输出。同时计算当前日期距离上海世博会开幕(2010年5月1号)还有多少天?开幕当天是星期几?2. 输入半径,计算圆周长和圆面积。3. 设计一个应用程序要求用户通过InputBox输入姓名,然后用MsgBox显示“欢迎XXX同学使用”。4. 利用计算机解决古代数学问题“鸡兔同笼问题”。即已知在同一笼子里面有总数为m只鸡和兔子,鸡和兔子的总脚数为n只,求鸡和兔子各有多少只?注意要排除不合理的答案。实验三 选择结构、循环结构程序设计一. 实验目的1. 掌握逻辑表达式、关系表达式的正确书写格式。2. 掌握单分支与双分支条件语句的使用。3. 掌握多分支条件语句的使用。4. 掌握情况语句的使用及与多分支条件语句的区别。二. 实验要求通过实验范例的学习、验证,根据实验内容要求编写完整的应用程序,学会条件分支语句和情况语句的使用。三. 实验范例1. 使用 InputBox输入一个数,判断这个数的奇偶性。Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _System.EventArgs) Handles Button1.Click Dim a As Integer a = InputBox(输入一个数) If a Mod 2 = 1 Then MsgBox(a & 是奇数) Else MsgBox(a & 是偶数) End ifEnd Sub 图3-1程序运行界面程序运行时,单击Button1按钮,在弹出的对话框中输入78,单击“确定”按钮,消息框提示78是偶数,运行界面如图3-1所示。2. 使用 InputBox输入一个字符,判断你输入的字符的种类。 若是数字,则提示为数字;若是小写字母,则提示此字母为小写字母,并将该字母转换为大写字母;若为大写字母,则提示此字母为大写字母,并将该字母转换为小写字母;否则输出其他字符。Private Sub Button1_Click(ByVal sender As Object, ByVal e As _ System.EventArgs) Handles Button1.Click Dim a As String Dim b As String a = InputBox(请输入一个字符) If a = 0 Then MsgBox(a & 是一个数字) ElseIf a = A And a = a And a = z Then b = UCase(a) 也可以写为b=Chr(Asc(a) - 32) MsgBox(a & 是一个小写字母,将 & a & 变为大写的字母为 & b) Else MsgBox(a & 是其他字符) End IfEnd Sub四. 实验内容1. 在购买某物品时,若所花的钱x在下述范围内,所付钱y按对应折扣支付: x 1000 1000 x 2000 2000 x 3000 x 3000提示:此例用多分支结构实现,注意计算公式和条件表达式的正确书写。2. 编写一个程序,输入上网的时间,计算上网费用,计算的方法如下: 10小时10 50小时 50小时同时为了鼓励多上网,每月收费最多不超过150元。提示:首先利用多分支条件根据3个时间段算出费用,然后再用If语句对超过150元的费用设置为150元。3. 编写一个程序, 输入a、b、c三个数,要求按由大到小的顺序显示,如图3-2所示。提示:1) 3个数的输入通过文本框获得,最好将文本框的内容存放到数值型变量中,否则直接通过3个文本框排序,有时将会得到不正确的结果(因为文本框内容是字符型,当3个数位数不同时,不是按 图3-2 按顺序显示运行界面数值大小比较,而是按字符串从左到右的规则比较, 例如会出现“34”“2345”“126789”的情况)。2) 3个数排序,只能通过两两相比较,一般可用三句单分支的If语句来实现。方法是:先将a与b比较,使得ab;然后可a与c比较,使得ac,此时a最大;最后b与c比较,使得bc。3) 要在文本框内显示如图3-2所示的排序结果,可以利用字符连接符来实现,例如:TextBox4.Text= a &“”& y &“”& c4. 编写一个程序, 输入a、b、c三个数,要求按由小到大的顺序显示。5. 编一模拟袖珍计算器的完整程序,界面如图3-3所示。要求:输入两个操作数和一个操作符,根据操作符决定所做的运算。提示:1) 为了程序运行正确,对存放操作符的文本框TextBox3,应使用Trim(TextBox3.Text)函数,去除运算符两边的空格。 2) 根据存放操作符的文本框,利用Select Case语句实现。 如图3-3 计算方法运行界面6. 输入一个数字(17),用英文显示星期一至星期日。例如输入数字1,运行后界面设计如图3-4所示。 如图3-4 显示星期运行界面7. 输入一元二次方程ax2+bx+c=0的系数a、b、c,计算并输出一元二次方程的两个根x1,x2。界面如图3-5所示。提示:求根时,要对a、b、c三个系数进行多种情况的考虑,即:重根、两个实根、两个复根等。 如图3-5 计算器运行界面实验四 单重循环结构一. 实验目的(1) 掌握For语句的使用。(2) 掌握Do语句的使用(3) 掌握如何控制单重循环的条件,防止死循环或不循环。二. 实验要求根据要求编写完整的应用程序,学会使用For语句、Do语句编写单循环的方法。掌握用单重循环语句显示图形及进行数学运算的方法。三. 实验范例用单循环显示有规律的图形。运行界面如图所示。 代码如下:Public Class Form1 Inherits System.Windows.Forms.Form Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i% Dim s As String = , s1 As String For i = 1 To 10 s1 = Mid(s, 1, 2 * i - 1) Label1.Text &= Space(20 - 2 * i) & s1 & vbCrLf Next End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End SubEnd Class四. 实验内容1 设计一个程序,计算2200的偶数和。结果如下: 2. 用两个并列的循环实现如下图所示的界面。3. 分别利用For和Do循环语句求的值,当第i项的值10-4时结束。结果如下:4.计算的近似值,的计算公式为:结果如下:实验五 多重循环结构一. 实验目的(1) 掌握ForNext语句、WhileEnd while语句和DoLoop语句的嵌套使用。(2) 掌握多重循环的规则和程序设计方法。(3) 进一步加深理解循环的概念,掌握循环的规则及其执行过程。二. 实验要求通过实验范例的学习、验证,根据实验内容要求编写完整的应用程序,理解循环嵌套的概念,学会多重循环语句的使用,掌握多重循环的规则和程序设计的方法。三. 实验范例(1) 计算一个3位数组成水仙花的个数(一个数的各位的立方和等于这个数本身的数)。运行界面设计:使用一个Picture框,运行界面如图5-1所示。Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles MyBase.Load Dim a%, b%, c%, x% a = 1 : b = 0 : c = 0 For a = 1 To 9 For b = 0 To 9 For c = 0 To 9 x = 100 * a + 10 * b + c If x = a 3 + b 3 + c 3 Then 图5-1运行界面 TextBox1.Text = TextBox1.Text & vbCrLf & x & = & (a 3) _& + & (b 3) & + & (c 3) End If Next Next Next End SubEnd Class (2) 编写一个“求500以内的素数”程序。该程序运行后,会在窗体中显示500以内所有的素数,如图5-2所示。Public Class Form1 Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click Dim i% = 2, j% Do While (i = 500) j = 2 While j System.Math.Sqrt(i) Then TextBox1.Text = TextBox1.Text & i & vbCrLf End If i += 1 Loop End SubEnd Class图5-2 运行界面四. 实验内容(1) 我国古代数学家张丘建在“算经”里提出一个世界数学史上有名的百鸡问题:鸡翁一,值钱五,鸡母一,值钱三,鸡雏二,值钱一,百钱买百鸡,问鸡翁、母、雏各几何?请编写一程序。(2) 设计程序,求s=1+(1+2)+(l+2+3)+(1+2+3+n)的值。(3) 编写程序,求2!4!+n!的和(n=10)。(4) 编写程序,在窗体中输出如图5-3所示的图形。图5-3 菱形程序界面实验6 一维数组一、实验目的(1) 1掌握一维数组的声明、引用方法;(2) 2. 掌握一维数组的初始化和输入、输出的方法;(3) 3. 掌握与一维数组有关的常用算法,特别是排序算法;(4) 4. 初步掌握利用一维数组实现有关算法,掌握字符串数组、结构类型数组和常用字符串函数的使用。二、实验要求本课包含基础与验证型、综合与设计型两类实验。基础与验证型是本实验课的基本要求,要求学生全部完成;综合与设计型是较高要求,要求学生尽量理解、编程实现,完成4个完整的可运行的有关一维数组的VB.NET应用程序。具体要求:(1)掌握各种类型一维数组的声明和引用方法;(2)掌握VB.NET IDE环境下一维数组编程的调试方法,能发现、改正下标越界等常见错误;(3)掌握利用循环语句对一维数组进行赋值、输出的方法,以及一般处理的算法;(4)掌握字符串数组、结构类型数组的使用,能利用常用字符串函数实验数据的输入、输出(5)初步掌握结构类型数组的使用,能利用结构类型数组实现复杂数据的处理。三、实验范例1简单类型一维数组的声明和引用方法a声明一个数组变量来存储小学各年级的学生数:Dim students(4) As Integeri=0:students(i + 1) = 200 数组 students 包含 5 个元素,都是整型变量,元素的索引范围为从 0 到 4;第2个元素(二年级的学生数)被指定为200。b声明、创建并初始化一个字符类型数组,并赋初值,同时指定下标上限为2:Dim testChars () As Char = %c, &c, ctestChars数组共有3个字符型元素。 %c中单个 c 跟随在带引号的单个字符后,用于创建一个字符型数据。c声明、创建并初始化一个存储 判断正误题目答案的数组,并且指定元素值:Dim answers() As Boolean = True, True, False, True数组answers的长度为 4,其元素从索引 0 到索引 3d声明并创建一个字符串类型的数组,并在后续语句中提供2个元素值:Dim comments(30) As Stringcomments(0) = This is the first ments(5) = This is the sixth comment.变量 comments 中的数组长度为 31,索引 为0 和5 的元素被赋值,其他元素为默认值空()。2查错、排错要随机生成并显示范围为0100的10个整数:创建一个WINDOWS应用项目,在窗体中添加一个Label控件,双击窗体Form1,输入下列代码后调试运行。看看有几处错误?什么原因?如何改正?Dim a(), i%, n%For i = 0 To 9a(i) = Int(rnd()*101) next i label1.text & = a(i)说明:引用数组元素时,如果下标低于其下限或高于其上限,将引发 IndexOutOfRange Exception 异常。这不是语法错误,编译器无法检测到这种错误,因而在运行时才暴露,需要终止调试,加以改正。数组a未指定长度,假定需要存储10个整型数据,用label1输出全部元素值,在for循环结束后i=10,label1.text & = a(i)将引起下标越界错误。应改为:Dim a % (9), i%, n%For i = 0 To 9a(i) = Int(rnd()*101) label1.text & = a(i)next i 3结构类型数组的定义和使用下面定义一个结构类型数组stud,并引用其中的第6个元素:Structure studType Dim Name As String 姓名 Dim Sex As Char 性别 Dim Telephone As Long 电话 Dim School As String 学校 End StructureDim stud(100) As studType stud(5).Name=”李宁” : stud(5).Sex=”M”cstud(5).Telephone=64942196 : stud(5).School=”sit”4一维数组的最值、排序及输出要求:接收用户输入的10个整数,按从小到大顺序显示。解法:创建一个WINDOWS应用项目,在窗体中添加一个TextBox控件、一个Label和3个按钮。按钮文字分别为“输出”、“最大值”和“排序”。在“Public Class Form1”下定义变量: Dim inputNum(9), i, Max As Integer Dim inputStr(9) As String双击窗体控件,输入下列代码:Label1.Text = 请输入个整数,用,分隔:。双击“输出”按钮,输入下列代码: inputStr = Split(TextBox1.Text, ,)For i = 0 To 9 inputNum(i) = Val(inputStr(i)Next iLabel2.Text = For i = 0 To 9 Label2.Text &= CStr(inputNum(i) & ,Next i双击“最大值”按钮,输入下列代码: Max = inputNum(0) For i = 1 To 9 If Max inputNum(i) Then Max = inputNum(i) End If Next iLabel2.Text &= vbCrLf & 最大值是 & CStr(Max)双击 “排序”,输入下列代码后调试运行: Dim j%, temp% For i = 0 To 8 For j = i + 1 To 9 If inputNum(j) = 0 Then MsgBox(找到的位置为 & n) Else MsgBox(找不到)End Sub四. 实验内容(1) 用函数调用的方法计算:S=a+aa+aaa+aaaaaa 。(a为小于10的整数)运行界面设计如图9-2所示。提示:任意项aaaaaa可以定义成函数,通过s=s*10+a得到。S需定义成静态变量。图9-2 运行界面设计(2) 编一子过程ProcMin(a(),mina),求一维数组a中的最小值。主调程序随机产生10个-300 -400之间的整数,显示产生的数组中各元素;调用ProcMin子过程,显示出数组中的最小值。运行界面设计如图9-3所示。提示 :本实验需注意的是子过程的定义中参数个数、传值还是传地址的问题。本题的形参应有两个,一个是数组,是引用类型;另一个是求得的数组的最小值,要返回给调用过程;所以它们都应该是传地址的方式。图9-3 运行界面设计(3) 编一子过程MaxLength(s,MaxWord),在已知的字符串s中,找出最长的单词MaxWord。假定字符串s内只含有字母和空格,空格分隔不同的单词。程序运行界面如图9-4所示。提示:1. 首先利用InStr函数从s中从左开始找第一个出现的空格,利用Mid函数分离出空格前的一个单词,与最长单词比较。2. 取s中剩余字符串,重复(1),直到s为空。 图9-4 运行界面设计(4) 编一函数过程IsH(n),对于已知正整数n,判断该数是否是回文数,函数的返回值类型为布尔型。主调程序每输入一个数,调用IsH函数过程,然后在图形框显示输入的数,对于是回文数显示一个“”。运行界面设计如图9-5所示。提示:1 所谓回文数,是指顺读与倒读数字相同,即指最高位于最低位相同,次高位与次低位相同,以此类推。当只有一位时,也认为是回文数。2 回文数的求法,只要对输入的数(按字符串类型处理),利用MID函数从两边往中间比较,若不相同,就不是回文数。图9-5 运行界

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论