springboot高校排课系统的设计与实现      

摘要

本文旨在探讨基于SpringBoot框架的高校排课系统的设计与实现。随着教育信息化的发展,传统的手工排课方式已无法满足高校复杂的教学管理需求。因此,开发一个高效、智能的排课系统显得尤为重要。本文首先分析了高校排课系统的背景和现状,明确了系统的目标和功能需求。随后,采用SpringBoot框架作为后端开发技术,结合前端技术和数据库技术,设计并实现了一个功能完善的高校排课系统。系统主要包括课程信息教室管理、选课信息排课信息等核心模块,实现了课程资源的在线管理、学生选课的自助操作以及教师课表的智能生成等功能。本文的研究不仅为高校排课系统的设计和实现提供了有益的参考,也为推动教育信息化进程做出了贡献。

关键词  SpringBoot高校排课系统;MySQL

Abstract

This article aims to explore the design and implementation of a university course scheduling system based on the SpringBoot framework. With the development of educational informatization, traditional manual scheduling methods are no longer able to meet the complex teaching management needs of universities. Therefore, developing an efficient and intelligent scheduling system is particularly important. This article first analyzes the background and current situation of the university course scheduling system, clarifying the system's goals and functional requirements. Subsequently, a fully functional university course scheduling system was designed and implemented using the SpringBoot framework as the backend development technology, combined with front-end technology and database technology. The system mainly includes core modules such as course information, classroom management, course selection information, and scheduling information, which realize online management of course resources, self-service operation of student course selection, and intelligent generation of teacher schedules. This study not only provides useful references for the design and implementation of university scheduling systems, but also contributes to promoting the process of educational informatization.

Keywords SpringBoot; University course scheduling system; MySQL

目录

1 绪论

1.1 研究背景

1.2研究意义

1.3国内外研究现状

2 高校排课系统技术分析

2.1 MySQL描述

2.2 B/S结构

2.3 spring boot框架介绍

2.4 Java描述

3 高校排课系统需求分析

3.1 可行性分析

3.1.1 技术可行性分析

3.1.2 经济可行性分析

3.1.3 操作可行性分析

3.2需求分析

3.3 功能需求分析

3.4功能模块设计

3.4.1系统前端界面

3.4.2系统后端界面

3.5 系统流程分析

3.5.1系统开发流程

3.5.2 用户登录流程

3.5.3 系统操作流程

3.5.4 添加信息流程

3.5.5 修改信息流程

3.5.6 删除信息流程

4 高校排课系统概要设计

4.1系统功能结构设计

4.2系统数据库设计

4.2.1数据库概念结构设计

4.2.2数据库逻辑结构设计

5 高校排课系统详细设计与实现

5.1学生用户功能模块

5.1.1 前台首页界面

5.1.2注册界面

5.1.3登录界面

5.1.4 课程信息界面

5.1.5 个人中心界面

5.2教师用户功能模块

5.2.1 课程信息管理界面

5.2.2 选课信息管理界面

5.3管理员功能模块

5.3.1公共管理界面

5.3.2作业信息管理界面

5.3.3咨询信息管理界面

5.3.4排课信息管理界面

5.3.5权限管理界面

6系统的测试

6.1测试的目的

6.2 系统测试用例

6.3 系统测试结果

7 结论

参考文献

致谢

1 绪论

1.1研究背景

随着信息技术的飞速发展和“互联网+”时代的到来,高校教学管理正逐步向信息化、智能化方向转型。排课作为高校教学管理的核心环节,直接关系到教学秩序的稳定和教学质量的提升。然而,传统的排课方式往往依赖于人工操作,存在排课效率低、资源分配不均、冲突检测不准确等问题,已经无法满足现代高校复杂多变的教学需求[1]。具体来说,高校课程设置多样化、学生规模扩大化、教室资源有限化等因素,使得排课工作变得越来越复杂和繁琐。传统的排课方式不仅耗时耗力,而且容易出现排课冲突和错误,给学生选课和教师授课带来了很大的困扰[2]。因此,迫切需要开发一种高效、智能、自动化的排课系统,以提高排课效率、优化资源配置、确保教学秩序的稳定。SpringBoot框架以其快速开发、性能稳定、易于扩展等特点,成为构建现代化排课系统的首选技术。通过运用SpringBoot框架,可以开发出具有高效性、易用性、可扩展性的排课系统,实现课程资源的自动分配、冲突检测、选课管理等功能,从而满足高校复杂多变的教学需求,提高教学管理的水平和效率。

1.2研究意义

1提高排课选课的效率和准确性:通过算法优化和智能排课技术,可以实现课程资源的自动分配和冲突检测,避免人工排课选课过程中可能出现的错误和遗漏。

2促进教学资源的公平分配:在线选课和实时更新选课信息可以确保每位学生都有平等的机会选择自己感兴趣的课程和优秀的教师资源。

3提升用户体验和服务水平[3]:对于教师而言,系统可以提供更加便捷的课程管理和学生管理功能。对于学生而言,系统可以提供更加全面和及时的课程信息和选课服务,包括课程安排、教师信息、教室地点等,方便学生制定合理的学习计划和安排。

4推动高校信息化和智能化发展:该系统的成功实施可以为其他高校或地区的排课选课系统建设提供经验和借鉴,推动整个高等教育行业的信息化和智能化发展。

1.3国内外研究现状

在国内,随着教育信息化建设的不断推进和高校教学规模的不断扩大,排课选课系统已经成为高校教学管理的重要工具之一。一些知名高校通过自主研发或合作开发的方式,构建了功能丰富、界面友好、操作便捷的排课选课系统[5]。这些系统不仅实现了课程资源的在线管理、学生选课的自助操作以及教师课表的智能生成等基本功能,还支持成绩查询、教学评价等高级功能,极大地提升了高校教学管理的信息化水平和服务能力[6]。然而,整体来看,国内排课选课系统仍存在一些问题,如功能单一、智能化程度不高、数据安全保障不足等,特别是在一些中小城市和地区,由于缺乏技术和资金支持,排课选课系统的发展相对滞后。

在国外,特别是在一些发达国家或地区,高校排课选课系统的应用已经相当成熟和普及。这些系统通常具备更加先进的技术和更加完善的功能,如支持多语言、提供个性化的选课推荐、实现与各类教学管理系统的无缝对接等[7]。同时,一些国外的排课选课系统还引入了云计算、物联网等新兴技术,通过构建智能化的教学环境和管理平台,为高校教学管理提供更加全面、高效的服务支持。此外,国外在高校排课选课系统的信息安全和隐私保护方面也更加注重,采用了先进的加密技术、数据备份和恢复措施等,确保教学管理数据的安全和可靠[8]

综上所述,国内外在高校排课选课系统的研究和应用方面已经取得了一定的成果,但仍有发展空间和改进的地方。国内系统需要进一步提升智能化水平、完善功能和加强数据安全保障;而国外系统则可以继续探索新技术和新理念的应用,以提供更加优质的教学管理服务。

2 高校排课系统技术分析

2.1 MySQL描述

现在MySQL数据库在网络上它可以支撑许多个用户,而且也可以适应客服机和服务器的部署或者配置等,我们这里的服务器和客户机其实就是一种软件上的概念,并且我们使用的计算机硬件也与他们不存在一一对应的关系。

MySQL是一款非常流行的关系型数据库管理系统,它的出现一直都是佼佼者,它不仅功能非常强大,而且使用起来非常方便,并且MySQL的跨平台能力也很好,软件开发人员非常喜欢它的这些强大的优点。不同于其他关系型数据库,对于数据库的管理它有着自己的一套方案,通过对用户设定相应的权限和角色来达到对数据库的管理。由此可见,MySQL是一个能够适用于吞吐量高,可靠性高,效率高的一款数据库管理软件。

优点一:MySQL中对于不同身份的用户都设定其不同的权限来完成不同的业务逻辑,这使得MySQL在安全和完整性远远超出了其他关系型数据库。

优点二:对于那些动画、图形和声音的数据类型MySQL也可以支持,这说明多数据类型MySQL也是可以支持的。

优点三:MySQL还可以做到多个平台的开发,软件开发的多种编程语言都可以实现对MySQL数据库的操作。

2.2 B/S结构

在系统的开发上采用了B/S结构,在B/S结构中,统一采用浏览器,而不需要去开发任何的用户界面,Web浏览器向处理它的Web服务器发送请求,并一步一步地将处理结果返回给客户端。B/S结构主要采用了各种脚本语言和ActiveX技术,降低了系统的开发难度并简化了系统维护以及使用。

B/S结构有如下特点:B/S结构建立在广域网上,不需要专门为其配置硬件环境,比C/S结构的适应范围更强;由于其基于广域网,所以其对安全的控制能力相对较弱;B/S的多种结构要求构造相对独立的函数,这样才能可以更好地重用;B/S结构组成简单,便于对个别构件进行更换,降低了系统的维护成本B/S信息流向与C/S不同,B/S信息流向可变化。

2.3 spring boot框架介绍

Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。

2.4 Java描述

Java是一种平台性计算机语言技术,主要包括两部分:Java虚拟机(Java Virtual Machine,JVM)和Java API(Application Program Interface,应用接口编程) 。

个人对两种语言深入理解:C语言更多的是创造工具,而Java更多的是使用工具。我们知道Java很多的底层实现其实是通过C语言来实现的,所以更能看出这一点。在使用Java的过程中,我们需要会使用API文档,可以将其看做是Java的使用说明。Java面向对象的特性,使其有很多封装好的对象,在使用时,我们只要知道对象的行为(也是对象封装的方法),在这里要注意方法是静态方法还是常规方法,因为调用时,差距很大。未来肯定会有比Java更加人性化,更加容易开发的编程语言,但是肯定不可能完全迥异于Java语言,俗话说“他山之石,可以攻玉”,学好Java也可以方便我们更好的学习其它语言。

3 高校排课系统需求分析

系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的挖掘,如果分析的准确可以精准的解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。

3.1 可行性分析

系统可行行分析是对系统对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及操作层面的可行性上进行分析,如果三个层面度通过,我们则认为系统是比较可行的。

3.1.1 技术可行性分析

从技术角度来看,高校排课系统的设计与实现是完全可行的。现代软件开发技术,特别是SpringBoot框架,提供了强大的后端支持,能够高效地处理复杂的排课逻辑和数据处理需求。前端技术如Vue.js等,则能为用户提供直观、易用的界面体验。此外,数据库技术如MySQL,可以安全、高效地存储和管理大量的课程、学生和教师数据。因此,从技术层面来看,实现一个功能完善、性能稳定的高校排课系统是完全可行的。

3.1.2 经济可行性分析

经济可行性方面,高校排课系统的开发成本相对较低,但潜在的经济效益和社会效益却非常显著。一方面,系统的自动化和智能化可以大大提高排课效率,减少人力成本;另一方面,系统提供的在线选课、课程查询等功能可以极大地提升用户体验,增强学校的服务能力和竞争力。此外,系统的长期运行和维护成本也相对较低,因为一旦系统开发完成,后续的更新和维护工作可以通过模块化设计进行,大大降低了维护成本。因此,从经济角度来看,高校排课系统的设计与实现是可行的。。

3.1.3 操作可行性分析

操作可行性方面,高校排课系统的设计应充分考虑到用户的操作习惯和实际需求。系统界面应简洁明了,操作流程应直观易懂,确保用户能够轻松上手并快速完成排课、选课等操作。此外,系统还应提供完善的帮助文档和在线支持服务,以便用户在使用过程中遇到问题时能够及时获得帮助。因此,从操作角度来看,高校排课系统的设计应充分考虑用户体验和操作便捷性,确保系统在实际应用中具有高度的可操作性。

3.2需求分析

本高校排课系统的设计主要是针对三种用户进行使用,包括教师用户、学生用户和管理员,角色功能如下:

学生用户:
(1)注册登录:用户通过注册登录系统,可通过点击头像中我的账户,对个人信息进行增删改查。比如个人资料、头像和密码修改。

  1. 公告信息:点击可查看网站公告、关于我们、联系方式、网站介绍。 
    (3)课程信息:用户点击可查看课程信息列表。同时可对课程进行点赞、收藏、咨询、选课和评论操作。
  2. 课程资料:用户点击可查看课程资料列表。同时可对课程资料进行点赞、收藏和评论操作。
  3. 校园资讯:用户点击可查看校园资讯列表。同时可对校园资讯进行点赞、收藏和评论操作。
  4. 个人中心:用户点击头像可查看“个人中心”,包括个人首页、选课信息、成绩信息、咨询信息、评论管理、退课信息、作业信息和收藏。
    教师用户:
    (1)注册登录:用户通过注册登录系统,可通过点击头像中我的账户,对个人信息进行增删改查。比如个人资料、头像和密码修改。
    (2)课程信息:用户点击可查看课程信息列表,也可以填写课程详情、图片等信息添加课程信息。

(3)选课信息:用户可以查看选课信息列表详情,点击成绩记录可以录入学生的课程成绩和成绩评级。

(4)成绩信息:用户可以查看学生成绩信息列表详情。

(5)退课信息:用户可以查看学生退课信息列表详情。

(6)课程资料:用户可以查看课程资料列表详情,也可以新增课程资料信息。

(7)作业信息:用户可以查看作业信息列表详情,也可以新增作业信息。

(8)咨询信息:用户可以查看咨询信息列表详情,也可以对学生的咨询进行回复。

(9)排课信息:用户可以查看排课信息列表详情
管理员:
(1)登录:管理员的账号是在数据列表中直接设置生成的,不需要进行注册,可直接输入账号密码登录,同时可对管理员资料进行增删改查。
(2)后台首页:管理员点击可查看成绩数据统计图。
(3)用户管理:管理员点击可查看管理员、教师用户和学生用户;同时可对用户管理进行增删改查。

(4)课程信息管理:管理员点击可查看课程信息列表,同时可对课程信息进行增删改查。
(5)班级信息管理:管理员点击可查看班级信息列表,同时可对班级信息进行增删改查。
(6)选课信息管理:管理员点击可查看课程信息列表,同时可对课程信息进行增删改查。
(7)教室信息管理:管理员点击可查看教室信息列表。
(8)成绩信息管理:管理员点击可查看学生成绩列表。

(9)退课信息管理:管理员点击可查看学生退课信息列表。

(10)课程资料管理:管理员点击可查看课程资料列表,同时可对课程资料进行增删改查。

(11)作业信息管理:管理员点击可查看作业信息列表,同时可对作业信息进行增删改查。

(12)咨询信息管理:管理员点击可查看咨询信息列表,可以对用户的咨询进行审核、回复。

(13)排课信息管理:管理员点击可查看排课信息列表,同时可对排课信息进行增删改查。
(14)公共管理:当管理员点击“公共管理”时,可查看轮播图; 如需添加新的轮播图,点击右侧“添加”按钮,上传图片,输入标题,点击“确认”按钮进行添加;同时可对轮播图进行增删改查。
(15)资讯管理:管理员可以对新闻列表和分类列表进行增删改查。

(16)权限管理:管理员可以对权限列表进行编辑,管理教师用户、学生用户的权限。

3.3 功能需求分析

系统的功能需求方面主要是从系统的安全性、存储性、可靠性、易学性、稳定性等方面进行分析:

(1)安全性:系统的安全问题是开发者首先要考虑的,如果系统存在安全隐患,可能使得用户个人信息被泄露,给用户带来困扰,造成损失。

(2)储存性:因为用户使用的关于电子产品在线销售的网站,会员用户多,而且登录后要查询各种电子产品信息,那就需要一个强大的数据库来进行数据的存储,对数据库的要求是非常严格的,本系统选用的是MYSQL数据库,MYSQL的运行速度很快,执行命令的速度也非常快,而且体积小。

(3)可靠性:可靠性指的是用户在进行电子产品信息查询、评论以及购买的时候,能够按照用户的指示进行显示信息,如果用户点击查询电子产品详细信息,显示出来的是不可购买的信息,那就违背用户的初衷。

(4)易学性:系统的开发面向对象学历不尽相同,所有在开发的时候要考虑系统操作应该简单,不需要进行任何学习、培训,只能上网的用户就可以操作。

(5)稳定性:系统在运行方面要很稳定,系统的界面、字体要清楚,没有失真现象,给用户以良好的体验。

(6)可拓展性:本高校排课系统的功能还有待完善,因此系统要有很好的拓展性,方便后期功能更新维护。

3.4功能模块设计

3.4.1系统前端界面

学生用户用例图如图3-1所示

3-1 高校排课系统学生用户用例图

教师用户用例图如图3-2所示

    3-2 高校排课系统教师用户用例图

3.4.2系统后端界面

后台是管理员才能操作的,后台管理员用例图如图3-3所示。

3-3高校排课系统后台管理员用户用例图

3.5 系统流程分析

3.5.1系统开发流程

高校排课系统的设计与实现开发时,首先进行需求分析,进而对系统进行总体的设计规划,设计系统功能模块,数据库的选择等,本系统的开发流程如图3-4所示。

3-4系统开发流程图

3.5.2 用户登录流程

为了保证系统的安全性,要使用本系统对系统信息进行管理,必须先登陆到系统中。如图3-5所示。

3-5 登录流程图

3.5.3 系统操作流程

用户打开并进入系统后,会先显示登录界面,输入正确的用户名和密码,系统自动检测信息,若信息无误,则用户会进入系统功能界面,进行操作,否则会提示错误无法登录,操作流程如图3-6所示。

3-6 系统操作流程图

3.5.4 添加信息流程

管理员可以对公告信息等进行信息的添加,用户可以对自己权限内的信息进行添加,输入信息后,系统会自行验证输入的信息和数据,若信息正确,会将其添加到数据库内,若信息有误,则会提示重新输入信息,添加信息流程如图3-7所示。

3-7 添加信息流程图

3.5.5 修改信息流程

管理员可以对公告信息等进行的修改,用户可以对自己权限内的信息进行修改,首先进入修改信息界面,输入修改信息数据,系统进行数据的判断验证,修改信息合法则修改成功,信息更新至数据库,信息不合法则修改失败,重新输入。修改信息流程图如图3-8所示。

3-8 修改信息流程图

3.5.6 删除信息流程

管理员可以对公告信息、申报信息等进行信息的删除,对要删除的信息进行选中后,点击删除按钮,系统会询问是否确定,若点击确定,则系统会删除掉选中的信息,并在数据库内对信息进行删除,删除信息流程图如图3-9所示。

3-9 删除信息流程图

4 高校排课系统概要设计

4.1系统功能结构设计

系统在结构上的设计至关重要,要考虑周全,设计全面,一个完善的结构体系,能够满足用户在使用时的各种需求,这样会让提高程序的使用率,保证程序被长久的利用。在设计高校排课系统的结构时,也列入重点,采用模块化的方法来进行设计,即首先将大模块确定下来,再慢慢的将大模块进行补充完善,向下分支出小模块,一起共同组成的系统的结构体系,下图是该高校排课系统的结构设计图,直观明了的可以看出本项目程序的功能。

高校排课系统功能结构图如图4-1所示。

4-1 高校排课系统功能结构图

4.2系统数据库设计

数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。

4.2.1数据库概念结构设计

在数据库概念模型设计的时候,一般都采用E-R实体图进行展示,在实体图中可以展示出数据库表中的所有字段名称。下面是整个SpringBoot高校排课系统中主要的数据库表总E-R实体关系图。

4-2 系统总E-R关系图

4.2.2数据库逻辑结构设计

在数据库表中我们会看到系统的表名、主键、外键等信息,我们通过数据库表的主键、外键把每个表关联起来,然后在界面中展示,本高校排课系统的主要的数据库表如下:

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

标题:[0,125]用于文章和html的title标签中

3

type

varchar

64

0

N

N

0

文章分类:[0,1000]用来搜索指定类型的文章

4

hits

int

10

0

N

N

0

点击数:[0,1000000000]访问这篇文章的人次

5

praise_len

int

10

0

N

N

0

点赞数

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

8

source

varchar

255

0

Y

N

来源:[0,255]文章的出处

9

url

varchar

255

0

Y

N

来源地址:[0,255]用于跳转到发布该文章的网站

10

tag

varchar

255

0

Y

N

标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开

11

content

longtext

2147483647

0

Y

N

正文:文章的主体内容

12

img

varchar

255

0

Y

N

封面图

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]决定分类显示的先后顺序

3

name

varchar

16

0

N

N

分类名称:[2,16]

4

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

5

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

6

icon

text

65535

0

Y

N

分类图标:

7

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

parent

varchar

64

0

Y

N

父级菜单

8

parent_sort

int

10

0

N

N

0

父级菜单排序

9

position

varchar

32

0

Y

N

位置:

10

mode

varchar

32

0

N

N

_blank

跳转方式:

11

add

tinyint

3

0

N

N

1

是否可增加:

12

del

tinyint

3

0

N

N

1

是否可删除:

13

set

tinyint

3

0

N

N

1

是否可修改:

14

get

tinyint

3

0

N

N

1

是否可查看:

15

field_add

text

65535

0

Y

N

添加字段:

16

field_set

text

65535

0

Y

N

修改字段:

17

field_get

text

65535

0

Y

N

查询字段:

18

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

19

table_nav

varchar

500

0

Y

N

跨表导航:

20

option

text

65535

0

Y

N

配置:

21

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

22

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表classroom_information (教室信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

classroom_information_id

int

10

0

N

Y

教室信息ID

2

classroom_number

varchar

64

0

Y

N

教室编号

3

classroom_name

varchar

64

0

Y

N

教室名称

4

teaching_building

varchar

64

0

Y

N

教学楼栋

5

number_of_seats

double

9

2

Y

N

0.00

座位数量

6

teaching_equipment

text

65535

0

Y

N

教学设备

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表class_information (班级信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

class_information_id

int

10

0

N

Y

班级信息ID

2

college_name

varchar

64

0

Y

N

学院名称

3

professional_name

varchar

64

0

Y

N

专业名称

4

class_name

varchar

64

0

Y

N

班级名称

5

number_of_students

double

9

2

Y

N

0.00

学生人数

6

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表code_token

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

code_token_id

int

10

0

N

Y

2

token

varchar

255

0

Y

N

3

code

varchar

255

0

Y

N

验证码

4

expire_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

失效时间

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表consultation_information (咨询信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

consultation_information_id

int

10

0

N

Y

咨询信息ID

2

course_name

varchar

64

0

Y

N

课程名称

3

professional_name

varchar

64

0

Y

N

专业名称

4

course_nature

varchar

64

0

Y

N

课程性质

5

teacher_users

int

10

0

Y

N

0

教师用户

6

teachers_name

varchar

64

0

Y

N

教师姓名

7

student_users

int

10

0

Y

N

0

学生用户

8

student_name

varchar

64

0

Y

N

学生姓名

9

consultation_content

text

65535

0

Y

N

咨询内容

10

reply_content

text

65535

0

Y

N

回复内容

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

13

source_table

varchar

255

0

Y

N

来源表

14

source_id

int

10

0

Y

N

来源ID

15

source_user_id

int

10

0

Y

N

来源用户

表course_information (课程信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_information_id

int

10

0

N

Y

课程信息ID

2

course_name

varchar

64

0

N

N

课程名称

3

professional_name

varchar

64

0

Y

N

专业名称

4

course_nature

varchar

64

0

Y

N

课程性质

5

cover_photo

varchar

255

0

Y

N

封面图片

6

teacher_users

int

10

0

Y

N

0

教师用户

7

teachers_name

varchar

64

0

Y

N

教师姓名

8

class_location

varchar

64

0

Y

N

上课地点

9

course_duration

varchar

64

0

Y

N

课程时长

10

course_credit

varchar

64

0

Y

N

课程学分

11

remaining_quantity

double

9

2

Y

N

0.00

剩余数量

12

teaching_program

text

65535

0

Y

N

教学大纲

13

course_introduction

longtext

2147483647

0

Y

N

课程简介

14

hits

int

10

0

N

N

0

点击数

15

praise_len

int

10

0

N

N

0

点赞数

16

collect_len

int

10

0

N

N

0

收藏数

17

comment_len

int

10

0

N

N

0

评论数

18

examine_state

varchar

16

0

N

N

未审核

审核状态

19

course_selection_information_limit_times

int

10

0

N

N

1

选课限制次数

20

consultation_information_limit_times

int

10

0

N

N

0

咨询限制次数

21

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

22

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表course_materials (课程资料)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_materials_id

int

10

0

N

Y

课程资料ID

2

course_name

varchar

64

0

Y

N

课程名称

3

professional_name

varchar

64

0

Y

N

专业名称

4

cover_photo

varchar

255

0

Y

N

封面图片

5

teacher_users

int

10

0

Y

N

0

教师用户

6

teachers_name

varchar

64

0

Y

N

教师姓名

7

course_attachments

varchar

255

0

Y

N

课程附件

8

release_date

date

10

0

Y

N

发布日期

9

course_details

longtext

2147483647

0

Y

N

课程详情

10

hits

int

10

0

N

N

0

点击数

11

praise_len

int

10

0

N

N

0

点赞数

12

collect_len

int

10

0

N

N

0

收藏数

13

comment_len

int

10

0

N

N

0

评论数

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表course_scheduling_information (排课信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_scheduling_information_id

int

10

0

N

Y

排课信息ID

2

schedule_name

varchar

64

0

Y

N

课表名称

3

classroom_scheduling

varchar

64

0

Y

N

排课教室

4

scheduling_teacher

varchar

64

0

Y

N

排课教师

5

remarks_information

text

65535

0

Y

N

备注信息

6

scheduling_number

int

10

0

N

N

1

单日最多排次数

7

scheduling_period

enum

1

0

N

N

1

周期

8

scheduling_date_options

text

65535

0

Y

N

时间设置

9

timetable

text

65535

0

Y

N

排期表

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表course_selection_information (选课信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_selection_information_id

int

10

0

N

Y

选课信息ID

2

course_name

varchar

64

0

Y

N

课程名称

3

professional_name

varchar

64

0

Y

N

专业名称

4

course_nature

varchar

64

0

Y

N

课程性质

5

teacher_users

int

10

0

Y

N

0

教师用户

6

teachers_name

varchar

64

0

Y

N

教师姓名

7

student_users

int

10

0

Y

N

0

学生用户

8

number_of_dropouts

varchar

64

0

Y

N

学生姓名

9

number_of_electors

varchar

64

0

Y

N

选课人数

10

course_selection_date

date

10

0

Y

N

选课日期

11

course_selection_notes

text

65535

0

Y

N

选课备注

12

score_information_limit_times

int

10

0

N

N

0

记录成绩限制次数

13

withdrawal_information_limit_times

int

10

0

N

N

0

退课限制次数

14

homework_information_limit_times

int

10

0

N

N

0

发布作业限制次数

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

17

source_table

varchar

255

0

Y

N

来源表

18

source_id

int

10

0

Y

N

来源ID

19

source_user_id

int

10

0

Y

N

来源用户

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表homework_information (作业信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

homework_information_id

int

10

0

N

Y

作业信息ID

2

course_name

varchar

64

0

Y

N

课程名称

3

professional_name

varchar

64

0

Y

N

专业名称

4

teacher_users

int

10

0

Y

N

0

教师用户

5

student_users

int

10

0

Y

N

0

学生用户

6

student_name

varchar

64

0

Y

N

学生姓名

7

homework_attachment

varchar

255

0

Y

N

作业附件

8

release_date

date

10

0

Y

N

发布日期

9

remarks_information

text

65535

0

Y

N

备注信息

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

12

source_table

varchar

255

0

Y

N

来源表

13

source_id

int

10

0

Y

N

来源ID

14

source_user_id

int

10

0

Y

N

来源用户

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表schedule (日程管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

schedule_id

smallint

5

0

N

Y

日程ID:[0,32767]

2

content

varchar

255

0

Y

N

日程内容

3

scheduled_time

datetime

19

0

Y

N

计划时间

4

user_id

int

10

0

N

N

用户id

5

create_time

datetime

19

0

Y

N

创建时间

6

update_time

datetime

19

0

Y

N

更新时间

表score (评分)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

score_id

int

10

0

N

Y

评分ID:

2

user_id

int

10

0

N

N

0

评分人:

3

nickname

varchar

64

0

Y

N

昵称:

4

score_num

double

5

2

N

N

0.00

评分:

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

source_table

varchar

255

0

Y

N

来源表:

8

source_field

varchar

255

0

Y

N

来源字段:

9

source_id

int

10

0

N

N

0

来源ID:

表score_information (成绩信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

score_information_id

int

10

0

N

Y

成绩信息ID

2

course_name

varchar

64

0

Y

N

课程名称

3

professional_name

varchar

64

0

Y

N

专业名称

4

teacher_users

int

10

0

Y

N

0

教师用户

5

student_users

int

10

0

Y

N

0

学生用户

6

student_name

varchar

64

0

Y

N

学生姓名

7

score_score

double

9

2

Y

N

0.00

成绩分数

8

score_rating

varchar

64

0

Y

N

成绩评级

9

teachers_comments

text

65535

0

Y

N

教师评语

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

12

source_table

varchar

255

0

Y

N

来源表

13

source_id

int

10

0

Y

N

来源ID

14

source_user_id

int

10

0

Y

N

来源用户

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表student_users (学生用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

student_users_id

int

10

0

N

Y

学生用户ID

2

student_id

varchar

64

0

Y

N

学生学号

3

student_name

varchar

64

0

Y

N

学生姓名

4

student_age

varchar

64

0

Y

N

学生年龄

5

student_gender

varchar

64

0

Y

N

学生性别

6

class_name

varchar

64

0

Y

N

班级名称

7

examine_state

varchar

16

0

N

N

已通过

审核状态

8

user_id

int

10

0

N

N

0

用户ID

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表teacher_users (教师用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

teacher_users_id

int

10

0

N

Y

教师用户ID

2

teacher_id

varchar

64

0

Y

N

教师工号

3

teachers_name

varchar

64

0

Y

N

教师姓名

4

teachers_age

varchar

64

0

Y

N

教师年龄

5

teacher_gender

varchar

64

0

Y

N

教师性别

6

university_one_is_graduated_from

varchar

64

0

Y

N

毕业院校

7

contact_information

varchar

16

0

Y

N

联系方式

8

teachers_educational_background

varchar

64

0

Y

N

教师学历

9

date_of_birth

date

10

0

Y

N

出生日期

10

examine_state

varchar

16

0

N

N

已通过

审核状态

11

user_id

int

10

0

N

N

0

用户ID

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

int

10

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表withdrawal_information (退课信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

withdrawal_information_id

int

10

0

N

Y

退课信息ID

2

course_name

varchar

64

0

Y

N

课程名称

3

professional_name

varchar

64

0

Y

N

专业名称

4

course_nature

varchar

64

0

Y

N

课程性质

5

teacher_users

int

10

0

Y

N

0

教师用户

6

student_users

int

10

0

Y

N

0

学生用户

7

student_name

varchar

64

0

Y

N

学生姓名

8

number_of_dropouts

varchar

64

0

Y

N

退课人数

9

reason_for_withdrawal

text

65535

0

Y

N

退课原因

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

12

source_table

varchar

255

0

Y

N

来源表

13

source_id

int

10

0

Y

N

来源ID

14

source_user_id

int

10

0

Y

N

来源用户

5 高校排课系统详细设计与实现

5.1学生用户功能模块

5.1.1 前台首页界面

游客或者用户进入系统后可以查看系统的信息,包含了程序的标题、导航栏、轮播图、公告信息、课程信息推荐等,其主界面展示如下图5-1所示。

5-1 前台首页界面图

5.1.2注册界面

游客可以查看系统信息,也有注册成为用户的权限。其用注册界面展示如下图4-2所示。

5-2 用户注册界面图

注册代码如下:

  /**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));

        query.put("username",user.getUsername());

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

}     

5.1.3登录界面

游客注册成功以后就成为了注册用户,注册用户可以通过前台的登录页面登录到系统当中,用登录界面如下图5-3所示。

5-3用户登录界面图

登录代码如下:

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            Duration duration = Duration.ofSeconds(7200L);

            redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

}

5.1.4 课程信息界面

课程信息:用户点击可查看课程信息列表。同时可对课程进行点赞、收藏、选课和评论操作。其界面如下图。

5-4 课程信息界面图

5.1.5 个人中心界面

个人中心:用户点击头像可查看“个人中心”,包括个人首页、选课信息、成绩信息、退课信息、作业信息、评价信息和收藏。界面如下图所示。

5-5 个人中心界面图

5.2教师用户功能模块

5.2.1 课程信息管理界面

课程信息管理:用户点击可查看课程信息列表,也可以填写课程详情、图片等信息添加课程信息。详情展示页面如图所示。

5-6课程信息管理界面图

5.2.2 选课信息管理界面

选课信息管理:用户可以查看选课信息列表详情,点击成绩记录可以录入学生的课程成绩和成绩评级。界面如下图所示

5-7 选课信息管理界面

5.3管理员功能模块

5.3.1公共管理界面

公共管理:当管理员点击“公共管理”时,可查看轮播图; 如需添加新的轮播图,点击右侧“添加”按钮,上传图片,输入标题,点击“确认”按钮进行添加;同时可对轮播图进行增删改查。界面如下图所示。

5-8  公共管理界面图

5.3.2作业信息管理界面

作业信息管理:管理员点击可查看作业信息列表,同时可对作业信息进行增删改查。界面如下图所示。

5-9作业信息管理界面图

5.3.3咨询信息管理界面

咨询信息管理:管理员点击可查看咨询信息列表,可以对用户的咨询进行审核、回复。界面如下图所示。

5-10咨询信息管理界面图

5.3.4排课信息管理界面

排课信息管理:管理员点击可查看排课信息列表,同时可对排课信息进行增删改查。界面如下图所示。

5-11排课信息管理界面图

5.3.5权限管理界面

权限管理:管理员可以对权限列表进行编辑,管理教师用户、学生用户的权限。界面如下图所示。

5-12权限管理界面图

6系统的测试

6.1测试的目的

一个系统测试的目的就是检验系统在真正的工作环境、条件下是不是能够正常运行,各种功能能不能符合设计的要求,通过测试发现系统当中存在的一些潜在的错误,然后对系统进行改进,使得系统最终以完美的形式展现给用户,提高用户使用过程中的体验度,真正达到项目的实际使用目的。

6.2 系统测试用例

系统测试包括:管理员登录功能测试公告信息查看功能测试、课程信息添加功能测试、密码修改功能测试,如表6-1、6-2、6-3、6-4所示:

管理员登录功能测试:

6-1 管理员登录功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

登录模块测试

登录成功的情况

管理员可以通过浏览器进入到高校排课系统后台登录界面,输入用户名:admin和密码admin后,点击“登录”按钮。

成功登录到管理员管理的界面

正确

登录模块测试

登录失败的情况

管理员可以通过浏览器进入到高校排课系统后台登录界面,输入用户名:admin和密码111后,点击“登录”按钮。

系统提示“用户名和密码不匹配”

正确

公告信息查看功能测试:

6-2 公告信息查看功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

查询公告信息功能测试

查询成功的情况

用户在导航栏中点击“公告信息”,输入关键词查询,输入的公告信息在系统中存在,显示查询公告信息信息 

查询成功

正确

课程信息添加添加界面测试:

6-3 课程信息添加界面测试表

测试名称

测试功能

操作过程

预期结果

测试结果

课程信息添加模块测试

课程信息添加成功的情况

在“个人中心”菜单中点击“课程信息”会显示出所有的课程信息信息,点击“添加”,输入课程信息,输入正确的信息后,点击“提交”按钮。

提示添加成功

正确

课程信息添加模块测试

课程信息添加失败的情况

在“个人中心”菜单中点击“课程信息”会显示出所有的在课程信息,点击“添加”,不输入课程名称,其他信息正常填写后,点击“提交”按钮。

提示“添加失败,名称不能为空”

正确

密码修改功能测试:

表6-4 密码修改功能测试表

用例名称

密码修改测试用例

目的

测试管理员密码修改功能

前提

管理员用户正常登录情况下

测试流程

1)管理员密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

6.3 系统测试结果

本次开发的系统是一个高校排课系统,主要功能就是实现用户的在线学习和查看相关信息,通过对管理员登录功能测试、公告信息查看功能测试、课程信息添加功能测试、密码修改功能测试可以看出系统的基本可以实现用户对课程信息查看的功能,而且在测试的过程中也对界面的展示进行了查看,发现界面并没有出现扭曲、混乱等情况,能够满足用户的需求,系统运行良好,是可以进行投入使用的。

7 结论

经过了几个月的努力,高校排课系统终于完成了,虽然在校期间也开发过一些小型的系统,但是都是在老师的讲解以及辅助下完成的,没有经历过开发之前的需求分析、系统分析,都是直接从系统设计开始的,因此本次开发的高校排课系统对我意义重大。

在开发系统最初,首先对用户医药品方面的需求进行调研,了解对于用户以及商家来说,开发的系统需要实现哪些功能才能满足使用者的需求,对需求进行分析;其次选择自己比较熟悉的JAVA语言,MYSQL数据库,使用SpringBoot框架来设计开发,通过知网库、学校图书馆等地方查阅、学习这些技术,掌握编程的思想和方法,然后就是对系统进行分析,从系统开发的可行性、系统实现的功能、系统应该具备的性能以及系统的操作流程方面,对系统进行全方位的分析,确定系统的最终功能,从而对系统的功能和数据库进行设计,最后就是系统的实现以及对实现的功能的测试,确保系统能够稳定的运行。

在开发的过程中暴露出了自己的很多问题,比如前期的准备还是不够充分,不能完全掌握其操作流程;在开发过程中对JAVA的编程掌握的还不够熟练以及对系统的环境配置上还存在很多问题,经常会导致项目在运行的时候出现错误。学无止境,通过一边查阅资料一边向导师请教,慢慢的解决了这些问题,在以后的学习、工作者我会更加严谨,通过本项目的开发,我将会受益终生!

参考文献

  1. 王富广.基于Java学生选课系统的设计与实现[J].安阳师范学院学报,2024,26(05):109-113.DOI:10.16140/j.cnki.1671-5330.2024.05.023.
  2. 罗枫.基于Spring Boot+Vue实现校园选课系统[J].数字技术与应用,2024,42(05):217-219.
  3. 李宝密.基于大数据的高校网上选课系统设计与开发[J].软件,2024,45(04):86-88.
  4. 郭倩倩,霍星,罗思维.基于C#的高校体育选课系统设计与实现[J].电脑编程技巧与维护,2023,(08):23-25.DOI:10.16184/j.cnki.comprg.2023.08.002.
  5. 胡伟东.基于B/S结构的学生选课系统设计与实现[J].信息与电脑(理论版),2023,35(01):23-25.
  6. 杨晟,罗奇.基于Spring Boot的在线选课系统的设计[J].网络安全技术与应用,2022,(06):53-54.
  7. Yingfa Y ,Hui Z .Nonlinear Differential Equation in University Education Information Course Selection System[J].Applied Mathematics and Nonlinear Sciences,2023,8(2):1463-1474.
  8. Man M ,Xu J ,Sabri A A I , et al.Research on Students' Course Selection Preference based on Collaborative Filtering Algorithm[J].International Journal of Advanced Computer Science and Applications (IJACSA),2022,13(5):
  9. 黄阿新.基于蚁群算法的高校排课系统设计[J].安徽电子信息职业技术学院学报,2021,20(02):6-10.
  10. 肖柳珠.高校排课系统设计研究[J].信息与电脑(理论版),2020,32(21):52-53.
  11. 刘光盛.高校排课系统的设计与实现研究[J].科技风,2020,(05):80.DOI:10.19392/j.cnki.1671-7341.202005072.
  12. 蒋舟,杨健叶,张红伟.高校学生选课系统的设计与实现[J].电脑知识与技术,2019,15(12):60-61.DOI:10.14004/j.cnki.ckt.2019.1342.
  13. 杨利娟,朱杉杉.基于C#的高校排课系统[J].电脑编程技巧与维护,2018,(10):23-27.DOI:10.16184/j.cnki.comprg.2018.10.008.
  14. 胡秀华,李承瑞,李桂萍,等.基于移动平台的高校教务管理系统设计与实现[J].软件导刊,2018,17(09):125-128.
  15. 王丹.基于MVC模式的高校串调课系统设计与实现[J].无线互联科技,2018,15(17):97-98.
  16. 钮永莉,邹长忠.基于MVC框架的高校学生选课系统的设计与实现[J].北京印刷学院学报,2018,26(03):57-59.DOI:10.19461/j.cnki.1004-8626.2018.03.016.
  17. 苏博妮,化希耀.基于PHP的高校分级选课系统研究与设计[J].四川文理学院学报,2018,28(02):27-30.
  18. 马巧梅.基于C语言的高校学生选课系统设计与实现[J].微处理机,2018,39(01):28-31.
  19. 王春兰.高校网络体育选课系统的设计与实现[J].知识经济,2017,(22):102+104.DOI:10.15880/j.cnki.zsjj.2017.22.058.
  20. 甘霖,臧辉,成俊.基于ASP.NET的B/S架构下的高校选课系统的设计与实现[J].福建电脑,2017,33(07):29-30+60.DOI:10.16707/j.cnki.fjpc.2017.07.016.

致谢

“致谢”意味着论文的结束,也意味着自己的毕业设计顺利完成,同时也代表了自己的大学生涯即将结束,我即将要离开自己敬爱的老师和亲爱的同学们,在这里我首先要感谢的就是所有的老师,“春满江山绿满园,桃李争春露笑颜,东西南北春常在,唯有师恩留心间”,他们无论在我的学业还是在我的生活上付出了所有,对我谆谆教诲;其次我要感谢我的指导老师,他在我的整个毕业设计当中起着引导作用,每当我有困难的时候,他总会第一时间帮助我,引导我进行解决问题,而不是直接告诉我答案,“授人以鱼不如授人以渔”,指导老师的这种做法让我受益终生,同时我也从指导老师身上学习到了许多的开发技巧以及检验,这对我今后的开发起着十分重要的作用;再次,我需要感谢我的同学、室友,他们不仅仅在毕业设计上给我许多帮助意见,在大学同窗四年,他们给过我的帮助太多了,我对他们有太多的不舍,无法用言语表示,我相信在以后的人生道路上只要想到他们,我心里就会很温暖,这种友情是任何感情替代不了的;最后我还要感谢家人,感谢自己,感谢家人对我的支持,感谢自己在学业上的坚持,我相信我以后的道路会越来越好。

请关注点赞+私信博主,免费领取项目源码

更多推荐