在线测试程序之火星思路

最近同事老说我火星,貌似真的有点火星。这不,在一个在线测试程序的问题上,产生一个很火星的思路。

问题:
在线测试程序,共A-F6组题(也可能更多)。每组里有4道题(也可能更多),每道题有数量不同的选项,选择每个项有不同的分值。要求在答卷提交时,检查题是否全部完整并计算ABCDEF每组题的总分.

俺的火星思路:
表单项这样命名:
A组  第一题A1,第二题A2,第三题A3……
一直到F1、F2、F3、F4  (全部为radio按钮,值就是该选项的分数)

之后,接收表单的程序这样来处理:
程序代码 程序代码
Dim i,i2 '用于循环

Dim Atotal,Btotal,Ctotal,Dtotal,Etotal,Ftotal
Atotal = 0 'A组题总分
Btotal = 0 'B组题总分
Ctotal = 0 'C组题总分
Dtotal = 0 'D组题总分
Etotal = 0 'E组题总分
Ftotal = 0 'F组题总分

For i = Asc("A") To Asc("F")
    For i2 = 1 To 4
        If Not  IsNumeric(request.Form(Chr(i) & i2)) Then
            response.Write ("<script>alert(""您还没答完题"");location.href=""javascript:history.back()"";</script>")
            response.End
        End If

        Select Case Chr(i)
            Case "A" Atotal=Atotal+Int(request.Form(Chr(i) & i2))
            Case "B" Btotal=Btotal+Int(request.Form(Chr(i) & i2))
            Case "C" Ctotal=Ctotal+Int(request.Form(Chr(i) & i2))
            Case "D" Dtotal=Dtotal+Int(request.Form(Chr(i) & i2))
            Case "E" Etotal=Etotal+Int(request.Form(Chr(i) & i2))
            Case "F" Ftotal=Ftotal+Int(request.Form(Chr(i) & i2))
        End Select
    Next
Next

'到这里  验证也验证完了,ABCDEF题组的分数也计算出来了


Friedl曾说,掌握正则表达式并不重要,重要的是要掌握用正则的思维方式来思考和解决问题的方法.是的,解决一个问题不重要,重要的是要掌握一种高效的思路.

就本文所属问题来说,我自己感觉这个火星的思路比常规的思路要更有效率也更来得直观,使程序更具可阅读性.写一下做个记录.希望此思路以后能给自己也给朋友们在遇到问题时有所启发.


文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.