大家介绍一篇学生选课系统的设计与实现

2023-05-16

项目描述

临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给大家介绍一篇学生选课系统的设计与实现。

功能需求

通过计算机技术建设学校学生选课系统,为学校教学提供便捷的服务,前面根据业务需要分析了当代国内教学选课系统建设的研究背景和意义,并了解目前国内外的研究现状,根据目前市场上的需求解决学校教育困难,通过调查和分析各个高校面临的问题和困难,综合评价了我国教育行业当前形势和以后发展趋势,进而提出了比较好的管理方案。

具备以下功能:

学生模块:
(1)登录注册:实现学生通过学校网直接登录成绩管理系统进行查看。
(2)个人信息:对个人学号查看以及个人基本信息的编辑修改。
(3)成绩查询:根据课程查询,并对考试成绩详情查看。
(4)考勤信息管理:学生根据自身上课安排管理个人考勤信息。
(5)请假信息管理:学生添加请假信息。
(6)选课信息管理:学生根据个人需要选择课程信息。
教师模块:
(1)学生信息管理:根据学生班级以及科目考试对成绩录入操作。
(2)班级信息管理:根据班级以及科目对学生成绩进行排名和分析。
(3)个人信息:对教师个人工号、账号信息查看和密码修改操作。
(4)课程信息管理:对教学课程信息查看和添加修改。
(5)选课信息管理:教师对学生选课情况查看和统计。
(6)考勤信息管理:教师根据学生提交的签到统计学生考勤。
(7)请假信息管理:教师可以查看学生的请假申请,并对申请处理操作。
(8)成绩信息管理:管理学生的课程考试分数。
管理员模块:
(1)班级管理:查看班级、搜索班级、添加删除班级信息。
(2)学生信息管理:对班级学生的添加、删除以及修改查看等操作。
(3)教师管理:该模块可以对教师信息进行操作以及教师对班级的任课相关信息。
(4)课程管理:可以查看目前开的课程以及可以添加课程等。
(5)考勤管理:根据年级、班级对学生上课考勤查看。
(6)成绩管理:对所有年级学生的考试成绩查看,并通过不同维度进行成绩分析。
(7)请假信息管理:对所有年级学生的请假情况查看。
(8)学生选课管理:管理员对学生选课情况查看和统计。

系统功能模块框架图

在这里插入图片描述

部分效果图

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

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

数据库设计

系统中用到了11张表,针对每个表都进行了设计,下面对部分核心表进行汇总罗列展示。
在这里插入图片描述在这里插入图片描述

部分代码

	public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{
		doPost(request, response);
	}
	public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{
		String method = request.getParameter("method");
		if("toStudentListView".equals(method)){
			studentList(request,response);
		}else if("AddStudent".equals(method)){
			addStudent(request,response);
		}else if("StudentList".equals(method)){
			getStudentList(request,response);
		}else if("EditStudent".equals(method)){
			editStudent(request,response);
		}else if("DeleteStudent".equals(method)){
			deleteStudent(request,response);
		}
	}
	private void deleteStudent(HttpServletRequest request,
			HttpServletResponse response) {
		// TODO Auto-generated method stub
		String[] ids = request.getParameterValues("ids[]");
		String idStr = "";
		for(String id : ids){
			idStr += id + ",";
		}
		idStr = idStr.substring(0, idStr.length()-1);
		StudentDao studentDao = new StudentDao();
		if(studentDao.deleteStudent(idStr)){
			try {
				response.getWriter().write("success");
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally{
				studentDao.closeCon();
			}
		}
	}
	private void editStudent(HttpServletRequest request,
			HttpServletResponse response) {
		// TODO Auto-generated method stub
		String name = request.getParameter("name");
		int id = Integer.parseInt(request.getParameter("id"));
		String sex = request.getParameter("sex");
		String mobile = request.getParameter("mobile");
		String qq = request.getParameter("qq");
		int clazzId = Integer.parseInt(request.getParameter("clazzid"));
		Student student = new Student();
		student.setClazzId(clazzId);
		student.setMobile(mobile);
		student.setName(name);
		student.setId(id);
		student.setQq(qq);
		student.setSex(sex);
		StudentDao studentDao = new StudentDao();
		if(studentDao.editStudent(student)){
			try {
				response.getWriter().write("success");
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally{
				studentDao.closeCon();
			}
		}
	}
	private void getStudentList(HttpServletRequest request,
			HttpServletResponse response) {
		// TODO Auto-generated method stub
		String name = request.getParameter("studentName");
		Integer currentPage = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
		Integer pageSize = request.getParameter("rows") == null ? 999 : Integer.parseInt(request.getParameter("rows"));
		Integer clazz = request.getParameter("clazzid") == null ? 0 : Integer.parseInt(request.getParameter("clazzid"));
		//获取当前登录用户类型
		int userType = Integer.parseInt(request.getSession().getAttribute("userType").toString());
		Student student = new Student();
		student.setName(name);
		student.setClazzId(clazz);
		if(userType == 2){
			//如果是学生,只能查看自己的信息
			Student currentUser = (Student)request.getSession().getAttribute("user");
			student.setId(currentUser.getId());
		}
		StudentDao studentDao = new StudentDao();
		List<Student> clazzList = studentDao.getStudentList(student, new Page(currentPage, pageSize));
		int total = studentDao.getStudentListTotal(student);
		studentDao.closeCon();
		response.setCharacterEncoding("UTF-8");
		Map<String, Object> ret = new HashMap<String, Object>();
		ret.put("total", total);
		ret.put("rows", clazzList);
		try {
			String from = request.getParameter("from");
			if("combox".equals(from)){
				response.getWriter().write(JSONArray.fromObject(clazzList).toString());
			}else{
				response.getWriter().write(JSONObject.fromObject(ret).toString());
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	private void addStudent(HttpServletRequest request,
			HttpServletResponse response) {
		// TODO Auto-generated method stub
		String name = request.getParameter("name");
		String password = request.getParameter("password");
		String sex = request.getParameter("sex");
		String mobile = request.getParameter("mobile");
		String qq = request.getParameter("qq");
		int clazzId = Integer.parseInt(request.getParameter("clazzid"));
		Student student = new Student();
		student.setClazzId(clazzId);
		student.setMobile(mobile);
		student.setName(name);
		student.setPassword(password);
		student.setQq(qq);
		student.setSex(sex);
		student.setSn(SnGenerateUtil.generateSn(clazzId));
		StudentDao studentDao = new StudentDao();
		if(studentDao.addStudent(student)){
			try {
				response.getWriter().write("success");
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally{
				studentDao.closeCon();
			}
		}
	}
	private void studentList(HttpServletRequest request,
			HttpServletResponse response) throws IOException {
		// TODO Auto-generated method stub
		try {
			request.getRequestDispatcher("view/studentList.jsp").forward(request, response);
		} catch (ServletException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
安装部署需求

eclipse、idea运行启动

系统部署

系统开发后,在生产环境配置项目运行环境,具体步骤如下:
安装linux或者windows10操作系统;
安装JDK1.8并配置环境变量;
安装MySQL5.7版本以上版本数据库,创建数据库并执行脚本创建表;
在IDEA中编辑进行打包;
下载并配置Tomcat8.0服务器,配置系统服务,上传项目打包文件

本项目用到的技术和框架

1.开发语言:Java
2.开发模式:B/S
3.数据库:MySQL
4.框架:jsp+servlet+jdbc

本项目中的关键点

此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。

环境工具

开发工具 Eclipse/IDEA
语言 JDK1.8 、jsp、CSS、servlet、jdbc
硬件:笔记本电脑;
软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
操作系统:Windows 10;
其它软件:截图工具、常用浏览器;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大家介绍一篇学生选课系统的设计与实现 的相关文章

  • AdminLTE框架的基本使用

    原文链接 xff1a http www maixiaogang com
  • IntelliJ IDEA常用快捷键总结

    之前开发项目一直用的是eclipse进行开发 xff0c 近期在使用IDEA这个工具进行项目开发 xff0c 之前在eclipse上能使用的快捷键方法放在IDEA上很多都不适用了 xff0c 因此在此总结一下关于IDEA快捷键的使用方法 x
  • 国内外手机号码正则表达式(收藏)

    附上语言 xff08 文化 xff09 代码与国家地区对照表 xff1a 简体中文 中国 zh cn 繁体中文 台湾地区 zh tw 繁体中文 香港 zh hk 英语 香港 en hk 英语 美国 en us 英语 英国 en gb 英语
  • Java服务,CPU100%问题如何快速定位?

    找到相关服务 xff0c 如何定位问题代码 xff0c 也非常考验技术人的功底 xff0c 今天简单说下思路 假设 xff0c 服务器上部署了若干Java站点服务 xff0c 以及若干Java微服务 xff0c 突然收到运维的CPU异常告警
  • Oracle存储过程编写经验和优化措施

    一 前言 在经过一段时间的存储过程开发之后 xff0c 写下了一些开发时候的小结和经验与大家共享 xff0c 希望对大家有益 二 适合读者对象 数据库开发程序员 xff0c 数据库的数据量很多 xff0c 涉及到对SP xff08 存储过程
  • 2019年上千道Java面试题,还在等什么

    Spring 面试题 1 一般问题 1 1 不同版本的 spring Framework 有哪些主要功能 xff1f 1 2 什么是 spring Framework xff1f 1 3 列举 spring Framework 的优点 1
  • echarts折线图的每个折点都显示数值

    在 series中添加 itemStyle span class token punctuation span span class token punctuation span normal span class token punctu
  • Mysql数据库学习大全

    1 数据库概述 1 1 什么是数据库 数据库 xff1a 存储和管理数据的仓库 数据库是一个专业的存储和管理数据的软件系统 xff0c 比传统的人工或文件保存数据小路更高 更安全 更可靠 数据库有哪些分类 了解 早期 xff1a 层次是数据
  • 智慧物业大数据可视化平台

    智慧物业大数据可视化平台HTML5页面设计 每周不定期分享相关开发的作品 xff0c 且分享的项目是本站验证过且可运行的程序 xff0c 希望能帮助到你们 计算机毕业设计 源程序 43 论文 43 开题报告 43 效果截图 联系QQ 226
  • 无操作15分钟后自动调到最低亮度

    diff git a frameworks base services core java com android server power PowerManagerService java b frameworks base servic
  • 学习超市管理系统的搭建与实现

    项目描述 通过开发基于SSM的超市信息化管理系统 xff0c 根据超市管理业务流程系统处理 xff0c 解决超市营业员手动管理的工作看 xff0c 超市管理员只需要对商品信息 供货商信息 销售价格管理 超市会员信息记录和管理 根据业务要求划
  • 韩国程序员面试考什么?

    大家好 xff0c 我是程序猿麦小七 xff0c 在G站闲逛的时候 xff0c 从每日热门上 xff0c 看到一个韩国的技术面试项目 xff0c 感觉有点好奇 xff0c 忍不住点进去看看 韩国的面试都考什么 xff1f 有没有国内的卷呢
  • 一名程序员的电脑桌面

    配置 xff1a 酷呆桌面注册表隐藏快捷方式箭头图标开启桌面模式自动隐藏任务栏 酷呆桌面 在选择酷呆之前 xff0c 一直是使用的Fences xff0c 他的桌面切换功能非常赞 xff0c 适合划分工作区 但由于强迫症实在是忍受不了肉眼可
  • 再有人问你如何实现订单到期关闭,就把这篇文章发给他!

    在电商 支付等系统中 xff0c 一般都是先创建订单 xff08 支付单 xff09 xff0c 再给用户一定的时间进行支付 xff0c 如果没有按时支付的话 xff0c 就需要把之前的订单 xff08 支付单 xff09 取消掉 这种类似
  • 基于Java的二手交易市场系统设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 基于个性化推荐的图书网站设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • Spring Boot + WebSocket 实时监控异常

    写在前面 此异常非彼异常 xff0c 标题所说的异常是业务上的异常 最近做了一个需求 xff0c 消防的设备巡检 xff0c 如果巡检发现异常 xff0c 通过手机端提交 xff0c 后台的实时监控页面实时获取到该设备的信息及位置 xff0
  • 高可用架构的设计方法

    概述 高可用 High Availability xff0c 简称HA xff0c 是衡量IT系统服务质量的一个极其重要的参考 xff0c 高可用一直是IT系统设计中需要重点关注的点 本文总结高可用架构中的一些关键设计思想 衡量指标SLA
  • 基于JavaWeb的四季青敬老院系统的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • Hippo4j 官宣!Hippo4j 1.4.x 新版本正式发布,探索更多玩法

    2022 年 11 月 06 日 xff0c Hippo4j 1 4 3 版本正式发布 xff01 Hippo4j 是一个线程池框架 xff0c 基于 JDK 原生线程池扩展了诸多功能 xff0c 比如 xff1a 运行时动态变更线程池参数

随机推荐

  • linux 查看so库文件函数信息

    我的环境是ubuntu16 04 glibc官网 xff1a http www gnu org software libc libc html 方法一 一般来说 xff0c 涉及到库调用的程序 xff0c 在链接时候都会链接到glibc x
  • 利用Session完成用户的登录和注销

    用户的登录和注销是最常见的Web应用案例 xff0c 当一个应用的客户登录了以后 xff0c 其他所有的会话都得知道这个用户已经登录还很有可能得提取用户的昵称予以显示等等 xff0c 所以 xff0c 只有把登录成功的用户的信息放入到Ses
  • 聊聊工作中,如何提升自己的编程能力?

    在工作中 xff0c 我们大部分的时间都是在阅读代码 xff0c 阅读别人的代码也是我们工作中的一部分 xff0c 真正花在写代码上的时间其实并不多 我们应该都有这样的体会 xff0c 那就是刚入职一家新公司 xff0c 需要维护公司的一些
  • 基于JavaWeb的订餐管理系统的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 基于JavaWeb的电影网站的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 基于SSM滑雪场预约管理系统设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 基于ssm的固定收益营销系统设计与实现(ERP系统)

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 基于SSM花卉商城设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 基于JavaWeb的小区物业管理系统的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 今天给在家介绍一篇健身俱乐部信息管理系统设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 今天给在家介绍一篇基于jsp的旅游网站设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 基于Java Web的汽车租赁系统的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • PackageManagerService分析(Android 10)->应用安装的整体流程

    https blog csdn net woai110120130 article details 109141076
  • 基于移动应用的城市公共气象服务平台的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • Java线程池的一点总结

    主要用来做两件事 1 利用多核CPU的并发处理能力提高工作效率 2 避免线程的频繁创建和销毁带来的开销来提高工作效率 任务提交到线程池后的处理逻辑 1 提交任务到线程池 2 核心线程池是否已满 xff0c 没满则创建核心线程数个线程来处理任
  • 基于移动品台的产品追溯系统设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 今天给大家介绍一篇基于javaWeb的汽车订票系统的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 在线考试系统

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 今天给大家介绍一篇基基于SSM超市管理系统的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情
  • 大家介绍一篇学生选课系统的设计与实现

    项目描述 临近学期结束 xff0c 还是毕业设计 xff0c 你还在做java程序网络编程 xff0c 期末作业 xff0c 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情