实验报告E.docx
《实验报告E.docx》由会员分享,可在线阅读,更多相关《实验报告E.docx(10页珍藏版)》请在冰豆网上搜索。
实验报告E
南京工程学院
实验报告
课程名称程序设计基础——VB
实验项目名称数组
实验学生班级
实验学生姓名
学 号
同组学生姓名
实验时间2011.10.26
实验地点A304
实验成绩评定
指导教师签字 年 月 日
一、实验目的和要求
1.实验目的:
1掌握数组的定义、数组元素的引用;
2掌握静态数组与动态数组的使用差别;
3应用数组解决与数组有关的常用算法。
2.上机调试之前必须携带已经编写完毕的程序源代码,实验过程中主要是进行调试。
3.上机时间不足以完成实验项目的同学利用课外时间做完所有项目。
4.根据所选实验内容完成实验报告。
二、实验主要仪器和设备
计算机
3、实验方法与步骤(需求分析、算法设计思路、流程图等)
实验2:
①以五分为一个符号,所以应用到“\”。
②已知六个成绩,此时要用数组的赋值Array函数来表示。
③再通过for循环语句来实现操作。
④通过string函数来用“◆”表示成绩。
实验4:
①因为要产生10个数,并进行比较,有两个事件,此时要在通用声明段用数组A(9)来定义。
②通过rnd函数和for语句来随机出10个两位数,再用int函数来取整。
③用冒泡法对数组进行排序。
④再用for语句从大到小输出各数。
实验6:
①由于是杨辉三角形,则需定义一个二维数组a(i,j)。
用redim来确定数组大小。
②通过for语句来设置下三角。
③用a(i,0)=1,a(i,j)=1确定第一列和对角线数为1,而其它用a(i,j)=a(i-1,j-1)+a(i-1,j)来确定。
④通过tab函数确定列宽,从而对齐。
实验8:
①建立一个组合框来输入数据。
②对combo1的keypress事件设置使之只能输数字和回车。
在通过additem方法来输入并显示数据。
③声明变量imax,imin来确定最值位置。
④按照求最值的方法求值,并设置一个变量t来让第0项和最小值交换,最大值和最后一项交换。
对各项要用val函数,否则是字符串比较。
实验10:
①在标准模块里定义自定义变量,再在窗体的通用声明段定义变量数组。
②用with语句对数组各元素进行赋值。
③用冒泡法来比较工资大小,并对数组各组数进行排序。
④通过tab函数控制宽度。
四、实验原始纪录(源程序、数据结构等)
注:
实验目的和要求由任课教师统一指定
实验2:
PrivateSubForm_Click()
Dima(),n!
m!
a=Array(56,78,98,88,76,78)
n=UBound(a)
Fori=0Ton
m=a(i)\5
PrintString(m,"◆");a(i)
Print
Nexti
EndSub
实验4:
OptionExplicit
Dima!
(9),i%,j%,t!
PrivateSubCommand1_Click()
Fori=0To9
Forj=9To1+iStep-1
Ifa(j)>a(j-1)Then
t=a(j):
a(j)=a(j-1):
a(j-1)=t
EndIf
Nextj
Nexti
Print"排序后"
Forj=0To9
Printa(j);
Nextj
Print
Print
EndSub
PrivateSubForm_Click()
Fori=0To9
a(i)=Int(Rnd*89+10)
Printa(i);
Nexti
Print
EndSub
实验6:
PrivateSubText1_LostFocus()
Dima!
(),n%,i%,j%
n=Val(Text1.Text)
ReDima(n-1,n-1)
Fori=0Ton-1
Forj=0Toi
a(i,0)=1
Ifi=jThen
a(i,j)=1
Else
Ifj>=1Then
a(i,j)=a(i-1,j-1)+a(i-1,j)
EndIf
EndIf
Picture1.PrintTab(6*j);a(i,j);
Nextj
Picture1.Print
Nexti
EndSub
实验8:
PrivateSubCombo1_KeyPress(KeyAsciiAsInteger)
Dimn!
SelectCaseKeyAscii
Case48To57,13
CaseElse
KeyAscii=0
EndSelect
n=Val(Combo1.Text)
IfKeyAscii=13Then
List1.AddItemTrim(Str(n)),0
Combo1.Text=""
Combo1.SetFocus
EndIf
EndSub
PrivateSubCommand1_Click()
Dimi!
j!
imin!
imax!
t
i=List1.ListCount-1
imin=0
Forj=1Toi
IfVal(List1.List(j))imin=j
EndIf
Nextj
t=List1.List(0):
List1.List(0)=List1.List(imin):
List1.List(imin)=t
imax=0
Forj=1Toi
IfVal(List1.List(j))>Val(List1.List(imax))Then
imax=j
EndIf
Nextj
t=List1.List(i):
List1.List(i)=List1.List(imax):
List1.List(imax)=t
EndSub
实验10:
模块定义自定义变量:
OptionExplicit
Typeabctype
NameAsString*5
NumberAsInteger
SalaryAsLong
EndType
窗体:
OptionExplicit
Dimi%,tAsabctype
Dima(4)Asabctype
Dimn%
PrivateSubCommand1_Click()
Ifn>=5Then
MsgBox("输入人数超过数组声明个数")
Text1="":
Text2="":
Text3="":
Else
Witha(n)
.Number=Text1
.Name=Text2
.Salary=Text3
EndWith
Text1="":
Text2="":
Text3="":
n=n+1
Picture1.PrintTrim(Str(a(n-1).Number));Tab(15);Trim(a(n-1).Name);Tab(27);Trim(Str(a(n-1).Salary))
EndIf
EndSub
PrivateSubCommand2_Click()
Dimj!
Forj=0Ton-1
Fori=1Ton-1-j
Ifa(i).Salary>a(i-1).SalaryThen
t=a(i):
a(i)=a(i-1):
a(i-1)=t
EndIf
Nexti
Nextj
Picture1.Cls
Picture1.Print"工号";Tab(15);"姓名";Tab(27);"工资"
Fori=0Ton-1
Picture1.PrintTrim(Str(a(i).Number));Tab(15);Trim(a(i).Name);Tab(27);Trim(Str(a(i).Salary))
Nexti
EndSub
PrivateSubForm_Load()
Picture1.Print"工号";Tab(15);"姓名";Tab(27);"工资"
EndSub
5、实验结果及分析(计算过程与结果、数据曲线、图表等)
实验2:
实验4:
实验6:
实验8:
实验10:
六、实验总结与思考
这次实验主要了解数组的使用,声明及元素的使用,而且知道定长数组和动态数组的使用差别,掌握了数组的常用的操作和算法,也加强了之前的求最值,冒泡法和交换数组元素位置的算法。
与此同时知道列表框和组合框的使用,又知道自定义类型变量及数组的使用及其简单算法。
这次实验加强了课上老师所讲的知识点,强化了对其的理解,深化了对vb的认识。
教师评语: