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

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

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

文章目录

  • 本人承诺只做技术分享,永不收费。
  • V----------------->:专栏详情
    • 一、背景
    • 二、系统简介
    • 三、项目技术栈
    • 四、系统角色及角色用例
    • 五、数据库设计
    • 六、系统演示及部分代码
    • 七、总结
  • 本人承诺只做技术分享,永不收费。
  • V----------------->:专栏详情

一、背景

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

二、系统简介

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

三、项目技术栈

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

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

四、系统角色及角色用例

  • 学生
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第1张图片
  • 老师
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第2张图片
  • 管理员
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第3张图片

五、数据库设计

  • 管理员表
    管理员表:记录管理员基本信息,包括管理员ID,管理员名称,管理员账号,管理员密码,管理员介绍。主键为:管理员ID。
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第4张图片
  • 解答题表
    解答题表:记录解答题基本信息,包括ID,题目,答案。主键为:ID。
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第5张图片
  • 判断题表
    判断题表:记录解答题的基本信息,包括ID,题目,答案。主键为:ID。
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第6张图片
  • 填空题表
    填空题表:记录填空题的基本信息,包括ID,题目,答案。主键为:ID。
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第7张图片
  • IP地址表
    IP地址表:记录用户登录的IP地址的基本信息,包括学生ID,老师ID,IP地址。主键为:学生ID,老师ID。
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第8张图片
    学生表
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第9张图片
    单选题表
    单选题表:记录单选题的基本信息,包括ID,题目,答案,选项。主键为:ID。
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第10张图片
    多选题表
    多选题表:记录多选题的基本信息,包括ID,题目,答案,选项。主键为:ID。
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第11张图片
    学生试卷表
    学生试卷表:记录学生的基本信息,包括学生ID,学生名称,学生账户,学生密码,学生介绍。主键为:学生ID。
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第12张图片
    老师表
    老师表:记录老师的基本信息,包括老师ID,老师名称,老师账户,老师密码,老师介绍。主键为:老师ID。
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第13张图片
    试卷题型分数表
    试卷题型分数表:记录试卷试题的基本信息,包括:ID,单选分数,多选题分数,判断题分数,填空题分数,解答题分数。主键为:ID。
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第14张图片
    系统E-R图
    用户表和用户角色表之间为一对多关系,一个用户可以拥有多个角色。
    角色表、角色权限表、权限表之间为多对多关系,一个角色可以拥有多个权限,一个权限也可以被多个角色所包含。
    题目表和试卷题目表之间为多对多关系,一个试卷可以包含多个题目,一个题目也可以被多个试卷所包含。
    试卷表和考试安排表之间为一对多的关系,一个考试可以包含多个试卷,而一个试卷只属于一个考试。
    学生考试记录表和试卷表、考试安排表、用户表之间为多对一的关系,一个学生可以参加多次考试,每次考试属于一个考试安排,考试安排包含了多个试卷,而学生记录了自己的考试成绩和相关信息。系统ER图如下所示:
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第15张图片

六、系统演示及部分代码

  1. 用户信息管理模块
    用户信息管理模块是供用户和管理员浏览和管理用户相关信息的模块,是一个基本的能够运行的软件程序最基本的模块,使得用户信息得以被很好的保存、使用和修改。用户信息管理系统演示如图所示。
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第16张图片
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第17张图片
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第18张图片
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第19张图片
    部分核心代码:
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. 在线考试
    学生在线考试功能是在线考试系统中最重要的功能之一。要确保学生在考试过程中可以方便、准确地完成考试,并及时了解自己的考试成绩和水平。系统演示如下图所示:
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第20张图片
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第21张图片
    部分核心代码:
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. 老师新建试卷
    老师新建试题是在线考试系统中必不可少的功能之一,它可以帮助教师高效地创建和管理试题,并为学生提供更多样化和个性化的考试内容。该功能的设计需要考虑到试题类型、难度、标签和分类等多个因素,以满足教学和考试的实际需求。同时,系统还需要设置审核和管理机制,保证试题的质量和安全性。系统演示如下图所示:
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第22张图片
    Java毕设-【在线考试系统】附源码/Java练手项目/Java毕业设计_第23张图片
    部分核心代码:
//查询每场的试卷信息
    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----------------->:专栏详情

你可能感兴趣的:(计算机毕业设计推荐,java,课程设计,数据库,html,css,javascript,jquery)