VB实验三0001.docx

上传人:b****7 文档编号:9908978 上传时间:2023-02-07 格式:DOCX 页数:18 大小:628.30KB
下载 相关 举报
VB实验三0001.docx_第1页
第1页 / 共18页
VB实验三0001.docx_第2页
第2页 / 共18页
VB实验三0001.docx_第3页
第3页 / 共18页
VB实验三0001.docx_第4页
第4页 / 共18页
VB实验三0001.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

VB实验三0001.docx

《VB实验三0001.docx》由会员分享,可在线阅读,更多相关《VB实验三0001.docx(18页珍藏版)》请在冰豆网上搜索。

VB实验三0001.docx

VB实验三0001

VB实验三

实验报告三

实验目的

(1)掌握一维数组(静态、动态)定义及使用

(2)掌握二维数组(静态、动态)定义及使用

(3)掌握“控件数组”的使用

(4)掌握数组相关算法(求最值,排序,查找)

(5)通过数组巩固循环及多重循环程序设计

实验内容

【实验1】已知10个数为53、67、42、89、65、18、98、67、54、36,编写程序,使用Array函数存储这10个数并求和。

程序运行界面如下图所示。

(10分)

掌握一维静态数组的定义及使用

实验结果:

【实验1代码】

OptionBase1

PrivateSubForm_Click()

Dima(),sum%

sum=0

a=Array(53,67,42,89,65,18,98,67,54,36)

Fori=1To10Step1

sum=sum+a(i)

Nexti

Print"10个数字和为"&sum

EndSub

【实验1典型结果】

 

【实验2】动态数组声明及输入输出,程序运行界面如下图所示。

(10分)

掌握动态数组的使用

实验结果:

【实验2代码】

PrivateSubcommand1_Click()

Dima()AsInteger

n=3

ReDima(n)

a

(1)=10

a

(2)=20

a(3)=30

Printa

(1),a

(2),a(3)

Print"用RedimPreservea(n)改变数组大小"

n=4

ReDimPreservea(n)

a(4)=40

Printa

(1),a

(2),a(3),a(4)

EndSub

【实验2典型结果】

 

【实验3】编写程序,定义一个二维静态数组,输出下列矩阵并分别计算矩阵两条对角线元素之和。

(10分)

程序运行界面如下图所示。

掌握二维数组的定义及使用

实验结果:

【实验3代码】

OptionExplicit

OptionBase1

PrivateSubForm_Click()

Dima%(5,5),i%,j%,sum%,n%,s1%,s2%

Fori=1To5

Forj=1To5

a(i,j)=5*(i-1)+j'给数组赋值

Nextj

Nexti

Fori=1To5

Forj=1To5

PrintTab(7*j);a(i,j);'输出数组

Nextj

Print

Nexti

n=5

s1=0

s2=0

Fori=1To5

Forj=1Ton

Ifi=jThens1=s1+a(i,j)'主对角线之和

Ifi+j=n+1Thens2=s2+a(i,j)'次对角线之和

Nextj

Nexti

Print"主对角线之和=";s1

Print"次对角线之和=";s2

EndSub

【实验3典型结果】

 

【实验4】利用控件数组模拟电话拨号程序,界面设计如下图所示。

要求按任意一个字符,在文本框中显示,最多可拨11位数字字符,单击“重拨”按钮,重新显示原来所拨的号码。

建立Command1控件数组,索引为0-9;Command2和Command3分别为“重拨”、“清屏”按钮;Timer1控件为“重拨”服务。

(10分)

掌握控件组的使用

实验结果:

【实验4代码】

DimnoAsString,iAsInteger

PrivateSubCommand1_Click(indexAsInteger)

Text1.Text=Text1.Text&index

EndSub

PrivateSubCommand2_Click()

no=Text1.Text

Text1.Text=""

i=1

Timer1.Interval=200

Timer1.Enabled=True

EndSub

PrivateSubCommand3_Click()

Text1.Text=""

EndSub

PrivateSubTimer1_Timer()

Text1.Text=Text1.Text&Mid(no,i,1)

i=i+1

Ifi>Len(no)ThenTimer1.Enabled=False

EndSub

【实验4典型结果】

【实验5】随机产生10个100-999之间的数以递增顺序存放在列表框中,并实现对列表框内数据插入、删除等操作,使得列表框内数据还是有序。

程序运行界面如下图所示(10分)

掌握数组插入与删除操作

实验结果:

【实验5代码】

OptionBase1

OptionExplicit

PrivateSubcommand1_Click()

Dimi%,j%

Fori=1To10

j=Int(Rnd*900+100)

List1.AddItemj

Nexti

EndSub

PrivateSubCommand2_Click()

Dimx%,y%

x=Val(Text1.Text)

Fory=1ToList1.ListCount-1

Ifx

Nexty

List1.AddItemx,y

Label1.Caption="列表框有"&List1.ListCount&"个数据项"

EndSub

PrivateSubCommand3_Click()

Dima%,b%

a=Val(Text1.Text)

Forb=0ToList1.ListCount-1

Ifa=Val(List1.List(b))ThenList1.RemoveItemb

Nextb

Label1.Caption="列表框有"&List1.ListCount&"个数据项"

EndSub

【实验5典型结果】

 

【实验6】设计一个利用简单组合框对各省、直辖市名称维护的应用程序。

要求:

添加不重复的省或直辖市到组合框中,对不正确的可修改,以按汉字内码顺有序显示。

运行效果如下图所示。

(10分)

掌握数组常用算法:

插入与删除操作

实验结果:

【实验6代码】

Dimpos%

PrivateSubCombo1_Click()

pos=Combo1.ListIndex

EndSub

PrivateSubCombo1_keypress(keyasciiAsInteger)

Dimi%,findAsBoolean

Ifkeyascii=13Then

find=False

Fori=0ToCombo1.ListCount-1

IfCombo1.Text=Combo1.List(i)Then

find=True

Nexti

IfNotfindThen

Combo1.AddItemCombo1.TextCombo1.Text=""

EndIf

EndSub

PrivateSubCommand1_Click()

Combo1.List(pos)=Combo1.Text

EndSub

PrivateSubForm_Load()

Combo1.AddItem"上海市"

Combo1.AddItem"北京市"

Combo1.AddItem"重庆市"

Combo1.AddItem"四川省"

Combo1.AddItem"陕西省"

Combo1.AddItem"山西省"

Combo1.AddItem"河南省"

Combo1.AddItem"山东省"

EndSub

【实验6典型结果】

【实验7】用比较法对数组中的元素按升序排列,程序运行界面如下图所示。

(10分)

掌握数组常用算法:

数组排序

实验结果:

【实验7代码】~

OptionBase1

PrivateSubCommand1_Click()

Dima(),i%,j%,t%

a=Array(82,12,78,36,73,90,18,99,67,56)

n=UBound(a)

Print"比较法排序前:

"

Fori=1Ton

Printa(i);

Nexti

Print

Print"比较法排序后:

"

Fori=LBound(a)Ton-1

Forj=i+1Ton

Ifa(i)>a(j)Then

t=a(i):

a(i)=a(j):

a(j)=t

EndIf

Nextj

Printa(i);

Nexti

EndSub

 

【实验7典型结果】

【实验8】选择法对数组中的元素按升序排列,程序运行界面如下图所示。

(10分)

掌握数组常用算法:

数组排序

实验结果:

【实验8代码】

OptionBase1

PrivateSubForm_Click()

Dima(),i%,j%,t%,P%

a=Array(82,12,78,36,73,90,18,99,67,56)

n=UBound(a)

Print"比较法排序前:

"

Fori=1Ton

Printa(i);

Nexti

Print

Print"比较法排序后:

"

Fori=LBound(a)Ton-1

P=i

Forj=i+1Ton

Ifa(j)

Nextj

t=a(i):

a(i)=a(P):

a(P)=t

Printa(i);

Nexti

EndSub

【实验8典型结果】

 

【实验9】用冒泡对数组中的元素按升序排列,程序运行如下图所示。

(10分)

掌握数组常用算法:

数组排序

实验结果:

【实验9代码】

OptionBase1

OptionExplicit

PrivateSubForm_Click()

Dima(),i%,n%,j%,t%

DimflagAsBoolean

a=Array(12,78,36,73,89,18,90,67,56,99)

n=UBound(a)

Fori=1Ton

Printa(i);

Nexti

Print

Fori=1Ton-1

Forj=1Ton-i

Ifa(j)

t=a(j):

a(j)=a(j+1):

a(j+1)=t

EndIf

Nextj

Print

Printa(j);

Nexti

EndSub

【实验9典型结果】

 

【实验10】编写程序,将随机产生的10个100—200之间的随机整数存入数组,求其中的最大值和最小值,程序运行如下图所示。

(10分)

掌握数组常用算法:

求最值

实验结果:

【实验10代码】

OptionBase1

OptionExplicit

PrivateSubForm_Click()

Dima%(1To10),i%,j%,n%,t%,min,max

n=UBound(a)

Print"产生后的数据"

Fori=1Ton

a(i)=Int(Rnd*101+100)

Printa(i);

Nexti

Print

max=a

(1):

min=a

(1)

Fori=2Ton

Ifa(i)>maxThenmax=a(i)

Ifa(i)

Nexti

Print"最大值为:

";max;"最小值为:

";min”

EndSub

 

【实验10典型结果】

 

【加分1】利用一维数组,统计一个班学生成绩0~59,60~69,70~79,80~89,90~100各分数段的人数,生成一个各分数段的柱状图。

人数为运行时输入,成绩给定方法要求为键盘输入。

(10分,最高100分)

掌握控件数组的使用

实验结果:

【选做1代码】

【选做1典型结果】

 

【加分2】从键盘输入10个整数,存放在一个一维数组中,然后将前5个元素与后5个元素交换,即第1个与第10个交换,第2个与第9个交换……(10分,最高100分)

掌握一维数组的使用

实验结果:

【选做2代码】

【选做2典型结果】

实验小结

1.遇到的问题:

2.对课程的建议:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1