实验五分析.doc_第1页
实验五分析.doc_第2页
实验五分析.doc_第3页
实验五分析.doc_第4页
实验五分析.doc_第5页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上海立信会计学院本科实验报告班级: 学号: 姓名: 指导教师: 系部: 专业: 实验时间: 实验5 数组一、 实验目的1 掌握数组的声明、数组元素的引用2 掌握固定长度数组和动态数组的使用差别二、实验要求1 在C:下建立子文件夹“VB实验5”,按照题目要求,在该文件夹下为各题保存相应的文件,如本实验中的第一题,需保存的文件有:工程文件(51.vbp)、窗体文件(51.frm) 及可执行文件(51.exe),本实验中的第二题,需保存的文件有:工程文件(52.vbp)、窗体文件(52.frm) 及可执行文件(52.exe),其余实验依此类推。2 撰写实验过程中出现了哪些问题、错误,你是如何解决的,做一个小结。三、 实验内容:1. 随机产生30100(包括30、100)的10个正整数,存放于数组中,显示该数组的值,并求出最大值、最小值和平均值,如图5-1所示。要求:窗体显示字体默认、大小为小三,通过单击窗体触发程序运行。图5-1分析:1、随机产生30100(包括30、100)的10个正整数,存放于数组中设定一个10个元素的数组,来存放随机生成的10个正整数,程序如下:Dim a(9) as integerrandomizeFor i=0 to 9 A(i)=int(rnd*71+30)Next i2、求出最大值(max)、最小值(min)和平均值(ave)求最大值:l 先设最大值max为数组中第一个元素,那么可以先设定max=a(0)l 将max和数组中其余9个元素一个一个对比,如果max小于数组中元素a(i),则max等于数组中元素a(i),这样可以保证最终的max是最大的,对比程序如下:Max=a(0)For i=1 to 9 If maxa(i) then min=a(i)Next i求平均值:要求平均值,肯定要先求数组中元素的总值,再根据总值除以元素个数就可以求出平均值,程序如下:Ave=0For i=0 to 9Ave=ave+a(i)Next iAve=ave/102. 已知6个学生的成绩,通过Array函数对数组赋初值,利用String函数,以每5分用一个“”符号显示,随后显示学生的成绩。要求:窗体中所有控件字体默认、大小为小四,计算结果在程序启动时立即在窗体中显示。效果如图5-2所示。图5-2分析:1、已知6个学生的成绩,通过Array函数对数组赋初值根据要求,声明一个数组mark用来存放6个学生的成绩,用array函数来对数组赋初值,则程序如下:Dim markMark=array(56,78,98,88,76,78)2、利用String函数,以每5分用一个“”符号显示,随后显示学生的成绩利用string函数来显示“”,要打印出个数,则根据成绩来确定,如98分,则打印985(即成绩是5的多少倍)个“”,用for循环将每个数组中的成绩打印出来For i = 0 To UBound(mark) ubound(mark)取得数组mark的上界 Print String(mark(i) 5, ); mark(i) PrintNext i3、计算结果在程序启动时立即在窗体中显示注:根据题义,事件是form_load事件,别忘记了设置autoredraw为true3. 随机产生20个学生的成绩(整数),统计各分数段人数。即059、6069、7079、8089、90100,并显示结果,效果如图5-3所示。要求:(1)单击按钮“产生并显示数据”按钮时,产生的数据在Picture1显示,单击“统计分数段人数”时,统计的结果在Picture2显示。(2)学生成绩和统计结果分别放在两个不同的数组中。(3)所有控件字体默认、大小为小四。图5-3分析:看题目要求,要声明两个数组,mark(1 to 20)用来放20个学生的成绩,s(5 to 9)用来放统计结果,这边注意,因为装成绩的数组在两个按钮的单击事件中都要调用到,所以mark数组的声明要在两个事件的外面(1)单击按钮“产生并显示数据”按钮时,产生的数据在Picture1显示在command1_click事件中写如下代码:Dim mark(1 to 20)Private Sub Command1_Click()RandomizePicture1.Cls 用来清除picture1中的内容j = 0For i = 1 To 20 mark(i) = Int(Rnd * 101) Picture1.Print Tab(5 * j); mark(i); j = j + 1 If j mod 4 =0 Then j = 0:picture1.print 注意,紫色部分是用来让打出的每个元素占4个字符用的,要占更大空间,把tab(5*i)中的5调大就行Next iEnd Sub(2)单击“统计分数段人数”时,统计的结果在Picture2显示。看这个要求,和图片上的显示,s(5 to 9)数组用来装统计结果,s(5)装059分的分数,装6069的人数,装7079的人数,装8089的人数,装90分以上的分数,可以以mark(i)为变量,用select case语句来写程序:For i = 1 To 20 Select Case mark(i) Case 0 To 59 s(5) = s(5) + 1 Case 60 To 79 s(6) = s(6) + 1 Case 70 To 79 s(7) = s(7) + 1 Case 80 To 89 s(8) = s(8) + 1 Case Else s(9) = s(9) + 1 End SelectNext i4. 通过单击相应按钮,产生原始数据和升降序排列这批数据,对应显示在标签框中,要求:原始数据为随机产生10个2位数,用选择法升序排列这些数据,用冒泡法降序排列这些数据,窗体中字体默认、大小为小四。效果如图5-4所示。图5-4分析:要求:原始数据为随机产生10个2位数1、我们可以设一个数组a(9)用来存放产生的10个2位数,这边注意,产生的数组在下面两种排序时都要用到,所以声明数组时要在事件外面声明2、用for循环和随机数函数即可给数组赋值3、这边注意,生成的随机数要在label标签中显示出来,label标签没有print方法,所以可以在for循环中用Label1 = Label1 & & a(i) 这种方式来输出,双引号中打几个空格可以用来确定数字之间的间隔。“产生原始数据”按钮事件程序如下:Dim a(9) As IntegerPrivate Sub Command1_Click()RandomizeLabel1 = For i = 0 To 9 a(i) = Int(Rnd * 90 + 10) Label1 = Label1 & & a(i)Next iEnd Sub后面两种排序方法参照书上例题即可,完整程序如下5. 参照教材例5.3,在通用声明阶段声明两个数组,利用随机函数形成两个数组(中元素范围在3070(包括30、70),中元素范围在100140(包括100、140),如产生下列数组: , 要求: 先产生、数组,然后以下三角形式显示数组,以上三角形式显示数组。 显示数组主对角线元素之和及数组副对角线元素之和。 点击相应的按钮结果在相应的图片框中显示,所有控件字体默认、大小为小四。效果如图5-5所示。图5-5分析:这个题目可以参考书上P103页的例5.31、首先声明两个数组,a(3,3),b(3,3)用来存放数组元素,这边数组声明后在另外几个按钮事件中都要用到,所以数组声明在事件外,产生数组程序如下:Dim a(3, 3) As Integer, b(3, 3) As IntegerPrivate Sub Command1_Click()RandomizeFor i = 0 To 3 For j = 0 To 3 a(i, j) = Int(Rnd * 41 + 30) b(i, j) = Int(Rnd * 41 + 100) Picture1.Print Tab(j * 6); a(i, j); Picture2.Print Tab(j * 6); b(i, j); Next j Picture1.Print Picture2.PrintNext iEnd Sub2、以下三角形式显示数组,以上三角形式显示数组Private Sub Command2_Click()For i = 0 To 3 For j = 0 To i Picture3.Print Tab(j * 6); a(i, j); Next j Picture3.PrintNext iEnd SubPrivate Sub Command3_Click()For i = 0 To 3 For j = i To 3 Picture4.Print Tab(j * 6); b(i, j); Next j Picture4.PrintNext iEnd Sub3、显示数组主对角线元素之和及数组副对角线元素之和(1) A数组主对角线之和,在对应的a(3,3)数组中,主对角线元素如下图是:a(0,0),a(1,1),a(2,2),a(3,3),即在当i=j时,进行累加就行,程序如下:打印Dim suma%suma = 0For i = 0 To 3 Suma=suma+a(i,i)Next iPicture5.Print A数组主对角线元素和为:; suma(1) B数组副对角线之和,在对应的b(3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论