🙊作者簡介:多年一線開發工作經驗,原創團隊,分享技術代碼幫助學生學習,獨立完成自己的網站項目。
- 代碼可以查看文章末尾??聯系方式獲取,記得注明來意哦~🌹
- 贈送計算機畢業設計600個選題excel文件,幫助大學選題。
- 贈送開題報告模板,幫助書寫開題報告。
作者完整代碼目錄供你選擇:
- 《Springboot網站項目》400套
- 《ssm網站項目》800套
- 《小程序項目》300套
- 《App項目》500套
- 《Python網站項目》600套
??文章末尾可以獲取聯系方式,需要源碼或者演示視頻可以聯系??
?感興趣大家可以點點關注收藏,后續更新更多項目資料。?
項目展示
???????????
互聯網發展至今,無論是其理論還是技術都已經成熟,而且它廣泛參與在社會中的方方面面。它讓信息都可以通過網絡傳播,搭配信息管理工具可以很好地為人們提供服務。針對信息管理混亂,出錯率高,信息安全性差,勞動強度大,費時費力等問題,采用數字化農家樂管理平臺可以有效管理,使信息管理能夠更加科學和規范。
數字化農家樂管理平臺在Eclipse環境中,使用Java語言進行編碼,使用Mysql創建數據表保存本系統產生的數據。系統可以提供信息顯示和相應服務
總之,數字化農家樂管理平臺集中管理信息,有著保密性強,效率高,存儲空間大,成本低等諸多優點。它可以降低信息管理成本,實現信息管理計算機化。
關鍵詞:數字化農家樂管理平臺;Java語言;Mysql
第1章?緒論
1.1?課題背景
互聯網發展至今,無論是其理論還是技術都已經成熟,而且它廣泛參與在社會中的方方面面。它讓信息都可以通過網絡傳播,搭配信息管理工具可以很好地為人們提供服務。所以各行業,尤其是規模較大的企業和學校等都開始借助互聯網和軟件工具管理信息,傳播信息,共享信息等等,以此可以增強自身實力,提高在同行業當中的競爭能力,并從各種激烈的競爭中獲取發展的機會。針對客房信息信息管理混亂,出錯率高,信息安全性差,勞動強度大,費時費力等問題,經過分析和考慮,在目前的情況下,可以引進一款數字化農家樂管理平臺這樣的現代化管理工具,這個工具就是解決上述問題的最好的解決方案。它不僅可以實時完成信息處理,還縮短客房信息信息管理流程,使其系統化和規范化。同時還可以減少工作量,節約客房信息信息管理需要的人力和資金。所以數字化農家樂管理平臺是信息管理環節中不可缺少的工具,它對管理者來說非常重要。
1.2 課題意義?
現如今,信息種類變得越來越多,信息的容量也變得越來越大,這就是信息時代的標志。近些年,計算機科學發展得也越來越快,而且軟件開發技術也越來越成熟,因此,在生活中的各個領域,只要存在信息管理,幾乎都有計算機的影子,可以說很多行業都采用計算機的方式管理信息。信息計算機化處理相比手工操作,有著保密性強,效率高,存儲空間大,成本低等諸多優點。針對客房信息信息管理,采用數字化農家樂管理平臺可以有效管理,使信息管理能夠更加科學和規范。
總之,在實際中使用數字化農家樂管理平臺,其意義如下:
第一點:數字化農家樂管理平臺的實際運用,可以幫助管理人員在短時間內完成信息處理工作;
第二點:通過系統頁面的合理排版布局,可以更加直觀的展示系統的內容,并且使用者可以隨時閱讀頁面信息,隨時操作系統提供的功能;
第三點:可以實現信息管理計算機化;
第四點:可以降低信息管理成本;
1.3 研究內容
對數字化農家樂管理平臺設計制作,不僅需要技術支撐,也需要大量的理論研究。本文在對數字化農家樂管理平臺進行介紹時,將按照如下內容進行。
第一部分:介紹數字化農家樂管理平臺研究的背景意義,便于用戶了解系統;
第二部分:介紹開發數字化農家樂管理平臺需要搭建的環境,包括技術和工具;
第三部分:介紹用戶對數字化農家樂管理平臺的功能要求,以及對數字化農家樂管理平臺的性能要求等;
第四部分:介紹數據庫的設計方案,以及根據功能要求設計的功能結構;
第五部分:介紹通過編碼最終實現的系統功能運行效果;
第六部分:介紹系統的功能測試,對系統進行綜合檢測,并及時解決系統出現的問題,直至系統運行正常。
第2章?開發環境與技術
數字化農家樂管理平臺的編碼實現需要搭建一定的環境和使用相應的技術,接下來的內容就是對數字化農家樂管理平臺用到的技術和工具進行介紹。
2.1 MYSQL數據庫
本課題所開發的應用程序在數據操作方面是不可預知的,是經常變動的,沒有辦法直接把數據寫在文檔里,這樣不僅僅不安全,也不能實現應用程序的功能。如果要能實現應用程序所需要的數據存儲功能,就避免不了要進行專業數據庫存儲軟件的選擇。基本上應用程序實現的功能不算太復雜,市面上任何一個關系型數據庫軟件都可以實現。參考自己的學習進度和操作習慣來講,Oracle數據庫是適合的,但是所需要的的安裝軟件很大,并且有好多不需要的功能都是開啟的狀態,十分消耗電腦資源,所以沒有選擇Oracle數據庫,而SQL Server數據庫雖然學過,但是安裝的時候因為電腦上可能有其他的軟件存在,經常性的出問題,而安裝問題不好解決就需要重新安裝操作系統,這樣對已經存在的軟件來講又是一種時間上的浪費。只有MySQL數據庫,安裝包小,安裝速度快,操作簡單,哪怕安裝出問題也好解決,不用重裝操作系統,也不影響電腦上運行的其他軟件,消耗資源也少,最重要的是在功能方面完全的符合設計需要,所以最后選擇了MySQL數據庫作為應用軟件開發需要的數據庫。
2.2?vue技術??
在動態網站的興起之初,作為高級編程語言的Java自然不會放棄這個領域的蛋糕。Sun公司推出了Servlet作為輸出動態網站的一種技術標準,雖然不怎么受當時程序員的喜愛,但是當初也沒有太多的選擇,隨后幾個月java語言問世,不考慮性能和效率如何,起碼在書寫網頁所需要的動態代碼塊和靜態代碼塊方面進行了區分,讓書寫效率和可讀效率大大的提升,所以很多Java程序員以及剛入行的初級程序員都選擇了java語言作為自己職業的發展方向,Sun公司為了維護Java語言在高級編程語言上的江湖地位,防止java繼續搶走市場份額占有率,Sun公司聯合Apache基金會研發了一個關于Java動態網頁的一個新型的技術標準,這就是vue技術。vue吸取了java語言在頁面書寫上面的所有優點,但是又背靠Java EE的龐大后臺,又能實現很多通過Java組件就能實現的功能,在vue頁面上可以直接引用那些組件,讓vue更加的強壯豐富。保證了Java技術縱向的可持續發展,并且在動態網站開發領域終于站穩了腳跟,其他java開發人員可以很快的轉移到vue進行開發,不考慮一些特殊組件或者功能的開發,只從動態頁面的開發上來講,完全實現了java程序和vue程序的幾乎無成本的轉換,vue技術就這樣的發展了起來。
2.3 Spring Boot框架
Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。
?SpringBoot基于Spring4.0設計,不僅繼承了Spring框架原有的優秀特性,而且還通過簡化配置來進一步簡化了Spring應用的整個搭建和開發過程。另外SpringBoot通過集成大量的框架使得依賴包的版本沖突,以及引用的不穩定性等問題得到了很好的解決。
SpringBoot框架中還有兩個非常重要的策略:開箱即用和約定優于配置。開箱即用,Outofbox,是指在開發過程中,通過在MAVEN項目的pom文件中添加相關依賴包,然后使用對應注解來代替繁瑣的XML配置文件以管理對象的生命周期。這個特點使得開發人員擺脫了復雜的配置工作以及依賴的管理工作,更加專注于業務邏輯。約定優于配置,Convention over configuration,是一種由SpringBoot本身來配置目標結構,由開發者在結構中添加信息的軟件設計范式。這一特點雖降低了部分靈活性,增加了BUG定位的復雜性,但減少了開發人員需要做出決定的數量,同時減少了大量的XML配置,并且可以將代碼編譯、測試和打包等工作自動化。
SpringBoot應用系統開發模板的基本架構設計從前端到后臺進行說明:前端常使用模板引擎,主要有FreeMarker和Thymeleaf,它們都是用Java語言編寫的,渲染模板并輸出相應文本,使得界面的設計與應用的邏輯分離,同時前端開發還會使用到Bootstrap、AngularJS、JQuery等;在瀏覽器的數據傳輸格式上采用Json,非xml,同時提供RESTfulAPI;SpringMVC框架用于數據到達服務器后處理請求;到數據訪問層主要有Hibernate、MyBatis、JPA等持久層框架;數據庫常用MySQL;開發工具推薦IntelliJIDEA。
第3章?系統分析
面對即將開發的系統,進行提前的分析是必要的。這也是開發流程中必須有的環節。通常分析系統期間,主要涉及的內容包括系統開發可行性問題,對系統功能和性能的分析等問題。
3.1?可行性分析
在正式對需要建設的項目進行投資前,有一個比較關鍵的步驟是不能缺少的,那就是可行性分析。它主要從當前技術,經濟等角度去評估系統的可行性,在投資決策中常常采用這種科學的方法來論證項目。
3.1.1 技術可行性
當前,系統開發的技術已經發展成熟,而且通過計算機網絡可以獲取開發工具的使用方法,以及規范化編寫的模塊化代碼,這些知識可以幫助開發者順利完成本系統的編碼工作。
3.1.2 經濟可行性
本系統開發期間需要配置的軟件環境,可以免費通過開發類官網下載安裝,需要配置的硬件設備也不需要具備很高的性能,通常網吧電腦,或學校計算機機房的電腦都符合要求。因此,從經濟方面考慮,數字化農家樂管理平臺開發可行。
3.1.3 操作可行性
數字化農家樂管理平臺根據用戶使用習慣進行開發,設計的界面具有統一性,并具備優秀的導航功能。所以,只要會簡單操作電腦的人員,可以無壓力操作數字化農家樂管理平臺。
總之,從上述的論證來看,本系統可以開發。
3.2 系統流程
流程圖這樣的工具可以直觀反映出系統內部的操作邏輯,可以幫助用戶更好的理解系統。
3.2.1 操作流程
進入本系統需要訪問者提供驗證信息。驗證合格的訪問者才能獲取訪問資格。其具體的操作流程見下圖。訪問者根據登錄界面設置的信息項如實填寫,待信息通過驗證后,訪問者可以進入指定的頁面享受本系統提供的服務和閱讀本系統的相關信息。
圖3.1?操作流程圖
3.2.2 登錄流程
本系統的登錄模塊,其內部的流程見下圖。主要對訪問本系統的人員提供的驗證信息進行逐個判斷,系統面對錄入錯誤的信息會給出提示,比如,提示賬號不對,或提示密碼不匹配等提示信息。總之,在登錄頁面填寫的所有信息都符合要求,訪問者就登錄成功了。
3.2.3 刪除信息流程
本系統在經常性的使用后,會產生很多失去價值的信息,因此就需要及時清理數據,騰出系統的空間。對這些數據進行清理時,其對應的流程見下圖。先選中要清理的數據,通過反復確認需要清理的數據,避免操作人員誤刪。已經刪除的數據就不會出現在系統里面。
圖3.3?刪除信息流程圖
3.2.4 添加信息流程
本系統主要用于顯示信息,提供服務,其中,數據添加功能就是其中的服務之一,具體流程見下圖。讓操作者在信息添加的頁面錄入數據,待這些數據被提交檢驗合格后,就會在系統指定頁面顯示出來。
圖3.4?添加信息流程圖
3.3 性能需求
進行需求分析,包括了根據用戶實際需求制定功能,也涵蓋了對即將設計的系統進行性能上的需求分析。所以一般分析系統時,一方面要分析系統功能,另一方面也要分析系統的性能。畢竟設計開發出一個好性能的系統可以確保系統的質量可靠。
接下來分析系統的性能,還要從界面友好性,系統的時間特性,系統的可靠性等方面來分析說明。
(1)時間特性要求:系統處理數據都有時間要求,這也是系統的時間特性。通常都會把數據處理的時間進行分析,也會設置用戶請求的響應時間,還有系統在滿負荷運行時可以偏離的范圍數值等都需要提前分析確定。
(2)界面友好性:除了功能上需要考慮用戶需求外,在人機交互界面的設計上,也需要考慮用戶的使用習慣,包括界面的布局,界面基調選擇以及顏色搭配等。盡量做到用戶在接受簡單的培訓之后,可以對系統進行獨立操作。
(3)系統可靠性:對于初學者而言,很容易出現一個問題,就是設計開發的系統,因為人為的誤操作出現崩潰,有些也會導致電腦死機。這樣的現象也說明這種容錯能力低下的系統是不可靠的。完全不能作為生活中處理信息的系統。當下,系統開發要保證可靠性,設計時,把模塊化和結構化的設計理念也考慮進來。如果遇到對時效性要求比較嚴格的系統,也需要采取其它的措施,比如雙機系統,還有磁盤陣列等方式。還有就是一個可靠性的系統,對設備的供電能力也有要求。
第4章?系統設計
一個成功設計的系統在內容上必定是豐富的,在系統外觀或系統功能上必定是對用戶友好的。所以為了提升系統的價值,吸引更多的訪問者訪問系統,以及讓來訪用戶可以花費更多時間停留在系統上,則表明該系統設計得比較專業。
4.1?設計原則
本系統在設計過程中需要依照一定的設計原則進行,目的就是為了讓開發的系統具備高質量,齊全完備的功能,方便簡單的操作,如此才可以最大限度的滿足使用者的要求。系統設計原則除了基本的易操作原則外,還有安全性原則,準確性原則。
第一個設計原則:易操作原則,針對本系統設計的功能要完備齊全,編碼時,設計的各個接口要具備友好性,使用者一旦使用本系統時,要能夠輕松上手,操作本系統處理數據時,要具備便利性。此外,也需要設計一些必要提示,引導使用者操作系統。
第二個設計原則:安全性原則,本系統在登錄模塊要對各個訪問者進行身份驗證,系統會通過訪問者輸入的信息進行判斷,使用提前編寫的安全驗證代碼進行數據比對,引導匹配成功的訪問者進入指定的操作界面。這樣可以避免無關性訪問者竊取系統的數據。
第三個設計原則:準確性原則,為了保證使用者登記的數據是正確的,需要提前設計數據糾錯機制,讓使用者可以通過系統的報錯提示,仔細檢查登記的錯誤信息,并及時糾正錯誤,填寫規范正確的信息。比如設置密碼時,要求密碼的長度不能低于6個字符,且數據類型要求不能全部是數字等都能進行規范。
4.2?功能結構設計
在前面分析的管理員功能的基礎上,進行接下來的設計工作,最終展示設計的管理員結構圖(見下圖)。管理員增刪改查客房信息
4.3?數據庫設計
開發一個系統也需要提前設計數據庫。這里的數據庫是相關數據的集合,存儲在一起的這些數據也是按照一定的組織方式進行的。目前,數據庫能夠服務于多種應用程序,則是源于它存儲方式最佳,具備數據冗余率低的優勢。雖然數據庫為程序提供信息存儲服務,但它與程序之間也可以保持較高的獨立性。總而言之,數據庫經歷了很長一段時間的發展,從最初的不為人知,到現在的人盡皆知,其相關技術也越發成熟,同時也擁有著堅實的理論基礎。
(1)下圖是論壇實體和其具備的屬性。
論壇實體屬性圖
(2)下圖是活動實體和其具備的屬性。
活動實體屬性圖
(3)下圖是美食實體和其具備的屬性。
美食實體屬性圖
(4)下圖是用戶實體和其具備的屬性。
(5)下圖是客房收藏實體和其具備的屬性。
客房收藏實體屬性圖
(6)下圖是公告信息實體和其具備的屬性。
公告信息實體屬性圖
(7)下圖是客房實體和其具備的屬性。
客房實體屬性圖
(8)下圖是客房預定實體和其具備的屬性。
客房預定實體屬性圖
(9)下圖是客房評價實體和其具備的屬性。
客房評價實體屬性圖
(10)下圖是活動報名實體和其具備的屬性。
活動報名實體屬性圖
本數據庫是關系型數據庫,因此對二維表的結構設計也比較關鍵。畢竟二維表格模型就是關系型數據庫中的關系模型。而一些常用的關系模型中的概念也需要了解,才可以對關系模型進行設計。下面就簡單介紹關系,元組,屬性,域,關鍵字等常用概念的含義。
關系:關系就是數據庫中的一張數據表,每張數據表都有命名,也就是每個關系也有名字,那就是數據表名;
元組:元組就是數據表中的一行記錄;
屬性:屬性就是數據表中的字段,也就是數據表中的一列;
域:域就是對數據表中屬性的取值進行限定;
關鍵字:關鍵字就是數據表中的主鍵;
在了解了表結構設計的常用概念后,接下來就需要使用前面繪制的E-R模型完成表結構的設計工作,并在數據庫中創建數據表,并為各個數據表進行命名。以下就對設計的結果通過表格形式進行展示。
表4.1字典表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | dic_code | String | 字段 | 是 |
3 | dic_name | String | 字段名 | 是 |
4 | code_index | Integer | 編碼 | 是 |
5 | index_name | String | 編碼名字 | 是 |
6 | super_id | Integer | 父字段id | 是 |
7 | beizhu | String | 備注 | 是 |
8 | create_time | Date | 創建時間 | 是 |
表4.2論壇表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | forum_name | String | 帖子標題 | 是 |
3 | yonghu_id | Integer | 用戶 | 是 |
4 | users_id | Integer | 管理員 | 是 |
5 | forum_content | String | 發布內容 | 是 |
6 | super_ids | Integer | 父id | 是 |
7 | forum_state_types | Integer | 帖子狀態 | 是 |
8 | insert_time | Date | 發帖時間 | 是 |
9 | update_time | Date | 修改時間 | 是 |
10 | create_time | Date | 創建時間 | 是 |
表4.3活動表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | huodong_name | String | 活動名稱 | 是 |
3 | huodong_photo | String | 活動照片 | 是 |
4 | huodong_types | Integer | 活動類型 | 是 |
5 | huodong_content | String | 活動介紹 | 是 |
6 | huodong_delete | Integer | 邏輯刪除 | 是 |
7 | insert_time | Date | 錄入時間 | 是 |
8 | create_time | Date | 創建時間 | 是 |
表4.4活動報名表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | huodong_yuyue_uuid_number | String | 報名唯一編號 | 是 |
3 | huodong_id | Integer | 活動 | 是 |
4 | yonghu_id | Integer | 用戶 | 是 |
5 | huodong_yuyue_text | String | 報名理由 | 是 |
6 | huodong_yuyue_yesno_types | Integer | 報名狀態 | 是 |
7 | huodong_yuyue_yesno_text | String | 審核回復 | 是 |
8 | insert_time | Date | 活動報名時間 | 是 |
9 | create_time | Date | 創建時間 | 是 |
表4.5美食表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | meishi_name | String | 美食名稱 | 是 |
3 | meishi_photo | String | 美食照片 | 是 |
4 | meishi_types | Integer | 美食類型 | 是 |
5 | meishi_content | String | 美食介紹 | 是 |
6 | meishi_delete | Integer | 邏輯刪除 | 是 |
7 | insert_time | Date | 錄入時間 | 是 |
8 | create_time | Date | 創建時間 | 是 |
表4.6客房表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | minsu_uuid_number | String | 客房編號 | 是 |
3 | minsu_name | String | 客房名稱 | 是 |
4 | minsu_photo | String | 客房照片 | 是 |
5 | minsu_types | Integer | 客房類型 | 是 |
6 | minsu_new_money | BigDecimal | 客房定金 | 是 |
7 | minsu_clicknum | Integer | 點擊次數 | 是 |
8 | minsu_content | String | 客房介紹 | 是 |
9 | shangxia_types | Integer | 是否上架 | 是 |
10 | minsu_delete | Integer | 邏輯刪除 | 是 |
11 | insert_time | Date | 錄入時間 | 是 |
12 | create_time | Date | 創建時間 | 是 |
表4.7客房收藏表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | minsu_id | Integer | 客房 | 是 |
3 | yonghu_id | Integer | 用戶 | 是 |
4 | minsu_collection_types | Integer | 類型 | 是 |
5 | insert_time | Date | 收藏時間 | 是 |
6 | create_time | Date | 創建時間 | 是 |
表4.8客房評價表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | minsu_id | Integer | 客房 | 是 |
3 | yonghu_id | Integer | 用戶 | 是 |
4 | minsu_commentback_text | String | 評價內容 | 是 |
5 | insert_time | Date | 評價時間 | 是 |
6 | reply_text | String | 回復內容 | 是 |
7 | update_time | Date | 回復時間 | 是 |
8 | create_time | Date | 創建時間 | 是 |
表4.9客房預定表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | minsu_order_uuid_number | String | 訂單號 | 是 |
3 | minsu_id | Integer | 客房 | 是 |
4 | yonghu_id | Integer | 用戶 | 是 |
5 | minsu_order_time | Date | 預約時間 | 是 |
6 | minsu_order_true_price | BigDecimal | 實付價格 | 是 |
7 | minsu_order_types | Integer | 訂單類型 | 是 |
8 | minsu_order_payment_types | Integer | 支付類型 | 是 |
9 | insert_time | Date | 訂單創建時間 | 是 |
10 | create_time | Date | 創建時間 | 是 |
表4.10公告信息表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | news_name | String | 公告標題 | 是 |
3 | news_types | Integer | 公告類型 | 是 |
4 | news_photo | String | 公告圖片 | 是 |
5 | insert_time | Date | 添加時間 | 是 |
6 | news_content | String | 公告詳情 | 是 |
7 | create_time | Date | 創建時間 | 是 |
表4.11用戶表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | yonghu_name | String | 用戶姓名 | 是 |
3 | yonghu_photo | String | 用戶頭像 | 是 |
4 | yonghu_id_number | String | 身份證號 | 是 |
5 | yonghu_phone | String | 聯系方式 | 是 |
6 | yonghu_email | String | 電子郵箱 | 是 |
7 | new_money | BigDecimal | 余額 | 是 |
8 | yonghu_delete | Integer | 邏輯刪除 | 是 |
9 | create_time | Date | 創建時間 | 是 |
表4.12管理員表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | username | String | 用戶名 | 是 |
3 | password | String | 密碼 | 是 |
4 | role | String | 角色 | 是 |
5 | addtime | Date | 新增時間 | 是 |
5.1用戶信息管理
如圖5.1顯示的就是用戶信息管理頁面,此頁面提供給管理員的功能有:用戶信息的查詢管理,可以刪除用戶信息、修改用戶信息、新增用戶信息,
還進行了對用戶名稱的模糊查詢的條件
圖5.1 用戶信息管理頁面
5.2 客房信息管理
如圖5.2顯示的就是客房信息管理頁面,此頁面提供給管理員的功能有:查看已發布的客房信息數據,修改客房信息,客房信息作廢,即可刪除,還進行了對客房信息名稱的模糊查詢 客房信息信息的類型查詢等等一些條件。
圖5.2 客房信息管理頁面
5.3美食信息管理
如圖5.3顯示的就是美食信息管理頁面,此頁面提供給管理員的功能有:根據美食信息進行條件查詢,還可以對美食信息進行新增、修改、查詢操作等等。
圖5.3 美食信息管理頁面
5.1公告信息管理
如圖5.4顯示的就是公告信息管理頁面,此頁面提供給管理員的功能有:根據公告信息進行新增、修改、查詢操作等等。
圖5.4 公告信息管理頁面
第6章 系統測試
進入這個環節就代表著系統已經結束了編碼實現功能階段,接下來要做的事情,就是對該系統進行檢測,也就是系統測試,這個環節是很有必要進行的,原因是開發本系統的人員,其自身具備的開發技術以及開發思維是有限的,在面對具有復雜性操作邏輯的系統,都會出現大大小小的錯誤,并且這樣的錯誤還都是不可避免的。通過及時的測試,可以盡早排除程序中的錯誤,這樣也可以減少實際運行中產生的問題,從而真正避免在后期使用中為修復這些問題所付出的高昂代價。及時測試,及時發現問題并解決,也是提高開發過程的效率的一種表現形式。總而言之,在軟件開發生命周期的每個階段都需要加以重視,并做好每個階段需要做的任務,從開始到結尾都需要保證開發軟件的質量。
6.1 功能測試
通過設計一些數據檢驗數字化農家樂管理平臺的功能是否根據預定進行數據輸出,以此檢驗系統功能是否合格。接下來就選取部分功能進行檢測。
6.1.1 登錄功能測試
數字化農家樂管理平臺提供的服務是給規定的用戶使用的,其他無關用戶是無法進入的,登錄功能就是檢驗訪問者是否是符合要求的用戶,及時將不符合要求的用戶拒之門外。以此保證系統安全。這里以管理員身份進行檢測,測試的內容見下表。
表6.1 登錄功能測試表
賬號 | 密碼 | 身份 | 結果 |
guanliyuan | guanliyuan | 管理員 | 提示成功,進入系統后臺 |
user | guanliyuan | 管理員 | 提示失敗,停留在登錄頁面 |
guanliyuan | user | 管理員 | 提示失敗,停留在登錄頁面 |
數字化農家樂管理平臺在面對正確的賬號,不匹配的密碼時,會有相應的反饋,其反饋結果見下圖。
圖6.1 登錄錯誤反饋提示
6.1.2 修改密碼功能測試
這個功能的設置也是出于對系統的保護,讓操作人員的密碼可以一直變化,減少泄露的幾率。測試的數據見下表。通過驗證舊密碼,確認操作者是本人,然后開始對新密碼進行登記。一般修改完密碼后,需要再次登錄。
表6.2 修改密碼功能測試表
舊密碼 | 新密碼 | 密碼修改結果 |
guanliyuan | gly | 成功 |
user | gly | 失敗 |
guanliyuan | 失敗 |
本系統在面對登記錯誤的舊密碼信息時,有相應的反饋提示,見下圖。
圖6.2 舊密碼錯誤提示
6.2 測試結果
經過測試,從數字化農家樂管理平臺功能的角度來看,本系統各個功能在符合用戶要求的情況下,也能保持運行正常。從數字化農家樂管理平臺性能的角度來看,本系統可以保持24小時不間斷運行,而且面對用戶的誤操作行為,有提前設置的錯誤反饋機制應對,另外,本系統界面布局考慮用戶閱讀習慣,可以讓用戶短時間內獲取需要的內容。總之,本系統可以投入生產,幫助用戶解決實際問題,發揮其應用價值。
結 ?論
采用Java+Mysql的方式設計制作的數字化農家樂管理平臺,在功能上可以滿足管理人員對于信息的管理需求;在界面的設計上,盡最大努力用自身的美工知識做到界面美觀簡潔。在操作方面上,讓系統可以方便操作,同時對用戶常見的誤操作行為進行分析總結,并盡力在系統中避免同樣的由于用戶的誤操作所帶來的錯誤現象。
作為畢業設計,分配給本系統的設計與制作時間還是不足的,所以,數字化農家樂管理平臺還有許多需要完善的地方。
第一個就是本系統的編程代碼問題,各個程序文件的代碼存在冗余的地方非常多,導致代碼不夠簡潔,同時對代碼的注釋也比較麻煩。編碼期間,對于很多頁面可以共享的函數與方法都沒有單獨列出來,而是在需要用到函數和方法的頁面上都重新編寫了代碼,通過后期的技術學習,以及對編碼過程的分析總結,發現可以把共用的函數或方法編寫在同一個頁面上,在之后的頁面中,需要使用此函數的頁面,則可以直接調用函數,無需再編寫代碼了,這樣可以簡化代碼,也能節省時間和存儲空間。
第二個就是對數據庫的設計不夠好,在數據處理中,影響程序運行速度。因此需要對數據庫的性能進行優化。通過這方面知識的學習,在某個開發技術類的博客中,發現可以用數據庫連接池技術來解決數據庫的性能問題,另外還需規范數據庫里面的關系模式,降低數據庫的冗余率,提高運行速度。
如果說平時的作業也是檢查對知識的掌握情況,那么制作畢業設計,將是對自身所有知識的一個全面檢測。因為系統能夠制作完成則是經歷了很多階段,正如文中所展示的那樣,先有可行性分析,對功能的分析,對功能的設計,對數據庫的設計,對程序功能的編碼實現,對完成編碼程序的測試等,這些環節缺一不可,而且還都需要認真對待,大學學到的所有知識在制作系統時,才會發現不夠用。所以這個項目制作,在檢測自身能力的同時,也對問題分析,資料搜集,問題解決等能力進行了培養。
我通過制作本系統,熟悉了程序開發的流程,提高了對程序的編碼能力,培養了獨立分析與解決問題的能力;但也讓我明白自身的不足之處,所以在接下來的時間,我還是要加強對技術知識的學習,去逐漸完善本系統。
致??謝
制作畢設項目這段時間,忙碌又充實。從最開始選題的不知所措,到現在畢設項目完成時的淡然,兩種完全不同的心境,也意味著我這段時間在不斷成長。項目制作是一個很耗費時間與精力的任務,如果說僅僅依靠自己的話,那肯定達不到畢設的標準。所以,這一路走來,導師給予我的幫助也是非常大的。不管我處于哪個階段,比如選題階段,比如分析系統功能階段,設計系統結構階段,系統編碼階段等,都有導師參與指導,他提出的建議和技術上的指導讓我可以更快地完成這個畢設項目。此刻,我非常感謝導師,感謝他提供的幫助。
畢設項目制作期間,我身邊的同學也及時指出了我系統的錯誤,并幫助我完善已開發的系統,還提供了很多文檔撰寫的技巧,所以,我也非常慶幸能和他們一起努力制作項目,也非常感謝他們一直以來的陪伴。
大學短短幾年,能夠得到成長,也離不開授課老師們,他們一直在校園為廣大學子傳授知識,用他們畢生所學,教出一批批優秀的學生,我這幾年的成熟與成長也得益于他們的教導。所以我也非常感謝校園的各位老師。
即將離開校園,回想這幾年的時光,還真挺不舍。安安靜靜在校園走了一圈,發現我的大學校園真的很美,我也感謝學校給我們提供這么美好的學習環境,以及給了我上大學的機會。感謝母校!
參考文獻
[1]江濤.客房信息網上預訂系統的設計與分析[J].現代商貿工業,2020,41(22):150.
[2]徐微微.曉莊連鎖客房信息客房信息預訂系統的設計[J].企業導報,2016(08):180-181.
[3]張振超,吳杰,陳序蓬.淺談Java中Mysql數據庫的連接與操作[J].信息記錄材料,2020,21(02):144-145.
[4]鄭智方,魏愷樂,李彬,謝易壯.MySQL得到廣泛使用的原因以及它的嵌入應用[J].科技風,2020(05):114.
[5]趙秀芹,劉楊青,李瑞祥.MySQL數據庫使用技巧三例[J].網絡安全和信息化,2019(08):90-91.
[6]余濤.計算機軟件開發中Java編程語言的應用研究[J].信息記錄材料,2020,21(01):113-115.
[7]岳青玲.Java面向對象編程的三大特性[J].電子技術與軟件工程,2019(24):239-240.
[8]耿學.關于Java Web中中文亂碼問題的探討[J].現代信息科技,2020,4(01):74-75+78.
[9]張彥芳.Java Web項目開發中的中文亂碼問題與對策[J].電腦知識與技術,2020,16(09):96-97.
[10]韓思凡.Web開發中的vue與H T ML的基礎應用[J].科學技術創新,2020(14):71-72.
[11]趙曉丹.網頁開發中的vue技術分析[J].南方農機,2019,50(20):247-248.
[12]薛茹.基于Spring Boot框架的Web系統研究與應用[J].計算機產品與流通,2018(07):30.
[13]邱丹萍.Web開發中Spring Boot框架的分析[J].電腦知識與技術,2020,16(17):81-82.
[14]仲崇文.關于計算機軟件開發中常見問題的研究[J].通訊世界,2020,27(07):89-90.
[15]Raffi Khatchadourian.Automated refactoring of legacy Java?software to enumerated types[J].Automated Software Engineering,2017,24(4).
[16]Ben White.Marx and Chayanov at the margins:understanding agrarian change in Java[J].The Journal of Peasant Studies,2018,45(5-6).
核心代碼展示
/*** 登錄相關*/
@RequestMapping("users")
@RestController
public class UserController{@Autowiredprivate UserService userService;@Autowiredprivate TokenService tokenService;/*** 登錄*/@IgnoreAuth@PostMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null || !user.getPassword().equals(password)) {return R.error("賬號或密碼不正確");}String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());return R.ok().put("token", token);}/*** 注冊*/@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用戶已存在");}userService.insert(user);return R.ok();}/*** 退出*/@GetMapping(value = "logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 密碼重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null) {return R.error("賬號不存在");}user.setPassword("123456");userService.update(user,null);return R.ok("密碼已重置為:123456");}/*** 列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/list")public R list( UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();ew.allEq(MPUtil.allEQMapPre( user, "user")); return R.ok().put("data", userService.selectListView(ew));}/*** 信息*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") String id){UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 獲取用戶的session用戶信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Long id = (Long)request.getSession().getAttribute("userId");UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 保存*/@PostMapping("/save")public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用戶已存在");}userService.insert(user);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);userService.updateById(user);//全部更新return R.ok();}/*** 刪除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){userService.deleteBatchIds(Arrays.asList(ids));return R.ok();}
}
項目推薦
【計算機畢業設計】各項技術選題匯總
【計算機畢業設計】基于Springboot的網上購物商城銷售系統
【計算機畢業設計】開題報告模板2
【計算機畢業設計】任務書案例2
【網站項目】基于springboot的在線考試系統
【網站項目】基于springboot的4S店車輛管理系統
【軟件設計】基于python的高校資產管理系統
【網站項目】python009基于推薦算法的電影推薦系統
【網站項目】基于Springcloud的分布式架構網上商城
??文章末尾可以獲取聯系方式,需要源碼,高清圖片,演示視頻可以聯系(不開源)??
?感興趣大家可以點點關注收藏,后續更新更多項目資料。?