基于java web的自动排课管理系统


1 项目简介

🔥 Hi,各位同学好呀,这里是L学长!

🥇今天向大家分享一个今年(2023)最新完成的毕业设计项目作品,基于java web的自动排课管理系统

🥇 学长根据实现的难度和等级对项目进行评分(最低0分,满分5分)

  • 难度系数:3分

  • 工作量:3分

  • 创新点:3分

项目分享:见文末!


2 实现效果

废话不多说,先上实现效果

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

篇幅有限,本文不做过多展示

3 系统设计

排课管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以排课管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件排课,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对排课信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高排课管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

设计思想

本系统采用各班级独立划分管理,所有教师均可为任何班级服务,各班级根据每天课程数目来进行自动排序,同时各教师允许教学多门课程,因此为了每名教师配置了时间占用表,只要与班级对应的时间空间表未被占用,都可以参与排课,并根据用户定义的要求排出课程。
数据管理类:由于班级,时间,教师,课程等信息都需要一个活动的管理过程,因为在节省资源的情况下,将各数据所需要的代码合并在一起进行编写和使用。

在这里插入图片描述
在这里插入图片描述

本系统是一个排课管理系统,主要是根据班级为单位,利用班级与课程来进行排课。
班级与课程是一对多的关系,班级不能重复,但是课程可以随意出现任何班级。
班级与班级课程信息之间也是一对多的关系,一个班级,可以有很多不同的课程。
班级与临时生成课表是一对多的关系,一个班级,只能有一个课程表,而排列的方式都同样由班级获得。
其余的数据库建立都是在让系统方便使用的基础上建立的,还有一个无需用户手动添加数据的,做为内部参数来使用的表,这里就不用标出的了。

3.1 详细设计流程

登陆系统流程图

在这里插入图片描述设计说明:进入主界面后,等待操作用户输入用户名和密码,在输入之后按确定进入,验证用户名和密码,实现流程:
(1) 检测数据库中有无管理员帐号,如果有,则等待用户输入用户名和密码,否则按程序本身自动执行插入命令,新建一个管理员用户,并等待用户输入.
(2) 验证用户名和密码是否正确,错误次数不能超过三次,超过三次则退出系统登陆界面
(3) 当验证通过后,检测该登陆用户的管理权限,并设置变量传值给主窗体.

班级管理流程图

在这里插入图片描述

班级课程处理流程图

在这里插入图片描述

流程较多,其他流程不在本文一一复述,详细的会放在论文里

4 关键代码

篇幅有限,无法放完整代码,源码分析在工程内

package com.service;

import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.dao.DB;
import com.orm.TQueren;
import com.orm.TUser;
import com.orm.TXuesheng;

/**
 * @author yanrj
 * @version ����ʱ�䣺Mar 29, 2013 10:26:29 PM
 */
public class GetListService {
	public List getXueshengList(String sql)
	{
		List xueshengList = new ArrayList();
		Object[] params={};
		DB mydb=new DB();
		try
		{
			mydb.doPstm(sql, params);
			ResultSet rs=mydb.getRs();
			while(rs.next())
			{
				TXuesheng xuesheng=new TXuesheng();
				
				xuesheng.setId(rs.getInt("id"));
				xuesheng.setXuehao(rs.getString("xuehao"));
				xuesheng.setLoginpw(rs.getString("loginpw"));
				xuesheng.setXingming(rs.getString("xingming"));
				xuesheng.setXingbie(rs.getString("xingbie"));
				xuesheng.setRuxue(rs.getString("ruxue"));
				xuesheng.setShenfenzheng(rs.getString("shenfenzheng"));
				xuesheng.setYuanxi(rs.getString("yuanxi"));
				xuesheng.setLianxi(rs.getString("lianxi"));
				xuesheng.setRiqi(rs.getString("riqi"));
				
				xuesheng.setZt_jwc(rs.getInt("zt_jwc"));
				xuesheng.setZt_fdy(rs.getInt("zt_fdy"));
				xuesheng.setZt_tsg(rs.getInt("zt_tsg"));
				xuesheng.setZt_sgc(rs.getInt("zt_sgc"));
				xuesheng.setZt_cwc(rs.getInt("zt_cwc"));
				xuesheng.setZt_xbgs(rs.getInt("zt_xbgs"));
				xuesheng.setZt_xuesheng(rs.getInt("zt_xuesheng"));
				xueshengList.add(xuesheng);
		    }
			rs.close();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		mydb.closed();
		return xueshengList;
	}
	
	private List getUserList(String sql)
	{
		List userList = new ArrayList();
		Object[] params={};
		DB mydb=new DB();
		try
		{
			mydb.doPstm(sql, params);
			ResultSet rs=mydb.getRs();
			while(rs.next())
			{
				TUser user=new TUser();
				user.setId(rs.getInt("id"));
				user.setLoginname(rs.getString("loginname"));
				user.setLoginpw(rs.getString("loginpw"));
			 	user.setXingming(rs.getString("xingming"));
			 	user.setXingbie(rs.getString("xingbie"));
				
				userList.add(user);
		    }
			rs.close();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		mydb.closed();
		return userList;		
	}
	
	private TXuesheng getXueshengById(int id)
	{
		String sql = "select * from t_xuesheng where id="+id;
		TXuesheng xuesheng = (TXuesheng)getXueshengList(sql).get(0);
		return xuesheng;
	}
	
	private TUser getUserById(int id)
	{
		String sql = "select * from t_user where id="+id;
		TUser user = (TUser)getUserList(sql).get(0);
		return user;
	}
	
	public List getQuerenList(String sql)
	{
		List querenList = new ArrayList();
		
		Object[] params={};
		DB mydb=new DB();
		try
		{
			mydb.doPstm(sql, params);
			ResultSet rs=mydb.getRs();
			while(rs.next())
			{
				TQueren queren=new TQueren();
				queren.setId(rs.getInt("id"));
				queren.setShijian(rs.getString("shijian"));

				int xuesheng_id = rs.getInt("xuesheng_id");
				queren.setXuesheng(getXueshengById(xuesheng_id));
				
				int user_id	= rs.getInt("user_id");
				queren.setUser(getUserById(user_id));
				
				querenList.add(queren);
		    }
			rs.close();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		mydb.closed();		
		
		return querenList;
	}
}

5 论文概览

在这里插入图片描述

6 最后

项目分享:见文末!

  • 37
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值