Java——学生成绩管理系统
一、项目简介
学生管理系统是一种基于计算机技术实现的学生信息管理工具,能够方便地对学生信息进行录入、查询、修改和删除。该项目采用 Java 语言编写,使用 Spring MVC 框架和 MySQL 数据库,实现了以上所述的主要功能,该学生管理系统可以应用于学校、培训机构、教育机构等场景,能够大大提升学生信息的管理效率和工作效率,为学校及相关教育机构提供快捷、准确的信息服务。
二、项目采用技术
数据库Mysql,WEB技术,MVC架构技术,duird连接池,Javascript/Ajax/jQuery
三、功能需求分析
学生信息管理:包括学生姓名、学号、性别、出生日期等信息。
课程信息管理:包括课程名称、课程编号、授课教师等信息。
成绩录入︰教师可以录入学生的成绩,包括考试成绩和平时成绩。
成绩查询:学生和教师可以查询自己或其他人的成绩。
统计分析∶系统可以对成绩进行统计分析,例如班级平均分、最高分最低分等。
四、项目亮点
模糊查询,支持分别对所有学生各科成绩画出柱状分布图,采用了 Web 技术,具有良好的用户界面和交互体验,管理员和教师还有学生需要输入密码才能登录系统,保障信息安全性。
五、系统演示操作
学生管理系统主页面
管理员添加学生
管理员添加教师
管理员查看班级科目成绩
教师页面查看学生信息
教师端查看班级科目对比柱形图
学生端查看个人成绩
六、团队成员负责模块
翟振旭 | 根据学生姓名(支持模糊匹配)查找学生成绩,并在界面上显示姓名、学号和成绩 支持用户登录、验证操作 前段图像交互部分 |
张卫 | 添加学生成绩功能。 支持对学生信息的修改与删除 |
赵晋杰 | 添加学生功能:姓名、学号、性别、出生年月日。 支持分别对所有学生各科成绩画出柱状分布图 |
七、团队项目报告
张卫 添加学生成绩功能
@RequestMapping(value = "/stuscoreAdd")@ResponseBodypublic String stuScoreAdd(@RequestBody Map map) { String coursename = (String) map.get("coursename"); String courseid = gcCourseService.findCourseByNam(coursename); map.put("courseid",courseid); map.remove("coursename");if (stuService.stuScoreAdd(map) > 0) {return "success";}return "failure";}
支持对学生信息的修改与删除
@RequestMapping("/deleteStus")@ResponseBodypublic String deleteStus(@RequestParam("nums") Object nums) {String datas = nums.toString();System.out.println(datas);String[] str = datas.split(",");List data = new ArrayList();for (int i = 0; i < str.length; i++) {data.add(str[i]);}System.out.println(data.toString());if (stuService.deleteByForeach(data) > 0) {return "success";} else {return "fail";}}@RequestMapping("/deleteStu")@ResponseBodypublic String deleteStu(@RequestParam("num") String num) {if (stuService.deleteStu(num) > 0) {return "success";} else {return "fail";}}
翟振旭 根据学生姓名查找学生成绩
@RequestMapping("/getStuByName")// 声明请求映射路径@ResponseBody// 告诉Spring MVC将返回结果转换为JSON格式并发送给客户端public String getStuByName(@RequestParam("key[id]") String name, @RequestParam("limit") String limit,@RequestParam("page") String page) {int lim = Integer.parseInt(limit);int start = (Integer.parseInt(page) - 1) * lim;if (name.equals("")) {Map map = new HashMap<>();map.put("start", start);map.put("pagesize", lim);List stuList = stuService.findAllStu(map);// 调用业务逻辑层的方法查询学生信息int total = stuService.stuCount();Layui l = Layui.data(total, stuList);return JSON.toJSONString(l);} else {List stuList = stuService.findStuByName(name, start, lim);int total = stuList.size();Layui l = Layui.data(total, stuList);System.out.println("学生信息:"+JSON.toJSONString(l));return JSON.toJSONString(l);}}
支持用户登录、验证操作
@ResponseBody// 告诉Spring MVC将返回结果转换为JSON格式并发送给客户端@RequestMapping(value = "/dealLogin")// 声明请求映射路径public String getInfo(@RequestParam(value = "num") String num, @RequestParam(value = "psw") String psw,@RequestParam(value = "identify") String identify, HttpSession httpSession) {String dataJson = "fail";if (Integer.parseInt(identify) == 0) {List adminList = new ArrayList<>();adminList = adminService.findAdmin(num, SecureUtil.md5(psw));// 调用业务逻辑层的方法查询管理员信息if (adminList.size() > 0) {String account = adminList.get(0).getAccount();String name = adminList.get(0).getName();httpSession.setAttribute("account", account);httpSession.setAttribute("name", name);httpSession.setAttribute("photo", "admin.png");httpSession.setAttribute("role", "admin");dataJson = JSON.toJSONString(adminList);return dataJson;}} else if (Integer.parseInt(identify) == 1) {List teaList = new ArrayList<>();teaList = teacherService.findTeacher(num, SecureUtil.md5(psw));if (teaList.size() > 0) {String name = teaList.get(0).getName();String photo = teaList.get(0).getPhoto();String account = teaList.get(0).getTeachno();httpSession.setAttribute("account", account);httpSession.setAttribute("name", name);httpSession.setAttribute("photo", photo);httpSession.setAttribute("role", "teacher");dataJson = JSON.toJSONString(teaList);return dataJson;}} else if (Integer.parseInt(identify) == 2) {List stuList = new ArrayList<>();stuList = stuService.findStu(num, SecureUtil.md5(psw)); // 调用业务逻辑层的方法查询学生信息if (stuList.size() > 0) {String name = stuList.get(0).getName();String photo = stuList.get(0).getPhoto();String account = stuList.get(0).getStuno();httpSession.setAttribute("account", account);httpSession.setAttribute("name", name);httpSession.setAttribute("photo", photo);httpSession.setAttribute("role", "stu");dataJson = JSON.toJSONString(stuList);return dataJson;}}return "fail";}
赵晋杰 支持分别对所有学生各科成绩画出柱状分布图
var documentWidth = $(document).width();//定义柱状图的宽度layui.use(['table','form'],function(){//引用前端layui加载模块table和form,并构造function函数var grade = "2016";var cla="01";var coursename="高数";var type='未批改';var table = layui.table;var form = layui.form;//定义各项值form.render();//对form进行渲染//调用form.on方法与function函数,代入各项的值form.on('select(grade)',function(data){grade = data.value;})form.on('select(cla)',function(data){cla = data.value;})form.on('select(coursename)',function(data){coursename = data.value;})form.on('select(type)',function(data){type = data.value;})//对table进行渲染table.render({elem: '#test' //绑定table表格//定义变量,id:'csInfo',method:'post',url: 'getGcs' //后台springmvc接收路径,page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局//,curr: 5 //设定初始在第 5 页,groups: 1 //只显示 1 个连续页码,first: false //不显示首页,last: false //不显示尾页,limit:3,limits:[3,6,9]},cols: [[//定义各项数值的称号与宽度{type: 'checkbox',width:documentWidth*4/100},{field:'stuno',title:'学号', width:documentWidth*10/100, sort: true},{field:'name',title:'姓名', width:documentWidth*8/100,sort:true},{field:'coursename',title:'学科',width:documentWidth*8/100,sort:true},{field:'score',edit: 'text',title:'成绩',width:documentWidth*8/100,sort:true},{field:'type',edit: 'text',title:'类型',width:documentWidth*8/100,sort:true},{field:'operation',edit: 'text',title:'操作',toolbar: '#barDemo'}]],where: {key:{//key接口grade : grade ,cla: cla,coursename: coursename,type:type}}});
添加学生功能:姓名、学号、性别、出生年月日
@RequestMapping(value = "/registerStuDeal")//@RequestMapping:将请求映射到控制器方法上@ResponseBody//接受前端传递给后端的字符串中的数据public String registerDeal(@RequestBody Map map) {//接收需求,传递到后端//获得键名并存放map.put("stuno",String.valueOf(new Date().toString().substring(24,28)+0+String.valueOf((int)(Math.random()*4) )+String.valueOf(System.currentTimeMillis()).substring(9,12)));//String.valueOf(将后方数据转化为字符串) substring:子字符串map.put("psw",SecureUtil.md5(map.get("psw").toString()));//md5:加密 map.get:返回指定键所映射的值if (stuService.addStu(map) > 0) {//判定map值return "success"return "failure";";}
八、项目git地址
https://gitee.com/zhai-zhenxu/
九、团队成员git提交记录截图
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341