1、实验一 Visual Basic 环境和简单程序设计一、实验目的1掌握 Visual Basic 启动和退出的方法。2熟悉 Visual Basic 的集成开发环境。3掌握 Visual Basic 程序设计的基本步骤。4掌握基本控件(标签、命令按钮和文本框)的基本使用方法。二、实验内容1 启动 Visual Basic,然后创建一个“标准 EXE”工程。了解 Visual Basic 集成开发环境下各组成部分及其作用。【要求】(1)在集成开发环境中分别寻找“窗体窗口”、“属性窗口”、“工程资源管理器”、“窗体布局窗口”、“工具箱窗口”,熟悉它们的默认位置。(2)在“视图”或“工程资源管理器”
2、中切换显示“代码窗口”和“窗体窗口”。(3)在“视图”菜单中点击“立即窗口”,观察刚刚显示出来的“立即窗口”。(4)尝试分别将各部分关闭,然后再用“视图”菜单中对应的菜单命令将其显示。2 编写一个简单的应用程序。要求窗体的标题为“简单 VB 实验”;窗体中有一个标题为“显示”的按钮;单击该按钮后在窗体上显示红色的“广西师范学院”。【步骤】(1)设计应用程序的界面:在窗体上创建一个命令按钮 Command1、一个标签Label1。(2)设置对象的属性对象名称 属性名称 属性值Form1 Caption 简单 VB 实验Label1 ForeColor 红色Command1 Caption 显示(
3、3)编写事件代码:Private Sub Command1_Click()Label1.Caption = “广西师范学院“End Sub(4)程序的运行及保存。【提示】在窗体上显示“广西师范学院”有两种方法:(1)用 Print 方法:设置窗体的前景色为红色。(2)用一个标签控件:设置标签控件的前景色为红色。【思考】为什么在以上两种方法中在颜色的设置问题上有所不同?3 通过编程修改控件的属性。【要求】(1)进入程序设计的界面如图 1-1(a)。(2)点击“单击此处”按钮后程序运行的界面如图 1-1(b)。【步骤】(1)在窗体中创建一个标签 Label1、一个命令按钮 Command1。(2)
4、在属性窗口中设置对象的属性:对象名称 属性名称 属性值Form1 Caption 设计界面Label1 Caption 请留意此处Command1 Caption 单击此处(3)在 Command1 的 Click 事件中编写程序代码:Private Sub Command1_Click()Form1.Caption = “编程后界面 “Label1.Caption = “欢迎您使用 VB 6.0“Command1.Caption = “运行结果“End Sub【提示】可以通过两种方法设置对象的属性:(1)在程序设计状态,通过属性窗口对该属性进行修改或设置。(2)在程序运行状态,通过程序中的语
5、句动态地更改对象的属性。修改对象属性的语句格式:对象名.属性名称=新设置属性值实验二 顺序结构程序设计一、实验目的1掌握常量和变量、表达式的基本概念和正确书写格式。2掌握赋值语句和常用函数的正确使用方法。3掌握输入、输出对话框(InputBox 和 MsgBox)的基本使用方法。二、实验内容1 假设有变量 a=2,b=5,c=4,d=3,e=6,编写程序,计算表达式 a+bc and d*a=e 的值,将结果打印在窗体上。【提示】注意复合表达式的运算顺序。【思考】复合表达式按什么样的顺序运算?2 编写程序,界面如图 2-1 所示。使得单击一次按钮可以产生一个60,90之间的随机数并显示在标签
6、Label1 上,再求出该数的正弦值,将结果写在标签 Label2 上。【步骤】(1)设计应用程序的界面:在窗体上创建一个命令按钮 Command1、两个标签 Label1和 Label2。(2)设置对象的属性对象名称 属性名称 属性值Form1 Caption 随机数的正弦值Command1 Caption 下一个随机数Label1 Caption Label2 Caption (3)编写事件代码:Private Sub Command1_Click()Dim x!, y!Randomizex = Rnd * 31 + 60y = Sin(x)Label1.Caption = “随机数(60
7、-90):“ Next iEnd Sub(3)程序的运行及保存。【提示】本题目解法有两种:(1)对 3 位数的各位数组合进行穷举:利用 3 重循环,将 3 个个位数组成一个 3 位数进行判断。例如,3 位数的各位数从高位到低位依次为 a、b、c,则对应的 3 位数为a*100+b*10+c。(2)对所有 3 位数进行穷举:利用单循环对所有 3 位数进行穷举,循环内将一个 3 位数拆成 3 个个位数进行判断。例如,对 s678 进行拆解时:个位数s Mod 10;十位数(s10) Mod 10;百位数s100。当然,也可以将上述拆解过程写为一个循环(这时就是利用双重循环,内层循环即为拆解过程)。
8、实验五 数组及其应用一、实验目的1掌握数组的基本概念。2掌握数组的声明、引用。3掌握静态数组和动态数组的区别。4掌握控件数组。4掌握如何利用数组解决与数组相关的常用算法(特别是排序算法)。二、实验内容1 随机产生 10 个 0100 之间(包括 0 和 100)的整数,存放在一个数组中,然后求各元素之和、平均值,统计大于平均值的元素个数并把它们打印出来,如图 5-1 所示。【步骤】(1)设计应用程序的界面:在窗体上创建三个命令按钮 Command1、Command2 和Command3,四个标签 Label1、Label2、Label3 和 Label4,两个文本框 Text1 和 Text2
9、,两个图形框 Picture1 和 Picture2。(2)设置对象的属性对象名称 属性名称 属性值Command1 Caption 求和Command2 Caption 求平均值Command3 Caption 统计Label1 Caption 10 个随机整数分别为:Label2 Caption 各元素之和为:Label3 Caption 平均值为:Label4 Caption 大于平均值的元素为:Text1、 Text2 Text (3)编写事件代码:Option Base 1Dim a(10) As IntegerPrivate Sub Command1_Click()Dim i%,
10、sum%sum = 0For i = 1 To 10sum = sum + a(i)Next iText1 = Str(sum)End SubPrivate Sub Command2_Click()Text2 = Val(Text1) / 10End SubPrivate Sub Command3_Click()Dim i%For i = 1 To 10If a(i) Val(Text2) Then Picture2.Print a(i);Next iEnd SubPrivate Sub Form_click()Dim i%RandomizePicture1.ClsPicture2.ClsTe
11、xt1 = “Text2 = “For i = 1 To 10a(i) = Int(Rnd * 101)Picture1.Print a(i);Next iEnd Sub(4)程序的运行及保存。2 编写一个程序,删除数组中某个元素,如图 5-2 所示。【步骤】(1)设计应用程序的界面:在窗体上创建一个命令按钮 Command1,三个标签Label1、Label2 和 Label3,一个文本框 Text1,两个图形框 Picture1 和 Picture2。(2)设置对象的属性对象名称 属性名称 属性值Command1 Caption 删除Label1 Caption 删除前Label2 Cap
12、tion 删除后Label3 Caption 被删除元素的下标Text1 Text (3)编写事件代码:Option Base 1Dim a%(10)Private Sub Command1_Click()Dim i%, j%If Val(Text1) 10 ThenMsgBox “下标超出范围!“Text1 = “ElseFor i = Val(Text1) + 1 To 10a(i - 1) = a(i)Next iFor i = 1 To 9Picture2.Print a(i);Next iEnd IfEnd SubPrivate Sub Form_click()Dim i%Pictu
13、re1.ClsPicture2.ClsText1 = “For i = 1 To 10a(i) = Int(Rnd * 900 + 100)Picture1.Print a(i);Next iEnd Sub(4)程序的运行及保存。3 编写一个程序,求一个 45 矩阵中的最大元素,以及该元素所在的行号和列号,如图 5-3 所示。【步骤】(1)设计应用程序的界面:在窗体上创建一个图形框 Picture1,三个标签Label1、Label2 和 Label3,三个文本框 Text1、Text2 和 Text3。(2)设置对象的属性对象名称 属性名称 属性值Label1 Caption 最大元素Lab
14、el2 Caption 行号Label3 Caption 列号Text1、 Text12、Text3Text (3)编写事件代码:Option Base 1Private Sub Form_click()Dim a(4, 5) As Integer, i%, j%, max%, max_i%, max_j%Picture1.ClsRandomizeFor i = 1 To 4For j = 1 To 5a(i, j) = Int(Rnd * 101)Picture1.Print Tab(j - 1) * 6); a(i, j);Next jPicture1.PrintNext imax = a
15、(1, 1)max_i = 1max_j = 1For i = 1 To 4For j = 1 To 5If max max Then max = a(i)Next iEnd Sub(4)程序的运行及保存。3 编一个选择排序子过程,对已知的若干个整数按递增次序排序。【步骤】(1)编写事件代码和子过程:Option Base 1Private Sub Form_click()Dim a%(), n%, i%n = Val(InputBox(“)ReDim a(n)ClsPrint “For i = 1 To na(i) = Int(Rnd * 100)Print a(i);If i Mod 10
16、 = 0 Then PrintNext iPrintCall sort1(a()Print “For i = 1 To nPrint a(i);If i Mod 10 = 0 Then PrintNext iEnd SubPrivate Sub sort1(a() As Integer)Dim i%, j%, temp%For i = LBound(a) To UBound(a) - 1p = iFor j = i + 1 To UBound(a)If a(j) ”的按钮时,就将候选列表里当前被选中的项移动到选定列表最后;当点击标题为“【部件】中选择并加入【Microsoft Windows
17、Common Controls 6.0】,这时就可以看到控件栏中加入了好几个 ActiveX 控件,其中有工具栏控件、状态栏控件和图像列表控件(ImageList 控件)。工具栏中按钮的图标一般是从 ImageList 控件中选取,因而应先将选好的图片存入ImageList 控件中。图标可从“GraphicsBitmapsOffCtlBrLargeColor”子目录中选取。5 编写一程序,要求响应键盘的 4 个方向键,如图 8-4 所示,当按一次某方向键,就使图片向相应的方向移动 50 单位距离。 图 8-4 实验 8-5 程序运行界面实验九 文件一、实验目的1掌握文件的概念及其使用方法,注意
18、顺序、随机和二进制文件各自的特点和区别。2掌握文件系统控件、文件与目录的相关函数和语句的使用。3熟悉文件在应用程序中的作用和意义。二、实验内容1 设计一个运行界面如图 9-1 所示的应用程序,单击“Write”可以将 3 个文本框中的信息用“Write”语句写入“ D:aaa.txt”;单击“Print”可以将 3 个文本框中的信息用“Print”语句写入 “D:bbb.txt”。要求 3 个信息写在同一行。 程序运行后,用“记事本”同时打开“D:aaa.txt”和“D:bbb.txt”,比较它们结构有何不同?为什么?试说明“Write”和“Print”语句的相同和不同。2 如图 9-2 所示
19、,建立一个最简单的文本编辑器。文件的打开和保存可使用某一固定文件,例如,“d:test.txt”。3 编写一图片浏览器,如图 9-3 所示,要求当单击某图形或图像文件后在图像框中显示该图形或图像,文件列表框中应只显示.bmp、.jpg、.wmf、.ico、.gif 等几种常见类型的图形或图像文件。4 建立一个简易学生管理系统,如图 9-4 所示,用于输入、显示和修改学生的相关信息。数据按随机访问模式存放。【提示】随机文件的记录利用 Type 定义,字符串类型必须制定长度。实验十 图形图像程序设计一、实验目的1了解 VB 的图形功能。2掌握几个重要的图形方法。3掌握建立图形坐标系的方法。4熟悉简
20、单动画设计的方法。二、实验内容1 用 Pset 方法在窗体上画出 2000 个随机点,点的颜色随机,点的大小也随机在 14之间。【提示】随机点坐标值应该与窗体大小相关。2 如图 10-1 所示,对图形框(PictureBox)1 中的彩色图片进行关于 Y 轴的镜像处理并显示到图片框 2 中。【提示】首先保证两个图片框大小一致,然后用 Point 方法获取图形框 1 中的彩色图片的一点颜色值,并按照镜像方式用 Pset 方法填充到图片框 2 中去。为了使程序运行速度不至于太慢(因为循环次数过大),可以将两个图片框的 ScaleMode 设置为 Pixel 方式,这时,图片框的像素宽度和高度为 ScaleWidth 和 ScaleHeight。