第9章实验答案Word文档格式.docx
- 文档编号:20358245
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:17
- 大小:304.10KB
第9章实验答案Word文档格式.docx
《第9章实验答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《第9章实验答案Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
)的人数有"
s(i);
个"
实验9-2随机生成10个2位数整数,然后按照从小到大的顺序排列,并显示排列结果(运行界面如图9-7所示)。
Dima(10)AsInteger
Dimi%,j%,t%
Picture1.Print"
随机生成的数:
"
Fori=0To9
a(i)=Int(Rnd*90+10)
Picture1.Printa(i);
Spc
(2);
If(i+1)Mod5=0ThenPicture1.Print
Picture1.Print
排序后的数据显示如下:
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
实验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);
NextI
Print"
Num"
"
Row"
Column"
big=a(I,1)
Ifbig<
=a(I,j)Thenbig=a(I,j):
col=j
flag=True
Fork=1Ton
Ifbig>
a(k,col)Thenflag=False
Nextk
Ifflag=TrueThen
s=s+1
Printbig,I,col'
s为鞍点个数
Ifs=0ThenPrint"
无鞍点"
实验9-4编程实现把十进制数转换为二、八、十六进制数。
OptionBase0
DimiAsInteger,dAsInteger,b(15)AsString,sAsString,mAsString,rAsInteger,cAsInteger
m="
0123456789ABCDEF"
d=Val(Text1.Text)
r=Val(Text3.Text)
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)
Text2.Text=s
DimAAsInteger
r=A
PrivateSubOption1_Click()
A=2
PrivateSubOption2_Click()
A=8
PrivateSubOption3_Click()
A=16
PrivateSubList1_Click()
A=Val(List1.Text)
实验9-5利用二维数组设计一个程序,输出界面如图9-11所示。
图9-11程序运行结果图
OptionBase1
Dima(9,9)AsInteger
DimiAsInteger,jAsInteger
Fori=1To9
Forj=1Toi
a(i,j)=i*j
PrintTab((j-1)*9+1);
i&
×
="
a(i,j);
实验9-6如图9-12所示,运行时,由窗体右侧的文本框对列表框进行学生信息的输入,单击“输入学生信息”按钮将数据添加至列表框1;
单击“整理学生信息”,去除列表框1中的重复学生信息;
在查找对象下面的Text1文本框输入一个姓名或姓,单击“查找”按钮,则在列表框中进行查找,若找到匹配的列表项,则把该人的信息显示在列表框2中。
若未找到,则在列表框2中显示“查无此人”。
(a)输入学生信息,整理学生信息前(b)整理学生信息前后(c)查找学生
图9-12
OptionExplicit
PrivateSubCmdAdd_Click()
LstStuInfo.AddItem(TxtStu.Text)
TxtStu="
TxtStu.SetFocus
PrivateSubCmdClearUp_Click()
DimiAsInteger,jAsInteger
DoWhilei<
LstStuInfo.ListCount
j=i+1
DoWhilej<
IfLstStuInfo.List(i)=LstStuInfo.List(j)Then
LstStuInfo.RemoveItemj
LstStuInfo.Refresh
Else
j=j+1
Loop
i=i+1
PrivateSubCmdFind_Click()
DimkAsInteger,nAsInteger
n=LstStuInfo.ListCount
k=0
LstFind.Clear
Fork=0Ton
IfTxtName.Text=Left(LstStuInfo.List(k),1)Then
LstFind.AddItemLstStuInfo.List(k)
IfLstFind.ListCount=0Then
LstFind.AddItem"
查无此人"
实验9-7利用控件数组设计如图所示的简易计算器。
DimstrOperator()
DimblnDigitAsBoolean
DimdblResult
PrivateSubcmdAllClear_Click()
dblResult=0:
blnDigit=False:
Text1.Text="
:
lblOperator="
+"
PrivateSubcmdClear_Click()
DimintLen%
intLen=Len(Text1.Text):
IfintLen>
0ThenText1.Text=Left(Text1.Text,intLen-1)
PrivateSubcmdDigit_Click(IndexAsInteger)
StaticblnDotAsBoolean
DimstrKey$
strKey=cmdDigit(Index).Caption
IfstrKey="
."
ThenIfNotblnDotThenblnDot=TrueElseExitSub
IfNotblnDigitThenText1.Text="
Text1.Text=Text1.Text&
strKey
blnDigit=True
PrivateSubcmdOperator_Click(IndexAsInteger)
IfblnDigitThen
SelectCaselblOperator.Caption
Case"
dblResult=dblResult+Val(Text1.Text)
-"
dblResult=dblResult-Val(Text1.Text)
dblResult=dblResult*Val(Text1.Text)
÷
IfVal(Text1.Text)<
>
0Then
dblResult=dblResult/Val(Text1.Text)
ExitSub
dblResult=Val(Text1.Text)
EndSelect
Text1.Text=dblResult:
blnDigit=False
EndIf
lblOperator.Caption=strOperator(Index)
PrivateSubcmdSign_Click()
DimstrDot$
strDot=IIf(Right(Text1.Text,1)="
Text1.Text=-Val(Text1.Text)&
strDot
IfNotblnDigitThendblResult=-dblResult
PrivateSubForm_Load()
strOperator=Array("
):
CallcmdAllClear_Click
实验9-8自定义类型数组的应用,要求如下。
图9-14程序运行结果图
(1)自定义一个教师数据类型,包括教师工号、姓名、工资三项内容,然后再声明一个教师类型数组,个数由键盘输入。
(2)窗体设计如图9-14所示;
单击“新增”按钮时,将文本框中输入的内容添加到数组的当前元素中;
单击“排序”按钮时,将输入的内容按工号递增顺序排列,并在图形框中显示;
单击“清空”按钮,把文本框中的内容清除;
在“工号”文本框中输入一个工号,单击“查找”按钮,把该工号的教师信息对应显示在文本框中。
要求“查找”按钮必须在“排序”按钮执行后才可用。
一旦单击“新增”按钮,“查找”按钮就不可用。
PrivateTypeteach
ghAsLong
xmAsString*10
gzAsLong
EndType
Dima()Asteach,iAsInteger,nAsInteger
n=Val(InputBox("
输入人数"
))
ReDima(1Ton)
i=0
Command2.Enabled=False
Command3.Enabled=False
PrivateSubCommand1_Click()'
添加教师信息
Witha(i)
.gh=Val(Text1.Text)
.xm=Text2.Text
.gz=Val(Text3.Text)
EndWith
Text2.Text="
Text3.Text="
Command2.Enabled=True
Ifi=nThenMsgBox("
人数已够"
Command1.Enabled=False:
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
Nextj
工号"
Spc(3);
姓名"
Spc(10);
工资"
Forj=1Toi
Picture1.Printa(j).gh;
a(j).xm;
a(j).gz
Command3.Enabled=True
PrivateSubCommand3_Click()'
查找
DimKeyAsLong
DimLeftAsInteger,RightAsInteger,MidAsInteger
Key=Val(Text1.Text)
Left=1:
Right=i
DoWhileLeft<
=Right
Mid=(Left+Right)\2
Ifa(Mid).gh=KeyThen
ExitDo
ElseIfa(Mid).gh>
KeyThen
Right=Mid-1
Left=Mid+1
IfLeft>
RightThen
MsgBox"
数组中没有元素"
Key
Text2.Text=a(Mid).xm
Text3.Text=a(Mid).gz
PrivateSubCommand4_Click()'
清空
实验9-9利用随机函数生成一组数存放在数组中,把该数组的值显示在图形框中,然后将下标为奇数的数组元素从数组中删除,再把新数组显示在另一个图形框中。
Dima()AsInteger
DimnAsInteger
方法一:
Dimb()AsInteger
ReDimb(n)
j=1
Fori=1Ton'
把下标为偶数的数放到数组b()中
IfiMod2=0Then
b(j)=a(i)
Nexti
Fori=1Toj-1'
把b()数组的值重新赋回a数组
a(i)=b(i)
Picture2.Printa(i)
Fori=jTon'
a数组其余元素值变为0
a(i)=0
方法二
Fori=1Ton
a(j)=a(i):
ReDimPreservea(j-1)
Fori=1Toj-1
PrivateSubForm_Activate()
DimiAsInteger
请输入个数:
ReDima(n)
a(i)=Int(Rnd*100)'
随机生成1-100之间的数
Picture1.Printa(i)
实验9-10编程实现首先生成一个由小到大已排好序的整数数组,再输入一个数据,单击“插入”按钮会自动把这个数据插入到原数组适当的位置,并保持数组的有序性。
程序运行界面如图9-15所示。
图9-15程序运行界面
Dima()AsInteger,mAsInteger,pAsInteger
DimnAsInteger,iAsInteger,kAsInteger
n=Text2
p=p+1
Text3="
Fori=1ToUBound(a)
Ifn<
a(i)ThenExitFor
k=i
ReDimPreservea(m+p)
Fori=UBound(a)-1TokStep-1
a(i+1)=a(i)
a(k)=n
Text3=Text3&
Str(a(i))
请输入个数"
ReDima(m)
Fori=1Tom
a(i)=(i-1)*10+1
Text1=Text1&
Text2.SetFocus
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 答案