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

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

自动择题及试卷生成系统

《PB》课程设计报告

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

专业:计算机科学与技术(师范)

班级:2005级(5)班

姓名:张艳(06050512)

指导教师:殷红先

2008年2月21日

一、设计内容

题目:自动择题及试卷生成系统

要求:能根据一定规则从自动题库中生成试卷,具备查询、删除、修改、预览、打印等基本功能。以英语考试为范例。

二、算法思想描述

1、登录界面

在界面中输入指定的用户名和密码(本系统中用户名为dba,密码为sql),为保证密码的安全性,密码采用“*”号形式显示,按“确定”键之后,如果用户名和密码均正确,则安全登录本系统,如果不正确,则提示用户密码或者用户名不正确,要求重新输入。

2、主界面

主界面采用一种简单直观的形式,设置一选单,点击各选单项出现相应的应用模块。

3、自动择题

自动择题模块分为两个小模块,一种是输入各项要求之后自己从数据库中选择题目以生成试卷,另一种则是输入各项要求之后系统本身随机选择题目。

三、程序结构

本系统的结构如下图1所示:

图1

具体分析:

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

图2 图3

2、登录不成功,则跳出一“messagebox”(如图3),提示用户密码或者用户名不正确,同时自动清空刚才用户所输入的数据。

3、登录成功,则进入主界面(图4),主界面只有一排选单,使得各

操作模块化,简洁明了。

图4 图5

4、第一个选单“系统帮助”中分为“系统注册”和“帮助信息”两个模块,其中“系统注册”(图5)为用户提供注册功能,而“帮助信息”则为使用者提供适当的帮助。

5、第二个选单“试卷生成”也分为“自动生成”和“手工出题”两个模块,“手工出题”模块中,用户输入各项要求之后自己从数据库中选择题目以生成试卷(图6),用户需双击数据库中自己所需要的题目,同时为用户提供预览功能(图7)

图6 图7

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

在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()

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语言课还是数据结构课,我们都有上过有关“链表”的知识,而且有关“链表”的作业题也做过,所以一开始这道题目给我的印象就是简单。

当我编写好第一个版本(这个版本纯粹是链表的插入啊,删除啊之类的)的时候,我拿给我的父亲看,告诉他这是一个模拟“超市库存”的小软件,我父亲看了一下,告诉我这个

相关文档
最新文档