Android的高校讲座预约管理系-计算机毕业设计源码21634
摘 要
本系统旨在设计和实现一个基于Android平台的高校讲座预约管理系统,以提供管理员和普通用户便捷的讲座预约服务和全面的管理功能。系统将包括在线讲座发布、讲座预约、座位安排、签到信息记录等功能模块,旨在提高高校讲座活动的组织效率和用户体验。
通过基于Android平台的设计和实现,该系统将具备跨平台、便携性强的特点,使管理员和普通用户能够随时随地进行讲座预约和管理操作。用户可以通过简洁直观的操作界面,实现高效的预约和签到流程,提高讲座活动的组织效率和用户参与度。
本研究的成果将推动高校讲座预约管理的现代化转型和智能化发展。通过引入Android平台,利用移动设备的便捷性和智能化特点,该系统能够为高校讲座预约管理提供全方位的解决方案,提升组织效率、优化座位安排、完善签到流程,促进高校讲座活动的顺利开展。
因此,设计和实现基于Android的高校讲座预约管理系统对于提高高校讲座活动的组织效率和用户体验具有重要意义。通过数字化和智能化手段,提供便捷的讲座预约服务和全面的管理功能,该系统能够满足管理员和普通用户的需求,推动高校讲座活动的现代化管理和智能化发展。
关键词:Java开发语言;springboot框架技术;高校讲座预约管理系统
Abstract
This system aims to design and implement an Android based university lecture reservation management system, providing convenient lecture reservation services and comprehensive management functions for administrators and ordinary users. The system will include functional modules such as online lecture release, lecture reservation, seat arrangement, and check-in information recording, aiming to improve the organizational efficiency and user experience of university lecture activities.
Through the design and implementation based on the Android platform, the system will have the characteristics of cross platform and strong portability, allowing administrators and ordinary users to schedule and manage lectures anytime, anywhere. Users can achieve efficient appointment and check-in processes through a concise and intuitive operating interface, improving the organizational efficiency and user engagement of lecture activities.
The results of this study will promote the modernization and intelligent development of university lecture reservation management. By introducing the Android platform and utilizing the convenience and intelligence of mobile devices, this system can provide a comprehensive solution for the management of university lecture reservations, improve organizational efficiency, optimize seat arrangements, improve check-in processes, and promote the smooth development of university lecture activities.
Therefore, designing and implementing an Android based university lecture reservation management system is of great significance for improving the organizational efficiency and user experience of university lecture activities. Through digital and intelligent means, this system provides convenient lecture reservation services and comprehensive management functions, which can meet the needs of administrators and ordinary users, promoting the modern management and intelligent development of university lecture activities.
Key words:Java development language; Springboot framework technology; University Lecture Appointment Management System
目 录
致谢 37
- 绪论
- 研究背景
随着高等教育的普及和高校讲座活动的丰富多样,高校讲座预约管理成为了一个重要的问题。传统的预约方式存在信息不对称、预约流程繁琐等问题,无法满足用户的需求和提高组织效率。
因此,本研究旨在设计和实现一个高校讲座预约管理系统,以提供管理员和普通用户便捷的讲座预约服务和全面的管理功能。该系统将借助Android平台的特点,结合现代化的信息技术手段,实现讲座预约管理的数字化、智能化。
首先,系统将提供管理员发布讲座信息的功能,通过统一的平台,管理员可以方便地录入讲座的相关信息,包括主题、时间、地点等,确保信息的准确性和完整性。同时,系统还将支持在线讲座发布,提供详细的讲座介绍和参与条件,吸引更多的用户关注和参与。
其次,普通用户可以通过系统浏览讲座信息,并进行预约操作。用户可以根据自己的兴趣和时间安排选择适合的讲座,并预留座位。系统还将实现座位安排功能,根据讲座场地的座位情况和用户预约情况,自动进行座位分配,提高座位利用率。
此外,系统还将记录用户的签到信息,包括参与讲座的人数、签到情况等。这有助于组织者统计参与人数、评估讲座效果,并为后续的讲座活动提供参考和改进。
通过设计和实现高校讲座预约管理系统,可以提高讲座活动的组织效率和用户体验。借助Android平台的便携性和智能化特点,管理员和普通用户可以随时随地进行讲座预约和管理操作,大大提升了预约流程的便捷性和效率。
因此,高校讲座预约管理系统的设计与实现具有重要的研究背景。通过数字化和智能化手段,提供全方位的讲座预约服务和管理功能,该系统能够满足高校讲座活动的需求,推动高校讲座活动的现代化管理和智能化发展。
-
- 研究意义
首先,该系统可以提高高校讲座活动的组织效率。传统的讲座预约方式往往需要人工操作,流程繁琐且容易出错。而通过引入讲座预约管理系统,可以实现自动化的预约流程、信息统一管理和座位安排,大大简化了组织者的工作量,提高了组织效率。
其次,该系统能够提供便捷的讲座预约服务和全面的管理功能,提升用户体验。普通用户可以通过系统浏览讲座信息、选择感兴趣的讲座并预约座位,避免了传统预约方式的时间和地点限制。同时,系统还记录用户的签到信息,方便统计参与人数和评估讲座效果,为后续的讲座活动提供参考和改进。
此外,通过数字化和智能化手段,该系统可以提供个性化的推荐服务。根据用户的兴趣和学习需求,系统能够推荐适合的讲座内容,帮助用户发现更多有价值的讲座资源,拓宽知识视野。
最后,高校讲座预约管理系统的研究成果还可以为其他类似活动的管理提供借鉴和参考。讲座预约管理系统的设计和实现经验可以应用于其他高校活动、会议等场景,提升活动组织效率和用户体验。
综上所述,高校讲座预约管理系统的研究具有重要的意义。通过提高组织效率、优化用户体验和个性化推荐服务,该系统能够推动高校讲座活动的现代化管理和智能化发展,提升知识传播和学术交流的质量和效果。
- 相关技术介绍
- Java编程语言
早在上个世纪90年代,Java就由詹姆斯·高斯林进行开发,自诞生之日起,Java就一直深深的受到了程序开发者的广泛喜爱,它作为计算机主要的编程语言,一直到今。Java语言是真的是一种纯面向对象的计算机语言,在Java的世界中,所有的方法、数据类型、符号等都是以类的方式存在的,最顶层的就是Object,所有的类都是对object的继承。继承是Java中的核心思想,与C语言不同的是,子类只有一个父类,这样的好处就是操作更加的简便,让人更容易理解,在代码的书写上也会容易较多。Java另外一个特性就是多态性,调用父类接口的方法可以实现子类的实现,这样的好处就是很好的对实现方法进行了隐藏(封装),而且又能够把API进行公开,一举两得。接口思想很好的诠释了想象对象的思想,让面向对象编程渐渐转向面向接口编程。如今,随着编程思想的继续发展,Java也加入了一些函数式编程的思想,这样的好处就是让编程代码更加的简洁与方便。本管理系统采用Java编程语言进行后台的开发,一是鉴于标准化制定以后,Java语言常用于大型商业应用程序后台系统中,生态稳定;二是也希望通过本系统的开发提高自己编写Java代码的能力。
-
- springboot框架介绍
Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。
-
- Android技术
Android是基于Linux内核的操作系统,早期由Google开发,后由开放手机联盟开发。它采用了软件堆的架构,主要分为三部分。底层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。Android在未公开之前常被传闻为GPhone。
它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分:底层以Linux核心为基础,由c语言开发,只提供基本功能。中间层包括函数库Library和虚拟机Virtual Machine,由C++开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java编写。
为了迎合当今社会的现况,便于在市场中打开局面、占有一席之地;在大数据时代下,所有的信息化资源全部都是共享资源、为了长远性考虑,对此需要考虑如何推动整体的系统开发实现标准化。保证系统成功,所以就必须从效益、技术等上面做可行性报告研究。
-
-
- 操作可行性
-
基于Android的高校讲座预约管理系统的注册与登陆页面设计简洁容易应用,可以通过最常见的页面窗口来登录页面,并利用过计算机实现登录功能,因此使用者只要平时利用过计算机都可以实现登录应用。此操作系统的研发工作环境运用了Java技术,并运用了B/S结构,这些研发工作环境都使得此系统功能更为完整,使整个设计更为个性化,使用者功能也更为简洁方便。本基于Android的高校讲座预约管理系统具备了易于运行、容易管理、交互性较好的优点,在实际操作上也是非常简单的。因此,本基于Android的高校讲座预约管理系统也可进行商业设计。
综上所述,该设备的研发符合技术、工艺和技术要求,因此其研发具有可操作性。
-
-
- 技术可行性
-
Android平台提供了丰富的API和开发工具,使得开发者可以快速构建出功能齐全的在线预约。另外,Android系统还支持多种不同的编程语言,如Java、Kotlin等,这为开发者提供了更大的自由度,可以根据自己的需求和喜好选择合适的编程语言进行开发。此外,Android系统具有高度的开放性和灵活性,为开发者提供了丰富的创新空间,使得开发者能够打造出功能强大且易于使用的在线预约。
Spring Boot是一个非常流行的Java开发框架,Spring Boot不仅能够帮助开发者快速搭建应用的基本框架,还提供了丰富的扩展点,使得开发者可以灵活地定制和优化应用程序,满足不同场景下的需求。
因此,从技术层面来说是可行的。
-
- 系统功能需求
普通用户用例图如下所示。
图3-1 普通用户用例图
管理员用例图如下所示。
图3-2 管理员用例图
表3-1 校园论坛用例描述
描述项 | 说明 |
用例名称 | 校园论坛 |
用例描述 | 用户可以将自己想说的话发表在交流板,其他的用户可以查看,已注册的用户可以回复 |
参与者 | 用户 |
前置条件 | 用户是普通用户并成功进入该系统 |
后置条件 | 交流添加成功且显示在交流板 |
主事件流 | 系统检查是否是系统用户 未注册的用户可以查看交流板的内容 已注册的用户的交流表单显示出来可以进行交流和回复他人的交流 |
异常事件流 | e1.报500错误 e2.数据库连接异常 e3.交流内容不显示 |
表3-1 发帖用例描述
描述项 | 说明 |
用例名称 | 发帖 |
用例描述 | 在登录成功的条件下,用户可以发布帖子 |
参与者 | 用户 |
前置条件 | 用户登录成功并进入该系统 |
后置条件 | 发布成功 |
主事件流 | (1)系统检查是否是系统用户类型 用户输入标题、描述、类型、图片url和内容,开始执行发布用例 (3)发布成功,进入系统的主页 |
异常事件流 | e1.报500错误 e2.数据库连接异常 e3.数据内容太长 |
表3-1 个人信息管理用例描述
用例名称 | 管理和修改个人信息 |
参与者 | 用户 |
描述 | 用户查看、修改个人信息 |
前置条件 | 用户已登录到系统中 |
后置条件 | 无 |
事件流 | (1)用户查看个人信息 (2)用户修改个人信息 |
补充说明 | (a)用户可修改密码 (b)用户可修改个人资料,例如姓名,头像等 |
表3-1 用户管理用例描述
描述项 | 说明 |
用例名称 | 用户操作 |
用例描述 | 管理员正确登录后台管理的条件下,对用户进行管理 |
参与者 | 管理员 |
前置条件 | 管理员登录成功并跳转到后台主界面 |
后置条件 | 操作成功 |
主事件流 | 管理员跳转用户管理页面,查询用户详情的信息 管理员可以删除用户信息 |
异常事件流 | e1.报500错误 e2.数据库连接异常 |
表3-1在线讲座管理用例描述
描述项 | 说明 |
用例名称 | 在线讲座操作 |
用例描述 | 管理员正确登录后台管理的条件下,对在线讲座模块进行管理 |
参与者 | 管理员 |
前置条件 | 管理员成功登录 |
后置条件 | 操作成功 |
主事件流 | (1)管理员进入在线讲座管理页面,查询在线讲座的信息 (2)管理员可以对在线讲座进行增加、删除和编辑在线讲座操作 (3)管理员新增在线讲座,添加成功跳转到查询页面 |
异常事件流 | e1.报500错误 e2.数据库连接异常 |
表3-1 讲座预约管理用例描述
描述项 | 说明 |
用例名称 | 讲座预约操作 |
用例描述 | 管理员正确登录后台管理的条件下,对讲座预约模块进行管理 |
参与者 | 管理员 |
前置条件 | 管理员成功登录 |
后置条件 | 操作成功 |
主事件流 | (1)管理员进入讲座预约管理页面,查询讲座预约的信息 (2)管理员可以对讲座预约进行删除和编辑讲座预约操作 |
异常事件流 | e1.报500错误 e2.数据库连接异常 |
表3-1 座位安排管理用例描述
描述项 | 说明 |
用例名称 | 座位安排操作 |
用例描述 | 管理员正确登录后台管理的条件下,对座位安排模块进行管理 |
参与者 | 管理员 |
前置条件 | 管理员成功登录 |
后置条件 | 操作成功 |
主事件流 | (1)管理员进入座位安排管理页面,查询座位安排的信息 (2)管理员可以对座位安排进行查询删除和编辑座位安排操作 |
异常事件流 | e1.报500错误 e2.数据库连接异常 |
表3-1 评论管理用例描述
描述项 | 说明 |
用例名称 | 评论操作 |
用例描述 | 管理员正确登录后台管理的条件下,评论模块进行管理 |
参与者 | 管理员 |
前置条件 | 管理员成功登录 |
后置条件 | 操作成功 |
主事件流 | (1)管理员进入评论管理页面,查询评论内容的信息 (2)管理员可以从用户评论中删除数据 |
异常事件流 | e1.报500错误 e2.数据库连接异常 |
-
- 系统业务流程分析
管理员权限下的工作流程主要为:管理员通过系统界面提供登录按钮并点击,转入管理员登录界面,并在界面上填入相应的管理员账户和管理员密码,进入管理员权限下的后台系统,并且在系统左侧导航条设置了相应的操作功能。
用户权限下的工作流程主要为:用户通过系统提供的注册功能,进行身份验证并注册,而后在登录界面进行个人身份验证,并且进入用户的个人后台界面,并进行相应的操作。
基于Android的高校讲座预约管理系统的业务流程如下图所示。
图3-3 系统业务流程图
层次框图是一系列由多层矩形框架组成的树,其顶部为矩形框架,表示整个数据结构,下方的长方形立方体表示独立的数据,下方的长方形表示该数据的实际数据(不能进行分割)。由于这个架构的精炼,层级方块图描述的资料结构也愈加详尽,这个模型很好地满足了需求分析的要求。首先对最上层的信息进行分类,然后在图表中的每个路径上重复地进行优化,直至完整的数据结构被确定。
这个系统由两个模块组成,一是管理员,二是普通用户,这两个部分看起来是独立的,实际上却是连接着数据库,每个模块都有自己的权限,唯一不同的,就是访问的方式不同。在调研资料的基础上,完成了各个模块的功能。在对上述功能进行分析的基础上,本系统提出了两个主要的模块,每个单元可划分为若干小单元。
系统的功能结构图如下图所示。
图4-2 系统功能结构图
基于Android的高校讲座预约管理系统在前端设计采用多种技术交互使用达到界面简洁大方,使用Java作为系统的编译语言,对于之前的分析所产生的问题进行解决,功能模块设计后进行编码实现具体功能:
登录模块:使用者必须输入正确的账号与密码才能访问系统。
在线讲座管理模块:管理者根据选择,可以给用户发布在线讲座,在添加在线讲座是输入在线讲座的详细信息,添加需要上传的文件之后回到在线讲座管理界面,在修改在线讲座时修改不对的信息,也可以删除重新添加在线讲座。
讲座预约管理模块:相关权限用户可以进行讲座预约的查询、删除操作。
校园论坛模块:包括话题板块模块、发帖、回帖、帖子管理等字模块,论坛模块里存在各种各样的话题板块,用户在相应的板块讨论相应的话题,用户在线发帖、回帖,管理人员管理所有论坛的帖子,对违规的在线删帖。
在需求分析中,我们用来分析的对象往往是抽象的概念,所以在这个环节应当避免过于细致的细节分析,而是通过这些抽象的概念来分析实体所具备的属性和实体之间的联系。基于Android的高校讲座预约管理系统利用E-R图对上述实体和联系进行描述。
图4-3 普通用户信息E-R关系图
图4-4 签到信息E-R关系图
图4-5在线讲座E-R关系图
图4-6 预约信息E-R关系图
图4-7 评论信息E-R关系图
总体ER图如下图所示。
图4-8 总体ER图
所有系统的应用数据相互区分。一旦在相应的系统中实现,它们将与自己相应的网络和服务器通信。所以这个系统可以连接这些数据。当我们选择桥梁截面时,以下将简要介绍如何建立系统。在单击上一个按键的时候,就会自动在对话框中弹出数据源的名字,之后再单击下一个按键时,就在填写相对应的身份验证和登录信息。按照系统功能设计的特点与职能模块的分类,基于Android的高校讲座预约管理系统的总体设计和实施过程一共涉及到了几个资料表格。
以下就介绍了一些根据各类别主要数据库表的设计结构以及基本功能建立数据库表:
表cancel_reservation (取消预约)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | cancel_reservation_id | int | 10 | 0 | N | Y | 取消预约ID | |
2 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | student_id_information | varchar | 64 | 0 | Y | N | 学号信息 | |
5 | college_information | varchar | 64 | 0 | Y | N | 学院信息 | |
6 | class_name | varchar | 64 | 0 | Y | N | 班级名称 | |
7 | lecture_id | varchar | 64 | 0 | Y | N | 讲座编号 | |
8 | lecture_title | varchar | 64 | 0 | Y | N | 讲座标题 | |
9 | opening_date | varchar | 64 | 0 | Y | N | 开讲日期 | |
10 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
11 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表comment (评论)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表forum (论坛)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | forum_id | mediumint | 8 | 0 | N | Y | 论坛id | |
2 | display | smallint | 5 | 0 | N | N | 100 | 排序 |
3 | user_id | mediumint | 8 | 0 | N | N | 0 | 用户ID |
4 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
5 | praise_len | int | 10 | 0 | Y | N | 0 | 点赞数 |
6 | hits | int | 10 | 0 | N | N | 0 | 访问数 |
7 | title | varchar | 125 | 0 | N | N | 标题 | |
8 | keywords | varchar | 125 | 0 | Y | N | 关键词 | |
9 | description | varchar | 255 | 0 | Y | N | 描述 | |
10 | url | varchar | 255 | 0 | Y | N | 来源地址 | |
11 | tag | varchar | 255 | 0 | Y | N | 标签 | |
12 | img | text | 65535 | 0 | Y | N | 封面图 | |
13 | content | longtext | 2147483647 | 0 | Y | N | 正文 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
16 | avatar | varchar | 255 | 0 | Y | N | 发帖人头像: | |
17 | type | varchar | 64 | 0 | N | N | 0 | 论坛分类:[0,1000]用来搜索指定类型的论坛帖 |
表offline_lectures (线下讲座)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | offline_lectures_id | int | 10 | 0 | N | Y | 线下讲座ID | |
2 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
3 | lecture_id | varchar | 64 | 0 | Y | N | 讲座编号 | |
4 | lecture_title | varchar | 64 | 0 | Y | N | 讲座标题 | |
5 | lecture_poster | varchar | 255 | 0 | Y | N | 讲座海报 | |
6 | lecture_supervisor | varchar | 64 | 0 | Y | N | 讲座导师 | |
7 | opening_date | datetime | 19 | 0 | Y | N | 开讲日期 | |
8 | number_of_seats | int | 10 | 0 | Y | N | 0 | 座位数量 |
9 | number_of_reservations | int | 10 | 0 | Y | N | 0 | 预约人数 |
10 | lecture_venue | text | 65535 | 0 | Y | N | 讲座地点 | |
11 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
12 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表online_booking (预约信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | online_booking_id | int | 10 | 0 | N | Y | 预约信息ID | |
2 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | student_id_information | varchar | 64 | 0 | Y | N | 学号信息 | |
5 | college_information | varchar | 64 | 0 | Y | N | 学院信息 | |
6 | class_name | varchar | 64 | 0 | Y | N | 班级名称 | |
7 | lecture_id | varchar | 64 | 0 | Y | N | 讲座编号 | |
8 | lecture_title | varchar | 64 | 0 | Y | N | 讲座标题 | |
9 | opening_date | varchar | 64 | 0 | Y | N | 开讲日期 | |
10 | number_of_reservations | int | 10 | 0 | Y | N | 0 | 预约人数 |
11 | lecture_venue | text | 65535 | 0 | Y | N | 讲座地点 | |
12 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
13 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表online_lectures (在线讲座)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | online_lectures_id | int | 10 | 0 | N | Y | 在线讲座ID | |
2 | lecture_id | varchar | 64 | 0 | Y | N | 讲座编号 | |
3 | lecture_title | varchar | 64 | 0 | Y | N | 讲座标题 | |
4 | release_date | date | 10 | 0 | Y | N | 发布日期 | |
5 | lecture_supervisor | varchar | 64 | 0 | Y | N | 讲座导师 | |
6 | lecture_poster | varchar | 255 | 0 | Y | N | 讲座海报 | |
7 | lecture_video | varchar | 255 | 0 | Y | N | 讲座视频 | |
8 | lecture_content | longtext | 2147483647 | 0 | Y | N | 讲座内容 | |
9 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表regular_users (普通用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
5 | student_id_information | varchar | 64 | 0 | Y | N | 学号信息 | |
6 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表sign_in_information (签到信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | sign_in_information_id | int | 10 | 0 | N | Y | 签到信息ID | |
2 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | lecture_id | varchar | 64 | 0 | Y | N | 讲座编号 | |
5 | lecture_title | varchar | 64 | 0 | Y | N | 讲座标题 | |
6 | opening_date | varchar | 64 | 0 | Y | N | 开讲日期 | |
7 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
8 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
9 | location_address | varchar | 64 | 0 | Y | N | 当前位置 | |
10 | location_lng | varchar | 64 | 0 | Y | N | 当前位置经度 | |
11 | location_lat | varchar | 64 | 0 | Y | N | 当前位置纬度 | |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
系统实现
用户登录的验证将不再局限于登录信息和权限的匹配验证,而是另外增加了一个验证码,只有界面上所有的编辑框数据都准确的情况下才能实现登录成功。管理员的登录和前台用户登录是一样的过程,其主要就是利用权限字段来完成对用户或管理员的角色识别。
用户登录流程图如下所示。
图5-1 用户登录流程图
登录界面如下图所示。
图5-1 登录界面
登录关键代码如下所示。
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
Duration duration = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
系统的用户通过自行注册生成,在系统首页点击用户注册菜单,系统跳转到对应的注册页面。点击重置按钮,清空所填数据,点击注册按钮完成注册。
用户注册流程图如下所示。
图5-1 用户注册流程图
用户注册界面如下图所示。
图5-1 用户注册界面
注册关键代码如下:
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
-
-
- 交流模块的实现
-
当用户和用户之间交流之后,管理者可以在主界面中可以选择交流功能,管理者可以进行用户的交流查看,可以进行填写交流回复,也可以对交流进行删除。通过这种方式,管理者可以和用户进行密切的交流。
发表交流流程图如下所示。
图5-1 发表交流流程图
发表交流界面如图所示。
图5-1 发表交流界面
-
-
- 在线讲座收藏模块的实现
-
用户选择相应的在线讲座收藏,通过id传参,找到id为此传参的文化,在收藏页提交收藏记录表单,生成收藏记录,用户在个人中心管理个人的收藏夹。
在线讲座收藏界面如下图所示。
图5-1 在线讲座收藏界面
用户点击某个讲座进入在线讲座详细页,点击评论按钮进入评论页,提交评论信息,成功发布评论,管理员管理用户的评论信息。
发布评论流程图如下所示。
图5-1 发布评论流程图
发布评论界面如图所示。
图5-1 发布评论界面
用户通过注册了方可获得登录使用权限,此时选择普通用户选项,系统就会自动转到用户注册工作面,在注册该部分信息时系统会自动调用add函数,然后在给定的文本框中填写有关该用户的基础信息后选择确认即可完成注册。检索用户信息,在新增用户信息以后,在检索工具栏中填写对应的用户信息,系统就会将该用户有关的所有信息展示出来。
用户管理流程图如下所示。
图5-1 用户管理流程图
用户管理界面如下图所示。
图5-1 用户管理界面
用户管理关键代码如下所示。
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
-
-
- 在线讲座模块的实现
-
管理员执行在线讲座管理,并可以操作相关内容,例如添加,查看,编辑和删除。通过单击“添加在线讲座”,可以通过在线讲座添加界面添加详细信息并添加在线讲座注释。单击查看字段级别链接以查看有关所选字段级别的信息。然后单击“提交”跳转重返到添加页面。添加成功后的信息会载入到在线讲座查询列表中,管理员可进行编辑以及修改。
在线讲座管理流程如下图所示。
图5-1 在线讲座管理流程
在线讲座管理界面如下图所示。
图5-1 在线讲座管理界面
在线讲座管理关键代码如下:
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
return success(1);
}
-
-
- 讲座预约管理模块的实现
-
点击“讲座预约”会显示出所有的讲座预约信息,支持对讲座预约信息进行查询,可以选择某一条讲座预约信息,点击“删除”进行删除,也可以点击后面的“座位安排”、按钮对讲座预约的座位安排信息进行更新维护。
讲座预约管理如下图所示。
图5-1 讲座预约管理界面
讲座预约管理关键代码如下所示。
@RequestMapping(value = "/del")
@Transactional
public Map<String, Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request), service.readConfig(request));
return success(1);
}
public void delete(Map<String,String> query,Map<String,String> config){
QueryWrapper wrapper = new QueryWrapper<E>();
toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);
baseMapper.delete(wrapper);
log.info("[{}] - 删除操作:{}",wrapper.getSqlSelect());
}
用户和管理员都可以查看座位安排信息,用户可以对自己的座位安排进行删除,管理员可以查看座位安排信息,对座位安排进行签到。
座位安排管理界面如下所示。
图5-1 座位安排管理界面
点击“交流管理”菜单可以对其下校园论坛和论坛的分类进行增删改查。同时设有查看管理评论的功能,对用户提交的评论进行管控。
交流管理界面如下图所示。
图5-1 交流管理界面
系统测试的目的是为了尽可能多的检查出系统出现的bug,因为系统是人做出来的,肯定存在由于算法等各种原因造成问题,错误暴露得越早越好,如果能在系统上线之前就能找到这些bug肯定是最好不过了的,所以需要对系统进行测试。本文主要就是对系统进行了兼容性的测试,还有就是使用了典型测试用例进行测试。
-
- 测试用例
校园论坛测试用例如下表所示。
表6-1 校园论坛测试用例
测试用例编号 | YL_03 | |
测试用例名称 | 系统使用者进行在线交流 | |
测试用例描述 | 使用者输入交流标题、内容等信息 | |
系统入口 | 浏览器 | |
步骤 | 预期结果 | 实际结果 |
输入完整的交流标题和内容 | 提示“交流成功”,并进入系统 | 预期结果 |
不输入的交流标题和内容 | 提示“请输入完整” | 预期结果 |
-
-
- 创建数据测试
-
在系统中,创建功能也是基础功能之一,因此创建功能的测试很有代表性。在此章节主要列举在创建时各种情况下系统结果的测试。由于系统涉及创建功能操作过多,因此将多处统称创建功能。
创建数据用例如下表所示。
表6-2 创建数据测试用例
测试用例编号 | YL_05 | |
测试用例名称 | 系统使用者进行创建数据 | |
测试用例描述 | 使用者输入要创建的数据 | |
系统入口 | 浏览器 | |
步骤 | 预期结果 | 实际结果 |
输入完整并且格式正确的数据 | 提示“创建成功”,并显示所有数据 | 预期结果 |
核心位置数据但非必要位置不输入数据 | 提示“创建成功”,并显示所有数据 | 预期结果 |
核心数据位置不输入数据 | 提示“创建失败” | 预期结果 |
-
-
- 修改数据测试
-
在系统中,修改功能是系统主要实现功能,因此修改功能的测试很有代表性。在此章节主要列举在修改时各种情况下系统结果的测试。由于系统涉及修改功能操作过多,因此将多处数据表记录修改和状态修改统称修改功能。
修改数据用例如下表所示。
表6-3 修改数据测试用例
测试用例编号 | YL_06 | |
测试用例名称 | 系统使用者进行修改数据 | |
测试用例描述 | 使用者对可修改的数据项进行修改 | |
系统入口 | 浏览器 | |
步骤 | 预期结果 | 实际结果 |
将现有数据修改成正确的数据 | 提示“修改成功”,并显示所有数据 | 预期结果 |
将现有数据修改成错误的数据 | 提示“修改失败” | 预期结果 |
-
-
- 查询数据测试
-
在系统中,查询功能是使用系统使用最多也是最基础的功能,因此查询功能的测试很有代表性。在此章节主要列举在查询时各种情况下系统结果的测试。
查询数据用例如下表所示。
表6-4 查询数据测试用例
测试用例编号 | YL_05 | |
测试用例名称 | 系统使用者进行查询数据 | |
测试用例描述 | 全部查询以及输入关键词查询 | |
系统入口 | 浏览器 | |
步骤 | 预期结果 | 实际结果 |
界面自动查询全部 | 显示对应所有记录 | 预期结果 |
输入已存在且能匹配成功的关键字 | 显示所查询到的数据 | 预期结果 |
输入不存在的关键字 | 显示数据界面为空 | 预期结果 |
在本次测试的过程主要针对所有功能下的添加操作,修改操作和删除操作,并以真实数据一一进行相关功能项目的输入,最终能够保证每个项目涉及的功能都是能够正常运行,因此能够保证本次设计的,已实现的功能能够正常运行并且相关数据库的信息也同样保证正确。
结 论
在基于Android的高校讲座预约管理系统开发之前,需要先对用户的具体需求进行分析。包括系统的可行性分析、功能需求分析以及其他需求等。在可行性分析过程中,对系统实现的技术性、操作性以及管理等方面进行了分析。总体上证明了系统实施的可行性。
本文总结了基于Android的高校讲座预约管理系统实现研究背景、研究意义,然后阐述了系统的具体业务需求,并根据系统需求对系统结构以及功能模块等进行了详细地设计,将整个系统划分为多个不同的功能模块。在分析系统功能需求时,对整个系统的总体架构以及功能模块等进行了分析,并选择合适的系统开发技术完成了对各个模块的开发工作。系统开发完成之后进行了部署,同时进行了系统的测试过程,通过测试证明了系统在功能以及性能等方面都达到了预期的要求,具有较高的稳定性与可靠性。
参考文献
- 马超,常增亮,高兴国等. 基于Android平台的电力工程外业踏勘三维辅助系统设计与实现 [J]. 电力勘测设计, 2024.
[2]闫辉,王亚宁,陈修龙等. 基于Android的曲轴凸轮轴信号发生器上位机软件研发 [J]. 科技创新与应用, 2024.
[3]王正,秦小超,卿晓东. 一种基于Android获取应用实时帧率的方法[P]. 四川省: CN117421500A, 2024-01-19.
[4]宋晓燕,杨芬. Java程序设计语言的分层教学实践 [J]. 电子技术, 2023, 52 (11): 182-183.
[5]田玉昆. 基于Java Web技术的手机销售网站的设计与实现 [J]. 电脑知识与技术, 2023, 19 (32): 47-49.
[6]Xiao Z ,Ali Y ,Xin W , et al. Sports Work Strategy of College Counselors Based on MySQL Database Big Data Analysis [J]. International Journal of Information Technology and Web Engineering (IJITWE), 2023, 18 (1): 1-14.
[7]Karthik G ,Debashish M ,Jagoda C , et al. Developing a MySQL Database for the Provenance of Black Tiger Prawns (Penaeus monodon). [J]. Foods (Basel, Switzerland), 2023, 12 (14):
[8]曲宗生,刘大年 主编, 2021年国家专利项目 一种基于Android的视频悬浮播放方法, 曲宗生,刘大年 主编, 中国广播电视年鉴, 中国广播电视年鉴编辑部, 2022, 291, 年鉴.
[9]Sunday O B ,Nduka O S . MySQL Database Server: Deploying Software Application to Enhance Visibility and Accountability [J]. Current Journal of Applied Science and Technology, 2023, 42 (4): 16-23.
[10]朱西深,刘志鹏,阚国庆. 基于Android系统智能压力表的开发与应用[C]// 中国自动化学会. 2022中国自动化大会论文集. 中车青岛四方机车车辆股份有限公司;安徽能汇轨道交通技术有限公司;, 2022: 6.
[11]宋剑华, 基于Android的承压特种设备现场检验工具软件. 浙江省, 绍兴市特种设备检测院, 2021-07-29.
[12]彭洪超. 基于Android系统的自动化测试用例的实现和优化[D]. 南京邮电大学, 2020.
[13]查杭,卢成林,万琪伟等. 微信小程序在讲座管理中的应用 [J]. 现代信息科技, 2020, 4 (01): 4-6.
[14]胡锦楠,孙慧. 基于Android的图书馆预约服务系统 [J]. 智能计算机与应用, 2020, 6 (06): 62-64+67.
[15]郭文丽,赵晓晔,周婕. 基于Ajax的图书馆讲座预约系统构建 [J]. 现代图书情报技术, 2020, (05): 84-88.
致 谢
在此论文完成之际,感谢我的指导老师。在指导老师的网页设计课上,当时我学到了很多东西,这对于我实习过程中也打了一定的基础,而且指导老师对于我的设计也提出许多建议,并予以悉心的指导,对于一些细小的问题都耐心的指导我去完善,授予我写论文的心得,时常的鼓励我,另外感谢教导我完善此项目的前端同学,对于这个项目,我是边学习边实现完成的,有许多东西开始并不是很明白,但前端开发的同学非常耐心的引导我去将这个项目完成,在系统的后端开发中,所用到的后台开发技术也时常会给我讲解,助于我更好的将论文完成,在此对帮助到我的同学和一直予以教导的指导老师致以衷心的感谢,祝事业有成。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~
原文地址:https://blog.csdn.net/vx2_Biye_Design/article/details/140183997
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!