1、考试参数管理下面给出每个界面图预览图0. 用户管理图1. 题库管理图2. 考试参数管理图3. 分数查询三、 数据库逻辑设计用表格的形式给出各表的结构用户类型用户编号用户名字用户密码进入标志考试标志图4. 用户管理题目类型编号题目编号题目名字题目答案A选项B选项C选项D选项E选项F选项图5. 各题选项名称名字图6. 题目类型编号试卷编号图7. 试卷编号考生账号类别编号在试卷中的编号学生答案 E选项成绩图8. 考生账号用户账号选择题比例选择题分值判断题比例判断题分值填空题比例填空题分值考试时间单位为分钟图9. 各题比例选择题判断题填空题图10. 各题成绩四、 主要模块功能说明1、登录模块:重点数据
2、库连接和安全性实现Option ExplicitPublic cnn As ADODB.ConnectionPublic Sql, Str1 As StringPublic Usetime As IntegerPublic Bkm As IntegerPublic UsId As StringSub Main() On Error GoTo Err1 Usetime = 0 Set cnn = New ADODB.Connection cnn.ConnectionString = Provider=SQLOLEDB.1;Persist Security Info=False; & _ User
3、 ID=sa;Initial Catalog=DB_TEST;Data Source=. cnn.Open frm_Welecome.Show vbModal Exit SubErr1: ErrMessageBox Main()启动过程出错End Sub2、系统业务流程图图11.流程图3、考试模块: 增加按钮的变化最后一题图12. 最后一题Private Sub last_dx_Click()On Error GoTo Err1 Call T_last(Ado3, 0) Call ShowDX Cmd_XNext.Enabled = True last_dx.Enabled = False f
4、irst_dx.Enabled = True Cmd_XPre.Enabled = True考生考试连接出错第一题图13. 第一题Private Sub first_dx_Click() Call T_first(Ado3, 0) first_dx.Enabled = False last_dx.Enabled = True每题按钮图14. 单选按钮Private Sub Command2_Click(Index As Integer)Dim i As Integer If Not rs Is Nothing Then If rs.State = adStateOpen Then rs.Clo
5、se End If Set rs = Nothing i = 0 If Index = 0 And Index 30 Then Stb_Test.Tab = 0 If Index = 0 Then Call T_first(Ado1, 0) Call ShowXZ Else For i = 1 To Index Call T_Next(Ado1, 0) Call check Next i= 30 And Index = 40 Then Stb_Test.Tab = 1 If Index = 30 Then Call T_first(Ado2, 1) Call ShowPD For i = 31
6、 To Index Call T_Next(Ado2, 1)= 41 And Index = 49 Then Stb_Test.Tab = 2 If Index = 40 Then Call T_first(Ado3, 2) For i = 41 To Index Call T_Next(Ado3, 2)多选题图15. 多选题(Check程序借鉴单选题的单选按钮Option程序代码)Private Sub Check1_Click(Index As Integer) Txt1_XAnswer.Text = Check1(Index).Caption Cmd_XOk.SetFocus Dim i
7、 As Integer 声明用于循环的整形变量 Dim str As StringFor i = 0 To 3 If Check1(i).Value = 1 Then str = str & Check1(i).Caption str = strNext iTxt1_XAnswer.Text = Txt1_XAnswer.Text = Txt1_XAnswer.Text & str If Not rs Is Nothing Then 如果记录集rs不为空 If rs.State = adStateOpen Then 如果记录集处于打开状态 rs.Close 关闭记录集 Set rs = Not
8、hing rs设置为空 If Txt1_XAnswer.Text = Or Txt1_XAnswer.Text = 请在此输入. Then 如果没有输入答案 MsgBox 请输入您的答案或者单击答案选项!, vbOKOnly + vbInformation 提示没有答题 Else Sql = update tb_stutest set stu_answer= Txt1_XAnswer.Text &where studentid= UsId & and papertopid= Ado3.Recordset.Fields(papertopid) & 把考生答案写入数据库的语句赋给变量Sql cnn
9、.Execute Sql 执行SQL语句,把答案写入数据库4、管理模块:例判断题的程序代码Private Sub Cmd_PDT_Click()select 类型号=tb_testtype.Typeid,题号=(tb_topicstor.topicid),题目名称=topicname,答案=topicanswer from tb_topicstor,tb_testtype where tb_testtype.typeid=tb_topicstor.typeid and typename=判断题 Call FunAdo(Sql) DG.Columns(0).Width = 700 DG.Colu
10、mns(1).Width = 500 DG.Columns(2).Width = 4000 DG.Columns(3).Width = 5005、导入导出:导入数据到数据库: Trim(DuoX_Answer.Caption) & cnn.Execute Sql通过查询导出数据库里的数据:Sql = select stu_answer from tb_stutest Ado1.Recordset.Fields( rs.Open Sql, cnn, adOpenStatic, adLockReadOnly 只读静态读取数据五、 测试情况1、已完成的部分包括:(1)第一题、最后一题的跳转调试部分遇到的问题:Call T_first(Ado3, 0)Call ShowDX 关键在各个页面中对红色部分的修改(2)点击选项后将答案直接放入数据库而不用通过提交按钮; Txt_XAnswer.Text & cnn.Execute Sql 调试部分遇到的问题: 运用到了for的循环及数据库的导出程序 (3)右边界面的选择按钮组; 其中的边界值设定是出现的问题都通过一次次的运行测试正常对控件数组的运用从新复习的了大一所学程序,促进自己的语言编程(4)将填空题更改成多选题; 填空题更改成多选题运行时出现的控件名称的修改,在整个工程的查找中对程序加深理解
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1