vb中怎样利用数组和frame框架制作一组单选题?怎样编程?
界面只需要添加1个frame和4个单选框(如果是多选题则替换成多选框),每次点击下一题,将题目和选项显示到上面,类似这样:
至于记分,用一个变量计算就可以了,每一题提交后就记分,全部题目完成后显示总分数。
代码:
Dim QS(99,5)'二维数组,这里定义了100道题,第二维是题目内容。这里用自定义结构会更加自然
'初始化数组
QS(0, 0) = "地球自传一周是多少小时?"'题目
QS(0, 1) = "8"'选项1
QS(0, 2) = "12"'选项2
QS(0, 3) = "24"'选项3
QS(0, 4) = "48"'选项4
QS(0, 5) = "3"'答案
...
'显示题目,比如单击按钮“下一题”
Private Sub cmdNext_Click()
mnIndex = mnIndex + 1 '全局变量
Frame1.Caption ="题目" & mnIndex & ":" & QS(0, 0)
Option1(0).Caption = QS(0, 1)
Option1(1).Caption = QS(0, 2)
Option1(2).Caption = QS(0, 3)
Option1(3).Caption = QS(0, 4)
End Sub
那要把初始化求数组的那些语句编写在什么事件中?是随便一个option控件都可以吗?为什么啊?而且怎样刷新每次的选项内容?用怎样的语句刷新内容啊?而且,如果"上一道题"这个按钮是在第一道题上按,此时应该用一句怎样额语句控制不超出范围?同理,最后一道题的"下一道题"按钮也得有一句话控制,怎么控制?
答题的流程你应该心里有数啊,因为界面的操作可以有很多选择就不细说了。
题目的初始化可以在 Form_Load 里,即窗体显示前完成。mnIndex 定义在窗体顶部,是全局变量,指示当前是第几道题,Form_Load 里设置为0,在 Form_Load 调用一次 cmdNext_Click 就显示第一题(mnIndex +1)。
cmdNext_Click() 完成的就是题目的刷新。
“下一题”的事件里检查 mnIndex +1 是否在合理的范围内就可以了(“上一题”也一样)
记分的方式也可以不是每次提交就计算总分,而是定义一个答题数组把每一题的答题情况记下来,比如:
dim arrAnswers(99)
这样就可以修改之前的答案了。