大力水手的Blog

大力水手语录

导航

[导入]简易考试系统翻版

   

   上周开始试用中心开发的考试系统,由于是Java写的,所以不太好控制的地方比较多,考试的时候经常出现切换输入法就挂掉程序的现象,报告完问题后,突发奇想,干脆用.Net重写。

   应该所重写的难度不大,因为前面已经有了一个模版了,最不济也可以写成跟原先的版本一致的东西,说干就干,当天下午就开工,密集开发时间用了大约12个小时,第一天5个小时,开发完成考试部分,第二天7个小时,修正考试部分,开发阅卷部分。

   整个过程时间看起来并不长的原因在于:以前为了这个系统作了一些其他方面的努力,后期断断续续的修正bug用了大约1周的时间。

   开发的过程中从最开始的只开发一个考试部分,阅卷还用原先的java部分的阅卷,等到考试部分完成后,静下心来考虑,发现阅卷部分也可以再次重写,而且效果会更好,干脆也重写了,以前在写考试部分的时候,考虑和java部分的阅卷兼容,现在就可以不用考虑了,反正可以自成体系,因而可以修正了以前java部分的不是特别合理的地方。

    技术体系上使用了3层架构,但是没有和数据库挂钩,仅仅是物理的3层而已,主要处理在控件部分,因为在考试部分使用的控件全部都是临时根据数据生成的控件,因而,先写显示数据的控件,当然也有数据实体类,然后将控件放在一个groupbox中,在这个自定义控件中定义了一些通用的方法,此处应该使用面向接口编程的套路,限于时间,没有接口,直接定义了方法,然后又考虑每种题型应该在一个groupbox中,然后又作了一个分段总成的自定义控件,这样在界面上只需要3,4个这样的控件就可以了,同样在这里面也有通用的方法,以便得到学生作答信息。取得作答信息还应该记录下来,比较方便的方法是保存为xml文件,在这一部分处理比较笨拙,使用了string拼接,应该采用XmlElement等,也是懒,就没作。

   在考试部分需要解决的问题有:

  1. 显示信息的自动换行
  2. 读取试题信息
  3. 根据不同类型的试题,显示不同的控件
  4. 取得考试作答信息
  5. 加密作答信息
  6. 保存考试作答信息

   以上问题基本OK。

   阅卷部分:

  1. 读取参考答案
  2. 读取学生作答信息(解密)
  3. 比对可以自动判卷的部分(选择,填空(也可手工判卷))
  4. 批阅主观试题
  5. 统计总分
  6. 记录到文件
   以上问题基本OK,对于主观题目目前作不到自动评分,因为中间存在一个切词技术,还没有掌握。
软件界面如下:
 

文章来源:http://blog.sina.com.cn/s/blog_49458c27010006ug.html

posted on 2008-05-01 09:07  jack.zhou  阅读(222)  评论(0编辑  收藏  举报