自动择题及试卷生成系统-Read

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

自动择题及试卷生成系统
《PB》课程设计报告
----自动择题及试卷生成系统

专 业: 计算机科学与技术(师范)
班 级: 2005级(5)班
姓 名: 张艳(06050512)
指导教师: 殷红先

2008年2月21日
2

一、设计内容
题目:自动择题及试卷生成系统
要求:能根据一定规则从自动题库中生成试卷,具备查询、删除、
修改、预览、打印等基本功能。以英语考试为范例。
二、算法思想描述
1、登录界面
在界面中输入指定的用户名和密码(本系统中用户名为dba,
密码为sql),为保证密码的安全性,密码采用“*”号形式显示,按“确
定”键之后,如果用户名和密码均正确,则安全登录本系统,如果不
正确,则提示用户密码或者用户名不正确,要求重新输入。
2、主界面
主界面采用一种简单直观的形式,设置一选单,点击各选单
项出现相应的应用模块。
3、自动择题
自动择题模块分为两个小模块,一种是输入各项要求之后自
己从数据库中选择题目以生成试卷,另一种则是输入各项要求之后系
统本身随机选择题目。

三、程序结构
本系统的结构如下图1所示:
3

图1
具体分析:
1、程序保存运行之后,打开登录页面(如图2所示),这里用户名为
dba,密码为sql,其中密码用“***”显示,使其更加安全。

图2 图3
2、登录不成功,则跳出一“messagebox”(如图3),提示用户密码或
者用户名不正确,同时自动清空刚才用户所输入的数据。
3、登录成功,则进入主界面(图4),主界面只有一排选单,使得各
4

操作模块化,简洁明了。
图4 图5
4、第一个选单“系统帮助”中分为“系统注册”和“帮助信息”两
个模块,其中“系统注册”(图5)为用户提供注册功能,而“帮助
信息”则为使用者提供适当的帮助。
5、第二个选单“试卷生成”也分为“自动生成”和“手工出题”两
个模块,“手工出题”模块中,用户输入各项要求之后自己从数据库
中选择题目以生成试卷(图6),用户需双击数据库中自己所需要的
题目,同时为用户提供预览功能(图7)

图6 图7
附:双击数据窗口中的题目在多行编辑框中自动显示的代码
5

在dw_1的doubleclicked()事件中:
int rw1,rw2
if ddlb_1.text="单项选择题" then
rw1=dw_1.getrow()
string str1,str2
str1=dw_1.getitemstring(rw1,2)
str2=dw_1.getitemstring(rw1,3)
mle_1.text=mle_1.text+str1+"~r~n"+str2+"~r~n"
else
rw2=dw_1.getrow()
string str3
str3=dw_1.getitemstring(rw2,2)
mle_1.text=mle_1.text+str3+"~r~n"+"~r~n"+"~r~n"+"~r~n"
end if

在“自动生成”模块中,用户输入各项要求之后,系统自动为用户随
机生成试卷,如图8所示,用户在输入各项数据之后点“确定”按钮,
系统自动在右边的多行编辑框中生成随机选择的题目,同时该窗口和
“手工出题”窗口一样,为用户提供“预览、修改、保存、打印、关
闭”等功能。

图8
附:能实现随机选题的代码
在“确定”按钮的clicked()事件中:
dw_1.settransobject(sqlca)
dw_1.retrieve()
6

int a,b,c
for a=1 to dec(sle_1.text) step 1
int lrw
lrw=rand(w_autochoose.dw_1.rowcount())
string str1,str2
str1=w_autochoose.dw_1.getitemstring(lrw,2)
str2=w_autochoose.dw_1.getitemstring(lrw,3)
mle_1.text=mle_1.text+str1+"~r~n"+str2+"~r~n"
next
for b=1 to dec(sle_3.text) step 1
int lrw2
lrw2=rand(w_autochoose.dw_1.rowcount())
string str3
str3=w_autochoose.dw_1.getitemstring(lrw2,4)
mle_1.text=mle_1.text+str3+"~r~n"
next
for c=1 to dec(sle_5.text) step 1
int lrw3
lrw3=rand(w_autochoose.dw_1.rowcount())
string str4
str4=w_autochoose.dw_1.getitemstring(lrw,5)
mle_1.text=mle_1.text+str4+"~r~n"+"~r~n"
next

6、系统中的“退出”或者“关闭”按钮都为用户提供关闭当前窗口

的功能。

四、收获与体会
这次的课程设计作业是从暑假就着手写起的,写过了很多的版本,最后在开学以后经过老师
的提点,得出了现在的版本。
在整个“设计”的过程中,我不断地体会着“程序=数据结构+算法”这句话,以前的我,
总是觉得算法好难,写程序更难,可能缘着这种紧张又不自信的心理,《数据结构》这门课
我学得很一般,为了不至于落后班上的高手太多,我在暑假里就开始了数据结构的设计。但
是由于整个暑假学了一个半月的第二外语,就没有很多的时间放在课程设计上了。
我要做的题目是“链表的维护与文件形式的转换”,初看起来,是很简单的一个题目,
因为无论是C语言课还是数据结构课,我们都有上过有关“链表”的知识,而且有关“链表”
的作业题也做过,所以一开始这道题目给我的印象就是简单。
当我编写好第一个版本(这个版本纯粹是链表的插入啊,删除啊之类的)的时候,我拿
给我的父亲看,告诉他这是一个模拟“超市库存”的小软件,我父亲看了一下,告诉我这个
7

软件缺少最基本的安全性,我才想起我应该为这个小软件加一把“模拟锁”,因此有了“用
户登录”这一步骤。这个小小的细节让我感到,课程设计与平时的写代码是不完全一样的,
课程设计,不仅重视“课程”,也注重“设计”,既然是设计,就要尽量地朝着“商品库存”
这个模式去设计,虽然核心代码是不变的,但是我想正是那些小小的“花样”会让你的设计
达到意想不到的效果。
我在设计过程中,最大的收获来源于吉老师一个简单的提示,我想也是很多人所忽视的
地方,那就是所谓的“进货与售货”,我们可能都知道链表结点的插入、删除和修改是怎样
的,但真正怎样将这些融会贯通起来运用到实际的设计中去,却是很欠缺的,“进货”,要先
查询库存中有没有该商品,如果有那就要修改链表结点,没有的话就要增加链表结点了,“售
货”的道理也是一样的,因此我深刻体会到课程设计绝不是把课本上的知识生搬硬套,而是
要懂得灵活地运用到平时的设计中去,我想这大概也是“算法”的奥秘吧,你也许知道链表
插入和修改的算法,但是你却可能不知道“进货”的算法,这也让我懂得任何问题都需要“进
一步思考”!
当然这次课程设计也让我在变成能力方面有了提高,特别是“文件操作”方面,虽然在
大一的时候就学过了“文件”方面的操作,但是由于当时没认真学,所以很是生疏,现在在
设计中真正应用到了,才觉得它的重要性,我想生活中的很多设计都应该会和文件打交道吧,
所以在这方面一定要更加的花工夫吧。

一、
需求分析和概念设计
高校的考试管理工作,是一件非常繁琐且工作量很大的事,不仅工作任务繁
重而且试卷的标准化程度、难易程度、题量大小等各方面难以控制,难以形成有
效的试题库,利用计算机进行试卷的自动生成,形成有效的试题库,实现无纸化
办公,分析题库现状通过强大的查询和高效的索检,对试题和试卷的管理将变的
更加便捷,对提高工作效率,使试卷管理逐步走向正规化自动化将起到十分重要
的作用。

1、课程设计的目的
使用ASP 作为开发工具,SQL作为后台数据库,设计软件。
通过ASP与数据库设计,培养ASP设计的能力。更好地理解和消化课本所学的知识,为今
后的实际应用打下良好的基础。

2、课程设计的任务
自动出卷系统,学生登陆以后可以选择考试课程,选择考试难度开始开始,系统自动生成试
卷。要求有覆盖面(章节),难度选择(根据学生选择的难度),题型自动组合(选择,填空,
简答,计算等等)学生只在网上做选择填空,所以成绩只算这些就可以。
8

3、系统特点:
自动出卷系统能够自主地规定题型、题量,通过选择覆盖面、难度等级、考试时间,自动
生成一份试卷,方便快捷,内容、题量、难度分布均匀,实现手工出卷难以达到的标准。学生做
题可以方便查询答案,无纸化操作,提高答题效率。

4、功能设计:
1、用户登录模块:用户输入用户名、密码登录系统,系统根据不同的用户
权限选择不同的登录界面
2、教师修改模块:教师通过选择的科目添加、修改、删除相应题目,也可
直接添加、修改、删除具体科目
3、自动生成试卷模块:根据选择的时间、难度,自动生成试卷
4、学生答卷模块:学生可以在线答题,查看答案,统计分数。

相关文档
最新文档