作者主页:源码空间站2022

简介: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项目: 否;

6.数据库:MySql 5.7/8.0等版本均可;

技术栈

1. 后端:Spring Struts Hibernate

2. 前端:JSP+css+javascript+jQuery

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2.使用IDEA/Eclipse/MyEclipse导入项目,配置项目;
3.将项目中WebRoot/WEB-INF/applicationContext.xml配置文件中的数据库配置改为自己的配置,然后运行;
4.登录地址:http://localhost:8080/schedule/login.jsp

5、登录账号:管理员 admin/123  老师 ls/123  学生 xs/123

运行截图

学生角色

老师角色

管理员角色

相关代码

courseAction

package com.action;import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;import com.dao.CommonDAO;
import com.dao.CourseDAO;
import com.model.Classes;
import com.model.Classroom;
import com.model.Course;
import com.model.Professional;
import com.model.Schedule;
import com.model.Teacher;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;public class courseAction extends ActionSupport
{ArrayList kecheng = new ArrayList();ArrayList banji = new ArrayList();ArrayList jiaoshi = new ArrayList();ArrayList laoshi = new ArrayList();String no;String suc;private CommonDAO commonDAO;public String getNo() {return no;}public void setNo(String no) {this.no = no;}public String getSuc() {return suc;}public void setSuc(String suc) {this.suc = suc;}public CommonDAO getCommonDAO() {return commonDAO;}public void setCommonDAO(CommonDAO commonDAO) {this.commonDAO = commonDAO;}//添加专业public String professionalAdd(){ActionContext ac=ActionContext.getContext();HttpServletRequest request=(HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); String professionalname=request.getParameter("professionalname");Professional p=new Professional();p.setProfessionalname(professionalname);commonDAO.save(p);suc="";return "success";}//修改专业public String professionalEdit(){ActionContext ac=ActionContext.getContext();HttpServletRequest request=(HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); String professionalname=request.getParameter("professionalname");String professionalid=request.getParameter("id");Professional p=new Professional();p.setProfessionalid(Integer.valueOf(professionalid));p.setProfessionalname(professionalname);commonDAO.update(p);suc="";return "success";}//添加班级public String classesAdd(){ActionContext ac=ActionContext.getContext();HttpServletRequest request=(HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); String professionalid=request.getParameter("professionalid");String grade=request.getParameter("grade");String classesname=request.getParameter("classesname");String count=request.getParameter("count");Classes c=new Classes();c.setClassesname(classesname);c.setProfessionalid(Integer.valueOf(professionalid));c.setGrade(grade);c.setCount(count);commonDAO.save(c);suc="";return "success";}//修改班级public String classesEdit(){ActionContext ac=ActionContext.getContext();HttpServletRequest request=(HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); String classesid=request.getParameter("id");String professionalid=request.getParameter("professionalid");String grade=request.getParameter("grade");String classesname=request.getParameter("classesname");String count=request.getParameter("count");Classes c=new Classes();c.setClassesid(Integer.valueOf(classesid));c.setClassesname(classesname);c.setProfessionalid(Integer.valueOf(professionalid));c.setGrade(grade);c.setCount(count);commonDAO.update(c);suc="";return "success";}//添加班级public String classroomAdd(){ActionContext ac=ActionContext.getContext();HttpServletRequest request=(HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); String classroomname=request.getParameter("classroomname");String count=request.getParameter("count");Classroom c=new Classroom();c.setClassroomname(classroomname);c.setCount(count);commonDAO.save(c);suc="";return "success";}//修改班级public String classroomEdit(){ActionContext ac=ActionContext.getContext();HttpServletRequest request=(HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); String classroomid=request.getParameter("id");String classroomname=request.getParameter("classroomname");String count=request.getParameter("count");Classroom c=new Classroom();c.setClassroomid(Integer.valueOf(classroomid));c.setClassroomname(classroomname);c.setCount(count);commonDAO.update(c);suc="";return "success";}//添加课程public String courseAdd(){ActionContext ac=ActionContext.getContext();HttpServletRequest request=(HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); String coursename=request.getParameter("coursename");String studyweek=request.getParameter("studyweek");String classtime=request.getParameter("classtime");String professionalid=request.getParameter("professionalid");String grade=request.getParameter("grade");String publicclass=request.getParameter("publicclass");String begintime=request.getParameter("begintime");String endtime=request.getParameter("endtime");Course c=new Course();c.setCoursename(coursename);c.setStudyweek(studyweek);c.setClasstime(classtime);c.setProfessionalid(Integer.valueOf(professionalid));c.setGrade(grade);c.setPublicclass(publicclass);c.setBegintime(begintime);c.setEndtime(endtime);commonDAO.save(c);suc="";return "success";}//修改课程public String courseEdit(){ActionContext ac=ActionContext.getContext();HttpServletRequest request=(HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); String courseid=request.getParameter("id");String coursename=request.getParameter("coursename");String studyweek=request.getParameter("studyweek");String classtime=request.getParameter("classtime");String professionalid=request.getParameter("professionalid");String grade=request.getParameter("grade");String publicclass=request.getParameter("publicclass");String begintime=request.getParameter("begintime");String endtime=request.getParameter("endtime");Course c=new Course();c.setCourseid(Integer.valueOf(courseid));c.setCoursename(coursename);c.setStudyweek(studyweek);c.setClasstime(classtime);c.setProfessionalid(Integer.valueOf(professionalid));c.setGrade(grade);c.setPublicclass(publicclass);c.setBegintime(begintime);c.setEndtime(endtime);commonDAO.update(c);suc="";return "success";}//添加教师public String teacherAdd(){ActionContext ac=ActionContext.getContext();HttpServletRequest request=(HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); String teachername=request.getParameter("teachername");String courseid=request.getParameter("courseid");Teacher t=new Teacher();t.setTeachername(teachername);t.setCourseid(Integer.valueOf(courseid));commonDAO.save(t);suc="";return "success";}//修改教师public String teacherEdit(){ActionContext ac=ActionContext.getContext();HttpServletRequest request=(HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); String teacherid=request.getParameter("id");String teachername=request.getParameter("teachername");String courseid=request.getParameter("courseid");Teacher t=new Teacher();t.setTeacherid(Integer.valueOf(teacherid));t.setTeachername(teachername);t.setCourseid(Integer.valueOf(courseid));commonDAO.update(t);suc="";return "success";}public String courseplanEdit(){ActionContext ac=ActionContext.getContext();HttpServletRequest request=(HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); String scheduleId=request.getParameter("id");Schedule ns=(Schedule)commonDAO.findById(Integer.parseInt(scheduleId), "Schedule");String professionalid=request.getParameter("professionalid");String teacherid=request.getParameter("teacherid");String classroomid=request.getParameter("classroomid");ns.setProfessionalid(Integer.parseInt(professionalid));ns.setTeacherid(Integer.parseInt(teacherid));ns.setClassroomid(Integer.parseInt(classroomid));commonDAO.update(ns);suc="";return "success";}public void coursePlan(){ActionContext ac=ActionContext.getContext();HttpServletRequest request=(HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); HttpServletResponse response=(HttpServletResponse) ac.get(ServletActionContext.HTTP_RESPONSE); String zhuanye = request.getParameter("professionalid");String nianji = request.getParameter("grade");ArrayList kecheng = this.getKecheng(zhuanye,nianji);ArrayList banji = this.getBanji(zhuanye,nianji);ArrayList jiaoshi = this.getJiaoshi();ArrayList laoshi = this.getLaoshi();String[] begin = null;String[] end = null;int[] beginInt = new int[3];int[] endInt = new int[3];int[][] xy = new int[5][6];for(int i = 0;i < kecheng.size();i++){boolean bool = true;int flag = 0;int a = 0;//总共的教学周int b = 0;//每周的课时数ArrayList al = (ArrayList)kecheng.get(i);begin = al.get(6).toString().split("-");end = al.get(7).toString().split("-");for(int j = 0;j < begin.length;j++){beginInt[j] = Integer.parseInt(begin[j]);endInt[j] = Integer.parseInt(end[j]);}Calendar c = Calendar.getInstance();c.set(beginInt[0],beginInt[1]-1,beginInt[2]);c.add(Calendar.DATE,-1);while(bool){c.add(Calendar.DATE,1);flag++;if(c.get(Calendar.MONTH)+1 == endInt[1] && c.get(Calendar.DATE) == endInt[2]){bool = false;}}if(flag%5 == 0){a = flag/5;}else{a = flag/5+1;}if(Integer.parseInt(al.get(3).toString())%a == 0){b = Integer.parseInt(al.get(3).toString())/a;}else{b = Integer.parseInt(al.get(3).toString())/a+1;}for(int n = 0;n < 6;n++){for(int w = 0;w < 5;w++){if(xy[w][n] == 0){xy[w][n] = Integer.parseInt(al.get(0).toString());}else{continue;}b--;if(b == 0){break;}}if(b == 0){break;}}}ArrayList paike = new ArrayList();for(int i = 0;i < banji.size();i++){ArrayList all = new ArrayList();ArrayList allRow = new ArrayList();ArrayList banjiRow = (ArrayList)banji.get(i);int flag = 0;for(int x = 0;x < 5;x++){for(int y = 0;y < 6;y++){if(xy[x][y+1] != 0){flag = xy[x][y];xy[x][y] = xy[x][y+1];xy[x][y+1] = flag;}else{break;}}}for(int x = 0;x < 5;x++){ArrayList allCol = new ArrayList();for(int y = 0;y < 6;y++){allCol.add(""+xy[x][y]);}allRow.add(allCol);}all.add(allRow);all.add(banjiRow);paike.add(all);}request.setAttribute("zhuanyeid",zhuanye);request.setAttribute("nianji",nianji);request.setAttribute("paike",paike);request.setAttribute("kecheng",kecheng);RequestDispatcher rd=request.getRequestDispatcher("courseplanauto.jsp");try {rd.forward(request,response);} catch (Exception e) {e.printStackTrace();} }public void coursePlanSave(){ActionContext ac=ActionContext.getContext();HttpServletRequest request=(HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); HttpServletResponse response=(HttpServletResponse) ac.get(ServletActionContext.HTTP_RESPONSE); ArrayList save = (ArrayList)request.getSession().getAttribute("save");String a = request.getParameter("a");String b = request.getParameter("b");String c = request.getParameter("c");String[] laoshiid = new String[save.size()];String[] jiaoshiid = new String[save.size()];int flag1 = 0;int flag2 = 0;for(int i = 0;i < Integer.parseInt(a);i++){for(int j = 0;j <Integer.parseInt(b);j++){for(int m = 0;m < Integer.parseInt(c);m++){if(request.getParameter("laoshi"+i+""+j+""+m) != null && !request.getParameter("laoshi"+i+""+j+""+m).equals("")){laoshiid[flag1] = request.getParameter("laoshi"+i+""+j+""+m);flag1++;}if(request.getParameter("jiaoshi"+i+""+j+""+m) != null && !request.getParameter("jiaoshi"+i+""+j+""+m).equals("")){jiaoshiid[flag2] = request.getParameter("jiaoshi"+i+""+j+""+m);flag2++;}}}}int flag = this.saveKebiao(save,laoshiid,jiaoshiid);if(flag == 1){request.setAttribute("chenggong","1");}if(flag == 2){request.setAttribute("chongfu","1");}RequestDispatcher rd=request.getRequestDispatcher("courseplanauto.jsp");try {rd.forward(request,response);} catch (Exception e) {e.printStackTrace();} }public ArrayList getKecheng(String zhuanye,String nianji){try {String hql="select a,b  from Course a,Professional b where a.professionalid=b.professionalid and a.professionalid='"+zhuanye+"' and a.grade='"+nianji+"'";List<Object[]> list=commonDAO.findByHql(hql);for(int i=0;i<list.size();i++){ArrayList alRow = new ArrayList();Course c = (Course)list.get(i)[0];Professional p=(Professional)list.get(i)[1];alRow.add(c.getCourseid());alRow.add(c.getCoursename());alRow.add(c.getStudyweek());alRow.add(c.getClasstime());alRow.add(c.getPublicclass());alRow.add(c.getGrade());alRow.add(c.getBegintime());alRow.add(c.getEndtime());alRow.add(p.getProfessionalid());alRow.add(p.getProfessionalname());kecheng.add(alRow);}} catch (Exception e) {e.printStackTrace();} return kecheng;}public ArrayList getBanji(String zhuanye,String nianji){try {banji=new ArrayList();String hql=" from Classes where professionalid='"+zhuanye+"' and grade='"+nianji+"'";List<Classes> list=commonDAO.findByHql(hql);for(int i=0;i<list.size();i++){Classes c=list.get(i);ArrayList alRow = new ArrayList();alRow.add(c.getClassesid());alRow.add(c.getClassesname());alRow.add(c.getGrade());alRow.add(c.getProfessionalid());alRow.add(c.getCount());banji.add(alRow);}} catch (Exception e) {e.printStackTrace();} return banji;}public ArrayList getJiaoshi(){try {String hql=" from Classroom ";List<Classroom> list=commonDAO.findByHql(hql);jiaoshi=new ArrayList();for(int i=0;i<list.size();i++){Classroom c=list.get(i);ArrayList alRow = new ArrayList();alRow.add(c.getClassroomid());alRow.add(c.getClassroomname());alRow.add(c.getCount());jiaoshi.add(alRow);}} catch (Exception e) {e.printStackTrace();}return jiaoshi;}public ArrayList getLaoshi(){try {laoshi=new ArrayList();String hql=" from Teacher ";List<Teacher> list=commonDAO.findByHql(hql);for(int i=0;i<list.size();i++){Teacher t=list.get(i);ArrayList alRow = new ArrayList();alRow.add(t.getTeacherid());alRow.add(t.getTeachername());alRow.add(t.getCourseid());laoshi.add(alRow);}} catch (Exception e) {e.printStackTrace();} return laoshi;}public int saveKebiao(ArrayList save,String[] laoshiid,String[] jiaoshiid){int temp = 0;try {int i;for(i = 0;i < save.size();i++){ArrayList saveRow = (ArrayList)save.get(i);String sql=" from Schedule where professionalid='"+saveRow.get(0)+"' and grade='"+saveRow.get(1)+"' and week='"+saveRow.get(2)+"' and kejie='"+saveRow.get(3)+"' and courseid='"+saveRow.get(4)+"' and classesid='"+saveRow.get(5)+"' and teacherid='"+laoshiid[i]+"' and classroomid='"+jiaoshiid[i]+"'";List<Teacher> list=commonDAO.findByHql(sql);if(list.size()>0){temp = 2;break;}else{Schedule s =new Schedule();//s.setScheduleid(Integer.parseInt((String)saveRow.get(0)));s.setProfessionalid(Integer.parseInt((String)saveRow.get(0)));s.setGrade(String.valueOf(saveRow.get(1)));s.setWeek(Integer.parseInt((String)saveRow.get(2)));s.setKejie(Integer.parseInt((String)saveRow.get(3)));s.setCourseid(Integer.parseInt((String) saveRow.get(4)));s.setClassesid((Integer) saveRow.get(5));s.setTeacherid(Integer.parseInt(laoshiid[i]));s.setClassroomid(Integer.parseInt(jiaoshiid[i]));commonDAO.save(s);}}if(i == save.size()){temp = 1;}} catch (Exception e) {e.printStackTrace();} return temp;}}

如果也想学习本系统,下面领取。关注并回复:132ssh

Java项目:SSH的自动排课系统-遗传算法相关推荐

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

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

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

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

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

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

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

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

  5. Java项目:springboot课程自动排课系统

    作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 课程自动排课系统,该系统分两种角色:管理员与普通用户: 主要功能包括: 首页:查看分课 ...

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

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

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

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

  8. 基于java的自动排课系统-计算机毕业设计

    项目介绍 借助本课题研究开发的基于java的自动排课系统,使学校教务管理人员可以随时掌握学校的排课情况,进一步指导学校的教学. 本排课系统的主要功能大致包括:通过计算机可以进行排课管理,实现自动化排课 ...

  9. java排课系统源代码,JSP自动排课系统 - WEB源码|JSP源码/Java|源代码 - 源码中国

    JSP自动排课系统 JSP自动排课系统\JSP自动排课系统 JSP自动排课系统\JSP自动排课系统\JSP自动排课系统录像.avi JSP自动排课系统\JSP自动排课系统\paike JSP自动排课系 ...

最新文章

  1. NLP≠NLU,机器学习无法理解人类语言
  2. BroadcastReceiver应用详解(一)
  3. java开发一年多少钱_4年Java程序员:月薪不过3万,就不要拿命换钱了
  4. python 计时_Python计时相关操作详解【time,datetime】
  5. 51nod 1451 合法三角形 判斜率去重,时间复杂度O(n^2)
  6. This EntitySet of type xxx does not support the 'Edit' operation
  7. 第一次正经面试之发现自己的缺陷和不足
  8. windows下修改tomcat的startup.bat脚本文件后台运行
  9. excel中如何动态地创建控件以显示查询结果_Excel催化剂开源第23波-VSTO开发辅助录入功能...
  10. 分享几个大数据相关岗位的职责和面试问题
  11. Hadoop教程(三)HDFS文件系统Shell命令
  12. MQTT的学习研究(十三) IBM MQTTV3 简单发布订阅实例
  13. 猿创征文|【FreeSwitch开发实践】使用sipp对FreeSwitch进行压力测试
  14. 1400——507B、1370C、1363B、1324D、1365C、1374D
  15. 暴走欧洲之在德国的反思
  16. 如何迅速提升网站流量
  17. UCF Local Programming Contest 2015 A~~H
  18. android百度地图定位文字表述,Android studio 百度地图开发(8)地图已标记POI点和搜索POI点的获取和利用...
  19. Eureka源码-double check单例模式运用
  20. 葡聚糖-叶酸;Dextran-FA;Dextran-Folicacid 结构式;科研试剂简介

热门文章

  1. IDC机房运维每天做什么?
  2. 小程序怎么开通流量主
  3. zookeeper的客户端工具zoolnspector 工具的安装
  4. Ptcms在php7.2.10下的采集调试
  5. 微信小程序 社区电商demo模板
  6. 2022年PMP考试中敏捷占多少?
  7. H3CTE考试战报(济南12月27日)
  8. iOS自定义相机界面
  9. OFD格式文件转PDF格式文件
  10. 如何在Axure中动态加载图表(Axhub Charts)