实验答案.docx

上传人:b****6 文档编号:4741315 上传时间:2022-12-08 格式:DOCX 页数:17 大小:229.76KB
下载 相关 举报
实验答案.docx_第1页
第1页 / 共17页
实验答案.docx_第2页
第2页 / 共17页
实验答案.docx_第3页
第3页 / 共17页
实验答案.docx_第4页
第4页 / 共17页
实验答案.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

实验答案.docx

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

实验答案.docx

实验答案

实验9-1随机产生20个学生的成绩,统计各分数段的人数。

即0~59,60~69,70~79,80~89,90~100,并显示结果。

产生的数据在Picture1中显示,统计结果在Picture2中显示,如图9-6所示。

图9-6程序运行界面

Dimmark(19)AsInteger

PrivateSubCommand1_Click()

Dimi%

Fori=0To19

mark(i)=Int(Rnd*101)

IfiMod5=0Then

mark(i)&Space

(2);

Nexti

EndSub

PrivateSubCommand2_Click()

Dims(5To9)AsInteger

Randomize

Fori=0To19

k=mark(i)\10

SelectCasek

Case0To5'0~59分的人数

s(5)=s(5)+1

Case9To10'90~100分的人数

s(9)=s(9)+1

Case6To8'存放其他3个分数段的人数,根据k对应获得

s(k)=s(k)+1

EndSelect

Nexti

Fori=5To9

"s(";i;")的人数有";s(i);"个"

Nexti

EndSub

实验9-2随机生成10个2位数整数,然后按照从小到大的顺序排列,并显示排列结果(运行界面如图9-7所示)。

PrivateSubCommand1_Click()

Dima(10)AsInteger

Randomize

Dimi%,j%,t%

"随机生成的数:

"

Fori=0To9

a(i)=Int(Rnd*90+10)

Nexti

Fori=0To9

a(i);Spc

(2);

If(i+1)Mod5=0Then

Nexti

"排序后的数据显示如下:

"

Fori=0To8

Forj=0To8-i

Ifa(j)>a(j+1)Then

t=a(j):

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

a(j+1)=t

EndIf

Nextj

Nexti

Fori=0To9

a(i);Spc

(2);

If(i+1)Mod5=0Then

Nexti

EndSub

实验9-3找一个nm的二维数组的“鞍点”。

“鞍点”是指它在本行中数值最大,在本列中数值最小。

也可能在一个数组中找不到鞍点。

输出鞍点的行、列号,如无鞍点则输出“无鞍点”。

这里假设n=4,m=4,数组各元素的值为45、46、34、12、56、75、78、47、12、94、56、30、77、57、79、80。

PrivateSubForm_Click()

DimnAsInteger,mAsInteger,sAsInteger

Dima()AsSingle,sumAsSingle

n=InputBox("输入n")

m=InputBox("输入m")

ReDima(n,m)

ForI=1Ton

Forj=1Tom

a(I,j)=InputBox("a("&I&","&j&")=")

Printa(I,j);

Nextj

Print

NextI

Print"Num","Row","Column"

ForI=1Ton

big=a(I,1)

Forj=1Tom

Ifbig<=a(I,j)Thenbig=a(I,j):

col=j

Nextj

flag=True

Fork=1Ton

Ifbig>a(k,col)Thenflag=False

Nextk

Ifflag=TrueThen

s=s+1

Printbig,I,col's为鞍点个数

EndIf

NextI

Ifs=0ThenPrint"无鞍点"

EndSub

实验9-4编程实现把十进制数转换为二、八、十六进制数。

OptionBase0

PrivateSubCommand1_Click()

DimiAsInteger,dAsInteger,b(15)AsString,sAsString,mAsString,rAsInteger,cAsInteger

m="09ABCDEF"

d=Val

r=Val

DoUntild=0

c=dModr

b(i)=Mid(m,c+1,1)

d=d\r

i=i+1

Loop

DoWhilei>0

i=i-1

s=s&b(i)

Loop

=s

EndSub

OptionBase0

DimAAsInteger

PrivateSubCommand1_Click()

DimiAsInteger,dAsInteger,b(15)AsString,sAsString,mAsString,rAsInteger,cAsInteger

m="09ABCDEF"

d=Val

r=A

DoUntild=0

c=dModr

b(i)=Mid(m,c+1,1)

d=d\r

i=i+1

Loop

DoWhilei>0

i=i-1

s=s&b(i)

Loop

=s

EndSub

PrivateSubOption1_Click()

A=2

EndSub

PrivateSubOption2_Click()

A=8

EndSub

PrivateSubOption3_Click()

A=16

EndSub

DimAAsInteger

PrivateSubCommand1_Click()

DimiAsInteger,dAsInteger,b(15)AsString,sAsString,mAsString,rAsInteger,cAsInteger

m="09ABCDEF"

d=Val

r=A

DoUntild=0

c=dModr

b(i)=Mid(m,c+1,1)

d=d\r

i=i+1

Loop

DoWhilei>0

i=i-1

s=s&b(i)

Loop

=s

EndSub

PrivateSubList1_Click()

A=Val

EndSub

实验9-5利用二维数组设计一个程序,输出界面如图9-11所示。

图9-11程序运行结果图

OptionBase1

PrivateSubForm_Click()

Dima(9,9)AsInteger

DimiAsInteger,jAsInteger

Fori=1To9

Forj=1Toi

a(i,j)=i*j

Nextj

Nexti

Fori=1To9

Forj=1Toi

PrintTab((j-1)*9+1);i&"×"&j&"="&a(i,j);

Nextj

Print

Nexti

EndSub

实验9-6如图9-12所示,运行时,由窗体右侧的文本框对列表框进行学生信息的输入,单击“输入学生信息”按钮将数据添加至列表框1;单击“整理学生信息”,去除列表框1中的重复学生信息;在查找对象下面的Text1文本框输入一个姓名或姓,单击“查找”按钮,则在列表框中进行查找,若找到匹配的列表项,则把该人的信息显示在列表框2中。

若未找到,则在列表框2中显示“查无此人”。

(a)输入学生信息,整理学生信息前(b)整理学生信息前后(c)查找学生

图9-12

OptionExplicit

PrivateSubCmdAdd_Click()

TxtStu=""

EndSub

PrivateSubCmdClearUp_Click()

DimiAsInteger,jAsInteger

DoWhilei<

j=i+1

DoWhilej<

If(i)=(j)Then

j

Else

j=j+1

EndIf

Loop

i=i+1

Loop

EndSub

PrivateSubCmdFind_Click()

DimkAsInteger,nAsInteger

n=

k=0

Fork=0Ton

If=Left(k),1)Then

(k)

EndIf

Nextk

If=0Then

"查无此人"

EndIf

EndSub

实验9-7利用控件数组设计如图所示的简易计算器。

DimstrOperator()

DimblnDigitAsBoolean

DimdblResult

PrivateSubcmdAllClear_Click()

dblResult=0:

blnDigit=False:

="":

lblOperator="+"

EndSub

PrivateSubcmdClear_Click()

DimintLen%

intLen=Len:

IfintLen>0Then=Left,intLen-1)

EndSub

PrivateSubcmdDigit_Click(IndexAsInteger)

StaticblnDotAsBoolean

DimstrKey$

strKey=cmdDigit(Index).Caption

IfstrKey="."ThenIfNotblnDotThenblnDot=TrueElseExitSub

IfNotblnDigitThen=""

=&strKey

blnDigit=True

EndSub

PrivateSubcmdOperator_Click(IndexAsInteger)

IfblnDigitThen

SelectCase

Case"+":

dblResult=dblResult+Val

Case"-":

dblResult=dblResult-Val

Case"×":

dblResult=dblResult*Val

Case"÷":

IfVal<>0Then

dblResult=dblResult/Val

Else

ExitSub

EndIf

Case"=":

dblResult=Val

EndSelect

=dblResult:

blnDigit=False

EndIf

=strOperator(Index)

EndSub

PrivateSubcmdSign_Click()

DimstrDot$

strDot=IIf(Right,1)=".",".","")

=-Val&strDot

IfNotblnDigitThendblResult=-dblResult

EndSub

PrivateSubForm_Load()

strOperator=Array("+","-","×","÷","="):

CallcmdAllClear_Click

EndSub

实验9-8自定义类型数组的应用,要求如下。

图9-14程序运行结果图

(1)自定义一个教师数据类型,包括教师工号、姓名、工资三项内容,然后再声明一个教师类型数组,个数由键盘输入。

(2)窗体设计如图9-14所示;单击“新增”按钮时,将文本框中输入的内容添加到数组的当前元素中;单击“排序”按钮时,将输入的内容按工号递增顺序排列,并在图形框中显示;单击“清空”按钮,把文本框中的内容清除;在“工号”文本框中输入一个工号,单击“查找”按钮,把该工号的教师信息对应显示在文本框中。

要求“查找”按钮必须在“排序”按钮执行后才可用。

一旦单击“新增”按钮,“查找”按钮就不可用。

PrivateTypeteach

ghAsLong

xmAsString*10

gzAsLong

EndType

Dima()Asteach,iAsInteger,nAsInteger

PrivateSubForm_Load()

n=Val(InputBox("输入人数"))

ReDima(1Ton)

i=0

=False

=False

EndSub

PrivateSubCommand1_Click()'添加教师信息

i=i+1

Witha(i)

.gh=Val

.xm=

.gz=Val

EndWith

="":

="":

=""

=True

=False

Ifi=nThenMsgBox("人数已够"):

=False:

ExitSub

EndSub

PrivateSubCommand2_Click()'排序

DimjAsInteger,kAsInteger,tAsteach

Forj=1Toi-1

Fork=1Toi-j

Ifa(k).gh>a(k+1).ghThen

t=a(k)

a(k)=a(k+1)

a(k+1)=t

EndIf

Nextk

Nextj

"工号";Spc(3);"姓名";Spc(10);"工资"

Forj=1Toi

a(j).gh;Spc

(2);a(j).xm;Spc

(2);a(j).gz

Nextj

=True

EndSub

PrivateSubCommand3_Click()'查找

DimKeyAsLong

DimLeftAsInteger,RightAsInteger,MidAsInteger

Key=Val

Left=1:

Right=i

DoWhileLeft<=Right

Mid=(Left+Right)\2

Ifa(Mid).gh=KeyThen

ExitDo

ElseIfa(Mid).gh>KeyThen

Right=Mid-1

Else

Left=Mid+1

EndIf

Loop

IfLeft>RightThen

MsgBox"数组中没有元素"&Key

Else

=a(Mid).xm

=a(Mid).gz

EndIf

EndSub

PrivateSubCommand4_Click()'清空

="":

="":

=""

EndSub

实验9-9利用随机函数生成一组数存放在数组中,把该数组的值显示在图形框中,然后将下标为奇数的数组元素从数组中删除,再把新数组显示在另一个图形框中。

OptionExplicit

Dima()AsInteger

DimnAsInteger

方法一:

PrivateSubCommand1_Click()

DimiAsInteger,jAsInteger

Dimb()AsInteger

ReDimb(n)

j=1

Fori=1Ton'把下标为偶数的数放到数组b()中

IfiMod2=0Then

b(j)=a(i)

j=j+1

EndIf

Nexti

Fori=1Toj-1'把b()数组的值重新赋回a数组

a(i)=b(i)

a(i)

Nexti

Fori=jTon'a数组其余元素值变为0

a(i)=0

Nexti

EndSub

方法二

PrivateSubCommand1_Click()

DimiAsInteger,jAsInteger

j=1

Fori=1Ton

IfiMod2=0Then

a(j)=a(i):

j=j+1

EndIf

Nexti

ReDimPreservea(j-1)

Fori=1Toj-1

a(i)

Nexti

EndSub

PrivateSubForm_Activate()

DimiAsInteger

n=InputBox("请输入个数:

")

ReDima(n)

Fori=1Ton

a(i)=Int(Rnd*100)'随机生成1-100之间的数

a(i)

Nexti

EndSub

实验9-10编程实现首先生成一个由小到大已排好序的整数数组,再输入一个数据,单击“插入”按钮会自动把这个数据插入到原数组适当的位置,并保持数组的有序性。

程序运行界面如图9-15所示。

图9-15程序运行界面

OptionExplicit

Dima()AsInteger,mAsInteger,pAsInteger

PrivateSubCommand1_Click()

DimnAsInteger,iAsInteger,kAsInteger

n=Text2

p=p+1

Text3=""

Fori=1ToUBound(a)

Ifn

Nexti

k=i

ReDimPreservea(m+p)

Fori=UBound(a)-1TokStep-1

a(i+1)=a(i)

Nexti

a(k)=n

Fori=1ToUBound(a)

Text3=Text3&Str(a(i))

Nexti

EndSub

PrivateSubForm_Activate()

DimiAsInteger

m=InputBox("请输入个数")

ReDima(m)

Fori=1Tom

a(i)=(i-1)*10+1

Text1=Text1&Str(a(i))

Nexti

EndSub

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

当前位置:首页 > 外语学习 > 其它语言学习

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

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