基于Java的影院管理系统 的设计与实现

摘要

随着社会的不断发展和人们生活水平的提高,人们对娱乐方式的需求也越来越多样化和个性化。影院作为一种传统的娱乐方式,一直以来都扮演着重要角色,但随着互联网、数字科技的迅猛发展,传统影院管理面临着诸多挑战和机遇。影院管理系统可以帮助影院提高管理效率和降低成本。传统的影院管理往往需要大量人力和物力,而引入先进的信息技术可以简化在线购票、影片排片等工作流程,减少人为错误和资源浪费,提高运营效率。
该系统主要使用Java语言,后端框架选择SpringBoot框架,数据库选择MySQL数据库进行开发,前端框架选择VUE。管理员可以后台管理影片,上新影片和对电影进行排片,查看所有订单以及查看所有用户信息。而用户可以通过登录注册本系统后进行在线选座购票,浏览影片信息,电影评分等。与其他电影购票系统相比,本系统设计能够更加清晰直观的满足用户的需求。

关键词:影院管理系统;Java;VUE;SpringBoot

Abstract

With the continuous development of society and the improvement of people’s living standards, people’s demand for entertainment methods is becoming increasingly diverse and personalized. As a traditional way of entertainment, cinema has always played an important role. However, with the rapid development of the Internet and digital technology, traditional cinema management is facing many challenges and opportunities. The cinema management system can help improve management efficiency and reduce costs in cinemas. Traditional cinema management often requires a large amount of manpower and material resources, while introducing advanced information technology can simplify the workflow of online ticket purchasing, film scheduling, etc., reduce human errors and resource waste, and improve operational efficiency.
The system mainly uses Java language, with SpringBoot framework as the backend framework, MySQL database as the database for development, and VUE as the frontend framework. The main functions include user login and registration, film management, user management, order management, seat selection and ticket purchase, personal center, and system messaging. Administrators can manage movies in the background, upload new movies, arrange movies, view all orders, and view all user information. Users can choose seats and purchase tickets online by logging in and registering with this system. Compared with other movie ticketing systems, this system design can more clearly and intuitively meet the needs of users.

Key words: Theater Management System; Java; VUE; SpringBoot
目 录
摘要 I
Abstract II
第1章 绪论 5
1.1 课题开发的背景和现状 5
1.2 课题开发的意义 5
1.3 相关技术介绍 6
1.3.1 Java语言 6
1.3.2 SpringBoot框架 6
1.3.3 JDBC技术 6
1.3.4 VUE 7
1.3.5 MySQL数据库 7
1.3.6 编程与运行环境 7
第2章 需求分析 9
2.1 系统业务功能需求分析 9
2.1.1 普通用户功能需求分析 9
2.1.2 管理员功能需求分析 10
2.2 可行性分析 11
2.2.1 技术可行性 12
2.2.2 经济可行性 12
2.2.3 操作可行性 13
第3章 总体设计 14
3.1 系统功能结构设计 14
3.2 数据库设计 15
3.2.1 概念模型设计 15
3.2.2 数据库表设计 16
第4章 详细设计及实现 20
4.1 登录注册功能设计与实现 20
4.2 影视管理功能设计与实现 22
4.3 订单管理功能设计与实现 24
4.4 用户管理功能设计与实现 29
4.5选座购票功能设计与实现 26
4.6 个人设置功能设计与实现 29
4.7 电影评分功能设计与实现 33
4.8 我的订单功能设计与实现 36
4.9 影片浏览功能设计与实现 37
第5章 系统测试 40
5.1 测试原则 40
5.2 系统测试 40
5.2.1 登录功能测试 40
5.2.2 影视管理功能测试 41
5.2.3 订单管理功能测试 42
5.2.4 选座购票管理功能测试 43
5.2.5 个人设置管理功能测试 44
5.2.6 用户管理功能测试 44
5.3测试结论…44
第6章 总结 46
6.1 工作总结 46
6.2 展望 46
参考文献 47
致谢 50

第1章 绪论
1.1 课题开发的背景和现状
随着现代社会的快节奏和人们对娱乐的需求增加,影院管理系统成为了人们购买电影票的主要途径。传统的排队购票方式需要人们花费大量时间等候,而影院管理系统可以让用户通过网上或手机应用轻松选择电影、时间和座位,并方便地进行支付,从而节约了用户的时间和精力。影院管理系统可以让用户更加便捷地选择和购买电影票。此外,系统也可以提供座位预览功能,让用户能够更好地选择理想的座位位置,提升用户的观影体验和满意度。购票系统可以实时监控电影院的座位利用情况,通过智能排片和座位分配算法,合理安排每场电影的座位利用率,从而实现资源的最大化利用,提高电影院的收益。影院管理系统是电子商务和数字化转型的一个典型应用,通过研究和优化购票系统,可以推动更多的电影院加快数字化转型,提高经营效率和竞争力[1]。
1.2 课题开发的意义
影院管理系统可以实现全面、自动化的票务管理,包括票务销售、座位分配、排片安排等。通过系统的协调和优化,可以大幅提高票务管理的效率,减少人工操作的错误和繁琐,提高票务工作的准确性和效率。购票系统可以实时监测电影院的座位利用情况,通过智能化的座位分配算法,合理安排座位分布,最大程度地满足用户需求,同时最大限度减少座位的浪费,提高座位的利用率和票房收入。影院管理系统能够对用户的购票喜好、观影习惯等资料进行采集与分析,从而对影院进行准确的市场分析以及针对性的营销战略。通过个性化推荐、精准广告投放等方式,提高电影院的品牌知名度和市场份额。可以促进电影产业的数字化、智能化发展,推动电影院线与互联网技术的深度融合。此外,购票系统的不断创新和优化也可以提升电影院的竞争力和盈利能力,进一步促进整个电影产业的发展。综上所述,影院管理系统的选题意义在于提升用户体验、优化资源利用、实现数据分析和市场营销以及推动电影产业的数字化发展。

1.3 相关技术介绍
影院管理系统主要基于Java来实现的。相关技术还有SpringBoot、JDBC、VUE、MySQL等技术。本章主要对设计所要使用的开发工具及相关技术进行介绍。
1.3.1 Java语言
Java是一个纯面向对象的程序设计语言,它支持一些基本的面向对象的概念,如封装,继承,多态。这种面向对象的设计方式使得代码更具可重用性和可维护性。Java使用 JVM来实现平台独立性。一段编译好的 Java代码,仅需安装一个对应的 JVM,就能在多个操作系统上运行。这一特点为 Java提供了一个巨大的优势,用于开发跨平台的应用程序。Java内置了安全机制,包括沙箱安全模型、字节码验证等,可以防止恶意代码对系统的破坏。这使得Java在开发网络和分布式应用时更加安全可靠[2]。
1.3.2 SpringBoot框架
Spring Boot内置 Servlet容器(例如 Tomcat, Jetty,等等),因此不需要进行任何外部的部署或者安装,就可以在不需要进行任何外部部署和安装的情况下,就可以直接运行 Java应用。这样可以大大加速应用程序的启动时间并简化部署过程。SpringBoot与 SpringCloud一起工作,为构建和部署微服务体系结构提供了工具和构件。利用 SpringBoot,您可以迅速地建立微服务体系结构,并且很容易地进行服务登记、配置管理、负载均衡等功能。Spring Boot提供了一系列的开发工具和功能,如自动装配、热部署、开发者友好的错误信息等,该方法能大大提高软件的开发效率,降低代码编写工作量。Spring Boot提供了一系列的健康状况检查和监视机制,这些机制能够监测你的应用的运行情况、性能指标等,并通过REST接口暴露这些信息,方便运维人员进行监控和管理[3]。
1.3.3 JDBC技术
JDBC提供了访问数据库元数据的API,如获取数据库结构、表和列的信息。这使得开发者可以动态地获取和操作数据库的结构信息,如表名、列名、数据类型等。JDBC支持预编译SQL语句,开发者可以预先编译和优化SQL语句,以提高查询性能。此外,JDBC还支持批处理操作,即一次执行多条SQL语句,可以提高数据库操作的效率。[5]。
1.3.4 VUE
vue是一个非常受欢迎的用于创建用户接口的 JavaScript前端框架。这是一个以数据为导向的、可组合的架构,让开发人员可以更容易的建立互动且可扩充的网页应用程式。js是一种渐进的框架,它可以循序渐进地在已有的工程中使用,也可以从头创建完整的应用。这使其具有很强的灵活性,并且能够按照项目的需要不断地增加。js使用了一种基于响应的数据绑定机制.视图在数据更改时自动更新,反之亦然。这个简单但功能强大的数据绑定机制将大大减轻开发人员的负担。
1.3.5 MySQL数据库
它可以高效地存储和检索结构化的数据。它采用了 SQL (结构查询语言)作为操作语言,开发人员可以使用SQL语句来创建、查询、更新和删除数据库中的数据。MySQL拥有很高的可扩充性,可以同时处理海量的资料及使用者的要求。它支持并发访问,索引,查询优化和分布部署,提供了良好的性能和吞吐量。MySQL提供了多层次的安全性保护。它支持基于角色的访问控制、SSL加密传输、用户认证和授权等功能,可以防止未经授权的访问和数据泄漏。总的来说,MySQL是一种可靠、一个稳定、高效的关系数据库管理系统.该系统具有很好的可扩展性、安全性能。MySQL在很多应用中得到了广泛的应用,其中包括 web应用,企业级应用等等[6]。
1.3.6 编程与运行环境
利用 Java语言开发了影院管理系统,选用VUE作为前端框架,MySQL为数据库。本课题以Java代码为基础,选取SpringBoot框架作为技术框架。影院管理系统采用IDEA、Navicat等开发工具,采用Java语言、SpringBoot框架进行开发。

第2章 需求分析
在软件工程中,在系统执行设计之前,对使用者所做的需求分析,是一个必不可少的步骤,也是一件很重要的工作,其工作就是对系统的可行性、功能性和非功能性进行全面的调查与分析,以满足用户对系统的功能要求,制定出最优的实施方案,然后按照方案一步一步地进行设计与实现。
2.1 系统业务功能需求分析
2.1.1 普通用户功能需求分析
普通用户功能模块包括:登录注册、影片浏览、选座购票、电影评分、我的订单、个人设置。

  1. 登录注册
    登录注册功能是影院管理系统的基础,为用户提供了安全可靠的访问和使用系统的权限。通过合理设计和实施这些功能,可以提升系统的用户体验和安全性。
  2. 选座购票
    选座购票功能可以提供用户灵活的购票体验,让用户能够自由选择座位,避免排队和等候。同时,系统可以实时更新座位状态和票价信息,为用户提供最新的购票选项。它可以提高用户对购票过程的满意度,同时简化影院的票务管理流程。
  3. 个人设置
    用户可以轻松地更新个人信息、账号密码,并保障账号和个人信息的安全。这些设置可以提高用户的满意度,同时也为系统提供了更准确的用户资料和需求数据,以提供个性化的服务。
  4. 电影评分
    电影评分功能为用户提供了一个平台来表达自己的观点和感受,同时也为其他用户提供了参考和交流的机会。它可以提高用户对影院管理系统的参与度和用户体验,并为电影院提供有关电影质量和用户反馈的重要数据。
  5. 我的订单
    我的订单功能提供了用户对购票信息的整体掌控能力。用户可以通过该功能方便地查看、管理和跟踪他们的购票订单,确保购票流程顺利进行。它为用户提供了方便和灵活的购票体验,并帮助他们更好地组织和安排观影计划。
  6. 影片浏览
    影片浏览功能可以提供用户一个全面的影片信息平台,使用户能够方便地查找到感兴趣的影片,并了解各种相关信息。这有助于提高用户对影院管理系统的使用体验,帮助用户做出更好的观影选择。

普通用户功能用例图如图2-1所示。
在这里插入图片描述

图2-1 普通用户功能用例图
2.1.2 管理员功能需求分析
管理员功能模块包括:管理员登录、用户管理、影视管理、订单管理。

  1. 管理员登录
    管理员可以使用自己的帐户和密码进行登录和退出。
  2. 用户管理
    通过这个功能,管理员可以维护用户数据库、保障系统安全、调整用户权限,以及了解和处理用户问题。这有助于提高系统的管理效率和用户服务质量。
  3. 影视管理
    影视管理功能为管理员提供了对电影信息的完整管理和维护能力。管理员可以录入、编辑和更新电影信息,确保信息的准确性和及时更新。通过影片排序、分类和推荐功能,管理员可以提供更好的电影浏览和推荐体验。另外还包括排片管理。排片管理功能可以让管理员设置每部电影的排期。管理员可以选择电影的上映时间和日期,并将其安排在适当的影厅中播放。排片管理功能为管理员提供了对电影的排期和场次进行灵活管理和调度的能力。通过合理安排电影的播放时间和场次,管理员可以提高电影院的座位利用率,优化观影体验,并为用户提供多样化的选择。
  4. 订单管理
    订单管理功能为管理员提供了对用户订单的全面管理和处理能力。通过订单的查看和查询功能,管理员可以了解订单的详细信息。通过订单状态管理,管理员可以跟踪订单的处理进度并做出相应的操作。
    管理员功能用例图如图2-2所示。
    在这里插入图片描述

图2-2 管理员主要功能用例图
2.2 可行性分析
考虑开发和实施影院管理系统的技术方面。确定所需的硬件和软件资源,并评估是否有足够的技术能力和资源来实施系统。还需要评估系统与现有技术基础设施的集成能力。进行成本效益分析,评估开发和运行影院管理系统的经济可行性。考虑开发、维护和更新系统所需的人力资源、服务器硬件、软件许可、网络带宽等费用,并与预期的收益进行比较。影院管理系统涉及到用户敏感信息(如支付信息),因此安全性是一个重要考虑因素。评估所需的安全措施,如数据加密、身份验证和访问控制等,以确保用户信息和交易的安全性。
2.2.1 技术可行性
Vue.js是一个流行的前端JavaScript框架,它提供了响应式、组件化和可扩展的开发模式,非常适合构建交互性强的应用程序。使用Vue.js可以实现良好的用户界面和用户交互体验。Spring Boot是一个框架,用来构建独立的产品级 Java应用。它提供了很多现成的特性和工具,从而使 Spring应用的开发和部署变得更加简单。利用 Spring Boot可以为电影院管理系统迅速建立后台服务。影院管理系统需要实现对订单的处理,包括对座位的锁定和释放、支付交易的处理等。Spring Boot的事务管理功能可以确保这些操作的原子性和一致性。基于Java的影院管理系统在技术上是可行的。借助Vue.js的特性和生态系统的支持和SpringBoot框架可以开发出功能强大、用户友好的前端应用程序[7]。
2.2.2 经济可行性
基于Spring Boot的开发框架,可以减少开发成本和时间。Spring Boot为开发者提供了很多现成的组件和特性,让开发者能够很快地建立起具有良好特性的系统。此外,Spring Boot有一个庞大的社区和文档资源,使得开发人员能够很容易找到解决方案和遇到的问题。相比较使用传统Java开发方式,通过使用Spring Boot可以降低开发人员的培训和学习成本。运营成本包括服务器托管费用、带宽费用、系统维护和更新的人力成本等。使用Spring Boot的影院管理系统可以采用云服务提供商进行托管,如AWS、Azure或阿里云等。这样可以避免自行购买和维护服务器的成本,同时根据实际需求和流量进行弹性伸缩,降低了运营成本。此外,Spring Boot的自动化部署和监控工具,可以减少系统维护和更新的人力成本。基于Java的影院管理系统在经济上是可行的。它可以通过减少开发成本、降低运营成本以及提高收益来实现经济可行性。
2.2.3 操作可行性
基于Java的影院管理系统可以通过设计直观的用户界面和简洁的操作流程来提供良好的用户体验。SpringBoot为开发者提供了大量的开发工具和构件,从而使开发者能够迅速地建立一个易于使用的接口。另外,采用先进的前端架构及反应性设计,保证了该系统在不同的装置上均能正常工作,并具有可负责任的布局,为各种萤幕大小提供了一致的使用者经验。基于Java的影院管理系统在操作上是可行的。它可以通过提供用户友好的界面、良好的系统性能、数据准确性和一致性、故障恢复和灾备能力、安全性和权限管理来确保系统在实际操作中的可行性[8]。

第3章 总体设计
本系统采用了 B/S架构、 MVC设计思想。用户界面层,用于展示界面。逻辑层,以逻辑为核心。数据库层主要是数据库的CRUD [10]。
3.1 系统功能结构设计
在对该系统进行需求分析的基础上,分别设计了用户模块和管理员模块。其中用户模块包括登录注册、影片浏览选座购票、电影评分、我的订单、个人设置等功能,管理员模块包括登录、用户管理、影视管理、订单管理等功能,系统设计总体结构图如图3-1所示。
在这里插入图片描述

图3-1 系统设计总体结构图
整个系统中包含以下功能:登录注册功能设计,在登录注册功能中,用户需要首先进行注册,以创建一个用户帐户。注册过程通常需要提供一些个人信息,例如用户名、电子邮件地址和密码。一旦提供了必要的信息并点击注册按钮,系统会验证用户提供的信息,并在成功验证后创建一个新的用户帐户。管理员也可通过此功能进行登录。2影视管理功能设计,允许管理员添加、修改、删除影片,以及管理影片的标签、分类等。订单管理功能设计,订单管理功能允许管理员处理订单。他们可以标记订单为异常订单或者手动撤销该订单,以便跟踪订单的状态和进度。用户管理功能设计,用户管理功能是一个用于管理和审计用户账户信息的功能,它提供一个平台让管理员可以查看、编辑、删除和创建用户账户信息。 选座购票功能设计,用户可以通过一个可视化的座位图选择他们想要的具体座位,该图显示了所有座位的位置。用户可以在该图上对座位进行缩放和放大,以更好地查看座位的细节和位置。选座购票功能的优势在于,它提供了一种更人性化、直观和方便的购票方式,用户可以更精确地选择他们所需的座位。个人设置功能设计,个人设置功能是一个用户友好的界面,让用户可以轻松管理和操作他们的个人信息和账户设置。它为用户提供了一个集中管理和控制的平台,使用户能够自主管理和个性化他们的账户。电影评分功能设计,电影评分功能是一个让用户可以更直观地浏览,比较和选择电影信息的平台。除此之外,用户还可以通过电影评分功能中的评分信息和评论,了解不同用户对电影的看法所产生的评价和影响。我的订单功能设计,用户可通过该功能查看订单信息以及结算费用。影片浏览功能设计,用户可通过该功能浏览影片信息,例如,影片海报,影片简介等。
3.2 数据库设计
3.2.1 概念模型设计
在构建数据结构时,重点介绍了实体、属性以及它们之间的相互关系。本文运用解析理论与方法,对影院管理系统的需求进行了深入研究,并对其进行了需求分析与抽取[11]。系统所应用的实体模型分别为:用户实体、管理员实体、评论实体、订息实体、电影实体。
在一个系统中,不同的实体是相互联系的。图3-2显示了该系统中的关键实体E-R模型。在此基础上,提出了一种基于一般用户实体和评论实体、订单实体、电影实体间的一对多关系。在系统管理员状态下,管理员与订单实体、评论实体、电影主题间为一对多的关系。从而得到系统的E-R图。
在这里插入图片描述

图3-2系统E-R图
3.2.2 数据库表设计
基于数据库的分析和概念结构的设计,将对应的数据库的概念模型转换成了逻辑结构,也就是设计了数据库的结构[12]。本系统中主要MySQL数据表的结构设计如下。

  1. 用户信息表
    用户信息表保存着影院管理系统的所有的用户信息,其中aid是用户id,类型为int,为主键自增,dizhi是地址,类型为varchar,数据长度为150,不能为空, dianhua是电话,类型为varchar,数据长度为150, accou是账号,类型为varchar,数据长度为150, pass是密码,类型为varchar,数据长度为150,不能为空,用户信息表如表3-1所示。

表3-1 用户信息表
字段名 数据类型 长度 是否为主外键 能否为空
aid int 100 是 否
dizhi varchar 150 否 否
Dianhua
accou varchar
varchar 150
150 否
否 否

pass varchar 150 否 否
2. 电影信息表
电影信息表主要存放的是影院管理系统中所有电影详细信息,其中cid是默认id,数据类型为int,为主键自增,fenlei为分类,数据类型为int,数据长度为110,不能为空,ming为电影名称,数据类型为varchar,数据长度为110,不能为空, yanyuan为演员,数据类型为varchar,不能为空,cont为电影详情,数据类型为varchar,数据长度为110,不能为空。daoyan为导演,数据类型为varchar,数据长度为110,不能为空。电影信息如表3-2所示。
表3-2电影信息表
字段名 数据类型 长度 是否为主外键 能否为空
cid int 10 是 否
fenlei int 110 否 否
ming varchar 110 否 否
yanyuan varchar 110 否 否
Cont
daoyan varchar
decimal 110
110 否
否 否

3. 订单信息表
订单信息表是用来存储所有用户的购票情况的。其中nid是默认id,数据类型为int,为主键,danhao为单号,数据类型为varchar,数据长度为120,不能为空,cid为电影id,数据类型为int,数据长度为120,不能为空,zuowei为座位号,数据类型为varchar,数据长度为120,不能为空。订单信息表如表3-3所示。
表3-3 订单信息表
字段名 数据类型 长度 是否为主外键 能否为空
nid int 10 是 否
danhao varchar 120 否 否
cid int 120 否 否
zuowei varchar 120 否 否
4. 电影评论信息表
电影评论信息表是用来存储所有评论信息的。其中id是默认id,数据类型为int,为主键自增,cid为电影id,数据类型为int,数据长度为130,不能为空,fenshu为分数,数据类型为int,不能为空,neirong为评论内容,数据类型为varchar,数据长度为130,不能为空。电影评论信息表如表3-4所示。
表3-4 电影评论信息表
字段名 数据类型 长度 是否为主外键 能否为空
Id int 10 是 否
cid int 130 否 否
fenshu int 130 否 否
neirong varchar 130 否 否
5. 管理员表
管理员信息表存储着后台影院管理系统管理员的信息。其中zid是主键,数据类型为int,为主键,ming为管理员姓名,数据类型为varchar,数据长度为135,不能为空,pwd为密码,数据类型为varchar,管理员表如表3-5所示。

表3-5管理员表
字段名 数据类型 长度 是否为主外键 能否为空
Zid
Ming
Pwd
acc Int
varchar
varchar
varchar 150
135
135
135 否


否 否


第4章 详细设计及实现
4.1 登录注册功能设计与实现
用户可通过该功能、完成帐号的注册,当帐号注册完成后,在登陆的时候点击“登陆”按钮,然后将自己的账户和密码输入进去,然后由系统到资料库中对比,如果帐号和密码都是正确的,那么就会跳到系统的主页面,如果没有通过,则需要再次输入自己的账号和密码。图4-1显示了系统注册的流程图。
在登陆界面上,用户必须输入自己的用户名和密码,然后点击“登陆”键。系统将按照使用者所输入的名称与密码进行核对,确认无误后,即可登陆系统主页面;如果没有,将提示您的登录失败。管理员也可通过此功能功能登录。登录界面效果图如图4-2所示。
在这里插入图片描述

图4-1 系统登录流程图
本系统的登录页面,集成在LoginController.java文件中,关于登录的主要代码如下:
@PostMapping(“/login”)
@ApiOperation(“用户登录”)
public Map<String, Object> login(@RequestBody LoginDto dto) throws Exception {
User user = userService.login(dto);
Map<String, Object> map = new HashMap<>();
//是否选择记住我
longexp=dto.isRemember()? JwtTokenUtil.REMEMBER_EXPIRATION_TIME :JwtTokenUtil.EXPIRATION_TIE;
List roles = new ArrayList<>();
roles.add(Roles.ROLE_USER);
map.put(“token”, JwtTokenUtil.createToken(dto.getUsername(), roles, exp));
map.put(“user”, user);
return map;
}
在这里插入图片描述

图4-2 登录界面效果图
4.2 影视管理功能设计与实现
管理员在后台可以新增影片。当管理员点击影视管理系统进入影视管理列表,管理员可以看到新增按钮,点击新增影片,输入影片信息,系统会对输入的影片信息进行校验,校验名称是否合法,影片导演名和演员名是否为空等。校验通过后管理员需要上传影片封面,系统会对上传的图片进行校验,校验图片大小是否合规,图片格式是否正确等。校验通过后写入数据库。新增影片流程图如图4-3所示。新增影片界面效果图如图4-4所示。

影视管理界面提供了各种功能,例如添加新影片、编辑影片信息、删除影片、搜索影片等等。当管理员执行这些操作时,系统会根据操作的类型进行相应的处理,例如在数据库中添加、修改或删除影片信息。
在这里插入图片描述

图4-3 新增影片流程图
新增影片主要的后端代码如下:
@PostMapping(“”)
@ApiOperation(value = “保存电影”)
public void save(@RequestBody Film film) {
@ApiOperation(“列出所有电影”)
public List list(String region, String type) {
if (region != null && type != null) {
return filmService.findByRegionAndType(region, type);
}
return filmService.findAll();
}
在这里插入图片描述

图4-4 新增影片界面效果图
4.3 订单管理功能设计与实现
管理员在后台可以查看所有用户订单信息。管理员在订单管理页面找到查询输入框输入要查询的订单号,输入完成后点击查询按钮,系统会查询数据库如果找到该订单会返回订单信息。查询订单流程图如图4-5所示。
订单管理页面展示所有订单的概要信息,如订单号、订单金额、订单状态等。订单管理页面还提供了一些常见的操作,如撤销订单,也可以对存在异常的订单进行上报异常等等。当管理员执行这些操作时,系统将针对不同的指令进行相应的处理。通过后台的定单管理,使管理员能够轻松地对定单进行查询和管理,高效地处理和跟踪订单状态,提供良好的用户体验。同时,这个功能还可以帮助管理员掌握订单的整体情况,为业务决策提供数据支持。订单列表界面效果图如图4-6所示,异常订单列表界面效果图如图4-7所示。
在这里插入图片描述

图4-5 查询订单流程图
订单管理主要代码如下:
@PostMapping(“”)
@ApiOperation(“添加异常订单”)
public OrderException create(@RequestBody OrderException orderException) {
return orderExceptionService.create(orderException);
}
@GetMapping(“”)
@ApiOperation(“查询所有异常订单”)
public List findAll() {
return orderExceptionService.findAll();
}
在这里插入图片描述

图4-6 订单列表界面效果图
在这里插入图片描述

图4-7 异常订单列表界面效果图
4.4选座购票功能设计与实现
用户在系统内可以进行在线选座购票,用户选择影片点击选座购票后可以看到影院的座位图,用户选择自己心仪的座位后输入订票信息如手机号等。系统会对用户所选座位进行校验,校验该座位是否已被其他用户选中如果未被选中则对用户填写的订单信息进行校验,校验都通过后生成订单,保存到数据库中。选座购票流程图如图4-8所示。
用户进入电影票务系统的选座购票页面。在网页中显示目前放映的影片,使用者可依个人喜好挑选影片。当使用者选定影片时,将会出现影片的有效场次及座位表。用户可以选择某个场次,并在座位图上选择自己喜欢的座位。系统会实时显示座位的状态,如选中、已售出、不可用等。用户选择座位后,需要进行支付操作。用户完成支付后,系统会生成一张电子票,并向用户发送确认信息。后台系统会相应地更新座位的状态,标记选中的座位为已售出状态。选择电影场次效果图如图4-9所示,选择座位效果图如图4-10所示。
在这里插入图片描述

图4-8 选座购票流程图
查找电影场次主要代码如下:
@GetMapping(“/hot/{limit}”)
@ApiOperation(“获取热榜电影”)
public List listHots(@PathVariable Integer limit) {
return filmService.findHots(limit);
}
@GetMapping(“/name/{name}”)
@ApiOperation(“搜索电影”)
public List search(@PathVariable String name) {
return filmService.findLikeName(name);
}

@GetMapping("/{id}")
@ApiOperation(value = "根据id查找电影")
public Film findById(@PathVariable String id) {
    return filmService.findById(id);
}

在这里插入图片描述

图4-9选择电影场次效果图
在这里插入图片描述

图4-10 选择座位效果图
4.5用户管理功能设计与实现
管理员可以在后台去给用户重置密码,如果用户忘记了登录密码可以联系管理员对密码进行更新,管理员点击编辑密码按钮,弹出输入新密码文本框,输入新密码完成后点击确认按钮更新用户密码成功。校验均通过后写入数据库保存。修改用户密码流程图如图4-11所示。
系统管理员可以登陆后台管理系统,并进行用户管理。管理员可以在“用户管理”页上更改用户的密码。用户信息界面效果图如图4-12所示。
在这里插入图片描述

图4-11 修改用户密码流程图
更新用户密码主要代码如下:
@PutMapping(“”)
@ApiOperation(value = “更新用户”)
public User updateUser(@RequestBody User user) {
return userService.update(user);
}
在这里插入图片描述

图4-12 用户信息界面效果图
4.6 个人设置功能设计与实现
在这个系统中,使用者可以对自己的个人信息进行管理,当使用者单击个人设置时,就能查看自己的全部个人资料。使用者可以对自己的个人资料进行修改,并将需要修改的资料输入进去。当使用者输入完之后,系统会检查使用者所输入的资料,例如,手机号的格式是否正确。基础校验通过后用户可以上传自己的头像,上传图片时系统会对用户上传的文件进行校验,校验文件是否为图片,图片格式是否正确,图片大小是否合规等。校验通过后写入数据库。修改个人信息流程图如图4-13所示。
个人设定页显示使用者的资料,例如使用者名称,电话号码,信箱等。使用者可以在「设定」网页中更改自己的资料,也可以储存更改后的资料。页面也会显示用户的订购信息,个人信息界面效果图如图4-14所示。
在这里插入图片描述

图4-13 修改个人信息流程图
修改个人信息主要代码如下:
@Override
public void create(Activity activity) {
activity.setId(UUID.randomUUID().toString());
activity.setCreateAt(DataTimeUtil.getNowTimeString());
activityMapper.insert(activity);
}
@Override
public Activity findById(String id) {
return activityMapper.selectById(id);
}
在这里插入图片描述

图4-14 个人信息界面效果图
4.7 电影评分功能设计与实现
用户可以对观看的电影进行打分,用户点击评分按钮输入评价信息,系统会对用户进行查询,查询该用户是否已对该影片点评过,如果未点评则直接写入数据库。电影评分流程图如图4-15所示。
用户登录电影票务系统并进入某个电影的详情页面。电影详情页面展示了电影的基本信息、剧情简介、演员阵容等,并提供了评分和评论功能。用户可以在电影详情页面对电影进行评分,通常采用五星评分。系统会实时计算电影的平均评分,并将其显示在电影详情页面上。用户还可以在电影详情页面查看其他用户的评分和评论,以便自己做出更好的参考。查看用户评分评价界面效果图如图4-16所示。评分界面效果图如图4-17所示。
在这里插入图片描述

图4-15 电影评分流程图
电影评分主要代码如下:
@PostMapping(“”)
@ApiOperation(“评论电影”)
public void save(@RequestBody FilmEvaluate filmEvaluate) throws Exception {
filmEvaluateService.save(filmEvaluate);
}
@GetMapping(“”)
@ApiOperation(“获取电影评论”)
public List list(@RequestParam(name = “fid”) String fid) {
if (fid != null) {
return filmEvaluateService.findAllByFilmId(fid);
}
return null;
}
在这里插入图片描述

图4-16 查看用户评分评价界面效果图
在这里插入图片描述

图4-17 评分界面效果图
4.8 我的订单功能设计与实现
用户查看自己的订单信息,用户点击个人中心,进入个人中心页面点击我的订单按钮查看所有的订单信息。查看我的订单流程图如图4-18所示。
在影院管理系统中,用户查看“我的订单”页面可以获取购买的电影票订购资料。包括订购号码,买票时间,电影名,放映时间和席位。用户可以轻松了解他们所购买的电影票的基本情况,并且可以根据需要进行查询和核对。此外,页面还会显示每个订单的当前状态,例如支付成功、异常订单等状态。用户可以清晰地了解订单的处理进度,是否有必要采取进一步行动。如果使用者想要知道具体的指令,就可以按一下对应的指令,跳转到指令详情页。在“订购详情”页,使用者可以看到更详细的订购信息,比如特定的座位,价格等等,这有助于他们更好的管理自己的订购。我的订单界面效果图如图4-19所示。
在这里插入图片描述

图4-18 查看我的订单流程图
我的订单主要代码如下:
@RequestMapping(“/page”)
public R page(@RequestParam Map<String, Object> params,AboutusEntity aboutus,
HttpServletRequest request){
EntityWrapper ew = new EntityWrapper();
PageUtils page = aboutusService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, aboutus), params), params));
return R.ok().put(“data”, page);
};
在这里插入图片描述

图4-19 我的订单界面效果图
4.9 影片浏览功能设计与实现
用户登录系统后可以在系统主页看到推荐的影片,用户可以通过搜索框输入想看的电影名称然后点击搜索按钮,查询到影片信息。查询影片流程图如图4-20所示。
在系统中,用户可以使用影片浏览功能来浏览当前正在上映的电影。这个页面会展示所有可观看的电影,并提供相关信息如电影名称、导演、演员阵容、剧情简介和评分等。用户可以根据自己的喜好和需求浏览不同类型的电影,选择心仪的影片进行购票。在影片浏览页面上,用户可以快速了解每部电影的基本信息和评价,帮助他们做出购票决策。同时,影片浏览页面也提供搜索和筛选功能,方便用户根据不同的标准找到符合自己口味的电影,为观影体验提供便利和选择。影片浏览界面效果图如图4-21所示。
在这里插入图片描述

图4-20 查询影片流程图
影片浏览主要代码如下:
@RequestMapping(“/query”)
public R query(AboutusEntity aboutus){
EntityWrapper< AboutusEntity> ew = new EntityWrapper< AboutusEntity>();
ew.allEq(MPUtil.allEQMapPre( aboutus, “aboutus”));
AboutusView aboutusView = aboutusService.selectView(ew);
return R.ok(“查询影片成功”).put(“data”, aboutusView);
};
在这里插入图片描述

图4-21影片浏览界面效果图

第5章 系统测试
5.1 测试原则
试验原理是为了协助测试员有效地涵盖试验范围而必须遵循的一些基本原理、发现软件质量的问题,并使试验的效率与品质达到最佳。试验原理是为了协助测试员有效地涵盖试验范围而必须遵循的一些基本原理、发现软件质量的问题,并最大限度地优化测试效率和测试质量,及时发现和报告软件问题,防止质量问题在软件的后期造成不可挽回的损失。选择正确的测试方法和工具,以提高测试效果,并合理利用测试资源,避免浪费试验资源。为了减少测试的开销,提高测试的效率,并对软件的开发与部署起到了很大的作用。
5.2 系统测试
系统测试是一种将整个系统作为一个整体来进行测试的方法。为了确保软件的品质与稳定,系统测试有很多种,如功能测试,性能测试,安全性测试,兼容性测试等等。其主要目的是发现系统中的缺陷并进行修复,最终将软件交付给用户使用。从系统的整体出发,对软件进行全面的测试,同时也包括和其他软件的集成测试。严格记录和分析测试结果,确保发现的问题被及时报告和修复。系统测试应该遵守规范,统一测试方法、测试计划和测试用例等,以提高测试效率和质量。。
5.2.1 登录功能测试
登录功能是系统中一个非常重要的功能,也是用户访问系统的入口。对登录功能进行测试是确保系统安全性和稳定性的关键步骤。通过对登录功能进行全面的测试,可以有效地发现并解决登录过程中的问题,提高系统的安全性和用户体验。
登录测试用例和测试结果如表6-1所示,登录错误提示界面如图6-1所示。

表6-1 登录测试用例和测试结果
测试点 测 试用例 预期结果 与预期结果是否一致
密码不正确
登录系统 输入错误的密码登录 点击“登录”时
提示密码错误 是
错误账号用户登录系统 输入错误的账号登录系统 点击“登录”时
提示用户不存在 是
在这里插入图片描述

图6-1 登录错误提示
5.2.2 影视管理功能测试
该功能是管理影片、资源和影片信息的重要功能功能。测试系统能够准确地显示影片的名称、剧情介绍、演员阵容、电影评级及其他资料,保证电影资讯的精确表述。测试管理员可以对电影信息进行适当的编辑,修改,删除等操作,保证了管理界面功能的完整性和实用性。影视管理测试用例和测试结果如表6-2所示,新增影片成功提示界面如图6-2所示。
表6-2 影视管理功能测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致
新增影片信息 点击“新增影片”输入正确的影片数据 新增成功 是
修改影片信息 修改影片但不输入菜品类型和名称 提示“必填项不能为空” 是

删除影片信息
点击“删除按钮“删除影片 提示“请输入信息”

点击“删除按钮”删除正在上架的影片 提示“操作成功”


在这里插入图片描述

图6-2 新增影片成功提示界面
5.2.3 订单管理功能测试
订单管理功能是一个与订单处理有关的重要功能功能,测试订单异常上报和撤销订单的正确性、稳定性和效率。
订单管理测试用例和测试结果如表6-3所示,订单上报异常成功提示如图6-3所示。订单撤销成功提示如图6-4所示。
表6-3 订单管理测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致

上报异常订单 点击“上报异常”
选择上报人 提示“订单上报异常成功” 是
选择上报原因,
点击“提交” 提示“订单上报异常成功” 是
撤销订单 点击“撤销订单” 提示“订单撤销成功” 是
在这里插入图片描述

图6-3 订单上报异常成功提示
在这里插入图片描述

图6-4 订单撤销成功提示
5.2.4 选座购票管理功能测试
测试用户能够正确地选择座位,并确保系统能够准确地标记已被选中的座位,防止其他用户重复选择。测试购票流程是否顺畅,包括选择影片、选择场次、选择座位、填写购票信息等。选座购票的测试用例和测试结果如表6-4所示。未登录不允许购票提示效果图如图所示6-5所示,购票失败效果图如图6-6所示。
表6-4 选座购票的测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致
未登录能否购票 点击“选择购票” 提示错误信息 是
为输入手机号购票 不输入手机号
点击“购票” 提示“请输入手机号” 是
投诉订单 投诉未配送的订单 提示“投诉失败” 是
在这里插入图片描述

图6-5 未登录不允许购票提示效果图
在这里插入图片描述

图6-6 购票失败效果图
5.2.5 个人设置管理功能测试
测试用户能够成功修改个人信息,如修改头像、昵称、邮箱地址、手机号码等。测试用户能够查询自己的订单信息,并确保订单信息展示准确、详细。
个人设置的测试用例和测试结果如表6-5所示。成功修改个人信息提示效果图如图6-7所示。
表6-5 个人设置的测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致
选择个人设置 选择基本信息进行修改填写正确个人信息
修改成功 是
点击“我的订单”能否成功跳转
跳转成功 是
点击“购物车”能否成功跳转到购物车
跳转成功 是
在这里插入图片描述

图6-7成功修改个人信息提示效果图
5.2.6 用户管理功能测试
用户管理功能是影片购票系统中与用户账户相关的操作功能,一般包括用户信息管理并且可以对用户的密码进行修改。用户管理测试用例和测试结果如表6-6所示。
表6-6 用户管理测试用例与测试结果表
测试点 测试用例 预期结果 与预期结果是否一致
修改用户密码 点击“用户管理”列表点击“修改密码”输入新密码点击确认修改 修改成功 是
密码修改成功提示效果图如图6-8所示。
在这里插入图片描述

图6-8 密码修改成功提示效果图
5.3测试结论
经过测试,系统的基本功能已经完善,包括电影排片管理、座位预订等功能均能够正常运行。在测试过程中发现了一些问题,如用户在选择座位时可能出现页面加载缓慢的情况,以及订单支付时部分用户遇到支付接口异常等。针对这些问题,进行了相应的调整和修复,包括优化页面加载速度、更新支付接口等。经过修复后的回归测试,问题得到了有效解决,系统的稳定性和可靠性得到了提升。系统经过测试后,能够满足用户的基本需求,用户可以方便地浏览电影信息、选择座位并完成支付等操作,整体用户体验较好。系统在测试中表现出良好的安全性和稳定性,用户的个人信息和支付信息得到了有效保护,系统运行稳定,未出现严重的崩溃或漏洞。电影院管理系统经过测试已基本满足用户需求,功能完善,安全稳定。通过持续的测试与修复,系统能够提供良好的用户体验,确保用户在购票和观影过程中顺畅、安全地完成各项操作。

第6章 总结
6.1 工作总结
最后,我对整个项目进行了总结。我们强调了系统的稳定性、安全性和可扩展性的重要性,并提出了优化系统性能、增加更多功能功能、引入更多的第三方服务等改进方向。通过整个项目的设计与实现过程,我深入理解了基于Java的影院管理系统的各个方面,并取得了可喜的成果。然而,还存在着一些需要改进和完善的地方,我将继续努力,通过进一步的研究和开发,不断提高系统的质量和用户满意度。我相信,在不断的努力和改进下,该系统将成为一个高质量、高效率的电影票务管理系统。
6.2 展望
在未来,随着电子商务和线上购票的不断发展,人们对电影票务管理系统的需求也将越来越高。在此背景下,基于Java的影院管理系统也需要不断发展和完善。首先,我们可以考虑引入更多新的技术和工具来提高系统的性能和安全性,如使用Redis作为缓存库、使用Spring Security框架来加强系统安全保护等。其次,我们可以优化系统的用户体验,改进系统的界面设计和交互模式,提升系统的易用性和便利性。例如,可以实现更加智能化的选座流程,提供更加实时化的影片推荐服务等。此外,我们还可以考虑将系统扩展到更广泛的场景和应用中,如增加影片资源的共享和分发功能、扩充影院与平台间的合作和交流等。这将为用户创造更多的价值和便利。在未来的工作中,我们将不断总结和积累系统的实践经验和技术能力,致力于打造一个更加高效、稳定、安全和便捷的基于Java的电影票务管理系统,以满足用户需求。

参考文献

[1] 李天翔, 田林琳. 在线购票网站的设计与实现[J]. 湖北农机化, 2020 (14):81-82.
[2] 袁晓芳, 蒋秋洁. 基于O2O模式的电影购票服务平台设计[J]. 设计艺术研究, 2020, 9(02):120-125.
[3] 肖泉彬, 何敏. 基于JSP的电影购票系统设计与开发[J].电脑知识与技术, 2020, 16 (07):67-68.
[4] 蔡明山, 刘磊, 李俊峰. 影院购管票理系统设计[J].榆林学院学报,2020,28 (06): 98-100.
[5] 谢靖壹, 芦明. 一种基于SSM框架技术的航空售票系统的设计与实现[J]. 电脑编程技巧与维护, 2020(10):24-25.
[6] 李奕. 基于移动互联网时代的“爱购”电影APP交互服务系统设计分析[J]. 湖北美术学院学报, 2020(02): 118-122.
[7] 刘艳秋, 卜永波, 王冬青等. 基于微信小程序的电影票购票系统设计与实现[J].电脑编程技巧与维护,2021(12):68-70.
[8] 刘旭. 基于MVC模式的网上订票系统分析与设计, 2020(01):18-23.
[9] 肖娜, 史争军, 岳东辉. 基于数据库的影院管理系统设计[J].电脑编程技巧与维护,2019(10):48-49.
[10] 王植, 张钰, 张鹏飞. 影院订票系统设计与实现[J].电子设计工程,2016:41-46.
[11] 孙朝云, 王秀松. 现代影院售票系统计算机管理设计与实现[J].计算机应用与软件,2018,018(008):45-47.
[12] 赵蔷, 李红. 基于JSP的影院售票系统的设计与实现[J]. 价值工程,2017,(29):117-119.
[13] 冯枫添. 基于Java的航空订票系统的设计与实现[J]. 无线互联科技,2016,(9):57-76.
[14] 鲁铮, 吴瑕, 张甜甜. 基于ASP.NET的飞机订票系统的设计与实现[J].民营科技,2016,(4):49-50.
[15] 王南. Java 编程在计算机应用软件中的应用特征与技术研究[J].信息记录材料,2022,23(04):130-132.
[16] 尹应荆. JAVA编程语言在计算机软件开发中的应用[J].石河子科技,2023(05):45-47.
[17] 程小红. 基于Java程序设计语言中一维数组的应用[J].数字技术与应用,2023,41(08):31-34.
[18] 闫立誉. 基于Java平台开发的软件保护技术探究[J].数字技术与应用,2023,41(08):199-201.
[19] 康晶晶, 李青云. Java面向对象程序设计课程的教学实践[J].电子技术,2023,52(08):262-263.
[20] 李唯. 基于产教融合的《 Java EE轻量级框架开发》 课程建设研究[J].电脑知识与技术,2023,19(23):151-153.
[21] Shenghan Yao, “Research on the relationship between film ticket price and film industry development in China”, Central South University, 2021(23):51-53.
[22] Lindholm T, Yellin F, Bracha G,et al. The Java virtual machine specification[M]. Pearson Education,2019(13):51-53.
[23] Namoun A, Tufail A, Mehandjiev N, et al. An eco-friendly multimodal route guidance system for urban areas using multi-agent technology[J]. Applied Sciences, 2021, 11(5): 20-21.
[24]Argo W ,Rosa D ,C R A .Designing and Developing an Agricultural Product Sales Application Catalog with a Hybrid Application Development Framework[J].IOP Conference Series: Materials Science and Engineering,2021,1077(1):13-14.
[25] Campesato Oswald. Data Structures in Java[M]. Mercury Learning and Information, 2023: 10-11.
[26] Yu Yang. Design and Implementation of Student Information Management System Based on Springboot[J]. Advances in Computer, Signals and Systems, 2022, 6(6): 87-92.  
致谢

首先,我要感谢我的导师。是您给予了我宝贵的指导和建议,在整个论文的撰写和研究过程中给予了我耐心的指导。您的专业知识和经验对我的研究工作起到了重要的推动作用,并且对我的成长起到了积极的引导。
其次,我还要感谢我的同学们。在我完成论文的过程中,他们给予了我许多宝贵的意见和建议,帮助我解决了许多实际问题。他们的鼓励和支持让我在研究过程中能够充满信心和动力。
此外,我要感谢我的家人和朋友们。他们一直以无私的支持和理解来鼓励我,给我提供了温暖的家庭环境和美好的人际关系。他们的支持和鼓励是我不断前进的动力,我真诚地感激他们的陪伴和支持。
最后,我要感谢所有以前所有曾经在文献、资料和技术方面给予帮助的人士和机构。他们在相关领域做出的贡献为我的研究提供了宝贵的参考和借鉴。没有他们的前人栽树,就不会有我们的今天的论文。
在本科论文的完成过程中,我受到了来自各方面的帮助和支持,这导致了论文进展顺利。在此向所有给予我帮助和支持的人表示衷心的感谢!

  • 15
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值