大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。
👇🏻 精彩博文推荐👇🏻 不然下次找不到哟
💞当前专栏:Java毕业设计
精彩专栏推荐👇🏻👇🏻👇🏻
🍅文末获取源码🍅
目录
一、项目简介
本文以JSP为开发技术,实现了一个机房预约系统。机房预约系统的主要使用者分为管理员;个人中心、学生管理、教师管理、机房号管理、机房信息管理、申请预约管理、取消预约管理、留言板管理、论坛管理、系统管理,学生;个人中心、机房信息管理、申请预约管理、取消预约管理、留言板管理,教师;个人中心、机房号管理、机房信息管理、申请预约管理、取消预约管理、留言板管理,前台首页;首页、机房信息、论坛信息、留言反馈、我的、跳转到后台等功能。通过这些功能模块的设计,基本上实现了整个机房预约系统的过程。
具体在系统设计上,采用了B/S的结构,同时,也使用JSP技术在动态页面上进行了设计,后台上采用Mysql数据库,是一个非常优秀的机房预约系统。
二、系统设计
2.1软件功能模块设计
系统整体功能如下:
2.2数据库设计
本系统的E-R图如下图所示:
1、教师信息实体图如图4-3所示:
2、申请预约信息实体图如图4-4所示:
3、取消预约信息实体图如图4-5所示:
三、系统项目部分截图
3.1前台首页功能模块
机房预约系统,在系统首页可以查看首页、机房信息、论坛信息、留言反馈、我的、跳转到后台等内容,如图5-1所示。![![在这里插入图片描述](https://img-blog.csdnimg.cn/5849744d01a247a4a7388569f316f3ae.png)
3.2教师功能模块
教师登录进入机房预约系统可以查看个人中心、机房号管理、机房信息管理、申请预约管理、取消预约管理、留言板管理等内容。
申请预约管理,在申请预约管理页面中通过查看编号、机房号、日期、时段、座位号、申请内容、学号、姓名、身份证、是否审核、审核回复等信息,还可以根据需要对申请预约管理进行修改,如图5-12所示。
3.3学生功能模块
学生登录进入机房预约系统可以查看个人中心、机房信息管理、申请预约管理、取消预约管理、留言板管理等内容。
申请预约管理,在申请预约管理页面中通过查看编号、机房号、日期、时段、座位号、申请内容、学号、姓名、身份证、是否审核、审核回复等信息,还可以根据需要对申请预约管理进行修改,如图5-14所示。
3.4管理员功能模块
管理员登录进入机房预约系统可以查看个人中心、学生管理、教师管理、机房号管理、机房信息管理、申请预约管理、取消预约管理、留言板管理、论坛管理、系统管理等信息。
学生管理,在学生管理页面中可以通过查看学号、姓名、性别、头像、专业、手机号、身份证等内容进行详情、修改、删除,如图5-6所示。还可以根据需要对教师管理进行详情,修改等详细操作,如图5-7所示。
三、论文目录
1 概述 1
1.1课题背景及意义 1
1.2 国内外研究现状 1
1.3 本课题主要工作 2
2 系统开发环境 3
2.1 java简介 3
2.2 Mysql数据库 3
2.3 B/S结构 4
2.4 JSP技术介绍 4
3 系统分析 5
3.1 可行性分析 5
3.1.1 技术可行性 5
3.1.2操作可行性 5
3.1.3 经济可行性 5
3.1.4 法律可行性 6
3.2系统流程分析 6
3.2.1系统开发流程 6
3.2.2 用户登录流程 7
3.2.3 系统操作流程 7
3.2.4 添加信息流程 8
3.2.5 修改信息流程 9
3.2.6 删除信息流程 9
3.3系统用例分析 10
3.3.1管理员用例图 10
3.3.2学生用例图 10
4 系统设计 11
4.1 系统概述 11
4.2 系统结构设计 12
4.3数据库设计 13
4.3.1 数据库设计原则 13
4.3.2 数据库实体 13
4.3.3 数据库表设计 14
5统详细设计 17
5.1前台首页功能模块 17
5.2管理员功能模块 18
5.3教师功能模块 21
5.4学生功能模块 21
6系统测试 23
6.1系统测试的意义 23
6.2 测试方法 24
6.3测试分析 24
结 论 26
致 谢 27
参考文献 28
四、部分核心代码
4.1 用户部分
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.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();
}
}
获取源码或论文
源码下载地址:
https://download.csdn.net/download/m0_46388260/87798468
如需对应的论文,可以联系我