当前位置:   article > 正文

Java——学生成绩管理系统_学生成绩管理系统java

学生成绩管理系统java

一、项目简介

学生管理系统是一种基于计算机技术实现的学生信息管理工具,能够方便地对学生信息进行录入、查询、修改和删除。该项目采用 Java 语言编写,使用 Spring MVC 框架和 MySQL 数据库,实现了以上所述的主要功能,该学生管理系统可以应用于学校、培训机构、教育机构等场景,能够大大提升学生信息的管理效率和工作效率,为学校及相关教育机构提供快捷、准确的信息服务。

二、项目采用技术

数据库Mysql,WEB技术,MVC架构技术,duird连接池,Javascript/Ajax/jQuery

三、功能需求分析

1.学生信息管理:包括学生姓名、学号、性别、出生日期等信息。

2.课程信息管理:包括课程名称、课程编号、授课教师等信息。

3.成绩录入︰教师可以录入学生的成绩,包括考试成绩和平时成绩。

4.成绩查询:学生和教师可以查询自己或其他人的成绩。

5.统计分析∶系统可以对成绩进行统计分析,例如班级平均分、最高分最低分等。

四、项目亮点

模糊查询,支持分别对所有学生各科成绩画出柱状分布图,采用了 Web 技术,具有良好的用户界面和交互体验,管理员和教师还有学生需要输入密码才能登录系统,保障信息安全性。

五、系统演示操作

学生管理系统主页面

管理员添加学生

 管理员添加教师

管理员查看班级科目成绩

 教师页面查看学生信息

教师端查看班级科目对比柱形图

学生端查看个人成绩

 六、团队成员负责模块

翟振旭

1.根据学生姓名(支持模糊匹配)查找学生成绩,并在界面上显示姓名、学号和成绩

2.支持用户登录、验证操作

3.前段图像交互部分

张卫

1.添加学生成绩功能。

2.支持对学生信息的修改与删除

赵晋杰

1.添加学生功能:姓名、学号、性别、出生年月日。

2.支持分别对所有学生各科成绩画出柱状分布图

七、团队项目报告

张卫     添加学生成绩功能

  1. @RequestMapping(value = "/stuscoreAdd")
  2. @ResponseBody
  3. public String stuScoreAdd(@RequestBody Map map) {
  4. String coursename = (String) map.get("coursename");
  5. String courseid = gcCourseService.findCourseByNam(coursename);
  6. map.put("courseid",courseid);
  7. map.remove("coursename");
  8. if (stuService.stuScoreAdd(map) > 0) {
  9. return "success";
  10. }
  11. return "failure";
  12. }

 支持对学生信息的修改与删除

  1. @RequestMapping("/deleteStus")
  2. @ResponseBody
  3. public String deleteStus(@RequestParam("nums") Object nums) {
  4. String datas = nums.toString();
  5. System.out.println(datas);
  6. String[] str = datas.split(",");
  7. List<String> data = new ArrayList<String>();
  8. for (int i = 0; i < str.length; i++) {
  9. data.add(str[i]);
  10. }
  11. System.out.println(data.toString());
  12. if (stuService.deleteByForeach(data) > 0) {
  13. return "success";
  14. } else {
  15. return "fail";
  16. }
  17. }
  18. @RequestMapping("/deleteStu")
  19. @ResponseBody
  20. public String deleteStu(@RequestParam("num") String num) {
  21. if (stuService.deleteStu(num) > 0) {
  22. return "success";
  23. } else {
  24. return "fail";
  25. }
  26. }

翟振旭      根据学生姓名查找学生成绩

  1. @RequestMapping("/getStuByName")// 声明请求映射路径
  2. @ResponseBody// 告诉Spring MVC将返回结果转换为JSON格式并发送给客户端
  3. public String getStuByName(@RequestParam("key[id]") String name, @RequestParam("limit") String limit,
  4. @RequestParam("page") String page) {
  5. int lim = Integer.parseInt(limit);
  6. int start = (Integer.parseInt(page) - 1) * lim;
  7. if (name.equals("")) {
  8. Map<String, Object> map = new HashMap<>();
  9. map.put("start", start);
  10. map.put("pagesize", lim);
  11. List<Stu> stuList = stuService.findAllStu(map);// 调用业务逻辑层的方法查询学生信息
  12. int total = stuService.stuCount();
  13. Layui l = Layui.data(total, stuList);
  14. return JSON.toJSONString(l);
  15. } else {
  16. List<Stu> stuList = stuService.findStuByName(name, start, lim);
  17. int total = stuList.size();
  18. Layui l = Layui.data(total, stuList);
  19. System.out.println("学生信息:"+JSON.toJSONString(l));
  20. return JSON.toJSONString(l);
  21. }
  22. }

 支持用户登录、验证操作

  1. @ResponseBody// 告诉Spring MVC将返回结果转换为JSON格式并发送给客户端
  2. @RequestMapping(value = "/dealLogin")// 声明请求映射路径
  3. public String getInfo(@RequestParam(value = "num") String num, @RequestParam(value = "psw") String psw,
  4. @RequestParam(value = "identify") String identify, HttpSession httpSession) {
  5. String dataJson = "fail";
  6. if (Integer.parseInt(identify) == 0) {
  7. List<Admin> adminList = new ArrayList<>();
  8. adminList = adminService.findAdmin(num, SecureUtil.md5(psw));// 调用业务逻辑层的方法查询管理员信息
  9. if (adminList.size() > 0) {
  10. String account = adminList.get(0).getAccount();
  11. String name = adminList.get(0).getName();
  12. httpSession.setAttribute("account", account);
  13. httpSession.setAttribute("name", name);
  14. httpSession.setAttribute("photo", "admin.png");
  15. httpSession.setAttribute("role", "admin");
  16. dataJson = JSON.toJSONString(adminList);
  17. return dataJson;
  18. }
  19. } else if (Integer.parseInt(identify) == 1) {
  20. List<Teacher> teaList = new ArrayList<>();
  21. teaList = teacherService.findTeacher(num, SecureUtil.md5(psw));
  22. if (teaList.size() > 0) {
  23. String name = teaList.get(0).getName();
  24. String photo = teaList.get(0).getPhoto();
  25. String account = teaList.get(0).getTeachno();
  26. httpSession.setAttribute("account", account);
  27. httpSession.setAttribute("name", name);
  28. httpSession.setAttribute("photo", photo);
  29. httpSession.setAttribute("role", "teacher");
  30. dataJson = JSON.toJSONString(teaList);
  31. return dataJson;
  32. }
  33. } else if (Integer.parseInt(identify) == 2) {
  34. List<Stu> stuList = new ArrayList<>();
  35. stuList = stuService.findStu(num, SecureUtil.md5(psw)); // 调用业务逻辑层的方法查询学生信息
  36. if (stuList.size() > 0) {
  37. String name = stuList.get(0).getName();
  38. String photo = stuList.get(0).getPhoto();
  39. String account = stuList.get(0).getStuno();
  40. httpSession.setAttribute("account", account);
  41. httpSession.setAttribute("name", name);
  42. httpSession.setAttribute("photo", photo);
  43. httpSession.setAttribute("role", "stu");
  44. dataJson = JSON.toJSONString(stuList);
  45. return dataJson;
  46. }
  47. }
  48. return "fail";
  49. }

 赵晋杰        支持分别对所有学生各科成绩画出柱状分布图

  1. var documentWidth = $(document).width();//定义柱状图的宽度
  2. layui.use(['table','form'],function(){//引用前端layui加载模块table和form,并构造function函数
  3. var grade = "2016";
  4. var cla="01";
  5. var coursename="高数";
  6. var type='未批改';
  7. var table = layui.table;
  8. var form = layui.form;
  9. //定义各项值
  10. form.render();//对form进行渲染
  11. //调用form.on方法与function函数,代入各项的值
  12. form.on('select(grade)',function(data){
  13. grade = data.value;
  14. })
  15. form.on('select(cla)',function(data){
  16. cla = data.value;
  17. })
  18. form.on('select(coursename)',function(data){
  19. coursename = data.value;
  20. })
  21. form.on('select(type)',function(data){
  22. type = data.value;
  23. })
  24. //对table进行渲染
  25. table.render({
  26. elem: '#test' //绑定table表格
  27. //定义变量
  28. ,id:'csInfo'
  29. ,method:'post'
  30. ,url: 'getGcs' //后台springmvc接收路径
  31. ,page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
  32. layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
  33. //,curr: 5 //设定初始在第 5 页
  34. ,groups: 1 //只显示 1 个连续页码
  35. ,first: false //不显示首页
  36. ,last: false //不显示尾页
  37. ,limit:3
  38. ,limits:[3,6,9]
  39. }
  40. ,cols: [
  41. [
  42. //定义各项数值的称号与宽度
  43. {type: 'checkbox',width:documentWidth*4/100}
  44. ,{field:'stuno',title:'学号', width:documentWidth*10/100, sort: true}
  45. ,{field:'name',title:'姓名', width:documentWidth*8/100,sort:true}
  46. ,{field:'coursename',title:'学科',width:documentWidth*8/100,sort:true}
  47. ,{field:'score',edit: 'text',title:'成绩',width:documentWidth*8/100,sort:true}
  48. ,{field:'type',edit: 'text',title:'类型',width:documentWidth*8/100,sort:true}
  49. ,{field:'operation',edit: 'text',title:'操作',toolbar: '#barDemo'}
  50. ]
  51. ]
  52. ,where: {
  53. key:{//key接口
  54. grade : grade ,
  55. cla: cla,
  56. coursename: coursename,
  57. type:type
  58. }
  59. }
  60. });

 添加学生功能:姓名、学号、性别、出生年月日

  1. @RequestMapping(value = "/registerStuDeal")//@RequestMapping:将请求映射到控制器方法上
  2. @ResponseBody//接受前端传递给后端的字符串中的数据
  3. public String registerDeal(@RequestBody Map map) {//接收需求,传递到后端
  4. //获得键名并存放
  5. 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)));
  6. //String.valueOf(将后方数据转化为字符串) substring:子字符串
  7. map.put("psw",SecureUtil.md5(map.get("psw").toString()));
  8. //md5:加密 map.get:返回指定键所映射的值
  9. if (stuService.addStu(map) > 0) {//判定map值
  10. return "success"
  11. return "failure";
  12. ";
  13. }

八、项目git地址

https://gitee.com/zhai-zhenxu/

九、团队成员git提交记录截图

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/41495
推荐阅读
相关标签
  

闽ICP备14008679号