当前位置: 首页 > news >正文

基于微信小程序的付费自习室

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W+、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌

文章目录

  • 1 简介
  • 2 技术栈
  • 3 需求分析
    • 3.1用户需求分析
      • 3.1.1 学生用户
      • 3.1.3 管理员用户
  • 4 数据库设计
      • 4.4.1 ER图设计
      • 4.4.2 数据库表设计
  • **第五章 系统实现**
    • 5.1小程序功能的实现
    • 5.2管理员模块的实现
      • 5.2.1 留言管理
      • 5.2.2 学生信息管理
      • 5.2.3 公告管理
      • 5.2.4 高校自习室信息管理
      • 5.2.5 自习室预约审核管理
  • 6 源码咨询

1 简介

Java 基于微信小程序的自习室预约系统

本文研发的基于微信小程序的新乡学院自习室预约系统结合高校具体的实际,利用编程基础和数据库实现教务信息化管理。充分利用校园的现有资源,把目前落后的管理现状提升到信息化管理模式中,减轻自习室管理工作量,有助于教学工作规范。基于微信小程序的新乡学院自习室预约系统帮助教师有效的管理自习室信息,学生通过系统了解自习室的使用情况,变化情况。减少徒步到自习室查看状态的时间,并通过系统可以查看各种公告以及教学公告信息。在交流模块也可以和其他同学或者老师在线交流。获取校园生活中的问题和解决方法,有效提升在校时间利用情况,提高了学习效率

2 技术栈

说明技术栈备注
后台Java
前端小程序
数据库MYSql
架构B/S 结构

3 需求分析

3.1用户需求分析

基于微信小程序的新乡学院自习室预约系统的用户是系统最根本使用者,按需要分析系统包括两类用户:学生、管理员。这两类用户对系统的需求简要如下。

3.1.1 学生用户

学生用户只要实现了前台信息的查看,打开首页,查看网站介绍、自习室信息、在线留言、轮播图信息公告等,通过点击首页的菜单跳转到对应的功能页面菜单,包括网站首页、自习室信息、注册登录、个人中心、后台登录。

学生用户通过账户账号登录,登录后具有所有的操作权限,如果没有登录,不能在线预约。学生用户退出系统将注销个人的登录信息。

3.1.3 管理员用户

管理员通过后台的登录页面,选择管理员权限后进行登录,管理员的权限包括轮播公告管理、老师学生信息管理和信息审核管理,管理员管理后点击退出,注销登录信息。

管理员用户具有在线交流的管理,自习室信息管理、自习室预约管理。

在线交流是对前台用户留言内容进行管理,删除留言信息,查看留言信息。自习室类型管理,添加某一个自习室类型信息。高校自习室管理,用户添加高校自习室信息,包括高校自习室名称、最大容纳数、高校自习室的位置、高校自习室的状态、对应高校自习室的图片,添加后在高校自习室管理中对信息进行。操作后退出系统。

4 数据库设计

4.4.1 ER图设计

本基于微信小程序的新乡学院自习室预约系统实体清晰,所以这里只绘制系统整体E-R图,其它的略去E—R图的绘制。

(1)管理员信息实体E-R图:

img

图4.3管理员E-R图

(2)公告信息实体E-R图

img

图4.4公告信息实体E-R图

(3)类型信息实体E-R图

img

图4.5自习室类型信息E-R图

(4)学生信息实体E-R图

img

图4.6 学生信息实体E-R图

(5) 高校自习室信息E-R图

img

图4.7 高校自习室信息实体E-R图

(6)留言交流信息E-R图

img

图4.8 留言交流信息实体E-R图

4.4.2 数据库表设计

基于微信小程序的新乡学院自习室预约系统包括多个数据库表,下面对数据表进行详细的介绍,每个数据库表包括这个名称,对于类型是否逐渐、是否与空字段的备注信息等。

表: 自习室信息表

编号数据字段名称对应类型主键允许空字段的备注信息
No1C_idbigint(8)PKNo主键
No2C_addtimetimestamp(8)NONo创建时间
No3C_bianhaonvarchar(400)NONull编号
No4C_jifanghaonvarchar(400)NONull自习室类型
No5C_tupiannvarchar(400)NONull图片
No6C_riqinvarchar(400)NONull日期
No7C_shiduannvarchar(400)NONull时段
No8C_kongxianzuoweitext(16)NONull楼栋
No9C_xiangqingtext(16)NONull详情
No10C_zhuangtainvarchar(400)NONull状态

表: config信息表

编号数据字段名称对应类型主键允许空字段的备注信息
No1C_idbigint(8)PKNo主键
No2C_namenvarchar(200)NONo配置参数名称
No3C_valuenvarchar(200)NONull配置参数值

表: quxiaoyuyue信息表

编号数据字段名称对应类型主键允许空字段的备注信息
No1C_idbigint(8)PKNo主键
No2C_addtimetimestamp(8)NONo创建时间
No3C_bianhaonvarchar(400)NONull编号
No4C_jifanghaonvarchar(400)NONull自习室类型
No5C_riqinvarchar(400)NONull日期
No6C_shiduannvarchar(400)NONull时段
No7C_zuoweihaonvarchar(400)NONull座位号
No8C_quxiaoliyoutext(16)NONull取消理由
No9C_xuehaonvarchar(400)NONull学号
No10C_xingmingnvarchar(400)NONull姓名
No11C_shenfenzhengnvarchar(400)NONull身份证
No12C_sfshnvarchar(400)NONull是否审核
No13C_shhftext(16)NONull审核回复

表: users信息表

编号数据字段名称对应类型主键允许空字段的备注信息
No1C_idbigint(8)PKNo主键
No2C_usernamenvarchar(200)NONo用户名
No3C_passwordnvarchar(200)NONo密码
No4C_rolenvarchar(200)NONull角色
No5C_addtimetimestamp(8)NONo新增时间

表: shenqingyuyue信息表

编号数据字段名称对应类型主键允许空字段的备注信息
No1C_idbigint(8)PKNo主键
No2C_addtimetimestamp(8)NONo创建时间
No3C_bianhaonvarchar(400)NONull编号
No4C_jifanghaonvarchar(400)NONull自习室类型
No5C_riqidatetime(8)NONull日期
No6C_shiduannvarchar(400)NONull时段
No7C_zuoweihaonvarchar(400)NONull座位号
No8C_shenqingneirongnvarchar(400)NONull申请内容
No9C_xuehaonvarchar(400)NONull学号
No10C_xingmingnvarchar(400)NONull姓名
No11C_shenfenzhengnvarchar(400)NONull身份证
No12C_sfshnvarchar(400)NONull是否审核
No13C_shhftext(16)NONull审核回复

表: forum信息表

编号数据字段名称对应类型主键允许空字段的备注信息
No1C_idbigint(8)PKNo主键
No2C_addtimetimestamp(8)NONo创建时间
No3C_titlenvarchar(400)NONull帖子标题
No4C_contenttext(16)NONull帖子内容
No5C_parentidbigint(8)NONull父节点id
No6C_useridbigint(8)NONo用户id
No7C_usernamenvarchar(400)NONull用户名
No8C_isdonenvarchar(400)NONull状态

表: messages信息表

编号数据字段名称对应类型主键允许空字段的备注信息
No1C_idbigint(8)PKNo主键
No2C_addtimetimestamp(8)NONo创建时间
No3C_useridbigint(8)NONo留言人id
No4C_usernamenvarchar(400)NONull用户名
No5C_contenttext(16)NONull留言内容
No6C_replytext(16)NONull回复内容

表: xuesheng信息表

编号数据字段名称对应类型主键允许空字段的备注信息
No1C_idbigint(8)PKNo主键
No2C_addtimetimestamp(8)NONo创建时间
No3C_xuehaonvarchar(400)NONo学号
No4C_mimanvarchar(400)NONo密码
No5C_xingmingnvarchar(400)NONo姓名
No6C_xingbienvarchar(400)NONull性别
No7C_touxiangnvarchar(400)NONull头像
No8C_zhuanyenvarchar(400)NONull专业
No9C_shoujihaonvarchar(400)NONull手机号
No10C_shenfenzhengnvarchar(400)NONull身份证

第五章 系统实现

5.1小程序功能的实现

5.1.1 学生注册界面

点击导航菜单中的注册即可打开注册页面,注册页面是由文本框、选择框、和注册按钮组成,在文本框中输入需要填写的基本注册信息,点击注册进行信息提交。

如下图所示:

img

图5-1学生注册界面

首先验证填写的信息是否为空,如果通过验证,才把信息构造为插入语句,调用数据库保存操作,插入信息到数据库,返回保存成功的信息到界面,进行登陆,或者返回到首页。

5.1.2 首页界面

搭建微信小程序环境后,进入到系统首页,首页包括头部的logo,导航条,中间为文章公告信息。

小程序首页如下图所示:

img

图5-2 首页

首页是在index页面中,该页面包括头部文件header、文章公告读取数据库中最新的信息,显示图片和对应的链接。在首页中先引入相关的JS和CSS样式。在对应模块中调用数据库操作方法,把读取的结果赋赋给RS数据集合对象,通过循环显示信息。

5.1.3 自习室列表界面

用户打开本系统后,可以查看自习室列表信息。如下图所示:

img

图5-4自习室界面

点击自习室,先打开自习室的列表界面,在列表界面读取信息,详细表达所有相关自习室信息,通过JAVA的数据库操作,把列表绑定到result数据集合中,使用while循环,把所有的信息显示到自习室界面。点击自习室,通过该条信息的ID值传递到自习室的详情页面,在详情页面根据当前的ID值查询对应的具体信息。包括标题名称和内容。

5.1.4 高校自习室预约界面

用户打开本系统后,可以查看高校自习室信息,并进行预约。如下图所示:

img

图5-5高校自习室预约界面

输入预约信息后,添加预约记录到数据库中,在个人中心可以查看预约记录,管理员对预约记录进行审核。

5.1.5 在线交流界面

用户登录本系统后,可以发表在线交流信息。如下图所示:

img

图5-6在线交流界面

在线交流包括评论信息的提交和查询显示,在线交流前需要先进行登录,如果没有登。录界面提示登录后才能进行评论,登陆后的信息是通过session进行判断。如果session存在登录信息,就说明已经登录,在评论中输入评论的内容,点击提交,把评论信息保存到数据库中,评论结束之后进行查询。查询通过当前信息的ID进行条件查询,查询的结果保存在数据集合中,对数据集合进行循环显示。

5.2管理员模块的实现

5.2.1 留言管理

在系统主界面中的导航菜单中,有留言按钮,点击按钮,就可以在留言界面进行信息添加和管理。

其中,留言管理界面为5.7所示:

img

图5.7:留言管理页面

5.2.2 学生信息管理

在系统主界面中的导航菜单中,有学生信息按钮,点击按钮,就可以在学生信息界面进行信息添加和管理。

其中,学生信息管理界面为5.8所示:

img

图5.8:学生信息管理页面

在学生页面加载学生的信息列表,当执行该页面初始化的时候,调用业务逻辑层的学生查询方法。该方法先定义学生实体类,然后调用数据库中的学生查询方法,把查询结果绑定在list集合中。循环集合,把数据逐条绑定在学生实体对象,最终返回到界面。将得到的学生集合循环绑定到界面控件,根据字段名和数据结果进行映射,最终显示。

5.2.3 公告管理

管理员查看公告信息。其中,公告信息管理界面为5.9所示:

img

图5.9:公告页面

在公告页面加载公告的信息列表,当执行该页面初始化的时候,调用业务逻辑层的公告查询方法。该方法先定义公告实体类,然后调用数据库中的公告查询方法,把查询结果绑定在list集合中。循环集合,把数据逐条绑定在公告实体对象,最终返回到界面。将得到的公告集合循环绑定到界面控件,根据字段名和数据结果进行映射,最终显示。

5.2.4 高校自习室信息管理

在系统主界面中的导航菜单中,有高校自习室管理按钮,点击按钮,就可以在高校自习室管理界面进行高校自习室信息添加和管理。其中高校自习室添加的界面如下:

img

图5.6:高校自习室添加页面

首先对高校自习室页面进行布局,完成界面设计。在高校自习室页,输入高校自习室的内容,点击保存,执行保存事件,在该事件中进行数据保存操作。该事件方法先获取用户输入的高校自习室内容,把这些数据绑定到高校自习室实体方法中,对高校自习室的信息进行验证,包括是否为空,是否符合规范数据格式等。通过验证后,调用高校自习室的业务逻辑方法,业务逻辑层先执行高校自习室的唯一性验证,通过验证后,调用数据库操作方法。将在线保修的数据使用插入语句,提交到数据库中。数据库操作方法返回操作成功的信息到业务逻辑层,业务逻辑层再把结果返回到在线保修页面,完成插入操作。

5.2.5 自习室预约审核管理

在系统主界面中的导航菜单中,有自习室预约管理按钮,点击按钮,就可以在自习室预约管理界面进行信息审核和管理。

其中,自习室预约管理界面为5.7所示:

img

图5.7:自习室预约管理页面

在自习室预约页面加载自习室预约的信息列表,当执行该页面初始化的时候,调用业务逻辑层的自习室预约查询方法。该方法先定义自习室预约实体类,然后调用数据库中的自习室预约查询方法,把查询结果绑定在list集合中。循环集合,把数据逐条绑定在自习室预约实体对象,最终返回到界面。将得到的自习室预约集合循环绑定到界面控件,根据字段名和数据结果进行映射,最终显示。

点击自习室预约信息审核,在自习室预约信息页面中,先通过ID值查询对于的自习室预约信息,把自习室预约信息保存在临时对象中。把变量值绑定到页面中自习室预约信息栏,然后加载页面,把需要审核的信息完成编辑后点击保存,将对这些数据进行验证,如果通过将执行审核操作,验证失败将会提示具体的错误消息。执行审核语句,调用审核的业务逻辑方法,在审核的方法中判断是否存在该自习室预约,如果不存在该自习室预约,调用数据库操作层去执行审核操作,审核成功后返回。

点击自习室预约信息删除,通过ID值查询自习室预约信息是否存在外键关联,先删除外键关联的数据,然后调用删除的数据库方法,删除成功后返回自习室预约信息列表界面。

6 源码咨询

Github 更多题目

200 道Java 精品项目

相关文章:

基于微信小程序的付费自习室

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 1 简介2 技术栈3 需求分析3.1用户需求分析3.1.1 学生用户3.1.3 管理员用户 4 数据库设计4.4.1 E…...

纪念在CSDN的2048天

时间真快~...

云原生Kubernetes:简化K8S应用部署工具Helm

目录 一、理论 1.HELM 2.部署HELM2 3.部署HELM3 二、实验 1.部署 HELM2 2.部署HELM3 三、问题 1.api版本过期 2.helm初始化报错 3.pod状态为ImagePullBackOff 4.helm 命令显示 no repositories to show 的错误 5.Helm安装报错 6.git命令报错 7.CentOS 7 下git c…...

qml保姆级教程五:视图组件

💂 个人主页:pp不会算法v 🤟 版权: 本文由【pp不会算法v】原创、在CSDN首发、需要转载请联系博主 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 QML系列教程 QML教程一:布局组件 文章目录 列表视图ListVi…...

2310d编译不过

struct A {this(int[] data) safe { a data; }int[] a; }void main() safe {int[3] test [1, 2, 3];A a A(test); }应该给data参数加上return scope.或让构造器为模板参数来推导,否则,构造器可以把栈分配切片赋值给全局变量....

CleanMyMac X4.14.1最新版本下载

CleanMyMac X是一个功能强大的Mac清理软件,它的设计理念是提供多个模块,包括垃圾清理、安全保护、速度优化、应用程序管理和文档管理粉碎等,以满足用户的不同需求。软件的界面简洁直观,让用户能够轻松进行日常的清理操作。 使用C…...

芯驰D9评测(3)--建立开发环境

1. 建立交叉编译链接环境 官网下载的SDK包中就有交叉工具链,米尔提供的这个 SDK 中除了包含各种源代码外还提供了必要的交叉工具链,可以直接用于编译应用程序等。 用户可以直接使用次交叉编译工具链来建立一个独立的开发环境,可单独编译…...

阿里云服务器IP地址查询方法(公网IP和私网IP)

阿里云服务器IP地址在哪查看?在云服务器ECS管理控制台即可查看,阿里云服务器IP地址包括公网IP和私有IP地址,阿里云百科分享阿里云服务器IP地址查询方法: 目录 阿里云服务器IP地址查询 阿里云服务器IP地址查询 1、登录到阿里云服…...

第47节——使用bindActionCreators封装actions模块

一、什么是action creators 1、概念 在Redux中,Action Creators是一种函数,它用于创建一个描述应用程序状态变化的action对象。Action对象是一个普通JavaScript对象,它包含一个描述action类型的字符串属性(通常称为“type”&…...

QT、c/c++通过宏自动判断平台

QT、c/c通过宏自动判断平台 Chapter1 QT、c/c通过宏自动判断平台 Chapter1 QT、c/c通过宏自动判断平台 原文链接:https://blog.csdn.net/qq_32348883/article/details/123063830 背景 为了更好的进行跨平台移植、编译、调试。 具体操作 宏操作 #ifdef _WIN32//d…...

对比表:阿里云轻量应用服务器和服务器性能差异

阿里云服务器ECS和轻量应用服务器有什么区别?轻量和ECS优缺点对比,云服务器ECS是明星级云产品,适合企业专业级的使用场景,轻量应用服务器是在ECS的基础上推出的轻量级云服务器,适合个人开发者单机应用访问量不高的网站…...

中国1km分辨率月最低温和最高温度数据集(1901-2020)

简介: 中国1km分辨率月最低温度数据集(1901-2020)是根据CRU发布的全球0.5气候数据集以及WorldClim发布的全球高分辨率气候数据集,通过Delta空间降尺度方案在中国地区降尺度生成的。使用了496个独立气象观测点数据进行验证&#x…...

EasyX图形库note4,动画及键盘交互

大家好,这里是Dark Flame Master,专栏从这篇开始就会变得很有意思,我们可以利用今天所学的只是实现很多功能,同样为之后的更加好玩的内容打下基础,从这届开始将会利用所学的知识制作一些小游戏,废话不多说&…...

C++设计模式-原型(Prototype)

目录 C设计模式-原型(Prototype) 一、意图 二、适用性 三、结构 四、参与者 五、代码 C设计模式-原型(Prototype) 一、意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 二、适用性 当…...

[补题记录] Atcoder Beginner Contest 322(E)

URL:https://atcoder.jp/contests/abc322 目录 E Probelm/题意 Thought/思路 Code/代码 E Probelm/题意 有 N 个改进计划,每个计划可以执行一次;有 K 个参数,每个计划可以将所有参数提升固定值,即计划 i 可以为第…...

目标检测算法改进系列之Backbone替换为FocalNet

FocalNet 近些年,Transformers在自然语言处理、图像分类、目标检测和图像分割上均取得了较大的成功,归根结底是自注意力(SA :self-attention)起到了关键性的作用,因此能够支持输入信息的全局交互。但是由于…...

buuctf-[BSidesCF 2020]Had a bad day 文件包含

打开环境 就两个按钮,随便按按 url变了 还有 像文件包含,使用php伪协议读取一下,但是发现报错,而且有两个.php,可能是自己会加上php后缀 所以把后缀去掉 /index.php?categoryphp://filter/convert.base64-encode/resourcei…...

Elasticsearch:什么时候应该考虑在 Elasticsearch 中添加协调节点?

仅协调节点(coordinating only nodes)充当智能负载均衡器。 仅协调节点的这种特殊角色通过减轻数据和主节点的协调责任,为广泛的集群提供了优势。 加入集群后,这些节点与任何其他节点类似,都会获取完整的集群状态&…...

Dubbo3应用开发—Dubbo注册中心引言

Dubbo注册中心引言 什么是Dubbo注册中心 Dubbo的注册中心,是Dubbo服务治理的⼀个重要的概念,他主要用于 RPC服务集群实例的管理。 注册中心的运行流程 使用注册中心的好处 可以有效的管理RPC集群的健康情况,动态的上线或者下线服务。让我…...

AS环境,版本问题,android开发布局知识

项目模式下有一个build.gradle,每个模块也有自己的build.gradle Android模式下有多个build.gradle,汇总在一起。(都会有标注是哪个模块下的) C:\Users\Administrator\AndroidStudioProjects 项目默认位置 Java web项目与android项目的区别…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究

摘要:在消费市场竞争日益激烈的当下,传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序,探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式,分析沉浸式体验的优势与价值…...

用鸿蒙HarmonyOS5实现国际象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的国际象棋小游戏的完整实现代码,使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├── …...

C++中vector类型的介绍和使用

文章目录 一、vector 类型的简介1.1 基本介绍1.2 常见用法示例1.3 常见成员函数简表 二、vector 数据的插入2.1 push_back() —— 在尾部插入一个元素2.2 emplace_back() —— 在尾部“就地”构造对象2.3 insert() —— 在任意位置插入一个或多个元素2.4 emplace() —— 在任意…...

智警杯备赛--excel模块

数据透视与图表制作 创建步骤 创建 1.在Excel的插入或者数据标签页下找到数据透视表的按钮 2.将数据放进“请选择单元格区域“中,点击确定 这是最终结果,但是由于环境启不了,这里用的是自己的excel,真实的环境中的excel根据实训…...

C/Python/Go示例 | Socket Programing与RPC

Socket Programming介绍 Computer networking这个领域围绕着两台电脑或者同一台电脑内的不同进程之间的数据传输和信息交流,会涉及到许多有意思的话题,诸如怎么确保对方能收到信息,怎么应对数据丢失、被污染或者顺序混乱,怎么提高…...

Centos 7 服务器部署多网站

一、准备工作 安装 Apache bash sudo yum install httpd -y sudo systemctl start httpd sudo systemctl enable httpd创建网站目录 假设部署 2 个网站,目录结构如下: bash sudo mkdir -p /var/www/site1/html sudo mkdir -p /var/www/site2/html添加测试…...