(附源码)springboot+mysql+基于Java的学生请销假审批管理系统的设计与实现 毕业设计130939
摘 要
科技進(jìn)步的飛速發(fā)展引起人們?nèi)粘I畹木薮笞兓?#xff0c;電子信息技術(shù)的飛速發(fā)展使得電子信息技術(shù)的各個領(lǐng)域的應(yīng)用水平得到普及和應(yīng)用。信息時代的到來已成為不可阻擋的時尚潮流,人類發(fā)展的歷史正進(jìn)入一個新時代。在現(xiàn)實運用中,應(yīng)用軟件的工作規(guī)則和開發(fā)步驟,采用java技術(shù)建設(shè)學(xué)生請假審批管理系統(tǒng)。
本設(shè)計主要實現(xiàn)集人性化、高效率、便捷等優(yōu)點于一身的學(xué)生請假審批管理系統(tǒng),完成首頁、用戶管理、公告通知、請假申請、請假審批等功能模塊。系統(tǒng)通過瀏覽器與服務(wù)器進(jìn)行通信,實現(xiàn)數(shù)據(jù)的交互與變更。本系統(tǒng)通過科學(xué)的管理方式、便捷的服務(wù)提高了工作效率,減少了數(shù)據(jù)存儲上的錯誤和遺漏。學(xué)生請假審批管理系統(tǒng)使用Java語言,采用基于 MVVM模式的spring boot技術(shù)進(jìn)行開發(fā),使用 Eclipse 2017 CI 10 編譯器編寫,數(shù)據(jù)方面主要采用的是微軟的Mysql數(shù)據(jù)庫來作為數(shù)據(jù)存儲媒介,配合前臺HTML+CSS 技術(shù)完成系統(tǒng)的開發(fā)。
關(guān)鍵詞 :學(xué)生請假審批;java技術(shù);Mysql數(shù)據(jù)庫;
Abstract
The rapid development of scientific and technological progress has caused great changes in people's daily life. The rapid development of electronic information technology has popularized and applied the application level of electronic information technology in various fields. The advent of the information age has become an irresistible fashion trend, and the history of human development is entering a new era. In practical application, according to the working rules and development steps of the application software, Java technology is used to build the student leave approval management system.
This design mainly realizes the student leave approval management system with the advantages of humanization, high efficiency and convenience, and completes the functional modules such as home page, user management, announcement notice, leave application, leave approval and so on. The system communicates with the server through the browser to realize the interaction and change of data. Through scientific management and convenient service, the system improves work efficiency and reduces errors and omissions in data storage. The student leave approval management system uses Java language, spring boot technology based on MVVM mode and eclipse 2017 CI 10 compiler. In terms of data, Microsoft's MySQL database is mainly used as the data storage medium, and the system development is completed with the foreground HTML + CSS technology.
Key words: Student leave approval; Java technology; Mysql database;
目 錄
1 概述 1
1.1課題背景 1
1.2 研究意義 1
1.3 本課題主要工作 2
2 關(guān)鍵技術(shù)介紹 3
2.1 開發(fā)技術(shù) 3
2.2 MVVM模式 3
2.3 MySQL數(shù)據(jù)庫 4
2.4 B/S結(jié)構(gòu) 4
2.4 spring boot框架介紹 4
2.4 Vue.js主要功能 4
3 系統(tǒng)分析 6
3.1 可行性分析 6
3.1.1 技術(shù)可行性 6
3.1.2操作可行性 6
3.1.3 經(jīng)濟(jì)可行性 6
3.1.4 法律可行性 7
3.2系統(tǒng)流程分析 7
3.2.1系統(tǒng)開發(fā)流程 7
3.2.2 用戶登錄流程 8
3.2.3 系統(tǒng)操作流程 8
3.2.4 添加信息流程 9
3.2.5 修改信息流程 10
3.2.6 刪除信息流程 10
3.3系統(tǒng)用例分析 11
4 系統(tǒng)設(shè)計 15
4.1 系統(tǒng)概述 15
4.2 系統(tǒng)結(jié)構(gòu)設(shè)計 15
4.3數(shù)據(jù)庫設(shè)計 16
4.3.1實體ER圖 16
4.3.2數(shù)據(jù)庫表設(shè)計 16
5系統(tǒng)詳細(xì)設(shè)計 23
5.1數(shù)據(jù)庫訪問層的實現(xiàn) 23
5.2注冊模塊的實現(xiàn) 24
5.3登錄模塊的實現(xiàn) 24
5.4用戶資料修改模塊的實現(xiàn) 26
5.5公告通知模塊的實現(xiàn) 27
5.6請假申請模塊的實現(xiàn) 28
5.7學(xué)生管理模塊的實現(xiàn) 29
5.8請假審批管理模塊 31
6系統(tǒng)測試 33
6.1系統(tǒng)測試的意義 33
6.2 測試方法 33
6.3測試分析 33
結(jié) 論 35
致 謝 36
參考文獻(xiàn) 37
1 概述
1.1課題背景
隨看信息需求的增長,傳統(tǒng)的信息交流方式早已不能滿足企業(yè)對傳遞和處理大量信息的需要,因此亟需把網(wǎng)絡(luò)技術(shù)滲透到企業(yè)的日常工作。而網(wǎng)絡(luò)辦公與管理的應(yīng)用則滿足了企業(yè)對辦公網(wǎng)絡(luò)化、自動化的管理需求,不僅可以極大地提高企業(yè)內(nèi)部的管理水平,并加快內(nèi)部信息流通,確保信息有效利用,增強(qiáng)企業(yè)的核心競爭力。
20世紀(jì)70年代中期在企業(yè)和行政機(jī)關(guān)中興起使用公自動化系統(tǒng),而后因其給企業(yè)和單位帶來的便利而迅速被用于中小型企業(yè)單位中,其是采用一-系列現(xiàn)代化的辦公設(shè)備和先進(jìn)的通信技術(shù),廣泛、全面、迅速地收集、整理、加工、存儲和使用信息,使企業(yè)內(nèi)部人員方便快捷地共享信息,高效地協(xié)同工作;改變過去復(fù)雜、低效的手工辦公方式,為科學(xué)管理和決策服務(wù),從而達(dá)到提高行政效率的目的。一個企業(yè)實現(xiàn)辦公自動化的程度也是衡量其實現(xiàn)現(xiàn)代化管理的標(biāo)準(zhǔn)。
1.2 研究意義
我國辦公自動化的發(fā)展過程中,辦公自動化建設(shè)取得了很多成績,同時也暴露了很多問題,如投資大、效果不明顯、水平低、重復(fù)建設(shè)多、硬件投入多、軟件投入少、模擬手工作業(yè)增加管理負(fù)擔(dān)等。辦公人員大都非計算機(jī)專業(yè)人員,他們的計算機(jī)知識尤其是計算機(jī)操作系統(tǒng)及硬件知識的缺乏,導(dǎo)致辦公效率的降低,也造成系統(tǒng)管理員工作量的增大如系統(tǒng)維護(hù)及軟件升級。成本計算機(jī)技術(shù)的發(fā)展可謂一-日千里,軟硬件的升級換代將更加的頻繁,這就意味著系統(tǒng)后期成本居高不下。當(dāng)今政府、企事業(yè)對信息的價值有了更深的認(rèn)識,因而對信息的存儲和保密也就更加重視。而今,病毒的破壞、黑客的入侵等都將對系統(tǒng)信息以致使的打擊。
傳統(tǒng)紙質(zhì)的審批方式浪費了很多人力、物力、財力,且效率低下,增加工作人員壓力和辦公經(jīng)費。
1.3本文的組織結(jié)構(gòu)
第一章是緒論,本文章的開頭部分,對本題目的研究背景和研究意義等一些做文字性的描述。
第二章研究了學(xué)生請假審批管理系統(tǒng)的所采用的開發(fā)技術(shù)和開發(fā)工具。
第三章是系統(tǒng)分析部分,包括系統(tǒng)總體需求描述、功能性角度分析系統(tǒng)需求、非功能性等各個方面分析系統(tǒng)是否可以實現(xiàn)。
第四章是系統(tǒng)設(shè)計部分,本文章的重要部分,提供了系統(tǒng)架構(gòu)的詳細(xì)設(shè)計和一些主要功能模塊的設(shè)計說明。
第五章是系統(tǒng)的具體實現(xiàn),介紹系統(tǒng)的各個模塊的具體實現(xiàn)。
第六章在前幾章的基礎(chǔ)上對系統(tǒng)進(jìn)行測試和運行。
最后對系統(tǒng)進(jìn)行了認(rèn)真的總結(jié),以此對未來有一個新的展望。
2 關(guān)鍵技術(shù)介紹
2.1開發(fā)技術(shù)
本系統(tǒng)前端框架采用了比較流行的漸進(jìn)式JavaScript框架Vue.js。使用Vue-Router和Vuex實現(xiàn)動態(tài)路由和全局狀態(tài)管理,Ajax實現(xiàn)前后端通信,Element UI組件庫使頁面快速成型。后端部分:采用springboot作為開發(fā)框架,同時集成MyBatis、Redis等相關(guān)技術(shù)。
2.2 MVVM模式
MVVM是Model-View-ViewModel的簡寫。它本質(zhì)上就是MVC 的改進(jìn)版。MVVM 就是將其中的View 的狀態(tài)和行為抽象化,讓我們將視圖 UI 和業(yè)務(wù)邏輯分開。當(dāng)然這些事 ViewModel 已經(jīng)幫我們做了,它可以取出 Model 的數(shù)據(jù)同時幫忙處理 View 中由于需要展示內(nèi)容而涉及的業(yè)務(wù)邏輯。微軟的WPF帶來了新的技術(shù)體驗,如Silverlight、音頻、視頻、3D、動畫……,這導(dǎo)致了軟件UI層更加細(xì)節(jié)化、可定制化。同時,在技術(shù)層面,WPF也帶來了 諸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由來便是MVP(Model-View-Presenter)模式與WPF結(jié)合的應(yīng)用方式時發(fā)展演變過來的一種新型架構(gòu)框架。它立足于原有MVP框架并且把WPF的新特性糅合進(jìn)去,以應(yīng)對客戶日益復(fù)雜的需求變化。
2.3 MySQL數(shù)據(jù)庫
科技的進(jìn)步,給日常帶來許多便利:教室的投影器用到了虛擬成像技術(shù),數(shù)碼相機(jī)用到了光電檢測技術(shù),比如超市貨物進(jìn)出庫的記錄需要一個信息倉庫。這個信息倉庫就是數(shù)據(jù)庫,而這次的計算機(jī)硬件售賣系統(tǒng)也需要這項技術(shù)的支持。
用MySQL這個軟件,是因為它能接受多個使用者訪問,而且里面存在Archive等。它會先把數(shù)據(jù)進(jìn)行分類,然后分別保存在表里,這樣的特別操作就會提高數(shù)據(jù)管理系統(tǒng)自身的速度,讓數(shù)據(jù)庫能被靈活運用。MySQL的代碼是公開的,而且允許別人二次編譯升級。這個特點能夠降低使用者的成本,再搭配合適的軟件后形成一個良好的網(wǎng)站系統(tǒng)。雖然它有缺點,但是綜合各方面來說,它是使用者的主流運用的對象。
2.4 B/S結(jié)構(gòu)
B/S(瀏覽器/服務(wù)器)結(jié)構(gòu)是目前主流的網(wǎng)絡(luò)化的結(jié)構(gòu)模式,它能夠把系統(tǒng)核心功能集中在服務(wù)器上面,可以幫助系統(tǒng)開發(fā)人員簡化操作,便于維護(hù)和使用。只需要用戶在客戶端安裝360瀏覽器、谷歌瀏覽器、QQ瀏覽器等當(dāng)前大眾瀏覽器,在電腦里面安裝sqlserver、mysql數(shù)據(jù)庫等數(shù)據(jù)庫。安裝好的瀏覽器與服務(wù)器端的數(shù)據(jù)庫進(jìn)行信息數(shù)據(jù)的交互。很多專門軟件能夠做到的事情,采用B/S結(jié)構(gòu)模式也能實現(xiàn),它能夠結(jié)合Web瀏覽器技術(shù),ActiveX技術(shù)以及多種腳本語言等技術(shù)。幫助程序開發(fā)者節(jié)約了不少開發(fā)成本。目前B/S結(jié)構(gòu)成為程序開發(fā)主流結(jié)構(gòu),它最好的地方就是沒有地點限制還不用專門安裝軟件,筆記本或者電腦能夠上網(wǎng)就能訪問系統(tǒng)。系統(tǒng)使用B/S進(jìn)行開發(fā)在后期系統(tǒng)維護(hù)上面就會很省事,不用什么問題都在服務(wù)器上面操作,簡單的客戶端處理就解決部分問題,開發(fā)出來的程序跟用戶交互性上面也會增強(qiáng),還可以實時刷新瀏覽器進(jìn)行程序局部的數(shù)據(jù)信息更新。
圖1-1 B/S模式三層結(jié)構(gòu)圖
2.5spring boot框架介紹
Spring框架是Java平臺上的一種開源應(yīng)用框架,提供具有控制反轉(zhuǎn)特性的容器。盡管Spring框架自身對編程模型沒有限制,但其在Java應(yīng)用中的頻繁使用讓它備受青睞,以至于后來讓它作為EJB(EnterpriseJavaBeans)模型的補(bǔ)充,甚至是替補(bǔ)。Spring框架為開發(fā)提供了一系列的解決方案,比如利用控制反轉(zhuǎn)的核心特性,并通過依賴注入實現(xiàn)控制反轉(zhuǎn)來實現(xiàn)管理對象生命周期容器化,利用面向切面編程進(jìn)行聲明式的事務(wù)管理,整合多種持久化技術(shù)管理數(shù)據(jù)訪問,提供大量優(yōu)秀的Web框架方便開發(fā)等等。Spring框架具有控制反轉(zhuǎn)(IOC)特性,IOC旨在方便項目維護(hù)和測試,它提供了一種通過Java的反射機(jī)制對Java對象進(jìn)行統(tǒng)一的配置和管理的方法。Spring框架利用容器管理對象的生命周期,容器可以通過掃描XML文件或類上特定Java注解來配置對象,開發(fā)者可以通過依賴查找或依賴注入來獲得對象。Spring框架具有面向切面編程(AOP)框架,SpringAOP框架基于代理模式,同時運行時可配置;AOP框架主要針對模塊之間的交叉關(guān)注點進(jìn)行模塊化。Spring框架的AOP框架僅提供基本的AOP特性,雖無法與AspectJ框架相比,但通過與AspectJ的集成,也可以滿足基本需求。Spring框架下的事務(wù)管理、遠(yuǎn)程訪問等功能均可以通過使用SpringAOP技術(shù)實現(xiàn)。Spring的事務(wù)管理框架為Java平臺帶來了一種抽象機(jī)制,使本地和全局事務(wù)以及嵌套事務(wù)能夠與保存點一起工作,并且?guī)缀蹩梢栽贘ava平臺的任何環(huán)境中工作。Spring集成多種事務(wù)模板,系統(tǒng)可以通過事務(wù)模板、XML或Java注解進(jìn)行事務(wù)配置,并且事務(wù)框架集成了消息傳遞和緩存等功能。Spring的數(shù)據(jù)訪問框架解決了開發(fā)人員在應(yīng)用程序中使用數(shù)據(jù)庫時遇到的常見困難。它不僅對Java:JDBC、iBATS/MyBATIs、Hibernate、Java數(shù)據(jù)對象(JDO)、ApacheOJB和ApacheCayne等所有流行的數(shù)據(jù)訪問框架中提供支持,同時還可以與Spring的事務(wù)管理一起使用,為數(shù)據(jù)訪問提供了靈活的抽象。Spring框架最初是沒有打算構(gòu)建一個自己的WebMVC框架,其開發(fā)人員在開發(fā)過程中認(rèn)為現(xiàn)有的StrutsWeb框架的呈現(xiàn)層和請求處理層之間以及請求處理層和模型之間的分離不夠,于是創(chuàng)建了SpringMVC。
2.6 Vue.js 主要功能
Vue.js是一套構(gòu)建用戶界面的漸進(jìn)式框架。與其他重量級框架不同的是,Vue采用自底向上增量開發(fā)的設(shè)計。Vue 的核心庫只關(guān)注視圖層,并且非常容易學(xué)習(xí),非常容易與其它庫或已有項目整合。另一方面,Vue 完全有能力驅(qū)動采用單文件組件和Vue生態(tài)系統(tǒng)支持的庫開發(fā)的復(fù)雜單頁應(yīng)用。
Vue.js 的目標(biāo)是通過盡可能簡單的 API 實現(xiàn)響應(yīng)的數(shù)據(jù)綁定和組合的視圖組件。
Vue.js 自身不是一個全能框架——它只聚焦于視圖層。因此它非常容易學(xué)習(xí),非常容易與其它庫或已有項目整合。另一方面,在與相關(guān)工具和支持庫一起使用時,Vue.js 也能驅(qū)動復(fù)雜的單頁應(yīng)用。
3 系統(tǒng)分析
所謂系統(tǒng)分析就是,需求人員通過與客戶的溝通,所獲取的信息,然后把這些信息通過需求說明書的方式展示給用戶和開發(fā)人員。在軟件功能發(fā)展的歷史長河中,很長時間,特別是最開始的時候,需求分析的重要性并不被人們所認(rèn)同,例如當(dāng)時美國IBM公司為英國電信公司開發(fā)一套信息管理系統(tǒng),在需求不明確的情況下開始開發(fā),最初的工期為一年,由于需求獲取不清晰導(dǎo)致工期推遲了半年多,造成巨大損失。我們很多軟件公司也存在這種情況,邊需求,邊開發(fā),甚至與客戶沒有溝通清楚的情況下,直接照搬同類型的項目進(jìn)行更改,導(dǎo)致到系統(tǒng)驗收的時候,重新更改,造成了人力、物力的極大浪費。而導(dǎo)致這一切后果的原因就是需求獲取不及時、不清楚、不全面。
3.1 可行性分析
學(xué)生請假審批管理系統(tǒng)主要目標(biāo)是實現(xiàn)預(yù)約教室相關(guān)信息管理服務(wù)。在確定了目標(biāo)后,我們從以下四方面對能否實現(xiàn)本系統(tǒng)目標(biāo)進(jìn)行可行性分析。
3.1.1 技術(shù)可行性
學(xué)生請假審批管理系統(tǒng)主要采用java技術(shù),基于B/S結(jié)構(gòu),Mysql數(shù)據(jù)庫,對于應(yīng)用程序的開發(fā)要求具備完整功能,使用簡單的特點,并建立一個數(shù)據(jù)完整安全穩(wěn)定的數(shù)據(jù)庫。學(xué)生請假審批管理系統(tǒng)的開發(fā)技術(shù)具有很高可行性,且開發(fā)人員掌握了一定的開發(fā)技術(shù),所以系統(tǒng)的開發(fā)具有可行性。
3.1.2操作可行性
學(xué)生請假審批管理系統(tǒng)的登錄界面簡單易于操作,采用常見的界面窗口來登錄界面,通過電腦進(jìn)行訪問操作,會員只要平時使用過電腦都能進(jìn)行訪問操作。此系統(tǒng)的開發(fā)采用java語言開發(fā),基于B/S結(jié)構(gòu),這些開發(fā)環(huán)境使系統(tǒng)更加完善。本系統(tǒng)具有易操作、易管理、交互性好的特點,在操作上是非常簡單的。因此本系統(tǒng)可以進(jìn)行開發(fā)。
3.1.3 經(jīng)濟(jì)可行性
學(xué)生請假審批管理系統(tǒng)是基于B/S模式,采用Mysql數(shù)據(jù)庫儲存數(shù)據(jù),所要求的硬件和軟件環(huán)境,市場上都很容易購買,程序開發(fā)主要是管理系統(tǒng)的開發(fā)和維護(hù)。所以程序在開發(fā)人力、財力上要求不高,而且此系統(tǒng)不是很復(fù)雜,開發(fā)周期短,在經(jīng)濟(jì)方面具有較高的可行性。
3.1.4 法律可行性
此學(xué)生請假審批管理系統(tǒng)是自己設(shè)計的管理系統(tǒng),具有很大的實際意義。因為無論是軟件還是數(shù)據(jù)庫,采用的都是開源代碼,因此這個系統(tǒng)的開發(fā)和設(shè)計,并不存在侵權(quán)等問題,在法律上完全具有可行性。
綜上所述,學(xué)生請假審批管理系統(tǒng)在技術(shù)、經(jīng)濟(jì)、操作和法律上都具有很高的可行性,開發(fā)此程序是可行的。
3.2系統(tǒng)流程分析
3.2.1系統(tǒng)開發(fā)流程
學(xué)生請假審批管理系統(tǒng)開發(fā)時,首先進(jìn)行需求分析,進(jìn)而對系統(tǒng)進(jìn)行總體的設(shè)計規(guī)劃,設(shè)計系統(tǒng)功能模塊,數(shù)據(jù)庫的選擇等,本系統(tǒng)的開發(fā)流程如圖3-1所示
圖3-1系統(tǒng)開發(fā)流程圖
3.2.2 用戶登錄流程
為了保證系統(tǒng)的安全性,要使用本系統(tǒng)對系統(tǒng)信息進(jìn)行管理,必須先登陸到系統(tǒng)中。如圖3-2所示。
圖3-2 登錄流程圖
3.2.3 系統(tǒng)操作流程
用戶打開并進(jìn)入系統(tǒng)后,會先顯示登錄界面,輸入正確的用戶名和密碼,系統(tǒng)自動檢測信息,若信息無誤,則用戶會進(jìn)入系統(tǒng)功能界面,進(jìn)行操作,否則會提示錯誤無法登錄,操作流程如圖3-3所示。
圖3-3 系統(tǒng)操作流程圖
3.2.4 添加信息流程
管理員可以對信息等進(jìn)行信息的添加,用戶也可以對自己權(quán)限內(nèi)的信息進(jìn)行添加,輸入信息后,系統(tǒng)會自行驗證輸入的信息和數(shù)據(jù),若信息正確,會將其添加到數(shù)據(jù)庫內(nèi),若信息有誤,則會提示重新輸入信息,添加信息流程如圖3-4所示。
圖3-4 添加信息流程圖
3.2.5 修改信息流程
管理員可以對信息等進(jìn)行的修改,用戶也可以對自己權(quán)限內(nèi)的信息進(jìn)行修改,首先進(jìn)入修改信息界面,輸入修改信息數(shù)據(jù),系統(tǒng)進(jìn)行數(shù)據(jù)的判斷驗證,修改信息合法則修改成功,信息更新至數(shù)據(jù)庫,信息不合法則修改失敗,重新輸入。修改信息流程圖如圖3-5所示。
圖3-5 修改信息流程圖
3.2.6 刪除信息流程
管理員可以對信息等進(jìn)行信息的刪除,對要刪除的信息進(jìn)行選中后,點擊刪除按鈕,系統(tǒng)會詢問是否確定,若點擊確定,則系統(tǒng)會刪除掉選中的信息,并在數(shù)據(jù)庫內(nèi)對信息進(jìn)行刪除,刪除信息流程圖如圖3-6所示。
圖3-6 刪除信息流程圖
3.3系統(tǒng)用例分析
管理員用例圖
系統(tǒng)中的核心用戶是系統(tǒng)管理員,管理員登錄后,通過管理員菜單來管理后臺系統(tǒng)。主要功能有:首頁、用戶管理、公告通知、請假申請、請假審批等功能。管理員用例如圖3-7所示。
圖3-7 管理員用例圖
用戶用例圖
用戶進(jìn)入系統(tǒng)可以進(jìn)行首頁、通知公告、請假審批、請假申請等功能操作。用戶用例如圖3-8所示。
圖3-8用戶用例圖
4 系統(tǒng)設(shè)計
4.1 系統(tǒng)概述
進(jìn)過系統(tǒng)的分析后,就開始記性系統(tǒng)的設(shè)計,系統(tǒng)設(shè)計包含總體設(shè)計和詳細(xì)設(shè)計。總體設(shè)計只是一個大體的設(shè)計,經(jīng)過了總體設(shè)計,我們能夠劃分出系統(tǒng)的一些東西,例如文件、文檔、數(shù)據(jù)等。而且我們通過總體設(shè)計,大致可以劃分出了程序的模塊,以及功能。但是只是一個初步的分類,并沒有真正的實現(xiàn)。
整體設(shè)計,只是一個初步設(shè)計,而且,對于一個項目,我們可以進(jìn)行多個整體設(shè)計,通過對比,包括性能的對比、成本的對比、效益的對比,來最終確定一個最優(yōu)的設(shè)計方案,選擇優(yōu)秀的整體設(shè)計可以降低開發(fā)成本,增加公司效益,從這一點來講,整體設(shè)計還是非常重要的。
學(xué)生請假審批管理系統(tǒng)工作原理圖如圖4-1所示:
圖4-1 系統(tǒng)工作原理圖
4.2 系統(tǒng)結(jié)構(gòu)設(shè)計
系統(tǒng)架構(gòu)圖屬于系統(tǒng)設(shè)計階段,系統(tǒng)架構(gòu)圖只是這個階段一個產(chǎn)物,系統(tǒng)的總體架構(gòu)決定了整個系統(tǒng)的模式,是系統(tǒng)的基礎(chǔ)。學(xué)生請假審批管理系統(tǒng)的整體結(jié)構(gòu)設(shè)計如圖4-2所示。
圖4-2 系統(tǒng)結(jié)構(gòu)圖
4.3數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫是信息系統(tǒng)的基礎(chǔ)和核心。數(shù)據(jù)庫設(shè)計的好壞直接影響到信息系統(tǒng)開發(fā)的成敗。創(chuàng)建數(shù)據(jù)庫表首先確定實體的屬性和實體之間的關(guān)系。根據(jù)關(guān)系創(chuàng)建一個數(shù)據(jù)表。
4.3.1實體ER圖
數(shù)據(jù)庫是整個軟件編程中最重要的一個步驟,對于數(shù)據(jù)庫問題主要是判定數(shù)據(jù)庫的數(shù)量和結(jié)構(gòu)公式的創(chuàng)建。展示系統(tǒng)使用的是Mysql進(jìn)行對數(shù)據(jù)庫進(jìn)行管理,進(jìn)行保證數(shù)據(jù)的安全性、穩(wěn)定性等。
概念模型的設(shè)計是為了抽象真實世界的信息,并對信息世界進(jìn)行建模。它是數(shù)據(jù)庫設(shè)計的強(qiáng)大工具。數(shù)據(jù)庫概念模型設(shè)計可以通過E-R圖描述現(xiàn)實世界的概念模型。系統(tǒng)的E-R圖顯示了系統(tǒng)中實體之間的鏈接。而且Mysql數(shù)據(jù)庫是自我保護(hù)能力比較強(qiáng)的數(shù)據(jù)庫,下圖主要是對數(shù)據(jù)庫實體的E-R圖:
1.請假時間信息實體圖如圖4-3所示:
圖4-3請假時間信息實體圖
2.請假審批信息實體圖如圖4-4所示:
圖4-4請假審批實體圖
4.3.3 數(shù)據(jù)庫表設(shè)計
數(shù)據(jù)庫的表信息屬于設(shè)計的一部分,下面介紹數(shù)據(jù)庫中的各個表的詳細(xì)信息。
student表:
名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
student_id | int | 11 | 是 | 是 | 學(xué)生ID |
gender | varchar | 64 | 否 | 否 | 性別 |
id | varchar | 255 | 否 | 否 | 身份證 |
examine_state | varchar | 16 | 是 | 否 | 審核狀態(tài) |
recommend | int | 11 | 是 | 否 | 智能推薦 |
user_id | int | 11 | 是 | 否 | 用戶ID |
create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時間 |
update_time | timestamp | 0 | 是 | 否 | 更新時間 |
leave_approval表:
名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
leave_approval_id | int | 11 | 是 | 是 | 請假審批ID |
student_account | int | 11 | 否 | 否 | 學(xué)生賬號 |
full_name | varchar | 64 | 否 | 否 | 姓名 |
mobile_phone | varchar | 64 | 否 | 否 | 手機(jī) |
gender | varchar | 64 | 否 | 否 | 性別 |
id | varchar | 64 | 否 | 否 | 身份證 |
leave_time | varchar | 64 | 否 | 否 | 請假時間 |
reason_for_leave | varchar | 64 | 否 | 否 | 請假原因 |
length_of_leave | varchar | 64 | 否 | 否 | 請假時長 |
leave_type | varchar | 64 | 否 | 否 | 請假類型 |
headmaster | int | 11 | 否 | 否 | 班主任 |
instructor | int | 11 | 否 | 否 | 輔導(dǎo)員 |
hospital_leaders | int | 11 | 否 | 否 | 院領(lǐng)導(dǎo) |
head_teacher_approval_opinions | text | 0 | 否 | 否 | 班主任審批意見 |
counselor_approval_comments | text | 0 | 否 | 否 | 輔導(dǎo)員審批意見 |
approval_opinions_of_ leaders_of_the_institute | text | 0 | 否 | 否 | 院領(lǐng)導(dǎo)審批意見 |
recommend | int | 11 | 是 | 否 | 智能推薦 |
create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時間 |
update_time | timestamp | 0 | 是 | 否 | 更新時間 |
household_opinion表
名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
household_opinion_id | int | 11 | 是 | 是 | 住戶意見ID |
title | varchar | 64 | 否 | 否 | 標(biāo)題 |
message_time | date | 0 | 否 | 否 | 留言時間 |
message_person | int | 11 | 否 | 否 | 留言人 |
message_content | text | 0 | 否 | 否 | 留言內(nèi)容 |
examine_state | varchar | 16 | 是 | 否 | 審核狀態(tài) |
recommend | int | 11 | 是 | 否 | 智能推薦 |
create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時間 |
update_time | timestamp | 0 | 是 | 否 | 更新時間 |
leave_application表:
名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
leave_application_id | int | 11 | 是 | 是 | 請假申請ID |
student_account | int | 11 | 否 | 否 | 學(xué)生賬號 |
full_name | varchar | 64 | 否 | 否 | 姓名 |
mobile_phone | varchar | 64 | 否 | 否 | 手機(jī) |
gender | varchar | 64 | 否 | 否 | 性別 |
id | varchar | 64 | 否 | 否 | 身份證 |
leave_time | datetime | 0 | 否 | 否 | 請假時間 |
length_of_leave | int | 11 | 否 | 否 | 請假時長 |
location | varchar | 64 | 否 | 否 | 所在地點 |
leave_type | varchar | 64 | 否 | 否 | 請假類型 |
headmaster | int | 11 | 否 | 否 | 班主任 |
instructor | int | 11 | 否 | 否 | 輔導(dǎo)員 |
hospital_leaders | int | 11 | 否 | 否 | 院領(lǐng)導(dǎo) |
reason_for_leave | text | 0 | 否 | 否 | 請假原因 |
recommend | int | 11 | 是 | 否 | 智能推薦 |
create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時間 |
update_time | timestamp | 0 | 是 | 否 | 更新時間 |
instructor表:
名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
instructor_id | int | 11 | 是 | 是 | 輔導(dǎo)員ID |
gender | varchar | 64 | 否 | 否 | 性別 |
id | varchar | 255 | 否 | 否 | 身份證 |
examine_state | varchar | 16 | 是 | 否 | 審核狀態(tài) |
recommend | int | 11 | 是 | 否 | 智能推薦 |
user_id | int | 11 | 是 | 否 | 用戶ID |
create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時間 |
update_time | timestamp | 0 | 是 | 否 | 更新時間 |
hospital_leaders表:
名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
hospital_leaders_id | int | 11 | 是 | 是 | 院領(lǐng)導(dǎo)ID |
gender | varchar | 64 | 否 | 否 | 性別 |
id | varchar | 255 | 否 | 否 | 身份證 |
examine_state | varchar | 16 | 是 | 否 | 審核狀態(tài) |
recommend | int | 11 | 是 | 否 | 智能推薦 |
user_id | int | 11 | 是 | 否 | 用戶ID |
create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時間 |
update_time | timestamp | 0 | 是 | 否 | 更新時間 |
Headmaster表 :
名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
headmaster_id | int | 11 | 是 | 是 | 班主任ID |
gender | varchar | 64 | 否 | 否 | 性別 |
id | varchar | 255 | 否 | 否 | 身份證 |
examine_state | varchar | 16 | 是 | 否 | 審核狀態(tài) |
recommend | int | 11 | 是 | 否 | 智能推薦 |
user_id | int | 11 | 是 | 否 | 用戶ID |
create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時間 |
update_time | timestamp | 0 | 是 | 否 | 更新時間 |
|
|
|
|
|
|
5系統(tǒng)詳細(xì)設(shè)計
5.1數(shù)據(jù)庫訪問層的實現(xiàn)
從B/S架構(gòu)的原理可知,實驗室預(yù)約管理系統(tǒng)的各大模塊的實現(xiàn)均需要對數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行操作,具體包括查詢數(shù)據(jù)、寫入數(shù)據(jù)、更新數(shù)據(jù)和刪除數(shù)據(jù),因此,在開發(fā)各功能模塊前,連接數(shù)據(jù)庫文件在Resources 文件夾下的application.yml文件。
第一個參數(shù)代表MySQL數(shù)據(jù)庫的驅(qū)動,第二個參數(shù)代表要連接的數(shù)據(jù)庫,第三個和第四個參數(shù)代表數(shù)據(jù)庫連接名和密碼。
5.2注冊模塊的實現(xiàn)
用戶在填寫數(shù)據(jù)的時候必須與注冊頁面上的驗證相匹配否則會注冊失敗,注冊頁面的表單驗證是通過JavaScript進(jìn)行驗證的,用戶名的長度必須在6到18之間,郵箱必須帶有@符號,密碼和密碼確認(rèn)必須相同,你輸入的密碼,系統(tǒng)會根據(jù)你輸入密碼的強(qiáng)度給出指定的值,電話號碼和身份證號碼必須要求輸入格式與生活相符合,當(dāng)你前臺驗證通過的時候你點擊注冊,表單會將你輸入的值通過name值傳遞給后臺并保存到數(shù)據(jù)庫中。
用戶注冊流程圖如下圖所示。
圖5-1用戶注冊流程圖
用戶注冊界面如下圖所示。
圖5-1用戶注冊界面
用戶注冊的關(guān)鍵代碼如下。
/**
* 注冊
* @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);
}
5.3登錄模塊的實現(xiàn)
系統(tǒng)的登錄窗口是用戶的入口,用戶只有在登錄成功后才可以進(jìn)入訪問。通過在登錄提交表單,后臺處理判斷是否為合法用戶,進(jìn)行頁面跳轉(zhuǎn),進(jìn)入系統(tǒng)中去。
登錄合法性判斷過程:用戶輸入賬號和密碼后,系統(tǒng)首先確定輸入輸入數(shù)據(jù)合法性,然后在login.jsp頁面發(fā)送登錄請求,調(diào)用src下的mainctrl類的dopost方法來驗證。
用戶登錄模塊的IPO如下所示:
輸入:用戶名和密碼。
處理:
1)檢測用戶輸入的賬號、密碼是否正確及在數(shù)據(jù)庫已對應(yīng)存在。
2)從數(shù)據(jù)庫中提取記錄,并儲存在本地的session中(timeout默認(rèn)=30min)。
3)根據(jù)用戶名,將其顯示在系統(tǒng)首頁上。
輸出:是否成功的信息。
登錄流程圖如下所示。
圖5-1登錄流程圖
系統(tǒng)登錄界面如下所示。
圖5-1登錄界面圖
登錄關(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, "賬號或密碼不能為空");
}
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, "賬號或密碼不正確");
}
}
5.4用戶資料修改模塊的實現(xiàn)
用戶登錄/注冊成功之后可以修改自己的基本信息。修改頁面的表單中每一個input的name值都要與實體類中的參數(shù)相匹配,在用戶點擊修改頁面的時候,如果改后用戶名與數(shù)據(jù)庫里面重復(fù)了,頁面會提示該用戶名已經(jīng)存在了,否則通過Id來查詢用戶,并將用戶的信息修改為表單提交的數(shù)據(jù)。
5.5公告通知模塊的實現(xiàn)
公告通知信息過程中,首先通過公告ID得到公告數(shù)據(jù),將公告數(shù)據(jù)賦值給公告信息,調(diào)用insert方法將公告數(shù)據(jù)插入入住表中,最后查看個人歷史公告信息記錄,可以銷毀歷史共公告數(shù)據(jù)。
公告通知流程圖如下所示。
圖5-1公告通知流程圖
公告通知管理界面如圖所示。
圖5-1通知公告管理界面圖
通知公告關(guān)鍵代碼如下所示。
@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());
}
5.6請假申請模塊的實現(xiàn)
添加請假申請信息時,輸入必填字段后,表現(xiàn)層接受傳過來的請假申請信息參數(shù),再調(diào)用業(yè)務(wù)層的addSushe方法,經(jīng)過業(yè)務(wù)層到持久層的處理,完成對整個添加請假申請信息的操作。addSushe方法也和用戶管理中的addUser方法類似,同時做添加和修改工作。
修改請假申請信息時,選擇需要修改的請假申請進(jìn)行修改,調(diào)用業(yè)務(wù)層的editSushe方法,拿到該請假原本的信息并顯示到頁面,管理員再對需要修改的請假信息字段進(jìn)行修改,完成后調(diào)用addSushe方法,調(diào)用業(yè)務(wù)層的updateByKey方法,更新數(shù)據(jù)庫請假表的數(shù)據(jù)。
請假申請管理流程圖如下所示。
圖5-1請假申請管理流程圖
請假申請管理界面如下圖所示。
圖5-1請假申請管理界面圖
請假申請關(guān)鍵代碼如下所示。
@RequestMapping(value = {"/avg_group", "/avg"})
public Map<String, Object> avg(HttpServletRequest request) {
Query count = service.avg(service.readQuery(request), service.readConfig(request));
return success(count.getResultList());
}
5.7學(xué)生管理模塊的實現(xiàn)
管理員對系統(tǒng)學(xué)生的管理,包括管理員學(xué)生管理,注冊學(xué)生管理、昵稱、姓名修改,在yhzhgl.aspx.cs實現(xiàn)管理員學(xué)生的管理,包括錄入、刪除、修改,修改密碼通過SESSION獲取學(xué)生名,然后輸入新密碼,提交到mod.aspx.cs中,使用sql命令更新密碼添加學(xué)生后,學(xué)生也可以使用賬號和密碼登錄系統(tǒng)。
學(xué)生管理界面如下圖所示。
圖5-1學(xué)生管理界面圖
學(xué)生管理關(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();
}
5.8請假審批管理模塊
添加請假審批信息時,輸入必填字段后,表現(xiàn)層接受傳過來的請假審批信息參數(shù),再調(diào)用業(yè)務(wù)層的addSushe方法,經(jīng)過業(yè)務(wù)層到持久層的處理,完成對整個添加請假審批信息的操作。addSushe方法也和用戶管理中的addUser方法類似,同時做添加和修改工作。
修改請假信息時,選擇需要修改的請假審批進(jìn)行修改,調(diào)用業(yè)務(wù)層的editSushe方法,拿到該請假審批原本的信息并顯示到頁面,管理員再對需要修改的請假信息字段進(jìn)行修改,完成后調(diào)用addSushe方法,調(diào)用業(yè)務(wù)層的updateByKey方法,更新數(shù)據(jù)庫的請假審批表的數(shù)據(jù)。
請假審批管理流程圖如下所示。
圖5-1請假審批管理流程圖
請假審批管理界面如下圖所示。
圖5-1請假審批管理界面圖
請假審批管理關(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();
}
6系統(tǒng)測試
一個系統(tǒng)設(shè)計好后,就會進(jìn)入測試階段,測試的目標(biāo)是檢驗設(shè)計好的網(wǎng)站是否可以正常無誤的運行,盡可能的發(fā)現(xiàn)網(wǎng)站的問題,已使后期網(wǎng)站投入使用后網(wǎng)站盡少出錯。
6.1 測試定義
系統(tǒng)測試主要是判斷系統(tǒng)是否可以正常運行,功能模塊是否可以實現(xiàn)操作。程序代碼中是否有錯誤出現(xiàn)。測試程序是開發(fā)過程中的一個主要問題。就算系統(tǒng)完成的再好,再進(jìn)行程序測試時也會發(fā)現(xiàn)一個從來沒有被發(fā)現(xiàn)的錯誤信息。
測試不僅是系統(tǒng)開發(fā)的開始,而且應(yīng)該貫穿整個系統(tǒng)的整個生命周期。評估系統(tǒng)質(zhì)量的方法不局限于系統(tǒng)編碼和過程,應(yīng)該與軟件設(shè)計工作和歷史需求分析密切相關(guān)。系統(tǒng)錯誤,不一定是代碼錯誤,可能是階段的設(shè)計摘要和設(shè)計細(xì)節(jié)存在問題,問題也可能出現(xiàn)在需求分析階段。從實際情況來看,最初的問題很可能是一個小錯誤,根據(jù)按鈕的原理,按鈕后的按鈕位錯將是所有位錯。該系統(tǒng)的原因也同樣適用,隨著后續(xù)的開發(fā)工作,誤差將越來越嚴(yán)重。因此就應(yīng)該對系統(tǒng)進(jìn)行測試,在一開始就發(fā)現(xiàn)系統(tǒng)中存在的問題,就能保證以后系統(tǒng)能夠正常穩(wěn)定的運行。在測試系統(tǒng)中,開發(fā)人員應(yīng)該站在用戶的角度來處理測試工作,而現(xiàn)在主要的測試方法是黑盒測試。測試的目的可以概括為以下幾點:首先,用戶界面和用戶需求是一致的,設(shè)置界面和設(shè)計風(fēng)格統(tǒng)一;第二,創(chuàng)新設(shè)計接口規(guī)范設(shè)計標(biāo)準(zhǔn),具有獨特的審美特征;最后,人類傳統(tǒng)的接口以滿足審美需求,不能盲目地追求一種獨特的,合理的規(guī)劃布局,符合審美標(biāo)準(zhǔn)。
6.2 測試目的
測試的目的在于要對系統(tǒng)的穩(wěn)定和可操作性能進(jìn)行對照檢查。對于軟件的開發(fā)利用最終的目的在最后的測試和試用,這是一個不可缺少的重要環(huán)節(jié)。對于軟件開發(fā)者而言,在對每一個單獨的功能進(jìn)行編排時候,都要有單獨的測試,并通過測試階段才可以研發(fā)多個功能性軟件,這樣既縮短了研發(fā)時間,也可以在的單個的早期測試中發(fā)現(xiàn)問題,以免融合后的軟件,在查找問題時就很難快速解決或者急速定位問題。
學(xué)生請假審批管理系統(tǒng)開發(fā)設(shè)計完成后,需要對其進(jìn)行系統(tǒng)測試,測試的主要目的就是發(fā)現(xiàn)并找出系統(tǒng)中存在的問題,并及時的進(jìn)行解決,確保系統(tǒng)可以正常穩(wěn)定的運行下去,在進(jìn)行系統(tǒng)測試的時候,在一定要非常的認(rèn)真、仔細(xì),切記不能粗心,不能放過一個漏洞,測試時候一定不要著急,要按照之前指定好的測試步驟一步一步進(jìn)行,并且將測試的結(jié)果進(jìn)行詳細(xì)的記錄,我們在進(jìn)行測試的時候做好選擇自動化的測試,這樣既可以節(jié)省時間而且也能確保測試的準(zhǔn)確性,如果采用人工測試的方法就不會這么的方便,由于人工測試有很多不確定的因素,在測試過程中很可能會出現(xiàn)一些問題,用機(jī)器測試就不會出現(xiàn)任何的問題,而且機(jī)器不會疲憊會一直二等工作下去。在測試的時候一定要非常專注,時刻關(guān)注著測試的結(jié)果,一但發(fā)現(xiàn)異常及時進(jìn)行修改,最后,測試完之后的文檔應(yīng)該保存下來,方便以后測試時用到。系統(tǒng)測試的方法有很多,對于本學(xué)生請假審批管理系統(tǒng) 的測試,我們使用了測試用得最多的黑盒測試方法來對該系統(tǒng)進(jìn)行測試。
6.3測試方案
對測試計劃的把握是測試方案的重中之重。所有的技術(shù)難點應(yīng)該都被包含在這個測試計劃之中。而且我們要保證能與目標(biāo)形成一致性,以至于能夠測試出一些主要存在的錯誤和一些錯誤的漏洞。可以完美解決這些問題就只有白盒測試或者黑盒測試[14]。
構(gòu)造測試是白盒測試的另一個名字,了解與分析程序的結(jié)構(gòu)以及性能功用的,從而我們可以得到最終想要的結(jié)果并且觀察出是不是每一條程序都能得到。
性能測試是黑盒測試別稱,程序本身的運作通過程序的進(jìn)程來觀察,主要是看一下程序是不是能夠像我們預(yù)期的目標(biāo)那樣發(fā)展,看一看我們的程序最終能不能完整的得到我們最后想要的功能和儲存想得到的數(shù)據(jù),到最后看一下我們的這個程序完整性能不能達(dá)到要求。
(1)模塊測試
單元測試就是模塊測試,顧名思義就是測試每個模塊所承擔(dān)的功能是否能夠?qū)崿F(xiàn),這個測試就是為了找出代碼在實際的設(shè)計運轉(zhuǎn)中某一些小的程序所出現(xiàn)的偏差,很好地改正這些錯誤,就說明我們模塊測試進(jìn)行很成功過。
(2)集成測試:
集成測試就是對系統(tǒng)的測試以及對他子系統(tǒng)的一些性能測試,他檢查的事系統(tǒng)的包裝程序信息。找出其中的問題。他的優(yōu)勢主要有以下這幾點:
軟件耗費較少。
可以提前發(fā)現(xiàn)端口的錯誤。
更好的地位系統(tǒng)中錯誤的位置。
從底部往上面進(jìn)行的方案針對于偏下層的結(jié)構(gòu),而中間的結(jié)構(gòu)就采用折中的方法。
(3)驗收測試:
終于到了結(jié)尾性的工作了。就是為了給用戶看一下我們的系統(tǒng)功能是否達(dá)到了預(yù)期的效果。我采用了性能測試也就是黑盒測試對系統(tǒng)進(jìn)行測試。
其結(jié)果是分別是:
有一定的差異在用戶的需求。
再者就是結(jié)果與之差不了多少。
到了最后了,我們發(fā)現(xiàn)的問題都是與用戶的需求存在一定的關(guān)聯(lián)。
1、登錄測試
測試點:登錄
測試的目標(biāo):輸入賬號密碼以及驗證碼后系統(tǒng)會自動進(jìn)行驗證是否正確。
所用的環(huán)境:Windows10和IE瀏覽器。
輸入信息:用戶名、密碼。
步驟:
(1)首先我們打來瀏覽器,進(jìn)入該系統(tǒng)的登錄界面。
(2)在進(jìn)入頁面登錄部分以后可以進(jìn)行對用戶名、密碼進(jìn)行測試,具體測試輸入情況如下表6.1所示。
表6.1 登錄測試
情況 | 用戶名輸入 | 密碼輸入 | 期望結(jié)果 |
(1) | 15546219225 | 1244566 | 提示“用戶名或者密碼錯誤,或賬號未經(jīng)審核” |
(2) | aaaaa | 123456 | 提示“用戶名或密碼錯誤,或者賬號未經(jīng)審核” |
(3) | 15546219225 | hangguowei | 登陸成功 |
2、教室預(yù)約信息測試:
表6.2 教室預(yù)約管理測試用例表
用例編號 | UC-TEST-003 | 測試名稱 | 客戶信息 | |
前提條件 | 請假審批管理 | |||
步驟 | 操作描述 | 數(shù)據(jù) | 期望結(jié)果 | |
1 | 點擊請假審批管理查看詳情按鈕 | 無 | 跳轉(zhuǎn)到請假審批管理詳情 | |
2 | 點擊添加按鈕 | 無 | 跳轉(zhuǎn)到添加頁面 | |
3 | 選中添加后按鈕 | 無 | 跳轉(zhuǎn)到請假審批管理頁面 | |
測試說明 | 用戶未登錄時到步驟3跳轉(zhuǎn)到登錄頁面 | |||
測試結(jié)果 | 成功 | 測試人 |
| |
6.4系統(tǒng)分析
本學(xué)生請假審批管理系統(tǒng)設(shè)計要求基本都可以達(dá)到,此系統(tǒng)具有完整的軟件功能,良好的用戶界面,能夠正確的處理錯誤信息,而且能夠準(zhǔn)確的提出錯誤的種類。但是系統(tǒng)測試時也出現(xiàn)了一些系統(tǒng)的不足和缺陷,所以在今后的日子里我會對其視覺上的不足作出修改,其次系統(tǒng)的代碼和數(shù)據(jù)庫出現(xiàn)了非常多的冗余現(xiàn)象,都是因為對編程技術(shù)的應(yīng)用不夠熟練,在日后我會加強(qiáng)自己的自身學(xué)習(xí)和能力,減少這樣的冗余現(xiàn)象。
經(jīng)過對上述的測試結(jié)果分析,本學(xué)生請假審批管理系統(tǒng)無論是在技術(shù)方面,還是操作方面,還是經(jīng)濟(jì)方面都是完全可以實行的,并且經(jīng)過測試,該系統(tǒng)操作簡單,所有的功能都可以實現(xiàn),因此該系統(tǒng)可以滿足用戶的使用需求,值得被推廣。
總體說來,軟件通過測試。
結(jié) 論
本系統(tǒng)通過對java和Mysql數(shù)據(jù)庫的簡介,從硬件和軟件兩反面說明了學(xué)生請假審批管理系統(tǒng)的可行性,本文結(jié)論及研究成果如下:實現(xiàn)了java與Mysql相結(jié)合構(gòu)建的學(xué)生請假審批管理系統(tǒng),網(wǎng)站可以響應(yīng)式展示。通過本次學(xué)生請假審批管理系統(tǒng)的研究與實現(xiàn),我感到學(xué)海無涯,學(xué)習(xí)是沒有終點的,而且實踐出真知,只有多動手才能盡快掌握它,經(jīng)驗對系統(tǒng)的開發(fā)非常重要,經(jīng)驗不足,就難免會有許多考慮不周之處。比如要有美觀的界面,更完善的功能,才能吸引更多的用戶。
由于在此之前對于java知識沒有深入了解,所以從一開始就碰到許多困難,例如一開始的頁面顯示不規(guī)范、數(shù)據(jù)庫連接有問題已經(jīng)無法實現(xiàn)參數(shù)的傳遞等等,不過通過在網(wǎng)上尋找有關(guān)資料以及同學(xué)的幫助下最后都得到了解決,在此過程中,我不僅學(xué)到了很多知識,也提高了自己解決問題的能力,尤其是學(xué)會如何從大量的信息中篩選出所需有用的信息,同時我更加深刻的體會到了,雖然書本上的大部分知識都是有價值,正確的,但實際上每個人編程的思路和對數(shù)據(jù)處理的方法、思想都是不同的,這就要求我們一定要通過實踐才能找到解決問題的方案。在此次畢業(yè)設(shè)計活動中,我不斷的提高了自己,也得到了寶貴的經(jīng)驗,我相信這些對我以后的發(fā)展都會有很大幫助。
通過這次學(xué)生請假審批管理系統(tǒng)的開發(fā),我參考了很多相關(guān)系統(tǒng)的例子,取長補(bǔ)短,吸取了其他系統(tǒng)的長處,逐步對該系統(tǒng)進(jìn)行了完善,但是該系統(tǒng)還是有很多的不足之處,有待以后進(jìn)一步學(xué)習(xí)。
實踐證明,學(xué)生請假審批管理系統(tǒng)有著非常好的發(fā)展前景,經(jīng)過測試運行,系統(tǒng)各項功能都十分完善,界面漂亮,使用方便,操作容易,在技術(shù)理論上已經(jīng)成熟。
致 謝
大學(xué)的學(xué)習(xí)生活在這個季節(jié)將結(jié)束,但是在我的生命這僅僅只是一個逗號,我將面對的旅程的另一個的開始。通過這次畢業(yè)設(shè)計的整個開發(fā)過程,從需求分析到具體功能實現(xiàn),再到最終測試和維護(hù)的理解有了很大的進(jìn)步,讓我對系統(tǒng)開發(fā)有了更深刻的認(rèn)識,對我個人的實踐能力和解決問題的能力,都有了很大的幫助。這是這次畢業(yè)設(shè)計最大的收獲。
首先要感謝我的指導(dǎo)老師,他在論文寫作上,給予了我各種無私的幫助,治學(xué)嚴(yán)謹(jǐn),嚴(yán)格要求,使我獲得了很大的收獲。老師深厚的理論知識和豐富的實踐經(jīng)驗,都深深的影響到我,在這方面,我謹(jǐn)表示衷心的感謝。
其次,我還要對所有的老師和同學(xué)表示感謝,他們在我學(xué)習(xí)的過程中,都積極的提供了很多幫助,無論是專業(yè)知識,還是實踐操作技能,也能夠讓我在論文寫作中,遇到的一些難題迎刃而解。
最后,對閱讀和評審本論文的各位老師表示衷心的感謝!
參考文獻(xiàn)
[1]王鑫,馮程,曹江波,張自然. 基于Spring Boot的數(shù)據(jù)可視化方法、裝置以及存儲介質(zhì)[P]. 北京市:CN113986205A,2022-01-28.
[2]李艷杰.基于JAVA與MySQL數(shù)據(jù)庫的移動端題庫練習(xí)系統(tǒng)的設(shè)計與實現(xiàn)[J].黑龍江科學(xué),2022,13(02):56-57.
[3]王一竹.基于MySQL的圖書館信息管理系統(tǒng)設(shè)計[J].電腦編程技巧與維護(hù),2022(01):93-95+116.
[4]楊英櫻,喬運華,班玉榮.基于spring boot微服務(wù)架構(gòu)的RS10系統(tǒng)管理[J].制造業(yè)自動化,2021,43(12):193-196.
[5]馮凱.“MySQL數(shù)據(jù)庫”課程教學(xué)中常見問題探析[J].無線互聯(lián)科技,2021,18(24):158-159.
[6]劉娟,任光芹,左欣,湛佳軍,崔忠偉.基于Spring Boot的財政一體化管控平臺設(shè)計與實現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2021,11(12):78-80.
[7]鄒燕飛,劉淑英,黃旺.基于Spring Boot的扶貧信息管理系統(tǒng)的設(shè)計與實現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,2021,39(11):155-157.
[8]焦斌斌.基于Spring Boot研究生考試系統(tǒng)的設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2021,17(32):78-80.
[9]王嘉慶,邢佑耐.物聯(lián)網(wǎng)背景下中職學(xué)生綜合管理系統(tǒng)的設(shè)計[J].辦公自動化,2021,26(15):23-25.
[10]金明俐. 基于Spring Boot與Vue框架的叫號系統(tǒng)的設(shè)計與實現(xiàn)[D].中國地質(zhì)大學(xué)(北京),2021.
[11]Bouamrane Karim,Matallah Houcine,Belalem Ghalem. Comparative Study Between the MySQL Relational Database and the MongoDB NoSQL Database[J]. International Journal of Software Science and Computational Intelligence (IJSSCI),2021,13(3):
[12]Xinwen Zhang,Siyuan Wen,Rui Wang. Implementation of Vehicle Management System Based on Spring Boot and VUE[C]//第33屆中國控制與決策會議論文集(9).,2021:519-523.
[13]周清松,付星宇.高校學(xué)生請假管理系統(tǒng)的設(shè)計與開發(fā)[J].電腦知識與技術(shù),2021,17(13):63-66+85.
[14]Mavrich Travis N,Gauthier Christian,Abad Lawrence,Bowman Charles A,Cresawn Steven G,Hatfull Graham F. pdm_utils: a SEA-PHAGES MySQL phage database management toolkit.[J]. Bioinformatics (Oxford, England),2020,37(16):
[15]楊超智. 基于Spring boot框架的預(yù)警監(jiān)測平臺[C]//中國移動5G天線產(chǎn)業(yè)技術(shù)研討會論文集.,2020:90-92.
[16]羅萬新,唐合丞.基于學(xué)生管理系統(tǒng)處理學(xué)生事務(wù)技巧[J].電子世界,2020(16):25-26.
[17]閆博.混合模式下高校學(xué)生請假管理系統(tǒng)設(shè)計研究[J].信息通信,2020(08):163-164.
[18]楊華,陳水容,唐天國,王麗,胡振,羅江碧.基于混合模式的學(xué)生請假管理系統(tǒng)的研究與開發(fā)[J].電腦知識與技術(shù),2020,16(07):69-70+84.
[19]楊曉芳. 保山學(xué)院學(xué)生管理系統(tǒng)研究與分析[D].云南大學(xué),2017.
免費領(lǐng)取項目源碼,請關(guān)注點贊+私聊
總結(jié)
以上是生活随笔為你收集整理的(附源码)springboot+mysql+基于Java的学生请销假审批管理系统的设计与实现 毕业设计130939的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C51单片机——温度传感器
- 下一篇: 【python学习】easy_insta