WORD格式可编辑
目 录
第1章 系统分析 ..................................................... 3
1.1 开发背景...................................................... 3 1.2 系统需求分析.................................................. 3 1.3 开发环境...................................................... 4 第2章 系统设计 ..................................................... 5
2.1 系统架构...................................................... 5 2.2 系统功能模块.................................................. 6 2.3 系统数据库设计................................................ 8 第3章 系统实现 .................................................... 11
3.1 管理员主页面................................................. 11 3.2 添加课程..................................................... 19 3.3 考试界面..................................................... 20 第4章 系统测试 .................................................... 23 第5章 结束语 ...................................................... 24 参考文献 .......................................................... 25
专业知识整理分享
WORD格式可编辑
摘要:
本文主要研究了题库管理系统的设计与开发,研究该课题的主要目的是便于学生进行测试、复习知识,学生可以登录此系统进行答题,实现考、测一体化,提高学校的教学质量和效率。系统主要用VS2005以及SQL2005来实现。 关键字:
在线考试系统 题库 Sql2005
专业知识整理分享
WORD格式可编辑
第1章 系统分析
1.1 开发背景
随着互联网的发展、广泛普及以及校园网的发展,计算机考试已成为一种趋势,运用计算机考试一方面可以节省人力物力,另一方面也给师生带来了方便,所以设计出一款界面友好型、经济实用型的软件已经迫在眉睫、刻不容缓。
现代高等教育中,网络的运用是提高学校教学效果和教学效率、提高科研和管理水平的必要手段。目前的一个发展趋势是采用大规模试题库的计算机网络考试模式,随着计算机网络在生产生活、科技教育中的普及,传统的考试出卷、答卷方式以及学绩管理正发生着巨大的变革,因此,如何使考试过程变得方便、高效、快捷、公正,是现代教育的一个重要课题。当前国际上许多考试认证,例如GRE、CISCO,其出题、答卷以及评分都是在计算机上完成的。无纸化的考试形式有着其科学、及时、准确、公平等优点,具有传统考试形式无法替代和比拟的优势,一方面可以防止考生心存侥幸,投机取巧;另一方面它保密性高,考试时间灵活,提高了学校的教学水平。 本文设计的是一套基于微软SQL server2005数据库的网络软件系统.
1.2 系统需求分析
1. 功能需求
系统应提供用户登录识别,对试题进行增、删、改、查询功能,自动生成试题,自动判卷功能等。 2. 性能需求【1】
系统反应时间应在2s内,主存容量应该为256MB,磁盘容量最少应为80GB,在安全性方面应该防止SQL注入等。 3. 可靠性可用性需求
在考试期间不能出现系统崩溃情况,当遇到的断电等突发情况,应该有一定的恢复措施,在一个月内在任何一台计算机上该系统不可用的时间不能超过2%。
4. 出错处理需求
当插入的数据出现是系统应该给一个友好的提示,比如弹出一个对话框进
行提示等。
专业知识整理分享
WORD格式可编辑
1.3 开发环境
数据库是数据管理的最新技术,是计算机科学的重要分支【2】。今天,信息资源已成为各个部门的重要财富和资源。十年来,数据库管理系统已从专用的应用程序包发展成为通用系统软件。由于数据库具有数据的结构化、可控冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,因此,作为信息系统核心和和基础的数据库技术得到了越来越广泛的应用,越来越多的新的应用领域采用数据库技术来存储和处理信息资源,较大的信息系统都是建立在数据库设计之上的。
由于用到的数据表格多,学生基本信息的变动较大,我们选用SQL Server作为数据库开发,而不用Access,主要是因为Access存放的记录,在实际运用中不适合此系统;而SQL Server是一种常用的关系数据库,能存放和读取大量的数据,管理众多并发的用户,使用方便快捷,故选用SQL Server数据库。
用VB语言进行编码。VB 编程语言是微软在.NET计划中重要的开发语言,它具有语法简单,功能强大,快速应用,语言自由,强大的Web服务器控件,支持跨平台,与XML相融合等。因此选择VB编程语言。
专业知识整理分享
WORD格式可编辑
第2章 系统设计
2.1 系统架构
整个系统分为三个部分,管理员、学生和主界面。
由于每个用户的权限不同,所以用户进入系统应该进行身份验证。根据不同的身份权限进入不同的操作界面,进行不同的操作,浏览不同的页面。
学生进入考试系统后,能进行考试,以及查看自己的考分。对于每个考试者来说,试卷的试题和题量都应是相同的,并且为了保证考试的公平性,每个考生只限制抽取一次题。考试者选择答案提交后,由计算机自动判卷,得到成绩后立即显示出来。考试完毕后,用户应该退出系统。
对于管理员来说,可以根据需要往数据库录入试题,还能对题库进行增、删、改、查、等操作。
本系统是以Windows XP系统为操作平台,在.NET2005环境下编程实现。 系统ER图:
专业知识整理分享
WORD格式可编辑
题编号 所属科目 简答 密码 学生 N 1 管理 1 管理员 1 用户名 题编号 内容 判断 所属科目 内容 所属科目 姓名 学号 性别 N 考试 答案 1 填空 1 题编号 N 生成 1 1 管理 N 题编号 N 试题信息 题数 题编号 名称 分数 选择内容 所属科目 选项 内容 试卷信息 密码 管理 图2-1 系统E-R图
2.2 系统功能模块
本题库管理系统分为用户管理模块、学生管理模块、题库管理模块、试卷生成管理模块、考试查询模块、考试页面管理模块六个模块。
专业知识整理分享
WORD格式可编辑
在线考试系统 管理员 学生 用户管理 修改密码 题库管理 考试页面 成绩查询 学生管理 试卷生成 试题查询 试题添加 随机组卷 自动判卷 随机组卷 添加选择题 添加填空题 添加判断题 添加科目
图2-2 系统模块图
学生用例图【3】:
考试 学生
查看成绩 进行查看个人信息 个人信息管理
专业知识整理分享
WORD格式可编辑
图 2-3学生用例图
管理员用例图:
只可查看 包括学生信息的添加、修改、删除 题库管理 试题管理 添加试题 查询试题 息,无法修改和注册 用户管理 管理员 自己的信学生管理
图 2-4 管理员用例图
2.3 系统数据库设计
综合以上分析,要实现上面的所有功能模块,本题库系统共有
8个数据表,
分别是:选择题信息表、判断题信息表、填空题信息表、问答题信息表、试题科目表、管理员信息表、试卷信息表和试卷内容表。
表2-1管理员信息表(admin)
列名 admin_id 含义 用户名 数据类型 Varchar 长度 100 缺省值 无 允许空 否 专业知识整理分享
WORD格式可编辑
admin_pwd 密码 Varchar 100 无 否
表2-2试题科目表(Sub)
列名 QuestionSub 含义 试题科目 数据类型 nvarchar 长度 50 缺省值 无 允许空 否
表2-3选择题信息表(SingleSel)
列名 QuestionID Question 列名 Choice_A Choice_B Choice_C Choice_D Answer QuestionSub QuestionTime QuestionType 含义 试题编号 试题内容 含义 选项A 选项B 选项C 选项D 正确答案 所属科目 录入时间 试题类型 数据类型 char ntext 数据类型 nvarchar nvarchar nvarchar nvarchar char nvarchar nvarchar nvarchar 长度 20 16 长度 50 50 50 50 10 50 50 50 缺省值 无 无 缺省值 无 无 无 无 无 无 无 无 允许空 否 否 允许空 否 否 否 否 否 否 否 否
表2-4判断题信息表(RightOrWrong)
列名 QuestionID Question 含义 试题编号 试题内容 数据类型 char ntext 长度 20 16 缺省值 无 无 允许空 否 否 专业知识整理分享
WORD格式可编辑
Answer QuestionSub QuestionTime QuestionType 正确答案 所属科目 录入时间 试题类型 char nvarchar nvarchar nvarchar 10 50 50 50 无 无 无 无 否 否 否 否 表2-5填空题信息表(Filling)
列名 QuestionID Question Answer QuestionSub QuestionTime QuestionType 含义 试题编号 试题内容 正确答案 所属科目 录入时间 试题类型 数据类型 char ntext nvarchar nvarchar nvarchar nvarchar 长度 20 16 50 50 50 50 缺省值 无 无 无 无 无 无 允许空 否 否 否 否 否 否 表2-6 问答题信息表(EssayQuestion)
列名 QuestionID Question Answer QuestionSub QuestionTime QuestionType 含义 试题编号 试题内容 正确答案 所属科目 录入时间 试题类型 数据类型 char ntext ntext nvarchar nvarchar nvarchar 长度 20 16 16 50 50 50 缺省值 无 无 无 无 无 无 允许空 否 否 否 否 否 否 表2-7试卷信息表(test1)
列名 test_number 含义 试卷编号 数据类型 char 长度 20 缺省值 无 允许空 否 专业知识整理分享
WORD格式可编辑
test_name test_sub test_score xzQuantity xzScore pdQuantity pdScore tkQuantity tkScore wdQuantity wdScore 试卷名称 试卷科目 试卷分值 选择题数量 选择题分值 判断题数量 判断题分值 填空题数量 填空题分值 问答题数量 问答题分值 nvarchar nvarchar float int float int float int float int float 100 100 8 4 8 4 8 4 8 4 8 无 无 无 无 无 无 无 无 无 无 无 否 否 否 是 是 是 是 是 是 是 是 表2-8试卷内容表(QuestionPaper)
列名 test_number PaperSerial QuestionID QuestionType Score 含义 试卷编号 试卷中的题号 试题编号 试题类型 试题分值 数据类型 char char char varchar float 长度 20 20 20 50 8 缺省值 无 无 无 无 无 允许空 否 是 否 否 否 第3章 系统实现
3.1 管理员主页面
管理员页面包括用户登录Login.aspx页面.
专业知识整理分享
WORD格式可编辑
图 3-1 学生主界面
对于用户名用RequiredFieldValidator控件【4】来判断其不能为空,对于判断登录用户是否合法,用If (dr.Read())来判断。
Dim username, password As String
username = TexUserName.Text.ToString().Trim() password = TexPassword.Text.ToString().Trim()
Dim conn As New OleDbConnection(\Security Info=True;User ID=sa;Initial Catalog=ExamTest;Data Source=.\)
Dim cmd As New OleDbCommand(\* from admin where admin_id='\ & username & \ & password & \, conn) conn.Open()
Dim dr As OleDbDataReader = cmd.ExecuteReader() If (dr.Read()) Then
Session(\) = username
If DropDLAdmin.SelectedItem.Value = \管理员\ Then Response.Redirect(\)
ElseIf DropDLAdmin.SelectedItem.Value = \学生\ Then Response.Redirect(\) End If
ElseIf MsgBox(\你输入的用户名密码有误!!!\) Then End If
conn.Close()
Admin.aspx管理员主页面:
图 3-2 题库管理主界面
使用普通按钮Response.Redirect(\语句来实现页面之间的跳转。
Response.Redirect(\)
PassWordAlter.aspx页面来修改密码(其中Session(\为从Login.aspx页面传来的变量):
专业知识整理分享
WORD格式可编辑
图 3-3 密码修改界面
Dim jiumima, xinmima1, xinmima2 As String
jiumima = TextBox1.Text.ToString().Trim() xinmima1 = TextBox2.Text.ToString().Trim() xinmima2 = TextBox3.Text.ToString().Trim()
Dim conn As New OleDbConnection(\Security Info=True;User ID=sa;Initial Catalog=ExamTest;Data Source=.\)
Dim cmd1 As New OleDbCommand(\ & Session(\) & \ & jiumima & \, conn) conn.Open()
Dim dr1 As OleDbDataReader = cmd1.ExecuteReader() '判断记录是否存在 If (dr1.Read()) Then
If TextBox2.Text = TextBox3.Text Then
Dim cmd2 As New OleDbCommand(\ & xinmima1 & \ & Session(\) & \, conn) Dim dr2 As OleDbDataReader = cmd2.ExecuteReader() MsgBox(\恭喜,密码修改成功\)
ElseIf MsgBox(\两次输入的密码不一致\) Then End If
ElseIf MsgBox(\你输入的密码有误!!!\) Then End If
conn.Close()
添加试题、查询试题页面(试题管理页面)TestManagement.aspx,其中在页面TestManagement.aspx用Session(\来保存表名。
专业知识整理分享
WORD格式可编辑
图 3-4 试题管理界面
页面加载时代码如下:
Session(\) = DropDownList1.Text.ToString().Trim()
添加试题按钮单击事件代码如下:
If DropDownList1.Text = \选择题\ Then
Response.Redirect(\) ElseIf DropDownList1.Text = \填空题\ Then Response.Redirect(\) ElseIf DropDownList1.Text = \判断题\ Then Response.Redirect(\) ElseIf DropDownList1.Text = \问答题\ Then
Response.Redirect(\)
End If
查询按钮单击事件代码如下:
DataBindGridView()
DataBindGridView子过程代码如下:
Sub DataBindGridView()
Dim strsql1, strsql2, strsql3, strsql4 As String strsql1 = \
QuestionID,Question,QuestionSub,QuestionTime,QuestionType from SingleSel where QuestionSub='\ & DropDKM.Text.ToString().Trim() & \ & DropDTX.Text.ToString().Trim() & \ & TexSJ.Text.ToString().Trim() & \ strsql2 = \
QuestionID,Question,QuestionSub,QuestionTime,QuestionType from RightOrWrong where QuestionSub='\ & DropDKM.Text.ToString().Trim() & \ & DropDTX.Text.ToString().Trim() & \ & TexSJ.Text.ToString().Trim() & \ strsql3 = \
QuestionID,Question,QuestionSub,QuestionTime,QuestionType from Filling where QuestionSub='\ & DropDKM.Text.ToString.Trim() & \ &
专业知识整理分享
WORD格式可编辑
DropDTX.Text.ToString().Trim() & \ & TexSJ.Text.ToString().Trim() & \ strsql4 = \
QuestionID,Question,QuestionSub,QuestionTime,QuestionType from EssayQuestion where QuestionSub='\ & DropDKM.Text.ToString().Trim() & \ & DropDTX.Text.ToString().Trim() & \ & TexSJ.Text.ToString().Trim() & \
Dim conn As New OleDbConnection(\Security Info=True;User ID=sa;Initial Catalog=ExamTest;Data Source=.\) Dim cmd1 As New OleDbCommand(strsql1, conn) Dim cmd2 As New OleDbCommand(strsql2, conn) Dim cmd3 As New OleDbCommand(strsql3, conn) Dim cmd4 As New OleDbCommand(strsql4, conn) conn.Open()
If DropDTX.Text = \选择题\ Then
Dim dr1 As OleDbDataReader = cmd1.ExecuteReader() GridView1.DataSource = dr1 GridView1.DataBind()
Session(\) = \ ElseIf DropDTX.Text = \判断题\ Then
Dim dr2 As OleDbDataReader = cmd2.ExecuteReader() GridView1.DataSource = dr2 GridView1.DataBind()
Session(\) = \ ElseIf DropDTX.Text = \填空题\ Then
Dim dr3 As OleDbDataReader = cmd3.ExecuteReader() GridView1.DataSource = dr3 GridView1.DataBind()
Session(\) = \ ElseIf DropDTX.Text = \问答题\ Then
Dim dr4 As OleDbDataReader = cmd4.ExecuteReader() GridView1.DataSource = dr4 GridView1.DataBind()
Session(\) = \ End If
conn.Close()
End Sub
其中DataBindGridView1子过程代码如下:
Sub DataBindGridView1()
Dim strsql As String '建立Connection对象
Dim conn As New OleDbConnection(\Security Info=True;User ID=sa;Initial Catalog=ExamTest;Data Source=.\) '建立Command对象
strsql = \QuestionID,Question,QuestionSub,QuestionTime,QuestionType from \ & Session(\) & \where QuestionID='\ & Session(\).ToString().Trim() & \
Dim cmd As New OleDbCommand(strsql, conn) '建立DataAdapter对象
专业知识整理分享
WORD格式可编辑
Dim adp As New OleDbDataAdapter(cmd) '建立DataSet对象
Dim ds As New DataSet() '填充DataSet对象 adp.Fill(ds, \) '绑定数据对象
GridView1.DataSource = ds.Tables(\).DefaultView '指定数据源 GridView1.DataBind() '执行绑定
End Sub
对选择题进行操作的页面AddSingle.aspx:
图 3-5 插入选择题界面
其中插入按钮点击事件代码如下:
Dim strsql, shitibianhao, suoshukemu, chuangjianshijian, shitineirong, xuanxiangA, xuanxiangB, xuanxiangC, xuanxiangD, daan As String shitibianhao = TexSTBH.Text.ToString().Trim() suoshukemu = DropDSSKM.Text.ToString().Trim()
chuangjianshijian = TexCJSJ.Text.ToString().Trim() shitineirong = TexSTNR.Text.ToString().Trim() xuanxiangA = TexXXA.Text.ToString().Trim() xuanxiangB = TexXXB.Text.ToString().Trim() xuanxiangC = TexXXC.Text.ToString().Trim() xuanxiangD = TexXXD.Text.ToString().Trim() daan = RadioBCKDA.Text.ToString().Trim() strsql = \
SingleSel(QuestionID,Question,Choice_A,Choice_B,Choice_C,Choice_D,Answer,QuestionSub,QuestionTime,QuestionType) values('\ & shitibianhao & \ & shitineirong & \ & xuanxiangA & \ & xuanxiangB & \ & xuanxiangC & \ & xuanxiangD & \ & daan & \ & suoshukemu & \ & chuangjianshijian & \ & Session(\) & \
Dim conn As New OleDbConnection(\Security Info=True;User ID=sa;Initial Catalog=ExamTest;Data Source=.\)
专业知识整理分享
WORD格式可编辑
Dim cmd1 As New OleDbCommand(\ & shitibianhao & \, conn) conn.Open()
Dim dr1 As OleDbDataReader = cmd1.ExecuteReader() If (Not dr1.Read()) Then
Dim cmd2 As New OleDbCommand(strsql, conn)
Dim dr2 As OleDbDataReader = cmd2.ExecuteReader() Label1.Text = \插入成功!\
ElseIf MsgBox(\此题编号已经存在!!!\) Then End If
conn.Close()
当要插入的主键值数据库中已经存在时弹出提示对话框:
图 3-6 当所插编号存在
对填空题页面进行操作的页面AddFilling.aspx :
图 3-7 填空题添加界面
确定按钮单击事件代码如下:
Dim strsql, shitibianhao, shitineirong, zhengquedaan, suoshukemu, lurushijian As String
shitibianhao = TexSTBH.Text.ToString().Trim() shitineirong = TexSTNR.Text.ToString().Trim() zhengquedaan = TexCKDA.Text.ToString().Trim() suoshukemu = DropDSSKM.Text.ToString().Trim() lurushijian = TexCJSJ.Text.ToString().Trim()
strsql = \into Filling values('\ & shitibianhao & \ & shitineirong & \ & zhengquedaan & \ & suoshukemu & \ & lurushijian & \ & Session(\) & \
专业知识整理分享
WORD格式可编辑
Dim conn As New OleDbConnection(\Security Info=True;User ID=sa;Initial Catalog=ExamTest;Data Source=.\)
Dim cmd1 As New OleDbCommand(\ & shitibianhao & \, conn) conn.Open()
Dim dr1 As OleDbDataReader = cmd1.ExecuteReader() If (Not dr1.Read()) Then
Dim cmd2 As New OleDbCommand(strsql, conn)
Dim dr2 As OleDbDataReader = cmd2.ExecuteReader() Label1.Text = \插入成功!\
ElseIf MsgBox(\此题编号已经存在!!!\) Then End If
conn.Close()
对判断题题库进行操作的页面AddRightOrWrong.aspx如下:
图 3-8 判断题添加页面
其中确定按钮单击事件代码如下:
Dim strsql, shitibianhao, suoshukemu, chuangjianshijian, shitineirong, cankaodaan As String
shitibianhao = TexSTBH.Text.ToString().Trim() shitineirong = TexSTNR.Text.ToString().Trim() cankaodaan = RadioBCKDA.Text.ToString().Trim() suoshukemu = DropDSSKM.Text.ToString().Trim()
chuangjianshijian = TexCJSJ.Text.ToString().Trim()
strsql = \ & shitibianhao & \ & shitineirong & \ & cankaodaan & \ & suoshukemu & \ & chuangjianshijian & \ & Session(\) & \
Dim conn As New OleDbConnection(\Security Info=True;User ID=sa;Initial Catalog=ExamTest;Data Source=.\)
Dim cmd1 As New OleDbCommand(\* from RightOrWrong where QuestionID='\ & shitibianhao & \, conn) conn.Open()
Dim dr1 As OleDbDataReader = cmd1.ExecuteReader() If (Not dr1.Read()) Then
Dim cmd2 As New OleDbCommand(strsql, conn)
Dim dr2 As OleDbDataReader = cmd2.ExecuteReader()
专业知识整理分享
WORD格式可编辑
Label1.Text = \插入成功!\
ElseIf MsgBox(\此题编号已经存在!!!\) Then End If
conn.Close()
对问答题进行操作管理的页面AddEssayQuestion.aspx如下:
图 3-9 问答题添加页面
其中确定按钮单击事件代码如下:
Dim strsql, shitibianhao, shitineirong, cankaodaan, suoshukemu, lurushijian As String
shitibianhao = TexSTBH.Text.ToString().Trim() shitineirong = TexSTNR.Text.ToString().Trim() cankaodaan = TexCKDA.Text.ToString().Trim() suoshukemu = DropDSSKM.Text.ToString().Trim() lurushijian = TexCJSJ.Text.ToString().Trim()
strsql = \ & shitibianhao & \ & shitineirong & \ & cankaodaan & \ & suoshukemu & \ & lurushijian & \'\ & Session(\) & \
Dim conn As New OleDbConnection(\Security Info=True;User ID=sa;Initial Catalog=ExamTest;Data Source=.\) Dim cmd1 As New OleDbCommand(\* from EssayQuestion where QuestionID='\ & shitibianhao & \, conn) conn.Open()
Dim dr1 As OleDbDataReader = cmd1.ExecuteReader() If (Not dr1.Read()) Then
Dim cmd2 As New OleDbCommand(strsql, conn)
Dim dr2 As OleDbDataReader = cmd2.ExecuteReader() Label1.Text = \插入成功!\
ElseIf MsgBox(\此题编号已经存在!!!\) Then End If
conn.Close()
3.2 添加课程
添加课程页面AddSubject.aspx如下:
专业知识整理分享
WORD格式可编辑
图 3-10 课程添加页面
其中添加按钮单击事件如下: Dim strsql As String
Dim kecheng As String
kecheng = TextBox1.Text.ToString().Trim()
strsql = \ & kecheng & \
Dim conn As New OleDbConnection(\Security Info=True;User ID=sa;Initial Catalog=ExamTest;Data Source=.\) Dim cmd1 As New OleDbCommand(\* from Sub where QuestionSub='\ & kecheng & \, conn)
conn.Open()
Dim dr1 As OleDbDataReader = cmd1.ExecuteReader() If (Not dr1.Read()) Then
Dim cmd2 As New OleDbCommand(strsql, conn)
Dim dr2 As OleDbDataReader = cmd2.ExecuteReader() Label1.Text = \插入成功!\
ElseIf MsgBox(\此科目在数据库中已经存在!!!\) Then End If
conn.Close()
若所要添加了课程在数据库中已经存在则弹出提示对话框:
图 3-11 提示对话框
3.3 考试界面
学生点击Admin.aspx界面上的试题生成按钮就可以跳转到考试界面TestGeneration.aspx,考试界面是用table布局。下面放置两个Button控件,分别用于随机生成试题和提交答案,并用一个label控件来显示分数。
专业知识整理分享
WORD格式可编辑
图3-12 考试界面图
其中随机生成按钮单击事件中写入代码:
Dim rand As String
Dim abc() As String
abc = Split(\, \)
rand = CInt(10 * ((New Random())).NextDouble).ToString '随机生成一个随机的整数
Session(\) = rand '用S\\ession来存放随机数,以便判卷时用
Dim strsql1, strsql2, strsql3, strsql4 As String '定义四个Sql查询语句 strsql1 = \ & rand & \ strsql2 = \ & rand & \ strsql3 = \ & rand & \
strsql4 = \ & rand & \ Dim conn As New OleDbConnection(\Security Info=True;User ID=sa;Initial Catalog=ExamTest;Data Source=.\) Dim cmd1 As New OleDbCommand(strsql1, conn) Dim cmd2 As New OleDbCommand(strsql2, conn) Dim cmd3 As New OleDbCommand(strsql3, conn) Dim cmd4 As New OleDbCommand(strsql4, conn) conn.Open()
Dim dr1 As OleDbDataReader = cmd1.ExecuteReader() Dim dr2 As OleDbDataReader = cmd2.ExecuteReader() Dim dr3 As OleDbDataReader = cmd3.ExecuteReader() Dim dr4 As OleDbDataReader = cmd4.ExecuteReader()
If (dr1.Read()) Then '随机生成选择题在Label1中显示,并把其正确答案显示在TexXZT文本域中
Label1.Text &= \选择题题目:\ & dr1.Item(\) & \ Label1.Text &= \选项:\ & dr1.Item(\) & \ Label1.Text &= \选项:\ & dr1.Item(\) & \ Label1.Text &= \选项:\ & dr1.Item(\) & \ Label1.Text &= \选项:\ & dr1.Item(\) TexXZT.Text = dr1.Item(\) End If
If (dr2.Read()) Then '随机生成判断题在Label2中显示,并把其正确答案显示在TexTKT文本域中
专业知识整理分享
WORD格式可编辑
Label2.Text &= \判断题题目:\ & dr2.Item(\) & \ TexPDT.Text = dr2.Item(\) End If
If (dr3.Read()) Then '随机生成填空题在Label3中显示,并把其正确答案显示在TexTKT文本域中
Label3.Text &= \填空题题目:\ & dr3.Item(\) & \ TexTKT.Text = dr3.Item(\) End If
conn.Close()
Button2.Enabled = False '把Button2按钮设置成不可用
答案提交按钮单击事件中写入代码:
Dim i As Integer
If (RadioButtonList1.Text.Trim() = TexXZT.Text.Trim()) Then '如果答题人所选答案与数据库中的答案相同
i += 5 '选择题每题5分 End If
If (RadioButtonList2.Text.Trim() = TexPDT.Text.Trim()) Then i += 5 '判断题每题5分 End If
If (TextBox1.Text.Trim() = TexTKT.Text.Trim()) Then i += 10 '填空题每题十分 End If
Label4.Text = i.ToString() '在label4上面显示分数,即i的值
专业知识整理分享
WORD格式可编辑
第4章 系统测试
使用黑盒进行测试软件功能:
测试修改密码模块,当两次输入的密码不相同时,弹出提示对话框:
图4-1 密码两次输入不一致
当所要添加的课程在数据库中已经存在时,弹出提示对话框:
图4-2 添加课程已存在
对试题进行插入、删除、修改、查询时,当插入在数据库中已存在主键值的数据时,系统会出现提示信息(见图3-6)。
专业知识整理分享
WORD格式可编辑
第5章 结束语
本次设计完成了向题库中添加试题,修改试题,删除已经没有价值的试题,用户可以修改密码。学生可以登录此系统随机选取试卷,计算机自动完成阅卷功能。此系统运用产生随机数函数自动生成随机数,然后随机从数据库中抽取试题。对四个表进行查询时,定义运用四个OleDbCommand变量,在一定程度上精简了代码。
通过本次短学期的编写程序使我懂得了要想做一个合格的作品不是单纯想象的那么简单,也不是随便的从网络上下载一个敷衍了事,只有通过真正的做了一遍才能使原本杂乱无章、支离破碎的知识有了一个很好的融会贯通,并初步形成了一个知识体系,对SQL Server数据库、VB语言、VS2005开发环境有了进一步的认识,这次题库管理系统设计要处理的数据表、数据表之间的关系、页面之间的参数传递、变量定义众多,它培养了我们处理众多关系、理清变量之间传送参数的能力,同时也在无形中培养了我们应用Amdahl定律处理复杂问题、提高大概率事件效率、分清轻重缓急的能力。
从规范化的软件开发流程中,学习如何规范自己的人生,这是每一个软件编写者应该具备的素质,虽然有时候感觉整天坐在那里编写代码是一项很无聊的工作,但是当心里想的东西用计算机语言实现出来的那种成功的喜悦是其他事情无所替代的,有时候遇到不会的问题、陌生的功能的时候,我会主动的去网上、图书馆查阅相关的资料,或者恳请老师答疑,在这期间多多少少的培养了我的自学能力和遇到困难时那种主动解决困难的态度,有句话说得好“细节决定成败,态度决定命运”,然而我们平时对细节、态度观的形成就是通过好多好多的小事情来实现的,所以我很珍惜这次小学期实习的机会,虽然时间不是很长,但是它在微观上让我明白了想画好一个让客户满意的程序,我们必须要有耐心、必须要有“不破楼兰终不还”的豪情壮志!以前有人说解放战争是胜在后勤上、打的是后勤,我想在现代在这个浮躁的社会,成功往往都是以耐心为基石、比的是耐心!在宏观上来讲我们想做好一件事情必须在内心上要重视它,要付出100%的努力,不能把每件事情都当做自己的负担,我们要把每一件事情都看作是对自己的一个挑战,在人生路上是对自己的一个磨练!
专业知识整理分享
WORD格式可编辑
参考文献
[1] 张海潘.软件工程导论 [M].清华大学出版社,2008.2.
[2] 王珊,萨师煊.数据库系统概论 [M].高等教育出版社,2006.5. [3] 张海潘.软件工程导论 [M].清华大学出版社,2008.2.
[4] 尚俊杰.ASP.NET程序设计 [M].清华大学出版社;北京交通大学出版
社.2004.4.
专业知识整理分享