基于Java学生管理系统设计与实现(源码+部署文档)

博主介绍: ✌至今服务客户已经1000+、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌
🍅 文末获取源码联系 🍅
👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到

Java项目精品实战专区icon-default.png?t=N7T8https://blog.csdn.net/java18343246781/category_12537229.htmlJava各种开发工具资源包网站icon-default.png?t=N7T8http://62.234.13.119:9000/html/visitor/softwareResourceList.html

软件安装+项目部署专区icon-default.png?t=N7T8https://blog.csdn.net/java18343246781/category_12539864.htmlv


系列文章目录

前言

一、运行环境

二、代码示例

三、系统展示


前言

1) 系统登录:分为三个角色,学生、教师、管理员。
2) 学生管理:维护所有学生信息。可查询、添加、修改、删除。
3) 班级管理:维护所有班级信息。可查询、添加、修改、删除。
4) 教师管理:维护所有教师信息。可查询、添加、修改、删除。
5) 课程管理:维护所有课程信息。可查询、添加、修改、删除。同时支持查看当前已选人数。
6) 选课管理:为学生选择课程。为了防止选错同时支持退课。
7) 考勤列表:可以看到学生签到时间。
8) 请假管理:请假需要审核,可以审核通过与不通过同时回复消息给学生。
9) 成绩管理:查询所有学生成绩。并可新增、导入、导出学生成绩信息。
10) 成绩统计:选择对应的课程来统计学生分数。
11) 修改密码:支持用户修改密码。

一、运行环境

1) jdk1.8
2) mysql 5.7或8.0
3) Idea
4) tomcat 8

二、代码示例

代码如下(示例):

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import net.sf.json.JSONArray;
import net.sf.json.JSONObject;import com.ischoolbar.programmer.dao.ClazzDao;
import com.ischoolbar.programmer.dao.StudentDao;
import com.ischoolbar.programmer.model.Clazz;
import com.ischoolbar.programmer.model.Page;
import com.ischoolbar.programmer.model.Student;
import com.ischoolbar.programmer.util.SnGenerateUtil;
/*** *学生信息管理功能实现servlet*/
public class StudentServlet extends HttpServlet {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 stubString[] 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 blocke.printStackTrace();}finally{studentDao.closeCon();}}}private void editStudent(HttpServletRequest request,HttpServletResponse response) {// TODO Auto-generated method stubString 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 blocke.printStackTrace();}finally{studentDao.closeCon();}}}private void getStudentList(HttpServletRequest request,HttpServletResponse response) {// TODO Auto-generated method stubString 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 blocke.printStackTrace();}}private void addStudent(HttpServletRequest request,HttpServletResponse response) {// TODO Auto-generated method stubString 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 blocke.printStackTrace();}finally{studentDao.closeCon();}}}private void studentList(HttpServletRequest request,HttpServletResponse response) throws IOException {// TODO Auto-generated method stubtry {request.getRequestDispatcher("view/studentList.jsp").forward(request, response);} catch (ServletException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}

三、系统展示

系统登录:分为三个角色,学生、教师、管理员。

学生管理:维护所有学生信息。可查询、添加、修改、删除。

班级管理:维护所有班级信息。可查询、添加、修改、删除。

教师管理:维护所有教师信息。可查询、添加、修改、删除。

课程管理:维护所有课程信息。可查询、添加、修改、删除。同时支持查看当前已选人数。

选课管理:为学生选择课程。为了防止选错同时支持退课。

考勤列表:可以看到学生签到时间。

请假管理:请假需要审核,可以审核通过与不通过同时回复消息给学生。

成绩管理:查询所有学生成绩。并可新增、导入、导出学生成绩信息。

成绩统计:选择对应的课程来统计学生分数。

修改密码:支持用户修改密码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/458423.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Springboot简单设计两级缓存

两级缓存相比单纯使用远程缓存&#xff0c;具有什么优势呢&#xff1f; 本地缓存基于本地环境的内存&#xff0c;访问速度非常快&#xff0c;对于一些变更频率低、实时性要求低的数据&#xff0c;可以放在本地缓存中&#xff0c;提升访问速度 使用本地缓存能够减少和Redis类的远…

GridModel事件集合——yonBIP低代码

我们接着看表格相关的事件&#xff0c;用友的文档打不开&#xff0c;真的是天大的404&#xff0c;客观请看这个开发文档网址&#xff0c;找不到了&#xff0c;你说holy 不咯&#xff1f;http://tinper.org/mdf/&#xff08;如果有哪位小伙伴知道这个地址是不是迁移了的话&#…

Ryzen Controller 最新版本下载

Ryzen Controller 最新版本下载 GitLab中最新版本地址&#xff1a; Releases Ryzen Controller Team / Ryzen Controller GitLab 然后语言切换成简体中文&#xff0c;就可以愉快使用啦

兼容ARM 32位架构的edgeConnector产品为用户提供新的部署选项

Softing工业将ARM 32位兼容性集成到了edgeConnector产品中&#xff0c;以满足用户对ARM处理器的边缘设备日益增长的使用需求。 &#xff08;兼容ARM 32位架构的edgeConnector产品扩展了其应用部署范围&#xff09; 用户对采用ARM处理器的紧凑型边缘设备的需求正在大幅增长&…

20、数据结构相关练习20210202

一、请简述栈区和堆区的区别。 1.栈区借助于栈的思想实现&#xff0c;“先进后出”&#xff0c;地址申请从大地址到小地址&#xff1b;堆区借助队列思想实现&#xff0c;“先进先出”&#xff0c;地址申请从小地址到大地址&#xff1b; 2.栈区的内存由计算机自动申请自动释放…

springboot162基于SpringBoot的体育馆管理系统的设计与实现

体育馆管理系统 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本体育馆管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕…

【单片机】简单的自定义延时程序设计(代码演示)

前言 大家好吖&#xff0c;欢迎来到 YY 滴 单片机系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过单片机的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY…

【Django】如何设置支持多语种网站,中文/英文网站

首先&#xff0c;需要明确一点&#xff1a;我们要实现的中英对照翻译&#xff0c;这个翻译不是浏览器翻译的&#xff0c;也不是Django帮你翻译。这个需要你自己事先手动翻译好&#xff0c;存放在专门翻译文件中&#xff0c;Django只是事后调用而已。 第一步 新建项目后&#x…

代码随想录算法训练营第25天 | 216.组合总和III ,17.电话号码的字母组合

回溯章节理论基础&#xff1a; https://programmercarl.com/%E5%9B%9E%E6%BA%AF%E7%AE%97%E6%B3%95%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 216.组合总和III 题目链接&#xff1a;https://leetcode.cn/problems/combination-sum-iii/ 思路: 本题就是在[1,2,3,4,5,6,7,…

C++ lambda [],[=] ,[],[this] 的使用

在c11标准中引入了lambda表达式&#xff0c;一般用于定义匿名函数 [],[] ,[&],[this] 都是捕获列表 [] 的作用&#xff1a; 什么也不捕获 [] 的作用&#xff1a; 按值捕获所有变量 [&] 的作用&#xff1a; 引用捕获所有外部作用域内的变量 [this]的作用&#xf…

C语言第二十弹---指针(四)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 指针 1、字符指针变量 2、数组指针变量 2.1、数组指针变量是什么&#xff1f; 2.2、数组指针变量怎么初始化 3、⼆维数组传参的本质 4、函数指针变量 4.1…

通过nginx学习linux进程名的修改

目录 1. 缘起2. 背景知识3. 源码分析3.1 准备工作3.2 设置进程名字 1. 缘起 在运行nginx的时候&#xff0c;用ps查看nginx的进程信息&#xff0c;可能的输出如下&#xff1a; root 42169 3105 0 16:51 ? 00:00:00 nginx: master process ./objs/nginx root …