Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计

本人承诺只做技术分享,永不收费。

V----------------->:专栏详情

一、背景

​ 随着信息技术的快速发展,网络化的教育和考试方式得到了越来越广泛的应用。在线考试系统作为网络教育和远程教育中不可或缺的一部分,受到了广泛的关注和研究。

二、系统简介

   本系统为教育机构和企业提供一个全面的在线考试解决方案,包括学生管理、试题管理、考试安排、考试过程监控和考试结果分析等模块。

三、项目技术栈

系统分为前端、后端和数据库三层:

  • 前端
    • HTML
    • CSS
    • JavaScript
    • JQuery
  • 后端
    • Java
    • SSM框架
  • 语言
    • Java
  • 数据库
    • MySQL

四、系统角色及角色用例

  • 学生
    学生
  • 老师
    老师
  • 管理员
    管理员

五、数据库设计

  • 管理员表
    管理员表:记录管理员基本信息,包括管理员ID,管理员名称,管理员账号,管理员密码,管理员介绍。主键为:管理员ID。
    管理员表
  • 解答题表
    解答题表:记录解答题基本信息,包括ID,题目,答案。主键为:ID。
    解答题表
  • 判断题表
    判断题表:记录解答题的基本信息,包括ID,题目,答案。主键为:ID。
    判断题表
  • 填空题表
    填空题表:记录填空题的基本信息,包括ID,题目,答案。主键为:ID。
    填空题表
  • IP地址表
    IP地址表:记录用户登录的IP地址的基本信息,包括学生ID,老师ID,IP地址。主键为:学生ID,老师ID。
    IP地址表
    学生表
    学生表
    单选题表
    单选题表:记录单选题的基本信息,包括ID,题目,答案,选项。主键为:ID。
    单选题表
    多选题表
    多选题表:记录多选题的基本信息,包括ID,题目,答案,选项。主键为:ID。
    多选题表
    学生试卷表
    学生试卷表:记录学生的基本信息,包括学生ID,学生名称,学生账户,学生密码,学生介绍。主键为:学生ID。
    学生试卷表
    老师表
    老师表:记录老师的基本信息,包括老师ID,老师名称,老师账户,老师密码,老师介绍。主键为:老师ID。
    老师表
    试卷题型分数表
    试卷题型分数表:记录试卷试题的基本信息,包括:ID,单选分数,多选题分数,判断题分数,填空题分数,解答题分数。主键为:ID。
    试卷题型分数表
    系统E-R图
    用户表和用户角色表之间为一对多关系,一个用户可以拥有多个角色。
    角色表、角色权限表、权限表之间为多对多关系,一个角色可以拥有多个权限,一个权限也可以被多个角色所包含。
    题目表和试卷题目表之间为多对多关系,一个试卷可以包含多个题目,一个题目也可以被多个试卷所包含。
    试卷表和考试安排表之间为一对多的关系,一个考试可以包含多个试卷,而一个试卷只属于一个考试。
    学生考试记录表和试卷表、考试安排表、用户表之间为多对一的关系,一个学生可以参加多次考试,每次考试属于一个考试安排,考试安排包含了多个试卷,而学生记录了自己的考试成绩和相关信息。系统ER图如下所示:
    系统E-R图

六、系统演示及部分代码

  1. 用户信息管理模块
    用户信息管理模块是供用户和管理员浏览和管理用户相关信息的模块,是一个基本的能够运行的软件程序最基本的模块,使得用户信息得以被很好的保存、使用和修改。用户信息管理系统演示如图所示。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    部分核心代码:
String studentMessage = request.getParameter("addStudentMessage");
if (studentMessage != null) {
    //把JSON转为对象,再把对象保存到数据库
    Student student = JSON.parseObject(studentMessage, Student.class);
    IAdminMapper iAdminMapper = (IAdminMapper) Tools.getImp("IAdminMapper");
    IStudentMapper iStudentMapper = (IStudentMapper) Tools.getImp("IStudentMapper");
    Student stu = iStudentMapper.findAccount(student.getStuAccount());

    //如果账号已经存在
    if (stu != null) {
        System.out.println("学生账号已存在");
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        out.write("NO");
        out.flush();
        out.close();
        return;
    }

    iAdminMapper.addStudent(student);
    System.out.println("添加学生信息成功!");
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    out.write("OK");
    out.flush();
    out.close();
    return;
}

//判断是否添加的是教师信息----------------------------------------------------------------------------
String teacherMessage = request.getParameter("addTeacherMessage");
if (teacherMessage != null) {
    //把JSON转为对象,再把对象保存到数据库
    Teacher teacher = JSON.parseObject(teacherMessage, Teacher.class);
    IAdminMapper iAdminMapper = (IAdminMapper) Tools.getImp("IAdminMapper");
    ITeacherMapper iTeacherMapper = (ITeacherMapper) Tools.getImp("ITeacherMapper");

    //判断是否存在该账号
    Teacher teaId = iTeacherMapper.findAccount(teacher.getTeaAccount());
    if (teaId != null) {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        out.write("NO");
        out.flush();
        out.close();
        return;
    }
    iAdminMapper.addTeacher(teacher);
    System.out.println("添加教师信息成功!");
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    out.write("OK");
    out.flush();
    out.close();
    return;
}

  1. 在线考试
    学生在线考试功能是在线考试系统中最重要的功能之一。要确保学生在考试过程中可以方便、准确地完成考试,并及时了解自己的考试成绩和水平。系统演示如下图所示:
    在这里插入图片描述
    在这里插入图片描述
    部分核心代码:
String add_single_choice = request.getParameter("add_single_choice");
if (add_single_choice != null) {
    SingleChoice singleChoice = JSON.parseObject(add_single_choice, SingleChoice.class);
    iTestPaperMapper.addSingleChoice(singleChoice);
    out.write("succeed");
    out.flush();
    out.close();
    return;
}

String add_multiple_choice_question = request.getParameter("add_multiple_choice_question");
if (add_multiple_choice_question != null) {
    System.out.println("add_multiple_choice_question: " + add_multiple_choice_question);
    MultipleChoiceQuestion multipleChoiceQuestion = JSON.parseObject(add_multiple_choice_question, MultipleChoiceQuestion.class);
    iTestPaperMapper.addMultipleChoiceQuestion(multipleChoiceQuestion);
    out.write("succeed");
    out.flush();
    out.close();
    return;
}

String add_judge_question = request.getParameter("add_judge_question");
if (add_judge_question != null) {
    JudgeQuestion judgeQuestion = JSON.parseObject(add_judge_question, JudgeQuestion.class);
    iTestPaperMapper.addJudgeQuestion(judgeQuestion);
    out.write("succeed");
    out.flush();
    out.close();
    return;
}

  1. 老师新建试卷
    老师新建试题是在线考试系统中必不可少的功能之一,它可以帮助教师高效地创建和管理试题,并为学生提供更多样化和个性化的考试内容。该功能的设计需要考虑到试题类型、难度、标签和分类等多个因素,以满足教学和考试的实际需求。同时,系统还需要设置审核和管理机制,保证试题的质量和安全性。系统演示如下图所示:
    在这里插入图片描述
    在这里插入图片描述
    部分核心代码:
//查询每场的试卷信息
    String query_all_tpSet = request.getParameter("query_all_tpSet");
    if (query_all_tpSet != null) {
        StuLookTestPaperSet[] StuLookTestPaperSets = iTestPaperMapper.query_stu_all_tpSet(curStudent.getStuId());
        if (StuLookTestPaperSets == null || StuLookTestPaperSets.length == 0) {
            out.write("null");
            out.flush();
            out.close();
            return;
        }

        out.write(JSON.toJSONString(StuLookTestPaperSets));
        out.flush();
        out.close();
        return;
    }

    out.write("fail");
    out.flush();
    out.close();
}
//查询试卷标题
String query_not_correct_TP = request.getParameter("query_not_correct_TP");
if (query_not_correct_TP != null) {
    Student_test_paper[] student_test_papers = iTestPaperMapper.query_not_correct_TP(Integer.parseInt(query_not_correct_TP));
    if (student_test_papers.length == 0) {
        out.write("empty");
        out.flush();
        out.close();
        return;
    }

    out.write("" + student_test_papers[0].getStuId());
    out.flush();
    out.close();
    return;
}
String get_curTPId = request.getParameter("get_curTPId");
if (get_curTPId != null) {
    TestPaper curTestPaper = iTestPaperMapper.getCurTestPaper();
    if (curTestPaper == null) {
        out.write("empty");
        out.flush();
        out.close();
        return;
    }

    out.write("" + curTestPaper.getId());
    out.flush();
    out.close();
    return;
}

七、总结

    基于Java的在线考试系统是一个功能强大、灵活性高、易用性强的在线考试平台。该系统使用了Spring、SpringMVC和MyBatis等主流的开源框架,采用MVC设计模式进行架构,实现了丰富的功能和良好的用户体验。

本人承诺只做技术分享,永不收费。

V----------------->:专栏详情

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
开发语言:Jsp Java 服务器: Tomcat 5.0 数据库:sql server 数据库 =================系统简介=========================== (1) 用户类别:登录系统的身份定为二种,一是管理员(普通老师),二是学生,只有被授权的用户才可以使用本系统的资源。 (2) 权限管理:系统需要经过有效的身份验证可以登录。用户的身份不同,使用的系统资源也不同。考生只可以参加在线考试;管理员(普通教师)可以在线制作试卷,进行考生管理,添加学生信息、控制考试、成绩查询、试卷管理、题库管理等。 (3) 在线考试功能:考生输入准号证号登陆系统后,选择对应的试卷可进行考试。答题完毕后,可自动交卷,系统将自动评分,考生可同时获得考试成绩。 (4) 在线制作试卷:管理员(教师)可在线制作试卷,可设定试题的类型、难易程度、分值。 (5) 控制考试功能:可设定每次的考试时间,可禁止或允许考生参加考试,同时可查看考生的考试状态。 (6) 学生管理功能:可注册新增学生用户,同时查看学生的信息,也可设定学生的考试状态:允许或禁止考试。 (7) 考生成绩查询功能:提供考生各科目成绩的详细查询。 (8) 系统管理功能:管理员只可更改登陆密码,并可以控制考生是否能登录使用本系统、查询和添加科目的功能。 (9) 题库管理功能:管理员可以在线进行题库的制作,并可查询、编辑题库的相关内容。
摘 要 当前,信息化时代已经悄悄走进人们的生活,自动控制、无纸化自动办公、企业信息化、网上书店、网上娱乐等等都是信息时代的产物,可以说,二十一世纪是一个信息化的世界,人们将跟这二个字眼密不可分,随着信息化的潮流,我们的教育也开始了信息化,几年来关于教育信息化的教研论文不计其数,这说明教育走向信息化是一个必然的过程,那么基于B/S模式下的考试系统正是这种思想的一个重要的体现,教育的信息化必然会出现无纸化的、远程的考试系统,他的出现可以大大促进远程教育的长足发展,较大程度上减少了教育经费,真正体现出信息化时代的特色和优点。 建立一个安全稳定可靠的基于B/S模式下的考试系统,是当前信息化教育的必须,对信息化教育有着较大的促进作用,因为有远程的教育也就必须有远程的考试,没有考试的教育算不上完整的教育,本系统就是在这么一个大的前提下提出的。 系统包括了从组卷->考试->阅卷->试卷分析等一系列的过程,完成了一个正规考试的整个周期,是一个完整的可靠的网上考试系统。 第一章 开发简介(Development Introduction) 1.1本系统研究的目标和内容以及主要参考文献 研究目标:利用ASP网络编程技术和SQL SERVER 2000数据库技术实现B/S模式下的网上考试,主要完成题库维护、试卷生成、考试库维护、试卷分析等功能,以便形成一个完整的有机统一的考试系统。 研究内容: 1.题库维护:要求可以增加、修改、删除题库,并对科目、知识点做出相应的管理。 2.试卷生成:要求系统可以按照知识点、难度、科目、题型、题目数量、总分生成考试试卷,并设定考试时间、人员(按班级设定)。 3.考试控制:主要实现对考生考试时间、考生登录、考试答题数据提交的控制、以及考生个人信息的维护。 4.考生库维护:主要实现对考试年级、班级以及班级人员的管理与维护。 5.阅卷功能:主要实现对考生的客观题进行自动阅卷,并为教师提供一个很好的主观题阅卷界面。 6.试卷分析:利用asp结合VML技术实现对每次考试的试卷按班分析打印功能。 7.高级用户管理:主要实现对教师的管理。 7.系统管理:主要实现对系统日志的管理。 主要参考文献: 1.《ASP网络编程技术》 清华大学出版社 2.《SQL Server 2000编程员指南》 北京希望电子出版社 1.2 开发工具 ASP代码编写:UltraEdit 10.00C 图形图像处理:Photoshop 7.0.1 简体中文版 页面设计:Macromedia Dreamweaver MX、Microsoft FrontPage XP 数 据 库:SQL SERVER 2000 1.3程序的运行环境 硬件环境:服务器: PIII800以上+256M内存+10G以上硬盘+10/100M网卡以上。 软件环境: Windows 2003 Server+IIS5.5+IE5.0以上+SQL SERVER 2000。 第二章 系统程序设计(System Program Design) 2.1 Active Server Pages简介(ASP Brief Introduction) Active Server Pages (ASP) 是服务器端脚本环境,可用来创建交互式网页并建立强大的 Web 应用程序。当服务器接收到对 ASP 文件的请求时,它将处理包含在特定文件中的服务器端脚本,此文件用于构建发送给浏览器的网页。除服务器端脚本外,ASP 文件也可以包含 HTML和执行各种任务的 COM 组件调用。 2.2系统描述(System Description) 本系统采用ASP3.0编写,服务器端采用VBScript5.5脚本,客户端采用JavaScript编写,数据库使用微软公司的大型关系数据库SQL Server 2000企业版,同时,页面制作采用了FrontPage XP、Dreamweaver MX、Adobe Photoshop 7.0等软件。 系统包括:试卷生成→定时开始→考试控制→主观题阅卷→试卷分析等一系列符合考试环节的过程,形成了一个有机的考试系统,试烦琐的考试安排和试卷分析工作变得简单方便,适合各种考试类型,系统后台采用菜单管理,使用方便,容易上手。 2.3服务器主要运行环境配置(System Setting) 1、IIS 的简介、安装和使用 IIS是Internet 信息服务的简称,它是一种 Windows Web 服务,可以使用它非常轻松地在 Intranet 上发布信息。本网上商店程序使用IIS5.0版本。 安装步骤: (1)单击“开始”,单击“控制面板”,双击“添加或删除程序”启动“添加或删除程序”应用程序。 (2)在“添加或删除程序”对话框左侧的列中,单击“添加/删除 Windows 组件”。 (3)出现“Windows 组件向导”后,单击“下一步”。 (4)在“Windows 组件”列表中选中“Internet 信息服务”。 (5)放入Windows Advanced Server 2000光碟,单击“下一步”,即可完成安装。 打开 Internet 信息服务管理器: (1)从“开始”菜单,选择“设置”,然后选择“控制面板”。 (2)打开“管理工具”。 (3)打开“Internet 服务管理器”。 配置本网上商店系统: (1)在硬盘(E:)根目录建立文件夹shop,将本程序所有ASP文件、FIX文件、HTML文件、图片文件以及子文件夹复制到此文件夹下。 (2)在IIS中选择默认网站,并点击右键,选择属性,然后进行如图2-1配置。 其他选项选择默认即可基本达到调试和测试网上商店程序的所需的Web服务器系统要求,调试时在地址栏输入:http://www.bysj999.com/或者http://127.0.0.1/ 即可。 2、SQL Server 2000的简介和安装 SQL Server 2000是Microsoft公司推出的大型关系数据库,本数据库符合各种企业级的开发,同时适合B/S模式下的各种开发要求。数据库为用户提供友好的管理操作界面,使用户可以在本数据库平台上建立各种关系强大的应用数据库。 安装步骤: 1. 退出所有 Microsoft Windows® 应用程序。 2. 将 SQL Server 2000 光盘插入 CD-ROM 驱动器中。这将启动 SQL Server 2000 安装程序。如果安装程序没有自动启动,则运行光盘根目录中的 Autorun.exe 程序。 3. 单击"安装 SQL Server 2000 组件"。 4. 单击"Analysis Services"启动 Analysis Services 安装程序。 5. 在"欢迎"步骤中单击"下一步"按钮。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值