60.一维数组的应用 讲解VB中一维数组的应用。
任务实施2:计算一个班级45名学生的语文考试成绩的平均分。
它给出的界面是单击输入,单击输入计算按钮就会弹出输入框,请输入第几位学生的语文成绩。输完语文成绩之后会弹出一个消息框显示语文成绩的平均分。这是这道题,因为涉及到45名学生,所以用循环做45名学生的语文成绩,所以要用For循环,For i=1 To 45,这是45个学生。
然后要输入他们的语文成绩,输入语文成绩存到哪儿?45个人,当然有45个成绩,所以要定义一个数组。比如定义一个语文数组,一共是有45个人的语文成绩。由于数组的下界,下标的下界默认是从0开始,所以在通用段可以使用Option Base1来设置。数组的下界是从1开始,可以给数组一个类型整型。
现在定义了一个语文数组,它里边有45个元素,用来放45个人的语文成绩。接下来就要对这个数组赋值,语文i等于用InputBox函数赋值,一定要用英文的小括号。当i=1的时候就要输入第一个人的语文成绩,所以在这添加提示信息,请输入第几个人,所以要给一个动态的变化。
如果是第一个人就要显示请输入第一个人,如果是第10个人就要显示请输入第10个人,所以后面这个数字是变化的。这个数字的变化是通过i来控制,因为提示是字符串,所以使用加号进行连接,i再加上"几个学生的语文成绩",后面就是个学生的语文成绩,请输入第几个学生的语文成绩,第几个,这i会随着循环的变化发生变化。
还有一点,因为前边和后边都是字符串,而这个i是一个数值,所以最好使用Str函数转换一下,不转当然也不会出错,因为系统有容错的功能。做到这,因为循环当中使用到了循环变量i,一般情况下用到的变量都要先定义再使用,当然不定义也行,不定义就默认是变体。当遇到数字的时候i自动就变成整型,通过循环Next i就完成了语文成绩的输入。
为了便于验证把45改成2,因为45个人太多没法去验证。运行,单击,请输入第一个学生的语文成绩78,确定,请输入第二个学生的语文成绩68,这样就完成了输入,这个输入没问题。
输完之后就要计算平均分,算平均分之前要先算总分,所以可以再用一个For循环,Fori=1 To2,就认为是两个同学Next i,这样就会把当i=1的时候加上第一个人的语文成绩,i=2时加上第二个人的成绩就算出了总分。
算完总分之后就要算平均分,假设平均分放在aver变量中,那就是aver=sum/45就是平均分。最后的显示结果是显示在了消息框中,就是MessgeBox,这个消息框中可以加提示信息,全班的语文成绩的平均分是,然后连上算出来的平均分,因为是字符串,尽量都要转换一下。
运行,输入第一个人的语文成绩70,第二个80,全班的语文成绩的平均分就是结果不对,为什么不对?因为在这不能除45,因为是按两个人进行的计算,所以程序前后要一致,改成2再运行,70第二个人80,平均分就是75,结束。
在做的时候尽量把程序运行的界面调整的跟它给出的一致,像这个信息框,消息框都没有设置标题,大家在自己做的时候一定要完全跟给出的截图一致。
还有一个问题就是在求和的时候可以不用再做一次循环,可以在这也就是输入一个语文成绩就累加一次,也可以语文成绩第一个同学的输入之后马上把它加上,再说第二个同学再把它加上,这样可以简化程序。
从头看一下,语文成绩的平均分是:45个人的语文成绩要定义一个一维数组yuwen(45),用来存放45个人的成绩。
当然为了验证程序,最后设置了两个人,用For循环来输入语文成绩,通过i的变化来控制第一个人、第二个人,每输入一个人的成绩就做一次累加,这样可以计算出所有人的总分。最后用一个除法,总分除以人数来算平均分。