上周开始试用中心开发的考试系统,由于是Java写的,所以不太好控制的地方比较多,考试的时候经常出现切换输入法就挂掉程序的现象,报告完问题后,突发奇想,干脆用.Net重写。
应该所重写的难度不大,因为前面已经有了一个模版了,最不济也可以写成跟原先的版本一致的东西,说干就干,当天下午就开工,密集开发时间用了大约12个小时,第一天5个小时,开发完成考试部分,第二天7个小时,修正考试部分,开发阅卷部分。
整个过程时间看起来并不长的原因在于:以前为了这个系统作了一些其他方面的努力,后期断断续续的修正bug用了大约1周的时间。
开发的过程中从最开始的只开发一个考试部分,阅卷还用原先的java部分的阅卷,等到考试部分完成后,静下心来考虑,发现阅卷部分也可以再次重写,而且效果会更好,干脆也重写了,以前在写考试部分的时候,考虑和java部分的阅卷兼容,现在就可以不用考虑了,反正可以自成体系,因而可以修正了以前java部分的不是特别合理的地方。
技术体系上使用了3层架构,但是没有和数据库挂钩,仅仅是物理的3层而已,主要处理在控件部分,因为在考试部分使用的控件全部都是临时根据数据生成的控件,因而,先写显示数据的控件,当然也有数据实体类,然后将控件放在一个groupbox中,在这个自定义控件中定义了一些通用的方法,此处应该使用面向接口编程的套路,限于时间,没有接口,直接定义了方法,然后又考虑每种题型应该在一个groupbox中,然后又作了一个分段总成的自定义控件,这样在界面上只需要3,4个这样的控件就可以了,同样在这里面也有通用的方法,以便得到学生作答信息。取得作答信息还应该记录下来,比较方便的方法是保存为xml文件,在这一部分处理比较笨拙,使用了string拼接,应该采用XmlElement等,也是懒,就没作。
在考试部分需要解决的问题有:
- 显示信息的自动换行
- 读取试题信息
- 根据不同类型的试题,显示不同的控件
- 取得考试作答信息
- 加密作答信息
- 保存考试作答信息
以上问题基本OK。
阅卷部分:
- 读取参考答案
- 读取学生作答信息(解密)
- 比对可以自动判卷的部分(选择,填空(也可手工判卷))
- 批阅主观试题
- 统计总分
- 记录到文件
文章来源: http://blog.sina.com.cn/s/blog_49458c27010006ug.html