预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共39页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第 6 章理解数组的的概念和应用 熟练掌握控件数组的理解和运用 教学重点与难点: 对一般数组的理解运用;理解掌握并运用控件数组6.1.1案例实现过程 【案例说明】 输入某小组5个同学的成绩,计算总分和平均分(取小数后一位)。 分析:本例利用InputBox函数来输入成绩,输入完毕后经过计算,再采用Print直接在窗体上输出结果,采用数组进行处理数据。 2.假设10名学生的考试成绩为89,96,81。67.79。90,63,85,95和83,求出最高分和最低分,程序运行后如图6.1所示。 图6.1运行结果 分析:在Form_Load事件过程中,通过Array函数为数组score赋值。单击“查找”按钮(Commandl)后,开始查找最高分和最低分,找到后显示在标签Labell上3.某学习小组有5名学生,他们的成绩如表6.1所示。设计程序,计算每个学生和每门课的平均分。 表6.1学生成绩表 程序运行后如图6.2所示。 图6.2求平均分 分析:对于这样一个5行3列的成绩表,可以用一个二维数组a(5,3)来描述。程序中可设置二重循环,用以实现每行和每列上的累加。 4.随机产生10个10~100间的整数,用“选择排序法”由小到大排序,最后输出结果。程序运行结果如图6.3所示。 图6.3排序结果分析: (1)利用Int(91*Rnd+10)产生10~100间的随机整数。 (2)按值从小到大排序。排序方法如下: 先将10个数放人数组a中,再对下标变量a(1),a(2),a(3),…,a(10)进行排序处理。 从这10个下标变量中选出最小值,通过交换把该值存人a(1)。 除a(1)之外(a(1)已存放最小值),从其余9个下标变量中选出最小值(即10个数中的次小值),通过交换把该值存人a(2)。 采用上述方法,选出a(3)~a(10)中的最小值,通过交换,把该值存人a(3)。 重复上述处理,至a(8),可使a(1)~a(8)由小到大排列。 第9次处理,选出a(9)及a(10)中的最小值,通过交换把该值存人a(9),此时a(10)存放的就是最大值。 (3)程序结构。完成上述比较及排序处理过程,可以采用二重循环结构,外循环变量i从l到9,共循环9次;内循环的变量j从i+1到10。 【技术要点】 该应用程序设计步骤如下。 1.运用【案例说明】中的第一部份:输入某小组5个同学的成绩,计算总分和平均分(取小数后一位)。 (1)本例利用InputBox函数来输入成绩,输入完毕后经过计算,再采用Print直接在窗体上输出结果。 采用Print直接在窗体上输出结果,程序代码如下: PrivateSubform_load() Dimd(5)AsInteger DimiAsInteger,totalAsSingle,averageAsSingle Show Fori=1To5'输入成绩 d(i)=Val(InputBox("请输入第"&i&"个学生的成绩",_ "输入成绩"))Nexti total=0 Fori=1To5'计算总分 total=total+d(i) Nexti average=total/5 Print"总分:";total Print"平均分:";Format(average,"##.0") EndSub 程序中,先通过Dim语句为数组d定义维数及下标范围,即为数组安排一块连续的内存存储区,但这并不意味着在内存里该数组已获得了应有的内容。本例中,输人数组中的数据是由InputBox函数来实现的,共循环了5次,输入的5个数依次赋值给下标变量d(1)~d(5)n。建立了数组中的数据后,就可以按要求进行处理了。 2.运用【案例说明】中的第二部份:假设10名学生的考试成绩为89,96,81。67.79。90,63,85,95和83,求出最高分和最低分。(1)创建应用程序的用户界面和设置对象属性,如图6.4所示。窗体上含有一个标签(Label1)和一个命令按钮(Commandl)。标签Labell用于显示有关信息。按钮Commandl的Caption属性为“查找”。 。 图6.4界面设计 2)编写程序代码。 OptionBase1 '在模块级声明段中声明 DimscoreAsVariant 'score用做数组变量名 PrivateSubForm_Load() Label1.Caption="单击“查找”按钮开始查找最高分和最低分" score=Array(89,96,81,67,79,90,63,85,95,83) EndSubPrivateSubcommand1_click() DimmaxAsInteger,minAsInteger max=score(1) '设定初值 min=score(1