計算機科學與技術-基于.net MVC的學生網上請假系統(tǒng)設計與實現-以松田學院為例_第1頁
計算機科學與技術-基于.net MVC的學生網上請假系統(tǒng)設計與實現-以松田學院為例_第2頁
計算機科學與技術-基于.net MVC的學生網上請假系統(tǒng)設計與實現-以松田學院為例_第3頁
計算機科學與技術-基于.net MVC的學生網上請假系統(tǒng)設計與實現-以松田學院為例_第4頁
計算機科學與技術-基于.net MVC的學生網上請假系統(tǒng)設計與實現-以松田學院為例_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

緒論系統(tǒng)的開發(fā)背景隨著社會的發(fā)展,曾經不同規(guī)模的競爭現在已經成為了社會不同領域之前技術的競爭,人才與管理間的競爭,而計算機技術的進步與發(fā)展,也離不開軟件的日益更新和進步。在現階段,在電腦軟件的更新和替換的過程中,已經涉及到各種領域都不斷向網絡化發(fā)展,如政府機關,公司基層,各大高校等。而作為學生的我,哪怕不經常曠課和請假,但是難免會遇到緊急的事情的馬上請假去辦,可是在學校請假的步驟卻很繁瑣。學生要先和老師要請假條并且寫好,然后給老師批準,并且還得考慮到老師是否在辦公室,所以有時候就會出現很多不必要的麻煩。因此為了學生和老師,也是為了自己的方便,我也根據了自己考慮實際情況和需求開發(fā)了這個學生網上請假系統(tǒng)。問題描述在考慮到做這個軟件之前,我也考慮到自己所學的知識是有限的,而且在這之前自己也從來沒有接觸過這種類似的軟件和程序,因此很多功能的具體實現也心里沒底,所以我也只能用些簡單的功能來代替掉目前社會商用水平的功能,比如在做系統(tǒng)的設置界面時,怎么做才可以讓大家更適應,快捷的了解并使用到這個軟件,如何優(yōu)化頁面的UI,如何提高這個系統(tǒng)未來的拓展性和開發(fā)潛力等,這些都是很多所面臨的問題。技術分析現階段社會比較主流的軟件模式框架模式是ModelViewController,簡稱MVC。MVC每個字母都代表一個意思,分別是模型、視圖和控制器三個基本部分。簡單點來說,就是降低程序代碼之間的耦合度。MVC的設計模式簡單來說就是分成五個模塊。分別是View層是程序處理顯示數據的部分;DO層是對數據對象的封裝;DB層是程序連接數據庫的層,也是算中間層;DAO層程序對數據庫操作層;Control層是程序處理用戶交互的層。

相關技術介紹HTML網頁技術HTML是現階段制作網頁的常用語言,它平常都是用于制作靜態(tài)頁面。它的命令是可以體現文字信息、鏈接信息、圖形信息和表格信息等等?,F在它被大眾普遍接受廣泛應用在網絡上。JSP腳本語言JSP可以放在在html里使用,也可以獨自使用,它同時也具備有很多種優(yōu)點,可以講,Web腳本技術的先驅是JSP?,F代編程語言(像C,Java和Perl等)的一些最好的特點都融合在JSP里,Web服務器里的一部分配置標準是由JSP、Tomcat和數據庫等的拼裝在一起的。C#語言C#語言是微軟開創(chuàng)的一種最新的、面向對象的編程語言。程序員可以利用這個語言快速地編寫各種基于Microsoft.NET平臺的應用程序,該平臺還提供許多服務和工具,使得計算與通訊領域得到最大程度地開發(fā)。雖然在這普遍使用java的年代,畢竟C#是微軟的,但是我還是相信C#在社會還是有自己不可動搖的地位的。

需求分析可行性分析在技術性方面,MVC框架分層可以很好做到前后端分離,這樣對于程序員對項目的開發(fā)是很有幫助的。由于MVC的分層,降低了系統(tǒng)各層之間的耦合度,使得程序員在開發(fā)的同時可以專注負責自己的開發(fā)模塊,也不會相互影響。這樣對項目的后期修改也是很大幫助的,一旦一個地方出了問題或者需要修改,也不需要整體修改。實用性方面,本次設計的主要任務是在學生網上請假系統(tǒng)內學生請假、老師批假、學生信息添加及綁定等,符合當前潮流的發(fā)展。從用戶角度出發(fā),可以同時考慮用戶的便利和學校的工作效率出發(fā),提高網上請假的實用性。功能需求分析學生網上請假系統(tǒng)是用戶通過正確的填寫學號或者工號和密碼進入系統(tǒng),這個系統(tǒng)分為兩大客戶端,一個是學生端和另一個是教師端,學生端分為請假申請、銷假申請、個人請假記錄查詢,教師端分為請假審批、銷假審批、學生銷假記錄查詢和學生請假記錄查詢。學生網上請假系統(tǒng)使用者分別為學生和教師,老師審批學生的請假,前提都是學生要在系統(tǒng)發(fā)出申請信息,而只有等到老師批準之后學生才可以提出申請銷假。學生用例以下圖3.1是學生端用例圖,學生的功能模塊有登錄、申請請假、申請銷假、查詢請假記錄這個的操作。圖3.1學生用例圖學生用例規(guī)約登錄參與者學生需要用戶名和密碼登錄到系統(tǒng),才可以進行對應不同的操作,學生的登錄用戶名為學號,初始化密碼為學號,如表3.1所示。表3.1學生登錄模塊用例規(guī)約表用例編號UC-001用例名稱登錄功能描述驗證用戶名和密碼,確認是學生登錄。執(zhí)行者學生前置條件用戶名和密碼經過驗證準確并通過后置條件學生登錄成功,并可進行對系統(tǒng)相關事務處理?;韭窂?、學生輸入用戶名和密碼,并且登錄系統(tǒng)1.1學生輸入用戶名和密碼并按下登錄鍵,系統(tǒng)向數據庫發(fā)送驗證請求1.2數據庫接收請求,對用戶名和密碼進行驗證1.3數據庫將驗證結果回傳到請假系統(tǒng)擴展1.1、輸入的密碼只能是數字和英語單詞1.2、對用戶名、密碼進行驗證1.2.1、輸入的信息與數據庫的數據匹配成功,則正常登錄1.2.2、輸入的信息與數據庫的數據匹配失敗,提示重新輸入字段列表用戶名密碼業(yè)務規(guī)則備注申請請假參與者學生需要先登錄系統(tǒng)進入到學生在請假系統(tǒng)中,填寫請假申請單,請假申請單會提交給老師管理系統(tǒng)進行審批,如下表3.2所示。

表3.2學生申請請假用例規(guī)約表用例編號UC-002用例名稱申請請假功能描述學生創(chuàng)建新的請假申請單,然后填寫請假信息,并把申請信息提交給老師執(zhí)行者學生前置條件學生正常登錄到系統(tǒng)后,先完善好個人信息打開請假管理頁面后置條件系統(tǒng)將保存該條請假記錄創(chuàng)建新的請假單并生成獨有的的申請編號創(chuàng)建新的請假申請流程實例記錄提交后不能夠再修改基本路徑學生選擇創(chuàng)建請假申請單學生點擊“請假”按鈕,系統(tǒng)會通過查詢學生ID,查詢出當前的學生是否還有沒有銷假的記錄,如果存在沒有銷假的請假記錄,顯示你需要銷假后再申請;如果沒有未銷假記錄,則顯示出請假申請單。學生錄入本人外出去向、請假原因、時間范圍(開始時間,結束時間)、圖片附件,不能為空,向數據庫發(fā)送錄入請求。數據庫接受到請求后,將學生的請假信息錄入到數據庫中,系統(tǒng)回傳到界面,顯示所有請假的界面擴展字段列表外出去向、請假原因、開始時間、結束時間業(yè)務規(guī)則備注申請銷假參與者學生需要先登錄系統(tǒng)進入到學生在請假系統(tǒng)中,學生在系統(tǒng)點擊銷假申請時,如果申請成功,此時請假信息中的狀態(tài)會修改為申請銷假,否則提示申請銷假失敗,如下表3.3所示。表3.3學生申請銷假用例規(guī)約表用例編號UC-003用例名稱申請銷假功能描述學生成功進入請假界面,點擊銷假,然后再次確認申請銷假執(zhí)行者學生前置條件學生打開學生網上請假系統(tǒng),成功登錄后進入請假系統(tǒng)后置條件登錄成功后,系統(tǒng)把相應的權限頁面基本路徑學生向系統(tǒng)發(fā)出銷假申請,而且等待系統(tǒng)驗證1.1如果顯示申請成功,系統(tǒng)將返回請假界面等待輔導員審核1.2如果顯示申請失敗,系統(tǒng)就顯示提示申請銷假失敗,請重新申請擴展字段列表業(yè)務規(guī)則備注查詢請假記錄參與者學生需要先登錄系統(tǒng)進入到學生在請假系統(tǒng)中,學生通過系統(tǒng)點擊個人“請假歷史”,系統(tǒng)對該學生請假記錄查詢,如果查詢成功,學生請假的記錄將會顯示在頁面上,如表3.4所示。表3.4學生查詢請假記錄用例規(guī)約表用例編號UC-004用例名稱查詢請假記錄功能描述學生進入請假界面后,點擊歷史請假,系統(tǒng)顯示歷史請假記錄執(zhí)行者學生前置條件學生打開學生網上請假系統(tǒng),成功登錄后進入請假系統(tǒng)后置條件登錄成功后,系統(tǒng)把相應的權限頁面基本路徑學生點擊“歷史請假”按鈕,系統(tǒng)查詢請假記錄1.1如果驗證成功,則顯示歷史請假記錄1.2如果驗證失敗,則提示查詢失敗或你沒有歷史請假記錄,請重新申請擴展字段列表業(yè)務規(guī)則備注學生相關順序圖學生請假申請順序圖該順序圖反映了學生對請假申請的一系列操作如下:(1)學生登錄請假系統(tǒng)后,發(fā)送請假申請到請假申請控制類中。(2)檢驗該學生是否有可以申請請假的權限,如果有,繼續(xù)到下一步;否則,系統(tǒng)再次檢驗。(3)系統(tǒng)獲取該學生是否有未銷假記錄到請假記錄信息內系統(tǒng)自動查詢.(4)如果該學生有未銷假的信息,則顯示出未銷假記錄的信息(不可以請假)。(5)顯示請假申請單,并提示填寫申請單(可請假)。(6)學生在界面上填寫請假信息。(7)提交請假信息單。(8)創(chuàng)建請假記錄對象。(9)系統(tǒng)驗證請假信息填寫的準確性。(10)驗證完成正確后,保存請假記錄。(11)保存成功后,系統(tǒng)返回請假詳情。(12)顯示保存成功的提示到頁面中。(13)顯示保存失敗的提示到頁面中。如圖3.2所示。圖3.2學生請假申請順序圖學生銷假申請順序圖(1)學生點擊銷假按鈕,系統(tǒng)發(fā)送銷假申請到銷假申請控制類中。(2)該學生的銷假申請,系統(tǒng)對此進行異常的判斷。(3)在頁面中顯示申請銷假成功(正常)。(4)在頁面中顯示申請失敗,同時提示重新申請(異常)。如圖3.3所示。圖3.3學生銷假申請順序圖學生請假查詢順序圖(1)學生發(fā)送查詢信息。(2)創(chuàng)建請假記錄的對象。(3)數據庫將請假歷史信息回送到請假管理界面。(4)顯示該學生的請假詳情在界面中。如圖3.4所示。圖3.4學生請假查詢順序圖3.2.4老師用例以下圖3.5是老師端用例圖,學生的功能模塊有登錄、待審請假、查詢請假記錄、待審銷假、查詢銷假記錄這個的操作,如下圖3.5所示。圖3.5老師用例圖老師用例規(guī)約登錄參與者老師需要用戶名和密碼登錄到系統(tǒng),才能進行相應的操作,系統(tǒng)中設置老師的登錄用戶名為工號,初始化密碼為工號,如表3.5所示。表3.5老師登錄用例規(guī)約表用例編號UC-005用例名稱登錄功能描述驗證工號和密碼,確保是管理員登錄。執(zhí)行者老師前置條件工號和密碼經過驗證準確并通過后置條件老師登錄成功,并可進行對系統(tǒng)相關事務處理?;韭窂?、老師輸入用戶名和密碼,然后登錄系統(tǒng)1.1老師輸入賬戶號碼和密碼并按下登錄鍵,系統(tǒng)向數據庫發(fā)送驗證請求1.2數據庫接收請求,對用戶名和密碼進行驗證1.3數據庫將驗證結果回傳到請假系統(tǒng)擴展1.1、輸入的密碼只能是數字和英語單詞1.2、對賬戶、密碼進行驗證1.2.1、輸入的信息與數據庫的數據匹配成功,則正常登錄1.2.2、輸入的信息與數據庫的數據匹配失敗,提示重新輸入字段列表用戶名密碼業(yè)務規(guī)則備注待審請假參與者老師需要先登錄系統(tǒng)進入到老師管理系統(tǒng)中,老師通過系統(tǒng)查看學生請假申請單,自行審批學生是否給予請假,并填寫審核意見提交,如表3.6所示。表3.6老師待審請假用例規(guī)約表用例編號UC-006用例名稱待審請假功能描述老師登錄系統(tǒng)后,審批自己學生的請假申請,并提交審核意見。執(zhí)行者老師前置條件老師正常登錄到系統(tǒng),同時打開待審請假頁面中后置條件該老師負責的學生,有學生的請假申請需要審批,并進行對系統(tǒng)相關事務盡心處理基本路徑老師登錄系統(tǒng)后,點擊“待審請假”按鈕系統(tǒng)顯示該老師待審請假的信息老師對學生的請假申請進行審批,并填寫審批意見,并向數據庫發(fā)送給信息增加請求數據庫接受請求后,將審批通過的信息及審批意見寫入數據庫,然后回傳到請假歷史界面中擴展審批完成后,跳轉回待審請假界面字段列表審批意見業(yè)務規(guī)則備注查詢請假記錄參與者老師需要先登錄系統(tǒng)進入到老師管理系統(tǒng)中,老師通過系統(tǒng)可以查看到學生請假歷史記錄,并可校對自己操作是否有誤等,如表3.7所示。表3.7查詢請假記錄用例規(guī)約表用例編號UC-007用例名稱查詢請假記錄功能描述老師登錄系統(tǒng)后,查看學生請假記錄,可查看申請人、申請時間、請假事由、當前請假狀態(tài)等信息。執(zhí)行者老師前置條件老師正常登錄到系統(tǒng)之后,打開請假歷史頁面中后置條件已有審批完的請假信息基本路徑1、老師點擊請假歷史按鈕發(fā)出查詢請假記錄,并等待系統(tǒng)驗證1.1如果驗證成功,則顯示審核過的學生的請假歷史記錄1.2如果驗證失敗,則提示查詢失敗或無歷史請假記錄,請重新申請擴展字段列表業(yè)務規(guī)則備注待審銷假參與者老師需要先登錄系統(tǒng)進入到老師管理系統(tǒng)中,老師通過系統(tǒng)查看學生銷假申請,自行審批學生是否給予銷假,并再次確認,通過則銷假成功,如表3.8所示。表3.8老師待審銷假用例規(guī)約表用例編號UC-008用例名稱申請銷假功能描述老師登錄系統(tǒng)后,查看待審核的學生銷假信息,老師對申請銷假的學生進行審批。執(zhí)行者老師前置條件老師正常登錄到系統(tǒng)之后,打開請假歷史頁面中后置條件該老師負責的學生,有學生的銷假申請需要審批,并進行對系統(tǒng)相關事務盡心處理基本路徑1、老師登錄系統(tǒng)后,點擊待審請假按鈕2、系統(tǒng)顯示該老師待審銷假的信息3、老師對學生的銷假申請進行審批,并再次確認后點擊通過按鈕,并向數據庫發(fā)送給信息增加請求數據庫接受請求后,將審批通過的信息及審批意見寫入數據庫,然后回傳到銷假歷史記錄界面中擴展字段列表業(yè)務規(guī)則備注查詢銷假記錄參與者老師需要先登錄系統(tǒng)進入到老師管理系統(tǒng)中,老師通過系統(tǒng)可以查看到學生銷假歷史記錄,并可校對自己操作是否有誤等,如表3.9所示。表3.9老師查詢銷假記錄用例規(guī)約表用例編號UC-009用例名稱查詢銷假記錄功能描述老師登錄系統(tǒng)后,查看學生銷假記錄,可查看申請人、申請時間、請假事由、當前請假狀態(tài)等信息。執(zhí)行者老師前置條件老師正常登錄到系統(tǒng),并打開銷假歷史頁面中后置條件已有審批完的銷假信息基本路徑1、老師點擊銷假歷史按鈕發(fā)出查詢請假記錄,并等待系統(tǒng)驗證1.1如果驗證成功,則顯示審核過的學生的銷假歷史記錄1.2如果驗證失敗,則提示查詢失敗或無歷史銷假記錄,請重新申請擴展字段列表業(yè)務規(guī)則備注老師相關順序圖待審請假順序圖(1)老師在待審核請假記錄界面,確認審核信息(2)提示輸入審核意見(3)老師填寫完審核意見,確認提交審核意見(4)老師審核信息一并審核判斷結果錄入到數據庫中(5)界面顯示審核成功如圖3.6所示:圖3.6待審請假順序圖請假歷史順序圖(1)老師發(fā)送查詢信息(2)創(chuàng)建學生請假記錄的對象(3)數據庫將請假歷史信息回送到請假管理界面(4)顯示學生歷史請假詳情在界面中如圖3.7所示。圖3.7請假歷史順序圖待審銷假順序圖(1)老師在待審核銷假記錄界面,確認審核信息(2)提示再次需要再次審核確認(3)再次審核確認完成(4)審核信息一并錄入到數據庫中(5)界面顯示審核成功如圖3.8所示。圖3.8待審銷假順序圖銷假歷史順序圖(1)老師發(fā)送查詢信息(2)創(chuàng)建學生銷假記錄的對象(3)數據庫將銷假歷史信息回傳到請假管理界面(4)顯示學生歷史銷假詳情在界面中如圖3.9所示:圖3.9銷假歷史順序圖非功能需求分析首先主要考慮的是系統(tǒng)功能軟件,在具體設計的環(huán)節(jié)上,是不是能夠較好的滿足各類用戶的基本功能需求,如果不能較好的滿足用戶需求,那么這個系統(tǒng)的存在是沒有價值的。軟件系統(tǒng)的非功能性求分析,在7個方面展開,一個是性能分析,針對系統(tǒng);一個是安全分析,針對系統(tǒng),一個是完整度分析,針對系統(tǒng),一個是可維護分析,針對系統(tǒng),一個是可擴展性分析,針對系統(tǒng),一個是適應業(yè)務的性能分析。面對汽車論壇管理系統(tǒng)存在的性能、安全、擴展、完整度等7個方面性能綜合比對分析后發(fā)現,需要相應的非功能性需求分析。安全性需求分析安全性對于每個系統(tǒng)來說都是非常重要的一個方面。安全性很好的系統(tǒng)可以保護企業(yè)的信息和用戶的信息不被竊取。提高系統(tǒng)的安全性不僅是對用戶的負責,更是對企業(yè)的負責。尤其針對于學生網上請假系統(tǒng)來說,必須要有很好的安全性來保障整個系統(tǒng)。系統(tǒng)具有對使用者有權限控制,針對角色的不通限制使用者的權限,以此來確保系統(tǒng)的安全性。

系統(tǒng)設計系統(tǒng)架構設計本次學生網上請假系統(tǒng)的架構設計主要分為可以3層,主要有Web層,業(yè)務層,Model層。其中web層還包括View層和Controller層,Model層包括元數據擴展層和數據訪問層,如圖4.1所示。圖4.1系統(tǒng)架構系統(tǒng)總體設計這個學生請假管理系統(tǒng)分為兩個模塊,學生端、教師端。學生和教師在登錄成功時,分別進入兩個不同的頁面進行操作,學生端進行請假申請、銷假申請和查詢個人請假記錄;老師審批請假、老師審批銷假、老師查詢請假和老師查詢銷假,如圖4.2所示。圖4.2系統(tǒng)總體設計圖數據庫設計學生網上請假系統(tǒng)所擁有的數據表有主要以下幾個表:請假信息表,用戶信息表,審核信息表等。由于數據表較多,只展示系統(tǒng)主要數據表,如下表所示。Leave表:字段包括編號、本人外出去向、請假類型、請假原因、時間類型、該天內的時間、該天的開始節(jié)數、一天的結束節(jié)數、請假開始日期、請假結束日期、圖片附件地址,如表4.1所示。表4.1請假條信息數據庫表序號字段名稱字段類型大小允許為空最大長度備注1idInt4

2ToWherenvarchar(MAX)-1

3Categoryint4

4Reasonnvarchar(MAX)-1

5TimeTypeint4

6OneDayTimedatetime87OneDayStartint48OneDayEndint49StartDatedatetime810EndDatedatetime811ImageUrlsnvarchar(MAX)-1112LeaveStatusint413AddTimedatetime814IsResumeint415ResumeTimedatetime8116Student_StudentIdnvarchar(128)128256Check表:包括審核id、審核狀態(tài)、審核順序、審核時間、審核意見、老師id、請假id,如表4.2所示。表4.2審核信息數據庫表序號字段名稱字段類型大小允許為空最大長度備注1idInt8

2CheckStatusint4

3CheckOrderint4

4CheckTimedatetime85AddTimedatetime81

6CheckOpinionnvarchar(100)200

7CheckTeacher_TeacherIdnvarchar(128)2568Leave_Idint4Class表:包括自生成id、類別定義、老師類別、年紀、專業(yè),如表4.3所示。表4.3分類數據庫表序號字段名稱字段類型大小允許為空最大長度備注1idInt4

2ClassDefinationnvarchar(MAX)-1

3ClassTeacher_TeacherIdnvarchar(128)256

4Grade_Idint45Major_Idint41

User表:該圖是用戶信息表包括id、用戶名稱、頭像、手機號碼、郵箱、確認郵箱、密碼、安全驗證、確認手機號,如表4.4所示。表4.4用戶信息數據庫表序號字段名稱字段類型大小允許為空最大長度備注1idnvarchar(128)256

2UserNamenvarchar(256)512

3HeadImagenvarchar(MAX)-1

4PhoneNumbernvarchar(50)1005Namenvarchar(MAX)5121

6Emailnvarchar(256)17EmailConfirmedbit18PasswordHashnvarchar(500)5129SecurityStampnvarchar(500)51210PhoneNumberConfirmedbit1Office表:該表包括id、部門名稱、描述、描述id,如表4.5所示。表4.5部門信息數據庫表序號字段名稱字段類型大小允許為空最大長度備注1idint4

2Namenvarchar(MAX)-1

3Descriptionnvarchar(MAX)-1

4Department_Idint4LessonInfo表:該表包括的字段有id、起始周、結束周、課程類別、工作日、教室位置、課程id、老師id、學生id,如表4.6所示。表4.6課程信息數據庫表序號字段名稱字段類型大小允許為空最大長度備注1idint4

2StartWeekint4

3EndWeekint4

4ClassSeqint45WeekDayint46Classroomnvarchar(MAX)-117LessonIdint48TeacherIdnvarchar(128)25619StudentIdnvarchar(128)2561

系統(tǒng)實現首頁面該界面是簡單介紹學生網上請假系統(tǒng)的用途和優(yōu)勢,使得用戶對該系統(tǒng)有了初步的了解,用戶還可對系統(tǒng)進行注冊,登錄等操作.如圖5.1所示圖5.1系統(tǒng)首頁界面登錄功能登錄功能是每個項目都需要的一個基本功能模塊,而且也是查詢信息的一種,不過在查詢信息的過程中系統(tǒng)對頁面得到的輸入數據和數據庫的數據進行配對,如果匹配成功,系統(tǒng)進入到另外一個頁面,如果登錄失敗,系統(tǒng)進行提示并重新登錄,登錄過程中在后臺數據中定義了標志變量來表示學生和教師。

在系統(tǒng)登錄過程中進行了簡潔的數據校驗,就是用戶名和密碼不能為空,如果為空,系統(tǒng)將會提示錯誤信息,并提醒重新登錄。登錄的界面如圖5.2所示圖5.2登錄界面登錄界面代碼。///<summary>///登錄///</summary>///<returns></returns>publicActionResultLogin(stringreturnUrl){if(User.Identity.IsAuthenticated){returnRedirectToAction("Index");}ViewBag.ReturnUrl=returnUrl;returnView();}[HttpPost][AllowAnonymous][ValidateAntiForgeryToken]publicActionResultLogin(UserLoginViewModellogin,stringreturnUrl){if(login.VerificationCode.ToUpper()!=TempData["VerificationCode"].ToString()){ModelState.AddModelError("VerificationCode","驗證碼錯誤");}else{if(ModelState.IsValid){varuser=_userService.Find(login.UserName);if(user==null){ModelState.AddModelError("UserName","用戶名不存在");}elseif(user.Password==Security.Sha256(login.Password)){_userService.Update(user);varidentity=_userService.CreateIdentity(user,DefaultAuthenticationTypes.ApplicationCookie);AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);AuthenticationManager.SignIn(newAuthenticationProperties{IsPersistent=login.RememberMe},identity);Session["User"]=user;if(string.IsNullOrEmpty(returnUrl)){returnRedirectToAction("Index","Home");}if(Url.IsLocalUrl(returnUrl)){returnRedirect(returnUrl);}returnRedirectToAction("Index","Home");}else{ModelState.AddModelError("Password","密碼錯誤");}}}returnView();}注冊界面功能用戶自行規(guī)范填寫學生號或工號,及設定密碼,和通知郵箱,最后填寫隨機驗證碼,并接受協議,然后點擊“確認注冊”按鈕進行注冊操作;用戶注冊成功后,系統(tǒng)將返回到登錄界面。如圖5.3所示。圖5.3注冊界面用戶注冊界面代碼:///<summary>///注冊///</summary>///<paramname="register"></param>///<returns></returns>[HttpPost][ValidateAntiForgeryToken]publicActionResultRegister(UserRegisterViewModelregister){if(TempData["VerificationCode"]==null||TempData["VerificationCode"].ToString()!=register.VerificationCode.ToUpper()){ModelState.AddModelError("VerificationCode","驗證碼錯誤");returnView(register);}if(ModelState.IsValid){if(_userService.Exist(register.UserName)){ModelState.AddModelError("Username","用戶名已存在");}elseif(register.Password!=register.Password2){ModelState.AddModelError("Password","兩次密碼不一致");}else{AppUseruser=newAppUser{UserName=register.UserName,//默認用戶組代碼寫這里Password=Security.Sha256(register.Password),//郵箱驗證與郵箱唯一性問題Email=register.Email,//用戶狀態(tài)問題Status=0,DisplayName=register.UserName,};user=_userService.Add(user);if(!string.IsNullOrEmpty(user.Id)){Session["User"]=user;varidentity=_userService.CreateIdentity(user,DefaultAuthenticationTypes.ApplicationCookie);AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);AuthenticationManager.SignIn(identity);returnRedirectToAction("Index","Home");}else{ModelState.AddModelError("","注冊失敗");}}學生個人設置學生登錄/注冊成功之后可以完善自己的基本信息。配置完權限的后,信息表單中每一個input的name值都要與實體類中的參數相匹配,學生可以根據個人的手機號,宿舍號,家庭住址,家庭電話進行寫入,點擊保存,數據就會提交到數據庫內進行添加或者修改。如圖5.4所示圖5.4學生個人設置界面學生請假下圖5.5是學生請假模塊的界面圖,界面上包含了學生請假需要填寫的基本信息,如本人外出去向、請假原因、請假時間范圍、請假開始時間、請假結束時間、附加圖片等,當學生填寫完所有基本信息之后,點擊下一步;如果信息填寫完整,彈出確認請假窗口,學生確認請假,否則顯示信息填寫不完全,返回界面讓學生繼續(xù)修改或填寫。圖5.5學生請假界面學生申請請假界面代碼:publicLeaveController(){_leaveService=newLeaveService();}//GET:Student/Leave[Authorize]publicActionResultIndex(){inttotalRecord;varlist=_leaveService.FindPageList(1,10,outtotalRecord,0,User.Identity.GetUserId());List<LeaveListViewModel>list2=newList<LeaveListViewModel>();foreach(varleafinlist.ToList()){list2.Add(newLeaveListViewModel{Leave=leaf,Status=_leaveService.GetLeaveStatus(leaf.LeaveId,leaf.UserId)});}returnView(list2);}[Authorize]publicActionResultNotice(){returnView();}///<summary>///申請請假///</summary>///<returns></returns>[Authorize]publicActionResultApply(){returnView();}[HttpPost][ValidateAntiForgeryToken][Authorize]publicActionResultApply(LeaveApplyViewModelleavemoModel){if(ModelState.IsValid){//判斷是否需要圖片附件switch(leavemoModel.Category){//病假caseLeaveCategory.病假:break;//事假caseLeaveCategory.事假:break;}varuserId=User.Identity.GetUserId();Leaveleave=newLeave{Category=leavemoModel.Category,StartDate=leavemoModel.StartDate,EndDate=leavemoModel.EndDate,ImageUrls=leavemoModel.ImageUrls,OneDayTime=leavemoModel.OneDayTime,OneDayStart=leavemoModel.OneDayStart,OneDayEnd=leavemoModel.OneDayEnd,Reason=leavemoModel.Reason,ToWhere=leavemoModel.ToWhere,TimeType=leavemoModel.TimeType,UserId=userId,LeaveStatus=1,AddTime=DateTime.Now,ResumeTime=DateTime.Now,IsResume=0,Checks=new[]{newCheck{CheckStatus=0,CheckTime=DateTime.Now,UserId=int.Parse(userId),CheckOrder=0},newCheck{CheckStatus=0,CheckTime=DateTime.Now,UserId=int.Parse(userId),CheckOrder=1}}};try{leave=_leaveService.Add(leave);if(leave.LeaveId>0){returnRedirectToAction("Success",leave);}else{ModelState.AddModelError("","請假失敗");}}catch(Exceptionex){ModelState.AddModelError("","請假失敗,"+ex.Message);}}returnView(leavemoModel);}[Authorize]publicActionResultSuccess(Leaveleave){returnView(leave);}[Authorize]publicActionResultDetail(int?id){if(id==null||id<1){returnRedirectToAction("Index");}varleave=_leaveService.Find((int)id,User.Identity.GetUserId());varmodel=newLeaveDetailViewModel{Leave=leave,Checks=leave.Checks};returnView(model);}[Authorize][HttpPost]publicintGetLeaveTimes(stringuserid){return_leaveService.GetLeaveTimes(userid);}}}學生銷假圖5.6是學生銷假功能模塊的界面圖,系統(tǒng)會根據登錄的學生Id自動查詢出學生請假的狀態(tài)及是否銷假,這個界面最大的用處是,學生若要再次請假一定要撤銷掉上次的請假才可以繼續(xù)請假,學生可點擊就“銷假”,讓老師審批銷假。圖5.6學生銷假界面學生歷史請假圖5.7是學生歷史請假模塊的界面,該界面主要是學生可以查詢自己的歷史請假記錄、請假狀態(tài)、銷假記錄等,學生點擊“歷史請假”按鈕,系統(tǒng)顯示出該學生的歷史請假信息。圖5.7學生歷史請假界面老師待審請假以下圖5.8是老師待審核請假模塊的界面,該界面是老師登錄系統(tǒng)后,點擊“待審請假”按鈕,界面顯示出該老師所管理的學生的所有待審核請假信息,老師審批完后,通過點擊“通過”或“拒絕”按鈕,系統(tǒng)彈出審核意見界面,老師需填寫給予學生審核意見,然后點擊“確認”后,審核信息傳入數據庫中,數據轉為請假歷史信息表中。圖5.8待審請假界面老師查詢歷史請假以下圖5.9是老師查詢歷史請假功能模塊的界面,該界面主要是老師查看學生請假歷史信息,也可包括老師還未審核完成的學生申請請假信息,可是該界面中的按鈕沒辦法進行“通過”或“拒絕”操作,只能點擊“詳細”按鈕,老師可查看到學生請假信息的詳細信息。圖5.9老師查詢歷史請假界面老師查詢歷史銷假以下圖5.10是老師查詢歷史銷假功能模塊的界面,該界面主要是系統(tǒng)通過老師所綁定管理的學生,顯示出所管理學生的銷假歷史信息,其中包含編號、申請人、申請時間、請假事由、當前狀態(tài)等信息,老師只能對其進行查閱,但不能進行修改。圖5.10老師查詢歷史銷假界面老師個人設置以下圖5.11是老師個人設置信息功能模塊的界面,該界面老師可以對自己個人信息進行設置,其中包括手機號和辦公室,老師確認好信息后,點擊“保存”按鈕,信息就會保存到老師個人信息的數據庫表里。圖5.11老師個人設置界面

系統(tǒng)測試測試目的對任何系統(tǒng)而言,測試都是必不可少的環(huán)節(jié),測試可以發(fā)現系統(tǒng)存在的很多問題,所有的軟件上線前,都應該進行充足的測試后才能保證上線后不會Bug頻發(fā),或者是功能不滿足需求等問題的發(fā)生。下面分別從單元測試,功能測試和用例測試來對系統(tǒng)進行測試以保證系統(tǒng)的穩(wěn)定性和可靠性。功能測試下表是系統(tǒng)登錄功能測試用例,檢測了用戶名和密碼的不同的輸入情況,觀察系統(tǒng)的情況,查看該功能塊是否達到設計預期,如表6.1所示表6.1系統(tǒng)登錄功能測試用例功能描述用于系統(tǒng)登錄測試目的檢測登錄時的合法性檢查測試數據以及操作預期結果實際結果輸入的用戶名和密碼帶有非法字符提示用戶名或者密碼錯誤與預期結果一致輸入的用戶名或者密碼為空提示用戶名或者密碼錯誤與預期結果一致輸入的用戶名和密碼不存在提示用戶名或者密碼錯誤與預期結果一致輸入正確的用戶名和密碼登錄成功與預期結果一致下表是用戶注冊功能測試用例,檢測了該模塊中對信息包括用戶名、密碼、郵箱和驗證碼填寫操作是否正確及完整,觀察系統(tǒng)的情況,查看該功能塊是否達到設計預期,如表6.2所示。表6.2系統(tǒng)注冊功能測試用例功能描述用于用戶注冊測試目的檢測注冊時的合法性檢查測試數據以及操作預期結果實際結果輸入的用戶名不合法提示用戶名不符合規(guī)則與預期結果一致輸入的字段為空提示必填項不能為空與預期結果一致輸入的郵箱不合法提示郵箱不符合規(guī)則與預期結果一致輸入的密碼少于6位提示密碼必須為6-12位與預期結果一致輸入的密碼少于12提示密碼必須位6-12位與預期結果一致下表模塊是學生個人信息功能測試用例,檢測了該模塊中對信息包括手機號、宿舍號、家庭住址、家庭電話填寫操作是否成功運行,觀察系統(tǒng)的情況,查看該功能塊是否達到設計預期,如表6.3所示。表6.3學生個人信息測試用例功能描述用于用戶注冊測試目的檢測注冊時的合法性檢查測試數據以及操作預期結果實際結果輸入的手機號不合法提示請輸入正確的手機號與預期結果一致輸入的字段為空提示必填項不能為空與預期結果一致輸入的宿舍號不合法提示請輸入正確的宿舍號與預期結果一致輸入的家庭電話少于7位提示家庭電話必須為7-12位與預期結果一致輸入的家庭電話少于12位提示家庭電話必須位7-12位與預期結果一致輸入的家庭住址不合法提示請輸入正確的家庭住址與預期結果一致下表模塊是老師個人信息功能測試用例,測試了該模塊中對信息包括手機號、辦公室填寫操作是否成功運行,觀察系統(tǒng)的情況,查看該功能塊是否達到設計預期,如表6.4所示。表6.4老師個人信息測試用例功能描述用于用戶注冊測試目的檢測注冊時的合法性檢查測試數據以及操作預期結果實際結果輸入的手機號不合法提示請輸入正確的手機號與預期結果一致輸入的字段為空提示必填項不能為空與預期結果一致輸入的辦公室不合法提示請輸入正確的辦公室與預期結果一致性能測試使用阿里云PTS(PerformanceTestingService)性能測試服務對線上系統(tǒng)進行壓力測試。線上服務器環(huán)境為:1核心CPU,1G內存,1Mbps公網帶寬,Centos7.0操作系

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論