最新在线考试系统课程设计.docx

上传人:b****3 文档编号:1934426 上传时间:2022-10-25 格式:DOCX 页数:22 大小:466.61KB
下载 相关 举报
最新在线考试系统课程设计.docx_第1页
第1页 / 共22页
最新在线考试系统课程设计.docx_第2页
第2页 / 共22页
最新在线考试系统课程设计.docx_第3页
第3页 / 共22页
最新在线考试系统课程设计.docx_第4页
第4页 / 共22页
最新在线考试系统课程设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

最新在线考试系统课程设计.docx

《最新在线考试系统课程设计.docx》由会员分享,可在线阅读,更多相关《最新在线考试系统课程设计.docx(22页珍藏版)》请在冰豆网上搜索。

最新在线考试系统课程设计.docx

最新在线考试系统课程设计

一、需求分析

计算机技术没有应用到考试上时,组织一次考试只是要经过五步:

人工出题,考生考试,人工阅卷,成绩评估和试卷分析,这是一项十分繁琐和容易出错的工作,教师的工作量非常的大。

很明显,传统的考试方式已经不再适应现代考试的需要。

如今,信息技术的迅猛发展,应用不断扩大,教学和虚拟大学等相继出现,这些应用正逐步深入到千家万户,人们迫切要求利用这些技术来进行在线考试,以减少教师的工作负担并提高工作效率,同时提高考试的质量,从而使考试更趋于公正,客观,更加激发学生的兴趣。

例如,目前许多国际著名的计算机公司所举办的各种认证考试绝大部分是采用这种形式。

二、数据库设计

1,概念模型设计(E—R图)

2、E-R图转为逻辑模型的方法及过程

在sql中创建一个新的数据库CET6,以E—R图中的实体的名称创建表。

设计表时,以该E—R图中的属性为列名,根据实际情况确定其数据类型和长度,在必须唯一的列名处设计主键。

在sql中一共建立七个表来实现CET6模拟考试系统应用程序数据的连接。

其中,UserType表示数据类型,0表示学生,1表示管理员。

UserId表示用户账号,UserName表示用户姓名,UserPsw表示用户密码。

HaveIn,HaveTest分别表示用户是否登录和参加考试。

TypeId,TypeName分别表示试题类型和试题类型名。

XZT_BL,XZT_FZ分别表示选择题的分值和比例。

判断题和填空题类推。

StudentId表示考生考号,TopicId、PaperTopId分别表示试题在题库和试卷中的编号。

TopicName、TopicAnswer表示试题题目和答案。

3、逻辑模型

TB_User(用户信息表)

TB_TestType(试题类型表)

 

TB_Param(系统参数表)

TB_StuTest(学生考试试卷表)

TB_Grade(学生分数表)

TB_Test(试题安排)

TB_StuTest(学生考试试卷表)

4、数据库评价

首先,用sql设计数据库比较稳定,对数据的要求也比较严格。

这样在编码阶段数据这一块就基本没有不合理的数据出现在应用程序上。

减少了运行会出现的错误。

但是sql与应用程序的链接有时比较繁琐而且不易成功。

三、编码实现

1,登录模块

1)用户的不同类型进入到不同的界面,主要有一个combox控件,用于选择用户类型。

两个TextBox控件,Txt_id用于输入账号,Txt_Pse用于输入密码。

三个commandButton控件:

cmd_In用于登录系统,Cmd_Again用于清空用户信息重新输入,Cmd_Quit用于退出系统。

2)程序流程图

3)登录模块代码

OptionExplicit

PublicBAsBoolean'用户的登录信息是否正确

PrivateSubPD()'判断用户登录信息是否正确,正确B=true,否则B=false

DimrsAsNewADODB.Recordset'声明rs为记录集对象

IfTrim(Txt_Id.Text)=""Then'如果没有输入帐号

MsgBox"没有输入用户账号,请您正确填写!

",vbOKCancel+vbCriticalTxt_Id.SetFocus'设置焦点在问本框Txt_Id上

ElseIfTrim(Txt_Psw.Text)=""Then'如果密码为空

MsgBox"没有输入密码,请您正确填写!

",vbOKCancel+vbCritical

Txt_Psw.SetFocus'设置焦点在问本框Txt_Psw上

Else'

Cmd_In.Default=True'设置Cmd_In按Enter键触发Click事件

Sql="select*fromTB_UserwhereUserId='"&Trim(Txt_Id.Text)&"'"&_"andUserType='"&Cbx_UserType.ListIndex&"'"&_"andUserPsw='"&Trim(Txt_Psw.Text)&"'"

'把查询用户信息的SQL语句赋给变量Sql

rs.OpenSql,cnn,adOpenStatic,adLockReadOnly'以只读的方式静态的打开Sql执行的结果的记录集

IfNotrs.RecordCount>0Then'如果记录集为空

SelectCaseMsgBox("用户账号或密码不正确,请您正确填写!

",vbOKCancel+vbCritical)'显示提示信息

CasevbOK'如果选择了是

B=False

Txt_Id.Text=""'帐号清空

Txt_Psw.Text=""'密码清空

Txt_Id.SetFocus'是输入帐号的文本框获得焦点

CaseElse'选择了取消

End'结束程序

EndSelect

Cmd_In.Default=False'设置Cmd_In不是Enter的默认按钮

ElseIfrs.Fields("HaveIn")=0Then

'如果记录集不为空且此帐号没被其他用户使用

B=True'用户的登录信息正确

cnn.Execute"updateTB_UsersetHaveIn=1"&_"whereUserId='"&Trim(Txt_Id.Text)&"'"&_"andUserType='"&Cbx_UserType.ListIndex&"'"'设置HaveIn字段为1,限制其他用户用此帐户登录

UsId=Trim(Txt_Id.Text)'记录用户的帐号

Else'如果记录集不为空但此帐号正在被其他用户使用

MsgBox"用户已经登录!

",vbOKOnly+vbCritical'显示提示信息

B=False'用户的登录信息错误

Txt_Id.Text=""'帐号清空

Txt_Psw.Text=""'密码清空

Txt_Id.SetFocus'是输入帐号的文本框获得焦点

Cmd_In.Default=False'设置Cmd_In不是Enter的默认按钮

EndIf

rs.Close'关闭记录集

EndIf

EndSub

PrivateSubCbx_UserType_KeyPress(KeyAsciiAsInteger)

IfKeyAscii=13Then'如果输入的字符是Enter键

Txt_Id.SetFocus'设置输入帐号的文本框获得焦点

Else'如果输入的是其它字符

KeyAscii=0'返回值为空即不输入任何字符

EndIf

EndSub

PrivateSubCmd_Again_Click()'用户信息输入错误,选择了“重输”按钮,开始重新输入。

CallForm_Load

EndSub

PrivateSubCmd_In_Click()'用户填写信息完毕,单击“确定”按钮,开始登录

OnErrorGoToErr1'出现错误转向错误处理

DimrsAsNewADODB.Recordset'声明rs为记录集对象

SelectCaseCbx_UserType.ListIndex'Select语句的条件是Cbx_UserType的ListIndex属性

Case0'如果选中的是第一条记录即考生

CallPD'判断考生的帐号和密码是否正确

IfB=TrueThen'如果考生的帐号和密码正确

Sql="selectHaveTestfromTB_UserwhereUserType=0"&_

"andUserId='"&Trim(Txt_Id.Text)&"'"'判断考生是否参加过考试

rs.OpenSql,cnn,adOpenStatic,adLockReadOnly'执行SQL语句

Ifrs.Fields("HaveTest")=FalseThen'如果考生没有参加过考试

Sql="deletefromTB_GradewhereStuId="&_

"'"&Trim(Txt_Id.Text)&"'"'删除成绩表中考生原有的记录

cnn.ExecuteSql'执行SQL语句

Sql="insertintoTB_Grade(StuId)values"&_

"('"&Trim(Txt_Id.Text)&"')"'把考生的帐号插入到成绩表中

cnn.ExecuteSql'执行SQL语句

EndIf

frm_Stu.Show'显示考生窗口

UnloadMe'卸载本窗体

EndIf

Case1

IfTxt_Id.Text="admin"AndTxt_Psw="admin"Then'设置超级用户

UnloadMe'卸载本窗体

frm_Manager.Show'显示管理员窗体

Else'如果不是超级用户

CallPD'判断管理员的帐号和密码是否正确

IfB=TrueThen'如果帐号和密码正确

UnloadMe'卸载本窗体

frm_Manager.Show'显示管理员窗体

EndIf

EndIf

CaseElse'不过没有选择用户的身份

MsgBox"您没有选择身份,请选择!

",vbOKCancel+vbCritical'提示选择身份

Cbx_UserType.SetFocus'组合框Cbx_UserType获得焦点

EndSelect

ExitSub'跳出Sub过程

Err1:

ErrMessageBox"打开窗口失败"'显示出错信息

frm_Login.Show'显示登录窗体

EndSub

 

PrivateSubCmd_Quit_Click()

IfMsgBox("真的要退出"&Me.Caption&"吗?

",vbYesNo+vbInformation)=vbNoThen

ExitSub

EndIf'弹出对话框询问是否退出系统

End'退出系统

EndSub

PrivateSubForm_Load()

Cbx_UserType.Text="请选择身份"

Txt_Id.Text=""

Txt_Psw.Text=""

EndSub

 

PrivateSubTxt_Id_KeyPress(KeyAsciiAsInteger)

IfKeyAscii=13Then'判断如果用户输入的是Enter键

Txt_Psw.SetFocus'设置Txt_Psw获得焦点

EndIf

EndSub

PrivateSubTxt_Psw_KeyPress(KeyAsciiAsInteger)

IfKeyAscii=13Then

CallCmd_In_Click

EndIf

EndSub

2、管理员模块

1)在窗体上添加一个SSTab控件,上面添加三个commandButton控件,分别为选择题,填空题,判断

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1