考试系统之填空题-实现方法

本文介绍了一种在考试系统中实现填空题的方法,通过使用固定长度的下划线标记空白区域,并借助ASP.NET和JavaScript进行动态填充及答案验证。

考试系统之填空题-实现方法

做一个考试系统,客户要求要有填空题,实现的过程中可谓费尽周折,在这里说一说实现的过程。
    1、出题的时候,将需要填空的部分用固定长度的下划线表示,保存到数据库中,字段名字为stnr
    2、取出stnr,用分割函数以固定长度的下划线为分隔符,将除填空部分以外的字符串搞到一个数组里,然后循环取出这个数组里每一个值并上<input type='text' id=''>赋给字符串str,再用table.innerHtml=str,这样就将考题输出到表格里了,填空的部分被替换成文本框
---------------------xx.aspx.vb-----------------
Private Sub Create()
            Dim str As String
            str = dv.Item(0).Item("stnr").ToString.Trim
            Dim a() As String
            a = Split(str, "_____", -1, CompareMethod.Text)
            Dim i As Int16
            Dim str1 As String
            For i = 0 To a.Length - 2
                If dvDab.Count > 0 Then
                    Dim strDab As String
                    strDab = dvDab.Item(0).Item("da").ToString.Trim
                    Dim s() As String
                    s = Split(strDab, "|", -1, CompareMethod.Text)
                    str1 = str1 & a(i) & "<input type='text' id='text" & i & "' style='BORDER-TOP-STYLE: none; BORDER-BOTTOM: green thin solid; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none;  HEIGHT: 22px; WIDTH: 109px; BACKGROUND-COLOR: transparent' runat='server' value='" & s(i) & "'>"
                Else
                    str1 = str1 & a(i) & "<input type='text' id='text" & i & "' style='BORDER-TOP-STYLE: none; BORDER-BOTTOM: green thin solid; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none;  HEIGHT: 22px; WIDTH: 109px; BACKGROUND-COLOR: transparent' runat='server'>"
                End If

            Next
            'textCount记录了填空的个数,传递给JS执行循环
            textCount.Value = a.Length - 1
            TD2.InnerHtml = str1 & a(a.Length - 1)
End Sub
    3、接下来就是取这些文本框的值了,刚开始的时候尝试Request.From('')取不到值,用page.FindControls也找不到这些文本框,之前我让他们都Runat=Server的,很是奇怪。最后想到了用JS,JS循环取值后将所有文本框中的值加个分隔符并到一个hidden控建里,然后由Asp.net来跟标准答案作比较,评分
------------------xx.aspx----------------
 function aa(){
 var count=document.all("textCount").value;
var hiddentext = "";
for(i=0;i<count;i++){
hiddentext+=“|”+document.all(“text“+i).value;
}
document.all(“hiddentext“).value=hiddentext;
}

————————xx.aspx.vb——————————
Public Sub Point()
                Dim i() As String
                Dim a As Int16

 

                Da = Da.Remove(0, 1)
                i = Split(Da, ",", -1, CompareMethod.Text)
                Dim ii() As String
                ii = Split(dvTk.Item(0).Item("stda2"), ",", -1, CompareMethod.Text)
                Dim fs2 As Single
                For a = 0 To i.Length - 1
                    If i(a) = ii(a) Then
                        fs2 = dvScsj.Item(0).Item("xtfs") / ii.Length
                    Else
                        fs2 = 0
                    End If
                    fs += fs2
                Next
End Sub
    4、补充一点,由于我的button执行事件的时候需要先执行aa()函数,然后才能提交到服务器,所以创建了一个input type=submit onclick=”aa()” onserverclick=”Point”
    5、再补充一点,提交之后,文本框中的内容会被清空,但是数据已经却提交到服务器,我就重新执行一次Create(),至此,问题全部解决。
    代码质量比较差,欢迎指教!

考试系统 二零一五年十二月 考试系统数据库表设计全文共9页,当前为第1页。 考试系统数据库表设计全文共9页,当前为第1页。 编制人: 审核人: 编制时间: 2015-12-17 版本号:V1.0 考试系统数据库表设计全文共9页,当前为第2页。 考试系统数据库表设计全文共9页,当前为第2页。 目 录 1 数据库设计 5 1.1 数据分区 5 1.2 数据模型(每张表主键皆为obj_id) 5 1.2.1 部门 pm_gd_zsk_bm 5 1.2.2 用户 PM_GD_ZSK_USERS 5 1.2.3 题库信息PM_GD_ZSK_TKXX 5 1.2.4 客观题题干PM_GD_ZSK_KGTTG 6 1.2.5 客观题选项信息PM_GD_ZSK_KGTXX 6 1.2.6 主观题题干PM_GD_ZSK_ZGTTG 6 1.2.7 试卷类型PM_GD_ZSK_SJLX 7 1.2.8 试卷基本信息PM_GD_ZSK_SJJBXX 7 1.2.9 试卷-题型分值设置PM_GD_ZSK_SJLX_TXJFZ 7 1.2.10 试卷分发用户 pm_gd_zsk_sj_ffyh 8 1.2.11 试卷题目PM_GD_ZSK_SJTM 8 1.2.12 答卷基本信息PM_GD_ZSK_KSDJJBXX 8 1.2.13 答卷具体信息PM_GD_ZSK_KSDJJTXX 9 1.2.14 培训资料管理PM_GD_ZSK_PXZL—新增 9 1.2.15 在线培训资料 分配用户PM_GD_ZSK_ PXZL_fpyh 9 1.2.16 外网管理PM_GD_ZSK_IP—新增 9 考试系统数据库表设计全文共9页,当前为第3页。 考试系统数据库表设计全文共9页,当前为第3页。 考试系统数据库表设计全文共9页,当前为第4页。 考试系统数据库表设计全文共9页,当前为第4页。 数据库设计 数据分区 数据模型(每张表主键皆为obj_id) 部门 pm_gd_zsk_bm 描述 字段 字段类型 备注 编号 OBJ_ID Char(42) 部门名称 bmmc VARCHAR2(64) 用户 PM_GD_ZSK_USERS 描述 字段 字段类型 备注 OBJ_ID Char(42) 用户名 USERNAME VARCHAR2(64) 密码 PASSWORD VARCHAR2(64) 所属部门 SSBM VARCHAR2(64) 所属部门编号 角色 JS VARCHAR2(64) 管理员/教师/考生/审核员 员工工号 empNumber VARCHAR2(64) 考生IP empIP VARCHAR2(64) 用户mac地址 Empmacaddr VARCHAR2(64) 题库信息PM_GD_ZSK_TKXX 描述 字段 字段类型 备注 Obj_id CHAR(42) 题库标题 tkbt VARCHAR2(64) 创建人 cjr VARCHAR2(64) 创建时间 cjsj date 考试系统数据库表设计全文共9页,当前为第5页。 考试系统数据库表设计全文共9页,当前为第5页。 客观题题干PM_GD_ZSK_KGTTG 描述 字段 字段类型 备注 Obj_id CHAR(42) 题型分类 txfl VARCHAR2(64) 判断/单选/多选 所属题库 sstk CHAR(42) 题库表-OBJ_ID 外键 难易程度 nycd VARCHAR2(64) 是否有效 sfyx VARCHAR2(2) 题干信息 tgxx VARCHAR2(2048) 备注 bz VARCHAR2(1000) 分类信息 flxx VARCHAR2(64) 答案解析 dajx VARCHAR2(2000) 添加时间 tjsj DATE 客观题选项信息PM_GD_ZSK_KGTXX 字段 描述 字段类型 备注 编号 OBJ_ID CHAR(42) 信息内容 xxnr CHAR(2048) 是否正确答案 sszqda CHAR(2) 是/否 所属题干 SSTG CHAR(42) 客观题题干表 外键-OBJ_ID 主观题题干PM_GD_ZSK_ZGTTG 字段 描述 字段类型 备注 Obj_id 题型分类 Txfl VARCHAR2(64) 填空/问题 所属题库 Sstk Char(42) 题库表obj_id 难易程度 Nycd VARCHAR2(64) 题干信息 Tgxx VARCHAR2(2048) 参考答案 CKDA VARCHAR2(2048) 是否有效 Sfyx VARCHAR2(2) 备注 bz VARCHAR2(1000) 考试系统数据库表设计全文共9页,当前为第6页。 考试系统数据库表设计全文共9页,当前为第6页。 试卷类型PM_GD_ZSK_SJLX 字段 描述 字段类型 备
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值