VB实验3数组

合集下载

VB 数组的应用

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

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实验三

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数组程序设计

实验三数组程序设计一、实验目的通过实验掌握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综合实验报告

华北科技学院计算机学院综合性实验实验报告课程名称程序设计语言(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教案之数组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)

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程序实验报告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 属性为“结果:”等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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。

相关文档
最新文档