在线考试系统JAVA
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目在线考试系统
1、实验目的
①熟练运用JAVA开发环境及工具、并用JAVA语言编写程序;
②掌握面向对象的概念;
③掌握系统功能模块的合理划分,并实现各模块接口的连接;
④掌握C/S结构的编程方法;
⑤设计数据库模型。
2、实验内容
①编辑生成试题库,随机生成本次考试试题,同时提供在线评分并保存结果。
②选择ACCESS作为后台的数据库。
3、实验过程
3.1
题库管理:用于对单个试题的增、删、改、查等基本维护,还可对题库进行数据备份和数据还原。我们针对不同题型、不同应用范围及不同科目对试题进行维护。试卷管理:可进行三种组卷方式的维护:随机组卷、人工组卷、综合组卷。还可对考生的基本信息进行维护。
考试管理:对考试分配试卷,并对考试的基本信息进行维护。相当于人工安排考试的过程
评卷管理:对试卷的客观题分配评卷人,并对评卷人基本信息进行管理。
成绩管理:对每次考试的学生成绩的基本信息进行维护,并提供学生成绩的统计管理。
用户管理:对使用本系统的用户基本信息进行维护,用户多数为:系统管理员、老师、教务处人员、其他
权限管理:对系统的访问权限进行管理,并对用户可进行权限的分配。
系统应该具备的基本功能
各模块需完成以下功能:
题型维护:对试题的题型进行增、删、改、查操作。在操作之后会自动刷新主页,以使信息更新。
范围维护:对试题的应用范围进行增、删、改、查操作。在操作之后会自动刷新主页,以使信息更新。
科目维护:对试题的科目进行增、删、改、查操作。在操作之后会自动刷新主页,以使信息更新。
试题维护:对试题的基本信息进行增、删、改、查操作。在操作之后会自动刷新主页,以使信息更新。
其他维护:对试题信息的批量查询,并可进行数据导出、数据备份、数据恢复。 随机组卷:用户只需对试卷题型进行设置就可组卷的方式。 人工组卷:可使用户选择试卷的题型中的试题的组卷方式。 综合组卷:是随机组卷与人工组卷的混合组卷方式,即用户对某一类型的试题可进行选择,也可对试题不进行选择。
试卷其他维护:对试卷信息的批量查询,对试题的数据备份与还原。
考试信息维护:对考试的时间、地点、监考人、考试用的试卷、试卷总分数及答卷总时间等考试的基本要素进行设置。
考生信息维护:对考试的学生的基本信息进行增、删、改、查操作,在操作之后会自动刷新主页,以使信息更新。 分配评卷人:对考试所用试卷的客观题分配评卷人,并对评卷的基本信息进行维护。
评卷人评卷:对分配试卷的评卷人可以在此进行评卷。 考生成绩维护:对考试的考生成绩信息进行统计与汇总,对有权限的人可进行成
绩的增、删、改、查操作。
成绩其他维护:对考生成绩信息的批量查询,并可进行数据导出、数据备份、数据恢复。
用户基本信息维护:对使用本系统的用户进行维护,而用户的权限由权限管理进行维护,并分配给用户,使用户只能访问自己拥有的权限内。 权限信息维护:对基本的权限进行维护,用户可自定义维护权限。
用户分配权限:对未分配权限的用户进行权限的分配,即对 分配权限的增、删、改、查操作。
信息基本维护:我们的信息除了有关考试的信息外,还有公告、新闻、留言信息需要我们维护,其中公告、新闻由后台有权限的人进行增、删、改、查操作,而留言是由前台的用户(学生)或游客录入的,我们要防止垃圾数据显示,即对留言有权更改等操作。 3.2系统结构图
○
1、本系统分为学生前台子系统和考试管理子系统,整个系统的结构图如下:
3.3 数据库设计
试题类型表(questionType_table):其中包括了试题的类型的基本信息,如类型名称、答题方式、说明信息等字段;录入时,我们将答题方式确定为大概几种类型:填空方式,选择方式,问答方式,判断方式,综合方式。
试题范围表(questionBound_table):用于控制试题应用的范围,如同样的科目语文,在小学、初中、高中、大学都有,由此我们设定了此表,此表中有范围名称、范围说明等基本信息;
所属科目表(questionSubject_table):用于录入试题相关的科目应用,它可以有不同的应用范围。如上所述,我们只需录入一次的科目,就可方便我们在录入试题时每次都录。各种题库表:我们采用一种类型的题存储在一个表中,由此我们会有填空题表(question_blanc_table)、单选题表
(question_selectone_table)、多选题表(question_selectMany_tabel)一题多问表(question_askone_table)、一题多问表(question_askMany_table)、判断题表(question_judge_table)等试题表
试卷表(exam_table):用于报存考试中试卷的基本信息,如出卷方式(有随机出卷、人工出卷、综合出卷)、试卷名称、试卷应用范围(与试题范围相对应)、试卷所属科目(与试题科目相对应)、试题标题级别、试题标题内容、试题总类型、试题个数、试题总ID等基本信息。
学生表(student_table):用于保存学生的考试的用户名及登陆密码。
成绩表(grade_table):用于存储学生的考试成绩。
评题表(appraiser_question_table):对于主观题的答案我们须要评卷人(有权限的用户)进行手工评卷,本表用来存储评卷人评卷的一些信息。
答案表(student_answer_table):用于存储学生问答题的答案,如试卷ID,学生ID及各种试题类型的答案字段。
用户表(user_table):用于保存用户的登陆的基本信息及分配的权限。
权限表(purview_table):用于存储用户组织的的权限,通过分配操作模块的权限组织权限。
4、关键代码及其分析
4.1----------------ServerGui.java------------------
public void actionPerformed(ActionEvent e) {
if (e.getSource() == log) {
// boolean b=login();
String username = JOptionPane.showInputDialog(this, "请输入用户名",
"输入用户名", JOptionPane.QUESTION_MESSAGE).trim();
String password = JOptionPane.showInputDialog(this, "请输入密码",
"输入密码", JOptionPane.QUESTION_MESSAGE).trim();
if (username == null || password == null) {
username = "temp";
password = "temp";
return;
}
adminCheck(username, password);// 验证管理员