文档库 最新最全的文档下载
当前位置:文档库 › VB实验报告—数组及其他自定义数据

VB实验报告—数组及其他自定义数据

信息工程学院

程序设计基础(VB) 实习报告

学院:班级姓名学号:成绩:

实习四、数组与自定义数据类型

一.实验目的:掌握数组与自定义类型的使用方法

二.实验过程

例题05-11 输出文件中的10名学生3门考试成绩,要求按照分数由高到低排列,并输

出姓名,各科分数,平均分

例题05-12在窗体上建立一个由100个命令按钮组成的10行10列控件数组。

实验报告的内容与格式按任课教师的要求书写。

例题05-13 输入两个数,根据不同的运算符计算相应的运算结果。

习题1

代码:

Option Base 1

Private Sub Command1_Click()

Dim a%(1 To 8), b%(1 To 8), c%(1 To 8), i%, j%÷

Picture1.Print " 数组3中的数据为:"

Open "F:\马鸿雁VB\实验4\XT1-1.txt" For Input As #1

Open "F:\马鸿雁VB\实验4\XT1-2.txt" For Input As #2

For i = 1 To 8

Input #1, a(i)

Input #2, b(i)

c(i) = a(i) + b(i)

Picture1.Print c(i);

Next i

Close

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Form_Load()

Picture1.FontSize = 16

End Sub

习题2

代码

Option Base 1

Private Sub Command1_Click()

Dim a%(), max As Integer, i%, j%, k%

n = 4: m = 3: k = 1

ReDim a(1 To n, 1 To m)

For i = 1 To n

For j = 1 To m

a(i, j) = Int(Rnd * 10)

k = k + 1

Picture1.Print Tab(4 * ((k - 2) Mod 3) + 2); a(i, j);

max = a(1, 1): x = 1: y = 1

Next j, i

For i = 2 To n

For j = 2 To m

If max < a(i, j) Then max = a(i, j): x = i: y = j Next j, i

Picture1.Print

Picture1.Print "最大的数是:" & max & Chr(10) & "它在第" & x & "行" & ",第" & y & "列"

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Form_Load()

Me.FontSize = 18

Picture1.FontSize = 18

End Sub

习题3

代码

Option Base 1

Dim a(10), b(10), i%

Private Sub Command1_Click()

For i = 1 To 10

a(i) = InputBox("请输入一个元素:")

k = k + 1

Picture1.Print Tab(3 * ((k - 1) Mod 10) + 2); a(i);

Next i

End Sub

Private Sub Command2_Click()

For i = 1 To 10

b(i) = a(i)

Next i

For i = 1 To 5

t = b(i)

b(i) = b(11 - i)

b(11 - i) = t

Next i

For i = 1 To 10

k = k + 1

Picture2.Print Tab(3 * ((k - 1) Mod 10) + 2); b(i);

Next i

End Sub

Private Sub Command3_Click()

End

End Sub

Private Sub Form_Load()

End Sub

习题4

代码

Private Sub Command1_Click()

Dim x%

Open "F:\马鸿雁VB\实验4\students' marks.txt" For Input As #1 Text1 = ""

Do Until EOF(1)

Input #1, x

Text1 = Text1 & x & ","

Loop

Text1 = Left(Text1, Len(Text1) - 1)

Close

End Sub

Private Sub Command2_Click()

Dim a$(), k%, m

Dim x(0 To 10)

If Text1 = "" Then

MsgBox "请先从文件中读取数据!!!"

Exit Sub

End If

a = Split(Text1, ",")

For Each m In a

k = m \ 10

x(k) = x(k) + 1

Next m

x(9) = x(9) + x(10)

x(5) = x(1) + x(2) + x(3) + x(4) + x(5)

Picture1.Print "统计结果如下:"

Picture1.Print "90-100分有" & x(9) & "人"

For i = 8 To 6 Step -1

Picture1.Print i * 10 & "分-"; i * 10 + 9 & "分有:" & x(i) & "人"

Next i

Picture1.Print "小于60分的有:" & x(5) & "人"

End Sub

Private Sub Command3_Click()

End

End Sub

Private Sub Form_Load()

Text1.FontSize = 18

Picture1.FontSize = 20

End Sub

习题5

代码Dim a%(17), s%, i%, m, w%(17), y%, k(17), j%, b%(17)

Private Sub Command1_Click()

End

End Sub

Private Sub Command2_Click()

s = 0

Open "F:\马鸿雁VB\实验4\W.txt" For Input As #1

Open "F:\马鸿雁VB\实验4\Y.txt" For Input As #2

For i = 0 To 16

Do Until EOF(1)

For j = 0 To 16

Input #1, w(i)

s = s + w(i) * a(j)

Next j

Loop

Next i

y = s Mod 11

For i = 0 To 16

Do Until EOF(2)

Input #2, k(i)

If i = y Then m = k(i)

Exit Do

Loop

Next i

Picture1.Print Tab(2); "第18位身份证号码为:"

Picture1.Print Tab(2); m

Close

End Sub

Private Sub Command3_Click()

For i = 0 To 16

a(i) = InputBox("请输入第" & i + 1 & "位的数字")

Picture2.Print a(i);

Next i

End Sub

Private Sub Form_Load()

End Sub

习题6

代码

Option Base 1

Private Sub Command1_Click()

Dim a!(30), i%, k%

i = 1: k = 0

a(1) = 1: a(2) = 1: a(3) = a(1) + a(2)

For i = 3 To 30

a(i) = a(i - 1) + a(i - 2)

Next i

Picture1.Print "该数列的前30项为:"

For i = 1 To 30

Picture1.Print Tab(13 * ((i - 1) Mod 3) + 2); "A" & i & "=" & a(i);

Next i

End Sub

Private Sub Command2_Click()

Picture1.Cls

End Sub

Private Sub Command3_Click()

End

End Sub

Private Sub Form_Load()

Picture1.FontSize = 18

End Sub

习题11

代码

Option Base 1

Private Type Ydy

hm As String * 3

cj As Single

End Type

Const ydysm = 10

Dim ydycj(1 To ydysm) As Ydy, t As Ydy

Dim i%, j%, k%

Private Sub Command1_Click()

Open "H:\马鸿雁VB\实验4\ydy.txt" For Input As #1

For i = 1 To ydysm

Input #1, ydycj(i).hm, ydycj(i).cj

'Print ydycj(i).hm, ydycj(i).cj

Next i

Picture2.Print "运动员号码", "成绩"

For i = 1 To ydysm

Picture2.Print Tab(2); ydycj(i).hm & "号", ydycj(i).cj & "秒"

Next i

Close

End Sub

Private Sub Command2_Click()

For i = 1 To ydysm - 1

k = i

For j = i + 1 To ydysm

If ydycj(j).cj < ydycj(k).cj Then k = j

Next j

t = ydycj(k): ydycj(k) = ydycj(i): ydycj(i) = t

Next i

Picture2.Print "===运动员成绩由高到低为==="

Picture2.Print "运动员号码", "成绩"

For i = 1 To ydysm

Picture2.Print Tab(2); ydycj(i).hm & "号", ydycj(i).cj & "秒"

Next i

End Sub

Private Sub Command3_Click()

End

End Sub

Private Sub Form_Load()

Picture2.FontSize = 13

End Sub

相关文档
相关文档 最新文档