实验5数组答案.docx
- 文档编号:25776161
- 上传时间:2023-06-13
- 格式:DOCX
- 页数:20
- 大小:141.88KB
实验5数组答案.docx
《实验5数组答案.docx》由会员分享,可在线阅读,更多相关《实验5数组答案.docx(20页珍藏版)》请在冰豆网上搜索。
实验5数组答案
VB程序设计实验五
实验目的
●掌握一维数组和二维数组的操作
●学习跟数组相关的控件:
列表框和组合框
复习
1.列表框
列表框(ListBox)控件允许用户查看和选择列表中的多个元素。
表5-11列表框的常用属性和事件
常用属性和事件
描述
常用属性
Items
表示该控件中所有元素的集合(类似于数组,有下标的,从0开始)
MultiColumn
布尔值。
若为True,则该控件中的所有列表元素分在多个列表中显示,从而避免在显示区域中出现滚动条
SelectedIndex
被选中元素的索引。
如果没有元素被选中,值为-1;如果用户选中了多个元素,这个属性只返回被选中的索引值之一。
由于这个原因,如果有多个元素被选中,应该使用SelectedIndices属性
SelectedIndeces
集合。
其中包含了所有被选定元素的索引值
SelectedItem
返回被选中元素的引用。
如果有多个元素被选中,则返回索引值最小的那个元素
SelectedItems
集合。
返回所有被选定的元素的引用
SelectedMode
确定可以选择的元素的数量,以及多个元素可以被选择的方式。
常用事件
SelectedIndexChanged
当用户选择的索引改变时发生的事件
Click
单击
2.组合列表框(ComboBox)整合了列表框和文本框的功能,以一个文本框控件(TextBox)右边加上一个向下箭头的样式显示。
有Simple(简单组合框)、DropDown(下拉组合框)和DropDownList(下拉列表框)。
其中,Simple选项不显示下拉箭头,而是在控件的旁边显示一个滚动条;DropDown风格(默认值)在单击向下箭头时显示一个下拉列表,且在ComboBox中输入一个值;DropDownList显示一个下拉列表,但不允许用户在ComboBox中输入。
表5-13组合列表框的常用属性和事件
常用属性和事件
描述
常用属性
DropDownStyle
确定ComboBox的类型,Simple、DropDown、DropDownList
Items
该控件中的元素集合
MaxDropDownItems
确定下拉列表中可以显示的最大元素数量。
如果元素的数量超过了该值,则在组合列表框中出现滚动条
SelectedIndex
返回被选择元素的索引。
如果没有元素被选中,则返回-1
SelectedItem
返回被选择元素的引用
Sorted
布尔值。
表示列表中的元素是否排序
常用事件
SelectedIndexChanged
当被选择的索引发生变化时该事件发生
Click
单击
3.列表框和组合框的其他属性、方法
(1)Items.Count属性:
列表框或组合框中项目数量。
最后一项的序号为Items.Count-1,该属性只能在程序中设置或引用。
(2)Text属性:
被选定的选项的文本内容。
该属性只能在程序中设置或引用。
注意:
ListBox1.Items(ListBox1.SelectedIndex)等于ListBox1.Text。
(3)Items.Add方法
把一个选项加入列表框,格式:
对象.Items.Add(选项);如:
ListBox1.Items.Add("周海涛")
(4)Insert方法
在指定位置插入一个项目。
格式:
对象.Items.Insert(序号,添加项内容)
(5)Items.Remove方法
从列表框中删除指定的项。
格式:
对象.Items.Remove(选项)。
例如:
ListBox1.Items.Remove("华成")
(6)Items.RemoveAt方法
格式:
对象.RemoveAt(Index)
从列表框中删除指定的项。
Index表示被删除项目在列表框中的位置,从0开始。
例如:
ListBox1.Items.RemoveAT(4)
(7)Items.Clear方法
格式:
对象.Items.Clear
用于清除列表框所有项目,例如:
ListBox1.Items.Clear
4.单选按钮、复选框和框架
1)单选按钮(RadioButton)
单选按钮以组的形式出现,允许选择其中一项。
•Text属性:
按钮上显示的文本
•TextAlign属性:
文本对齐方式
•Checked属性:
表示单选按钮的状态,True——被选定,False——未被选定
•Click事件:
单击后,使Checked属性为True
•CheckedChanged事件:
当某个单选按钮的状态被发生变化,该事件随之被触发。
2)复选框(CheckBox)
与RadioButton具有相同属性和事件,之外还有:
•CheckState属性:
表示复选框状态,Unchecked——未选定,Checked——被选定,Indeterminate——灰色
3)框架(GroupBox分组框)
•Text属性:
标题文本
•Enabled属性:
框架和其中的控件
•Visible属性:
为False时,框架及其所有控件都被隐藏起来。
框架可以响应Click和DoubleClick事件,但一般不需要编写事件过程。
实验内容
1.参照下图界面,程序运行时,可根据用户的需要,设置字体的前景色、背景色、字体大小等,文本框中的文字会发生相应改变。
其中,字体、字体大小、字体效果、字体背景色、字体前景色分别为框架。
设计时,先建立框架,再将各个控件分别放入框架内,当移动框架时,里面的控件同时移动。
保存项目为shiyan5-1。
创建项目:
1)双击工具箱的“容器”选项卡下的GroupBox按钮
,在窗体上建立5个框架控件,分别将其Text属性设置为“字体”、“字体大小”、“字体效果”、“字体背景色”和“字体前景色”。
2)单击RadioButton按钮
,在“字体”和“字体大小”框架中画出单选按钮,并设置其Text属性。
3)单击ListBox按钮
,在“字体效果”框架中画出列表框,单击Items属性旁的
按钮,输入列表项的内容(如“加粗”、“斜体”等),并每项内容之间按Enter键。
4)单击CheckBox按钮
,在“字体背景色”框架中画出复选框,并设置其Text属性。
其中,“Red”复选框的Checked属性值为True。
5)单击ComboBox按钮
,在“字体前景色”框架中画出下拉列表框,其属性值通过Form_Load事件过程设置。
提示:
(1)在通用声明段中声明6个变量R、G、B、rr、s、f,R、G、B分别用于保存字体背景红、绿、蓝色的设置,rr用于保存颜色,s用于保存字体大小,f用于保存字体。
DimR%,rr%,G%,B%,s%,f$'声明R、G、B、rr、s、f为窗体模块级变量
在Form_Load事件过程中设置颜色的初始值,并添加“字体前景色”下拉列表中的列表项。
R=255:
G=0:
B=0
s=9:
f="宋体"
ComboBox1.Items.Add("Black")‘在组合框中添加项目,第1项下标为0开始
ComboBox1.Items.Add("White")
ComboBox1.Items.Add("Yellow")
ComboBox1.Text="Black"‘设置当前选项为"Black"
(2)“字体”框架中单选按钮的事件过程代码(其他字体事件过程参照该事件过程)
PrivateSubRadioButton1_Click(……)HandlesRadioButton1.Click'单击“宋体”单选按钮
f="宋体"
TextBox1.Font=NewFont(f,s)
EndSub
其中,Font为字体类,设置字体使用NewFont(字体名称字符串,字号,字体效果)
(3)在VB.NET中,每一种颜色用一个整型数据来表示,可使用Color颜色结构中的FromArgb(x,y,z)函数来实现,或用颜色函数RGB(x,y,z),通过ColorTranslator类转换实现。
“字体背景色”框架中复选框的事件过程
PrivateSubCheckBox5_CheckedChanged(……)HandlesCheckBox5.CheckedChanged
'单击“Red”复选框
IfCheckBox5.Checked=TrueThen‘要判断各个复选框的选定状态,颜色由R、G、B组成
R=255
Else
R=0
EndIf
rr=RGB(R,G,B)
Textbox1.BackColor=System.Drawing.ColorTranslator.FromOle(rr)
EndSub
“字体前景色”框架中下拉列表框的事件过程如下:
PrivateSubComboBox1_SelectedIndexChanged(…)HandlesComboBox1.SelectedIndexChanged
'选择“字体前景色”下拉列表
SelectCaseComboBox1.Text
Case"Black"
Textbox1.ForeColor=Color.Black
Case"White"
Textbox1.ForeColor=Color.White
Case"Yellow"
Textbox1.ForeColor=Color.Yellow
EndSelect
EndSub
“字体效果”框架中列表框的事件过程(SelectedIndexChanged事件过程)
IfListBox1.SelectedIndex=0Then
TextBox1.Font=NewSystem.Drawing.Font(TextBox1.Font,FontStyle.Bold)
EndIf
也可以用SelectCase语句
2.编写程序输出一个9行的“杨辉三角形”,如图4-12所示。
保存项目为shiyan5-2.
图4-12杨辉三角形
提示:
①杨辉三角形的形式:
对角线和每行的第一列均为1,其余各项是它的上一行中同一列元素和其前面一个元素之和。
如下数据是一个5行的杨辉三角。
10000
11000
12100
13310
14641
a(i,j)=a(i-1,j)+a(i-1,j-1)
②用Space函数确定数据之间的空格:
Label1.Text=Label1.Text&a(i,j)&IIf(a(i,j)<10,Space(3),Space
(2))
PrivateSubButton1_Click(senderAsSystem.Object,eAsSystem.EventArgs)HandlesButton1.Click
Dimi,j,n,a(8,8)
n=8
Fori=0Ton
Forj=0Toi
Ifi=jOrj=0Then
a(i,j)=1
ElseIfi<>0Andj<>0Then
a(i,j)=a(i-1,j)+a(i-1,j-1)
EndIf
Next
Next
Fori=0Ton
Label1.Text&=Space((n-i)*2+2)
Forj=0Toi
Label1.Text=Label1.Text&a(i,j)&IIf(a(i,j)<10,Space(3),Space
(2))
Next
Label1.Text=Label1.Text&vbNewLine
Next
EndSub
3.将数组下标为偶数的元素从小到大排序,其他元素不变。
保存项目为shiyan5-3
PrivateSubButton1_Click(……)HandlesButton1.Click
Dima()AsInteger={90,49,23,45,11,45,67,23,68,56}
Dimi,j,n,tempAsInteger
n=UBound(a)
Fori=0Ton
Label1.Text=Label1.Text&a(i)&vbCrLf
Nexti
Fori=__0__
(1)____To(n\2-1)*2____
(2)____step2
Forj=_i+2___(3)____To__(n\2)*2__(4)____Step2
If____(5)_a(i)>a(j)_____Then
temp=a(i):
a(i)=a(j):
a(j)=temp
EndIf
Nextj
Nexti
Fori=0Ton
Label2.Text=Label2.Text&a(i)&vbCrLf
Nexti
EndSub
4.下面程序对产生的10个随机数进行排序,程序中有4个错误,请在相应的行上改正。
保存项目为shiyan5-4
PrivateSubButton1_Click(……)HandlesButton1.Click
Dima(9)AsInteger
Dimi,j,imin,tAsInteger
Label1.Text="原始成绩为:
"&vbCrLf
Fori=1To9
a(i)=Int(Rnd()*101)
Label1.Text&=a(i)&""
Next
Fori=0To8
Forj=9Toi+1step-1
Ifa(j) t=a(j) a(j)=a(j-1) a(j-1)=t EndIf Nextj Nexti Label2.Text="排序后的成绩为: "&vbCrLf Fori=0To9 Label2.Text&=a(i)&"" Nexti EndSub 5.某次大奖赛,有10个评委打分,以下程序是针对一名参赛者,输入10个评委的打分分数并进行从小到大排序,去掉一个最高分、一个最低分,求出平均分,为该参赛者的得分。 保存项目为shiyan5-5. SubButton1_Click(......)HandlesButton1.Click Dimmark(10),aver,min,t,jAsSingle aver=0 Fori=1To10 mark(i)=InputBox("输入第"&i&"位评委的打分") aver+=mark(i) Nexti Fori=1To__ (1)__9__ min=__ (2)______i Forj=i+1To10 If____(3)____mark(j) min=j EndIf Next t=mark(min): mark(min)=mark(i): mark(i)=t Next aver=(aver-mark(10)-mark (1)_-__mark(10)____(4)_______)/8 MsgBox("得分为: "&aver) EndSub 6.编写一个向一维字符数组的指定位置添加字符元素和删除指定数组元素的程序。 请参照图示的界面设计窗体,最后将所有文件保存在shiyan5-6项目文件夹下。 【要求】 (1)单击“产生字符数组”按钮,则根据用户输入的数组大小n随机产生并显示n个大写字母,每行显示10个。 (2)单击“排序”按钮,则根据字母顺序排序。 (3)单击“插入”按钮,则根据用户输入的字母将之插入并显示。 (4)单击“删除”按钮,则删除指定的数组元素并重新显示。 【分析】 (1)先在数组中找到要插入的位置,由于字母从小到大排列,若要插入的字母比某个字母小,将插在该字母的前面。 若找到的位置为k,则从第n个元素开始,将第n个元素到第k个元素逐个向后移1位,将新的元素X插入到第k个位置。 参考代码如下: ReDimPreservea(n)'数组增加一个元素 Fori=nTokStep-1'从最后元素开始往后移 a(i+1)=a(i) Nexti a(k)=x‘将元素插入 (2)删除某个含有n个元素的数组A的第k个位置的元素的方法为: 从A(k+1)起到A(n),将各个元素的逐个向前移一位,最后将数组重新定义大小。 参考代码略。 PublicClassForm1 Dimm,n,j,kAsInteger Dimx,a()AsChar PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click‘产生字符数组 DimnAsInteger n=InputBox("请输入数组大小n") n=n-1'上界 ReDima(n) Randomize() Fori=0Ton a(i)=Chr(Int(26*Rnd())+65) TextBox1.Text&=a(i)&Space(3) If(i+1)Mod10=0Then TextBox1.Text&=vbCrLf EndIf Next EndSub PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click‘排序 Dimi,j,imin,mAsInteger,tAsChar m=UBound(a) Fori=0Tom-1 imin=i Forj=i+1Tom
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 数组 答案