Private Type T
Name As String
Nm As Integer
Class As String
End Type
Private Sub Form_Load()
Dim Tech(1 To 3) As T
Dim i As Integer
Tech(1).Name = "数学"
Tech(2).Name = "语文"
Tech(3).Name = "英语"
Tech(1).Nm = InputBox("输入数学成绩")
Tech(2).Nm = InputBox("输入语文成绩")
Tech(3).Nm = InputBox("输入英语成绩")
For i = 1 To 3 Step 1
Select Case Tech(i).Nm
Case Is > 90: Tech(i).Class = "A"
Case Is > 80: Tech(i).Class = "B"
Case Is > 70: Tech(i).Class = "C"
Case Is > 60: Tech(i).Class = "D"
Case Is >= 0: Tech(i).Class = "E"
End Select
Next i
For i = 1 To 3 Step 1
MsgBox "您的" & Tech(i).Name & "成绩是" & CStr(Tech(i).Nm) & "分,成绩级别为" & Tech(i).Class
Next i
End Sub
运行下看看
其实我们在人为的判断这个分数时,也是要每个科目分数都来比较一下
比如X课程分为82,那么我们在思索时先看它是不是大于等于90,否定,然后再看是不是大于等于80,肯定了,于是X课就评定为B级.然后按照这个方法再进行Y课程的判定.只是我们思考的速度很快,所以不觉得是这么一步一步来的,好象是一眼就看出来一样.实际上我们编写程序时都是先有思路再进行编写,编写的过程就是将思路一步一步的实现出来,哪怕是微小的一个小环节都要用程序来体现出来.如果希望让计算机一眼看出来,我们就要分解计算机的每一步行为,程序编写做的就是这个步骤.
程序编写时重要的一个环节就是需要把你的数据进行合理化的分类,我把这个过程叫做属性分解.比如你的这个例子.课程在你的程序中需要多少种属性的体现?我把它分成三个属性,1课程名,2课程分数,3课程得分评级.所以自定义了类型,就是Type T.
一共需要三门课程,它们都是课程这是共同点,所以使用1维数组并定义为T.
下面的就是赋值和判定了,用循环inputbox赋值,并用select进行判定是常用的方法.
用IF也未尝不可,但是稍微麻烦些,用if的话结构要注意调整好.
在输出时仍然使用循环进行输出,并将每个课程的每个属性都体现在结果中.
在上面的程序里,有些是多余的,但为了让你看清楚和理解,所以加了上去,比如循环for语句中的step 1,for循环的默认步长就是1,那么我们在写别的程序时可能会用到8,6,4,2,0...的步长为-2的情况,那么就可以step -2.
在声明一维数组时我专门写上了1 to 3,在没有特别指明base时,编译认为默认起始是0,也就是说Tech(0),Tech(1),Tech(2),Tech(3)一共四个了,我们不需要这么多,只需要三个就够了,可能你会觉得多一个没什么关系,但以后在稍微大型的程序中多余的代码和内存开支会让你的程序变的很慢,虽然VB程序的系统资源开支是比较大的,不过为了养成好的习惯,还是尽量减少不必要的变量为好.
另外不支持非Int的输入,我也没有加上输入格式的约束,如果你想简单处理,用On Error吧,它是处理程序在发生不可预料的异常状况时常用的方法,On Error又分为立即处理和暂缓处理等方式.
温馨提示:答案为网友推荐,仅供参考