日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

(附源码)springboot电影院售票与管理系统 毕业设计011449

發(fā)布時(shí)間:2024/3/13 windows 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (附源码)springboot电影院售票与管理系统 毕业设计011449 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

電影院售票與管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

摘?要

信息化社會(huì)內(nèi)需要與之針對(duì)性的信息獲取途徑,但是途徑的擴(kuò)展基本上為人們所努力的方向,由于站在的角度存在偏差,人們經(jīng)常能夠獲得不同類型信息,這也是技術(shù)最為難以攻克的課題。針對(duì)電影院售票等問(wèn)題,對(duì)電影院售票進(jìn)行研究分析,然后開發(fā)設(shè)計(jì)出電影院售票與管理系統(tǒng)已解決問(wèn)題。

電影院售票與管理系統(tǒng)主要功能模塊包括用戶管理、影院信息、影片信息、購(gòu)票中心、退票記錄,采取面對(duì)對(duì)象的開發(fā)模式進(jìn)行軟件的開發(fā)和硬體的架設(shè),能很好的滿足實(shí)際使用的需求,完善了對(duì)應(yīng)的軟體架設(shè)以及程序編碼的工作,采取mysql作為后臺(tái)數(shù)據(jù)的主要存儲(chǔ)單元,采用Java語(yǔ)言、springboot技術(shù)、Ajax技術(shù)進(jìn)行業(yè)務(wù)系統(tǒng)的編碼及其開發(fā),實(shí)現(xiàn)了本系統(tǒng)的全部功能。本次報(bào)告,首先分析了研究的背景、作用、意義,為研究工作的合理性打下了基礎(chǔ)。針對(duì)電影院售票與管理系統(tǒng)的各項(xiàng)需求以及技術(shù)問(wèn)題進(jìn)行分析,證明了系統(tǒng)的必要性和技術(shù)可行性,然后對(duì)設(shè)計(jì)系統(tǒng)需要使用的技術(shù)軟件以及設(shè)計(jì)思想做了基本的介紹,最后來(lái)實(shí)現(xiàn)電影院售票與管理系統(tǒng)和部署運(yùn)行使用它。

關(guān)鍵詞:電影院售票;Java語(yǔ)言;mysql數(shù)據(jù)庫(kù)

Design and implementation of cinema ticket selling and management system

Abstract

In the information society, there is a need for targeted information access, but the expansion of access is basically the direction of people's efforts. Due to the deviation of the perspective, people can often obtain different types of information, which is also the most difficult subject for technology to overcome. Aiming at the problems of cinema ticket sales, this paper studies and analyzes the cinema ticket sales, and then develops and designs the cinema ticket sales and management system, which has solved the problems.

The main functional modules of the cinema ticketing and management system include user management, cinema information, film information, ticket purchase center and ticket refund record. The object-oriented development mode is adopted for software development and hardware erection, which can well meet the needs of actual use, improve the corresponding software erection and program coding, take MySQL as the main storage unit of background data, and adopt Java language, springboot technology Ajax technology encodes and develops the business system, and realizes all the functions of the system. This report first analyzes the background, function and significance of the research, which lays a foundation for the rationality of the research work. This paper analyzes the various requirements and technical problems of the cinema ticketing and management system, proves the necessity and technical feasibility of the system, and then makes a basic introduction to the technical software and design idea required by the design system. Finally, it realizes the cinema ticketing and management system and deploys it.

Key words:Cinema ticket sales; Java language; Mysql database

目 ?錄

第1章 緒論 1

1.1?研究背景與意義 1

1.2?開發(fā)現(xiàn)狀 1

1.3?研究方法 1

第2章 相關(guān)技術(shù)介紹 3

2.1 Myeclipse描述 3

2.2 Mysql描述 3

2.3 B/S結(jié)構(gòu) 3

2.4 Tomcat描述 3

2.5?springboot框架介紹 5

第3章 系統(tǒng)分析 7

3.1?可行性分析 7

3.2?功能需求分析 7

3.2.1?前臺(tái)用戶功能 9

3.2.2?后臺(tái)管理員功能 9

3.3?非功能需求分析 10

3.4?安全性需求分析 10

3.4.1?系統(tǒng)的安全性 10

3.4.2?數(shù)據(jù)的安全性 10

第4章 系統(tǒng)設(shè)計(jì) 11

4.1?系統(tǒng)架構(gòu)設(shè)計(jì) 11

4.2?系統(tǒng)總體設(shè)計(jì) 11

4.3?系統(tǒng)功能設(shè)計(jì) 12

4.4?數(shù)據(jù)庫(kù)設(shè)計(jì) 13

4.4.1?數(shù)據(jù)需求分析 13

4.4.2?數(shù)據(jù)庫(kù)概念設(shè)計(jì) 13

4.4.3?數(shù)據(jù)庫(kù)表設(shè)計(jì) 14

第5章 系統(tǒng)實(shí)現(xiàn) 18

5.1?數(shù)據(jù)庫(kù)訪問(wèn)層的實(shí)現(xiàn) 18

5.2?注冊(cè)模塊的實(shí)現(xiàn) 19

5.3?登錄模塊的實(shí)現(xiàn) 21

5.4?用戶資料修改模塊的實(shí)現(xiàn) 24

5.5?評(píng)論模塊的實(shí)現(xiàn) 25

5.6?購(gòu)票中心模塊的實(shí)現(xiàn) 28

5.7退票記錄模塊的實(shí)現(xiàn) 31

5.8?影院信息管理模塊的實(shí)現(xiàn) 33

5.9影片信息管理模塊的實(shí)現(xiàn) 35

第6章 系統(tǒng)測(cè)試 36

6.1?測(cè)試目的 36

6.2?功能測(cè)試 36

6.3?性能測(cè)試 37

第7章 總結(jié)與展望 38

參考文獻(xiàn) 39

致謝 41

  • 緒論
  • 研究背景與意義
  • 網(wǎng)絡(luò)發(fā)展到今天,是必然的結(jié)果。網(wǎng)絡(luò)使人們的生活發(fā)生了深刻的變革,Internet成為很多活動(dòng)的重要場(chǎng)所。電影院購(gòu)票管理系統(tǒng)現(xiàn)在雖然還處于發(fā)展階段,但是隨著互聯(lián)網(wǎng)經(jīng)濟(jì)的發(fā)展,越來(lái)越多的人投入到電影院購(gòu)票管理系統(tǒng)維護(hù)這個(gè)領(lǐng)域中來(lái)。網(wǎng)上維護(hù)最大程度的方便了顧客。顧客足不出戶,在電影院購(gòu)票管理系統(tǒng)通過(guò)www瀏覽器實(shí)現(xiàn)網(wǎng)上把售票員請(qǐng)到家服務(wù),便可將得到自己喜歡的電影,無(wú)需東奔西跑。本次設(shè)計(jì)的電影院購(gòu)票管理系統(tǒng)-是一種具有交互功能的商業(yè)網(wǎng)站,可以方便服務(wù)于每一個(gè)客戶。

    隨著科技的發(fā)展,時(shí)代的進(jìn)步,互聯(lián)網(wǎng)已經(jīng)成為了人們生活中不可缺少的東西,網(wǎng)上購(gòu)物成為了一種時(shí)代的象征,人們生活水平日以提高,壓力也越來(lái)越大,人們需要放松自己的心情,看電影顯然是個(gè)不錯(cuò)的選擇,但是傳統(tǒng)的窗口售票工作效率低,人們往往需要排很長(zhǎng)的隊(duì)伍才能買到票,不僅浪費(fèi)了寶貴的時(shí)間,而且可能還會(huì)影響購(gòu)票人的心情,工作人員的工作量也大,因此擁有一套完整的高效的實(shí)用的電影院購(gòu)票管理系統(tǒng)就顯得非常重要了,他可以幫你解決排隊(duì)問(wèn)題,還可以足不出戶就可以在家網(wǎng)上查詢電影票價(jià)和購(gòu)買情況,節(jié)約了很多寶貴的時(shí)間,故而本次研究的目標(biāo)就在此。

  • 開發(fā)現(xiàn)狀
  • 隨著社會(huì)經(jīng)濟(jì)的快速發(fā)展,人們的娛樂(lè)活動(dòng)越來(lái)越豐富,其中看電影占了很大的比例。開發(fā)此系統(tǒng)的目的是解決喜愛電影的人們買票難的問(wèn)題。以前要買電影票必須到電影院買,這樣既浪費(fèi)時(shí)間,浪費(fèi)精力,而且最終還不一定買到自己想看要的。有了本系統(tǒng),可以很方便的讓影迷在家上網(wǎng)查看影院的影片以及票務(wù)的信息,這樣既省時(shí)又省力,可以同時(shí)了解到不同影片的信息,有更多的選擇。本系統(tǒng)充分利用網(wǎng)絡(luò)資源和人力資源。

    面對(duì)全球性影院觀看熱潮,國(guó)內(nèi)外對(duì)影院觀看的視覺(jué)需求,以及其規(guī)模的優(yōu)勢(shì),其獨(dú)有的互動(dòng)效果和場(chǎng)內(nèi)氣憤贏得了越來(lái)越多的人的喜歡。1980 ~ 1984年平均產(chǎn)量達(dá)120部,每年觀眾人次平均在250億左右。同時(shí)中國(guó)電影也進(jìn)入一個(gè)蓬勃發(fā)展的新時(shí)期,中國(guó)美術(shù)片從形式到內(nèi)部都極其富有民族色彩。伴隨電影的發(fā)展,國(guó)內(nèi)外的電子票務(wù)系統(tǒng)也告訴的發(fā)展,國(guó)內(nèi)有許多的電影院購(gòu)票管理系統(tǒng),如格瓦拉以及一些團(tuán)購(gòu)網(wǎng)站都有相關(guān)的內(nèi)容。

  • 研究方法
  • 首先,通過(guò)引擎搜索或者查閱相關(guān)文獻(xiàn)資料,了解了本系統(tǒng)開發(fā)的背景以及設(shè)計(jì)系統(tǒng)的意義所在,收集用戶需求信息。其次,在開發(fā)工具上,最終確定選用springboot平臺(tái)來(lái)設(shè)計(jì)開發(fā)本系統(tǒng),mysql作為設(shè)計(jì)數(shù)據(jù)庫(kù)的工具。即利用Java語(yǔ)言實(shí)現(xiàn)用戶界面,并同數(shù)據(jù)庫(kù)連接起來(lái)實(shí)現(xiàn)完整的通信功能。之后,設(shè)計(jì)出系統(tǒng)大致的功能模塊。主要從方便系統(tǒng)用戶和系統(tǒng)管理員的角度進(jìn)行分析,明確該系統(tǒng)應(yīng)該具有的功能。最終是測(cè)試系統(tǒng),通過(guò)用例測(cè)試發(fā)現(xiàn)存在的問(wèn)題并找到解決的方案。利用現(xiàn)有的開發(fā)平臺(tái),結(jié)合自己所學(xué)的知識(shí),在老師的指導(dǎo)幫助下來(lái)完成該設(shè)計(jì),確保系統(tǒng)的可用性、實(shí)用性。

  • 相關(guān)技術(shù)介紹
  • 2.1Myeclipse描述

    我們?cè)诶肑ava來(lái)開發(fā)系統(tǒng)時(shí)通常采用的軟件就是Myeclipse,它是用來(lái)設(shè)計(jì)Java, JavaEE的Eclipse插件的調(diào)集,采取了 Myeclipse大部分可以實(shí)現(xiàn)對(duì)Mysql的數(shù)據(jù)庫(kù)和Javaee的研究和開發(fā)。用了Myeclipse很大的便利了開發(fā)人員,系統(tǒng)開發(fā)的進(jìn)度也會(huì)得到一些提高。

    2.2?Mysql描述

    現(xiàn)在Mysql數(shù)據(jù)庫(kù)在網(wǎng)絡(luò)上它可以支撐許多個(gè)用戶,而且也可以適應(yīng)客服機(jī)和服務(wù)器的部署或者配置等,我們這里的服務(wù)器和客戶機(jī)其實(shí)就是一種軟件上的概念,并且我們使用的計(jì)算機(jī)硬件也與他們不存在一一對(duì)應(yīng)的關(guān)系。

    Mysql是一款非常流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它的出現(xiàn)一直都是佼佼者,它不僅功能非常強(qiáng)大,而且使用起來(lái)非常方便,并且Mysql的跨平臺(tái)能力也很好,軟件開發(fā)人員非常喜歡它的這些強(qiáng)大的優(yōu)點(diǎn)。不同于其他關(guān)系型數(shù)據(jù)庫(kù),對(duì)于數(shù)據(jù)庫(kù)的管理它有著自己的一套方案,通過(guò)對(duì)用戶設(shè)定相應(yīng)的權(quán)限和角色來(lái)達(dá)到對(duì)數(shù)據(jù)庫(kù)的管理。由此可見,Mysql是一個(gè)能夠適用于吞吐量高,可靠性高,效率高的一款數(shù)據(jù)庫(kù)管理軟件[4]。

    優(yōu)點(diǎn)一:Mysql中對(duì)于不同身份的用戶都設(shè)定其不同的權(quán)限來(lái)完成不同的業(yè)務(wù)邏輯,這使得Mysql在安全和完整性遠(yuǎn)遠(yuǎn)超出了其他關(guān)系型數(shù)據(jù)庫(kù)。

    優(yōu)點(diǎn)二:對(duì)于那些動(dòng)畫、圖形和聲音的數(shù)據(jù)類型Mysql也可以支持,這說(shuō)明多數(shù)據(jù)類型Mysql也是可以支持的。

    優(yōu)點(diǎn)三:Mysql還可以做到多個(gè)平臺(tái)的開發(fā),軟件開發(fā)的多種編程語(yǔ)言都可以實(shí)現(xiàn)對(duì)Mysql數(shù)據(jù)庫(kù)的操作。

    2.3 B/S結(jié)構(gòu)

    在系統(tǒng)的開發(fā)上采用了B/S結(jié)構(gòu),在B/S結(jié)構(gòu)中,統(tǒng)一采用瀏覽器,而不需要去開發(fā)任何的用戶界面,Web瀏覽器向處理它的Web服務(wù)器發(fā)送請(qǐng)求,并一步一步地將處理結(jié)果返回給客戶端。B/S結(jié)構(gòu)主要采用了各種腳本語(yǔ)言和ActiveX技術(shù),降低了系統(tǒng)的開發(fā)難度并簡(jiǎn)化了系統(tǒng)維護(hù)以及使用。

    B/S結(jié)構(gòu)有如下特點(diǎn):B/S結(jié)構(gòu)建立在廣域網(wǎng)上,不需要專門為其配置硬件環(huán)境,比C/S結(jié)構(gòu)的適應(yīng)范圍更強(qiáng);由于其基于廣域網(wǎng),所以其對(duì)安全的控制能力相對(duì)較弱;B/S的多種結(jié)構(gòu)要求構(gòu)造相對(duì)獨(dú)立的函數(shù),這樣才能可以更好地重用;B/S結(jié)構(gòu)組成簡(jiǎn)單,便于對(duì)個(gè)別構(gòu)件進(jìn)行更換,降低了系統(tǒng)的維護(hù)成本B/S信息流向與C/S不同,B/S信息流向可變化。

    2.4Tomcat描述

    Tomcat是一個(gè)不收費(fèi)的服務(wù)器。使用場(chǎng)景比較適合訪問(wèn)量比較少的情況下。意思就是,將Tomcat安裝到電腦上的時(shí)候,前端HTML頁(yè)面的訪問(wèn)請(qǐng)求可以通過(guò)它進(jìn)行解析。實(shí)際上,Tomcat是對(duì)Apache的擴(kuò)展,但它相對(duì)于Apache卻是相對(duì)獨(dú)立作業(yè)的,由此可以看作它與Apache 是相對(duì)獨(dú)立進(jìn)程運(yùn)行的。

    Tomcat最開始是sun公司的戴維森進(jìn)行開發(fā)應(yīng)用的,經(jīng)過(guò)他的努力,不斷地將其變?yōu)殚_源的服務(wù)器。還由sun公司將其交給了Apache軟件基金會(huì)。不斷發(fā)展的tomcat服務(wù)器在最近的一個(gè)版本中進(jìn)行了大量的重構(gòu)和梳理,使其使用起來(lái)更加的方便。基于Tomcat負(fù)載均衡算法是一種開源的軟件,實(shí)現(xiàn)方式。不需要增加額外的硬件投入,實(shí)現(xiàn)起來(lái)也很方便,特別適用于一般的小企業(yè)網(wǎng)站服務(wù)器在現(xiàn)在和將來(lái)一段時(shí)間的擴(kuò)展。從目前的實(shí)踐來(lái)看,可作為需要進(jìn)行類似應(yīng)用的一個(gè)參考借鑒。

    2.5 spring boot框架介紹

    Spring框架是Java平臺(tái)上的一種開源應(yīng)用框架,提供具有控制反轉(zhuǎn)特性的容器。盡管Spring框架自身對(duì)編程模型沒(méi)有限制,但其在Java應(yīng)用中的頻繁使用讓它備受青睞,以至于后來(lái)讓它作為EJB(EnterpriseJavaBeans)模型的補(bǔ)充,甚至是替補(bǔ)。Spring框架為開發(fā)提供了一系列的解決方案,比如利用控制反轉(zhuǎn)的核心特性,并通過(guò)依賴注入實(shí)現(xiàn)控制反轉(zhuǎn)來(lái)實(shí)現(xiàn)管理對(duì)象生命周期容器化,利用面向切面編程進(jìn)行聲明式的事務(wù)管理,整合多種持久化技術(shù)管理數(shù)據(jù)訪問(wèn),提供大量?jī)?yōu)秀的Web框架方便開發(fā)等等。Spring框架具有控制反轉(zhuǎn)(IOC)特性,IOC旨在方便項(xiàng)目維護(hù)和測(cè)試,它提供了一種通過(guò)Java的反射機(jī)制對(duì)Java對(duì)象進(jìn)行統(tǒng)一的配置和管理的方法。Spring框架利用容器管理對(duì)象的生命周期,容器可以通過(guò)掃描XML文件或類上特定Java注解來(lái)配置對(duì)象,開發(fā)者可以通過(guò)依賴查找或依賴注入來(lái)獲得對(duì)象。Spring框架具有面向切面編程(AOP)框架,SpringAOP框架基于代理模式,同時(shí)運(yùn)行時(shí)可配置;AOP框架主要針對(duì)模塊之間的交叉關(guān)注點(diǎn)進(jìn)行模塊化。Spring框架的AOP框架僅提供基本的AOP特性,雖無(wú)法與AspectJ框架相比,但通過(guò)與AspectJ的集成,也可以滿足基本需求。Spring框架下的事務(wù)管理、遠(yuǎn)程訪問(wèn)等功能均可以通過(guò)使用SpringAOP技術(shù)實(shí)現(xiàn)。Spring的事務(wù)管理框架為Java平臺(tái)帶來(lái)了一種抽象機(jī)制,使本地和全局事務(wù)以及嵌套事務(wù)能夠與保存點(diǎn)一起工作,并且?guī)缀蹩梢栽贘ava平臺(tái)的任何環(huán)境中工作。Spring集成多種事務(wù)模板,系統(tǒng)可以通過(guò)事務(wù)模板、XML或Java注解進(jìn)行事務(wù)配置,并且事務(wù)框架集成了消息傳遞和緩存等功能。Spring的數(shù)據(jù)訪問(wèn)框架解決了開發(fā)人員在應(yīng)用程序中使用數(shù)據(jù)庫(kù)時(shí)遇到的常見困難。它不僅對(duì)Java:JDBC、iBATS/MyBATIs、Hibernate、Java數(shù)據(jù)對(duì)象(JDO)、ApacheOJB和ApacheCayne等所有流行的數(shù)據(jù)訪問(wèn)框架中提供支持,同時(shí)還可以與Spring的事務(wù)管理一起使用,為數(shù)據(jù)訪問(wèn)提供了靈活的抽象。Spring框架最初是沒(méi)有打算構(gòu)建一個(gè)自己的WebMVC框架,其開發(fā)人員在開發(fā)過(guò)程中認(rèn)為現(xiàn)有的StrutsWeb框架的呈現(xiàn)層和請(qǐng)求處理層之間以及請(qǐng)求處理層和模型之間的分離不夠,于是創(chuàng)建了SpringMVC。

  • 系統(tǒng)分析
  • 可行性分析
  • 技術(shù)性方面,采用當(dāng)前主流的是springboot框架進(jìn)行系統(tǒng)主體框架的搭建,前臺(tái)使用jquery,ajax,實(shí)現(xiàn)前臺(tái)頁(yè)面的設(shè)計(jì)與美觀調(diào)整,以上技術(shù),均由本人經(jīng)過(guò)系統(tǒng)學(xué)習(xí),并且都是在課程設(shè)計(jì)中實(shí)踐過(guò)的,可以使得開發(fā)更加便捷和系統(tǒng)。從技術(shù)角度看,這個(gè)系統(tǒng)是完全可以實(shí)現(xiàn)的。

    實(shí)用性方面,本次設(shè)計(jì)的主要任務(wù)是在電影院售票與管理系統(tǒng)內(nèi)¥購(gòu)票會(huì)員卡等,符合當(dāng)前潮流的發(fā)展。從用戶角度出發(fā),同時(shí)也考慮系統(tǒng)運(yùn)營(yíng)成本和人力資源,采用網(wǎng)絡(luò)上的便捷方式,實(shí)現(xiàn)線上業(yè)務(wù),使得業(yè)務(wù)流程更系統(tǒng),也更方便用戶的體驗(yàn),比較實(shí)用。

    經(jīng)濟(jì)性方面,由于本課題中設(shè)計(jì)的電影院售票與管理系統(tǒng)的主要目的是為了能夠更加方便及快捷的進(jìn)行信息的查詢管理及檢索服務(wù),也就是能夠可以直接投入使用的信息化軟件。系統(tǒng)的主要成本主要是集中在對(duì)使用數(shù)據(jù)后期繼續(xù)維護(hù)及其管理更新這個(gè)操作上。但是一旦系統(tǒng)投入到實(shí)際的運(yùn)行及使用之后就能夠很好的提高信息查詢檢索的效率,同時(shí)也需要有效的保證查詢者的信息方面的安全性,同時(shí)這個(gè)電影院售票與管理系統(tǒng)所帶來(lái)的實(shí)際應(yīng)用方面的價(jià)值是遠(yuǎn)遠(yuǎn)的超過(guò)了實(shí)際系統(tǒng)進(jìn)行開發(fā)與維護(hù)方面的成本,因此,從經(jīng)濟(jì)上來(lái)說(shuō)開發(fā)這個(gè)軟件是可行的。

  • 功能需求分析
  • 電影院售票與管理系統(tǒng)的功能主要分為前臺(tái)用戶根據(jù)自己的需求進(jìn)行注冊(cè)登錄,瀏覽電影資訊并對(duì)選中的電影進(jìn)行購(gòu)票操作。后臺(tái)系統(tǒng)管理員因職責(zé)的不同,分為普通管理員和超級(jí)管理員,普通管理員主要對(duì)購(gòu)票單進(jìn)行處理,處理退票單,而超級(jí)管理員主要對(duì)注冊(cè)用戶,影院信息、影片信息、購(gòu)票中心、退票記錄進(jìn)行處理。

    管理員用例圖如下所示。

    ?

    圖3-1 管理員用例圖

    用戶用例圖如下所示。

    ?

    圖3-1 用戶用例圖

  • 前臺(tái)用戶功能
  • 前臺(tái)用戶可分為未注冊(cè)用戶需求和以注冊(cè)用戶需求。

    前臺(tái)用戶的功能如下:

    登錄:根據(jù)賬號(hào)密碼進(jìn)行登錄操作。

    維護(hù)個(gè)人信息:用戶因個(gè)人信息的變更可以隨時(shí)修改自己注冊(cè)信息。

    瀏覽影片信息:用戶可以根據(jù)電影類型瀏覽影片的信息,并選中某個(gè)影片查看詳情,例如:影片編號(hào)、影片名稱、影片類型、影院名稱、上映時(shí)間、票價(jià)等。

    瀏覽影院信息:用戶可以根據(jù)電影類型瀏覽影院的信息,并選中某個(gè)影院查看詳情,例如:影院編號(hào)、影院名稱、影院地址、影院電話等。

    瀏覽評(píng)論信息:選中某間電影可查看其用戶的評(píng)論。

    評(píng)論:用戶可以根據(jù)自己的觀點(diǎn)看法對(duì)相關(guān)電影進(jìn)行評(píng)論。

  • 后臺(tái)管理員功能
  • 管理員功能如下:

    修改密碼:管理員可以隨時(shí)修改自己進(jìn)入系統(tǒng)的登錄密碼,以保證系統(tǒng)的安全性。

    對(duì)購(gòu)票單信息進(jìn)行處理:辦理購(gòu)票單審核等。

    管理普通管理員:對(duì)普通管理員進(jìn)行管理。調(diào)動(dòng)相關(guān)工作人員時(shí)可以添加或刪除普通管理員。

    影院信息管理:對(duì)影院信息進(jìn)行維護(hù),添加、刪除、修改信息。

    對(duì)退票記錄信息進(jìn)行處理:辦理退票審核等。

    影片信息管理:對(duì)影片信息進(jìn)行維護(hù),添加、刪除、修改信息。

    評(píng)論信息管理:可以查看用戶的評(píng)論,及時(shí)了解用戶發(fā)起的建議。

    用戶管理:可以查看注冊(cè)用戶的信息,并對(duì)其進(jìn)行管理。

  • 非功能需求分析
  • 首先主要考慮的是系統(tǒng)功能軟件,在具體設(shè)計(jì)的環(huán)節(jié)上,是不是能夠較好的滿足各類用戶的基本功能需求,如果不能較好的滿足用戶需求,那么這個(gè)系統(tǒng)的存在是沒(méi)有價(jià)值的。軟件系統(tǒng)的非功能性求分析,從7個(gè)方面展開,一個(gè)是性能分析,針對(duì)系統(tǒng);一個(gè)是安全分析,針對(duì)系統(tǒng),一個(gè)是完整度分析,針對(duì)系統(tǒng),一個(gè)是可維護(hù)分析,針對(duì)系統(tǒng),一個(gè)是可擴(kuò)展性分析,針對(duì)系統(tǒng),一個(gè)是適應(yīng)業(yè)務(wù)的性能分析。面對(duì)電影院售票與管理系統(tǒng)存在的性能、安全、擴(kuò)展、完整度等7個(gè)方面性能綜合比對(duì)分析后發(fā)現(xiàn),需要相應(yīng)的非功能性需求分析。

  • 安全性需求分析
  • 系統(tǒng)的安全性
  • 安全性對(duì)每一個(gè)系統(tǒng)來(lái)說(shuō)都是非常重要的。安全性很好的系統(tǒng)可以保護(hù)企業(yè)的信息和用戶的信息不被竊取。提高系統(tǒng)的安全性不僅是對(duì)用戶的負(fù)責(zé),更是對(duì)企業(yè)的負(fù)責(zé)。尤其針對(duì)于電影院售票與管理系統(tǒng)來(lái)說(shuō),必須要有很好的安全性來(lái)保障整個(gè)系統(tǒng)。

    系統(tǒng)具有對(duì)使用者有權(quán)限控制,針對(duì)角色的不通限制使用者的權(quán)限,以此來(lái)確保系統(tǒng)的安全性。

  • 數(shù)據(jù)的安全性
  • 數(shù)據(jù)庫(kù)中的數(shù)據(jù)是從外界輸入的,當(dāng)數(shù)據(jù)的輸入時(shí),由于種種原因,輸入的數(shù)據(jù)會(huì)無(wú)效,或者是臟數(shù)據(jù)。因此,怎樣保證輸入的數(shù)據(jù)符合規(guī)定,成為了數(shù)據(jù)庫(kù)系統(tǒng),尤其是多用戶的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)首要關(guān)注的問(wèn)題。

    因此,在寫入數(shù)據(jù)庫(kù)時(shí),要保證數(shù)據(jù)完整性、正確性和一致性。

  • 系統(tǒng)設(shè)計(jì)
  • 系統(tǒng)架構(gòu)設(shè)計(jì)
  • 本電影院售票與管理系統(tǒng)的架構(gòu)設(shè)計(jì)主要分為可以3層,主要有Web層,業(yè)務(wù)層,Model層。其中web層還包括View層和Controller層,Model層包括元數(shù)據(jù)擴(kuò)展層和數(shù)據(jù)訪問(wèn)層。

    系統(tǒng)架構(gòu)如下圖所示。

    ?

    圖4-1 系統(tǒng)架構(gòu)

  • 系統(tǒng)總體設(shè)計(jì)
  • 電影院售票與管理系統(tǒng)總體分為前臺(tái)用戶模塊和后臺(tái)管理員模塊。

    兩個(gè)模塊表現(xiàn)上是分別獨(dú)立存在,但是訪問(wèn)的數(shù)據(jù)庫(kù)是一樣的。每一個(gè)模塊的功能都是根據(jù)先前完成的需求分析,并查閱相關(guān)資料后整理制作的。

    綜上所述,系統(tǒng)功能結(jié)構(gòu)圖如下圖所示。

    ?

    圖4-2 系統(tǒng)功能結(jié)構(gòu)圖

  • 系統(tǒng)功能設(shè)計(jì)
  • 登錄模塊:登錄模塊是進(jìn)入系統(tǒng)的入口,所有用戶必須登錄后才能訪問(wèn)系統(tǒng)。登錄需要輸入用戶名和密碼,如果多次嘗試登錄需要輸入驗(yàn)證碼。登錄時(shí)需要選擇用戶的角色,是一般用戶還是管理員登錄等。登錄成功后,會(huì)通過(guò)數(shù)據(jù)庫(kù)獲取用戶的權(quán)限,并跳轉(zhuǎn)至用戶的主頁(yè)面。

    管理員用戶管理模塊:管理員管理包括:管理員的添加,修改和刪除操作。添加管理員時(shí),先判斷用戶添加的管理員是否是admin(超級(jí)管理員),如果不是則添加成功。修改時(shí)候,如果是超級(jí)管理員,可以修改所有管理員的信息,如果是普通管理員,那么只能修改自己的信息。超級(jí)管理員可以刪除自己以外的所有其他管理員,普通管理員不能執(zhí)行刪除管理員的操作。

    評(píng)價(jià)模塊:評(píng)價(jià)模塊促進(jìn)用戶對(duì)電影進(jìn)行點(diǎn)評(píng),查看某個(gè)電影已存在的評(píng)價(jià),發(fā)表評(píng)價(jià)可以達(dá)到真實(shí)描述電影的效果。

    影院信息模塊:可分為影院信息瀏覽、影院信息檢索、影院信息維護(hù)三個(gè)模塊,管理員對(duì)影院信息有維護(hù)的權(quán)限,發(fā)布新的影院信息、更新已有的影院信息等。

    影片信息管理模塊:影片信息管理分為影片添加、修改和影片票價(jià)。影片信息由管理員進(jìn)行修改、添加、刪除操作;影片購(gòu)票由普通用戶來(lái)執(zhí)行。

  • 數(shù)據(jù)庫(kù)設(shè)計(jì)
  • 數(shù)據(jù)需求分析
  • 從前面可以分析到數(shù)據(jù)庫(kù)中最重要的是用戶注冊(cè)表,退票記錄表,購(gòu)票中心表,影片信息表,影院信息表,收藏表,評(píng)論表。分析可以得到如下數(shù)據(jù)描述:

    用戶注冊(cè):用于記錄用戶的各種信息,包括性別、審核狀態(tài)等數(shù)據(jù)項(xiàng)。

    管理員:記錄管理員的登錄信息。包括用戶名,密碼,權(quán)限等數(shù)據(jù)項(xiàng)。

    退票記錄:存放給退票記錄的內(nèi)容,包括影片編號(hào)、影片類型、票價(jià)、購(gòu)買張數(shù)、總金額、退款原因、退款時(shí)間、退款金額、用戶賬號(hào)、審核狀態(tài)、審核回復(fù)等數(shù)據(jù)項(xiàng)。

    購(gòu)票中心:存儲(chǔ)各種購(gòu)票中心信息。包括影片編號(hào)、影片類型、影片名稱、票價(jià)、購(gòu)買張數(shù)、總金額、用戶賬號(hào)、支付狀態(tài)、支付類型、座位號(hào)等數(shù)據(jù)項(xiàng)。

    影片信息:存儲(chǔ)用戶的影片信息。包括影片信息的影片編號(hào)、影片類型、影片名稱、影片封面、上映時(shí)間、票價(jià)、影片簡(jiǎn)介、點(diǎn)擊數(shù)等數(shù)據(jù)項(xiàng)。

    影院信息。存儲(chǔ)用戶的影院信息。包括影院編號(hào)、影院名稱、影院地址、影院封面、點(diǎn)擊數(shù)等數(shù)據(jù)項(xiàng)。

  • 數(shù)據(jù)庫(kù)概念設(shè)計(jì)
  • 根據(jù)前面的數(shù)據(jù)流程圖,結(jié)合系統(tǒng)的功能模塊設(shè)計(jì),設(shè)計(jì)出符合系統(tǒng)的各信息實(shí)體。

    系統(tǒng)ER圖如下圖所示。

    ?

    圖4-3 系統(tǒng)ER圖

  • 數(shù)據(jù)庫(kù)表設(shè)計(jì)
  • 電影院售票與管理系統(tǒng)所擁有的數(shù)據(jù)表有以下:用戶注冊(cè)表,退票記錄表,購(gòu)票中心表,影片信息表,影院信息表,收藏表,評(píng)論表。

    由于數(shù)據(jù)表較多,只展示系統(tǒng)主要數(shù)據(jù)表,如下表所示。

    user_registration表:

    名稱

    類型

    長(zhǎng)度

    不是null

    主鍵

    注釋

    user_registration_id

    int

    11

    用戶注冊(cè)ID

    gender

    varchar

    64

    性別

    examine_state

    varchar

    16

    審核狀態(tài)

    recommend

    int

    11

    智能推薦

    user_id

    int

    11

    用戶ID

    create_time

    datetime

    0

    創(chuàng)建時(shí)間

    update_time

    timestamp

    0

    更新時(shí)間

    ticket_refund_record表

    名稱

    類型

    長(zhǎng)度

    不是null

    主鍵

    注釋

    ticket_refund_record_id

    int

    11

    退票記錄ID

    film_number

    varchar

    64

    影片編號(hào)

    film_type

    varchar

    64

    影片類型

    movie_title

    varchar

    64

    影片名稱

    ticket_price

    varchar

    64

    票價(jià)

    number_of_purchased_sheets

    varchar

    64

    購(gòu)買張數(shù)

    total_amount

    varchar

    64

    總金額

    refund_reason

    varchar

    64

    退款原因

    refund_time

    varchar

    64

    退款時(shí)間

    refund_amount_

    int

    11

    退款金額

    user_account

    int

    11

    用戶賬號(hào)

    examine_state

    varchar

    16

    審核狀態(tài)

    examine_reply

    varchar

    16

    審核回復(fù)

    recommend

    int

    11

    智能推薦

    create_time

    datetime

    0

    創(chuàng)建時(shí)間

    update_time

    timestamp

    0

    更新時(shí)間

    ticket_center表:

    名稱

    類型

    長(zhǎng)度

    不是null

    主鍵

    注釋

    ticket_center_id

    int

    11

    購(gòu)票中心ID

    film_number

    varchar

    64

    影片編號(hào)

    film_type

    varchar

    64

    影片類型

    movie_title

    varchar

    64

    影片名稱

    cinema_name

    varchar

    64

    影院名稱

    ticket_price

    varchar

    64

    票價(jià)

    number_of_purchased_sheets

    int

    11

    購(gòu)買張數(shù)

    total_amount

    varchar

    64

    總金額

    user_account

    int

    11

    用戶賬號(hào)

    pay_state

    varchar

    16

    支付狀態(tài)

    pay_type

    varchar

    16

    支付類型

    recommend

    int

    11

    智能推薦

    seat

    varchar

    64

    座位號(hào)

    create_time

    datetime

    0

    創(chuàng)建時(shí)間

    update_time

    timestamp

    0

    更新時(shí)間

    film_information表:

    名稱

    類型

    長(zhǎng)度

    不是null

    主鍵

    注釋

    film_information_id

    int

    11

    影片信息ID

    film_number

    varchar

    64

    影片編號(hào)

    film_type

    varchar

    64

    影片類型

    movie_title

    varchar

    64

    影片名稱

    cinema_name

    varchar

    64

    影院名稱

    film_cover

    varchar

    255

    影片封面

    release_time

    date

    0

    上映時(shí)間

    ticket_price

    int

    11

    票價(jià)

    film_introduction

    text

    0

    影片簡(jiǎn)介

    hits

    int

    11

    點(diǎn)擊數(shù)

    recommend

    int

    11

    智能推薦

    create_time

    datetime

    0

    創(chuàng)建時(shí)間

    update_time

    timestamp

    0

    更新時(shí)間

    cinema_information表:

    名稱

    類型

    長(zhǎng)度

    不是null

    主鍵

    注釋

    cinema_information_id

    int

    11

    影院信息ID

    theater_number

    varchar

    64

    影院編號(hào)

    cinema_name

    varchar

    64

    影院名稱

    cinema_address

    varchar

    64

    影院地址

    cinema_telephone

    varchar

    64

    影院電話

    cinema_cover

    varchar

    255

    影院封面

    hits

    int

    11

    點(diǎn)擊數(shù)

    recommend

    int

    11

    智能推薦

    create_time

    datetime

    0

    創(chuàng)建時(shí)間

    update_time

    timestamp

    0

    更新時(shí)間

    comment表:

    名稱

    類型

    長(zhǎng)度

    不是null

    主鍵

    注釋

    comment_id

    int

    11

    評(píng)論ID

    user_id

    int

    11

    評(píng)論人ID

    reply_to_id

    int

    11

    回復(fù)評(píng)論ID

    content

    longtext

    0

    內(nèi)容

    nickname

    varchar

    255

    昵稱

    avatar

    varchar

    255

    頭像地址

    create_time

    timestamp

    0

    創(chuàng)建時(shí)間

    update_time

    timestamp

    0

    更新時(shí)間

    source_table

    varchar

    255

    來(lái)源表

    source_field

    varchar

    255

    來(lái)源字段

    source_id

    int

    10

    來(lái)源ID

    collect表:

    名稱

    類型

    長(zhǎng)度

    不是null

    主鍵

    注釋

    collect_id

    int

    10

    收藏ID

    user_id

    int

    10

    收藏人ID

    source_table

    varchar

    255

    來(lái)源表

    source_field

    varchar

    255

    來(lái)源字段

    source_id

    int

    10

    來(lái)源ID

    title

    varchar

    255

    標(biāo)題

    img

    varchar

    255

    封面

    create_time

    timestamp

    0

    創(chuàng)建時(shí)間

    update_time

    timestamp

    0

    更新時(shí)間

    ??

  • 系統(tǒng)實(shí)現(xiàn)
  • 數(shù)據(jù)庫(kù)訪問(wèn)層的實(shí)現(xiàn)
  • 該系統(tǒng)是通過(guò)jdbc和MySQL達(dá)成連接的,新建一個(gè)jdbc.properties文件來(lái)填寫與數(shù)據(jù)庫(kù)連接所需要的驅(qū)動(dòng)和參數(shù)。

    jdbc.driverClass=com.MySQL.jdbc.Driver

    jdbc.url=jdbc:MySQL://localhost:3306/tsi

    jdbc.username=root

    jdbc.password=123

    第一個(gè)參數(shù)代表MySQL數(shù)據(jù)庫(kù)的驅(qū)動(dòng),第二個(gè)參數(shù)代表要連接的數(shù)據(jù)庫(kù),第三個(gè)和第四個(gè)參數(shù)代表數(shù)據(jù)庫(kù)連接名和密碼。

    后臺(tái)與數(shù)據(jù)庫(kù)訪問(wèn)主要是通過(guò)HQL語(yǔ)句來(lái)進(jìn)行查詢的,查詢語(yǔ)句中的表名是表格的實(shí)體類名,在這種查詢語(yǔ)句中*是不允許使用的,除非適合聚合函數(shù)一起使用才可以。

  • 注冊(cè)模塊的實(shí)現(xiàn)
  • 用戶在填寫數(shù)據(jù)的時(shí)候必須與注冊(cè)頁(yè)面上的驗(yàn)證相匹配否則會(huì)注冊(cè)失敗,注冊(cè)頁(yè)面的表單驗(yàn)證是通過(guò)JavaScript進(jìn)行驗(yàn)證的,用戶名的長(zhǎng)度必須在6到18之間,郵箱必須帶有@符號(hào),密碼和密碼確認(rèn)必須相同,你輸入的密碼,系統(tǒng)會(huì)根據(jù)你輸入密碼的強(qiáng)度給出指定的值,電話號(hào)碼和身份證號(hào)碼必須要求輸入格式與生活相符合,當(dāng)你前臺(tái)驗(yàn)證通過(guò)的時(shí)候你點(diǎn)擊注冊(cè),表單會(huì)將你輸入的值通過(guò)name值傳遞給后臺(tái)并保存到數(shù)據(jù)庫(kù)中。

    用戶注冊(cè)流程圖如下圖所示。

    ?

    圖5-1用戶注冊(cè)流程圖

    用戶注冊(cè)界面如下圖所示。

    ?

    圖5-2用戶注冊(cè)界面

    用戶注冊(cè)的關(guān)鍵代碼為:

    /**

    ?????* 注冊(cè)

    ?????* @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]用戶獲取其他與用戶相關(guān)的數(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;

    ????/**

    ?????* 上次登錄時(shí)間:

    ?????*/

    ????@Basic

    ????@Column(name = "login_time")

    ????private Timestamp loginTime;

    ????/**

    ?????* 手機(jī)號(hào)碼:[0,11]用戶的手機(jī)號(hào)碼,用于找回密碼時(shí)或登錄時(shí)

    ?????*/

    ????@Basic

    ????@Column(name = "phone")

    ????private String phone;

    ????/**

    ?????* 手機(jī)認(rèn)證:[0,1](0未認(rèn)證|1審核中|2已認(rèn)證)

    ?????*/

    ????@Basic

    ????@Column(name = "phone_state")

    ????private Integer phoneState;

    ????/**

    ?????* 用戶名:[0,16]用戶登錄時(shí)所用的賬戶名稱

    ?????*/

    ????@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]用戶的郵箱,用于找回密碼時(shí)或登錄時(shí)

    ?????*/

    ????@Basic

    ????@Column(name = "email")

    ????private String email;

    ????/**

    ?????* 郵箱認(rèn)證:[0,1](0未認(rèn)證|1審核中|2已認(rèn)證)

    ?????*/

    ????@Basic

    ????@Column(name = "email_state")

    ????private Integer emailState;

    ????/**

    ?????* 頭像地址:[0,255]

    ?????*/

    ????@Basic

    ????@Column(name = "avatar")

    ????private String avatar;

    ????/**

    ?????* 創(chuàng)建時(shí)間:

    ?????*/

    ????@Basic

    ????@Column(name = "create_time")

    ????@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

    ????private Timestamp createTime;

    ????@Basic

    ????@Transient

    ????private String code;

    }

  • 登錄模塊的實(shí)現(xiàn)
  • 主要由兩部分組成,登錄前的登錄界面以及登錄后的用戶功能界面。登錄界面,要求用戶輸入用戶名和密碼,當(dāng)用戶名和密碼其中一個(gè)輸入為空時(shí),給出提示“用戶名,密碼不能為空”。獲取用戶名和密碼后到數(shù)據(jù)庫(kù)中查找,如果用戶名存在,以及對(duì)應(yīng)的密碼正確,則登錄成功,否則登錄失敗。登錄失敗后給出提示,并把焦點(diǎn)停在文本框中。登錄成功后將該次會(huì)話的全局變量username設(shè)置為用戶名。登錄成功后進(jìn)入會(huì)員的功能模塊,主要有會(huì)員基本信息修改,已經(jīng)發(fā)布電影信息管理,發(fā)布信息,和退出功能。退出功能是清除全局變量username的值,并跳回到首頁(yè)。

    登錄流程圖如下圖所示。

    圖5-4登錄流程圖

    用戶登錄界面如下圖所示。

    ?

    圖5-5用戶登錄界面

    用戶登錄的關(guān)鍵代碼如下:

    /**

    ?????* 登錄

    ?????* @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, "賬號(hào)或密碼不能為空");

    ????????}

    ????????if (resultList == null || password == null) {

    ????????????return error(30000, "賬號(hào)或密碼不能為空");

    ????????}

    ????????//判斷是否有這個(gè)用戶

    ????????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("已通過(guò)")){

    ????????????????return error(30000,"該用戶審核未通過(guò)");

    ????????????}

    ????????}

    ????????//查詢用戶狀態(tài)

    ????????if (byUsername.getState()!=1){

    ????????????return error(30000,"用戶非可用狀態(tài),不能登錄");

    ????????}

    ????????String md5password = service.encryption(password);

    ????????if (byUsername.getPassword().equals(md5password)) {

    ????????????// 存儲(chǔ)Token到數(shù)據(jù)庫(kù)

    ????????????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, "賬號(hào)或密碼不正確");

    ????????}

    }

  • 用戶資料修改模塊的實(shí)現(xiàn)
  • 用戶登錄/注冊(cè)成功之后可以修改自己的基本信息。修改頁(yè)面的表單中每一個(gè)input的name值都要與實(shí)體類中的參數(shù)相匹配,在用戶點(diǎn)擊修改頁(yè)面的時(shí)候,如果改后用戶名與數(shù)據(jù)庫(kù)里面重復(fù)了,頁(yè)面會(huì)提示該用戶名已經(jīng)存在了,否則通過(guò)Id來(lái)查詢用戶,并將用戶的信息修改為表單提交的數(shù)據(jù)。

  • 評(píng)論模塊的實(shí)現(xiàn)
  • 用戶便可以對(duì)電影做出評(píng)論。點(diǎn)擊按鈕之后會(huì)跳轉(zhuǎn)至評(píng)論填寫頁(yè)面,填寫評(píng)論提交之后,后臺(tái)通過(guò)PinglunController的publish方法將相關(guān)信息保存到數(shù)據(jù)庫(kù)系統(tǒng)。

    評(píng)論添加流程圖如下圖所示。

    圖5-10評(píng)論添加流程圖

    評(píng)論添加界面如下圖所示。

    ?

    圖5-11評(píng)論添加界面

    評(píng)論添加關(guān)鍵代碼為:

    @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();

    ????}

  • 購(gòu)票中心模塊的實(shí)現(xiàn)
  • 購(gòu)票功能需要考慮高并發(fā),防止出現(xiàn)電影重復(fù)購(gòu)票、電影狀態(tài)顯示出錯(cuò)等情況,特對(duì)電影這一共享數(shù)據(jù)增加鎖機(jī)制。在樂(lè)觀鎖、悲觀鎖以及線程鎖中,綜合考慮性能效率和錯(cuò)誤的可接受性選擇了樂(lè)觀鎖機(jī)制。樂(lè)觀鎖的實(shí)現(xiàn)方式是使用版本標(biāo)識(shí)來(lái)確定讀到的數(shù)據(jù)與提交時(shí)的數(shù)據(jù)是否一致,提交后修改版本標(biāo)識(shí),不一致時(shí)可以采取丟棄和再次嘗試的策略。在數(shù)據(jù)庫(kù)電影表(對(duì)應(yīng)電影實(shí)體)設(shè)計(jì)中增加了version字段,每次數(shù)據(jù)提交時(shí)(更改電影狀態(tài))會(huì)判斷version是否匹配,若不匹配停止本次提交,若匹配則提交成功并增加version的值。

    購(gòu)票功能整體流程:用戶瀏覽電影信息時(shí),同時(shí)會(huì)顯示電影的狀態(tài),系統(tǒng)會(huì)在其顯示詳細(xì)信息的頁(yè)面時(shí)便會(huì)判斷電影的狀態(tài),若電影狀態(tài)為可購(gòu)票,則會(huì)顯示購(gòu)票的鏈接按鈕。在用戶點(diǎn)擊購(gòu)票按鈕時(shí),會(huì)先通過(guò)攔截器判斷用戶是否登錄,若未登錄,會(huì)跳轉(zhuǎn)至登錄頁(yè)面,提示用戶先登錄,若為登錄用戶就會(huì)跳轉(zhuǎn)至填寫購(gòu)票信息的頁(yè)面,填寫好購(gòu)票信息之后,點(diǎn)擊提交按鈕,購(gòu)票成功之后返回提示信息,告知用戶購(gòu)票成功。

    購(gòu)票中心流程圖如下圖所示。

    ?

    圖5-12購(gòu)票中心流程圖

    購(gòu)票中心界面如下圖所示。

    ?

    圖5-13購(gòu)票中心界面

    購(gòu)票中心管理關(guān)鍵代碼為:

    @PostMapping("/add")

    ????@Transactional

    ????public Map<String, Object> add(HttpServletRequest request) throws IOException {

    ????????service.insert(service.readBody(request.getReader()));

    ????????return success(1);

    ????}

    ????@Transactional

    ????public Map<String, Object> addMap(Map<String,Object> map){

    ????????service.insert(map);

    ????????return success(1);

    }

    ????public Map<String,Object> readBody(BufferedReader reader){

    ????????BufferedReader br = null;

    ????????StringBuilder sb = new StringBuilder("");

    ????????try{

    ????????????br = reader;

    ????????????String str;

    ????????????while ((str = br.readLine()) != null){

    ????????????????sb.append(str);

    ????????????}

    ????????????br.close();

    ????????????String json = sb.toString();

    ????????????return JSONObject.parseObject(json, Map.class);

    ????????}catch (IOException e){

    ????????????e.printStackTrace();

    ????????}finally{

    ????????????if (null != br){

    ????????????????try{

    ????????????????????br.close();

    ????????????????}catch (IOException e){

    ????????????????????e.printStackTrace();

    ????????????????}

    ????????????}

    ????????}

    ????????return null;

    }

    ????public void insert(Map<String,Object> body){

    ????????StringBuffer sql = new StringBuffer("INSERT INTO ");

    ????????sql.append("`").append(table).append("`").append(" (");

    ????????for (Map.Entry<String,Object> entry:body.entrySet()){

    ????????????sql.append("`"+humpToLine(entry.getKey())+"`").append(",");

    ????????}

    ????????sql.deleteCharAt(sql.length()-1);

    ????????sql.append(") VALUES (");

    ????????for (Map.Entry<String,Object> entry:body.entrySet()){

    ????????????Object value = entry.getValue();

    ????????????if (value instanceof String){

    ????????????????sql.append("'").append(entry.getValue()).append("'").append(",");

    ????????????}else {

    ????????????????sql.append(entry.getValue()).append(",");

    ????????????}

    ????????}

    ????????sql.deleteCharAt(sql.length() - 1);

    ????????sql.append(")");

    ????????log.info("[{}] - 插入操作:{}",table,sql);

    ????????Query query = runCountSql(sql.toString());

    ????????query.executeUpdate();

    ????}

  • 退票記錄模塊的實(shí)現(xiàn)
  • 退票功能整體流程:用戶瀏覽退票記錄時(shí),同時(shí)會(huì)顯示退票記錄的狀態(tài),系統(tǒng)會(huì)在其顯示詳細(xì)信息的頁(yè)面時(shí)便會(huì)判斷退票記錄的狀態(tài),若退票記錄狀態(tài)為可退票,則會(huì)顯示退票的鏈接按鈕。在用戶點(diǎn)擊退票按鈕時(shí),會(huì)先通過(guò)攔截器判斷用戶是否登錄,若未登錄,會(huì)跳轉(zhuǎn)至登錄頁(yè)面,提示用戶先登錄,若為登錄用戶就會(huì)跳轉(zhuǎn)至填寫退票信息的頁(yè)面,填寫好退票信息之后,點(diǎn)擊提交按鈕,退票成功之后返回提示信息,告知用戶退票成功。

    退票記錄流程圖如下圖所示。

    ?

    圖5-12退票記錄流程圖

    退票記錄界面如下圖所示。

    ?

    圖5-15退票記錄界面

    退票添加關(guān)鍵代碼為:

    @PostMapping("/upload")

    ????public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {

    ????????log.info("進(jìn)入方法");

    ????????if (file.isEmpty()) {

    ????????????return error(30000, "沒(méi)有選擇文件");

    ????????}

    ????????try {

    ????????????//判斷有沒(méi)路徑,沒(méi)有則創(chuàng)建

    ????????????String filePath = System.getProperty("user.dir") + "\\target\\classes\\static\\upload\\";

    ????????????File targetDir = new File(filePath);

    ????????????if (!targetDir.exists() && !targetDir.isDirectory()) {

    ????????????????if (targetDir.mkdirs()) {

    ????????????????????log.info("創(chuàng)建目錄成功");

    ????????????????} else {

    ????????????????????log.error("創(chuàng)建目錄失敗");

    ????????????????}

    ????????????}

    ????????????String fileName = file.getOriginalFilename();

    ????????????File dest = new File(filePath + fileName);

    ????????????log.info("文件路徑:{}", dest.getPath());

    ????????????log.info("文件名:{}", dest.getName());

    ????????????file.transferTo(dest);

    ????????????JSONObject jsonObject = new JSONObject();

    ????????????jsonObject.put("url", "/api/upload/" + fileName);

    ????????????return success(jsonObject);

    ????????} catch (IOException e) {

    ????????????log.info("上傳失敗:{}", e.getMessage());

    ????????}

    ????????return error(30000, "上傳失敗");

    }

  • 影院信息管理模塊的實(shí)現(xiàn)
  • 此頁(yè)面的關(guān)鍵是編寫影院信息,包括影院編號(hào),名稱,詳情等。單擊提交按鈕以完成信息的添加。如果未寫入完整的影院信息,例如,如果未寫入影院編號(hào),系統(tǒng)將給出相應(yīng)的錯(cuò)誤提示,并且無(wú)法成功輸入。數(shù)據(jù)以概念的形式以onsubmit =“return checkForm()”的形式寫入以進(jìn)行檢查,checkForm()函數(shù)是一種用于寫入數(shù)據(jù)的不同類型的校對(duì)方法,是不是為空也是經(jīng)過(guò)form表單中的οnsubmit=”return checkForm()來(lái)檢查。

    管理員點(diǎn)擊左側(cè)菜單“影院信息管理”,頁(yè)面跳轉(zhuǎn)到影院信息管理外觀,調(diào)用后臺(tái)影院查詢所有影院信息。并將信息密封到數(shù)據(jù)集合List,綁定到請(qǐng)求對(duì)象,然后頁(yè)面跳轉(zhuǎn)到相應(yīng)的aspx界面,顯示出影院信息,單擊刪除按鈕完成影院信息的刪除。

    影院管理流程圖如下圖所示。

    ?

    圖5-17影院管理流程圖

    影院添加界面如下圖所示。

    ?

    圖5-18影院添加界面

    影院管理界面如下圖所示。

    ?

    圖5-19影院管理界面

  • 影片管理模塊的實(shí)現(xiàn)
  • 根據(jù)需求,需要對(duì)影片進(jìn)行添加、刪除或修改詳情信息。刪除或修改影片時(shí),系統(tǒng)根據(jù)影片的狀態(tài)判定為可刪除狀態(tài)下,才會(huì)給出刪除和修改鏈接,點(diǎn)擊刪除鏈接按鈕時(shí),請(qǐng)求到達(dá)后臺(tái),還會(huì)先查詢影片狀態(tài)再次做出判定能否刪除。點(diǎn)擊修改鏈接按鈕時(shí),會(huì)跳轉(zhuǎn)到修改信息的頁(yè)面,重新填寫好數(shù)據(jù)后,數(shù)據(jù)提交到后臺(tái)會(huì)對(duì)數(shù)據(jù)庫(kù)中相應(yīng)的記錄做出修改。

    添加影片時(shí),會(huì)給出數(shù)據(jù)填寫的頁(yè)面,該頁(yè)面根據(jù)填寫好的影片編號(hào)同樣會(huì)事先發(fā)送Ajax請(qǐng)求查詢編號(hào)是否已存在,數(shù)據(jù)填寫好之后提交到后臺(tái),會(huì)調(diào)用相關(guān)服務(wù)在數(shù)據(jù)庫(kù)中插入記錄。

    影片管理流程圖如下圖所示。

    ?

    圖5-20影片管理流程圖

    影片信息管理頁(yè)面設(shè)計(jì)效果如下圖所示。

    ?

    圖5-21影片信息管理界面

  • 系統(tǒng)測(cè)試
  • 測(cè)試目的
  • 對(duì)任何系統(tǒng)而言,測(cè)試都是必不可少的環(huán)節(jié),測(cè)試可以發(fā)現(xiàn)系統(tǒng)存在的很多問(wèn)題,所有的軟件上線之前,都應(yīng)該進(jìn)行充足的測(cè)試之后才能保證上線后不會(huì)Bug頻發(fā),或者是功能不滿足需求等問(wèn)題的發(fā)生。下面分別從單元測(cè)試,功能測(cè)試和用例測(cè)試來(lái)對(duì)系統(tǒng)進(jìn)行測(cè)試以保證系統(tǒng)的穩(wěn)定性和可靠性。

  • 功能測(cè)試
  • 下表是系統(tǒng)登錄功能測(cè)試用例,檢測(cè)了用戶名和密碼的不同的輸入情況,觀察系統(tǒng)的響應(yīng)情況。得出該功能達(dá)到了設(shè)計(jì)目標(biāo)。

    表6-1 系統(tǒng)登錄功能測(cè)試用例

    功能描述

    用于系統(tǒng)登錄

    測(cè)試目的

    檢測(cè)登錄時(shí)的合法性檢查

    測(cè)試數(shù)據(jù)以及操作

    預(yù)期結(jié)果

    實(shí)際結(jié)果

    輸入的用戶名和密碼帶有非法字符

    提示用戶名或者密碼錯(cuò)誤

    與預(yù)期結(jié)果一致

    輸入的用戶名或者密碼為空

    提示用戶名或者密碼錯(cuò)誤

    與預(yù)期結(jié)果一致

    輸入的用戶名和密碼不存在

    提示用戶名或者密碼錯(cuò)誤

    與預(yù)期結(jié)果一致

    輸入正確的用戶名和密碼

    登錄成功

    與預(yù)期結(jié)果一致

    下表是注冊(cè)功能測(cè)試用例,檢測(cè)了各種數(shù)據(jù)的輸入情況,觀察系統(tǒng)的響應(yīng)情況。得出該功能達(dá)到了設(shè)計(jì)目標(biāo)。

    表6-2 注冊(cè)功能測(cè)試用例

    功能描述

    用于用戶注冊(cè)

    測(cè)試目的

    檢測(cè)用戶注冊(cè)時(shí)的合法性檢查

    測(cè)試數(shù)據(jù)以及操作

    預(yù)期結(jié)果

    實(shí)際結(jié)果

    輸入的手機(jī)號(hào)不合法

    提示請(qǐng)輸入正確的手機(jī)號(hào)碼

    與預(yù)期結(jié)果一致

    輸入的字段為空

    提示必填項(xiàng)不能為空

    與預(yù)期結(jié)果一致

    輸入的密碼少于6位

    提示密碼必須為6-12位

    與預(yù)期結(jié)果一致

    輸入的密碼大于12位

    提示密碼必須為6-12位

    與預(yù)期結(jié)果一致

    下表是影院管理功能的測(cè)試用例,檢測(cè)了影院管理中對(duì)影院信息的增加,刪除,修改,查詢操作是否成功運(yùn)行。觀察系統(tǒng)的響應(yīng)情況,得出該功能也達(dá)到了設(shè)計(jì)目標(biāo),系統(tǒng)運(yùn)行正確。

    前置條件;用戶登錄系統(tǒng)。

    表6-3 影院管理的測(cè)試用例

    功能描述

    用于影院管理

    測(cè)試目的

    檢測(cè)影院管理時(shí)的各種操作的運(yùn)行情況

    測(cè)試數(shù)據(jù)以及操作

    預(yù)期結(jié)果

    實(shí)際結(jié)果

    點(diǎn)擊添加影院,必填項(xiàng)合法輸入,點(diǎn)擊保存

    提示添加成功

    與預(yù)期結(jié)果一致

    點(diǎn)擊添加影院,必填項(xiàng)輸入不合法,點(diǎn)擊保存

    提示必填項(xiàng)不能為空

    與預(yù)期結(jié)果一致

    點(diǎn)擊修改影院,必填項(xiàng)修改為空,點(diǎn)擊保存

    提示必填項(xiàng)不能為空

    與預(yù)期結(jié)果一致

    點(diǎn)擊修改影院,必填項(xiàng)輸入不合法,點(diǎn)擊保存

    提示必填項(xiàng)不能為空

    與預(yù)期結(jié)果一致

    點(diǎn)擊刪除影院,選擇影院刪除

    提示刪除成功

    與預(yù)期結(jié)果一致

    點(diǎn)擊搜索影院,輸入存在的影院名

    查找出影院

    與預(yù)期結(jié)果一致

    點(diǎn)擊搜索影院,輸入不存在的影院名

    不顯示影院

    與預(yù)期結(jié)果一致

    下表是購(gòu)票中心管理功能的測(cè)試用例,檢測(cè)了購(gòu)票中心管理中對(duì)購(gòu)票中心信息的增加,刪除,修改,查詢操作是否成功運(yùn)行。觀察系統(tǒng)的響應(yīng)情況,得出該功能也達(dá)到了設(shè)計(jì)目標(biāo),系統(tǒng)運(yùn)行正確。

    前置條件;用戶登錄系統(tǒng)。

    表6-4 購(gòu)票中心管理的測(cè)試用例

    功能描述

    用于購(gòu)票中心管理

    測(cè)試目的

    檢測(cè)購(gòu)票中心管理時(shí)的各種操作的運(yùn)行情況

    測(cè)試數(shù)據(jù)以及操作

    預(yù)期結(jié)果

    實(shí)際結(jié)果

    點(diǎn)擊添加購(gòu)票中心,必填項(xiàng)合法輸入,點(diǎn)擊保存

    提示添加成功

    與預(yù)期結(jié)果一致

    點(diǎn)擊添加購(gòu)票中心,必填項(xiàng)輸入不合法,點(diǎn)擊保存

    提示必填項(xiàng)不能為空

    與預(yù)期結(jié)果一致

    點(diǎn)擊修改購(gòu)票中心,必填項(xiàng)修改為空,點(diǎn)擊保存

    提示必填項(xiàng)不能為空

    與預(yù)期結(jié)果一致

    點(diǎn)擊修改購(gòu)票中心,必填項(xiàng)輸入不合法,點(diǎn)擊保存

    提示必填項(xiàng)不能為空

    與預(yù)期結(jié)果一致

    點(diǎn)擊刪除購(gòu)票中心,選擇購(gòu)票中心刪除

    提示刪除成功

    與預(yù)期結(jié)果一致

    點(diǎn)擊搜索購(gòu)票中心,輸入存在的購(gòu)票中心名

    查找出購(gòu)票中心

    與預(yù)期結(jié)果一致

    點(diǎn)擊搜索購(gòu)票中心,輸入不存在的購(gòu)票中心名

    不顯示購(gòu)票中心

    與預(yù)期結(jié)果一致

    下表是退票記錄管理功能的測(cè)試用例,檢測(cè)了退票記錄管理中退票記錄單的操作是否成功運(yùn)行。觀察系統(tǒng)的響應(yīng)情況,得出該功能也達(dá)到了設(shè)計(jì)目標(biāo),系統(tǒng)運(yùn)行正確。

    前置條件;用戶登錄系統(tǒng)。

    表6-5 退票記錄管理的測(cè)試用例

    功能描述

    用于退票記錄管理

    測(cè)試目的

    檢測(cè)退票記錄管理時(shí)各種操作的情況

    測(cè)試數(shù)據(jù)以及操作

    預(yù)期結(jié)果

    實(shí)際結(jié)果

    未選擇影院,點(diǎn)擊提交

    提示請(qǐng)選擇影院

    與預(yù)期結(jié)果一致

    未輸入數(shù)量,點(diǎn)擊提交

    提示請(qǐng)輸入數(shù)量

    與預(yù)期結(jié)果一致

    未輸入場(chǎng)次,點(diǎn)擊提交

    提示請(qǐng)輸入場(chǎng)次

    與預(yù)期結(jié)果一致

  • 性能測(cè)試
  • 使用阿里云PTS(Performance Testing Service)性能測(cè)試服務(wù)對(duì)線上系統(tǒng)進(jìn)行壓力測(cè)試。線上服務(wù)器環(huán)境為:1核心CPU,1G內(nèi)存,1Mbps公網(wǎng)帶寬,Centos7.0操作系統(tǒng)。

    壓測(cè)過(guò)程中使用了2臺(tái)并發(fā)機(jī)器,每臺(tái)機(jī)器20個(gè)用戶并發(fā),對(duì)系統(tǒng)主頁(yè),登錄,數(shù)據(jù)查詢和數(shù)據(jù)維護(hù)等模塊進(jìn)行并發(fā)訪問(wèn),測(cè)試結(jié)果是有40個(gè)用戶并發(fā)時(shí),數(shù)據(jù)管理相關(guān)頁(yè)面的響應(yīng)時(shí)間甚至達(dá)到了7s,通過(guò)查看服務(wù)器出網(wǎng)流量發(fā)現(xiàn)已經(jīng)達(dá)到1381kb/s,可以看出服務(wù)器的帶寬已經(jīng)達(dá)到峰值,如果系統(tǒng)使用5Mbps的帶寬,系統(tǒng)的響應(yīng)時(shí)間和TPS將會(huì)大大增加。在整個(gè)測(cè)試的過(guò)程中,CPU的使用率占用僅8%,也提現(xiàn)出帶寬瓶頸對(duì)系統(tǒng)的影響非常嚴(yán)重。

  • 總結(jié)與展望
  • 隨著計(jì)算機(jī)互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,各行各業(yè)都已經(jīng)實(shí)現(xiàn)采用計(jì)算機(jī)相關(guān)技術(shù)對(duì)日益放大的數(shù)據(jù)進(jìn)行管理。該課題是電影院售票與管理系統(tǒng)為核心展開的,主要是為了實(shí)現(xiàn)電影院購(gòu)票信息化管理和用戶退票的需求。

    電影院售票與管理系統(tǒng)的開發(fā)是以Java編程語(yǔ)言作為基礎(chǔ),在VisualStudio平臺(tái)上完成編碼工作,系統(tǒng)整體為B/S架構(gòu),數(shù)據(jù)庫(kù)系統(tǒng)使用mysql。文中詳細(xì)分析了電影院售票與管理系統(tǒng)的研究背景、研究目的和意義、開發(fā)工具和相關(guān)技術(shù)以及系統(tǒng)需求、系統(tǒng)詳細(xì)設(shè)計(jì)和系統(tǒng)測(cè)試等等一系列內(nèi)容。系統(tǒng)實(shí)現(xiàn)了電影院售票與管理系統(tǒng)所需的一些基本功能,并通過(guò)測(cè)試對(duì)這些實(shí)現(xiàn)的功能進(jìn)行了完善,進(jìn)而提高了系統(tǒng)整體的實(shí)用性。整個(gè)系統(tǒng)的開發(fā)過(guò)程中大量使用了Java相關(guān)的知識(shí)以及前端開發(fā)使用的html和javascript等,同時(shí)涉及到了很多開源框架和組件,例如后臺(tái)系統(tǒng)中運(yùn)用的MVC架構(gòu)、Freemarker模板引擎等,前端運(yùn)用的UI框架等。

    系統(tǒng)投入運(yùn)行時(shí),各功能均運(yùn)行正常。系統(tǒng)的每個(gè)界面的操作符合常規(guī)邏輯,對(duì)使用者來(lái)說(shuō)操作簡(jiǎn)單,界面友好。整個(gè)系統(tǒng)的各個(gè)功能設(shè)計(jì)合理,體現(xiàn)了人性化。

    但是由于自己在系統(tǒng)開發(fā)過(guò)程中對(duì)一些用到的相關(guān)知識(shí)和技術(shù)掌握不夠牢固,再加上自身開發(fā)經(jīng)驗(yàn)欠缺,因此系統(tǒng)在有些方面的功能還不夠完善,考慮的不夠全面,因此整個(gè)系統(tǒng)還有待日后逐步完善。

    參考文獻(xiàn)

    [1]王曼維,楊荻,李巖,及松潔.基于SpringBoot框架的智慧醫(yī)療問(wèn)診系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)醫(yī)學(xué)裝備,2022,19(03):133-136.

    [2]常兵,薛楨一,陳德徐,孫誠(chéng)彬,阮瑩瑩. 一種基于JAVA技術(shù)實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)化導(dǎo)入導(dǎo)出的方法[P]. 江蘇省:CN114063989A,2022-02-18.

    [3]劉在英,楊磊. 一種基于SpringBoot框架的企業(yè)進(jìn)存銷系統(tǒng)的設(shè)計(jì)方法[P]. 山東省:CN114003204A,2022-02-01.

    [4]熊柏祥.基于Springboot和Vue框架的考試資源服務(wù)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].信息與電腦(理論版),2022,34(01):97-99+103.

    [5]熊柏祥.基于Springboot和Vue框架的考試資源服務(wù)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].信息與電腦(理論版),2022,34(01):97-99+103.

    [6]汪杰,萬(wàn)振華,王頡,董燕,李華,吳鐘良,洪二穩(wěn). JAVA開源組件的漏洞檢測(cè)方法、裝置及存儲(chǔ)介質(zhì)[P]. 廣東省:CN112868008B,2021-12-24.

    [7]林飛,胡鳳嬌,楊小擔(dān),易永波,古元,毛華陽(yáng). 一種基于Java反射技術(shù)實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)的方法[P]. 北京市:CN113805863A,2021-12-17.

    [8]曹明昊. 基于SpringBoot和Vue框架的邯鄲市現(xiàn)代農(nóng)業(yè)園區(qū)信息管理系統(tǒng)的研發(fā)[D].河北工程大學(xué),2021.

    [9]單樹倩,任佳勛.基于SpringBoot和Vue框架的數(shù)據(jù)庫(kù)原理網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2021,17(30):40-41+50.

    [10]喻佳,吳丹新.基于SpringBoot的Web快速開發(fā)框架[J].電腦編程技巧與維護(hù),2021(09):31-33.

    [11]向福川,方玉,劉浪,唐振云,練瑤.基于SpringBoot+Vue框架的協(xié)同育才系統(tǒng)設(shè)計(jì)與開發(fā)[J].現(xiàn)代信息科技,2021,5(14):5-7+12.DOI:10.19850/j.cnki.2096-4706.2021.14.002.

    [12]劉欣,李亮亮,牛聰. 基于Vue和SpringBoot框架的流域監(jiān)管平臺(tái)的研究和應(yīng)用[A]. 《中國(guó)防汛抗旱》雜志社、中國(guó)水利學(xué)會(huì)減災(zāi)專業(yè)委員會(huì)、水利部防洪抗旱減災(zāi)工程技術(shù)研究中心(中國(guó)水利水電科學(xué)研究院防洪抗旱減災(zāi)研究中心).第十一屆防汛抗旱信息化論壇論文集[C].《中國(guó)防汛抗旱》雜志社、中國(guó)水利學(xué)會(huì)減災(zāi)專業(yè)委員會(huì)、水利部防洪抗旱減災(zāi)工程技術(shù)研究中心(中國(guó)水利水電科學(xué)研究院防洪抗旱減災(zāi)研究中心):中國(guó)水利學(xué)會(huì)減災(zāi)專業(yè)委員會(huì),2021:5.

    [13]Qu Xiaona. Application of Java Technology in Dynamic Web Database Technology[J]. Journal of Physics: Conference Series,2021,1744(4).

    [14]Tian Ming Huang. Design and Implementation of App System for Legal Consulting Based on JAVA Technology[J]. Procedia Computer Science,2020,166(C).

    [15]Xuchun Chen. Design and Implementation of University Art Education Management System Based on JAVA Technology[J]. International Journal of Emerging Technologies in Learning (iJET),2018,13(10).

    [16]朱祥東,楊保華.在線售票系統(tǒng)的設(shè)計(jì)與搭建[J].價(jià)值工程,2018,37(27):244-245.

    致謝

    本次設(shè)計(jì)歷時(shí)3個(gè)月。在這個(gè)畢業(yè)設(shè)計(jì)中,它離不開指導(dǎo)教師的指導(dǎo),使事情基本順利。指導(dǎo)老師無(wú)論是在畢業(yè)設(shè)計(jì)歷經(jīng)中,還是在論文做完中都給了了我特別大的助益。另1個(gè)方面,教師認(rèn)真負(fù)責(zé)的工作姿態(tài),謹(jǐn)慎的教學(xué)精神厚重的理論水準(zhǔn)都使我獲益匪淺。他勤懇謹(jǐn)慎的教學(xué)育人學(xué)習(xí)姿態(tài)也給我留下了特別特別深的感覺(jué)。我從老師那里學(xué)到了很多東西。在理論和實(shí)踐中,我的技能得到了特別大的提高。在此,特向教師表示由衷的感激。

    經(jīng)過(guò)對(duì)該畢業(yè)設(shè)計(jì)的全部研究和開發(fā),我的系統(tǒng)研發(fā)經(jīng)歷了從需求分析到實(shí)現(xiàn)詳細(xì)功能,再到最終測(cè)試和維護(hù)的特殊進(jìn)展。讓我對(duì)系統(tǒng)研發(fā)有了更深層次的認(rèn)識(shí)。如今我的動(dòng)手本領(lǐng)單獨(dú)處理疑惑的本領(lǐng)也獲取到了特別大的演練學(xué)習(xí)增多,這是這次畢業(yè)設(shè)計(jì)最好的收獲。

    最后,在整個(gè)系統(tǒng)開發(fā)過(guò)程中,我周圍的同學(xué)和朋友給了我很多意見,所以我很快就確認(rèn)了系統(tǒng)的商業(yè)思想。在次,我由衷的向他們表示感激。

    免費(fèi)領(lǐng)取項(xiàng)目源碼,請(qǐng)關(guān)注點(diǎn)贊+私聊

    總結(jié)

    以上是生活随笔為你收集整理的(附源码)springboot电影院售票与管理系统 毕业设计011449的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。