💓项目咨询获取源码联系v💓xiaowan1860💓
🚩如何选题?🍑 对于项目设计中如何选题、让题目的难度在可控范围,以及如何在选题过程以及整个毕设过程中如何与老师沟通,有疑问不清晰的可以联系我,免费提供咨询答疑;
🚭快速熟悉项目?🍑这个问题可能会困扰很多同学,要想短时间快速做出项目成品,需要有扎实的技术存储。如果你不具备这些条件,又想快速熟悉项目、顺利通过答辩,可以联系我,提供免费咨询答疑服务。欢迎大家点赞、收藏、关注、评论
目录
一、背景与意义
1、项目背景
网络化教育代表了教育改革的一个发展方向,已经成为现代教育的一个重要特征,并对教育的发展形成新的推动力。随着Internet/Intranet的迅速发展和广泛普及,网络考试系统成为现代教育技术未来发展方向之一。作为网络考试的一个子系统——网络阅卷子系统,也成为一个重要的研究领域。现代网络考试作为一种新的考试手段已经开始进入人们的生活,正在给传统教育模式带来新的变革,并对教育的发展形成新的推动力。网络阅卷子系统突破了传统考试方式的时空限制,使阅卷方式更为灵活,同时充分利用计算机进行自动阅卷功能,大大减轻了教师的工作量。
2、目的意义
现阶段,学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出卷,考生考试,人工阅卷,成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观、更加激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。为了适应新形势的发展,我们推出了这一系统,使其尽快在各类考试中发挥高效,便捷的作用,把老师从繁重的工作中解脱出来。
二、核心技术
2.1、MyBatis 的应用
MyBatis是一个基于Java的持久层框架,mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过 sqlSessionFactory拿到一个sqlSession, 再执行sql命令。
页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。
2.2、 B/S开发模式
伴随着Internet的迅速发展,计算机技术正在由基于C/S(client/ Server)模式的应用系统转变为基于B/S模式的应用系统。过去,网络软件的开发都采用C/S(client)模式,在这种模式下,主要的业务逻辑都集中于用户端程序,因此,必然导致以下问题:
系统安装、调试、维护和升级困难。由于用户端的硬件配置可能存在差异,软件环能各不相同,因此,在安装时,必须对每一个用户端分别进行配置,同样,在软件升级时也要对用户端分别处理。在整个系统中,业务逻辑和用户界面都集中到了用户端,必然会增加安全隐患。
B/S模式带来了巨大的好处:
开发成本及维护成本降低。由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的用户端只有浏览器,网络管理人员只需要做硬件维护。
良好的安全性能,防火墙技术可以保证后台数据库的安全性。所有的配置工作都集中在服务器端且所有用户端请求都是通过DBMS来访问数据库,从而大大减少了数据直接暴露的风险。
2.1、 java技术介绍
Java平台的出现在应用程序开发这一领域开创了一个新时代,它将推动下 一代Internet的进步。作为Microsoft .NET平台的一部分,java是一个革命性的编程框架,它实现了企业级Web应用程序的快速开发。它提供了最简便、最具有扩展能力的方式来开发、部署和运行可以将任何浏览器或设备作为目标的Web应用程序。实际上,这只是令java成为程序员创建Web应用程序的首选的众多特色中的一小部分。
与以前使用的技术相比,java使应用程序的开发工作简单得多,因此它在很大程度上提高了程序员的工作效率。java让程序员可以只编写最少量的代码便能够给Web应用程序提供更为丰富的功能。最好的一点则是java使程序员可以选择任何一种可用的编程语言。
除了常见的Web应用程序,利用java还可以创建其他的一些类型,这就使我们的应用程序的范围可以延伸到新的客户和业务合作伙伴。
对程序员来说,部署服务器应用程序一直是一件很痛苦的事。不过,有了java,程序员根本不必担心这个问题,因为java大大简化了部署过程。要部署Web应用程序,只要把它复制到Web服务器上就可以了。
除了提供了丰富的程序员这方面的经验,java还提供了丰富的用户经验。java Web应用程序比传统的ASP应用程序速度要快很多,因为java令我们可以使用经过编译的编程语言。因此,java应用程序不需要明确的编译步骤,结果便是执行得更快了。
在互联网发展过程中,java技术已经成为软件开发领域中使用最为普及的语言之一。这些语言虽然牺牲了一定的编程效率,但是为程序员提供了十分灵活方便的操作。对于使用java的用户来说,最妥善的解决方案无疑是快速开发,这样在操作简便的同时又可以使用底层平台的各种功能。
2.2、Maven框架
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
2.3、MySQL 数据库
MySQL数据库在旅游网站管理系统的数据存储方面展现出了诸多优势和亮点好处。它不仅能够高效地处理大量数据,提供稳定的运行环境,还能够保障数据的安全性和可靠性。同时,MySQL的灵活性和可扩展性也为旅游网站管理系统的未来发展提供了坚实的基础。
三、项目讲解演示视频
Java项目设计之SSM在线考试系统【源码+PPT+文档+包运行成功】
四、系统核心架构设计
4.1、功能架构设计
如图3-1所示,在本系统中主要阐述用户管理、考试管理、成绩管理、题目管理四个模:
(1)考试管理:实现选择课程,准备考试,开始考试,自动阅卷,显示考试成绩等。
(2)题目管理:实现试题库中试题的分类和增加,删除,以及答案的设置等。
(3)成绩管理:实现前台用户的成绩查询,后台管理员对成绩的查询。
(4)用户管理:实现用户注册、用户信息修改、用户查询功能。
4.2、总体设计思想
本系统是基于B/S架构下的多层结构应用系统。B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了用户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)[15]。
在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。推荐的分层式结构一般分为三层,从下至上分别为:数据访问(持久)层、业务逻辑层(或称为领域层)、表示层[16],如图3-2:
总的来说,采用分层结构的设计思想,可以让每个层由一组相关的类或组件构成,共同完成特定的功能。层与层之间存在自上而下的依赖关系,上层组件会依赖下层组件的API,而下层组件则不依赖于上层组件。例如:表述层依赖于业务逻辑层,而业务逻辑层依赖于数据库层。并且每个层对对上层公开API,但具体的实现细节对外透明。当某一层发生变化,只要API不变,不会影响其他层的实现。
在本系统中,使用开源的mysql数据库,持久层用到spring所集成的Hibernate技术,业务逻辑层用普通javabean实现,表述层运用基于struts的MVC设计模式(struts用来做C层,spring实现V层与C层的解耦以及C层与M层的解耦)。
五、系统功能截图
5.1、后台首页
5.2、试题管理
5.3、在线考试
5.4、回顾试卷
六、数据库设计
6.1、概念模型
在计算机当中数据库是这个系统的核心部分,对于数据库的管理我们必须具有严谨的操作心理,因为在系统的操作上可以对些数据进行收集、整理、储存、检查、更新等操作。所以说数据库在任何一个系统当中是必不可缺少的一部分。同时数据库的好坏也直接影响一个系统的质量和效率。
6.2、E-R图设计
在系统数据库里我们可以分为三个阶段的设计,具体包括用户、E-R图的模型和数据库的设计。在系统数据库里我们要对用户的需求和分析做一些收集以外,还要根据用的需求进行对系统设计做出设计的范围,从而来分析对系统的数据来进行分析。当我们进行建立e-r图的时候,首先要进行总体的设计,设计完以后才能进行相对转化模型的设计。对此进行一些调整和改善等措施的实施。具体的逻辑设计和转换模型是我们主要的研究对象。
6.2、数据库设计
DROP TABLE IF EXISTS `classinfo`;
CREATE TABLE `classinfo` (
`classId` int(11) NOT NULL AUTO_INCREMENT,
`className` varchar(50) NOT NULL,
`gradeId` int(11) NOT NULL,
`teacherId` int(11) DEFAULT NULL,
PRIMARY KEY (`classId`),
KEY `teacherId` (`teacherId`),
KEY `FK_Reference_1` (`gradeId`),
CONSTRAINT `FK_Reference_1` FOREIGN KEY (`gradeId`) REFERENCES `gradeinfo` (`gradeId`),
CONSTRAINT `classinfo_ibfk_1` FOREIGN KEY (`teacherId`) REFERENCES `teacherinfo` (`teacherId`)
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for courseinfo
-- ----------------------------
DROP TABLE IF EXISTS `courseinfo`;
CREATE TABLE `courseinfo` (
`courseId` int(11) NOT NULL AUTO_INCREMENT,
`courseName` varchar(50) NOT NULL,
`division` int(11) DEFAULT '0',
`gradeId` int(11) DEFAULT NULL,
PRIMARY KEY (`courseId`),
KEY `gradeId` (`gradeId`),
CONSTRAINT `courseinfo_ibfk_1` FOREIGN KEY (`gradeId`) REFERENCES `gradeinfo` (`gradeId`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for examchooseinfo
-- ----------------------------
DROP TABLE IF EXISTS `examchooseinfo`;
CREATE TABLE `examchooseinfo` (
`chooseId` int(11) NOT NULL AUTO_INCREMENT,
`studentId` int(11) NOT NULL,
`examPaperId` int(11) NOT NULL,
`subjectId` int(11) NOT NULL,
`chooseResult` varchar(500) NOT NULL,
`chooseError` varchar(3000) DEFAULT NULL COMMENT 'SQL有错误的情况',
PRIMARY KEY (`chooseId`),
KEY `FK_Reference_11` (`studentId`),
KEY `FK_Reference_12` (`examPaperId`),
KEY `FK_Reference_13` (`subjectId`),
CONSTRAINT `FK_Reference_11` FOREIGN KEY (`studentId`) REFERENCES `studentinfo` (`studentId`),
CONSTRAINT `FK_Reference_12` FOREIGN KEY (`examPaperId`) REFERENCES `exampaperinfo` (`examPaperId`),
CONSTRAINT `FK_Reference_13` FOREIGN KEY (`subjectId`) REFERENCES `subjectinfo` (`subjectId`)
) ENGINE=InnoDB AUTO_INCREMENT=132 DEFAULT CHARSET=utf8;
七、项目总结
此次通过设计网上考试系统,使我接触到许多基于java语言的WEB网络开发方面的知识,包括HTML语言,CSS级联样式表,用户端开发语言JavaScript,MVC分层体系结构,支持MVC架构的struts框架,开源服务器Tomcat以及,mysql数据库,服务器端开发语言JSP等,这些语言(或技术)扩展了我的知识面,也使我在制作的过程中对它们的特点,应用方向等有了基本的了解,并在实际的应用中大致明白如何将它们融合运用,以开发出界面美观,功能强大的Web站点来。
通过本次亲自动手设计系统,我更加深刻的了解系统开发的全过程,从中我熟练掌握了B/S结构Web应用软件设计的思想及其开发的全过程。首先要进行系统的需求分析,分析系统要达到什么功能,系统要划分为几个模块来设计,系统的具体功能应当如何去实现;分析完之后,考虑其涉及到的计算机专业知识,把问题细化,把大的问题划分为小的问题,然后逐个进行解决。毕业设计开始阶段,由于我们没有软件架构的设计经验,所以在项目的业务流程和软件的开发规范上犯了很的错误,所以在后期的组装过程变的非常的困难。
八、系统亮点与收获
这次的系统开发中,我把之前所学习到的mysql数据库java技术都应用了出来,在这两者的配合下,让该系统的研发有了很大的提高。这次的毕业设计是让我对所学知识的一个总结,让我知道自己的长处和短处,然后取长补短。这是一次让我应用所学知识来解决现实问题的一次机会,锻炼了我的实践能力。在这其中,我虽遇到了重重困难,但是通过学习和探讨,最后完成了该次毕业设计,这次开发不仅是对我大脑的开发,也是对我动手能力的锻炼,让我明白了只要努力就没有过不去的坎儿。
项目收获:
- 掌握了网站开发的基本流程,设计整个网站的功能模块图;
- 掌握了如何搭建和配置一个Tomcat服务器;
- 掌握了使用Java编程,实现对信息的显示、修改、删除和添加等;
由于个人能力有限以及实践经验欠缺,系统基本满足在线考试的功能需求,本系统不可避免有不足之处,如一些系统功能过于简单,所以系统的功能还算不上很完善。希望老师和同学能给予建议和指导。