论文部分内容阅读
摘 要:传统的考试模式,从出卷、打印、监考、评分、试卷分析、成绩统计等一系列操作过程都需要由人工完成,耗时长,过程繁琐。本论文的主要内容是设计一套网络考试系统,在服务器端,数据库采用SQL2000,采用ASP语言实现用户层设计,在功能上,实现动态生成试卷、自动打分,以大幅提升办公自动化水平。
关键词:网络考试系统;动态生成;办公自动化
1 开发环境及技术介绍
1.1 开发环境配置
本考试系统的开发环境如下:(1)信息服务器:Internet Information Service(IIS)。(2)开发技术:ASP技术,Ajax技术。(3)开发工具:Macromedia Dreamweaver 8、Adobe Photoshop CS。(4)数据库:SQL Server 2000。(5)浏览器:IE浏览器。(6)服务器操作系统:开发过程采用Windows XP Professional操作系统。
1.2 Browser/Server(浏览器/服务器)
B/S结构采用了浏览器、Web服务器、数据库服务器三层分布结构。用户的所有操作均通过浏览器进行,并且对系统的改进只需要在Web服务器上进行相应改动即可。这种模式下,Web服务器是系统的核心,它负责接收并处理来自浏览器的数据请求,将数据请求通过数据库接口程序转换成数据库服务器能够接受的形式后,送到数据库服务器。数据库服务器负责执行相应的数据库操作,并将结果通过转换送回Web服务器。Web服务器将结果处理成浏览器能够接受的形式后,送回发出请求的浏览器,显示结果。
1.3 Ajax技术
Ajax是一个结合了Java技术、XML、以及JavaScript的Web开发模式,可以构建基于Java技术的Web应用。Ajax技术可以仅向服务器发送并取回必需的数据,它相当于在客户端和服务器之间加了一个中间层,即Ajax引擎。并不是所有的用户请求都提交给服务器,一些数据的验证和处理由Ajax自己来做,只有确实需要从服务器读取新数据时,才由客户端通过JavaScript调用Ajax引擎向服务器端发出Http请求,当服务端的数据以XML形式返回时,Ajax引擎接收数据,并指定JavaScript函数来完成相应的处理或页面的更新,而不是刷新整个页面,从而实现用户操作与服务器响应的异步化。
2 功能设计
2.1 登录模块
登录模块主要是保证系统的安全性,允许合法的用户(管理员和考生)使用考试系统。在登录界面按要求输入用户名和密码,如果是合法用户,则登录成功进入主界面;如果是非法用户或密码不正确,则返回错误信息,返回登录界面。
2.2 管理员模块
管理员模块主要功能是对系统用户、权限进行管理。此模块可由用户管理模块和试题管理模块组成。
2.2.1 用户管理模块:完成考试系统用户的管理,包括添加/删除用户,修改用户密码等。
2.2.2 试题管理模块:可按部门、课程、套题等不同的参数进行添加、修改、删除操作。
2.3 考生模块
考生模块的主要功能是实现学生在线考试、在线练习及成绩查询。此模块由在线考试子模块、在线练习子模块和成绩查询模块组成。
2.3.1 在线考试子模块
此模块主要负责学生从开始考试到考试结束的全过程,其中包括在线练习、在线考试、考试计时、交卷保存等功能。其具体功能如下:(1)在线考试:在规定的时间内,选择考试的课程,进入考试。考试结束后,提交给服务器予以保存并评分。另外,在考试过程中系统会自动定时对考生的答案进行保存,以便于考试中断以后能够让考生继续考试。(2)考试计时:当学生开始考试时,计时器由预先设定的考试时间开始倒计时。(3)保存试卷:当学生按下“交卷”按钮时,系统保存试卷并对客观题进行自动阅卷评分,对客观题通过查找是否含有关键字,来决定是否有必要进行人工阅卷的标志存入数据库中,并返回客观题部分的得分。当计时器显示时间为零时,系统强行交卷、保存试卷,并显示考试完毕。
2.3.2 在线练习子模块
(1)在线练习:学生可以根据自己的需要选择练习题的课程、类型、难度、章节、题目数等,由系统从试题库中随机抽取相应的客观题供学生练习。练习过程中可自动计时,但不限定时,练习结果不予保存。(2)自动评分:练习结束时系统可自动评分,并显示正确答案。
2.3.3 成绩查询子模块
此模块主要功能是供已登录的用户查询成绩。其具体功能如下:输入用户名和密码,正确登录后,可选择查看所有人参加考试课程的成绩。
2.4 SQL2000数据库设计
在本课题中,为了获得有效的数据库设计,应遵循规范化规则,即:
2.4.1 使数据冗余(即重复)最少。
2.4.2 使数据重构或重建模最少。
2.4.3 通过减少事务处理大小使I/O最少。
3 关键算法实现
3.1 连接数据库
public SqlConnection getcon()
{
string strCon = "Data Source=(local);DataBase=db_Examination;User ID=sa;PWD=sa";
SqlConnection sqlCon = new SqlConnection(strCon);
return sqlCon;
}
3.2 生成单选题
SqlDataAdapter myadapter1 = new SqlDataAdapter("select top 60 * " +"from tb_Questions where que_type='单选题'and que_lessonid='"
+ dd1 + "'and que_taotiid='" + dd2 + "'order by newid()", con); //随机组卷
for (int tID1 = 1; tID1 <= DataList1.Items.Count; tID1++) //生成单选题题号
{
Label lblSelect = (Label)DataList1.Items[tID1 -1].FindControl("Label2");
lblSelect.Text = tID1.ToString() + "、";
}
3.3 核对单选题答案
foreach (DataRow answer1 in row1)//利用foreach进行遍历
{
int_row1 += 1;
RadioButtonList rbl = (RadioButtonList)(DataList1.Items[int_row1 - 1].FindControl("RadioButtonList1"));
if (answer1["que_answer"].ToString().Trim() == rbl.SelectedValue.ToString().Trim())
{
int_row1Point += 60 / DataList1.Items.Count;//计算单选题成绩
}
this.lblSel.Text = "单选题:" + (int_row1Point) + "分";
Label lblAnswer1 = (Label)DataList1.Items[int_row1 - 1].FindControl("Label26");
lblAnswer1.Text = "正确答案:" + answer1["que_answer"].ToString();//显示正确答案
}
3.4 将考试结果写入数据库
dataconn.eccom("insert into tb_StuResult"
+"(stu_id,which_lesson,taotiid,taotiname,res_single,res_more)"
+"values('" + lblStuID.Text + "','" + lblSubject.Text + "','"
+ dd2 + "','" + lblQuestion.Text + "','" + int_row1Point + "','" + int_row2Point + "')");
总结
本网络考试平台采用了ASP技术、Ajax页面局部刷新技术,实现了自动组卷、自动评分等一系列功能,并使用SQL2000作为系统数据库,实现了成绩查询、用户搜索等功能,完成了设定的目标功能,投入使用后,可大幅提升办公自动化水平。
参考文献
[1]吴静霞.基于ASP/ADO在线考试系统的设计与实现[J].沙洲职业工学院学报,2008,11(1):1.
[2]谢骏.数值分析在线考试系统.学士学位论文,西南石油大学,2007:1-2.
关键词:网络考试系统;动态生成;办公自动化
1 开发环境及技术介绍
1.1 开发环境配置
本考试系统的开发环境如下:(1)信息服务器:Internet Information Service(IIS)。(2)开发技术:ASP技术,Ajax技术。(3)开发工具:Macromedia Dreamweaver 8、Adobe Photoshop CS。(4)数据库:SQL Server 2000。(5)浏览器:IE浏览器。(6)服务器操作系统:开发过程采用Windows XP Professional操作系统。
1.2 Browser/Server(浏览器/服务器)
B/S结构采用了浏览器、Web服务器、数据库服务器三层分布结构。用户的所有操作均通过浏览器进行,并且对系统的改进只需要在Web服务器上进行相应改动即可。这种模式下,Web服务器是系统的核心,它负责接收并处理来自浏览器的数据请求,将数据请求通过数据库接口程序转换成数据库服务器能够接受的形式后,送到数据库服务器。数据库服务器负责执行相应的数据库操作,并将结果通过转换送回Web服务器。Web服务器将结果处理成浏览器能够接受的形式后,送回发出请求的浏览器,显示结果。
1.3 Ajax技术
Ajax是一个结合了Java技术、XML、以及JavaScript的Web开发模式,可以构建基于Java技术的Web应用。Ajax技术可以仅向服务器发送并取回必需的数据,它相当于在客户端和服务器之间加了一个中间层,即Ajax引擎。并不是所有的用户请求都提交给服务器,一些数据的验证和处理由Ajax自己来做,只有确实需要从服务器读取新数据时,才由客户端通过JavaScript调用Ajax引擎向服务器端发出Http请求,当服务端的数据以XML形式返回时,Ajax引擎接收数据,并指定JavaScript函数来完成相应的处理或页面的更新,而不是刷新整个页面,从而实现用户操作与服务器响应的异步化。
2 功能设计
2.1 登录模块
登录模块主要是保证系统的安全性,允许合法的用户(管理员和考生)使用考试系统。在登录界面按要求输入用户名和密码,如果是合法用户,则登录成功进入主界面;如果是非法用户或密码不正确,则返回错误信息,返回登录界面。
2.2 管理员模块
管理员模块主要功能是对系统用户、权限进行管理。此模块可由用户管理模块和试题管理模块组成。
2.2.1 用户管理模块:完成考试系统用户的管理,包括添加/删除用户,修改用户密码等。
2.2.2 试题管理模块:可按部门、课程、套题等不同的参数进行添加、修改、删除操作。
2.3 考生模块
考生模块的主要功能是实现学生在线考试、在线练习及成绩查询。此模块由在线考试子模块、在线练习子模块和成绩查询模块组成。
2.3.1 在线考试子模块
此模块主要负责学生从开始考试到考试结束的全过程,其中包括在线练习、在线考试、考试计时、交卷保存等功能。其具体功能如下:(1)在线考试:在规定的时间内,选择考试的课程,进入考试。考试结束后,提交给服务器予以保存并评分。另外,在考试过程中系统会自动定时对考生的答案进行保存,以便于考试中断以后能够让考生继续考试。(2)考试计时:当学生开始考试时,计时器由预先设定的考试时间开始倒计时。(3)保存试卷:当学生按下“交卷”按钮时,系统保存试卷并对客观题进行自动阅卷评分,对客观题通过查找是否含有关键字,来决定是否有必要进行人工阅卷的标志存入数据库中,并返回客观题部分的得分。当计时器显示时间为零时,系统强行交卷、保存试卷,并显示考试完毕。
2.3.2 在线练习子模块
(1)在线练习:学生可以根据自己的需要选择练习题的课程、类型、难度、章节、题目数等,由系统从试题库中随机抽取相应的客观题供学生练习。练习过程中可自动计时,但不限定时,练习结果不予保存。(2)自动评分:练习结束时系统可自动评分,并显示正确答案。
2.3.3 成绩查询子模块
此模块主要功能是供已登录的用户查询成绩。其具体功能如下:输入用户名和密码,正确登录后,可选择查看所有人参加考试课程的成绩。
2.4 SQL2000数据库设计
在本课题中,为了获得有效的数据库设计,应遵循规范化规则,即:
2.4.1 使数据冗余(即重复)最少。
2.4.2 使数据重构或重建模最少。
2.4.3 通过减少事务处理大小使I/O最少。
3 关键算法实现
3.1 连接数据库
public SqlConnection getcon()
{
string strCon = "Data Source=(local);DataBase=db_Examination;User ID=sa;PWD=sa";
SqlConnection sqlCon = new SqlConnection(strCon);
return sqlCon;
}
3.2 生成单选题
SqlDataAdapter myadapter1 = new SqlDataAdapter("select top 60 * " +"from tb_Questions where que_type='单选题'and que_lessonid='"
+ dd1 + "'and que_taotiid='" + dd2 + "'order by newid()", con); //随机组卷
for (int tID1 = 1; tID1 <= DataList1.Items.Count; tID1++) //生成单选题题号
{
Label lblSelect = (Label)DataList1.Items[tID1 -1].FindControl("Label2");
lblSelect.Text = tID1.ToString() + "、";
}
3.3 核对单选题答案
foreach (DataRow answer1 in row1)//利用foreach进行遍历
{
int_row1 += 1;
RadioButtonList rbl = (RadioButtonList)(DataList1.Items[int_row1 - 1].FindControl("RadioButtonList1"));
if (answer1["que_answer"].ToString().Trim() == rbl.SelectedValue.ToString().Trim())
{
int_row1Point += 60 / DataList1.Items.Count;//计算单选题成绩
}
this.lblSel.Text = "单选题:" + (int_row1Point) + "分";
Label lblAnswer1 = (Label)DataList1.Items[int_row1 - 1].FindControl("Label26");
lblAnswer1.Text = "正确答案:" + answer1["que_answer"].ToString();//显示正确答案
}
3.4 将考试结果写入数据库
dataconn.eccom("insert into tb_StuResult"
+"(stu_id,which_lesson,taotiid,taotiname,res_single,res_more)"
+"values('" + lblStuID.Text + "','" + lblSubject.Text + "','"
+ dd2 + "','" + lblQuestion.Text + "','" + int_row1Point + "','" + int_row2Point + "')");
总结
本网络考试平台采用了ASP技术、Ajax页面局部刷新技术,实现了自动组卷、自动评分等一系列功能,并使用SQL2000作为系统数据库,实现了成绩查询、用户搜索等功能,完成了设定的目标功能,投入使用后,可大幅提升办公自动化水平。
参考文献
[1]吴静霞.基于ASP/ADO在线考试系统的设计与实现[J].沙洲职业工学院学报,2008,11(1):1.
[2]谢骏.数值分析在线考试系统.学士学位论文,西南石油大学,2007:1-2.