🙊作者簡介:擁有多年開發工作經驗,分享技術代碼幫助學生學習,獨立完成自己的項目或者畢業設計。
- 代碼可以私聊博主獲取。🌹
- 贈送計算機畢業設計600個選題excel文件,幫助大學選題。
- 贈送開題報告模板,幫助書寫開題報告。
作者完整代碼目錄供你選擇:
- 《Springboot網站項目》400套
- 《ssm網站項目》800套
- 《小程序項目》300套
- 《App項目》500套
- 《python網站項目》600套
?感興趣大家可以點點關注收藏,后續更新更多項目資料。?
項目演示(需要演示視頻可以私信我)
摘要
隨著信息互聯網購物的飛速發展,一般有能力的機構管理系統。本文介紹了鎮賚縣一中體育館管理系統的開發全過程。通過分析企業對于鎮賚縣一中體育館管理系統的需求,創建了一個計算機管理鎮賚縣一中體育館管理系統的方案。文章介紹了鎮賚縣一中體育館管理系統的系統分析部分,包括可行性分析等,系統設計部分主要介紹了系統功能設計和數據庫設計。
本鎮賚縣一中體育館管理系統有管理員和用戶兩個角色。用戶功能有場地信息,員工信息,器材信息,留言反饋,個人中心。管理員功能有個人中心,用戶管理,場地信息管理,場地類型管理,員工信息管理,器材信息管理,留言板管理,系統管理。因而具有一定的實用性。
本站是一個B/S模式系統,采用SSM框架作為開發技術,MYSQL數據庫設計開發,充分保證系統的穩定性。系統具有界面清晰、操作簡單,功能齊全的特點,使得鎮賚縣一中體育館管理系統管理工作系統化、規范化。
關鍵詞:鎮賚縣一中體育館管理系統;SSM框架;MYSQL數據庫
1系統概述
如今互聯網高速發展,網絡遍布全球,通過互聯網發布的消息能快而方便的傳播到世界每個角落,并且互聯網上能傳播的信息也很廣,比如文字、圖片、聲音、視頻等。從而,這種種好處使得互聯網成了信息傳播的主要途徑,社會上各種各樣的信息都想盡辦法通過互聯網進行傳播,互聯網對社會產生的影響越來越大。
隨著計算機技術的發展以及計算機網絡的逐漸普及,互聯網成為人們查找信息的重要場所,二十一世紀是信息的時代,所以信息的交換和信息流通顯得特別重要。因此,開發合適的鎮賚縣一中體育館管理系統成為企業必然要走的一步棋。開發合適的鎮賚縣一中體育館管理系統,可以方便管理人員對鎮賚縣一中體育館管理系統的管理,提高信息管理工作效率及查詢效率,有利于更好的為用戶提供服務。
隨著互聯網技術的快速發展,網絡時代的到來,網絡信息也將會改變當今社會。各行各業在日常企業經營管理等方面也在慢慢的向規范化和網絡化趨勢匯合。鎮賚縣一中體育館管理系統的信息化程度體現在將互聯網與信息技術應用于經營與管理,以現代化工具代替傳統手工作業。無疑,使用網絡信息化管理使信息管理更先進、更高效、更科學,信息交流更迅速。
學校機構還用土辦法來管理各種信息,已經很落伍了,這樣會導致了效率低下。而且,時間一長的話,積累下來的數據信息不容易保存,對于查詢、更新還有維護會帶來不少問題。對于數據交接也存在很大的隱患。如果采用電子化的存儲方式就會帶來很大的改善,而且給用戶的查詢帶來了很大便利,因此設計一個鎮賚縣一中體育館管理系統刻不容緩,能夠提高企業在信息技術方面的展示水平。
1.3系統設計思想
一個成功的網站應明確建設網站的目的,確定網站的功能,確定網站規模、投入費用,進行必要的市場分析等。只有詳細的策劃,才能避免在網站建設中出現的很多問題,使網站建設能順利進行。同時,一個大型的計算機網站系統,必須有一個正確的設計指導思想,通過合理選擇數據結構、網絡結構、操作系統以及開發環境,構成一個完善的網絡體系結構,才能充分發揮計算機信息管理的優勢。根據現實生活中網民的實際需求,本系統的設計按照下述原則進行。
- 有效性:實際上這里的有效性包括兩個方面的意思:有用性和可用性。有用性是指站點潛在的能滿足用戶需求的功能,而可用性是指能夠通過站點的操作實現特定的目標。可以看出一個站點如果不能恰當運行或設計得非常槽糕就不是一個好站點。可用站點的效益應該非常高,并易于學習,在實現用戶目標時令人滿意而不出錯。
- 高可靠性:一個實用的網站同時必須是可靠的,本設計通過合理而先進的網絡設計以及軟、硬件的優化選型,可保證網站的可靠性與容錯性。
- 高安全性:在設計中,將充分利用網絡軟、硬件提供的各種安全措施,既可以保證用戶共享資源,充分考慮系統及數據資源的容災、備份、恢復的要求。為系統提供強大的數據庫備份工具。可以保證關鍵數據的安全性。操作權限級,設置不同的角色確保每一步的操作權限,可以由管理員進行設置。
- 先進性:采用目前國際上最先進的開發技術,使用JSP開發技術,MYSQL作為網站后臺數據庫。采用這些技術降低了以后的系統運營成本,提高了系統的穩定性和易維護性。
- 采用標準技術:本網站的所有設計遵循國際上現行的標準進行,以提高系統的開放性。
- 外觀和技術平衡:系統采用Web風格的界面設計,界面友好、美觀,使用方便,易學易用。網站設計的關鍵問題是外觀和技術的平衡。外現不好的網站令人厭煩,站點可以運行很好,但卻不能帶動用戶積極性,相反,如果外觀非常有表現力,但技術有限,用戶則會感到非常失望。在外觀與技術之間需要確定一個清晰而連續的關系,即外觀與站點的意圖相關,對不同類型的網站處理方法不同。
2相關技術
2.1?MYSQL數據庫
MySQL是一個真正的多用戶、多線程SQL數據庫服務器。 是基于SQL的客戶/服務器模式的關系數據庫管理系統,它的有點有有功能強大、使用簡單、管理方便、安全可靠性高、運行速度快、多線程、跨平臺性、完全網絡化、穩定性等,非常適用于Web站點或者其他應用軟件的數據庫后端的開發工作。此外,用戶可利用許多語言編寫訪問MySQL數據庫的程序。作為開放源代碼運動的產物之一,MySQL關系數據庫管理系統越來越受到人們的青睞,應用范圍也越來越廣。速度和易用性使MySQL特別適用于Web站點或應用軟件的數據庫后端的開發工作。
MYSQL數據庫具有以下特點:
1、C和C ++中使用和測試,以確保源代碼的編譯器的便攜性和靈活性。
2、支持多種操作系統AIX的,FreeBSD下,HP-UX,Linux和Mac OS中,Novell公司的Netware,OpenBSD系統,OS/2裹時,Solaris,Windows等。
3、提供了用于不同的編程語言的API。編程語言,如C,, C ++,Python和Java的,的Perl,PHP,埃菲爾鐵塔,Ruby和Tcl的。
4、以及使用的CPU資源來支持多線程。
5、算法優化查詢SQL,切實提高搜索速度。
6、網絡上的客戶端和服務器可以用來編程任何獨立的編程環境,也有中國,GB2312,BIG5,日文寫作,一般基金,用于支持多國語言,并且可以嵌入在數據表和其他軟件shift_jis訪問柱可以用作的名稱。
7、TCP / IP,ODBC和JDBC數據庫,并提供連接到其他。
8、管理工具的管理,控制和優化數據庫的操作。
9、可以數以千萬計的記錄在一個大的數據庫。
2.2?B/S結構
B/S架構是一種基于互聯網系統的軟件系統開發架構,是現如今在軟件系統開發中采用非常大量的一種軟件系統結構。現如今B/S架構已經被大量使用,打破了C/S結構的結構,給基于網絡結構的軟件系統提供了良好的支持。B/S架構伴隨著計算機網絡技術發展而逐步的發展和更新。伴隨著互聯網的進一步發展,就要求大多數的管理系統要求不僅僅可以在一臺電腦上使用,同時可以在接入互聯網的其他電腦也可以使用對系統進行操作和使用。在這樣的背景下基于B/S架構的軟件系統設計方法得到了越來越大量的使用,基礎部分也在不斷的更新。
B/S架構是利用操作系統中的瀏覽器來進行使用的,不是一種窗體軟件系統,不需要在使用系統的電腦上進行安裝。B/S架構的運行方式是在遠程的服務器上把開發的軟件系統部署在遠程的服務器上,在部署好軟件系統之后就可以實現在任何接入互聯網的電腦上訪問部署好的軟件系統。B/S架構給使用管理系統的用戶帶來極大的便利。
在三層體系結構的B/S(Browser/Server,瀏覽器/服務器結構)系統中,用戶可以通過瀏覽器向分布在網絡上的眾多服務器發出請求。B/S系統極大地簡化了客戶機的工作量,客戶機上只需要安裝、配置少量的客戶端運行軟件即可,服務器將擔負大量的工作,對數據庫的訪問以及應用程序的執行都將由服務器來完成。
B/S架構的不斷成熟,主要使用WWW瀏覽器技術,結合多種瀏覽器腳本語言,用通用瀏覽器需要實現原本復雜的專有軟件來實現的強大功能,并節約了開發成本,是一種新的軟件架構。B/S系統包括:表示邏輯層,控制邏輯層,數據展現層,三層是相對獨立又相互關聯。
2.3?SSM框架簡介
SSM框架,是Spring+Spring MVC+MyBatis的縮寫,這個是繼SSH之后,目前比較主流的Java EE企業級框架,適用于搭建各種大型的企業級應用系統。
1.Spring簡介
Spring是一個開源框架,Spring是于2003年興起的一個輕量級的Java開發框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來。它是為了解決企業應用開發的復雜性而創建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。
A.控制反轉(IOC)是什么呢?
IOC:控制反轉也叫依賴注入。利用了工廠模式將對象交給容器管理,你只需要在spring配置文件總配置相應的bean,以及設置相關的屬性,讓spring容器來生成類的實例對象以及管理對象。在spring容器啟動的時候,spring會把你在配置文件中配置的bean都初始化好,然后在你需要調用的時候,就把它已經初始化好的那些bean分配給你需要調用這些bean的類(假設這個類名是A),分配的方法就是調用A的setter方法來注入,而不需要你在A里面new這些bean了。
B.面向切面(AOP)又是什么呢?
首先,需要說明的一點,AOP只是Spring的特性,它就像OOP一樣是一種編程思想,并不是某一種技術,AOP可以說是對OOP的補充和完善。OOP引入封裝、繼承和多態性等概念來建立一種對象層次結構,用以模擬公共行為的一個集合。當我們需要為分散的對象引入公共行為的時候,OOP則顯得無能為力。也就是說,OOP允許你定義從上到下的關系,但并不適合定義從左到右的關系。例如日志功能。日志代碼往往水平地散布在所有對象層次中,而與它所散布到的對象的核心功能毫無關系。在OOP設計中,它導致了大量代碼的重復,而不利于各個模塊的重用。將程序中的交叉業務邏輯(比如安全,日志,事務等),封裝成一個切面,然后注入到目標對象(具體業務邏輯)中去。
實現AOP的技術,主要分為兩大類:一是采用動態代理技術,利用截取消息的方式,對該消息進行裝飾,以取代原有對象行為的執行;二是采用靜態織入的方式,引入特定的語法創建“方面”,從而使得編譯器可以在編譯期間織入有關“方面”的代碼。
2.Spring MVC簡介
Spring MVC屬于Spring Framework的后續產品,已經融合在Spring Web Flow里面,它原生支持的Spring特性,讓開發變得非常簡單規范。Spring MVC分離了控制器、模型對象、分派器以及處理程序對象的角色,這種分離讓它們更容易進行定制。
3.MyBatis簡介
MyBatis本是apache的一個開源項目iBatis,2010年這個項目由apache software foundation遷移到了google code,并且改名為MyBatis。MyBatis是一個基于Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO)MyBatis消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis使用簡單的XML或注解用于配置和原始映射,將接口和Java的POJOs(Plain Old Java Objects,普通的Java對象)映射成數據庫中的記錄。可以這么理解,MyBatis是一個用來幫你管理數據增刪改查的框架。
3系統分析
3.1可行性分析
通過對本鎮賚縣一中體育館管理系統實行的目的初步調查和分析,提出可行性方案并對其一一進行論證。我們在這里主要從技術可行性、經濟可行性、操作可行性等方面進行分析。
3.1.1技術可行性
本鎮賚縣一中體育館管理系統采用JAVA作為開發語言,Spring Boot框架,是基于WEB平臺的B/S架構系統。
(1)Java提供了穩定的性能、優秀的升級性、更快速的開發、更簡便的管理、全新的語言以及服務。整個系統幫用戶做了大部分不重要的瑣碎的工作。
(2)基于B/S模式的系統的開發已發展日趨成熟。
(3)眾所周知,Java是面向對象的開發語言。程序開發員可以在Eclipse平臺上面方便的使用一些已知的解決方案。 ???
因此,鎮賚縣一中體育館管理系統在開發技術上具有很高可行性,且開發人員掌握了一定的開發技術,所以此系統的開發技術具有可行性。
3.1.2經濟可行性
本鎮賚縣一中體育館管理系統采用的軟件都是開源的,這樣能夠削減很多的精力和資源,降低開發成本。同時對計算機的配置要求也極低,即使是淘汰下來的計算機也能夠滿足需要,因此,本系統在經濟上是完全具有可行性的,所以在經濟上是十分可行的。
3.1.3操作可行性
本鎮賚縣一中體育館管理系統的界面簡單易操作,用戶只要平時有在用過電腦,都能進行訪問和操作。本系統具有易操作、易管理、交互性好的特點,在操作上是非常簡單的,因此在操作上具有很高的可行性。
綜上所述,此系統開發目標已明確,在技術、經濟和操作方面都具有很高的可行性,并且投入少、功能完善、管理方便,因此系統的開發是完全可行的。
3.2系統性能分析
3.2.1 系統安全性
此鎮賚縣一中體育館管理系統要嚴格控制管理權限,具體要求如下:
(1)要想對鎮賚縣一中體育館管理系統進行管理,首先要依靠用戶名和密碼在系統中登陸,無權限的用戶不可以通過任何方式登錄系統和對系統的任何信息和數據進行查看,這樣可以保證系統的安全可靠性和準確性。
(2)在具體實現中對不同的權限進行設定,不同權限的用戶在系統中登陸后,不可以越級操作。
3.2.2 數據完整性
(1)所有記錄信息要保持全面,信息記錄內容不可以是空。
(2)各種數據間相互聯系要保持正確。
(3)相同數據在不同記錄中要保持一致。
目前,界面設計已經成為對軟件質量進行評價的一條關鍵指標,一個好的用戶界面可以使用戶使用系統的信心和興趣增加,從而使工作效率提高,JSP技術是將JAVA語言作為腳本語言的,JSP網頁給整個服務器端的JAVA庫單元提供了一個接口用來服務HTTP的應用程序。創建動態頁面比較方便。客戶界面是指軟件系統與用戶交互的接口,往往涵蓋輸出、輸入、人機對話的界面格式等。
1.輸出設計
輸出是由電腦對輸入的基本信息進行解決,生成高質量的有效信息,并使之具有一定的格式,提供給管理者使用,這是輸出設計的主要責任和目標。
系統開發的過程與實施過程相反,并不是從輸入設計到輸出設計,而是從輸出設計到輸入設計。這是由于輸出表格與使用者直接相聯系,設計的目的應當是確保使用者可以很方便的使用輸出表格,并且可以將各部門的有用信息及時的反映出來。輸出設計的準繩是既要整體琢磨不同管理層的所有需要,又要簡潔,不要提供給用戶不需要的信息。
2.輸入設計
輸入數據的收集和錄入是比較麻煩的,需要非常多的人力和一定設備,而且經常出錯。一旦輸入系統的數據不正確,那么處理后的輸出就會擴大這些錯誤,因此輸入的數據的準確性對整個系統的性能起著決定性意義。
輸入設計有以下幾點原則:
1)輸入量應盡量保持在能夠滿足處理要求的最低限度。輸入量越少,錯誤率就會越少,數據的準備時間也越少。
2)應盡可能的使輸入的準備以及輸入的過程進行時比較方便,這樣使錯誤的發生率降低。
3)應盡量早檢查輸入數據(盡量接近原數據發生點),以便使錯誤更正比較及時。
4)輸入數據盡早地記錄成其處理所需的形式,以防止數據由一種介質轉移到另一種介質時需要轉錄而可能發生的錯誤。
3.4系統流程和邏輯
圖3-3登錄流程圖
圖3-4修改密碼流程圖
4系統概要設計
4.1概述
本系統采用B/S結構(Browser/Server,瀏覽器/服務器結構)和基于Web服務兩種模式,是一個適用于Internet環境下的模型結構。只要用戶能連上Internet,便可以在任何時間、任何地點使用。系統工作原理圖如圖4-1所示:
圖4-1系統工作原理圖
4.2系統結構
本系統是基于B/S架構的網站系統,設計的管理員功能結構圖如下圖所示:
圖4-2管理員功能結構圖
本系統是基于B/S架構的網站系統,設計的用戶功能結構圖如下圖所示:
圖4-3 用戶功能結構圖
4.3.數據庫設計
4.3.1數據庫實體
概念設計的目標是設計出反映某個組織部門信息需求的數據庫系統概念模式,數據庫系統的概念模式獨立于數據庫系統的邏輯結構、獨立于數據庫管理系統(DBMS)、獨立于計算機系統。
概念模式的設計方法是在需求分析的基礎上,用概念數據模型(例如E-R模型)表示數據及數據之間的相互聯系,設計出反映用戶信息需求和處理需求的數據庫系統概念模式。概念設計的目標是準確描述應用領域的信息模式,支持用戶的各種應用,這樣既容易轉換為數據庫系統邏輯模式,又容易為用戶理解。數據庫系統概念模式是面向現實世界的數據模型,不能直接用于數據庫系統的實現。在此階段,用戶可以參與和評價數據庫系統的設計,從而有利于保證數據庫系統的設計與用戶的需求相吻合。在概念模式的設計中,E-R模型法是最常見的設計方法。本系統的E-R圖如下圖所示:
圖4.12 場地信息實體屬性圖
(2)?留言板實體屬性圖如圖4.13所示:
圖4.13???留言板實體屬性圖
(3)場地類型實體屬性圖如圖4.14所示:
圖4.14?場地類型實體屬性圖
4.3.2數據庫設計表
鎮賚縣一中體育館管理系統需要后臺數據庫,下面介紹數據庫中的各個表的詳細信息:
表4.1 場地類型
字段 | 類型 | 空 | 默認 | 注釋 |
id?(主鍵) | bigint(20) | 否 | 主鍵 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 創建時間 |
leixing | varchar(200) | 是 | NULL | 類型 |
表4.2 場地信息
字段 | 類型 | 空 | 默認 | 注釋 |
id?(主鍵) | bigint(20) | 否 | 主鍵 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 創建時間 |
changdimingcheng | varchar(200) | 是 | NULL | 場地名稱 |
changdileixing | varchar(200) | 是 | NULL | 場地類型 |
rongnarenshu | int(11) | 是 | NULL | 容納人數 |
changdiweizhi | varchar(200) | 是 | NULL | 場地位置 |
xiangqing | longtext | 是 | NULL | 詳情 |
weixiujilu | longtext | 是 | NULL | 維修記錄 |
changditupian | varchar(200) | 是 | NULL | 場地圖片 |
clicknum | int(11) | 是 | 0 | 點擊次數 |
表4.3 留言板
字段 | 類型 | 空 | 默認 | 注釋 |
id?(主鍵) | bigint(20) | 否 | 主鍵 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 創建時間 |
userid | bigint(20) | 否 | 留言人id | |
username | varchar(200) | 是 | NULL | 用戶名 |
content | longtext | 否 | 留言內容 | |
reply | longtext | 是 | NULL | 回復內容 |
表4.4 器材類型
字段 | 類型 | 空 | 默認 | 注釋 |
id?(主鍵) | bigint(20) | 否 | 主鍵 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 創建時間 |
leixing | varchar(200) | 是 | NULL | 類型 |
表4.5 器材信息
字段 | 類型 | 空 | 默認 | 注釋 |
id?(主鍵) | bigint(20) | 否 | 主鍵 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 創建時間 |
qicaibianhao | varchar(200) | 是 | NULL | 器材編號 |
qicaimingcheng | varchar(200) | 是 | NULL | 器材名稱 |
leixing | varchar(200) | 是 | NULL | 類型 |
shuliang | int(11) | 是 | NULL | 數量 |
yongtu | longtext | 是 | NULL | 用途 |
suoshuchangdi | varchar(200) | 是 | NULL | 所屬場地 |
beizhu | longtext | 是 | NULL | 備注 |
tupian | varchar(200) | 是 | NULL | 圖片 |
表4.6 管理員表
字段 | 類型 | 空 | 默認 | 注釋 |
id?(主鍵) | bigint(20) | 否 | 主鍵 | |
username | varchar(100) | 否 | 用戶名 | |
password | varchar(100) | 否 | 密碼 | |
role | varchar(100) | 是 | 管理員 | 角色 |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 新增時間 |
表4.7 用戶
字段 | 類型 | 空 | 默認 | 注釋 |
id?(主鍵) | bigint(20) | 否 | 主鍵 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 創建時間 |
zhanghao | varchar(200) | 否 | 賬號 | |
mima | varchar(200) | 否 | 密碼 | |
xingming | varchar(200) | 否 | 姓名 | |
xingbie | varchar(200) | 是 | NULL | 性別 |
shouji | varchar(200) | 是 | NULL | 手機 |
youxiang | varchar(200) | 是 | NULL | 郵箱 |
shenfenzheng | varchar(200) | 是 | NULL | 身份證 |
表4.8 員工信息
字段 | 類型 | 空 | 默認 | 注釋 |
id?(主鍵) | bigint(20) | 否 | 主鍵 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 創建時間 |
gonghao | varchar(200) | 是 | NULL | 工號 |
xingming | varchar(200) | 是 | NULL | 姓名 |
xingbie | varchar(200) | 是 | NULL | 性別 |
zhiwu | varchar(200) | 是 | NULL | 職務 |
gongzuozhize | longtext | 是 | NULL | 工作職責 |
lianxidianhua | varchar(200) | 是 | NULL | 聯系電話 |
zhaopian | varchar(200) | 是 | NULL | 照片 |
5系統詳細實現
5.1 管理員模塊的實現
5.1.1?場地信息管理
鎮賚縣一中體育館管理系統的系統管理員可以管理場地信息,可以對場地信息添加修改刪除操作。具體界面的展示如圖5.1所示。
圖5.1?場地信息管理界面
5.1.2?員工信息管理
系統管理員可以管理員工信息,可以對員工信息進行添加,修改,刪除,查詢操作。具體界面如圖5.2所示。
圖5.3 員工信息管理界面
5.1.3?留言板管理
系統管理員可以對用戶留言進行回復。界面如下圖所示:
圖5.4?留言板管理界面
5.2?用戶模塊的實現
5.2.1 員工信息
用戶登錄后,可以在員工信息界面查看員工的基本介紹信息。界面如下圖所示:
圖5.5 員工信息界面
5.2.2 留言反饋?
用戶登錄后,在留言反饋界面可以提交留言內容。界面如下圖所示:
圖5.6 留言反饋界面
5.2.3 器材信息
用戶登錄后可以查詢,查看器材信息。界面如下圖所示:
圖5.7 器材信息界面
6系統測試
6.1概念和意義
測試的定義:程序測試是為了發現錯誤而執行程序的過程。測試(Testing)的任務與目的可以描述為:
目的:發現程序的錯誤;
任務:通過在計算機上執行程序,暴露程序中潛在的錯誤。
另一個預測是相關的術語叫糾錯(Debugging)。它的目的與任務可以規定為:
目的:定位和糾正錯誤;
任務:消除軟件故障,保證程序的可靠運行。測試與糾錯的關系,可以用圖6-1的數據流圖來說明。圖中表明,每一次測試都要準備好若干必要的測試數據,與被測試程序一道送入計算機執行。通常把一次程序執行需要的測試數據,稱為一個“測試用例(Test Case)。每一個測試用例產生一個相應的“測試結果”。如果它與“期望結果”不想符合,便說明程序中存在錯誤,需要用糾錯來改正。
圖6.1測試與糾錯信息流程
6.2特性
(1)挑剔性
測試是為了證明程序有錯,而不是證明程序無錯。因此,對于被測程序就是要“純毛求疵”,就是要“雞蛋里挑骨頭”。
(2)復雜性
測試儀程序則比較容易,這其實是一個誤區。設計測試用力是一項需要細致和高度技巧的高能工作,稍有不慎就會顧此失彼,發生不應用得數樓。
(3)不徹底性
實際測試都是不徹底的,當然不能夠保證測試后的程序不存在遺漏的錯誤。
(4)經濟性
通場這種測試稱為“選擇測試(Selective Testing)”。為了降低測試成本,選擇測試用力是應注意遵守“經濟性”的原則。
6.3重要性
軟件測試在軟件生命周期中占據重要的地位,在傳統的瀑布模型中,軟件測試學僅處于運行維護階段之前,是軟件產品交付用戶使用之前保證軟件質量的重要手段。近來,軟件工程界趨向于一種新的觀點,即認為軟件生命周期每一階段中都應包含測試,從而檢驗本階段的成果是否接近預期的目標,盡可能早的發現錯誤并加以修正,如果不在早期階段進行測試,錯誤的延時擴散常常會導致最后成品測試的巨大困難。
6.4測試方法
首先我們來說界面測試,界面測試是為了使程序在不同的的操作平臺上能夠運行界面,并且能夠保持原來的風格。我把完整程序拷貝到Windows 7環境下,似的程序運行正常,運行界面上的字體圖片等設置都能夠保持得非常好。不出現字體變形等情況!
其次進行功能測試。該系統測試采用的是單元測試,集成測試,完善性測試等多種方式進行測試。
經過測試,所有功能都能得以實現,沒有任何變形。至此,在功能的測試上也已經比較圓滿的完成了。
由于經驗不足,寫代碼時出現了一些考慮不周的系統缺陷,寫代碼的時候會出現與設想不一致,比如說代碼不規范導致接口與接口之間出現問題,功能與客戶的要求不符合,這樣導致產品不能過關,無法交付。所以產品在上線前必須反復測試,經過反復測試,修改,再測試,再修改,產品才能夠不斷完善。在整個系統測試中,根據需求文檔和設計文檔,逐一對功能進行檢測并寫好測試用例,有效避免殘片缺陷,因為產品出現缺陷不僅影響功能,而且可以導致數據的不準確,導致產品質量的降低,經過測試,才能使得產品的穩定性和成熟度得到極大的提升,產品質量也才有保證。
6.5?功能測試
功能測試主要包括五項內容:適用性、準確性、可操作性、依從性、安全性。
本系統功能測試如表6.1所示:
表6.1 ?系統功能測試
測試內容 | 測試結果 |
適用性 | 好 |
準確性 | 好 |
可操作性 | 好 |
依從性 | 好 |
安全性 | 好 |
6.6可用性測試
可用性測試用于檢測系統的可操作性、可理解性、可學習性等方面內容。具體測試方面如表6.2所示。
表6.2 系統可用性測試
測試項 | 測試人員的評價 |
窗口移動、大小改變、關閉等操作是否正常 | 是 |
操作模塊是否友好 | 是 |
模塊、提示內容等文字描述是否正確 | 是 |
模塊布局是否協調、合理 | 是 |
模塊的狀態是否正確(對選中項能否發生對應切換) | 是 |
鼠標、鍵盤操作是否支持 | 是 |
所需數據項是否正確顯示 | 是 |
操作流程是否合理 | 是 |
是否提供幫助信息 | 是 |
6.7性能測試
性能測試主要通過模擬系統運行環境,測試系統性能是否符合客戶需求。性能測試的重要技術指標就是:系統運行速度、網絡響應時間和支持并發節點數。
1)系統運行速度:通過在不同計算機上試運行本系統,沒有發現有任何遲滯、停頓現象。
2)網絡響應時間:網絡響應時間主要包括網絡最小響應時間、平均響應時間、最大響應時間三個參數。經過測試,在網絡運營良好狀態下,NBA局域網內響應時間三參數為:1/2/6s,NBA外網響應時間三參數為3/7/12s,符合客戶需求,屬于用戶心理可承受范圍。
3)支持并發節點數:經過模擬環境測試,本系統在并發節點達46個時,網絡運營速度會發生較大波動,延遲時間10秒左右,符合客戶需求。
6.8測試分析
本網站設計時借鑒了國內外優秀網站的優點,從界面到系統設計都保證了用戶能夠方便操作。系統的主要特點和優點歸納如下:
(1)本系統用的移置性和針對性都比較高,因為針對性高可以提供更好的服務而移置性可以在多個系統上運行,更給客戶帶來了極大的方便。
(2)該完整內容全面,管理方便可以及時的全面的處理各種錯誤,異常,這樣避免了很多因用戶的馬虎操作而出現的失誤,其操作方便,用戶界面友好,能夠上網的人都可以很好的進行操作。
6.9測試結果分析
經過對上述測試結果分析,本系統符合用戶需求。所有基本功能點實現,操作簡單,操作流程簡單合理,產品運行性能良好,是一款值得推廣的鎮賚縣一中體育館管理系統。
結論
在這次畢業設計中遇到的最困難的方面就是在數據庫方面的知識,在剛開始進行畢業設計的時候感覺十分困難,根本不知道該從何處下手,但不斷的堅持,設計最終被完成。無論多么的困難,只要能夠堅持下來,善于去找到好的材料來研究,在研究中充分利用資源,沒有困難是不會被成功解決的。
在開發系統的過程中,本人運用到Spring Boot技術和平時學習中所了解的一些技術,通過實現這些技術,大大提高了整個系統的性能。在論文中這些技術都做了比較詳細的介紹。本系統還存在很多缺點和不完善的地方,例如有些細節上做的還不夠完善,有些功能模塊還需要加強。在今后的日子里,能夠對這些不足進行改善。
通過這次最終的畢業設計,平時所學到的知識不僅融合了,而且獲得了許多計算機知識。在整個設計過程中明白了許多東西,也培養獨立工作能力,樹立信心,對自己能力的工作能力,我相信以后會學習和工作生活中有至關重要的作用。同時也大大提高了手的能力,使其難以充分體會探索的樂趣和成功的創作過程,設計過程中汲取的東西,是一筆寶貴的財富。
回顧過去做畢業設計的整個過程,充滿了付出和收獲,但是當你看到成果的時候的感覺,是一種難以用言語表達的喜悅之感這些在畢業設計過程中學習到的東西將會使我終身受益!
最后,感謝指導老師的關心和指導,在我畢業設計的整個過程中,他給與了我很多的幫助和講解,在導師的幫助下我的畢業設計才能如此順利的完成。
致謝語
經過幾個多月的不斷學習,我的畢業設計終于如期完成。此次畢業設計是對我們日常所學計算機理論知識的一次綜合性評測,也是將理論應用到實踐的一項考察。
首先我要感謝此次指導我的老師,是他的及時糾正我在設計當中出現的問題,使得我的設計高質量完成。指導老師在我本次鎮賚縣一中體育館管理系統的開發過程中,為程序、框架的設計、代碼等方面以及論文設計提供了很多寶貴的意見,并且為我推薦了許多相關的資料,他的指導和建議使我受益匪淺,通過老師的耐心輔導和指點,我的論文順利完成,在此,我表示深刻的感謝。
我也要感謝幫助過我的同學們,和我一起探討論文的不足,給我的設計提出寶貴的建議,在這次設計中他們的幫助使得我的設計更加完善更加具體。
最后,我也要感謝學校為我們提供了一個良好的學校環境。祝愿學校的領導教師以及和我一起奮斗的同學們工作順利,事業有成,也要祝愿學校的前景更加輝煌。
參考文獻
[1]付昕. 基于B/S模式倉庫管理系統的實現[J].山東省農業管理干部學院學報, 2010, 27(4):166-168
[2] 雷文華, 薛小文. MATLAB和Servlet在網絡數據處理中的應用[J]. 電子測試, 2010, (11):81-86.
[3] 黃艷峰. 在Java語言中實施“案例教學”的研究與探索[J]. 電腦知識與技術, 2010, 6(5):1148-1149
[4] 王玉英. 基于JSP的MySQL數據庫訪問技術[J]. 現代計算機:專業版, 2010, 19(14):63-66
[5] 趙鋼. JSP Servlet+EJB的Web模式應用研究[J]. 電子設計工程, 2013, 21(13):47-49
[6] David L.Anderson.Managing ?Information Systems.清華大學出版社,2002:16
[7] 王家華.軟件工程[M],沈陽:東北大學出版社,2011:46
[8] 張孝祥,徐明華.軟件開發課堂.清華大學出版社,2009:55
[9] 崔洋.MySQL數據庫應用從入門到精通.中國鐵道出版社,2013:27
[10] 王珊,薩師煊.數據庫系統概論.高等教育出版社, 2006:16
[11] 崔洋.MySQL數據庫應用從入門到精通.中國鐵道出版社,2013:27
[12] 王珊,薩師煊.數據庫系統概論.高等教育出版社, 2006:16
[13] 張海潘.軟件工程導論.清華大學出版社,2008:86
[14] 黃艷峰. 在Java語言中實施“案例教學”的研究與探索[J]. 電腦知識與技術, 2010, 6(5):1148-1149
[15] 王玉英. 基于JSP的MySQL數據庫訪問技術[J]. 現代計算機:專業版, 2010, 19(14):63-66
核心代碼展示
/*** 公告通知* 后端接口* @author * @email * @date 2021-03-09 11:33:59*/
@RestController
@RequestMapping("/news")
public class NewsController {@Autowiredprivate NewsService newsService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( NewsEntity news){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();ew.allEq(MPUtil.allEQMapPre( news, "news")); return R.ok().put("data", newsService.selectListView(ew));}/*** 查詢*/@RequestMapping("/query")public R query(NewsEntity news){EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();ew.allEq(MPUtil.allEQMapPre( news, "news")); NewsView newsView = newsService.selectView(ew);return R.ok("查詢公告通知成功").put("data", newsView);}/*** 后端詳情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){NewsEntity news = newsService.selectById(id);return R.ok().put("data", news);}/*** 前端詳情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){NewsEntity news = newsService.selectById(id);return R.ok().put("data", news);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody NewsEntity news, HttpServletRequest request){news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(news);newsService.insert(news);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody NewsEntity news, HttpServletRequest request){news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(news);newsService.insert(news);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody NewsEntity news, HttpServletRequest request){//ValidatorUtils.validateEntity(news);newsService.updateById(news);//全部更新return R.ok();}/*** 刪除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){newsService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = newsService.selectCount(wrapper);return R.ok().put("count", count);}}