電影院管理系統(tǒng)的設計與實現(xiàn)
摘?要
在飛速發(fā)展的今天,網(wǎng)絡已成為人們重要的交流平臺。電影院每天都有大量的需要通過網(wǎng)絡發(fā)布,為此,本人開發(fā)了一個基于B/S(瀏覽器/服務器)模式的電影院管理系統(tǒng)。
該系統(tǒng)以Java編程語言、springboot框架、MySQL數(shù)據(jù)庫和Web前端等為開發(fā)技術,實現(xiàn)了添加、修改、查看、刪除系統(tǒng)數(shù)據(jù)。本系統(tǒng)采取組件化的方式對系統(tǒng)進行拆分,并對數(shù)據(jù)庫中各個表的增刪查改、表與表之間的約束關系進行分析與設計,最終實現(xiàn)符合用戶需求功能的商業(yè)級應用。
系統(tǒng)界面簡潔大方,布局合理,易操作易上手。對應用戶的每一步操作,系統(tǒng)都能高響應地做出反饋。系統(tǒng)具體包含對用戶的管理、用戶注冊、最新電影、電影分類管理、場次管理、電影、訂單中心管理、取消訂單管理等功能,為電影院提供一個管理平臺,實現(xiàn)對數(shù)據(jù)地高效、安全地管理。
關鍵詞:電影院管理,B/S模式,Java編程語言,MySQL
Design and Implementation of Cinema Management System
Abstract
Today, with the rapid development of information, the network has become an important information exchange platform for people. Every day, a large amount of information in cinemas needs to be published through the Internet. Therefore, I developed a cinema information management system based on B/S (browser/server) mode.
The system uses Java programming language, springboot framework, MySQL database and Web front-end as development technologies, and realizes adding, modifying, viewing and deleting system data. In this system, the system is divided by component, and the addition, deletion, check and modification of each table in the database, and the constraint relationship between tables are analyzed and designed, so as to finally realize the commercial application that meets the user's requirements.
The interface of the system is simple and generous, the layout is reasonable, and it is easy to operate and use. Corresponding to every step of the user's operation, the system can give feedback with high response. The system specifically includes the functions of user management, user registration, latest movies, movie classification management, session management, movies, order center management, order cancellation management, etc. It provides a management platform for cinemas to manage data efficiently and safely.
Key words:?Cinema management, B/S mode, Java programming language, MySQL
目 ?錄
第1章 緒論 1
1.1?研究背景與意義 1
1.2?開發(fā)現(xiàn)狀 1
1.3?本文的組織結(jié)構(gòu) 2
第2章 相關技術介紹 3
2.1開發(fā)技術 3
2.2 MVVM模式 4
2.3?Mysql數(shù)據(jù)庫 4
2.4 B/S結(jié)構(gòu) 4
2.5 spring boot框架介紹 4
2.6 Vue.js 主要功能 5
第3章 系統(tǒng)分析 6
3.1?可行性分析 6
3.1.1?法律可行性分析 6
3.1.2?技術可行性分析 6
3.1.3?經(jīng)濟可行性分析 6
3.2?功能需求分析 6
3.3?非功能需求分析 8
3.4?用例分析 8
第4章 系統(tǒng)設計 10
4.1?系統(tǒng)架構(gòu)設計 10
4.2?系統(tǒng)功能結(jié)構(gòu) 10
4.3?功能模塊設計 11
4.4?數(shù)據(jù)庫設計 13
4.4.1 E-R圖 13
4.4.2?表結(jié)構(gòu)設計 14
第5章 系統(tǒng)實現(xiàn) 18
5.1?開發(fā)工具 18
5.2?注冊模塊 18
5.3?登錄/注銷模塊 21
5.4?用戶模塊 24
5.4.1?個人資料模塊 24
5.4.2?評價中心模塊 24
5.4.3?電影模塊 25
5.5?管理員模塊 26
5.5.1最新電影管理模塊 26
5.5.2?訂單中心管理模塊 27
5.5.3?電影分類管理模塊 28
第6章 系統(tǒng)測試 30
6.1?測試概述 30
6.2?測試過程 30
6.2.1?登錄測試 30
6.2.2?錄入測試 30
6.2.3?更新測試 31
6.2.4?刪除測試 31
6.3?測試結(jié)果 31
第7章 總結(jié)與展望 33
7.1?總結(jié) 33
7.2?展望 33
參考文獻 34
致謝 36
-
緒論
- 研究背景與意義
一個電影院如果擁有一套完整的電影院管理系統(tǒng)對于企業(yè)和客戶來說是一種雙贏的局面。
對于客戶來說電影院管理系統(tǒng)的普及好處非常多。第一、節(jié)約時間。傳統(tǒng)的人工售票,排隊人數(shù)多,出票速度慢,客戶排隊的時間枯燥無聊,極大的降低了用戶的體驗??蛻裟軌蚋侠淼陌才懦鲂袝r間,不用提早出門排隊。第二、方便查找影訊。用戶不需要出門就可以知道熱門電影的上映時間,以及票量情況。以前的電影院想看個時間都需要去電影院才能看,或者網(wǎng)頁查找。而有了在線電影院管理系統(tǒng)就能夠更方便的查找你所需要觀看的影片,上映時間,也能夠推薦最近熱映的電影,給用戶更多的選擇。第三、選座方便。用戶能夠根據(jù)訂票系統(tǒng)選擇自己想要的位置。而不用排隊的時候因選不到好的座位而更改觀影時間。訂票系統(tǒng)除了提高用戶體驗外,還極大的提高了影院的經(jīng)濟效益。使得影院能夠更好的配置人員需求。減少了員工數(shù)量,使得影院可以減少人工售票的人員,較少人力物力的消耗,降低了成本。影院更加的有秩序。相比傳統(tǒng)售票帶來的買票擁擠情況。訂票系統(tǒng)的開發(fā),減少了顧客的排隊,顧客可以根據(jù)電影播出時間到場等候電影開場,影院的環(huán)境就能夠更加寬敞,有秩序。訂票系統(tǒng)便利客戶,和企業(yè)同時也推動了電影行業(yè)的發(fā)展?;贘ava的在線電影票訂票系統(tǒng)的目標是為人們通過網(wǎng)絡可以隨時隨地了解和訂購電影票,這是一個快捷有效的訂票方式。
隨著人們生活水平提高和互聯(lián)網(wǎng)的發(fā)展,如何把二者結(jié)合起來并有效的利用,是現(xiàn)在研究的關鍵。電影院基于Java的在線電影票訂票系統(tǒng)向眾多電影愛好者提供了更多的方便,人們只要能上網(wǎng),就能在任何地方、任何時間進行訂購。其次,本系統(tǒng)還將設置電影觀后評價模塊,訂購的影票還可進行自由退訂,除此以外,系統(tǒng)還能提供用戶個人資料修改,而且,人們可以隨時更改登錄密碼等。
電影院基于spring boot的電影票訂票系統(tǒng)定會給影迷們滿意的體驗!成功訂票后,只需在影片放映前,到影城售票大廳的自動取票機取票即可。網(wǎng)上訂購電影票是現(xiàn)在眾多影迷們購票的首選方式!
-
- 開發(fā)現(xiàn)狀
我國的電影誕生于1905年,而在經(jīng)歷了各種歷史階段后,我國的電影行業(yè)從1977年才開始復蘇,1980年以后才慢慢的發(fā)起來。經(jīng)過幾十年的發(fā)展,電影從以前的黑白電影變成了彩色電影,無聲電影變成了有聲電影。小屏幕變成了大屏幕,2D變成了3D。電影的蓬勃發(fā)展也使得訂票系統(tǒng)的不斷地完善發(fā)展。電子商務最近幾年飛速發(fā)展,在電影行業(yè)的應用也極其廣泛。各個電影院為了提高影票的觀看人數(shù),紛紛與各大訂票網(wǎng)站開發(fā)合作,價格降低了,服務周到了,購票便利了,自然觀影人數(shù)也在逐年增長。
我國的互聯(lián)網(wǎng)技術跟國外的網(wǎng)絡化相比發(fā)展晚,化程度不如國外的高。隨著生活水平的提高,網(wǎng)絡購票點網(wǎng)站也是層出不窮。日本的購票渠道在很早以前就實現(xiàn)了多元化的發(fā)展,影院可以售票,各大代售點也可以進行售票,當然最多的還是網(wǎng)絡的售票。實際上,在國外的很多網(wǎng)站都是實行橫向一體化的戰(zhàn)略。一個網(wǎng)站可以同時銷售電影票、展覽票、旅游門票等多種多樣的票務。國外網(wǎng)站在國內(nèi)購票網(wǎng)站的基礎上還有許多有特色的特點值得我們借鑒。例如明星的八卦也會出現(xiàn)在購票首頁,給客戶選擇影訊的時候多了幾分樂趣。還有的網(wǎng)站引入了評分制度等。
電影作為一個快速發(fā)展的行業(yè),值得我們投入時間和經(jīng)歷完善訂票系統(tǒng)。讓用戶的體驗走在互聯(lián)網(wǎng)發(fā)展的最前端。
-
- 本文的組織結(jié)構(gòu)
六個章節(jié)共同組成了本文研究及設計內(nèi)容,包括:
第一章:緒論。本文章的開頭部分,對本題目的研究背景和研究意義等一些做文字性的描述。
第二章:相關技術介紹。主要介紹Java編程技術、springboot框架、B/S模式等。
第三章:系統(tǒng)分析。包括系統(tǒng)總體需求描述、功能性角度分析系統(tǒng)需求、非功能性等各個方面分析系統(tǒng)是否可以實現(xiàn)。
第四章:系統(tǒng)設計。本文章的重要部分,提供了系統(tǒng)架構(gòu)的詳細設計和一些主要功能模塊的設計說明。
第五章:系統(tǒng)實現(xiàn)。將本系統(tǒng)分為前提的開發(fā)工具介紹和后期的功能代碼實現(xiàn)。
第六章:系統(tǒng)測試。系統(tǒng)完成后,根據(jù)各個模塊的測試用例才對各個模塊進行功能測試。
-
相關技術介紹
- 開發(fā)技術
本系統(tǒng)前端框架采用了比較流行的漸進式JavaScript框架Vue.js。使用Vue-Router和Vuex實現(xiàn)動態(tài)路由和全局狀態(tài)管理,Ajax實現(xiàn)前后端通信,Element UI組件庫使頁面快速成型。后端部分:采用springboot作為開發(fā)框架,同時集成MyBatis、Redis等相關技術。
-
- MVVM模式
MVVM是Model-View-ViewModel的簡寫。它本質(zhì)上就是MVC 的改進版。MVVM 就是將其中的View 的狀態(tài)和行為抽象化,讓我們將視圖 UI 和業(yè)務邏輯分開。當然這些事 ViewModel 已經(jīng)幫我們做了,它可以取出 Model 的數(shù)據(jù)同時幫忙處理 View 中由于需要展示內(nèi)容而涉及的業(yè)務邏輯。微軟的WPF帶來了新的技術體驗,如Silverlight、音頻、視頻、3D、動畫……,這導致了軟件UI層更加細節(jié)化、可定制化。同時,在技術層面,WPF也帶來了 諸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由來便是MVP(Model-View-Presenter)模式與WPF結(jié)合的應用方式時發(fā)展演變過來的一種新型架構(gòu)框架。它立足于原有MVP框架并且把WPF的新特性糅合進去,以應對客戶日益復雜的需求變化。
-
- MySQL數(shù)據(jù)庫
科技的進步,給日常帶來許多便利:教室的投影器用到了虛擬成像技術,數(shù)碼相機用到了光電檢測技術,比如超市貨物進出庫的記錄需要一個信息倉庫。這個信息倉庫就是數(shù)據(jù)庫,而這次的敬老院管理系統(tǒng)也需要這項技術的支持。
用MySQL這個軟件,是因為它能接受多個使用者訪問,而且里面存在Archive等。它會先把數(shù)據(jù)進行分類,然后分別保存在表里,這樣的特別操作就會提高數(shù)據(jù)管理系統(tǒng)自身的速度,讓數(shù)據(jù)庫能被靈活運用。MySQL的代碼是公開的,而且允許別人二次編譯升級。這個特點能夠降低使用者的成本,再搭配合適的軟件后形成一個良好的網(wǎng)站系統(tǒng)。雖然它有缺點,但是綜合各方面來說,它是使用者的主流運用的對象。
-
- B/S結(jié)構(gòu)
B/S(Browser/Server)比前身架構(gòu)更為省事的架構(gòu)。它借助Web server完成數(shù)據(jù)的傳遞交流。只需要下載瀏覽器作為客戶端,那么工作就達到“瘦身”效果, 不需要考慮不停裝軟件的問題。
-
- spring boot框架介紹
Spring框架是Java平臺上的一種開源應用框架,提供具有控制反轉(zhuǎn)特性的容器。盡管Spring框架自身對編程模型沒有限制,但其在Java應用中的頻繁使用讓它備受青睞,以至于后來讓它作為EJB(EnterpriseJavaBeans)模型的補充,甚至是替補。Spring框架為開發(fā)提供了一系列的解決方案,比如利用控制反轉(zhuǎn)的核心特性,并通過依賴注入實現(xiàn)控制反轉(zhuǎn)來實現(xiàn)管理對象生命周期容器化,利用面向切面編程進行聲明式的事務管理,整合多種持久化技術管理數(shù)據(jù)訪問,提供大量優(yōu)秀的Web框架方便開發(fā)等等。Spring框架具有控制反轉(zhuǎn)(IOC)特性,IOC旨在方便項目維護和測試,它提供了一種通過Java的反射機制對Java對象進行統(tǒng)一的配置和管理的方法。Spring框架利用容器管理對象的生命周期,容器可以通過掃描XML文件或類上特定Java注解來配置對象,開發(fā)者可以通過依賴查找或依賴注入來獲得對象。Spring框架具有面向切面編程(AOP)框架,SpringAOP框架基于代理模式,同時運行時可配置;AOP框架主要針對模塊之間的交叉關注點進行模塊化。Spring框架的AOP框架僅提供基本的AOP特性,雖無法與AspectJ框架相比,但通過與AspectJ的集成,也可以滿足基本需求。Spring框架下的事務管理、遠程訪問等功能均可以通過使用SpringAOP技術實現(xiàn)。Spring的事務管理框架為Java平臺帶來了一種抽象機制,使本地和全局事務以及嵌套事務能夠與保存點一起工作,并且?guī)缀蹩梢栽贘ava平臺的任何環(huán)境中工作。Spring集成多種事務模板,系統(tǒng)可以通過事務模板、XML或Java注解進行事務配置,并且事務框架集成了消息傳遞和緩存等功能。Spring的數(shù)據(jù)訪問框架解決了開發(fā)人員在應用程序中使用數(shù)據(jù)庫時遇到的常見困難。它不僅對Java:JDBC、iBATS/MyBATIs、Hibernate、Java數(shù)據(jù)對象(JDO)、ApacheOJB和ApacheCayne等所有流行的數(shù)據(jù)訪問框架中提供支持,同時還可以與Spring的事務管理一起使用,為數(shù)據(jù)訪問提供了靈活的抽象。Spring框架最初是沒有打算構(gòu)建一個自己的WebMVC框架,其開發(fā)人員在開發(fā)過程中認為現(xiàn)有的StrutsWeb框架的呈現(xiàn)層和請求處理層之間以及請求處理層和模型之間的分離不夠,于是創(chuàng)建了SpringMVC。
-
- ??Vue.js 主要功能
Vue.js是一套構(gòu)建用戶界面的漸進式框架。與其他重量級框架不同的是,Vue采用自底向上增量開發(fā)的設計。Vue 的核心庫只關注視圖層,并且非常容易學習,非常容易與其它庫或已有項目整合。另一方面,Vue 完全有能力驅(qū)動采用單文件組件和Vue生態(tài)系統(tǒng)支持的庫開發(fā)的復雜單頁應用。
Vue.js 的目標是通過盡可能簡單的 API 實現(xiàn)響應的數(shù)據(jù)綁定和組合的視圖組件。
Vue.js 自身不是一個全能框架——它只聚焦于視圖層。因此它非常容易學習,非常容易與其它庫或已有項目整合。另一方面,在與相關工具和支持庫一起使用時,Vue.js 也能驅(qū)動復雜的單頁應用。
- 系統(tǒng)分析
-
可行性分析
- 法律可行性分析
-
可行性分析
開發(fā)軟件有沒有觸犯法律,這涉及到軟件或者系統(tǒng)能不能發(fā)布的問題。如果觸犯了法律,就必將會受到法律的制裁。常見法律問題就是軟件抄襲問題,若是抄襲別人軟件,將會受到嚴厲懲罰。
-
-
- 技術可行性分析
-
軟件產(chǎn)業(yè)經(jīng)過多年的發(fā)展,現(xiàn)在已經(jīng)達到了很大的規(guī)模,從事軟件開發(fā)的專業(yè)人員不計其數(shù),軟件產(chǎn)業(yè)的重要性已經(jīng)上升到了影響和推動國民經(jīng)濟發(fā)展的核心地位。本系統(tǒng)基于的架構(gòu),目前技術已經(jīng)非常的成熟,是不存在技術上面難以實現(xiàn)的麻煩。
-
-
- 經(jīng)濟可行性分析
-
開發(fā)軟件所需的時間、人力和物力成本,開發(fā)完成后的收益如何,從投資回報的角度軟件所需功能在現(xiàn)有經(jīng)濟條件能不能實現(xiàn)等進行深入的考慮,都符合實際的要求。所以電影院管理系統(tǒng)具有經(jīng)濟可行性和實用性,可以節(jié)約管理成本
-
- 功能需求分析
電影院管理系統(tǒng)主要是為了管理和控制電影的管理情況,對用戶的和用戶管理、用戶注冊、最新電影、電影分類管理、場次管理、電影、訂單中心管理、取消訂單管理提供了方便的機制。本系統(tǒng)有多類使用者,分別是超級管理員、一般管理員和普通用戶。以下是從這三種用戶的角度分別介紹本系統(tǒng)所要實現(xiàn)的功能。
普通用戶:
注冊:首先檢查用戶名和郵箱是否存在,如果都不存在才能進行注冊,并將用戶輸入的密碼進行MD5加密,注冊成功后提示注冊成功,并將用戶保存到數(shù)據(jù)庫中。
登錄:使用系統(tǒng)前提是需要登錄賬號。
留言:進入留言界面,發(fā)表個人的留言以及回復已存在的留言,更新后,其他用戶可以查看回復的留言。
評價:在電影的基礎上發(fā)表對電影的評價,評價按時間形成評價列表。
收藏:在電影的基礎上對電影的收藏,收藏按時間形成收藏列表,個人對其收藏夾進行維護和整理。
資訊搜索和瀏覽:資訊展示功能模塊主要包括資訊搜索、查看資訊詳情功能。未注冊用戶(游客)和已注冊用戶均可以在首頁進行資訊搜索及查看資訊詳情。
電影搜索和瀏覽:電影展示功能模塊主要包括電影搜索、查看電影詳情功能。未注冊用戶(游客)和已注冊用戶均可以在首頁進行電影搜索及查看電影詳情。具體功能需求如下:(1)電影搜索:前臺用戶可以在前臺輸入關鍵詞進行搜索,搜索成功后返回該電影的動態(tài)排序列表,且能夠進行分頁展示。(2)查看電影詳情:用戶可點擊對應電影,從而查看該電影的電影詳情。
電影選座預訂:電影已存在的前提下,提供電影的選座預訂功能,電影選座預訂成功后,可以查看到個人已有的電影選座預訂列表。
管理員:
用戶管理:(1)新增用戶,用于創(chuàng)建新用戶。管理員在頁面上選擇"新增用戶",輸入用戶所需的后保存。(2)查找用戶,可根據(jù)條件查找用戶。管理員第一次點擊"用戶列表"時,默認用戶列表顯示出全部的用戶,可以根據(jù)用戶姓名和出生年月進行模糊搜索,系統(tǒng)將查詢到的用戶顯示到用戶列表。如果不加限制、直接點擊搜索按鈕,則查詢出全部的用戶。(3)刪除用戶,用于刪除已有用戶。在用戶列表顯示出用戶后,選擇用戶進行刪除。在確定刪除之后,該條記錄將從數(shù)據(jù)庫中刪除,并提示刪除成功,確認后列表會重新刷新。(4)修改用戶,在用戶列表顯示出用戶后,選擇用戶進行編輯。表單將出現(xiàn)已有用戶,用戶可以對已有進行確認更改。更改完成后選擇確認,列表會重新刷新。
電影管理:
(1)電影列表:展示所有電影,形成的列表樣式。
(2)電影搜索:通過電影名、電影類目來搜索電影。
(3)圖片上傳:給電影添加電影圖片。
(4)增加電影;
(5)更新電影:更新電影的,如電影名稱、電影分類、電影海報、導演、演員、上映日期、放映場次、放映時間、放映廳、影院名稱、影院地址、價格、座位總數(shù)等。
(6)電影上下架;
資訊數(shù)據(jù)管理:
(1)圖片上傳:給資訊添加資訊圖片。
(2)增加資訊;
(3)更新資訊:更新資訊的,如資訊標題、內(nèi)容等。
(4)資訊數(shù)據(jù)刪除銷毀;
選座預訂記錄管理:
(1)按選座預訂記錄編號查詢選座預訂記錄:
(2)查看選座預訂記錄詳情:
-
- 非功能需求分析
系統(tǒng)非功能需求有非常多,比如性能需求、可承載最大用戶數(shù)、穩(wěn)定性、易用性需求等。本系統(tǒng)分析時考慮到易用性需求,因為系統(tǒng)是給人使用的,所以必須充分從用戶的角度出發(fā),考慮用戶體驗,使系統(tǒng)易理解易上手易操作。
-
- 用例分析
1.普通用戶主要使用系統(tǒng)的¥電影選座預訂業(yè)務,下圖所示為普通用戶的用例圖。
?
圖3-1 普通用戶用例圖
2.管理員主要負責用戶管理、電影管理、電影分類管理、留言管理、系統(tǒng)管理、訂單管理,下圖所示描述管理員的用例圖。
?
圖3-2 管理員用例圖
-
系統(tǒng)設計
- 系統(tǒng)架構(gòu)設計
軟件系統(tǒng)的架構(gòu)設計主要是有兩部分內(nèi)容組成,包括硬件構(gòu)架設計和軟件架構(gòu)設計,一個軟件系統(tǒng)的在某一給定點的構(gòu)架是指這個系統(tǒng)重要構(gòu)件的組織或結(jié)構(gòu),這些重要的構(gòu)件就是通過接口與構(gòu)件(不斷減小的構(gòu)件與接口所組成)來進行交互的。某個軟件或者計算系統(tǒng)的軟件架構(gòu)就是組成該系統(tǒng)的一個或多個結(jié)構(gòu),他們組成了這個軟件的各個部分,形成這些組件的外部可見屬性即相互間的聯(lián)系。
系統(tǒng)架構(gòu)圖如下圖所示。
?
圖4-1系統(tǒng)架構(gòu)圖
-
- 系統(tǒng)功能結(jié)構(gòu)
為了將系統(tǒng)從“做什么”落實到“怎么做”,基于系統(tǒng)設計原則,對系統(tǒng)功能進行更適合編碼實現(xiàn)的功能劃分。根據(jù)上圖的系統(tǒng)架構(gòu)設計,整理出規(guī)范的系統(tǒng)功能結(jié)構(gòu)圖,為系統(tǒng)的實現(xiàn)編碼做好準備。
如下圖所示為系統(tǒng)功能結(jié)構(gòu)圖。
?
圖4-2系統(tǒng)功能結(jié)構(gòu)圖
-
- 功能模塊設計
用戶管理針對所有用戶和管理員。未注冊用戶點擊注冊,進入注冊頁面填寫新用戶,得到自定義生成賬號后,注冊完成。未注冊用戶注冊的活動圖如下圖所示。
?
圖4-3未注冊用戶注冊活動圖
用戶可進行登錄使用更多功能,首先進入用戶登錄界面,輸入用戶賬號和密碼,后臺對賬號和密碼進行核對驗證,驗證成功則頁面直接顯示登錄用戶昵稱代表登錄成功,否則返回用戶登錄界面。用戶登錄活動圖如下圖。
?
圖4-4用戶登錄活動圖
用戶登錄后,進入功能頁面,可對自己的進行管理,包括個人,用戶管理、電影管理、電影分類管理、留言管理、系統(tǒng)管理、訂單管理。用戶使用功能活動圖如下圖所示。
?
圖4-5用戶使用功能活動圖
用戶功能界面可對自己的密碼進行修改。進入修改密碼界面后核對當前密碼,核對成功后填寫新密碼。修改密碼活動圖如下圖所示。
?
圖4-6修改密碼活動圖
-
- 數(shù)據(jù)庫設計
電影院管理系統(tǒng)采用的數(shù)據(jù)庫是MySQL,該部分將根據(jù)系統(tǒng)需求和設計,設計合理的數(shù)據(jù)庫。本系統(tǒng)考慮到之后系統(tǒng)的擴展集群,數(shù)據(jù)庫將不使用外鍵。此外,不用外鍵時數(shù)據(jù)管理也較為簡單,操作更加方便,性能更高。
-
-
- E-R圖
-
E-R圖,更加直觀的告訴開發(fā)人員系統(tǒng)的各個數(shù)據(jù)的屬性,各個數(shù)據(jù)之間的聯(lián)系,各個數(shù)據(jù)的類型。能通過該模型更直觀地了解數(shù)據(jù)庫的設計,并根據(jù)對其逐漸改善。
本系統(tǒng)圖設計,如下圖所示。
?
圖4-7系統(tǒng)E-R圖
-
-
- 表結(jié)構(gòu)設計
-
本系統(tǒng)根據(jù)第三范式的思想設計數(shù)據(jù)庫,減少最大程度的冗余,總共建立有多個表,用戶表、管理員表、電影表、選座預訂表。
表結(jié)構(gòu)如下所示。
film_classification表:
名稱 |
類型 |
長度 |
不是null |
主鍵 |
注釋 |
film_classification_id |
int |
11 |
是 |
是 |
電影分類ID |
classification_name |
varchar |
64 |
否 |
否 |
分類名稱 |
classification_number |
varchar |
64 |
是 |
否 |
分類編號 |
classified_picture |
varchar |
255 |
否 |
否 |
分類圖片 |
classification_description |
text |
否 |
否 |
否 |
分類描述 |
examine_state |
varchar |
16 |
是 |
否 |
審核狀態(tài) |
recommend |
int |
11 |
是 |
否 |
智能推薦 |
create_time |
datetime |
否 |
是 |
否 |
創(chuàng)建時間 |
update_time |
timestamp |
否 |
是 |
否 |
更新時間 |
cancellation_of_order表:
名稱 |
類型 |
長度 |
不是null |
主鍵 |
注釋 |
cancellation_of_order_id |
int |
11 |
是 |
是 |
取消訂單ID |
order_number |
varchar |
64 |
否 |
否 |
訂單編號 |
movie_title |
varchar |
64 |
否 |
否 |
電影名稱 |
number_of_sessions |
varchar |
64 |
否 |
否 |
場次 |
number_of_purchases |
varchar |
64 |
否 |
否 |
購買數(shù) |
total |
varchar |
64 |
否 |
否 |
合計 |
purchaser |
int |
11 |
否 |
否 |
購買人 |
payment_status |
varchar |
64 |
否 |
否 |
支付情況 |
contact_number |
varchar |
64 |
否 |
否 |
聯(lián)系電話 |
cancellation_reason |
text |
否 |
否 |
否 |
取消原因 |
examine_state |
varchar |
16 |
是 |
否 |
審核狀態(tài) |
recommend |
int |
11 |
是 |
否 |
智能推薦 |
create_time |
datetime |
否 |
是 |
否 |
創(chuàng)建時間 |
update_time |
timestamp |
否 |
是 |
否 |
更新時間 |
movie_attendance表:
名稱 |
類型 |
長度 |
不是null |
主鍵 |
注釋 |
movie_attendance_id |
int |
11 |
是 |
是 |
電影上座率ID |
movie_title |
varchar |
64 |
否 |
否 |
電影名稱 |
number_of_seats |
int |
11 |
否 |
否 |
上座數(shù) |
date |
date |
否 |
否 |
否 |
日期 |
examine_state |
varchar |
16 |
是 |
否 |
審核狀態(tài) |
recommend |
int |
11 |
是 |
否 |
智能推薦 |
create_time |
datetime |
否 |
是 |
否 |
創(chuàng)建時間 |
update_time |
timestamp |
否 |
是 |
否 |
更新時間 |
order_center表:
名稱 |
類型 |
長度 |
不是null |
主鍵 |
注釋 |
order_center_id |
int |
11 |
是 |
是 |
訂單中心ID |
order_number |
varchar |
64 |
否 |
否 |
訂單編號 |
number_of_sessions |
varchar |
64 |
否 |
否 |
場次 |
price |
varchar |
64 |
否 |
否 |
價格 |
movie_number |
varchar |
64 |
否 |
否 |
電影編號 |
movie_title |
varchar |
64 |
否 |
否 |
電影名稱 |
number_of_purchases |
int |
11 |
否 |
否 |
購買數(shù) |
total |
varchar |
64 |
否 |
否 |
合計 |
purchaser |
int |
11 |
否 |
否 |
購買人 |
examine_state |
varchar |
16 |
是 |
否 |
審核狀態(tài) |
pay_state |
varchar |
16 |
是 |
否 |
支付狀態(tài) |
pay_type |
varchar |
16 |
否 |
否 |
支付類型 |
recommend |
int |
11 |
是 |
否 |
智能推薦 |
seat |
varchar |
64 |
是 |
否 |
座位號 |
create_time |
datetime |
否 |
是 |
否 |
創(chuàng)建時間 |
update_time |
timestamp |
否 |
是 |
否 |
更新時間 |
session_management表:
名稱 |
類型 |
長度 |
不是null |
主鍵 |
注釋 |
session_management_id |
int |
11 |
是 |
是 |
場次管理ID |
venue_name |
varchar |
64 |
否 |
否 |
場次名稱 |
session_details |
text |
否 |
否 |
否 |
場次詳情 |
session_number |
varchar |
64 |
是 |
否 |
場次編號 |
examine_state |
varchar |
16 |
是 |
否 |
審核狀態(tài) |
recommend |
int |
11 |
是 |
否 |
智能推薦 |
create_time |
datetime |
否 |
是 |
否 |
創(chuàng)建時間 |
update_time |
timestamp |
否 |
是 |
否 |
更新時間 |
the_latest_movie表:
名稱 |
類型 |
長度 |
不是null |
主鍵 |
注釋 |
the_latest_movie_id |
int |
11 |
是 |
是 |
最新電影ID |
movie_title |
varchar |
64 |
否 |
否 |
電影名稱 |
movie_number |
varchar |
64 |
否 |
否 |
電影編號 |
cover |
varchar |
255 |
否 |
否 |
封面 |
price |
varchar |
64 |
否 |
否 |
價格 |
movie_details |
varchar |
64 |
否 |
否 |
電影詳情 |
film_classification |
varchar |
64 |
否 |
否 |
電影分類 |
number_of_sessions |
varchar |
64 |
否 |
否 |
場次 |
hits |
int |
11 |
是 |
否 |
點擊數(shù) |
examine_state |
varchar |
16 |
是 |
否 |
審核狀態(tài) |
recommend |
int |
11 |
是 |
否 |
智能推薦 |
create_time |
datetime |
否 |
是 |
否 |
創(chuàng)建時間 |
update_time |
timestamp |
否 |
是 |
否 |
更新時間 |
user_registration表:
名稱 |
類型 |
長度 |
不是null |
主鍵 |
注釋 |
user_registration_id |
int |
11 |
是 |
是 |
用戶注冊ID |
gender |
varchar |
64 |
否 |
否 |
性別 |
date_of_birth |
varchar |
64 |
否 |
否 |
出生日期 |
examine_state |
varchar |
16 |
是 |
否 |
審核狀態(tài) |
recommend |
int |
11 |
是 |
否 |
智能推薦 |
user_id |
int |
11 |
是 |
否 |
用戶ID |
create_time |
datetime |
否 |
是 |
否 |
創(chuàng)建時間 |
update_time |
timestamp |
否 |
是 |
否 |
更新時間 |
-
系統(tǒng)實現(xiàn)
- 開發(fā)工具
系統(tǒng)中應用的開發(fā)工具總結(jié)如下表所示。
表5-1開發(fā)工具
名稱 |
工具 |
版本 |
操作系統(tǒng) IDE(Integrated Development Environment) |
Windows Pycharm |
7/8/10 2017 |
Python |
Python |
Python 3.7.7 |
數(shù)據(jù)庫 瀏覽器 界面工具 |
MySQL 谷歌 Photoshop |
5.7 6.0 2016 |
-
- 注冊模塊
未注冊用戶在用戶注冊界面uerRegister.html,輸入新用戶,點擊注冊后,新用戶由界面?zhèn)魅肟刂茖觰serAction,調(diào)用addUser(user)方法,通過userDAOImp向數(shù)據(jù)庫用戶表插入用戶,由于用戶賬號是自動生成的,若成功則反饋注冊成功,并提示新用戶的用戶賬號;若失敗則回到登錄界面,并顯示登錄失敗。
注冊界面如下所示。
?
圖5-1注冊界面
注冊界面關鍵代碼如下所示。
/**
?????* 注冊
?????* @param user
?????* @return
?????*/
????@PostMapping("register")
????public Map<String, Object> signUp(@RequestBody User user) {
????????// 查詢用戶
????????Map<String, String> query = new HashMap<>();
????????query.put("username",user.getUsername());
????????List list = service.select(query, new HashMap<>()).getResultList();
????????if (list.size()>0){
????????????return error(30000, "用戶已存在");
????????}
????????user.setUserId(null);
????????user.setPassword(service.encryption(user.getPassword()));
????????service.save(user);
????????return success(1);
}
/**
?????* 用戶ID:[0,8388607]用戶獲取其他與用戶相關的數(shù)據(jù)
?????*/
????@Id
????@GeneratedValue(strategy = GenerationType.IDENTITY)
????@Column(name = "user_id")
????private Integer userId;
????/**
?????* 賬戶狀態(tài):[0,10](1可用|2異常|3已凍結(jié)|4已注銷)
?????*/
????@Basic
????@Column(name = "state")
????private Integer state;
????/**
?????* 所在用戶組:[0,32767]決定用戶身份和權(quán)限
?????*/
????@Basic
????@Column(name = "user_group")
????private String userGroup;
????/**
?????* 上次登錄時間:
?????*/
????@Basic
????@Column(name = "login_time")
????private Timestamp loginTime;
????/**
?????* 手機號碼:[0,11]用戶的手機號碼,用于找回密碼時或登錄時
?????*/
????@Basic
????@Column(name = "phone")
????private String phone;
????/**
?????* 手機認證:[0,1](0未認證|1審核中|2已認證)
?????*/
????@Basic
????@Column(name = "phone_state")
????private Integer phoneState;
????/**
?????* 用戶名:[0,16]用戶登錄時所用的賬戶名稱
?????*/
????@Basic
????@Column(name = "username")
????private String username;
????/**
?????* 昵稱:[0,16]
?????*/
????@Basic
????@Column(name = "nickname")
????private String nickname;
????/**
?????* 密碼:[0,32]用戶登錄所需的密碼,由6-16位數(shù)字或英文組成
?????*/
????@Basic
????@Column(name = "password")
????private String password;
????/**
?????* 郵箱:[0,64]用戶的郵箱,用于找回密碼時或登錄時
?????*/
????@Basic
????@Column(name = "email")
????private String email;
????/**
?????* 郵箱認證:[0,1](0未認證|1審核中|2已認證)
?????*/
????@Basic
????@Column(name = "email_state")
????private Integer emailState;
????/**
?????* 頭像地址:[0,255]
?????*/
????@Basic
????@Column(name = "avatar")
????private String avatar;
????/**
?????* 創(chuàng)建時間:
?????*/
????@Basic
????@Column(name = "create_time")
????@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
????private Timestamp createTime;
????@Basic
????@Transient
????private String code;
}
-
- 登錄/注銷模塊
用戶在首頁點擊登錄,進入用戶登錄界面uerLogin.html,輸入用戶賬號和密碼,點擊登錄,用戶賬號和密碼由界面?zhèn)魅肟刂茖觰serAction,調(diào)用userLogin(user)方法,通過userDAOImp向數(shù)據(jù)庫用戶表搜索該用戶賬號與密碼,將最終結(jié)果反饋到前端。若成功則回到首頁;用戶成功登錄,若失敗則回到登錄界面,并顯示登錄失敗。
用戶點擊注銷,清空瀏覽器session值,然后返回登錄頁或者首頁。
登錄界面如下所示。
?
圖5-1登錄界面
登錄界面關鍵代碼如下所示。
/**
?????* 登錄
?????* @param data
?????* @param httpServletRequest
?????* @return
?????*/
????@PostMapping("login")
????public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
????????log.info("[執(zhí)行登錄接口]");
????????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.select(map, new HashMap<>()).getResultList();
????????}
????????else if(email != null && "".equals(email) == false){
????????????map.put("email", email);
????????????resultList = service.select(map, new HashMap<>()).getResultList();
????????}
????????else if(phone != null && "".equals(phone) == false){
????????????map.put("phone", phone);
????????????resultList = service.select(map, new HashMap<>()).getResultList();
????????}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.select(groupMap, new HashMap<>()).getResultList();
????????if (groupList.size()<1){
????????????return error(30000,"用戶組不存在");
????????}
????????UserGroup userGroup = (UserGroup) groupList.get(0);
????????//查詢用戶審核狀態(tài)
????????if (!StringUtils.isEmpty(userGroup.getSourceTable())){
????????????String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
????????????String res = String.valueOf(service.runCountSql(sql).getSingleResult());
????????????if (res==null){
????????????????return error(30000,"用戶不存在");
????????????}
????????????if (!res.equals("已通過")){
????????????????return error(30000,"該用戶審核未通過");
????????????}
????????}
????????//查詢用戶狀態(tài)
????????if (byUsername.getState()!=1){
????????????return error(30000,"用戶非可用狀態(tài),不能登錄");
????????}
????????String md5password = service.encryption(password);
????????if (byUsername.getPassword().equals(md5password)) {
????????????// 存儲Token到數(shù)據(jù)庫
????????????AccessToken accessToken = new AccessToken();
????????????accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
????????????accessToken.setUser_id(byUsername.getUserId());
????????????tokenService.save(accessToken);
????????????// 返回用戶信息
????????????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, "賬號或密碼不正確");
????????}
}
-
-
用戶模塊
- 個人資料模塊
-
用戶模塊
登錄用戶在首頁點擊進入用戶中心userCenter.html,再點擊修改個人按鈕進入userChangeInfo.html界面,系統(tǒng)根據(jù)session中存儲的目前登錄的用戶的賬號,向控制層userAction發(fā)送請求,搜索當前用戶,userAction向userDAOImp調(diào)用queryByUserId(user),向數(shù)據(jù)庫的用戶表搜索當前用戶并將用戶以對象的形式層層返回到userChangeInfo.html界面,顯示出當前用戶的個人。
若用戶要對個人進行修改,則通過修改當前之后點擊確認,向控制層userAction發(fā)送更改后的用戶,調(diào)用changeUser(user)方法,通過userDAOImp向數(shù)據(jù)庫用戶表更新用戶,若成功則反饋注冊成功,則返回的userChangeInfo.html界面被更改成功;若失敗則顯示修改失敗。
-
-
- 評論中心模塊
-
用戶可以發(fā)表自己的評論。將頁面session中的用戶賬號userId和發(fā)表評論文字框內(nèi)容和評分傳入控制層PinglunAction,調(diào)用addPinglun方法,通過PinglunDAOImp向數(shù)據(jù)庫評論表插入,將結(jié)果返回Pinglun_list.html界面。
評論中心發(fā)表界面如下所示。
?
圖5-1評論發(fā)表界面
-
-
- 電影模塊
-
用戶在登錄狀態(tài)下瀏覽電影時可將該電影加入電影選座預訂記錄,從session中取出該用戶的,點擊加入電影選座預訂記錄后前臺發(fā)起請求,將對應的電影數(shù)量shuliang、id參數(shù)從前臺傳遞YudingController類里,匹配到add()方法,add()方法調(diào)用YudingServiceImpl類的add()方法。
電影界面如下所示。
?
圖5-1電影界面
電影選座預訂界面如下所示。
?
圖5-1電影選座預訂界面
-
-
管理員模塊
- 最新電影管理模塊
-
管理員模塊
管理員在后臺管理界面點擊到所有電影界面dianyingxinxi_list.html,向控制層dianyingxinxiAction發(fā)送請求,搜索當前所有最新電影,dianyingxinxiAction向dianyingxinxiDAOImp調(diào)用搜索全部電影的請求,向數(shù)據(jù)庫的電影表搜索當前所有電影并將電影以對象的形式層層返回到dianyingxinxi_list.html界面,顯示出當前所有最新電影。若要對電影進行修改和刪除,則分別進入dianyingxinxi_updt.html或dianyingxinxi_delete.html,通過dianyingxinxiAction向dianyingxinxiDAOImp調(diào)用對應的修改或刪除方法,向數(shù)據(jù)庫的電影表做相應的持久層操作。
最新電影管理界面如下所示。
?
圖5-1最新電影管理界面
最新電影管理關鍵代碼如下所示。
??@RequestMapping(value = "/del")
????@Transactional
????public Map<String, Object> del(HttpServletRequest request) {
????????service.delete(service.readQuery(request), service.readConfig(request));
????????return success(1);
}
????@Transactional
????public void delete(Map<String,String> query,Map<String,String> config){
????????StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" ");
????????sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));
????????log.info("[{}] - 刪除操作:{}",table,sql);
????????Query query1 = runCountSql(sql.toString());
????????query1.executeUpdate();
????}
-
-
- 訂單中心管理模塊
-
管理員在后臺管理界面點擊到所有訂單界面dingdan_list.php,向控制層dingdanAction發(fā)送請求,搜索當前所有訂單信息,dingdanAction向訂單數(shù)據(jù)訪問層調(diào)用搜索全部訂單的請求,向數(shù)據(jù)庫的訂單表搜索當前所有訂單并將訂單信息以對象的形式層層返回到dingdan_list.php界面,顯示出當前所有訂單信息。同時可以刪除過期訂單,確認已有訂單,進行發(fā)貨處理。
訂單管理界面如下圖所示。
?
圖5-1訂單管理界面
訂單管理關鍵代碼如下所示。
@RequestMapping(value = {"/count_group", "/count"})
????public Map<String, Object> count(HttpServletRequest request) {
????????Query count = service.count(service.readQuery(request), service.readConfig(request));
????????return success(count.getResultList());
}
-
-
- 電影分類管理模塊
-
管理員在后臺管理界面點擊到所有電影分類界面dianyingxinxi_list.html,向控制層dianyingxinxiAction發(fā)送請求,搜索當前所有電影,dianyingxinxiAction向dianyingxinxiDAOImp調(diào)用搜索全部電影的請求,向數(shù)據(jù)庫的電影表搜索當前所有電影并將電影以對象的形式層層返回到dianyingxinxi_list.html界面,顯示出當前所有電影分類。若要對電影進行修改和刪除,則分別進入dianyingxinxi_updt.html或dianyingxinxi_delete.html,通過dianyingxinxiAction向dianyingxinxiDAOImp調(diào)用對應的修改或刪除方法,向數(shù)據(jù)庫的電影表做相應的持久層操作。
電影分類管理界面如下所示。
?
圖5-1電影分類管理界面
電影分類管理關鍵代碼如下所示。
@RequestMapping(value = {"/sum_group", "/sum"})
????public Map<String, Object> sum(HttpServletRequest request) {
????????Query count = service.sum(service.readQuery(request), service.readConfig(request));
????????return success(count.getResultList());
}
-
系統(tǒng)測試
- 測試概述
軟件測試是軟件開發(fā)完成后必須經(jīng)過的一道程序,它在軟件開發(fā)過程中地位十分重要,需要由專業(yè)的測試工程師來對軟件進行各方面的測試,大到功能模塊測試,小到代碼的單元測試,這對測試工程師來說需要有足夠的耐心和專業(yè)的測試方案,軟件測試歸根結(jié)底就是對軟件的結(jié)構(gòu)和功能的綜合測評,需要做到結(jié)構(gòu)穩(wěn)定和功能正確,二者兼顧。軟件測試也叫尋找系統(tǒng)bug的過程,世界上沒有完美無缺、不存在bug的軟件,只能將軟件的bug降到最低最小,來追求極致。
-
-
測試過程
- 登錄測試
-
測試過程
登錄測試是系統(tǒng)最開始就要進行,測試用戶能否登錄,才能完成后續(xù)的功能操作。
登錄測試用例表如下所示。
表6-1登錄測試
用例編號 |
YL001 |
程序版本 |
1.00 |
功能名稱 |
使用者登錄測試 |
編制人 |
李鐵蛋 |
功能描述 |
根據(jù)用戶的登錄情況測試 |
||
用例目的 |
測試用戶登錄情況是否正確 |
||
測試項 |
測試數(shù)據(jù) |
測試結(jié)果 |
預期結(jié)果 |
用戶名 |
為空 |
請輸入用戶名 |
請輸入用戶名 |
密碼 |
為空 |
請輸入密碼 |
請輸入密碼 |
用戶密碼組合 |
用戶名:klouse?密碼 klouses |
用戶與密碼不匹配 |
用戶與密碼不匹配 |
用戶密碼組合 |
用戶名 :?klouse?密碼 klouse |
進入系統(tǒng) |
正確的用戶名和密碼 登錄系統(tǒng) |
-
-
- 錄入測試
-
管理員在發(fā)布頁面,通過按照預先格式發(fā)布,如果因為輸入時候缺少相關內(nèi)容,就不能發(fā)布成功,且有相應錯誤提示
錄入發(fā)布測試用例表如下所示。
表6-1錄入發(fā)布測試
用例編號 |
YL002 |
程序版本 |
1.00 |
功能名稱 |
發(fā)布測試 |
編制人 |
李鐵蛋 |
功能描述 |
對使用者發(fā)布或者錄入進行測試,判斷其功能是否達到預期的要求 |
||
用例目的 |
對系統(tǒng)使用者錄入發(fā)布進行原型測試。 |
||
測試項 |
測試數(shù)據(jù) |
測試結(jié)果 |
預期結(jié)果 |
屬性1 |
為空 |
請輸入屬性1對應的數(shù)據(jù) |
請輸入屬性1對應的數(shù)據(jù) |
屬性2 |
為空 |
請輸入屬性2對應的數(shù)據(jù) |
請輸入屬性2對應的數(shù)據(jù) |
屬性3 |
為空 |
請輸入屬性3對應的數(shù)據(jù) |
請輸入屬性3對應的數(shù)據(jù) |
全部輸入 |
數(shù)據(jù)均填入 |
錄入發(fā)布成功 |
錄入發(fā)布成功 |
-
-
- 更新測試
-
管理員在更新頁面,通過按照預先格式更新,如果因為輸入時候缺少相關內(nèi)容或者更新的數(shù)據(jù)不符合當前規(guī)范的話,就不能更新成功,且有相應錯誤提示
更新測試用例表如下所示。
表6-1更新測試
用例編號 |
YL003 |
程序版本 |
1.00 |
功能名稱 |
更新測試 |
編制人 |
李鐵蛋 |
功能描述 |
對使用者更新進行測試,判斷其功能是否達到預期的要求 |
||
用例目的 |
對系統(tǒng)使用者更新進行原型測試。 |
||
測試項 |
測試數(shù)據(jù) |
測試結(jié)果 |
預期結(jié)果 |
屬性1 |
編號:321 |
編號更新成功 |
編號更新成功 |
屬性2 |
名稱:名稱1 |
名稱更新成功 |
名稱更新成功 |
屬性3 |
內(nèi)容:內(nèi)容1234內(nèi)容 |
內(nèi)容更新成功 |
內(nèi)容更新成功 |
全部輸入 |
數(shù)據(jù)均未更改 |
更新成功 |
更新成功 |
-
-
- 刪除測試
-
管理員在頁面,通過點擊數(shù)據(jù)刪除按鈕來刪除該條數(shù)據(jù),如果該數(shù)據(jù)和其他數(shù)據(jù)有關聯(lián),則提示是否確定刪除。
刪除測試用例表如下所示。
表6-1刪除測試
用例編號 |
YL004 |
程序版本 |
1.00 |
功能名稱 |
刪除測試 |
編制人 |
李鐵蛋 |
功能描述 |
對使用者刪除進行測試,判斷其功能是否達到預期的要求 |
||
用例目的 |
對系統(tǒng)使用者刪除進行原型測試。 |
||
測試項 |
測試數(shù)據(jù) |
測試結(jié)果 |
預期結(jié)果 |
數(shù)據(jù)1 |
無任何關聯(lián)的數(shù)據(jù)1 |
數(shù)據(jù)刪除成功 |
數(shù)據(jù)刪除成功 |
數(shù)據(jù)2 |
和其他數(shù)據(jù)有關聯(lián)的數(shù)據(jù)2 |
請確認是否刪除 |
請確認是否刪除 |
-
- 測試結(jié)果
在經(jīng)過之前的所有的工作之后,通過對軟件的測試方法、測試原則還有典型的測試用例進行全面的、深入的介紹。經(jīng)過對系統(tǒng)的全面測試,系統(tǒng)目前所具有的所有功能均成功的實現(xiàn)并且通過了測試,整個系統(tǒng)實現(xiàn)了基于MyEclipse 開發(fā)的期望。
-
總結(jié)與展望
- 總結(jié)
電影院管理系統(tǒng)采用spring boot框架,該結(jié)構(gòu)非常完美的集優(yōu)點于一身,成熟、強大、易理解易使用,通過使用這個結(jié)構(gòu),降低了開發(fā)的難度。本系統(tǒng)實現(xiàn)了基于MyEclipse的電影院管理系統(tǒng),將數(shù)據(jù)操作維護的過程轉(zhuǎn)化成電腦操作流程,具體實現(xiàn)了對系統(tǒng)人員管理、最新電影、電影分類管理、場次管理、電影、訂單中心管理、取消訂單管理的相關數(shù)據(jù)進行統(tǒng)計分析,讓使用者能更清晰的掌握運營情況,幫助使用者進行數(shù)據(jù)操作維護,簡化工作流程,提高工作效率和盈利。
-
- 展望
目前完成的電影院管理系統(tǒng),還有許多有待改進的地方。一個是功能上的改進,用戶理應可以修改自己的相關,故應增設個人中心功能;另外,系統(tǒng)如果能提供更多的功能就會使得系統(tǒng)更加豐富和多樣化,比如數(shù)據(jù)當前分析和未來預測等。第二個是技術上的改進,由于對開發(fā)框架不太熟悉,權(quán)限管理這部分,本系統(tǒng)采用一個Html頁面來規(guī)定好導航欄,即跳轉(zhuǎn)的頁面,這相對比較不靈活,如果將URL路徑記錄到數(shù)據(jù)庫并實現(xiàn)增刪查改會比較好;另外就是對EasyUI的使用還不夠熟練,視覺效果和界面觀感有待提升,希望日后能對這個系統(tǒng)有所改進。
參考文獻
[1]謝八和.淺析民用建筑內(nèi)電影院的消防設計審查驗收監(jiān)督管理[J].廣西城鎮(zhèn)建設,2021(12):97-99.
[2]艾琦.電影院財務管理中存在的常見問題及內(nèi)控對策[J].納稅,2021,15(27):145-146.
[3]王浩.試論內(nèi)部控制在院線企業(yè)管理中的重要作用——以分析電影院線產(chǎn)業(yè)發(fā)展中的問題為例[J].電影評介,2021(13):104-106.
?[4]周楊,丁美辰.突發(fā)公共衛(wèi)生事件下城市電影院的設計管理思考——以浙江杭州為例[J].安徽建筑,2021,28(04):18-19+44.
?[5]祁海.電影院敢于創(chuàng)新就能開發(fā)巨大的經(jīng)濟潛力——廣州青宮電影城經(jīng)營管理科學化的探索成果[J].中國電影市場,2021(04):41-47.
[6]王彬.數(shù)字放映技術下的電影院建筑工藝設計[J].中國設備工程,2021(07):258-259.
[7]連忠興.電影院服務體驗與顧客兼容性管理[J].現(xiàn)代企業(yè),2020(06):36-37.
[8]黃梓櫻. 陪都時期重慶電影院的行政管理研究[D].貴州師范大學,2020.
?[9]方新進.電影院財務管理中存在的常見問題及內(nèi)控對策[J].財經(jīng)界,2019(36):132-133.
?[10]方國平.“營改增”對電影院企業(yè)財務管理的影響與對策——義烏電影院企業(yè)[J].納稅,2019,12(30):24+26.
[11]駱艷,唐偉.災區(qū)臨時“電影院”——文山州電影事業(yè)管理中心災區(qū)電影放映紀實[J].中國電影市場,2019(10):27.
[12]周逢年.中國電影院線映前廣告現(xiàn)狀與管理策略研究[J].當代電影,2019(08):186-190.
[13] Computers, Software; Vista Entertainment Solutions, Global Leader in Cinema Management Software, Enters Austrian and South-Eastern Europe SEE Markets by Partnering with the Country's Biggest Chain, Cineplexx[J]. Computer Weekly News,2019:
[14]編輯部.航天未來數(shù)字電影院線(北京)有限公司 202B[J].家庭影院技術,2019(07):32.
[15] D-BOX Technologies Plans First All D-BOX Theater in China with Shanghai Bestar Cinemas Management Co.[J]. Manufacturing Close - Up,2018:
[16]黨曉源. 淺談中國電影數(shù)字化發(fā)展形勢下電影院線的營銷管理模式[C]//2009中國電影電視技術學會影視技術文集.,2018:670-673.
[17]李喆 ,王琰. 電影院線管理進“科班”能否適應?[N]. 中國商報,2018-06-25(011).
?[18]GY/T 207-2005, 電影院計算機票務管理系統(tǒng)軟件技術規(guī)范[S].
致謝
在老師的教導和幫助下,本人完成了本篇論文,老師對論文的內(nèi)容、格式都有非常嚴格的要求,在我寫畢業(yè)論文的過程中,他多次給出了建議,并定期檢查,對我們嚴格要求,幫助我們在文檔的編寫上寫到極致和正確,他這種教學和工作態(tài)度,讓我對他產(chǎn)生無限的敬佩感和尊敬感。寫畢業(yè)論文的同時,作為應屆生,我也忙著找工作中,遇到了很多選擇,感到困惑迷茫的時候,老師給了我很多意見,感謝老師的耐心開導,跟她的聊天我明白了許多。
我還要感謝我的父母,一直以來都非常支持和相信我,在精神和經(jīng)濟上給了我很多力量,如今我將畢業(yè)走上工作之路,終于能報答父母的養(yǎng)育教導之恩。還有我大學期間所有老師和全體同學,遇到問題時,這些老師同學總是無私地幫助我,真的非常感謝,我也會加油努力成長為一個有用的人。文章來源:http://www.zghlxwxcb.cn/news/detail-439124.html
免費領取本源代碼,請關注點贊+私信文章來源地址http://www.zghlxwxcb.cn/news/detail-439124.html
到了這里,關于(附源碼)基于Java SpringBoot的電影院管理系統(tǒng)設計與實現(xiàn) 畢業(yè)設計 011633的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!