答辩评分选题系统-JAVA.VUE【源码开题全套论文】

 博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐进主页热门专栏推荐订阅⭐ 订阅收藏起来,防止下次找不到
🔎千套Java / PHP / nod.js / asp.net/ Python等项目实战更新中~
🔎百套小程序APP项目实战更新中~

有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,帮你完成文档

⚠️文末联系方式获取完整资料⚠️

 

第四章 系统设计

4.1系统功能及工作原理设计

设计这个管理系统能使用户实现不需出门就可以在电脑前进行个人信息修改,对系统功能进行有效管理。

本系统由管理员、导师和学生三大模块组成。通过数据交互与数据传输实现本系统的所有功能。

管理员登录进入系统直接管理首页、个人中心、导师管理、学生管理、院系管理、专业管理、答辩小组管理、毕设课题管理、毕设选题管理、论文提交管理、指导建议管理、学生成绩管理、在线留言、系统管理等信息。本网站模块设计的独立性强,用户体验良好、后期维护修改管理十分方便。

学生模块的主要设计是:在登陆成功后,本系统实现对首页、个人中心、毕设选题管理、论文提交管理、指导建议管理、学生成绩管理等功能进行详细操作;

导师进入系统对首页、个人中心、学生管理、答辩小组管理、毕设课题管理、毕设选题管理、论文提交管理、指导建议管理、学生成绩管理等进行操作。

本系统是以网络业务模式为基础的,适合于互联网的应用。只要能连接到互联网,就可以不受到时间和地点的限制,随便来使用本答辩评分系统。答辩评分系统工作原理图,如图4-1所示。

图4-1 系统工作原理图

4.2程序结构图

本系统登录结构图,如图4-2所示。

图4-2 登录结构图

系统分成三个角色,根据每个角色的权限分析得出三大模块,包括管理员模块,导师模块和学生模块;管理员模块主要针对整个系统的管理进行设计,提高了管理的效率和标准。系统的总体模块功能设计如下图所示:。

图4-3 系统总体功能结构图

4.3数据库的设计

所有的网站设计都离不开数据库,数据库是所有项目实现如数据采集、数据传输等功能的基石。只有合理的数据库设计才能满足商业化的要求,主键外键数据库的连接方式尤为重要,尽量避免多对多的复杂性,字段命名合理标准,且易于理解,字段应根据业务设置,不允许操作字段而对系统有额外的占用内存。

4.3.1数据库实体及属性

本答辩评分的E-R图描述了在系统中各个实体之间的联系,以下是对部分主要的关键实体如下:

成绩排名实体属性图,如图4-4所示。

图4-4成绩排名实体属性图

学生成绩实体属性图,如图4-5所示。

图4-5学生成绩实体属性图

毕设选题实体属性图,如图4-6所示。

图4-6毕设选题实体属性图

用户实体属性图,如图4-7所示。

导师实体属性图,如图4-8所示。

图4-8导师实体属性图

4.3.2数据库设计表

设计基于JAVA的答辩评分系统的用户注册等信息和一些功能数据都需要用到我们的数据库来存和取,数据库表的信息如下所示。

表4-1:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表4-2:院系

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yuanxi

varchar

200

院系

表4-3:成绩排名

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

paiming

int

排名

zongchengji

float

总成绩

tongjiriqi

date

统计日期

xuexixuehao

varchar

200

学习学号

xueshengxingming

varchar

200

学生姓名

yuanxi

varchar

200

院系

zhuanye

varchar

200

专业

daoshizhanghao

varchar

200

导师账号

daoshixingming

varchar

200

导师姓名

表4-4:学生成绩

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

lunwenchengji

float

论文成绩

dabianchengji

float

答辩成绩

zongchengji

float

总成绩

pingjiajieguo

varchar

200

评价结果

lururiqi

date

录入日期

daoshizhanghao

varchar

200

导师账号

daoshixingming

varchar

200

导师姓名

xueshengxuehao

varchar

200

学生学号

xueshengxingming

varchar

200

学生姓名

yuanxi

varchar

200

院系

zhuanye

varchar

200

专业

shouji

varchar

200

手机

表4-5:毕设选题

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xuantimingcheng

varchar

200

选题名称

xuantileixing

varchar

200

选题类型

daoshizhanghao

varchar

200

导师账号

daoshixingming

varchar

200

导师姓名

xuantishenqing

longtext

4294967295

选题申请

shenqingziliao

longtext

4294967295

申请资料

xuantiriqi

date

选题日期

xueshengxuehao

varchar

200

学生学号

xueshengxingming

varchar

200

学生姓名

yuanxi

varchar

200

院系

zhuanye

varchar

200

专业

shouji

varchar

200

手机

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-6:专业

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhuanye

varchar

200

专业

表4-7:学生

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xueshengxuehao

varchar

200

学生学号

xueshengxingming

varchar

200

学生姓名

mima

varchar

200

密码

xingbie

varchar

200

性别

yuanxi

varchar

200

院系

zhuanye

varchar

200

专业

daoshizhanghao

varchar

200

导师账号

daoshixingming

varchar

200

导师姓名

xiaozumingcheng

varchar

200

答辩小组

shouji

varchar

200

手机

touxiang

longtext

4294967295

头像

表4-8:毕设课题

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xuantimingcheng

varchar

200

选题名称

xuantileixing

varchar

200

选题类型

xuantiyaoqiu

varchar

200

选题要求

zhuanye

varchar

200

适用专业

tupian

longtext

4294967295

图片

faburiqi

date

发布日期

daoshizhanghao

varchar

200

导师账号

daoshixingming

varchar

200

导师姓名

lianxifangshi

varchar

200

联系方式

表4-9:指导建议

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xuantimingcheng

varchar

200

选题名称

xuantileixing

varchar

200

选题类型

daoshizhanghao

varchar

200

导师账号

daoshixingming

varchar

200

导师姓名

zhidaojianyi

longtext

4294967295

指导建议

zhidaoziliao

longtext

4294967295

指导资料

zhidaoshijian

datetime

指导时间

lunwenneirong

longtext

4294967295

论文内容

tijiaoshijian

varchar

200

提交时间

xueshengxuehao

varchar

200

学生学号

xueshengxingming

varchar

200

学生姓名

yuanxi

varchar

200

院系

zhuanye

varchar

200

专业

shouji

varchar

200

手机

表4-10:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-16:答辩小组

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xiaozumingcheng

varchar

200

小组名称

xueshengxingming

varchar

200

小组成员

xiaozuyaoqiu

longtext

4294967295

小组要求

tupian

longtext

4294967295

图片

beizhu

varchar

200

备注

fenzushijian

date

分组时间

daoshizhanghao

varchar

200

导师账号

daoshixingming

varchar

200

导师姓名

第五章 系统的实现

5.1系统模块实现

当人们打开系统的网址后,首先看到的就是首页界面。在系统首页页面可以看到系统导航条等信息;系统首页界面如图5-1所示:

图5-1 系统首页界面

系统注册:在系统注册页面的输入栏中输入用户注册信息进行注册操作,系统注册页面如图5-2所示:

图5-2系统注册页面

系统登录:在系统登录页面的输入栏中输入用户登录信息进行登录操作,系统登录页面如图5-2所示:

图5-3系统登录页面

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 / PHP / nod.js / asp.net/ Python等项目实战更新中~
🔎百套小程序APP项目实战更新中~

👇下方有我的微信名片👇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值