当前位置:   article > 正文

Springboot+vue基于微信小程序的高校图书馆座位管理系统 开题报告 毕业设计_基于微信小程序的图书馆座位预定系统开题报告

基于微信小程序的图书馆座位预定系统开题报告

很多朋友发现后期找不到文章,收藏关注不迷路

项目介绍

随着互联网技术的发展,高校图书馆座位管理发生了改变,从传统的人工管理逐渐发展为计算机信息管理模式,通过基于微信小程序的高校图书馆座位管理系统,可以让更多的学生参与进来,图书馆座位预约不再受时间和地点的限制、方便了在校学习。同时,可以为图书馆座位管理员提高便捷的管理模式,在这种一举两得的模式下,开发基于微信小程序的高校图书馆座位管理系统是非常有意义的事情。
基于微信小程序的高校图书馆座位管理系统利用Java框架开发的一款微信小程序,数据存储到MySQL中,客户端前台使用微信小程序技术对界面进行设计和实现。本文先充分调查基于微信小程序的高校图书馆座位管理系统的需求分析,深入剖析系统应该具有的功能,并设计完善的数据库。利用成熟的开发技术完成编码工作,最后进行投入前的测试工作。最终,完成前台和后台的基于微信小程序的高校图书馆座位管理系统的功能,主要包括用户管理、座位管理、公告管理、意见管理、座位预定流程、信用积分规则、座位利用率数据分析等,通过前后台实现数据的传递。

研究的背景和意义

随着计算机信息技术和网络化进程的发展,各种类型的管理系统逐渐成熟,通过信息技术手段把传统的管理活动转移到网络中来,打破了时间地点的限制,使得高校领导和学生都可以参与进来。图书馆因有良好的学习氛围、大量的学习资源吸引大家前来学习,图书馆还未开馆就有大量的用户在门口排队等待,有限的座位与日益增加的自主学习者之间形成了供不应求的现象,再加上不了解图书馆的座位使用情况和恶意占座等现象,使得有限的学习座位越发紧张。本论题针对此问题开发了一套系统,实时公布座位使用情况,减少恶意占座现象,提高座位使用率,缓解有限座位和自主学习者的供需矛盾。
高校图书馆座位管理发生了改变,从传统的人工管理逐渐发展为计算机信息管理模式,通过基于微信小程序的高校图书馆座位管理系统,可以让更多的学生参与进来,图书馆座位预约不再受时间和地点的限制、方便了在校学习。同时,可以为图书馆座位管理员提高便捷的管理模式,在这种一举两得的模式下,开发基于微信小程序的高校图书馆座位管理系统是非常有意义的事情。
本研究的目的和意义如下:
(1)在分析相关文献的基础上,结合微信小程序发展的趋势和特点,搭建以图书馆座位管理为中心的微信小程序服务平台;
(2)以相关理论为指导,构建基于社区微信小程序的图书馆座位管理平台,设计以用户体验为出发点的需求功能完善;
(3)图书馆因有良好的学习氛围、大量的学习资源吸引大家前来学习,图书馆还未开馆就有大量的用户在门口排队等待,有限的座位与日益增加的自主学习者之间形成了供不应求的现象,再加上不了解图书馆的座位使用情况和恶意占座等现象,使得有限的学习座位越发紧张。因此,针对此问题开发了一套系统,实时公布座位使用情况,减少恶意占座现象,提高座位使用率,缓解有限座位和自主学习者的供需矛盾。

国内外研究现状

在国内,传统的图书馆座位管理容易引起矛盾争纷,他们认为用计算机管理可以解决这个问题,并在这个问题的基础上,建议图书馆的座位需要有个系统来方便管理。通过文献查找发现高校中图书馆不乏有些可行方案,比如华北电力大学曾创建了基于VB的图书馆座位管理系统,王炳江等人指出了该系统可以有效保障用户使用图书馆的权力,同时遏止了占座陋习。但是王孝亮等人认为该系统通过刷卡进行座位分配,用户仅借书,系统也会随机帮他们安排座位,这在一定程度上也会造成座位浪费;河北工业大学曾利用RFID射频技术进行座位资源管理,韩慧在其论文中指出,该系统需要较多的硬件成本,且容易被数据收集、系统布线制约,存在一定局限性。如何解决图书馆座位浪费和当前系统的局限性成为了一个棘手的问题。
在国内的高校图书馆座位管理系统中,主要以Java技术进行开发,目前也存在一些安卓APP和微信小程序的模式,但是这些程序的后台也多使用为Java为后台开发的技术,也存在小规模的PHP和Python开发形式。
在国外,他们十分重视图书馆在人类社会的作用,比如说德国,它被称为图书馆最多的国家之一,每年都有上亿人来参观。专家们把图书馆资源当作资源分配的问题来处理,在提高资源的利用性以及分配问题下了许多功夫,尤其是从九十年代以来,国外大多数学校通过网络化来管理图书馆,这使得管理效率得到一定的提升,21世纪初,他们把社交媒体软件融入到图书馆的网络管理,如Facebook、Instagram等。国外的图书馆座位矛盾纷争像国内这么普遍严重,但是这一现象也是不可避免地存在着,德国大学通过分散用户需求来解决图书馆座位资源不充分的问题,该校把学生的上课时间和考试分散安排,这也能适当缓解高峰时段过多的人流量给图书馆带来的压力。目前大多数外国图书馆座位预约管理系统已经获得了较大的发展。

技术介绍

1、管理员账号:abo 密码:abo
2、开发环境为Eclipse/idea,数据库为mysql 使用java语言开发。
3.配置好Tomcat并点击启动按钮即可运行
4.数据库连接src\main\resources\application.yml中修改
5.maven包版本apache-maven-3.3.9.
开发语言:Java
框架:Springboot
前端框架:vue.js
JDK版本:JDK1.8+
服务器:tomcat8+
数据库工具:Navicat
开发软件:idea 支持eclipse

Springboot是当前最流向的一个框架,它的配置更加的简单,使开发变得更加的简单迅速。
Springboot的基础结构共三个文件,具体如下:
src/main/java:程序开发以及主程序入口;
src/main/resources:配置文件;
src/test/java:测试程序。
ssm的数据库配置默认支持两种格式的配置文件
1,application.properties
2,application.yaml

项目界面

在这里插入图片描述
在这里插入图片描述
学生用户功能包括用户登录、查看个人信息、查看图书馆座位、在线预约、意见反馈交流、查看公告、我的。
在这里插入图片描述
学生用户登录后,在微信小程序的首页,查看操作菜单,可以修改个人信息和修改个人密码,修改个人信息和密码的功能流程一致,都是通过先获取到个人信息后,然后进行修改,通过数据库修改语句更新信息。
首页包括注册登录、公告信息、图书馆座位推荐。
图书馆座位包括图书馆座位分类、图书馆座位、在线预约。
公告信息(查看公告信息)。
在线留言交流,查看回复内容。
我的包括我的订单、个人信息维护、我的留言、我的评论等内容。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
管理员管理包括用户登录、用户管理、座位管理、公告管理、意见管理、座位预定流程、信用积分规则、座位利用率数据分析。
在这里插入图片描述
管理员需要先进行登录,获得操作的权限后才能进行信息管理。在本系统中,管理员可以登录服务器端对用户进行管理,管理员添加图书馆座位,对学生的基本信息进行管理,还可以管理系统内的图书馆座位。管理员发布图书馆座位,制定相关的制度,添加系统使用手册,都可以在图书馆座位公告栏目中进行录入,最终添加的图书馆座位公告信息保存到数据库中。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

关键代码


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();
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175

目录

目 录
目 录 III
1 绪论 1
1.1 研究背景 1
1.2 目的和意义 1
1.3 论文结构安排 2
2 相关技术 3
2.1 Springboot框架介绍 3
2.2 B/S结构介绍 3
2.3 Mysql数据库介绍 4
3 系统分析 6
3.1 系统可行性分析 6
3.1.1 技术可行性分析 6
3.1.2 经济可行性分析 6
3.1.3 运行可行性分析 6
3.2 系统性能分析 7
3.2.1 易用性指标 7
3.2.2 可扩展性指标 7
3.2.3 健壮性指标 7
3.2.4 安全性指标 8
3.3 系统流程分析 8
3.3.1 操作流程分析 8
3.3.2 登录流程分析 9
3.3.3 信息添加流程分析 10
3.3.4 信息删除流程分析 11
4 系统设计 12
4.1 系统概要设计 12
4.2 系统功能结构设计 12
4.3 数据库设计 13
4.3.1 数据库E-R图设计 13
4.3.2 数据库表结构设计 14
5 系统实现 17
5.1用户部分功能17
5.2 管理员部分功能展示

6 系统测试
6.1 系统测试的特点 
6.2 系统功能测试
6.2.1 登录功能测试
6.2.2 添加类别功能测试
6.3 测试结果分析
结 论
致 谢
参考文献

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

闽ICP备14008679号