作者主页:夜未央5788

简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

课程自动排课系统,该系统分两种角色:管理员与普通用户;

主要功能包括:
首页:查看分课、查看课表、查看空教室;
班级设置:添加班级、分配课程、编辑、删除课程;
教室设置:添加教室、编辑、删除;
课程设置:添加课程、编辑、删除;
教师设置:添加教师、编辑、删除;
排课管理:调整排课、删除排课;

用户管理:添加用户、编辑、删除;

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 
6.数据库:MySql 8.0版本;

7.Redis数据库,redis配置已设置好,勿修改;

技术栈

1. 后端:Springboot+redis

2. 前端:html+layui+thymeleaf

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 将项目中application.properties配置文件中的数据库配置改为自己的配置
3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;

4. 运行项目,输入http://localhost:8080/login.html 登录

运行截图

代码相关

排课管理控制器

@RestController
@RequestMapping("/arrange/")
public class ArrangeController {@Autowiredprivate IArrangeService iArrangeService;@RequestMapping("add")public ServerResponse<String> add(Arrange arrange) {return iArrangeService.add(arrange);}@RequestMapping("del")public ServerResponse<String> del(Integer id) {return iArrangeService.del(id);}@RequestMapping("update")public ServerResponse<String> update(Arrange arrange) {return iArrangeService.update(arrange);}@RequestMapping("find")public ServerResponse<Arrange> find(Integer id) {return iArrangeService.find(id);}@RequestMapping("findAll")public ServerResponse<PageInfo<Arrange>> findAll(Integer pageNum, Integer pageSize) {return iArrangeService.findAll(pageNum, pageSize);}}

排课逻辑

@Service
public class ArrangeServiceImpl implements IArrangeService {@Autowiredprivate ArrangeMapper arrangeMapper;@Autowiredprivate ClassesMapper classesMapper;@Autowiredprivate CourseMapper courseMapper;@Overridepublic ServerResponse<String> add(Arrange arrange) {String classNames = arrange.getClassName();String[] split = classNames.split("_");ArrangeQuery query = new ArrangeQuery();ArrangeQuery.Criteria criteria = query.createCriteria();criteria.andCourseIdEqualTo(arrange.getCourseId()).andSemeIdEqualTo(arrange.getSemeId());int number = 0;for (String s : split){criteria.andClassNameLike("%"+s+"%");number+=Integer.valueOf(classesMapper.selectOneByExample(new ClassesQuery()).getClassNumber());}query.setDistinct(true);Arrange arrange2 = arrangeMapper.selectOneByExample(query);if (arrange2 !=  null) {return ServerResponse.createByErrorMessage("班级:"+arrange2.getClassName()+" 课程:"+arrange2.getCourseName()+" 已经存在分配");}arrange.setStatu(number);CourseQuery query1 = new CourseQuery();query1.createCriteria().andIdEqualTo(arrange.getCourseId());arrange.setSrd(courseMapper.selectOneByExample(query1).getStatu());int count = arrangeMapper.insertSelective(arrange);if (count == 0) {return ServerResponse.createByErrorMessage("分配失败");}return ServerResponse.createBySuccessMessage("分配成功");}@Overridepublic ServerResponse<String> del(Integer id) {int count = arrangeMapper.deleteByPrimaryKey(id);if (count > 0) {return ServerResponse.createBySuccessMessage("删除成功");}return ServerResponse.createByErrorMessage("删除失败");}@Overridepublic ServerResponse<String> update(Arrange arrange) {Arrange a = arrangeMapper.selectByPrimaryKey(arrange.getId());int count = arrangeMapper.updateByPrimaryKeySelective(a);if (count > 0) {return ServerResponse.createBySuccessMessage("更新成功");}return ServerResponse.createByErrorMessage("更新失败");}@Overridepublic ServerResponse<Arrange> find(Integer id) {return ServerResponse.createBySuccess(arrangeMapper.selectByPrimaryKey(id));}@Overridepublic ServerResponse<PageInfo<Arrange>> findAll(Integer pageNum, Integer pageSize) {ArrangeQuery query = new ArrangeQuery();PageHelper.startPage(pageNum, pageSize);List<Arrange> list = arrangeMapper.selectByExampleWithRowbounds(query, new RowBounds((pageNum - 1) * 10, pageSize));PageInfo<Arrange> pageInfo = new PageInfo<>(list);pageInfo.setTotal(arrangeMapper.countByExample(query));return ServerResponse.createBySuccess(pageInfo);}
}

如果也想学习本系统,下面领取。回复:048springboot

Java项目:springboot课程自动排课系统相关推荐

  1. Java项目:课程自动排课系统(java+SpringBoot+html+layui+thymeleaf+redis+mysql)

    源码获取:博客首页 "资源" 里下载! 项目介绍 课程自动排课系统,该系统分两种角色:管理员与普通用户: 主要功能包括: 首页:查看分课.查看课表.查看空教室: 班级设置:添加班级 ...

  2. 基于javaweb的课程自动排课系统(java+springboot+html+layui+thymeleaf+redis+mysql)

    基于javaweb的课程自动排课系统(java+springboot+html+layui+thymeleaf+redis+mysql) 运行环境 Java≥8.MySQL≥5.7 开发工具 ecli ...

  3. 基于springboot的自动排课系统

    末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SpringBoot 前端:Vue.HTML 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8. ...

  4. java基于ssm的自动排课系统

    制定一个学校的排课计划是一项非常耗时且相当辛苦的工作,而且它还得由有学校排课工作经验或者这方面知识的人才能做好.在一所高校时一个课程表的制定是一个难题,因为在有关课程表的问题上有很多的限制条件得考虑, ...

  5. Java项目:基于遗传算法学校排课系统(java+Springboot+Maven+mybatis+Vue+Mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 排课管理,课程管理,讲师管理,班级管理,学生管理,教学资料,学习文档,在线测试,教材列表,教学设计,帮助中心 ...

  6. 基于JAVA+SpringMVC+MYSQL的自动排课系统

    项目功能: 专业信息管理 班级信息管理 教师信息管理 课程信息管理 教师信息管理 排课管理 用户信息管理 本系统分为三个角色:管理员.老师和学生 系统访问地址:http://localhost:808 ...

  7. java基于SpringBoot+Vue+nodejs的高校自动排课系统 Element-UI

    自动排课系统也都将通过计算机进行整体智能化操作,对于自动排课系统所牵扯的管理及数据保存都是非常多的,例如(1)管理员:首页.个人中心.学生管理.教师管理.班级信息管理.专业信息管理.教室信息管理.课程 ...

  8. java+python课程教室自动排课系统Vue+ElemenUI

    使用自动排课系统分为管理员和学生.教师三个角色的权限子模块. 管理员所能使用的功能主要有:首页.个人中心.学生管理.教师管理.班级信息管理.专业信息管理.教室信息管理.课程信息管理.排课信息管理.系统 ...

  9. (附源码)springboot高校机房自动排课系统毕业设计 211004

    高校机房自动排课系统 摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规则和开发步骤,采用J ...

最新文章

  1. FPGA(3)验证数字逻辑(与门、与非门、二选一数据选择器、2-4译码器、半加器、全加器)
  2. C++中.lib静态库、.dll动态库的生成及调用1
  3. 【若依(ruoyi)】字典管理
  4. kuka机器人计算机单元有几部分组成,详解KUKA机器人系统原理与结构
  5. 团队作业5——测试与发布(Alpha版本)
  6. 面向对象--接口的实际应用--制定标准
  7. @transactional注解_为啥同一个类中普通方法调用Spring注解方法,注解会失效?看完你就明白,So easy!...
  8. linux驱动开发音频设备驱动,linux驱动开发—基于Device tree机制的驱动编写
  9. 如果恶魔给你一亿,一年之后必须还两个亿,你会接受吗?
  10. Tensorflow on Spark爬坑指南
  11. panel中html怎么写,在Panel上绘制Html表?
  12. 人工智能AI - 学习/实践
  13. 我的团长我的团第二十七集
  14. 天津大学计算机学院课表,天津大学软件实践1汇编语言课程教学大纲-天津大学计算机学院.PDF...
  15. 将 zlib 引入到C++项目中 历程
  16. pprint和print区别
  17. 对不起,我爱你黄陈晨
  18. 爱科设立爱科农业基金会
  19. Unity使用Vuforia实现AR脱卡功能
  20. 小世界网络邻接矩阵生成——python

热门文章

  1. 计算机化考试实施方案,上海对外经贸大学计算机分级教学实施方案
  2. 榆林市科技馆项目的变电所运维
  3. Android 多媒体框架 OpenCore(PacketVideo)介绍
  4. 人脸检测工具face recognition的安装与应用
  5. 牛出租车司机....zz
  6. 【3D视觉创新应用竞赛作品系列​】 基于点云的视觉引导系统
  7. 火鸟字幕合并器开源了,大家去参与开发和下载代码吧
  8. 怎么利用MBR加密硬盘?
  9. Quartz Scheduler 更新任务触发器
  10. 鸿蒙os息屏显示gif,ROG游戏手机2宣布;鸿蒙OS UI界面/功能模块曝光…