基于SSM的大学生评优管理系统-老师满意

本文介绍了基于JSP技术的大学生评优管理系统设计,包括系统总体结构、数据库设计原则、各模块功能(如学生、教师、管理员操作)以及实体关系模型。展示了详细的模块设计和数据库表结构,为读者提供了开发和理解该系统的基础。
摘要由CSDN通过智能技术生成

  博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到

🔎千套JAVA项目实战持续更新中~

🔎百套小程序APP项目实战持续更新中~

🔎百套Python实战项目持续更新中~
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,需要开题模板的可以私信留言告诉我

❤️文末获取源码联系❤️        ⚠️一定要先收藏⚠️

 

4 系统总体设计

此次大学生评优管理系统通过JSP技术。JSP适合快速构建Web应用。将动态的逻辑处理交给View处理,页面通过Template来实现。Model和Template由View连在一起,如此划分后,程序中的每一部分只做一件事情,耦合度大大降低,便于开发者管理。为了更好的去理清本系统整体思路,对该系统以结构图的形式表达出来,设计实现该大学生评优管理系统的功能结构图如下所示:

图4-1 系统总体结构图

4.1  数据库设计原则

数据库设计之后,根据数据库关系,可以更加清晰地了解到数据库结构,每一个数据表之间的关系,再创建数据表。快速更改和查询对应的信息,有了数据库就不用在程序和代码中寻找。

4.2模型的设计

在关系数据E-R图中,分析并创建数据表,数据表用来记录信息,数据表关系由多个数据表组成,该系统中存在多个自定义模型,下面依次进行介绍。

表4-1:评定公示

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

mingcheng

varchar

200

名称

minge

int

名额

jiangxuejin

float

奖学金

faburiqi

varchar

200

发布日期

xuehao

varchar

200

学号

xueshengxingming

varchar

200

学生姓名

xueyuan

varchar

200

学院

banji

varchar

200

班级

gongshishijian

datetime

公示时间

gongshineirong

longtext

4294967295

公示内容

表4-2:教师

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

gonghao

varchar

200

工号

mima

varchar

200

密码

jiaoshixingming

varchar

200

教师姓名

xingbie

varchar

200

性别

youxiang

varchar

200

邮箱

shoujihaoma

varchar

200

手机号码

touxiang

longtext

4294967295

头像

表4-3:学院信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xueyuanmingcheng

varchar

200

学院名称

xueyuandizhi

varchar

200

学院地址

xueyuanleixing

varchar

200

学院类型

xueyuanjianjie

longtext

4294967295

学院简介

xiaozhang

varchar

200

校长

chuanglishijian

date

创立时间

faburiqi

date

发布日期

表4-4:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表4-5:学生

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xuehao

varchar

200

学号

mima

varchar

200

密码

xueshengxingming

varchar

200

学生姓名

xingbie

varchar

200

性别

youxiang

varchar

200

邮箱

shoujihaoma

varchar

200

手机号码

xueyuan

varchar

200

学院

banji

varchar

200

班级

touxiang

longtext

4294967295

头像

表4-6:成绩信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xueke

varchar

200

学科

xueqi

varchar

200

学期

xuefen

varchar

200

学分

kaoshichengji

float

考试成绩

xuehao

varchar

200

学号

xueshengxingming

varchar

200

学生姓名

xueyuan

varchar

200

学院

banji

varchar

200

班级

faburiqi

date

发布日期

gonghao

varchar

200

工号

jiaoshixingming

varchar

200

教师姓名

表4-7:学科信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xuekemingcheng

varchar

200

学科名称

xuekejianjie

longtext

4294967295

学科简介

表4-8:班级信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

banjimingcheng

varchar

200

班级名称

banzhuren

varchar

200

班主任

lianxidianhua

varchar

200

联系电话

faburiqi

date

发布日期

表4-9:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-10:token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表4-11:申请信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

mingcheng

varchar

200

名称

minge

varchar

200

名额

faburiqi

varchar

200

发布日期

xuehao

varchar

200

学号

xueshengxingming

varchar

200

学生姓名

xueyuan

varchar

200

学院

banji

varchar

200

班级

shifouyouchufen

varchar

200

是否有处分

shifouguake

varchar

200

是否挂科

guakeshumu

int

挂科数目

huodejiangli

longtext

4294967295

获得奖励

shenqingliyou

varchar

200

申请理由

shenqingzhengming

longtext

4294967295

申请证明

shenqingriqi

date

申请日期

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-12:评优标准

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

mingcheng

varchar

200

名称

minge

int

名额

jiangxuejin

float

奖学金

jibenyaoqiu

longtext

4294967295

基本要求

liuchengxinxi

longtext

4294967295

流程信息

faburiqi

date

发布日期

表4-13:评定信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

mingcheng

varchar

200

名称

minge

varchar

200

名额

faburiqi

varchar

200

发布日期

xuehao

varchar

200

学号

xueshengxingming

varchar

200

学生姓名

xueyuan

varchar

200

学院

banji

varchar

200

班级

pingdingneirong

longtext

4294967295

评定内容

gonghao

varchar

200

工号

jiaoshixingming

varchar

200

教师姓名

pingdingriqi

date

评定日期

表4-14:评定结果

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

mingcheng

varchar

200

名称

minge

varchar

200

名额

faburiqi

varchar

200

发布日期

xuehao

varchar

200

学号

xueshengxingming

varchar

200

学生姓名

xueyuan

varchar

200

学院

banji

varchar

200

班级

pingdingjieguo

varchar

200

评定结果

beizhu

varchar

200

备注

fabushijian

datetime

发布时间

4.3

本章介绍了大学生评优管理系统各个模块以及之间的相互联系,从宏观角度上介绍了每一个模块的作用,而后通过表格的方式介绍了每一个模型的属性,最后通过多张ER图,说明了实体间的联系。

5 系统详细设计与实现

按照软件工程的流程来说,在系统的详细设计与实现阶段,要把模块、视图、模板进行相应的组合完成一个个所需的功能,此章将会把设计中模块进行说明如何设计和实现的。

5.1  学生功能模块

注册时将进行密码校验,若密码不一致将不能注册,以此来防止学生输入错误密码,影响体验,下面截图是学生注册成功页面,如图5-1所示。

        图5-1学生注册界面

学生登录界面,首先双击打开系统,连上网络之后会显示出本系统的登录界面,这是进入系统的第初始页面“登录”,能成功进入到该登录界面则代表系统的开启是成功的,接下来就可以操作本系统所带有的其他所有的功能,如图5-2所示。

        图5-2学生登录界面

学生点击登录摁钮到大学生评优管理系统查看首页、个人中心、成绩信息管理、评优标准管理、申请信息管理、评定信息管理、评定结果管理、评定公示管理等内容,进行相应操作,如图5-3所示。

图5-3学生功能界面图

学生点击评优标准管理,在评优标准管理页面,对名称、名额 、奖学金、基本要求、发布日期等内容,进行查询或者申请,评优标准等操作,如图5-4所示。

               

图5-4评优标准管理界面图

5.2  教师功能模块

教师点击登录摁钮到大学生评优管理系统查看首页、个人中心、成绩信息管理、申请信息管理、评定信息管理等内容,进行相应操作,如图5-7所示。

图5-7教师功能界面图

教师点击评定信息管理,在评定信息管理页面,对名称、名额 、发布日期、学号、学生姓名、学院、班级、评定内容、工号、教师姓名、评定日期等内容,进行查询或者删除评定信息等操作,如图5-8所示。

               

图5-8评定信息管理界面图

5.3  管理员功能模块

管理员登录,通过登录页面输入用户名、密码、选择角色等信息,进行登录操作,如图5-9所示。

图5-9管理员登录界面图

管理员点击登录摁钮进入大学生评优管理系统对首页、个人中心、学生管理、教师管理、学院信息管理、班级信息管理、学科信息管理、成绩信息管理、评优标准管理、申请信息管理、评定信息管理、评定结果管理、评定公示管理等功能,进行相应操作,如图5-10所示。

图5-10管理员功能界面图

JAVA后端代码实现

package com.controller;
 
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
 
/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;
 
	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }
 
    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
 
    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

源码获取

大家点赞、收藏、关注 ,让更多需要的同学看到

不同开发语言专栏推荐订阅

 🔎千套JAVA项目实战持续更新中~

🔎百套小程序APP项目实战持续更新中~

🔎百套Python实战项目持续更新中~

👇下方有我的微信名片👇

  • 34
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值