项目介绍
传统办法管理学生信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装学生信息管理系统软件来发挥其高效地信息处理的作用,可以规范学生信息管理流程,让管理工作可以系统化和程序化,同时,学生信息管理系统的有效运用可以帮助管理人员准确快速地处理信息。
学生信息管理系统在对开发工具的选择上也很慎重,为了便于开发实现,选择的开发工具为idea,选择的数据库工具为Mysql。以此搭建开发环境实现学生信息管理系统的功能。其中管理员管理班级和课程的关系,管理奖惩类型,课程和专业信息。老师负责学生成绩和学生奖惩信息的管理,查询任课课程。学生主要查询成绩,查询奖惩信息,查看班级和班级课程。
学生信息管理系统是一款运用软件开发技术设计实现的应用系统,在信息处理上可以达到快速的目的,不管是针对数据添加,数据维护和统计,以及数据查询等处理要求,学生信息管理系统都可以轻松应对。
为了让系统的编码可以顺利进行,特意对本系统功能进行细分设计,管理员的功能在经过细分后,设计的功能结构见下图。管理员管理班级和课程的关系,管理奖惩类型,课程和专业信息。
老师的功能在经过细分后,设计的功能结构见下图。老师负责学生成绩和学生奖惩信息的管理,查询任课课程。
学生的功能在经过细分后,设计的功能结构见下图。学生主要查询成绩,查询奖惩信息,查看班级和班级课程。
开发环境
编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序ue/爬虫/c#/asp.net
系统实现
第5章 系统实现
这个环节需要使用前面的设计方案,包括对系统模块的设计,还有对程序后台的数据支持的数据库的设计等。不过这部分内容还是强调系统编码人员的开发能力,要把前面设计的内容通过编码的形式以一个完整的,可以运行的系统呈现出来。
5.1管理员功能实现
5.1.1班级和课程关系管理
管理员管理班级和课程关系,其运行效果见下图。在本页面,每个班级对应的课程以及任课老师信息都会清楚的展示,管理员可修改,也能删除。
图5.1 班级和课程关系管理页面
5.1.2老师管理
管理员管理老师。其运行效果见下图。老师是本系统中的一个角色,其信息需要管理员管理。
图5.2 老师管理页面
5.1.3奖惩类型管理
管理员可以管理奖惩类型,其运行效果见下图。管理员修改奖惩类型名称,提交奖惩类型名字获取对应信息。
图5.3 奖惩类型管理页面
5.2 老师功能实现
5.2.1成绩管理
老师管理成绩。其运行效果见下图。老师登记各个学生的课程学习分数,可以根据分数段查询学生成绩。
图5.4 成绩管理页面
5.2.2学生奖惩管理
老师管理学生奖惩,其运行效果见下图。学生的奖励和惩罚信息需要教师添加和管理。
图5.5 学生奖惩管理页面
5.2.3课程管理
老师管理课程,其运行效果见下图。老师在当前页面查看课程,也能根据老师姓名查询对应课程信息。
图5.6 课程管理页面
5.3 学生功能实现
5.3.1班级管理
学生管理班级。其运行效果见下图。学生除了可以查询班级信息之外,还可以查看该班级的课程信息。
图5.7 班级管理页面
5.3.2查询成绩
学生查询成绩,其运行效果见下图。学生在本人后台就能查询成绩。根据课程名称,或者是分数段信息就能查询成绩。
图5.8 查询成绩页面
5.3.3修改密码
学生修改密码。其运行效果见下图。学生在本页面设置新密码,密码设置成功之后,需要重新登录。
图5.9 修改密码页面
核心代码
package com.controller;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import com.entity.YonghuEntity;
import com.service.YonghuService;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.service.TokenService;
import com.utils.StringUtil;
import java.lang.reflect.InvocationTargetException;
import com.service.DictionaryService;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.BanjiEntity;
import com.service.BanjiService;
import com.entity.view.BanjiView;
import com.utils.PageUtils;
import com.utils.R;
/**
* 班级
* 后端接口
*/
@RestController
@Controller
@RequestMapping("/banji")
public class BanjiController {
private static final Logger logger = LoggerFactory.getLogger(BanjiController.class);
@Autowired
private BanjiService banjiService;
@Autowired
private TokenService tokenService;
@Autowired
private DictionaryService dictionaryService;
@Autowired
private YonghuService yonghuService;
//级联表service
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isNotEmpty(role) && "用户".equals(role)){
YonghuEntity yonghuEntity = yonghuService.selectById(String.valueOf(request.getSession().getAttribute("userId")));
params.put("id",yonghuEntity.getBanjiId());
}
PageUtils page = banjiService.queryPage(params);
//字典表数据转换
List<BanjiView> list =(List<BanjiView>)page.getList();
for(BanjiView c:list){
//修改对应字典表字段
dictionaryService.dictionaryConvert(c);
}
return R.ok().put("data", page);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
BanjiEntity banji = banjiService.selectById(id);
if(banji !=null){
//entity转view
BanjiView view = new BanjiView();
BeanUtils.copyProperties( banji , view );//把实体数据重构到view中
//修改对应字典表字段
dictionaryService.dictionaryConvert(view);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@RequestMapping("ve")
public R save(@RequestBody BanjiEntity banji, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,banji:{}",this.getClass().getName(),banji.toString());
Wrapper<BanjiEntity> queryWrapper = new EntityWrapper<BanjiEntity>()
.eq("zhuanye_types", banji.getZhuanyeTypes())
.eq("banji_name", banji.getBanjiName())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
BanjiEntity banjiEntity = banjiService.selectOne(queryWrapper);
if(banjiEntity==null){
banji.setCreateTime(new Date());
// String role = String.valueOf(request.getSession().getAttribute("role"));
// if("".equals(role)){
// banji.set
// }
banjiService.insert(banji);
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody BanjiEntity banji, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,banji:{}",this.getClass().getName(),banji.toString());
//根据字段查询是否有相同数据
Wrapper<BanjiEntity> queryWrapper = new EntityWrapper<BanjiEntity>()
.notIn("id",banji.getId())
.eq("zhuanye_types", banji.getZhuanyeTypes())
.eq("banji_name", banji.getBanjiName())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
BanjiEntity banjiEntity = banjiService.selectOne(queryWrapper);
if(banjiEntity==null){
// String role = String.valueOf(request.getSession().getAttribute("role"));
// if("".equals(role)){
// banji.set
// }
banjiService.updateById(banji);//根据id更新
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids){
logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
banjiService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
论文参考
目 录
第1章 绪论 1
1.1选题动因 1
1.2目的和意义 1
1.3论文结构安排 2
第2章 开发环境与技术 3
2.1 MYSQL数据库 3
2.2 Tomcat 介绍 3
2.3 JSP技术 4
第3章 系统分析 5
3.1可行性分析 5
3.1.1操作可行性分析 5
3.1.2经济可行性分析 5
3.1.3技术可行性分析 5
3.2系统流程分析 6
3.3系统性能分析 7
3.4系统功能分析 8
第4章 系统设计 11
4.1界面设计原则 11
4.2功能结构设计 11
4.3数据库设计 14
4.3.1数据库概念设计 15
4.3.2 数据库物理设计 17
第5章 系统实现 21
5.1管理员功能实现 21
5.1.1班级和课程关系管理 21
5.1.2老师管理 21
5.1.3奖惩类型管理 22
5.2 老师功能实现 22
5.2.1成绩管理 22
5.2.2学生奖惩管理 23
5.2.3课程管理 23
5.3 学生功能实现 24
5.3.1班级管理 24
5.3.2查询成绩 24
5.3.3修改密码 25
第6章 系统测试 26
6.1 系统测试方法 26
6.2 功能测试 26
6.2.1 登录功能测试 27
6.2.2 查询课程功能测试 27
6.3 测试结果分析 27
结 论 28
参考文献 30
致 谢 31