上海立信会计学院本科实验报告
班级: 学号: 姓名: 指导教师: 系部: 专业: 实验时间:
实验5 数组
一、 实验目的
1. 掌握数组的声明、数组元素的引用
2. 掌握固定长度数组和动态数组的使用差别
二、实验要求
1. 在C:\下建立子文件夹“VB实验5”,按照题目要求,在该文件夹下为各题保存相应的文件,如本实验中的第一题,需保存的文件有:工程文件(51.vbp)、窗体文件(51.frm) 及可执行文件(51.exe),本实验中的第二题,需保存的文件有:工程文件(52.vbp)、窗体文件(52.frm) 及可执行文件(52.exe),其余实验依此类推。
2. 撰写实验过程中出现了哪些问题、错误,你是如何解决的,做一个小结。
三、 实验内容:
1. 随机产生30~100(包括30、100)的10个正整数,存放于数组中,显示该数组的值,并求出最大值、最小值和平均值,如图5-1所示。要求:窗体显示字体默认、大小为小三,通过单击窗体触发程序运行。
图5-1
Private Sub Form_Click()
Dim a(9) As Integer, max%, min%, ave!
Randomize
max = 30: min = 100: ave = 0
For i = 0 To 9
a(i) = Int(Rnd * 71 + 30)
Print a(i);
ave = ave + a(i)
If a(i) > max Then max = a(i)
If a(i) < min Then min = a(i)
Next i
ave = ave / 10
Print "Max="; max, "Min="; min, "Ave="; Format(ave, "0.0")
End Sub
2. 已知6个学生的成绩,通过Array函数对数组赋初值,利用String函数,以每5分用一
个“◆”符号显示,随后显示学生的成绩。要求:窗体中所有控件字体默认、大小为小四,计算结果在程序启动时立即在窗体中显示。效果如图5-2所示。
图5-2
Private Sub Form_Load()
Dim Mark As Variant, i%
Form1.Show
Mark = Array(56, 78, 98, 88, 76, 78)
For i = LBound(Mark) To UBound(Mark)
Print String(Mark(i) \ 5, "◆"); Mark(i)
Next i
End Sub
3. 随机产生20个学生的成绩(整数),统计各分数段人数。即0~59、60~69、70~79、
80~89、90~100,并显示结果,效果如图5-3所示。
要求:(1)单击按钮“产生并显示数据”按钮时,产生的数据在Picture1显示,单击“统计分数段人数”时,统计的结果在Picture2显示。
(2)学生成绩和统计结果分别放在两个不同的数组中。
(3)所有控件字体默认、大小为小四。
图5-3
Dim mark(1 To 20) As Integer
Private Sub Command1_Click() Picture1.Cls
Dim i%, j%
Randomize
For i = 1 To 20
mark(i) = Int(Rnd * 101)
j = j + 1
Picture1.Print Tab((j - 1) * 6); mark(i); If j Mod 4 = 0 Then j = 0: Picture1.Print Next i
End Sub
Private Sub Command2_Click() Picture2.Cls
Dim s(5 To 9) As Integer, i%, k% For i = 1 To 20
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 i = 5 To 9
If s(i) <> 0 Then
Picture2.Print "s("; i; ")"; "的人数有"; s(i); "个"
End If
Next i
End Sub
4. 通过单击相应按钮,产生原始数据和升降序排列这批数据,对应显示在标签框中,要求:
原始数据为随机产生10个2位数,用选择法升序排列这些数据,用冒泡法降序排列这些数据,窗体中字体默认、大小为小四。效果如图5-4所示。
图5-4
Option Base 1
Dim a%(10)
Private Sub Command1_Click()
Dim i%
Randomize
Label1.Caption = ""
For i = 1 To 10
a(i) = Int(Rnd * 90 + 10)
Label1.Caption = Label1.Caption & " " & a(i)
Next i
End Sub
Private Sub Command2_Click()
Dim i%, j%, t%, Min%
Label2.Caption = ""
For i = 1 To 9
Min = i
For j = i + 1 To 10
If a(j) < a(Min) Then Min = j
Next j
t = a(i)
a(i) = a(Min)
a(Min) = t
Next i
For i = 1 To 10
Label2.Caption = Label2.Caption & " " & a(i)
Next i
End Sub
Private Sub Command3_Click()
Dim i%, j%, t%
Label3.Caption = ""
For i = 1 To 9
For j = i + 1 To 10
If a(j) > a(i) Then
t = a(i)
a(i) = a(j)
a(j) = t
End If
Next j
Next i
For i = 1 To 10
Label3.Caption = Label3.Caption & " " & a(i)
Next i
End Sub
5. 参照教材例5.3,在通用声明阶段声明两个数组,利用随机函数形成两个数组(A中元
素范围在30~70(包括30、70),B中元素范围在100~140(包括100、140)),如产生下列数组:
?58
?42?A??63
??6551615xxxxxxxxxxxx??135??61121?, B???11946???69??110102138114??131102124? 112125126??111134133?
要求:① 先产生A、B数组,然后以下三角形式显示A数组,以上三角形式显示B数组。 ② 显示A数组主对角线元素之和及B数组副对角线元素之和。
③ 点击相应的按钮结果在相应的图片框中显示,所有控件字体默认、大小为小四。 效果如图5-5所示。
图5-5
Option Base 1
Dim a(4, 4) As Integer, b(4, 4) As Integer Private Sub Command1_click() Picture3.Cls
Dim i%, j%
For i = 1 To 4
For j = 1 To i
Picture3.Print a(i, j); Spc(1); Next j
Picture3.Print
Next i
End Sub
Private Sub Command2_click() Picture4.Cls
Dim i%, j%
For i = 1 To 4
For j = i To 4
Picture4.Print Tab(6 * (j - 1)); b(i, j); Next j
Picture4.Print
Next i
End Sub
Private Sub Command3_Click() Picture5.Cls
Dim sa%, sb%
sa = 0: sb = 0
For i = 1 To 4
sa = sa + a(i, i)
Next i
Picture5.Print "A数组主对角线元素和为: "; sa
For i = 1 To 4
j = 5 - i
sb = sb + b(i, j)
Next i
Picture5.Print "B数组副对角线元素和为: "; sb
End Sub
Private Sub Command4_Click()
Dim i%, j%
Picture1.Cls
For i = 1 To 4
For j = 1 To 4
a(i, j) = Int(Rnd * 41 + 30)
Picture1.Print a(i, j); Spc(1);
Next j
Picture1.Print
Next i
Picture2.Cls
For i = 1 To 4
For j = 1 To 4
b(i, j) = Int(Rnd * 41 + 100)
Picture2.Print b(i, j); Spc(1);
Next j
Picture2.Print
Next i
End Sub
四、 实验过程中的问题、错误,解决方法,总结、体会、建议。
实 验 报 告
课程名称_程序设计基础Visual Basic_
班 级______ ______
姓 名_____ ____
实验一 VB环境和创建一个简单的VB程序
一.实验目的:
1.了解VB系统对计算机软件、硬件的要求。
2.掌握启动和退出VB的方法。
3.了解和使用VB集成开发环境各窗口、菜单的一般功能。
4.熟悉建立、编辑、运行、保存一个简单的VB应用程序的全过程。
5.了解文本框、标签框、命令按钮的构造及其属性、事件和方法。
二.实验内容:
1.设计一个简单的应用程序,要求在窗体上画一个文本框、一个标签和两个命令按钮编一程序,并把命令按钮分别设置为”显示”和”清除”。程序运行后,单击”显示”按钮,在文本框中输出一行信息;单击”清除”按钮,则清除文本框中的内容,运行界面如图1.1所示。
图1.1 实验1-1 运行界面
三.实验结果:对象属性设置
四.实验思考:
1.标签label控件设置的属性代码有哪些?
Label1.Caption=“ 请输入姓名”
Label1.fontsize=24
Label1.fontbold=True
2.两个按钮所使用的是什么事件?代码分别是什么?
Private Sub Command1_Click()
Text1.text=“姓名”
End Sub
Private Sub Command2_Click()
Text1.text=””
End Sub
实验二 简单程序设计数据类型及常用内部函数的简单应用
一.实验目的:
1.掌握Visual Basic数据类型的基本概念。
2.掌握用Visual Basic的各种运算符及表达式。
3.学习使用Visual Basic内部函数和数据输入、输出方法。
4.掌握命令按钮、文本框和标签。
5.设计顺序程序。
二.实验内容:
1.编写一个华氏温度和摄氏温度之间的转换程序,如图2-2所示,要求用inputbox函数输入华氏温度,用msgbox输出转换后的摄氏温度。转换公式是:C= 5 / 9(F - 32)。F为华氏温度,C为摄氏温度。
2.用三种除法运算(/ 、\、Mod)做计算。
要求:在窗体上画五个标签、五个文本框和一个命令按钮,如图2-2所示。程序运行后,在第一个文本框中输入被除数,在第二个文本框中输入除数,然后单击命令按钮,即可得到三种不同的相除结果。
图2-1
图2-2
三.实验结果:对象属性设置
1.温度转换
2. 三种除法运算(/ 、\、Mod)做计算
四.实验思考:
1.温度转换中的Command1命令的单击事件的程序代码是什么?
Private Sub Command1_Click()
Dim C!,F!
F=val(inputbox(“输入华氏温度”))
C=5/9*(F-32)
Msgbox “对应的摄氏温度为:” & C
End Sub
2. 用三种除法运算(/ 、\、Mod)做计算,说明三种除法的区别?
/:两个数相除
\:两个数整除
Mod:两个数相除,得余数
3. 三种除法运算(/ 、\、Mod)做计算,Command1命令的单击事件的程序代码是什么?
Private Sub Command1_Click()
Dim a!,b!
a=val(text1.text)
b= val(text2.text)
text3.text=a/b
text4.text=a\b
text5.text=a mod b
End Sub
实验三 选择程序设计
一.实验目的:
1.掌握单分支与双分支条件语句的使用。
2.掌握多分支条件语句(If … Then … ElseIf)的使用。
3.掌握Select Case语句的使用及与多分支条件语句的区别。
4.熟练掌握时间过程的编写方法。
二.实验内容:
1.设计一个模拟简易计算器的程序,界面如图3-1所示。要求:①输入两个操作数和一个操作符,根据操作符决定所进行的计算;②如果除数为0,用msgbox提示出错信息;③用if语句和selecet case语句两种结构实现。
2.通过单选按钮和复选框控制文字的显示,程序窗口如图3-2所示。
图3-1
图3-2
三.实验结果:对象属性设置
1.模拟简易计算器
2.单选框与复选框
四.实验思考:
1. 模拟简易计算器Command1命令的单击事件的程序代码是什么?
Private Sub Command1_Click()
Dim a!, b!
Dim c As String
a = Val(Text1.Text)
b = Val(Text3.Text)
c = Text2.Text
Select Case c
Case “+”
Text4.Text = a + b
Case “-”
Text4.Text = a - b
Case “*”
Text4.Text = a * b
Case “/”
If b = 0 Then
MsgBox “除数为0.”
Else
Text4.Text = a / b
End If
End Select
End Sub
2. 模拟简易计算器Command2命令的单击事件的程序代码是什么?
Private Sub Command1_Click()
Dim a!, b!
Dim c As String
a = Val(Text1.Text)
b = Val(Text3.Text)
c = Text2.Text
If c = “+” Then
Text4.Text = a + b
ElseIf c = “-” Then
Text4.Text = a - b
ElseIf c = “*” Then
Text4.Text = a * b
ElseIf c = “/” Then
If b = 0 Then
MsgBox “除数为0”
else
Text4.Text = a / b
End If
End If
End Sub
3. 通过单选按钮和复选框控制文字的显示,Command1命令的单击事件的程序代码是什么
Private Sub Command1_Click()
If Option1.Value = True Then
Label1.FontName = “宋体”
ElseIf Option2.Value = True Then
Label1.FontName = “华文仿宋”
ElseIf Option3.Value = True Then
Label1.FontName = “黑体”
Else
Label1.FontName = “楷体_GB2312”
End If
If Option5.Value = True Then
Label1.FontSize = 24
ElseIf Option6.Value = True Then
Label1.FontSize = 16
Else
Label1.FontSize = 8
End If
If Check1.Value = 1 Then
Label1.FontBold = True
Else
Label1.FontBold = False
End If
If Check2.Value = 1 Then
Label1.FontItalic = True
Else
Label1.FontItalic = False
End If
If Check3.Value = 1 Then
Label1.FontUnderline = True
Else
Label1.FontUnderline = False
End If
If Check4.Value = 1 Then
Label1.FontStrikethru = True
Else
Label1.FontStrikethru = False
End If
End Sub
实验四 循环程序设计
一.实验目的:
1.理解循环程序设计的特点。
2.掌握常用的循环语句。
3.掌握常用的循环算法。
4.掌握图片框、图像框和计时器。
二.实验内容:
1.求
2.设计一条滚动的广告字幕。
三.实验结果:对象属性设置
1. 求和结果要求窗体载入时直接显示,设置窗体的某个属性。
2. 滚动字幕。
四.实验思考:
1.求和的窗体载入事件的程序代码是什么?
Private Sub Form_Load()
Dim k%, s!
s = 0
For k = 1 To 100
s = s + 1 / k
Next k
For k = 1 To 50
s = s + k
Next k
Print s
End Sub
2.滚动字幕的触发时钟控件的程序代码是什么?。
Private Sub Timer1_Timer()
If Label1.Left > Form1.Width Then
Label1.Left = 0
Else
Label1.Left = Label1.Left + 100
End If
End Sub
实验五 数组程序设计
一.实验目的:
1.熟练掌握固定数组。
2.掌握动态数组。
3.掌握列表框和组合框。
4.了解直线控件和形状控件。
二.实验内容:
1.设计一个程序,找出数组中的最大值、最小值,并计算所有元素的平均值。在列表框中随机产生10个100到200之间的整数,在文本框中显示结果信息。界面如图5-1所示。
图5-1 窗体界面
三.实验结果:对象属性设置
四.实验思考:
1.数组应在过程内还是过程外定义,定义的语句是什么?
过程外定义
Dim a(10) As Integer
2.在窗体载入时,在列表框中随机产生10个整数,则程序代码是什么?
Private Sub Form_Load()
Dim i%
For i = 1 To 10
a(i) = Int(Rnd * 101 + 100)
List1.AddItem a(i)
Next i
End Sub
3.单击命令按钮,在文本框中显示结果信息,则程序代码是什么?
Private Sub Command1_Click()
Dim i As Integer, max%, min%, avg!
max = a(1)
min = a(1)
avg = 0
For i = 1 To 10
If max < a(i) Then max = a(i)
If min > a(i) Then min = a(i)
avg = avg + a(i)
Next i
avg = avg / 10
Text1.Text = max
Text2.Text = min
Text3.Text = avg
End Sub
实验六 过程程序设计
一.实验目的:
1.掌握子过程的定义和调用方法。
2.掌握函数过程的定义和调用方法。
3.理解作用域和生存期。
4. 掌握滚动条。
二.实验内容:
1.写两个函数,分别求两个数的最大公约数和最小公倍数,编写子过程求最大公约数,函数过程求最小公倍数。要求从文本框中输入两个数。界面如图6-1所示。
图6-1
2.设计一个用滚动条改变图片背景色的程序。界面如图6-2所示
图6-2
三.实验结果:对象属性设置
1.结果要求单击命令按钮分别显示,设置对象的属性。
2.设置滚动条主要属性值。
四.实验思考:
1.单击子过程命令按钮,在文本框Text3中显示结果信息,子过程的程序代码是什么?
Private Sub Command1_Click()
Dim m As Integer, n As Integer, r As Integer
m = Text1.Text
n = Text2.Text
If m < n Then
t = m: m = n: n = t
End If
Call gys(m, n, r)
Text3.Text = r
End Sub
Private Sub gys(ByVal m%, ByVal n%, r%)
r = m Mod n
Do While r <> 0
m = n
n = r
r = m Mod n
Loop
r = n
End Sub
2.单击函数过程命令按钮,在文本框Text4中显示结果信息,函数过程的程序代码是什么?
Private Sub Command2_Click()
Dim m As Integer, n As Integer, p As Integer
m = Text1.Text
n = Text2.Text
p = m * n
If m < n Then
t = m: m = n: n = t
End If
p = p / gbs(m, n)
Text4.Text = p
End Sub
Private Function gbs(m As Integer, n As Integer) As Integer
Dim r As Integer
r = m Mod n
Do While r <> 0
m = n
n = r
r = m Mod n
Loop
gbs = n
End Function
3. 拖动滚动条的滑块,可改变图片控件的背景颜色,三个滚动条的程序代码相似,请写出HScroll1的事件过程。
Dim r As Integer, g As Integer, b As Integer
Private Sub HScroll1_Change()
r = HScroll1.Value
g = HScroll2.Value
b = HScroll3.Value
Text1.BackColor = RGB(r, g, b)
End Sub
实验七 界面设计
一.实验目的:
1.掌握多窗体程序设计的方法。
2.掌握下拉式菜单。
3.了解通用对话框。
二.实验内容:
1.编写密码登录系统。在窗体1输入用户名和密码,如果密码正确就弹出第二个窗体,第二个窗体自
行设计操作内容;如果密码不正确,弹出信息框,显示”用户名或密码错误,请重新输入”,回到
窗体1继续输入用户名和密码。密码输入有三次机会,超过三次就弹出第三个窗口,显示”对不起,
你不能使用该系统!”(注:凡是文字提示内容可自行设计,不要求与题目一样。三个窗体界面可参照图7-1 图7-2 图7-3所示。)
图7-1
图7-2
图7-3
2.利用通用对话框设计一个简单的文本编辑器,具有打开、保存、字体、颜色功能。要求用菜单实现,
有”文件”和”格式”两个菜单,”文件”菜单下包含”打开”、”保存”和”退出”三项。”格式”
菜单下包含”字体”和”颜色”两项,打开文件显示在文本框中。(窗体界面可参照图7-4 所示。)
图7-4
三.实验结果:对象属性设置
1.设置三个窗体的控件及其属性。
2.设置窗体控件及属性值。
四.实验思考:
1.下列程序为实验内容1的部分程序代码,单击确定命令按钮的程序代码是什么?
Private Sub Form_Load()
Text2.PasswordChar = “*”
Text2.Text = ““
Text1.Text = ““
End Sub
Private Sub Command1_Click()
Static i As Integer
i = i + 1
If i >= 3 Then
Form1.Hide
Form3.Show
Exit Sub
End If
If Text1.Text = “abc” And Text2.Text = “123” Then
Form1.Hide
Form2.Show
Else
MsgBox “用户名或密码错误,请重新输入”
Text2.Text = ““
Text1.Text = ““
Text1.setfoucs
End if
End Sub
C++程序设计实验报告学号:姓名:班级:指导老师:实验一、字符和格式的输出实验一,实验目的1、重点把握各种内部数据类型、数值和逻辑…
C语言程序设计实验报告1实验目的(1)掌握函数的定义方法、调用方法、参数说明以及返回值;(2)掌握实参与形参的对应关系,以及参数之…
学生实验报告册(理工类)课程名称:JAVA程序设计实验专业班级:M11计算机科学与技术II学生学号:学生姓名:所属院部:XX学院指…
西南交通大学程序设计综合实验实验地点实验学期学生班级学生学号学生姓名任课教师龚勋信息科学与技术学院20xx年4月实验一ATM机用户…
C语言程序设计实验报告学号不告诉你哦班级信管一班姓名你猜猜哈哈一实验题目一编程实验猜数问题输入两个整数并求这两个整数的和输入所猜的…
上海立信会计学院本科实验报告班级学号姓名指导教师系部专业实验时间实验5数组一实验目的1掌握数组的声明数组元素的引用2掌握固定长度数…
湖北文理学院VB程序设计课程实验报告学院物电学院专业自动化班级1211学号20xx118064姓名王亮任课教师王福林1实验一VB控…
综合性实验实验名称用vb编写简单计算器专业班级土木工程0901班学生姓名学号指导教师1需求分析该计算器程序是在VisualBasi…
中北大学课程设计报告学院系专业学生姓名设计题目薛军军软件学院软件工程学号1121011721弹力球游戏起迄日期20xx年5月30日…
vb程序设计实验心得vb程序设计实验心得一数据库VB课程设计心得体会数据库课程设计大赛的尘嚣渐渐远去怀着对这次大赛的些许不舍怀着对…
中南财经政法大学实验报告实验课名称VB程序设计学生姓名张琳专业班级信息0904班学号09021275开课时间20xx20xx学年第…