在线考试系统课程设计(1)
- 格式:doc
- 大小:397.50 KB
- 文档页数:17
一、需求分析计算机技术没有应用到考试上时,组织一次考试只是要经过五步:人工出题,考生考试,人工阅卷,成绩评估和试卷分析,这是一项十分繁琐和容易出错的工作,教师的工作量非常的大。
很明显,传统的考试方式已经不再适应现代考试的需要。
如今,信息技术的迅猛发展,应用不断扩大,教学和虚拟大学等相继出现,这些应用正逐步深入到千家万户,人们迫切要求利用这些技术来进行在线考试,以减少教师的工作负担并提高工作效率,同时提高考试的质量,从而使考试更趋于公正,客观,更加激发学生的兴趣。
例如,目前许多国际著名的计算机公司所举办的各种认证考试绝大部分是采用这种形式。
二、数据库设计1, 概念模型设计(E —R 图)用户信息是否已经登录用户姓名用户账号 用户密码是否参加了考试用户类型试题题库选项C选项D选项E选项F选项B选项A 试题类型试题编号 试题答案 试题题目学生考试试卷试卷类型 题库中的编号题目在试卷中的编号题目答案选项A 选项C 选项B 选项D 选项E考生答案学生成绩考生编号 考生成绩选择题成绩 判断题成绩 填空题成绩系统参数考试时间参数编号选项F2、图转为逻辑模型的方法及过程在中创建一个新的数据库6,以E—R图中的实体的名称创建表。
设计表时,以该E—R图中的属性为列名,根据实际情况确定其数据类型和长度,在必须唯一的列名处设计主键。
在中一共建立七个表来实现6模拟考试系统应用程序数据的连接。
其中,表示数据类型,0表示学生,1表示管理员。
表示用户账号,表示用户姓名,表示用户密码。
,分别表示用户是否登录和参加考试。
,分别表示试题类型和试题类型名。
,分别表示选择题的分值和比例。
判断题和填空题类推。
表示考生考号,、分别表示试题在题库和试卷中的编号。
、表示试题题目和答案。
3、逻辑模型(用户信息表)(试题类型表)(系统参数表)(学生考试试卷表)(学生分数表)(试题安排)(学生考试试卷表)4、数据库评价首先,用设计数据库比较稳定,对数据的要求也比较严格。
这样在编码阶段数据这一块就基本没有不合理的数据出现在应用程序上。
减少了运行会出现的错误。
但是与应用程序的链接有时比较繁琐而且不易成功。
三、编码实现1, 登录模块1)用户的不同类型进入到不同的界面,主要有一个控件,用于选择用户类型。
两个控件,用于输入账号,用于输入密码。
三个控件:用于登录系统,用于清空用户信息重新输入,用于退出系统。
2)程序流程图3) 登录模块代码B '用户的登录信息是否正确()'判断用户登录信息是否正确,正确,否则 '声明为记录集对象登录输入用户类型进入学生界面进入管理员界面输入用户名密码输入用户名密码结束登录学生管理员错误错误() = "" '如果没有输入帐号"没有输入用户账号,请您正确填写!", + '设置焦点在问本框上() = "" '如果密码为空"没有输入密码,请您正确填写!", +'设置焦点在问本框上'= '设置按键触发事件= " * '" & () & "'" & _" '" & & "' " & _" '" & () & "' "'把查询用户信息的语句赋给变量, , , '以只读的方式静态的打开执行的结果的记录集> 0 '如果记录集为空("用户账号或密码不正确,请您正确填写!", + ) '显示提示信息'如果选择了是B == "" '帐号清空= "" '密码清空'是输入帐号的文本框获得焦点'选择了取消'结束程序= '设置不是的默认按钮("") = 0'如果记录集不为空且此帐号没被其他用户使用B = '用户的登录信息正确" 1 " & _" '" & () & "'" & _" '" & & "'" '设置字段为1,限制其他用户用此帐户登录= () '记录用户的帐号'如果记录集不为空但此帐号正在被其他用户使用"用户已经登录!", + '显示提示信息B = '用户的登录信息错误= "" '帐号清空= "" '密码清空'是输入帐号的文本框获得焦点= '设置不是的默认按钮'关闭记录集( )= 13 '如果输入的字符是键'设置输入帐号的文本框获得焦点'如果输入的是其它字符= 0 '返回值为空即不输入任何字符() '用户信息输入错误,选择了“重输”按钮,开始重新输入。
() '用户填写信息完毕,单击“确定”按钮,开始登录1 '出现错误转向错误处理'声明为记录集对象'语句的条件是的属性0 '如果选中的是第一条记录即考生'判断考生的帐号和密码是否正确B = '如果考生的帐号和密码正确= " 0" & _" '" & () & "'" '判断考生是否参加过考试, , , '执行语句("") = '如果考生没有参加过考试= " " & _"'" & () & "'" '删除成绩表中考生原有的记录'执行语句= " () " & _"('" & () & "')" '把考生的帐号插入到成绩表中'执行语句'显示考生窗口'卸载本窗体1= "" = "" '设置超级用户'卸载本窗体'显示管理员窗体'如果不是超级用户'判断管理员的帐号和密码是否正确B = '如果帐号和密码正确'卸载本窗体'显示管理员窗体'不过没有选择用户的身份"您没有选择身份,请选择!", + '提示选择身份'组合框获得焦点'跳出过程1:"打开窗口失败" '显示出错信息'显示登录窗体()("真的要退出 " & & " 吗?", + ) ='弹出对话框询问是否退出系统'退出系统()= "请选择身份"= ""= ""( )= 13 '判断如果用户输入的是键'设置获得焦点( )= 132、管理员模块1)在窗体上添加一个控件,上面添加三个控件,分别为选择题,填空题,判断题。
添加一个控件显示试题,添加一个控件链接数据库。
编写菜单实现各种管理的功能。
2)3) 代码'声明模块级变量"32" "" ( , , , , , ) ( ) '构造连接的函数1 '执行过程中如果发生错误转向错误处理 1 '使用结构 = '不可见= '设置的连接字符串 = '设置的命令类型 = '设置的记录源 '刷新的记录集 '结束结构 '结束函数 1:"与数据库连接失败!" '显示错误信息 '显示窗口 () (1) ()= " 类型号,题号=()," & _ "题目名称,答案 " & _管理员用户管理修改系统系数题库维护查询考生成绩结束程序" '判断题'"()(0) = 700(1) = 500(2) = 4000(3) = 500()= " 类型号,题号=()," & _"题目名称,答案 " & _" '填空题'"()(0) = 700(1) = 500(2) = 4000()= " 类型号,题号=()," & _"题目名称,答案 " & _" " & _" '" & & "'" '把查看选择题的语句赋给变量 () '调用函数执行语句(0) = 700 '设置的第1列列宽(1) = 500 '设置的第2列列宽(2) = 4000 '设置的第3列列宽(3) = 500 '设置的第4列列宽()1("题号") = "" '如果试题不存在"不存在记录,请您先添加记录", '提示没有记录 '跳出过程'如果题库中有试题= '管理窗体不可以用= 1 '记录当前的指针的位置()( )("真的要退出 " & & " 吗?", + ) = '弹出消息对话框询问是否退出系统 = '如果消息对话框返回值为常数,系统返回值为" 0 '" & & "' '1'"'如果消息对话框返回值为常数,系统返回值为,结束程序()()"{F1}"()'打开查分窗体'隐藏管理员窗体() '设定参数:():():():()()=:():3、学生窗体1)2)3)()()11:"考试窗口打开出错"()()'声明认识为记录集对象= " 0" & _" '" & & "'" '把查询是否参加考试的标识字段赋给变量考生是否已经参加考试查询成绩 修改密码修改密码 开始考试 退出系统, , , '执行语句= ("")( )("真的要退出" & & " 吗?", + ) = '弹出对话框询问是否退出系统 = 1" 0 '" & & "' '0'"()=()1 '如果发生错误转向错误处理'声明认识为记录集对象= " * '" & & "' " & _" '0' '" & & "' " '把验证密码的语句赋给变量, , , '执行语句> 0 '如果密码不正确("密码不正确,请您重新填写!", + ) = '弹出提示框= '如果单击取消回到开始考试的界面'如果单击确定= "" '清空'设置获得焦点= '显示修改密码的图片框= '用户帐号中显示用户的帐号= '隐藏输入验证码的图片框= "" '清空= ""'设置获得焦点'结束结束过程1:"校对密码出错" '显示出错信息()1 '如果发生错误就转向错误处理() = "" '如果密码为空"密码不能为空!", + '提示输入密码() <> () '如果两次密码不同"您两次输入的密码不一样!", + '提示重新输入密码 = "" '清空= "" '清空'设置获得焦点'如果两次输入的密码相同且不为空= " '" & & "'" & _" '" & & "' " '修改密码'把密码写入数据库"修改成功!", + '提示修改成功= '不可见'跳出过程1:"密码修改出错" '显示提示信息()= ""= ""()=()()"{F1}"()1= " '" & & "'", , ,"您的考试成绩是:" & & "" & ("") & "",1:"查分失败"()=1 = '用于标识的图像框不可见= '开始考试的命令按钮不可见= '开始考试菜单不可见= ""()()( )= 13( )= 13( )= 13()'如果参加考试的字段值为11 = '用于标识的图像框不可见 = '开始考试的命令按钮不可见 = '开始考试菜单不可见= '查分菜单可见'如果参加考试的字段值为01 = '用于标识的图像框不可见 = '开始考试的命令按钮不可见 = '开始考试菜单不可见= '查分菜单可见= '验证密码的的图片框不可见 = '修改码的的图片框不可见。