草庐IT

毕业设计-基于微信小程序的图书馆选座系统

Mini_hailang_IT 2023-04-10 原文

目录

前言

课题背景与简介

实现设计思路

一、系统分析及功能设计

二、学生端系统详细设计

三、系统测试与结构分析

四、总结

实现效果样例

更多帮助


前言


    📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

🚀对毕设有任何疑问都可以问学长哦!

 选题指导: https://blog.csdn.net/qq_37340229/article/details/128243277

大家好,这里是海浪学长微信小程序毕设专题,本次分享的课题是

🎯基于微信小程序的图书馆选座系统

课题背景与简介

在当今互联网飞速发展的时代,微信小程序的发展也在日趋成 熟,针对一系列类别的选座系统也在蓬勃发展,图书馆自助选座系 统是一个软件平台,目的是为了合理的处理由于诸如座位占用等现 象而导致的图书馆座位资源浪费等问题。在座位资源问题得不到更 好解决的问题上,微信小程序这一出现在用户视野中的高使用率软 件展现了其舒适、流畅的交互界面和运行效率,有效地提高图书馆 自习室座位资源的使用率。众所周知,在科技发展如此迅速的今天,我国各个方面的发展都应用到了科技的力量,都在不 新创新,当然高校的经常馆座位管理系统也是如此,很多高校为了使终书馆的座位能够得到有效的 运用,大多实行了系统管理。图书馆座位系统管理给各个高校的图书馆带来了很多的好处,但是与此同时也带来了许多的整端。这些都是图书馆座位管理系统的实施所带来的影响,所以为了高校各 书馆能够得到再好的管理,我们就要努力对此有一个更加清醒的认识,努力从各个方面提高图书馆 率位管理系统有利的一方面,减少它的弊端。

实现设计思路

一、系统分析及功能设计

运行环境分析

后台开发编程中使用 Java 语言中的 Spring boot 框架来实现主 要的系统搭建,而系统所需的数据的存储和更新通过 MySQL 数据 库进行;前端则使用微信开发者工具,通过在带的调试界面进行系 统调整与测试。由此可得出,在技术方面该系统的设计是可行的, 其为系统的开发提供了有利资源,同时保证了技术可行的稳定性, 大量排除了系统开发的技术困难。

学生端功能设计

1)选座

系统中展示了所有可利用的自习室座位资源的当前使用情况, 学生根据需要进行一下选择: “自主选座”即根据当前座位使用的情况及进行自主选座; “随机选座”即系统对所有空置的座位进行随机滚动选择,为 学生节约时间,若不满意,可取消选择并进行自主选座。

2)离座

离座为永久。即系统将立即释放座位。

3)预约

学生可在当天提前进行座位预约,并在预约时间即将到达的前 30 分钟内进行座位确认。

4)续座

学生确定入座后开始自习,系统将默认单次使用时间为 1 小时, 当需要续座时,学生也可自由选座为 1 小时、2 小时等,此操作必 须在倒计时前 30 分钟内进行续座,否则到时座位自动释放。

二、学生端系统详细设计

学生端功能和流程

图书馆自助选座系统分为学生端和管理员后台。在学生端中, 学生可以选择选座、离座、预约、续座等功能上的使用。在管理员 后台,管理员可以审核学生信息,并根据学校情况对学校、教室进 行添加修改,还可以布置每个教室的专属座位图。

在学生端,除了选座预约等功能,学生在确认入 座后还会看到自己所在的座位信息、选座时间离座时间等,学生可 根据座位不同的颜色,即(可视化界面),来了解座位是否已被人 选,是否确定成功,是否预约成功等。

学生进入选座系统小程序的登录界面后,查看自己是否已经注 册账号,若注册,登录并进入选座系统,若没注册,进入注册界面, 添加自己的账号密码等信息后,确定并等待管理员验证,验证成功 方可进入系统。进入选座系统页面中,选择自己要去的教室,查看 自己是否已经选座,若选座,在点击座位图时会被提醒已经选座, 若没有,可进行选座、续座、预约等操作。

可视化界面设计

学生能够直观地完成选座操作,可视化界面是必不可少的,通 过颜色的区分让学生清晰地分辨出当前座位状态,见图,选座系 统用了可视化界面的设定,红色代表自己选座或他人选择了座位, 绿色代表自己选择了作为但并没有进行下一步选座操作。

以下是可视化界面的实现:

 定义一个对象 item,对 item 进行赋值,以已选为例:

<view wx:elif=“{{item == 1}}”>
<image class=“school-list-photo” bindtap=“bindGetLocation”
dataitem=“{{item}}” data-index=“{{index}}” src=“img/noseat.
png” />

若 item=1 时,将已选照片(noseat.png)传给类对象 chool-listphoto,同理若 item= 其他数字是设置对应的图片进行可视化的实现。

选座流程设计

学生进入到主界面,进行教室的选择,进入教室界面后,展示 了学生用户的使用功能,可以进行随机选座,也可以自主选座。这 时需要判断学生是否已经有座位,若有则提示已经选座,若没有便 可以进行选座确认,随机选座是点击完之后系统自动从数据库随机 取出一条数据显示出来,并提示选座成功。确认入座之后,界面会 显示离座时间,并进行倒计时。在学生学习过程中,若可以进行续 座,或者提前离座,在有效时间结束后,座位会自动释放。

  图为选座界面展示,选座分为自助选座和随机选座,在随机 选座部分,首先设置了一个 flag 开关:

while (flag) {
random = Math.floor(Math.random() * seatArr.length)
定义需要滚动的长度 seatArr.length,这代表着座位一共的长度,
添加语句
index = seatArr[random]
使其在座位表中开始随机滚动,当遇到选座状态为红色的时候
需要重新计算,
如果不是红色(即 index=0)直接选座。
if (index == 0) {flag = false
seatArr[random] = 4
that.seatNumber(random)}
自助选座:首先设置初始值为空,建立一个自动排列的座位表,
进入页面时自动获取座位数据。
seatArr[that.data.index] = 0
that.setData({
seatArr: seatArr})
接着做一个判断语句,查询学生是否选座位。
if (userSeatFlag == 1) {
wx.showToast({
title: ' 座位已入座,无法选座 ',
icon: 'none' })
Return }
如果没选座,则可进行选座操作
else {
seatArr[that.data.index] = 0
that.setData({seatArr: seatArr})
之后将学生信息和座位信息传入后台,
publicRetMsgqueryById(@RequestBodyClassInfoclassInfo) {this.
classInfoService.queryClassById(classInfo.getId()));}
进行更新操作
this.classInfoService.updateClassInfo(classInfo);
ClassInfo info = this.classInfoService.queryClassById(class
Info.getId());
再传所有用户的信息,
returnthis.classInfoService.addClassInfo(classInfo);
将这些信息返回座位给页面,并获取教室 id
school.setId(0);
List<School> schools =
(List)this.schoolService.querySchools(school).getData();
基本的数据传输更新完成后,对座位进行赋值,并存入缓存,保存用户的座位信息。
if (list[index] == 0 || list[index] == ''|| list[index] == null)
对座位的状态进行判断,如果是红色则弹出提示已经选座,如果没有则进行下一步操作。

续座设计

首先创建可选择的时间 序列 array: [1,2], 对增加时间进行格式 规定与转换 Date date = (newSimpleDateFormat(“yyyy-MM-ddHH:mm”) )  .parse(endtime);date.setTime(date.getTime() + (long)(userSeat. getHours() * 60 * 60* 1000)); 若在临近离座时选择续座。点击小时按钮,弹出选择时间窗口, 选择后点击确定,便完成了续座的操作。 2.5 预约 在后台创建一个 SeatScheduleTask 的类,类中对象 userSeat  Service、classInfo Service。调用 seat() 方法,在方法中做一个定时 管理器,并对时间格式进行编写。 SimpleDataFormat d = new SimpleDataFormat(“yy-MM-dd  HH:mm”);String date = d.format(new Date()); 预约与续座大致相同,只是时间和可视化上有所调整。 map.put(“ret”,userSeatService.queryUserSeatList(userSeat)); 学生在进入选座系统后,需要先选择座位,再进行预约。预约 时需要选座预约时间,且预约时间必须比当前时间晚。

三、系统测试与结构分析

系统测试时在系统的开发后针对于该系统的某个功能点或者性 能进行测试,其目的是为了发现潜在问题,检测系统漏洞,更好的 将系统进行再一次的优化以保证系统的正常运行。

测试用例

学生模块主要功能包括选座、续座、预约。由于功能之间关联 性强,每一项测试都会互相 影响功能,如表所示为测试用例。

 测试结果

经过测试,每个功能模块大体达到预期效果,通过此次测试结 果与实际操作相对比得知,该系统功能的操作性是可行的,因此在 系统的设计上进行层次分析的办法和技术可行,有一定的使用价值。

四、总结

在高校人数不断增多的现如今,想要更好的优化系统已实现趋 于成熟的微信小程序,要将后续工作以如何构建针对项目实施过程 的质量评价体系为研究方向,对每个功能架构的细节与尚未解决的 问题进行更加深入研究。

实现效果样例

图书馆选座系统:

 我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。

毕设帮助,疑难解答,欢迎打扰!

更多帮助

有关毕业设计-基于微信小程序的图书馆选座系统的更多相关文章

  1. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  2. ruby-on-rails - 使用 rails 4 设计而不更新用户 - 2

    我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它​​不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数

  3. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

  4. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  5. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  6. 微信小程序通过字典表匹配对应数据 - 2

    前言一般来说,前端根据后台返回code码展示对应内容只需要在前台判断code值展示对应的内容即可,但要是匹配的code码比较多或者多个页面用到时,为了便于后期维护,后台就会使用字典表让前端匹配,下面我将在微信小程序中通过wxs的方法实现这个操作。为什么要使用wxs?{{method(a,b)}}可以看到,上述代码是一个调用方法传值的操作,在vue中很常见,多用于数据之间的转换,但由于微信小程序诸多限制的原因,你并不能优雅的这样操作,可能有人会说,为什么不用if判断实现呢?但是if判断的局限性在于如果存在数据量过大时,大量重复性操作和if判断会让你的代码显得异常冗余。wxswxs相当于是一个独立

  7. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  8. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

  9. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  10. ruby-on-rails - 设计注册确认 - 2

    我在我的项目中有一个用户和一个管理员角色。我使用Devise创建了身份验证。在我的管理员角色中,我没有任何确认。在我的用户模型中,我有以下内容:devise:database_authenticatable,:confirmable,:recoverable,:rememberable,:trackable,:validatable,:timeoutable,:registerable#Setupaccessible(orprotected)attributesforyourmodelattr_accessible:email,:username,:prename,:surname,:

随机推荐