VB实验3数组
VB 数组的应用

实验八数组的应用(一)1、验证实验一。
假定学生的成绩在数组XS_CJ(1 to 10)中,对应的姓名在数组XS_XM(1 To 10)中,单击按钮“排序”时,能按分数从高到低的排列,即排序后XS_CJ(1)和XS_XM(1)为第一名的成绩、姓名。
题目分析:本实验是完成一个对数组元素从大到小的排序。
可以采用教材中中介绍的冒泡法完成排序,在此介绍另一种简单的排序方法——比较交换法。
假设对A(N)数组中的数据从大到小排序,比较交换法的排序步骤如下:(1)将第一个数与第2个到第10个数依次比较,如果A(1)<A(J)(J=2,3,…,10),则交换A(1)和A(J);(2)将第2个数与第3个到第10个依次比较,如果A(2)<A(J)(J=3,…,10),则交换A(2)和A(J);(3)重复以上方法,将第I个数与第I+1个数到第10个数依次比较,如果A(I)<A(J)(J=3,…,10),则交换A(I)和A(J);共重复N-1轮。
换的不仅XS_CJ数组中的元素,而且对应的XS_XM数组中对应的元素也要进行交换。
(1)设计界面可参考如下图8.1所示。
用列表框LstOldMark和LstNewMark分别来显示排序前后学生的姓名和成绩。
(2)编写代码在窗体模块的声明段声明Option Base 1Dim XS_XM(10) As stringDim XS_CJ(10) As Single图8.1 设计界面在窗体的Load事件过程中完成对数据的输入。
For I = 1 To 10XS_XM(I) = InputBox("请输入第" & Str(I) & "个学生的姓名", "成绩排序")XS_CJ(I)=val(InputBox("请输入第" & Str(I) & "个学生的成绩", "成绩排序")) LstOldMark.AddItem XS_XM(I) & " " &XS_CJ(I)Next I在“排序”按钮的Click事件过程中完成排序,部分代码如下:‘用比较交换法进行排序For I=1 To 9For J=I+1 To 10If XS_CJ(I)<XS_CJ(J) Then‘交换学生成绩T=XS_CJ(I) :XS_CJ(I)=XS_CJ(J): XS_CJ(J)=T‘交换学生姓名T=XS_XM(I) : XS_XM (I)= XS_XM (J): XS_XM (J)=TEnd IfNext JNext I‘排序的结果显示于列表框LstNewMark 中,请自行补充完成。
10-第5章-数组-3 苏州大学VB

• 例:
– Private Sub Comd2_Click() – Dim a() As Integer – n = InputBox("", "", 10) – – For i = 1 To n – ReDim Preserve a(i) – a(i) = Rnd * 100 – Next i – – For i = 1 To n – Print a(i) – Next i – End Sub
第5章 数组的应用 章(三)来自苏州大学计算机学院 陈建明
jmchen@
1
主要内容
1. 2. 3. 4. 5. 动态数组 控件数组 排序算法(2) 排序算法 查找算法 数据编程(3) 数据编程
2
1. 动态数组
• 动态数组的定义
– 在程序运行其间重新定义数组的大小
• 动态数组的优点
– 控件名 下标值) 控件名(下标值 下标值
4)示例:用数组控件的方法编制 计算器 程序 )示例:
5
3. 排序算法(2) 排序算法( )
• 复习
– 选择排序 – 直接排序
• 冒泡排序(P124例5-10) 冒泡排序( 例 )
– 思路 – 程序 – 算法分析 – 算法的改进
6
4. 查找算法
• 顺序查找(P122 例5-8) 顺序查找( )
1 11 121 1331 14641
– 要求运用数组编程,结果以等腰三角形形式输出到 要求运用数组编程, Form上 上
2)求N个数中相邻四个数之和最大的数 ) 个数中相邻四个数之和最大的数
– – – 思路: 思路: 关键点: 关键点: 程序: 程序:
9
编程练习
• P132 习题 第7题 题 • P132 习题 第10题 题 • 2008春计算机等级考试题 春计算机等级考试题
VB实验三

实验报告三实验目的(1)掌握一维数组(静态、动态)定义及使用(2)掌握二维数组(静态、动态)定义及使用(3)掌握“控件数组”的使用(4)掌握数组相关算法(求最值,排序,查找)(5)通过数组巩固循环及多重循环程序设计实验内容【实验1】已知10个数为53、67、42、89、65、18、98、67、54、36,编写程序,使用Array函数存储这10个数并求和。
程序运行界面如下图所示。
(10分)掌握一维静态数组的定义及使用实验结果:【实验1 代码】Option Base 1Private Sub Form_Click()Dim a(), sum%sum = 0a = Array(53, 67, 42, 89, 65, 18, 98, 67, 54, 36)For i = 1 T o 10 Step 1sum = sum + a(i)Next iPrint "10个数字和为" & sumEnd Sub【实验1 典型结果】【实验2】动态数组声明及输入输出,程序运行界面如下图所示。
(10分)掌握动态数组的使用实验结果:【实验2 代码】Private Sub command1_Click()Dim a() As Integern = 3ReDim a(n)a(1) = 10a(2) = 20a(3) = 30Print a(1), a(2), a(3)Print "用Redim Preserve a(n)改变数组大小"n = 4ReDim Preserve a(n)a(4) = 40Print a(1), a(2), a(3), a(4)End Sub【实验2 典型结果】【实验3】编写程序,定义一个二维静态数组,输出下列矩阵并分别计算矩阵两条对角线元素之和。
(10分)12345678910111213141516171819202122232425⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦程序运行界面如下图所示。
VB数组程序设计

实验三数组程序设计一、实验目的通过实验掌握vb的数组的概念和使用。
二、实验设备1.PC机一台;2.VB 6.0集成开发环境。
三、实验内容及要求1. 编写程序实现方阵的运算示例。
点击“生成方阵A、B”按钮,允许用户输入方阵阶数,根据阶数随机产生两个方阵。
分别点击运算框中的命令按钮,完成相应的运算。
要求:方阵A、B、C采用动态二维数组存放;三个运算命令按钮使用命令按钮控件数组。
2.编写程序实现一个信息输入与查询系统。
用户从界面输入人员信息,点击新增按钮将信息加入记录数组;通过界面上的按钮完成人员信息的查询。
要求使用记录数组。
四、程序代码草稿五、实验结果(1)方阵运算最终代码:Dim A() As IntegerDim B() As IntegerDim C() As IntegerDim x As IntegerDim j As IntegerDim i As IntegerPrivate Sub Command1_Click()x = InputBox("请输入方阵阶数", "阶数") ShowRandomizeReDim A(x, x)ReDim B(x, x)Print "方阵A:"For j = 1 To xFor i = 1 To xA(j, i) = Int(10 * Rnd)Print Format(A(j, i), "0 "); "";Next iPrintNext jPrintPrint "方阵B:"For j = 1 To xFor i = 1 To xB(j, i) = Int(10 * Rnd)Print Format(B(j, i), "0 "); "";Next iPrintNext jEnd SubPrivate Sub Command2_Click(Index As Integer)ShowSelect Case IndexCase 0:PrintPrint "方阵A:"For j = 1 To xFor i = 1 To xPrint Format(A(i, j), "0 "); "";Next iPrintNext jPrintPrint "方阵B:"For j = 1 To xFor i = 1 To xPrint Format(B(i, j), "0 "); "";Next iPrintNext jCase 1:PrintPrint "C=A+B"RandomizeReDim C(x, x)For j = 1 To xFor i = 1 To xC(j, i) = A(j, i) + B(j, i)Print Format(C(j, i), "0 "); "";Next iPrintNext jCase 2:Print Print "C=A*B"RandomizeReDim C(x, x)For j = 1 To xFor i = 1 To xC(j, i) = A(j, i) * B(j, i)Print Format(C(j, i), "0 "); "";Next iPrintNext jEnd SelectEnd Sub程序运行结果考屏:(2)输入与查询系统最终代码:Dim M() As MemberDim x As IntegerPrivate Sub Command1_Click(Index As Integer)Dim i As IntegerDim j As IntegerSelect Case IndexCase 0Text1.Text = M(1).noText2.Text = M(1).nameText3.Text = M(1).classText4.Text = M(1).payCase 1For i = 1 To xIf M(i).no = Text1.Text And i <> 1 ThenText1.Text = M(i - 1).noText2.Text = M(i - 1).nameText3.Text = M(i - 1).classText4.Text = M(i - 1).payExit ForEnd IfNextCase 2For j = 1 To xIf M(j).no = Text1.Text And j <> x ThenText1.Text = M(j + 1).noText2.Text = M(j + 1).nameText3.Text = M(j + 1).classText4.Text = M(j + 1).payExit ForEnd IfNextCase 3Text1.Text = M(x).noText2.Text = M(x).nameText3.Text = M(x).classText4.Text = M(x).payEnd SelectEnd SubPrivate Sub Command5_Click()ReDim Preserve M(1 To (x + 1)) As Memberx = x + 1ClsM(x).no = Text1.TextM(x).name = Text2.TextM(x).class = Text3.TextM(x).pay = Text4.TextEnd SubPrivate Sub Command6_Click()Dim i As IntegerFor i = 1 To xIf Text2.Text = M(i).name ThenText1.Text = M(i).no Text3.Text = M(i).class Text4.Text = M(i).pay End IfNextEnd Sub 模块代码:Type Memberno As Longname As String * 5 class As String * 10 pay As LongEnd Type程序运行结果考屏:查询:六、实验中遇到的问题与解决方法或实验收获。
VB综合实验报告

华北科技学院计算机学院综合性实验实验报告课程名称程序设计语言(VB)实验学期 2015 至 2016 学年第二学期学生所在系部安全工程学院年级 2015级班级安卓B151 学生姓名徐艳强学号 201510044218 任课教师李冬艳实验成绩计算机学院制《程序设计语言(VB)》课程综合性实验报告题目描述如下:在“数学运算”窗体上有一个名称为cmd1、标题为“计算”的命令按钮;两个水平滚动条,名称为hs1和hs2,其max属性均为100,min属性为1;四个标签,名称为lab1、lab2、lab3和lab4,标题分别为“运算数1”、“运算数2”、“运算结果”和空白;此外包含四个单选按钮,标题为“+”、“-”、“*”和“/”。
程序运行后,移动两个滚动条中的滚动框,用滚动条的当前值作为运算数,如果选中一个单选按钮,然后单击命令按钮,相应的计算结果将显示在label4中。
6.单击“退出”菜单,退出程序运行。
四.实验结果及分析1.菜单(1)功能主要功能就是把每个小程序串联起来,使其连续、具有整体性。
分为数组应用、控件应用、过程应用、和退出四个一级菜单。
在数组应用一级菜单下有数组操作二级菜单、控件应用一级菜单下有选择器和数学运算两个二级菜单、过程应用一级菜单下有字符转换二级菜单。
其中一级菜单中,单击退出后实现结束程序的目的,二级菜单对应每个程序,单击二级菜单会实现出现对相应的程序窗体。
(2)界面抓取(3)实现代码Private Sub 数学运算_Click()数学运算窗体.ShowEnd SubPrivate Sub 数组操作_Click()数组操作窗体.ShowEnd SubPrivate Sub 退出_Click()EndEnd SubPrivate Sub 选择器_Click()选择器窗体.ShowEnd SubPrivate Sub 字符转换_Click()字符转换窗体.ShowEnd Sub2.初始界面(1)功能人员分工介绍。
VB教案之数组

VB教案之数组VB 教案之数组授课对象:初一兴趣班学生) 教学过程: 一、引入:在学习if语句时,我们曾做过一个题,在文本框内输入正整数,判断这3个数的大小然后将他们按从小到大的顺序输出。
if a>b then temp =a:a=b : b =temp end if if a >c then temp =a : a=c :c= temp end if if b>c then temp = b : b=c : c=temp end if print 这三个数从小到大的顺序是; a;b;c; 这是3个数的大小排序,假如多于三个数的排序呢? 当然我们还可以用IF语句予以解决,但大家可以想象到它的麻烦程度,其实,我们可以用数组来解决这个问题。
那么何谓数组呢?二、1)新课讲授:所谓数组是一群数据类型相同的变量,在内存里能拥有连续存放空间的集合。
数组在使用之前必须先声明,声明的目的是确定内存中应保留多少连续空间给此数组使用,并定出数组中每一个元素的数据类型。
语法:dim 数组名称(下标1,[下标2[……]])[as 数据类型] 功能:声明所指定数据类型为一维(二维……)数据 eg : dim a(6) as integer 声明一个a(6)的数组,其包含了a(0)---a(6)7个整型变量。
数组的默认下标值从0开始,假如你觉得不习惯的话,可以用用这个方式声明: dim 数组名称(下界to上界[下界to上界][……])[as 数据类型] 假若要定义a(1)----a(6)的整型数组,则可以这样写: dim a(1to 6) as integer 请学生判断以下下列数组说明语句是否正确,说明原因:(1) Dim a(10) as integer (2) Dim b(-10) as integer /错误没有用关键之to显示知名下标范围。
(3)Dim c(5,3)as byte (4)Dim y() /错误,只有重定义语句才可以不带下标2)回到我们刚上课讲的内容,如何利用数组解决数字的排序问题呢?这里我们先介绍两个函数:随机函数Rnd 产生介于0到1之间的函数随机数种子函数Randomize 在Rnd函数之前使用,以当做随机数产生器的种子。
VB实验345 过程(1)

实验3 Sub过程一.目的和要求(1)熟练掌握代码编辑窗口操作。
(2)掌握Sub过程的定义。
(3)熟练掌握Sub过程的参数传递。
(4)掌握Sub过程变量的有效范围。
二.内容和步骤在VB.NET中,过程分为事件过程和通用过程。
事件过程在前面已练习过,下面主要练习通用过程。
通用过程的定义与事件过程相同,它直到被调用时才起作用。
过程调用时的参数传递分为按地址和按值传递两种。
通用过程的有效范围可分为Public和Private,存储类型可以使用局部变量,在本过程结束就释放。
也可以用Static定义过程中所有的变量为静态变量,在调用结束后仍保留其值。
【实验4-1】编写程序实现:插入排序。
(要求使用通用过程)参考课本105页上机练习二Public Class Form1Inherits System.Windows.Forms.FormConst N = 10 '常量,表示数组元素个数Dim Arr(N - 1) As Integer'定义数组Private Sub Ins_sort(ByV al Sort() As Integer)Dim i, k, temp, N As IntegerN = UBound(Sort, 1)For i = 1 To N '本循环用来实现插入排序temp = Sort(i)For k = i - 1 To 0 Step -1 '本循环找到应插入的位置并移动数组元素If (temp > Sort(k)) ThenExit ForElseSort(k + 1) = Sort(k) '元素位置后移End IfNext kSort(k + 1) = temp '插入到该位置处Next iEnd SubPrivate Sub Button1_Click(ByV al sender As System.Object, ByV al e As System.EventArgs) Handles Button1.ClickDim i As IntegerRandomize() '随机数初始化TextBox1.Text = ""For i = 0 To N - 1 '本循环的功能是产生数组元素值并显示Arr(i) = Int(90 * Rnd()) + 10TextBox1.Text = TextBox1.Text + CStr(Arr(i)) + " "Next iEnd SubPrivate Sub Button2_Click(ByV al sender As System.Object, ByV al e As System.EventArgs) Handles Button2.ClickDim i As IntegerCall Ins_sort(Arr) '调用插入排序过程TextBox2.Text = ""For i = 0 To N - 1 '显示排序后的数组各元素值TextBox2.Text = TextBox2.Text + CStr(Arr(i)) + " "Next iEnd SubEnd Class【实验4-2】编写程序实现:用选择法对数组中的整数按由小到大排序(要求使用通用过程)选择排序算法:先将数组a中的最小数与第一个元素a(0)比较,当a(0)大时就对换;再将数组中剩余数中最小数与第二个元素a(1)比较,当a(1)大时就对换;依次类推。
vb程序实验报告

vb程序实验报告VB 程序实验报告一、实验目的通过本次实验,深入了解和掌握 Visual Basic(VB)程序设计的基本概念、语法和编程技巧,提高解决实际问题的能力,培养逻辑思维和创新能力。
二、实验环境操作系统:Windows 10开发工具:Microsoft Visual Basic 60三、实验内容本次实验主要包括以下几个方面的内容:1、界面设计使用 VB 的窗体设计器,创建一个简单的用户界面,包含文本框、按钮、标签等控件,并设置其属性,如字体、颜色、大小等,以实现美观和友好的用户交互。
2、变量与数据类型在程序中声明不同类型的变量,如整数型(Integer)、字符串型(String)、布尔型(Boolean)等,并进行赋值和运算操作,理解不同数据类型的特点和适用场景。
3、控制结构运用顺序结构、选择结构(IfThenElse、Select Case)和循环结构(ForNext、WhileWend)编写程序,实现条件判断和重复执行的功能,例如计算阶乘、判断素数、打印九九乘法表等。
4、数组与过程定义数组来存储和处理大量的数据,掌握数组的声明、初始化和遍历操作。
同时,学习使用过程(Sub 过程和 Function 过程)来封装可重复使用的代码块,提高程序的可读性和可维护性。
5、文件操作实现对文本文件的读写操作,包括创建文件、写入数据、读取数据和关闭文件,了解文件处理在实际应用中的重要性。
四、实验步骤1、界面设计(1)打开 Microsoft Visual Basic 60,新建一个标准 EXE 工程。
(2)在窗体上添加所需的控件,如文本框 Text1、Text2,命令按钮 Command1、Command2,标签 Label1 等。
(3)通过属性窗口设置各个控件的属性,如 Text1 的 Text 属性为空,Command1 的 Caption 属性为“计算”,Label1 的 Caption 属性为“结果:”等。
VB程序设计实验报告

《VB程序设计》实验单元二实验报告专业班级:新闻班姓名:学号:指导教师:完成时间:一、实验题目数组和自定义类型二、实验环境Visual 程序软件三、实验目的1.掌握数组的声明、数组元素的引用。
2.掌握固定长度数组和动态数组的使用差别。
3.掌握数组常用的操作和常用算法。
4.掌握列表框和组合框的使用。
5.掌握自定义类型及数组的使用。
四、实验内容1.随机产生30—100(包括30、100)的10个正整数,求最大值、最小值、平均值,并显示整个数组的只和结果。
2.随机产生20个学生成绩,统计各分数段人数。
即0~59、60~69、70~79、80~89、90~100,并显示结果。
五、实验步骤1.打开VB界面,建立工程2.在窗体窗口设置界面3.属性窗口控件对象属性设置4.编写程序代码5.运行程序及调试6.程序建立,保存工程文件六、实验结果第1题:第2题:七、实验体会编程虽然有些复杂,但是在一步步的学习探索中我也找到了其中的乐趣,看着自己一点点地在进步,真的很兴奋很激动。
2.在这次实验课题中,我在学习、参考书中的案例的同时,还上网查询了一些小的课外知识,例如:如何改变Print之后的字体颜色、字号、位置等并加以尝试、应用。
在我实验成功时,内心真的是抑制不住地开心。
3.当然,实验的过程,并不是一帆风顺的,然而,只要静下心来,仔细思考,问题总能解决的。
“世上无难事,只怕有心人”,在今后的学习中,我也要敢于面对困难、着力解决,把困难看成挑战,努力超越自我。
4.数组很奇妙,我想更进一步地了解它、用VB使用它,掌握常用的操作和算法。
VB实验案例(数组)

实验五数组一、控件属性的设置 (滚动条)1、在名称为Forml的窗体上添加一个名称为H1水平滚动条,请在属性窗口中设置它的属性值,满足下列要求:它的最小刻度值为1,最大刻度值为100,在程序运行时鼠标单击滚动条上滚动框以外的区域(不包括两边按钮),滚动框移动10个刻度。
再在滚动条下面画两个名称分别为L1、L2的标签,并分别显示1、100,运行时的窗体如图5-1所示。
工程文件名保存为sy5-1.vbp,窗体文件名为sy5-1.frm。
2、在名称为Form1的窗体上添加一个名称为HS1的水平滚动条,其刻度值范围为1 -100;添加一个命令按钮,名称为C1,标题为"移动滚动框"。
请编写适当的事件过程,使得在程序运行时,每单击命令按钮一次(假定单击次数不多于10次),滚动框向右移动10个刻度。
程序运行时的窗体如图5-2所示。
要求程序中不得使用变量,事件过程中只能写一条语句。
工程文件名保存为sy5-2.vbp,窗体文件名保存为sy5-2.frm。
3、在名称为Form1的窗体上画一个图片框,其名称为Picture1、一个水平滚动条,名称为HScroll1,和一个命令按钮,名称为Command1,标题为"设置属性",通过属性窗口在图片框中装入一个图形(文件名为pic1.jpg,位于考生目录下),图片框的高度与图形的高度相同,图片框的宽度任意(如图1所示)。
编写适当的事件过程,程序运行后,如果单击命令按钮,则设置水平滚动条的如下属性:Min 100Max 1500LargeChange 100SmallChange 10之后就可以通过移动滚动条上的滚动块来放大或缩小图片框。
程序运行后的窗体如图5-3所示。
要求程序中不得使用任何变量。
工程文件名为sy5-3.vbp,窗体文件名为sy5-3.frm。
4、在控件属性1文件夹下有一个工程文件sy5-4.vbp,窗体上有一个圆和一个矩形,还有水平和垂直滚动条各一个。
VB实验三-实验报告---2016

实验报告三课程VB程序设计实验项目VB数组应用(6学时) 成绩专业班级国际经济与贸易1501姓名邓成元学号 2 实验日期实验目的(1)掌握一维数组(静态、动态)定义及使用(2)掌握二维数组(静态、动态)定义及使用(3)掌握“控件数组”的使用(4)掌握数组相关算法(求最值,排序,查找)(5)通过数组巩固循环及多重循环程序设计实验内容【实验1】对一维数组A(1 to 10)先赋值1、3、5、7、9、11、13、15、17、19,然后再输出。
程序运行界面如下图所示。
(5分)掌握一维静态数组的定义及使用实验结果:【实验1 代码】Option Base 1Dim A(1 T o 10) As IntegerPrivate Sub Command1_Click()Dim i As IntegerFor i = 1 T o 10A(i) = 2 * i - 1Next iEnd SubPrivate Sub Command2_Click()Dim i As IntegerFor i = 1 T o 10Print A(i)Next iEnd SubPrivate Sub Form_Load()End Sub【实验1 典型结果】【实验2】用Array函数对一维数组进行赋值,程序运行界面如下图(5分)掌握一维动态数组的定义及使用实验结果:【实验2 代码】Option Base 1Dim aPrivate Sub Command1_Click()a = Array(1, 3, 5, 7, 9, 11, 13, 15, 17, 19)End SubPrivate Sub Command2_Click()Dim i As IntegerFor i = 1 T o 10Print a(i);Next iEnd SubPrivate Sub Form_Load()End Sub【实验2 典型结果】【实验3】动态数组声明及输入输出,程序运行界面如下图所示。
VB实验三 实验报告

实验报告三实验目的(1)掌握Function过程的定义及调用(2)掌握Sub过程的定义和调用(3)掌握过程调用之间参数传送的方法(4)掌握变量的作用域实验内容第7周实验内容【实验1】、【实验2】、【实验3】其中【实验1】可以查考教材P127例6-1【实验1】编写计算n! 的函数过程,调用该过程,计算1!+2!+3!+……+10!之和(10分)实验结果:【实验1 代码】【实验1 典型结果】【实验2】编写计算n! 的子过程,调用该过程,计算1!+2!+3!+……+10!之和(10分)实验结果:【实验2 代码】【实验2 典型结果】【实验3】编写计算n!的函数过程,调用该过程,计算e x的近似值(10分)e x=1+x/1! +x2/2!+x3/3!+ ……+x n/n!要求:1)x的值用InputBox函数输入2)要求精度:x n/n!<0.000001实验结果:【实验3 代码】【实验3 典型结果】【实验4】编写程序输出200~300之间的素数。
(10分)要求:1)利用函数过程判断每个数是否是素数,是素数则返回1,否则返回0 2)将素数输出到列表框实验结果:【实验4 典型结果】【实验5】编写程序验证100以内数的哥德巴赫猜想(任意一个大于6的偶数可以表示成两个素数之和),要求素数判断用函数过程实现。
(15分)实验结果:【实验5 代码】【实验5 典型结果】【实验6】编写一个Sub过程用于将一个数据插入到有序数组中,使用这个sub过程实现从一个顺序文件中读入一组有序数,将数据55插入到有序数组中,并将整个数组存入顺序文件c:\result1.txt内。
(10分)实验结果:【实验6 代码】【实验6 典型结果】【实验7】编写一个通用子过程实现将某个数据从数组中删除的功能,使用这个sub过程将数据55从有序数组(3,6,9,12,27,36,40,55,59,62,77)中删除,然后将数组存入顺序文件c:\result2.txt内。
VB实验3

需要提交的文件 GUI\G3_04.vbp GUI\G3_04.frm GUI\G3_04.exe GUI\G3_04.jpg(结果图) (结果图)
图一
图二
图三
需要提交的文件:GUI\ 需要提交的文件:GUI\G3_01.vbp GUI\G3_01F1.frm(对应第一个Form文件 对应第一个Form文件) GUI\G3_01F1.frm(对应第一个Form文件) GUI\G3_01F2.frm (对应第二个Form文件) GUI\ (对应第二个Form文件) 对应第二个Form文件 GUI\ GUI\G3_01.exe GUI\G3_01A.jpg(图一) GUI\G3_01A.jpg(图一) GUI\G3_01B.jpg(图二) GUI\G3_01B.jpg(图二) GUI\G3_01C.jpg(图三) GUI\G3_01C.jpg(图三)
G3_03: 制作趣味调色板 设计一个趣味调色板。通过改变红、 设计一个趣味调色板。通过改变红、绿、蓝三种基本颜色 的比例,显示调色结果。 具体步骤: 的比例,显示调色结果。 具体步骤:
1、在界面上放置3个滚动条控件(HScrollBar水平滚动条), 在界面上放置3个滚动条控件(HScrollBar水平滚动条), 水平滚动条 个标签(label)控件, 个形状(shape)控件, 4个标签(label)控件,1个形状(shape)控件,其中形状控 件是用来显示调出的颜色结果的, 件是用来显示调出的颜色结果的,标签控件则分别用来静态显 调色板”信息, 示“红”、“绿”、“蓝”和“调色板”信息,三个滚动条则 用来在程序执行时调整三原色的配比比例。 用来在程序执行时调整三原色的配比比例。 2、形状控件shape的初始设置:Shape属性设置值为“oval” 形状控件shape的初始设置:Shape属性设置值为“ shape的初始设置 属性设置值为 或者“circle”;Backstyle属性设置值为 属性设置值为“ 或者“circle”;Backstyle属性设置值为“opaque” 。 3、程序中使用RGB函数。该函数的完整格式: 程序中使用RGB函数。该函数的完整格式: RGB函数 RGB(red,green,blue) RGB(red,green,blue) 其中的red green、blue分别代表红 red、 分别代表红、 蓝的三个整型数据, 其中的red、green、blue分别代表红、绿、蓝的三个整型数据, 其值在0 255之间 如果超过255 则当作255处理)。 之间( 255, 255处理 其值在0~255之间(如果超过255,则当作255处理)。 合理搭配这三个整型数据,就可以得到全部色彩。 合理搭配这三个整型数据,就可以得到全部色彩。
VB程序设计--数组

2.数组的逻辑结构和存储结构
例如:声明一维整型数组N(8) N(8)在内存中排列示意图:
N(1) N(2) N(3) N(4) N(5) N(6) N(7) N(8)
Dim N%(8)
例:从键盘随意 输入8个数,将 这8个数从大到 小排列输出。
二维数组的逻辑结构
二维数组的逻辑结构:可以看成一个二维表格或看成 一个矩阵。数组元素的第一个下标值表示该元素在表 格中的行号,第二个下标值表示该元素在表格中的列 号。 例如:声明二维数组:DIM W%(4,3)
交换后
9 7 5 3 1 10 8 6 4 2
3. 二维数组的输入和输出
Dim a%(4, 2) For i = 0 To 4 For j = 0 To 2
a(i, j) = Val(InputBox("请输入第(" & i + 1 & "," & j + 1 & ")元素"))
Picture1.Print Format(a(i, j), "@@@@@"); Next j Picture1.Print Next i
Hale Waihona Puke 数组的概念整型一维数组 N(1)
• 具有相同类型的一组变量作为一个整体,N称(2为) 数组。 ┋
• 数组占据一块内存区域,数组名是这个区域的名称,
区域中的每个内存单元都有自己的地址,该地址用 ┋
下标表示,即标识了数组中的每个元素。
• 定义数组的目的就是通知系统为其留 出所需要的空间,且同名数组中的元 素按一定的顺序连续存放。
x(10)=100
' 对x(10)这个数组元素赋值
Vb(VBA)数组操作

Vb(VBA)数组操作与Array()和Split()相比,由工作表区域创建数组更加直观而简易,一个等号便解决问题:如:用Sheet2工作表A1:E83的数据创建一个数组:Private Sub CommandButton1_Click()arr = Sheet2.Range("a1:e83")End Sub如果把该数据复制到Sheet1工作表相同区域,用数组操作,代码如下:Private Sub CommandButton1_Click()arr = Sheet2.Range("a1:e83")Range("a1:e83") = arrEnd Sub共两句,前一句把数据保存到数组,第二句,把数组内容写入到工作表。
选择第3行代码,按F9设置断点。
点击按钮运行代码,到该行,程序自动中断,此时,可从本地窗口中观察到运行结果,一个83行2列的数组已经创建。
Filter()函数在一维数组中搜索文本型数据,并把结果保存到指定的数组中。
A1单元格是以逗号分隔的姓名串,部分有重复,要求剔除其中重复的姓名,把不重复的姓名写入单元格A2向右的区域。
第一步,把所有姓名保存到数组xm()中;第二步,建立一个数组Arr()保存结果,遍历xm()过程中,检查Arr()中是否存在当前的姓名,用命令:Temp = Filter(Arr, xm(i)) '在数组Arr()中搜索当前值xm(i),如果找到,结果保存到Temp()数组中,如果找不到,返回一个空的数组Temp()根据Temp()数组的大小,可以知道当前值xm(i)是不是一个重复的值。
Split()把一个文本,根据指定的分隔符,建立一个数组。
看一个实例:单元格A1中有一串姓名:朱清燕(女),林鑫,林秋静(女),林永鑫,林云艳(女),林嘉惠(女),曾文婷(女),林悦,陈诚,林伟健,赖紫岚(女),曾雁(女),赖文强,钟娟(女),张琪(女),林文彬,黄晓婷(女),李朕,林依婷(女),林佳利(女),曾德福要求:用Split(),把这串文本创建为一个数组:Sub test()XM = Split(Range("a1"), ",")End Sub同样可以用本地窗口检查转换结果。
VB-实验-数组排序

数组实验二:对于一个给定的整数数组,将数组中的元素按值的(递增)不减排序。
程序运行后的结果如下:实验二的主要步骤:1、在G盘上创建一个VBTest0731的文件夹。
2、新建一个Visual 的Windows应用程序项目Array2。
打开Visual 2005开发环境,从菜单中选择“文件”|“新建项目”,弹出“新建项目对话框”,在对话框的“项目类型”中选择“Visual Basic|Windows”,在模板中选择“Windows应用程序”。
输入项目名称为Array2,如图1,点击“确定”进入项目开发环境。
图1新建项目3、保存项目到G:\VBTest0731目录下,项目名称为Array2.在项目开发环境中,选择菜单中选择“文件”|“全部保存”,弹出“保存对话框”,点击“游览”按钮,选择G:\VBTest0731文件夹,输入名称Array2,如图2。
图2保存项目3、界面设计从工具箱中拖两个文本框TextBox控件、两个标签控件Label与一个按钮Button控件到窗体上,设计界面如图3。
图3程序界面按表1设置各控件的属性。
控件属性属性值Form Name FrmSort Text 对数组进行排序Label Text 请输入数组的元素,以逗号隔开:Label Text 排序后的结果:TextBox Name txtInput TextTextBox Name txtRes TextButtonName btnSortText 排序Click事件btnSort_Clcik打开“设计器”窗口,用鼠标在程序界面中Button“排序”上双击,产生btnSort_Clcik 事件,并自动切换到“代码”窗口。
在btnSort_Click中编写如下代码:Private Sub btnSort_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles btnSort.Click'定义一个变量s用来保存从TextBox输入的字符串Dim s As String'将TextBox输入的字符串保存到变量s中s = txtInput.Text'定义一个字符串数组strs 用来存放从界面TextBox中输入的数字Dim strs() As String'将字符串s中数据按逗号分隔开,并保存到字符串数组strs中strs = s.Split(",")'定义一个整数数组ints 来存放从界面输入的经过转换后的数字Dim ints(strs.Length - 1) As Integer'定义循环计数变量iDim i, j As Integer'将字符串数组转换成整数数组,Cint是一个函数,用来将字符串转换成数字For i = 0 To strs.Length - 1ints(i) = CInt(strs(i))Next'下面的代码用来对数组ints 中元素按从小到大进行排序Dim k As Integer'k用来记录程序运行过程中的那个最大元素的下标值Dim tmp As Integer'定义一个临时变量tmp来存放元素交换时的中间结果k = 0For i = 0 To ints.Length - 1 '第一层循环,依次处理数组中的每个元素For j = i To ints.Length - 1 '第二层循环,从数组i到无级最后的元素中选择一个最小的元素,放置到下标i处If ints(i) > ints(j) Then'if语句块表示判定当ints(i)中元素值大于其他元素时时,将两个元素的位置进行交换tmp = ints(i)ints(i) = ints(j)ints(j) = tmpEnd IfNextNext'程序计算完成,数组ints中的保存的是排序后的结果,通过程序界面上的txtRes控件显示结果 txtRes.Text = ""'首先清空内容'循环,对排序后的数组ints中的元素进行显示For i = 0 To ints.Length - 1txtRes.Text = txtRes.Text & ints(i)txtRes.Text = txtRes.Text & " "'排序后的元素用空格隔开NextEnd Sub5、运行程序,测试结果按F5运行程序,随机输入一组数据,点击“排序”按钮,测试结果的正确性。
【VB实验报告】第三次实验报告

软件技术实验报告班级01021101 学号2011300341 姓名闫昊第三次实验:实验内容及完成情况:设计一个可以进行四则运算的简单计算器。
该计算器除了可以进行加、减、乘、除、求模(取余)等简单的四则运算外,还要求可以进行四则混合连算,并具有符合计算器日常使用习惯的容错纠错功能。
具体步骤如下:①在界面上建立按钮控件数组:首先在窗体中置入一个命令按钮控件后,将其激活并点击右键通过“复制”、“粘贴”的方法依次产生19个一样的命令按钮控件,其中在创建第一个“粘贴”控件时VB会询问“是否要创建控件数组?”回答“是”即可开始依次创建该控件数组。
②按钮属性的设置:将各按钮的caption属性分别设置为0, 1, 2…… 9,+、-、×,/,Mod,=,cls,Exit,注意在设置这些属性时其值与按钮控件的Index属性的对应性。
③其它控件的属性设置:文本框作为显示操作数和结果的控件,应遵循一般计算器的显示习惯,将其Alignment即对齐属性设置为“Right”,此外,将各控件相关的字体、字号等设置为统一风格。
④在程序的通用区定义四个窗体层变量:num1、num2、sum、act、前三个为双精度、act 为整型变量。
⑤编写进行四则运算所需的程序作为命令按钮的单击事件过程。
创新亮点:(如果没有可以空缺)采用了众多颜色,一概源程序灰色的基调,活泼生动而又不张扬。
完成情况和存在问题:初步会使用Select语句使用方法。
收获与体会:经过一晚上的上机实验,平时在课堂上很多不会的地方得到了很清楚的解决。
老师也很有耐心地教我解决一些意外发生的问题。
我懂得了实践出真知的道理。
备注:。
VB数组应用实验报告

实验名称:VB程序设计实验类别:课程上机适用专业:计算机科学与技术姓名:徐申毅实验报告一、内容数组及应用二、目的(1)掌握一维数组和二维数组的定义及引用方法(2)掌握动态数组的定义和使用(3)能应用数组解决一些常见问题,如复杂统计,平均值,排序和查找等。
三、设计思路(1)首先定义一个一维数组生成10个二位数,假设第一个数为最大数,让第二个数与第一个数比大小,若大于,则交换值,循环至最后一个数,求出最大值,然后求和算出平均值,用选择法进行排序,Private Sub cmdinsert_Click() '数据插入,x = Val(InputBox("输入要插入的数据:")),将新的数组进行排序。
(2)定义二维数组,i为行数,j为列数;n为输出的行数,'第一列和主对角线为1s(i, 1) = 1,s(i, i) = 1;For i = 3 To n For j = 2 To i - 1,s(i, j) = s(i - 1, j - 1) + s(i - 1, j)实现每一个数等于它上面一行的同一列与前一列数之和。
(3)定义动态数组,ReDim Preserve a(n) '动态存储数组a增加1个元素,前n-1个元素值保持不变。
然后用冒泡法对数组中的元素进行排序,输出排序后的结果。
四、源程序Option Base 1Option ExplicitDim a(11) As Integer ' 定义数组Private Sub cmdcreat_Click() '产生的一维数组Dim i As IntegerPicture1.ClsPicture1.Print "产生的一维数组为:"RandomizeFor i = 1 To 10a(i) = Int(Rnd * 20 + 10)Picture1.Print a(i);Next iPicture1.PrintEnd SubPrivate Sub cmdmax_Click() '求最大元数及所在的位置Dim max As Integer, p As Integer, i As Integermax = a(1) ' 假设第一元素就是最大元素p = 1For i = 2 To 10If a(i) > max Thenmax = a(i)p = iEnd IfNext iPicture1.PrintPicture1.Print "第" & p; " 个元素" & a(p) & " 为最大元素" End SubPrivate Sub cmdave_Click() '计算平均值Dim ave As Single, i As IntegerFor i = 1 To 10ave = ave + a(i)Next iave = ave / 10Picture1.PrintPicture1.Print "产生的随机数平均值为:" & aveEnd SubPrivate Sub cmdsort_Click() '使用选择法排序Dim i%, j%, p%, t%For i = 1 To 9p = iFor j = i + 1 To 10If a(p) > a(j) Then p = jNext jt = a(i): a(i) = a(p): a(p) = tNext iPicture1.PrintPicture1.Print "排序后的一维数组为:"For i = 1 To 10Picture1.Print a(i);Next iPicture1.PrintEnd SubPrivate Sub cmdinsert_Click() '数据插入Dim x%, p%, i%x = Val(InputBox("输入要插入的数据:"))p = 1Do While x > a(p) And p <= 10p = p + 1LoopFor i = 10 To p Step -1a(i + 1) = a(i)Next ia(p) = xPicture1.PrintPicture1.Print "插入后的一维数组为:"For i = 1 To 11Picture1.Print a(i);Next iEnd SubPrivate Sub Command1_Click()Dim s() As Integer, i%, j%, n%Form1.Clsn = Val(Text1)ReDim s(n, n)'第一列和主对角线为1For i = 1 To ns(i, 1) = 1s(i, i) = 1Next iFor i = 3 To nFor j = 2 To i - 1s(i, j) = s(i - 1, j - 1) + s(i - 1, j)Next jNext i'打印杨辉三角For i = 1 To nFor j = 1 To i' 让每个数据占4列输出Print Spc(4 - Len(Str(s(i, j)))); s(i, j);Next jPrintNext iEnd SubDim a() As String, n%Private Sub Text1_KeyPress(KeyAscii As Integer)Dim i As Integer, j As Integer, k As Integer, t As StringIf KeyAscii = 13 Thenn = n + 1ReDim Preserve a(n) '动态存储数组a增加1个元素,前n-1个元素值保持不变。
vb实验报告三

vb实验报告三VB实验报告三引言:VB(Visual Basic)是一种基于事件驱动的编程语言,广泛应用于Windows操作系统上的软件开发中。
本篇实验报告将详细介绍我在VB实验三中的实验过程、结果和分析。
实验目的:本次实验旨在通过VB编程实现一个简单的学生信息管理系统。
通过该系统,能够实现学生信息的录入、查询、修改和删除等功能,并将数据存储在数据库中。
实验步骤:1. 设计数据库结构:在实验前,首先需要设计数据库的表结构。
我选择了三个字段:学生姓名、学生年龄和学生性别。
2. 创建VB窗体:打开VB开发环境,创建一个新的窗体。
在窗体上设计相应的控件,如文本框、按钮和标签等,以实现学生信息的录入和操作。
3. 连接数据库:使用VB提供的ADO(ActiveX Data Objects)技术,连接到事先创建的数据库。
通过VB代码,建立与数据库的连接,并打开数据库。
4. 实现数据录入功能:在VB窗体上添加文本框和按钮,通过编写相应的事件处理程序,实现学生信息的录入功能。
当用户在文本框中输入完整的学生信息后,点击按钮即可将数据保存到数据库中。
5. 实现数据查询功能:在VB窗体上添加查询按钮和文本框,通过编写事件处理程序,实现学生信息的查询功能。
用户可以在文本框中输入学生姓名或其他关键词,点击查询按钮后,系统将从数据库中检索相关数据,并显示在窗体上。
6. 实现数据修改和删除功能:在VB窗体上添加修改和删除按钮,通过编写事件处理程序,实现学生信息的修改和删除功能。
用户可以选择要修改或删除的学生信息,并点击相应按钮进行操作。
实验结果:经过以上步骤的实现,我成功地完成了学生信息管理系统的开发。
通过运行程序,我可以在VB窗体上录入学生信息,并实现查询、修改和删除等操作。
数据能够准确地保存到数据库中,并能够根据用户的需求进行相应的操作。
实验分析:通过本次实验,我深入了解了VB编程语言和数据库的应用。
VB作为一种简单易学的编程语言,具有良好的可视化编程环境,使得开发者能够快速实现各种功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本科实验报告
课程名称:人机界面程序设计基础实验项目:三、数组
实验地点:北区多学科楼
专业班级:学号:
学生姓名:
指导教师:
年月日
一、实验目的和要求
1、掌握数组的声明、数组元素的引用。
2、掌握固定长度数组和动态数组的使用差别。
3、掌握数组常用的操作和常用算法。
4、掌握列表框和组合框的使用。
二、实验内容和原理
1、随机产生30~100(包括30、100)的10个正整数,求最大值、最小值、平均值,并显示整个数组的值和结果。
2、随机产生20个学生的成绩,统计各分数段人数并显示结果。
产生的数据在List1显示,统计结果在List2显示。
提示:①、在通用声明段声明一个数组。
例如:Dim mark%(19);在Command2声明一个数组s(9),分别存放分数段的人数。
②、统计时的关键在于确定每个人的分数mark(i)与数组s下标之间的关系。
3、窗体上建立一个简单组合框,在组合框的文本框输入数字字符,按回车键后加入到组合框的列表框内,单击“交换”按钮,将列表框中最小值项目和第0个项目交换;最大值项目与最后项目交换。
三、主要仪器设备
计算机
四、实验结果与分析(必填)
1.随机产生30~100(包括30,100)的10个正整数,求最大值、最小值、
平均值,并显示整个数组的值和结果,。
代码:
Private Sub Form_Click()
Dim i%, s%(1 To 10), max%, min%, avg!
For i = 1 To 10
s(i) = Int(Rnd * 71 + 30)
Next i
max = s(1)
min = s(1)
avg = s(1)
For i = 2 To 10
If s(i) > max Then max = s(i)
If s(i) < min Then min = s(i)
avg = avg + s(i)
Next i
avg = avg / 10
For i = 1 To 10
Print s(i);
Next i
Print
Print "max="; max; "min="; min; "avg="; avg
End Sub
2.随机产生20个学生的成绩,统计各分数段人数。
即0~59,60~69,70~
79,80~89, 90~100, 并显示结果。
产生的数据在picture1显示,统计结果在picture2显示,如图E3所示。
代码:
Dim mark%(19), i%
Private Sub Command1_Click()
Me.Picture1.Cls
For i = 0 To 19
mark(i) = Int(Rnd * 101)
Me.Picture1.Print mark(i);
If (i + 1) Mod 5 = 0 Then Me.Picture1.Print
Next i
End Sub
Private Sub Command2_Click()
Me.Picture2.Cls
Dim s%(9)
For i = 0 To 19
k = mark(i) \ 10
Select Case k
Case 0 To 5
s(5) = s(5) + 1
Case 9 To 10
s(9) = s(9) + 1
Case 6 To 8
s(k) = s(k) + 1
End Select
Next i
For k = 5 To 9
If s(k) <> 0 Then
Me.Picture2.Print "s("; k; ")的人数有"; s(k); "个"
End If
Next k
End Sub
3.窗体上建立一个简单组合框,在组合框的文本框输入数字字符,按回车键
后加入到组合框的列表框内,如图E.8所示;单击“交换”按钮,将列表框中最小值项目和第0个项目交换;最大值项目与最后项目交换,如图E9所示。
代码:
Private Sub Combo1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 48 To 57, 13
Case Else
KeyAscii = 0
End Select
If KeyAscii = 13 Then
bo1.AddItem bo1.Text: bo1.Text = ""
End If
End Sub
Private Sub Command1_Click()
n = bo1.ListCount
imin = 0
imax = 0
For i = 0 To n - 1
If Val(bo1.List(i)) < Val(bo1.List(imin)) Then imin = i
If Val(bo1.List(i)) > Val(bo1.List(imax)) Then imax = i
Next i
t = bo1.List(n - 1)
bo1.List(n - 1) = bo1.List(imax)
bo1.List(imax) = t
m = bo1.List(0)
bo1.List(0) = bo1.List(imin)
bo1.List(imin) = m
End Sub
Private Sub Form_Load()
Dim a()
a = Array(23, 345, 9, 33, 98, 123, 77, 44) For i = 0 To UBound(a)
bo1.AddItem a(i)
Next i
End Sub。