借助.NET平台实现无纸化练习、考试
2016-05-14林万泉
林万泉
摘 要:现在学校的电脑室基本上都组成了局域网,通过网络平台自己建立一个练习与考试的平台,既方便于学生学习,也提高了学生对信息技术这门课的兴趣。本文将详细谈谈如何借助NET平台平台实现学生的无纸化练习和考试。
关键词:算法;NET平台;数据库;Visual Basic;控件
中图分类号:G63 文献标识码:A 文章编号:1673-9132(2016)26-0237-02
DOI:10.16657/j.cnki.issn1673-9132.2016.26.154
现在学校的电脑室基本上都组成了局域网,通过局域网可以让学生平时练习和考试中实现自动化、无纸化。我校电脑室通过.NET平台组成了一个简单的无纸化练习、考试程序,现将具体流程表述出来,以期给其他学校提供一些借鉴。
一、 算法思路
我自行编写的这个程序的设计思路是用B/S模式来实现的,首先把学生的习题放在数据库中,每位学生练习或测试时使用随机抽题方式。学生题库的录入与取出均用HTML来表示,因为HTML可以在B/S模式中实现图文排版等富媒体形式。
在这程序中,数据库是中心位置,是我们存放题目、查看学生成绩的场所。数据库表结构如下图:
下面我仅以选择题为例进行分析。
表km有两个字段:kmid与km分别用来存放科目序号与科目名称。
表kstable为选择题,ksid为题目序号,kmid为该题目所对应学科,kstm为题目内容,sela-d为A、B、C、D四个选择内容,answer为正确答案。如下图所示:
而这程序中算法核心的是抽题的算法,我的算法是这样实现的(以选择题20题为例):
1.如果库中题目不多于20题,则全部抽取。
2.如果库中题目多于20题,则先算出库中该科题目的记录数,然后生成从1到记录数的随机20个数值,分配给20个数组。其算法表述如下:
先建立一个N(数据库记录个数)的数组,然后从0—(N-1)依次赋值,最后在数组里选,每选出一个,该数组后的依次前移一位,最后再在N-M(循环次数)个里选,这样循环,直到选到你满意的个数。
依据这一算法思想,我列其程序代码如下:
如何让录入的数据以HTML格式保存呢?而Visual Studio 2008带的Textbox控件显然没有所见即所得功能,在这我选用一款免费的.Net Framework控件——Free Textbox,它的下载网址:http://www.freetextbox.com。通过Free Textbox我们可以象用Front Page一样输入题库。而对于Free Textbox控件输入的内容的获取与Textbox控件一样,用text属性获取或给予。例如:
Dim kmstring as string
kmstring = freetextbox1.text
二、程序编写
在微软操作系统下,没有什么比Visual Studio .net更适合于。Net编程的了,我使用Visual Basic 2008编写。
1.界面编写:
在Visual Studio 2008中绑定数据的控件中常用的有三种:GridView,DataList,Repeater。这三种数据控件各有优缺点。GridView功能强大,数据绑定简单但自主性差,主要用于数据表格的显示、编辑、删除等操作。DataList用来混合显示一些参杂的数据,如产品的图文混合显示等。Repeater功能最弱,但自主性很强,显示的形式最为灵活,只要有数据集你想显示成什么样就显示成什么样,所以本例选用Repeater控件。由于题目是从数据库中取出,而且题数不确定,因而我选用在代码中手动添加控件及用<% %>数据绑定的方法来实现。
代码如下:
题目:<%#DataBinder.Eval(Container.DataItem, "kstm")%> |
A:<%#DataBinder.Eval(Container.DataItem, "sela")%> |
B:<%#DataBinder.Eval(Container.DataItem, "selb")%> |
C:<%#DataBinder.Eval(Container.DataItem, "selc")%> |
D:<%#DataBinder.Eval(Container.DataItem, "seld")%> |
其界面如下图:
2.编写代码:
分析好了需求,设计好算法与流程图,又用编好ASP.NET界面,接下来就是编写程序的代码了,这样才能让这个WEB Form成为一个真正意义上的程序。程序最关键是在N个数中随机抽取M个不重复的数,这一算法在前面已给出算法,这里不重复讲述了,下面就是如何把题目从出数据库出取出并显示出来了。
代码如下:
在教学中,通过.NET平台编写一个练习、考试用的软件平台,既可以让学生多一个好的学习平台,又在教学中加深了学生对这门课的学习兴趣。当然,本人在文中还有许多不足之处,还请广大同仁给予指正。
[责任编辑 赵景霞]