學生請假管理系統(tǒng)_第1頁
學生請假管理系統(tǒng)_第2頁
學生請假管理系統(tǒng)_第3頁
學生請假管理系統(tǒng)_第4頁
學生請假管理系統(tǒng)_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

中原工學院軟件學院軟件工程實踐一設計任務書姓名***軟件工程專業(yè)JAVA123班題目學生請假管理系統(tǒng)的開發(fā)設計任務開發(fā)一個基于Web的學生請假管理系統(tǒng),包括教師端和學生端。主要功能包括:UI設計:界面(參與)學生端:請假申請、銷假申請、查詢自己請假記錄;(獨立完成)3.教師端:請假審批、銷假審批、查詢學生請假記錄;(參與)開發(fā)工具:Java、JSP、MySQL、Photoshop、MyEclipse8.6時間進度第1周(9-9~9-13):完成需求分析、UI設計第2周(9-16~9-21):完成代碼第3周(9-24~9-29):完成報告原主始要資參料考與文獻[01]HYPERLINK[02]葉和亞.陳立.java2程序設計實用教程例[M]北京:電子工業(yè)出版社.2003.5[03]李兆峰.龐永慶.java程序設計與項目實踐[M]北京:電子工業(yè)出版社.2011.6指導教師簽字:年月日學生請假管理系統(tǒng)摘要當前信息化時代,講究高效,準確,及時的完成事情,近年來學校都在開展信息化部署,實現(xiàn)了多媒體教學,網(wǎng)上提交作業(yè),在線考試等學生考勤對學校教務管理是至關重要,在以前,學生請假要去找班主任或者領導批準,并且不一定每次都能順利的找到班主任,完成請假批準。如果學生不在學校,沒辦法向班主任提交請假單;對于學生出勤檢查,是學生會根據(jù)紙制名單逐一點名,或老師根據(jù)學生上交課堂作業(yè)來判斷學生是否來上課。這些方法往往具有考勤差錯率比較高,考勤效率也比較慢,沒有一個總體的的記錄和整理,并且紙制的點名冊容易丟失遺漏,耽誤時間等缺點。針對以上的問題,開發(fā)一種針對學生請假的考勤網(wǎng)上管理系統(tǒng),通過請假管理系統(tǒng),任課老師可以在課堂上直接登錄考勤記錄網(wǎng)站進行課堂查看哪些學生請假,記錄學生考勤情況等。此外,在其他時間,班主任以及其他老師也可以登錄該網(wǎng)站查詢學生在某課程的出勤情況。該系統(tǒng)是基于Javaweb的簡單型設計,它體現(xiàn)了對一些簡單的JSP標簽語言的運用,該系統(tǒng)界面簡單、操作方便。根據(jù)實際需要將系統(tǒng)分為學生端和教師端,學生請假和教師批假都需要首先登錄,學生端實現(xiàn)了學生申請請假、申請銷假、查詢自己請假記錄功能;教師端實現(xiàn)了教師對學生請假的批準、銷假批準以及查詢學生的請假記錄功能。關鍵詞:學生;請假管理;JavaWeb目錄TOC\o"1-4"\h\z\uHYPERLINK摘要 2HYPERLINK第1章項目分析 1HYPERLINK1.1問題描述 1HYPERLINK1.2技術分析 1HYPERLINK1.3工程進度計劃 2HYPERLINK第2章系統(tǒng)分析與設計 3HYPERLINK2.1系統(tǒng)分析 3HYPERLINK2.1.1參與者 3HYPERLINK2.1.2用例圖 3HYPERLINK2.1.3用例及用例規(guī)約 4HYPERLINKUC—001登錄 4HYPERLINK2.1.3.2UC—002申請請假 5HYPERLINKUC—003申請銷假 6HYPERLINK查詢請假記錄 7HYPERLINK2.2系統(tǒng)設計 7HYPERLINK2.2.1順序圖 8HYPERLINK2.2.2類圖 11HYPERLINK2.2.3系統(tǒng)體系結構設計 11HYPERLINK2.2.4設計時序圖 12HYPERLINK圖2.10學生銷假申請設計時序圖 14HYPERLINK2.3數(shù)據(jù)庫設計 14HYPERLINK圖 15HYPERLINK2.3.2關系模式 16HYPERLINK2.3.3表的設計 16HYPERLINK第3章實現(xiàn)與測試 19HYPERLINK3.1請假申請功能 20HYPERLINK3.1.1活動圖 21HYPERLINK3.1.2界面 21HYPERLINK3.1.3代碼 21HYPERLINK3.1.4測試用例 22HYPERLINK3.2 銷假申請功能 22HYPERLINK3.2.1活動圖 22HYPERLINK3.2.2界面 22HYPERLINK3.2.3代碼 22HYPERLINK3.2.4測試用例 22HYPERLINK3.3 請假記錄查詢 22HYPERLINK3.3.1活動圖 23HYPERLINK3.3.2界面 23HYPERLINK3.3.3代碼 23HYPERLINK3.3.4測試用例 23HYPERLINK3.4登錄功能 23HYPERLINK3.4.1活動圖 23HYPERLINK3.4.2界面 23HYPERLINK3.4.3代碼 24HYPERLINK3.5.4測試用例 24HYPERLINK第4章結束語 25HYPERLINK附錄A:附加圖、表 29HYPERLINK附錄B:主要源程序 29第1章項目分析隨著計算機的發(fā)展與不斷進步,各個領域都出現(xiàn)了新的技術,曾經(jīng)各種規(guī)模之間的競爭已經(jīng)發(fā)展成為技術之間的競爭,管理和人才之間的競爭,然而計算機技術的發(fā)展也離不開軟件的更新,在軟件不斷更新和替換的過程中已經(jīng)滲透到各個領域,政府機關,各大高校等都不斷向智能方向發(fā)展,學生請假也成為一件棘手的事情,為了請假學生需要寫請假條找老師批準,結果是這個時候老師不一定在,另外學生需要請假時不一定在學校,所以為了給廣大師生提供方便,我們需要開發(fā)軟件系統(tǒng)學生請假管理系統(tǒng)。1.1問題描述要完成這個系統(tǒng)最大的問題就是所學知識是有限的,在完成其中某些功能時候所需要的可能就完全沒有接觸過,所以只能用一些簡單的功能代替或者替換掉那些用目前的水平所不能實現(xiàn)的功能,再者就是對目前所需求的不是很明確,比如要做出一個請假管理如何去設置友好界面讓大家都喜歡適應去使用,如何把系統(tǒng)做到什么程度才能夠投入使用,這些都是所面臨的棘手問題。1.2技術分析該系統(tǒng)用到MVC設計模式,總共建立了五個包,界面View、數(shù)據(jù)對象DO、數(shù)據(jù)庫連接DB、數(shù)據(jù)庫操作DAO、控制層Control、業(yè)務層BO;DO層是對數(shù)據(jù)對象的封裝,DB層是連接數(shù)據(jù)庫,DAO層是包含對數(shù)據(jù)標的基本操作,BO層是所有和業(yè)務相關的關于對數(shù)據(jù)的判斷等,調(diào)用的是DAO層然后返回一個結果,Control層是為了獲取用戶參數(shù)并封裝,同時調(diào)用BO層,再根據(jù)調(diào)用得到的不同的結果在調(diào)用不同的View層,將處理結果顯示給用戶。圖1.1包圖1.3工程進度計劃實際開發(fā)過程中,開發(fā)周期可以分為三個階段:第一階段:成果:(1)需求分析(2)對數(shù)據(jù)庫進行設計目標:設計出適合學生請假管理系統(tǒng)的數(shù)據(jù)庫;完成數(shù)據(jù)庫的連接時間:一周第二階段:成果:完成JSP頁面和系統(tǒng)代碼目標:能在編譯器中有效正確運行。時間:一周第三階段:成果:寫報告;目標:完成系統(tǒng)報告。時間:一周

第2章系統(tǒng)分析與設計學生請假管理系統(tǒng)必須通過正確的用戶名的密碼方能進入系統(tǒng),系統(tǒng)分為兩大模塊,學生端和教師端,學生端和教師端分別有三個模塊,學生端分為請假申請、銷假申請、個人請假記錄查詢,教師端分為請假審批、銷假審批和學生請假記錄查詢;學生提交的請假申請需要教師的審批,只有批準之后學生方可提出銷假申請。2.1系統(tǒng)分析該系統(tǒng)有兩個參與者,分別為學生和教師,學生請假需首先得到教師的批準方可奏效,學生與教師都需使用自己的工號作為用戶名和密碼進行登錄。2.1.1參與者學生、教師2.1.2用例圖圖2.1用例圖2.1.3用例及用例規(guī)約請假管理系統(tǒng)學生端共包含1個參與者、4個用例。用例的編號及名稱如表1所示:表2.1用例列表用例編號用例名稱參與者UC-001登錄學生UC-002申請請假學生UC-003申請銷假學生UC-004查詢請假記錄學生UC—001登錄參與者學生需要用戶名和密碼登錄到系統(tǒng),才能進行相應的操作,系統(tǒng)中設置學生的登錄用戶名為學號,初始化密碼為學號.表2.2功能編號UC-001功能名稱登錄前置條件參與者通過瀏覽器打開請假管理系統(tǒng)的登錄頁面基本事件流系統(tǒng)要求參與者填寫用戶名和密碼。參與者填寫相應信息,學生輸入學號作為用戶名,密碼初始值為學號。系統(tǒng)驗證用戶輸入信息是否正確備選流1.用戶名和密碼輸入錯誤如果系統(tǒng)檢測到用戶輸入的用戶名和密碼與數(shù)據(jù)庫中不一致,給予用戶“用戶名和密碼不正確”的錯誤提示,并要求用戶重新輸入。后置條件如果用例成功,系統(tǒng)進入相應權限頁面界面原型參與者學生UC—002申請請假該用例的主要參與者為學生,學生通過系統(tǒng)填寫請假申請單,請假申請單將會提交給輔導員審批。表=2.32.3功能編號UC-002功能名稱申請請假用例描述學生創(chuàng)建新的請假申請單,錄入請假資料,創(chuàng)建一個請假申請流程前置條件學生正常登錄到系統(tǒng)中,并打開請假管理頁面基本事件流學生選擇創(chuàng)建請假申請單,系統(tǒng)自動查詢當前的學生是否存在沒有銷假的記錄,如果存在沒有銷假的請假記錄,執(zhí)行異常流1.1,如果不存在未銷假記錄,執(zhí)行基本事件流2系統(tǒng)展示申請單錄入界面學生錄入學生學號、姓名、請假事由(原因、去向),開始時間、結束時間,聯(lián)系方式(個人聯(lián)系方式、家長聯(lián)系方式)學生提交申請單,系統(tǒng)進行數(shù)據(jù)校驗,依據(jù)業(yè)務規(guī)則C,如果數(shù)據(jù)校驗不合法,執(zhí)行分支流4.1,如果數(shù)據(jù)校驗合法,執(zhí)行基本事件流5系統(tǒng)為當前的請假申請單生成唯一的編號,保存該請假申請單將該流程推進到下一環(huán)節(jié)系統(tǒng)應該向學生展現(xiàn)請假申請單的最終頁面,用例結束分支流4.1請假信息填寫有誤,顯示填寫不正確的信息提示,并要求學生重新填寫,顯示填寫請假申請單的頁面。異常流1.1系統(tǒng)顯示學生沒有銷假的記錄詳情1.1學生確認自己的請假記錄是否屬實,用例終止后置條件系統(tǒng)將保存該條請假記錄。創(chuàng)建新的請假單并生成唯一的申請編號創(chuàng)建新的請假申請流程實例記錄提交后不能夠再修改界面原型無業(yè)務規(guī)則包括學生姓名、輔導員姓名、請假開始時間(必須選擇當天及當天之后的時間)、請假結束時間(大于請假開始時間),請假理由,家長聯(lián)系電話系統(tǒng)首先判斷是否存在沒有銷假的記錄,存在的話,將該記錄顯示給當前學生學生進行確認,如果確認是沒有銷假,學生繼續(xù)執(zhí)行銷假流程,否則,輔導員進行異常處理學生姓名、輔導員姓名、請假開始時間(必須選擇當天及當天之后的時間)、請假結束時間(大于請假開始時間),請假理由,家長聯(lián)系電話信息為必填,不能為空。聯(lián)系方式是否合法,請假開始時間是否在請假結束時間之前。執(zhí)行者學生涉及的實體學生屬性:學號、姓名、班級、性別、聯(lián)系方式、宿舍、標志變量(tag=1)請假申請單屬性:學生(學號、姓名),請假事由(原因、去向),開始時間、結束時間,聯(lián)系方式(個人聯(lián)系方式、家長聯(lián)系方式)、操作1(已批準、待批準)、操作2(申請銷假、已銷假、未銷假)UC—003申請銷假該用例的主要參與者為學生,學生通過系統(tǒng)提出銷假申請,若申請成功,此時請假信息中操作2的狀態(tài)將修改為申請銷假,否則提示申請銷假失敗。表2.4功能編號UC-003功能名稱申請銷假前置條件參與者通過瀏覽器打開請假管理系統(tǒng)的登錄頁面成功登錄進入系統(tǒng)主頁面基本事件流學生發(fā)出銷假申請,并等待系統(tǒng)驗證如果提示申請成功,執(zhí)行基本事件流3等待輔導員銷假如果提示申請失敗,執(zhí)行基本事件流5提示申請銷假失敗,請重新申請備選流無后置條件如果用例成功,系統(tǒng)進入相應權限頁面界面原型無參與者學生UC—004查詢請假記錄該用例的參與者為學生,學生通過系統(tǒng)提出請假記錄查詢,若查詢成功,學生請假的記錄將會顯示在頁面上。表2.5功能編號UC-004功能名稱查詢請假記錄前置條件參與者通過瀏覽器打開請假管理系統(tǒng)的登錄頁面成功登錄進入系統(tǒng)主頁面基本事件流1.學生發(fā)出查詢請假記錄,并等待系統(tǒng)驗證2.如果提示驗證成功,執(zhí)行基本事件流33.顯示請假記錄4.如果提示驗證失敗,執(zhí)行基本事件流55.提示查詢失敗或者無請假記錄,請重新申請備選流無后置條件如果用例成功,系統(tǒng)進入相應權限頁面界面原型無參與者學生2.2系統(tǒng)設計該系統(tǒng)分為3個部分,第一部分是登錄,學生和教師都需要登錄,第二部分是學生端,學生端3個功能學生申請請假、學生申請銷假、查詢個人請假記錄,第三個部分是教師端,教師端3個功能教師批準請假申請、教師批準銷假申請、教師查詢學生請假記錄。2.2.1順序圖圖2.2登錄時序圖圖2.3學生請假申請時序圖圖2.4學生銷假申請時序圖圖2.5學生請假查詢時序圖2.2.2類圖圖2.6類圖2.2.3系統(tǒng)體系結構設學生請假管理系統(tǒng)學生請假管理系統(tǒng)統(tǒng)學生端教師端學生申請請假學生申請銷假學生查詢請假教師審批請假教師審批銷假教師查詢請假登錄圖2.7體系結構圖該系統(tǒng)包括基本的3各模塊,登錄、學生端、教師端。學生和教師在登錄成功時分別進入不同的頁面進行操作,學生端進行請假申請、銷假申請、查詢個人請假;教師審批請假、審批銷假、查詢學生請假記錄。2.2.4設計時序圖圖2.8登錄設計時序圖該圖是學生端登錄設計時序圖,首先學生發(fā)送請求到控制類,然后跳出登錄頁面,學生填寫登錄信息并提交到控制類,控制類封裝數(shù)據(jù)創(chuàng)建對象調(diào)用邏輯層進行數(shù)據(jù)校驗并返回結果,邏輯層調(diào)用DAO層最終根據(jù)結果判斷如果登錄成功將跳轉到學生端主頁,如果登錄失敗將給以提示信息并請重新登錄。圖2.9請假申請設計時序圖該圖是學生請假申請設計時序圖,首先學生需要成功登錄,發(fā)出請假申請,這時候控制類會自發(fā)調(diào)用邏輯層,邏輯層調(diào)用DAO層,如果該學生之前請過假并且未曾銷假,這時該學生是不能夠再請假的,倘若該學生發(fā)出請假申請,系統(tǒng)將會把該學生之前的請假未銷假記錄顯示出來,如果沒有未銷假記錄,將會顯示請假申請頁面,學生需要填寫請假申請單將請假詳細信息填寫并提交倘若正確無誤,系統(tǒng)將會提示請假申請成功。圖2.10學生銷假申請設計時序圖該圖是學生銷假申請設計時序圖,在學生成功登錄之后,學生在申請請假時候必須不存在未銷假記錄,所以在學生請假完成到校報到后必須進行銷假,然而這時需要發(fā)出銷假申請,這時候在業(yè)務邏輯層將會給予判斷,如果銷假申請成功將會提示申請成功,如果有錯誤將會提示申請失敗或者不存在未銷假記錄。2.3數(shù)據(jù)庫設計數(shù)據(jù)庫在該系統(tǒng)中是為了存儲數(shù)據(jù),學生所提交的請假記錄是通過保存到數(shù)據(jù)庫中來實現(xiàn)申請請假、銷假等功能的,在我們目前所學的有限的知識內(nèi),沒有數(shù)據(jù)庫該系統(tǒng)是沒法運行和實現(xiàn)的。2.3.1關系模式(1)學生信息:(學號、姓名、班級、性別、宿舍、聯(lián)系方式、tag)

(2)教師信息:(工號、姓名、聯(lián)系方式、性別、年級、tag)

(3)登錄:(用戶名(學號、工號),密碼)(4)請假信息:(學號、姓名、事由、請假開始時間、請假結束時間、聯(lián)系方式)2.3.2E-R圖E-R圖在數(shù)據(jù)庫設計里面是至關重要的一步,它是整個數(shù)據(jù)庫設計的關鍵,下面使用實體聯(lián)系(E-R)模型來描述系統(tǒng)的概念結構,設計出能夠滿足用戶需求的各種實體,以及它們之間的關系,為后面的邏輯設計打下基礎。圖2.11E-R圖請假記錄請假記錄理由開始時間學號操作2操作1結束時間姓名聯(lián)系方式用戶用戶1教師n學生n屬于姓名聯(lián)系班級學號性別宿舍Tag屬于性別年級電話姓名工號Tags用戶名:學號、工號密碼2.3.3表的設計表2.6用戶登錄信息表(login)編號字段名稱數(shù)據(jù)類型約束條件說明1useridVarchar(14)無學號、工號2passwordVarchar(12)無密碼3TagVarchar(2)無標志該表是用戶登錄信息表,表中包括3個屬性,用戶名和密碼、還有標志變量tag,tag是為了控制學生端和教師端,用戶名分別為學號和教師的工號;表2.7學生信息表(Student)編號字段名稱數(shù)據(jù)類型約束條件說明1sidVarchar(14)無學號2SnameVarchar(20)無姓名3ClassesVarchar(20)無班級4SsexVarchar(6)無性別5SphoneVarchar(12)無聯(lián)系電話6DormitoryVarchar(6)無宿舍7TagVarchar(2)1標志該表是學生信息表,表中包括7個屬性,都是字符串類型,其中tag標志變量默認為1,并且不可修改;表2.8教師信息表(teacher)編號字段名稱數(shù)據(jù)類型約束條件說明1tidVarchar(14)無工號2tnameVarchar(16)無姓名3tsexVarchar(4)無性別4gradesVarchar(20)無所帶年級5tphoneVarchar(12)無電話6tagVarchar(2)2標志該表是教師信息表,表中包括6個屬性,都是字符串類型,教師也包括一個標志變量tag,也存在一個默認值為2,并且不能修改;表2.8請假信息表(leaverecords)編號字段名稱數(shù)據(jù)類型約束條件說明1sidVarchar(14)無學號2SnameVarchar(16)無姓名3Starttimedate無開始時間4endtimedate無截止時間5SphoneVarchar(12)無聯(lián)系電話6Operate1Varchar(20)操作17Operate2Varchar(20)操作28reasonVarchar(255)無理由該表示請假信息表,包括8個屬性,其中有字符串和日期類型,操作1和操作2分別是默認值,其值是根據(jù)學生的請假申請成功,銷假以及教師的審批有關。第3章實現(xiàn)與測試每一個項目的核心部分都是功能的實現(xiàn),功能的完成標志著一個系統(tǒng)的完成,然而這些結果都需要一個需求和設計來作為基本的要求,以下就是該系統(tǒng)詳細功能的實現(xiàn)過程:需求分析:需求分析階段我采用了StarUML工具做了詳細的分析,根據(jù)自己的需要畫出了包圖、時序圖、用例圖、類圖、活動圖、設計時序圖等所需要的幾類基本圖,項目的框架是根據(jù)包圖來創(chuàng)建的,時序圖主要就是項目的每一個功能所要求的基本流程,設計時序圖就是將時序圖給詳細化,具體到每一步所走的流程返回什么樣的數(shù)據(jù)或者類型,也就是說畫設計時序圖時基本上已經(jīng)把代碼在腦子里有了型,用例圖其實就是項目所有的功能,每一個用例就代表一個基本的功能,數(shù)據(jù)庫的設計是根據(jù)類圖來實現(xiàn)的,類圖就表示了數(shù)據(jù)庫中的表以及各表之間的關系。界面設計:用戶界面設計要求友好合理,要充分考慮到用戶的操作習慣,而且要有良好的顯示效果。此外界面的配色方案要協(xié)調(diào),使用的主色,背景色,前景色,按鈕大小,文字,格式,表格等要統(tǒng)一標準。由于該系統(tǒng)主要用于公司人員管理的,所以界面框架的主色采用較為嚴肅的淺藍色,在此基礎上用到了PhotoShop技術,dreamweaver以及css和Javascript等,里面的登錄那個信息是一個圖片用ps加工修改寫上了藝術字,界面的代碼是在dreamweaver里面直接設計好的,然后將代碼復制粘貼過去,因為在dreamweaver里面設計的界面在MyEclipse里面是不能運行的,需要一個腳本來支持,所以只需要在MyEclipse里面建好jsp頁面只需將dreamweaver里面body里面的東西復制粘貼到MyEclipse里面就可以運行了;每一個界面里面都有一個表格,表格里面有許多其他的元素之類,比如:按鈕,標題,下拉框等許多細小的知識,外面有一個表單,這個表單是必須有的,他是為了在前臺與后連接時候提交一個數(shù)據(jù)來運行這個項目的;在這些界面里面,時間是用js來完成的,統(tǒng)一的css樣式表;還有就是在查詢過程中將所顯示的數(shù)據(jù)設置為某一屬性他將無法在查詢顯示這個頁面來任意修改一些信息功能描述:首先這個系統(tǒng)除了界面其他的代碼分別寫在5個包中,第一個DO包,它里面從某種意義上說在這個包里面的每一個類都是創(chuàng)建某一個實例的方法,它里面定義了相對屬性,以及get()和set()方法;第二個是DAO包,它里面是對于每一個管理模塊的一些基本小的功能的實現(xiàn),說白了主要就是增刪改查之類的它是對數(shù)據(jù)庫語句的一個應用;第三個包是DB包,這個包可以說是只為了一件事,就是數(shù)據(jù)庫的連接,之所以這樣寫專門用一個包來寫關于數(shù)據(jù)庫的連接目的只是為了看到數(shù)據(jù)與的封裝,體現(xiàn)一個面向對象的思考,從而在某些方面也能夠減少代碼的重復率,提高代碼的可讀性;第四個包是control包,這個包是最重要的,因為在web應用開發(fā)的過程中每一個項目要想與前臺數(shù)據(jù)連接并能夠成功把數(shù)據(jù)相互傳遞,servelet里面有兩個方法,一個是doGet(),一個是doPost(),兩者最大的區(qū)別就是前者對數(shù)據(jù)沒有保密,就是隨時都會泄露一些重要的信息,因為每一提交的表單都會隨著瀏覽器的瀏覽網(wǎng)址顯示出來,然而要想從前臺獲得數(shù)據(jù),就好比添加員工就得用到客戶端所發(fā)出的請求request.getParameter()得到。第五個包是BO包,這個是業(yè)務邏輯層,主要是調(diào)用DAO包里面的方法,數(shù)據(jù)校驗等功能。在該系統(tǒng)中我主要完成的是學生端的功能,以下為學生端的功能:3.1請假申請功能在學生請假申請這個功能里面其實所做的就是對數(shù)據(jù)的添加,界面是簡單采用了CSS樣式的界面,如果學生登錄成功點擊申請請假,如果該學生存在未銷假記錄系統(tǒng)將會把該學生的未銷假記錄顯示出來,如果不存在未銷假記錄,此時學生請假信息界面會顯示出來,在學生填寫完請假信息出發(fā)右下方的一個提交按鈕,倘若提交成功會提示申請成功,如果失敗會跳轉到信息填寫頁面并提示錯誤信息。3.1.1活動圖圖3.1學生申請請假活動圖3.1.2界面圖3.2學生請假申請頁面3.1.3代碼publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); Stringstr="已銷假"; Stringtype=request.getParameter("type"); LeaveRecordDOld=null; LeaveRecordDOlrd=newLeaveRecordDO(); StudentBOsb=newStudentBO(); if(type.equals("add")){ lrd.setSname(request.getParameter("sname")); lrd.setSid(request.getParameter("sid")); lrd.setSphone(request.getParameter("sphone")); lrd.setStarttime(Date.valueOf(request.getParameter("starttime"))); lrd.setEndtime(Date.valueOf(request.getParameter("endtime"))); lrd.setReason(request.getParameter("reason")); Stringresults=sb.validate(lrd); if(results==null){ Stringid=request.getParameter("sid"); ld=sb.queryrecords(str,id); if(ld==null){ sb.save(lrd); request.getRequestDispatcher("../success.jsp").forward(request,response); return; }else{request.setAttribute("ld",ld); request.getRequestDispatcher("../deleteleave.jsp").forward(request,response); return; } }else{ request.setAttribute("message",results); request.getRequestDispatcher("../askforleave.jsp").forward(request,response); return; } }3.1.4測試用例表3.1序號功能模塊測試數(shù)據(jù)預期結果1請假申請姓名:韓一正學號:123電話:1理由:回家申請成功請假記錄查詢在學生請假記錄查詢里面和學生請假申請基本是一樣的,這個實際上的就是對數(shù)據(jù)庫里面的數(shù)據(jù)的一個查詢,并將查詢記錄顯示到網(wǎng)頁上,如果不存在請假記錄,將不會顯示任何記錄。3.2.1界面圖3.3請假記錄3.2.2代碼HttpSessionsession=request.getSession(); session.setAttribute("username",request.getParameter("sid")); ArrayList<LeaveRecordDO>list=(ArrayList<LeaveRecordDO>)sb.getrecords(request.getParameter("sid")); request.setAttribute("list",list);request.getRequestDispatcher("../SseclectDisplay.jsp").forward(request,response); return;3.2.3測試用例序號功能模塊測試數(shù)據(jù)預期結果1請假查詢學號:123查詢成功3.4登錄功能登錄是該項目最基本的一個功能,這其實也是一個查詢,只不過是根據(jù)數(shù)據(jù)庫中的數(shù)據(jù)和從網(wǎng)頁中得到的數(shù)據(jù)進行對比,如果匹配成功將會進入到另外一個頁面,如果登錄失敗將會進行提示并重新登錄,登錄過程中在后臺數(shù)據(jù)中定義了標志變量來表示學生和教師,所以在登錄時候根據(jù)這個屬性來判斷登錄成功后跳轉到學生端還是教師端。登錄過程中進行了簡單的數(shù)據(jù)校驗,就是說用戶名和密碼不能為空,倘若為空將會提示錯誤信息并提醒重新登錄。3.4.1代碼publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); LoginDOld=newLoginDO(); LoginBOlb=newLoginBO(); inttags; Stringuserid=request.getParameter("username"); Stringpasswd=request.getParameter("password"); ld.setUserid(userid); ld.setPasswd(passwd); Stringmessage=lb.validate(ld); if(message!=null){request.setAttribute("message",message);request.getRequestDispatcher("../loginerror.jsp").forward(request,response); }else{ tags=lb.login(ld); if(tags==1){ HttpSessionsession=request.getSession(); session.setAttribute("username",ld.getUserid()); request.getRequestDispatcher("../smain.jsp").forward(request,response); return; }elseif(tags==2){ HttpSessionsession=request.getSession(); session.setAttribute("username",ld.getUserid());request.getRequestDispatcher("../tmain.jsp").forward(request,response); return; } else{request.getRequestDispatcher("../error.jsp").forward(request,response); return;3.4.2界面圖3.4登錄界面3.4.1活動圖圖3.5登錄活動圖3.5.4測試用例序號功能模塊測試數(shù)據(jù)預期結果1學生登錄用戶名:123密碼:123登錄成功第4章結束語這次的課題我用的web開發(fā)來完成的,從我對這三個字母的不理解到學習它再到用它們來完成我的課題,這個過程并不是想象的那么容易,今天終于完成了,長呼了一口氣,同時在內(nèi)心深處,也默默地為接下來的學習,做一個前段時間的項目總結,也是學習的總結,吸取之前的經(jīng)驗教訓,錯誤并不可怕,可怕的是再在同一個地方犯同樣錯誤,所以對于我來說,更多的去自我認知,知我批評要比表揚和贊許來的更加深刻,非常有必要做一個總結。雖然時間略顯倉促,但在項目開發(fā)過程中我學習到了很多之前沒有接觸過的內(nèi)容,也發(fā)現(xiàn)了自己的很多不足,感悟頗深。主要包括以下幾個方面:1.在需求分析階段,由于對學生請假管理系統(tǒng)真正的需求并不了解,還有就是自己在做這個需求的過程當中總覺得想到了自己做不出來,就好比沒想到一個需求的功能腦子里就會閃現(xiàn)出一個畫面,我該如何去實現(xiàn)它,正是因為這些錯誤的想法導致了這次課題實踐的進度,因此我覺得在做需求時我們應該根據(jù)實際不必考慮怎么做怎么實現(xiàn)。2.數(shù)據(jù)庫采用的是Mysql,在編寫sql語句經(jīng)常會出現(xiàn)一些語法錯誤,例如sql語句不之一次的出錯,在修改的過程當中我發(fā)現(xiàn)了自己知識的欠缺,或者說對過去所學的東西并沒有完全理解甚至吸收;尤其是數(shù)據(jù)庫中的亂碼問題,我從一開始數(shù)據(jù)庫中導入數(shù)據(jù)我就一直被亂碼問題糾結著,我先上網(wǎng)查閱相關資料,看書尋找改變亂碼的方法,甚至解決不了向同學請教,但是最終我都沒有解決,最后在老師的幫助下檢測出亂碼不是編碼的問題而是我的數(shù)據(jù)庫安裝過程中字符編碼選擇錯誤,所以一直回出現(xiàn)亂碼問題,而且解決之后再將自己遇到的問題記錄下來,使得以后出現(xiàn)同樣的問題時能夠快速解決。3.由于該系統(tǒng)在學生申請成功后需要教師端的批準,在學生端才能進行下一次的操作,這些之前很少用到,通過這次實習也將自己在課本上學到的內(nèi)容用到了實際項目中;感受最深的就是MVC模式和在兩個客戶端操作。4.團隊合作。我們完成一個項目總是需要一個團隊的,而不是個人,在開發(fā)過程中小組之間的溝通非常重要。如果組內(nèi)成員沒有很好的交流,則在項目后期各模塊合并時,會出現(xiàn)許多意想不到的錯誤,例如路徑問題、頁面間跳轉等。所以我們完成系統(tǒng)時,小組間要定期開例會,相互交流,對于有分歧的地方,一定要及時討論,采取一致措施,這樣才有利于團隊工作??傊@次的課題真的使我受益匪淺。在這個過程中,我學習到的不僅僅是以上技術上的收獲,更還有生活中的的人際交往以及其他的許多經(jīng)驗。而這些,都將作為我邁入社會的根本,我將以此為我的基礎,盡量將學到的知識運用到實際工作中,去迎接一個又一個的挑戰(zhàn)?;叵朐谶@不到一個月的學習時間里,我學到了許許多多讓我感覺比較充實的知識,掌握了更多的學習的方法,作為一個程序員,我們更需要信心,面對項目時我們要仔細分析,想法嘗試,想法去實現(xiàn),這樣才能進步,才能找到自己的不足。同樣在職場中,工作需要自信心,不相信自己,任何工作都做不好。沒有信心,成功的機會就會少些。自信心能讓你做什么都不難。生活需要自信心?,F(xiàn)實是殘酷的,沒有自信心是難以生存的。道路是坎坷的,自信心能幫你順利地走過。有時希望是渺茫的,但是自信心能讓你看到美好明天。在寫程序時,總是在看到功能后,立即投入到代碼編寫工作中。后期出現(xiàn)的錯誤總是很多很多,經(jīng)常返回重新修改。經(jīng)過這次旳實踐,又對軟件這個東西有了新的認識,新的收獲,而且我對軟件工程又有了新的理解,說白了軟件工程就是在為這個軟件做鋪墊,也就是說需求分析就是軟件工程,而我在做需求分析階段能順利完成,我十分的感激我的老師郭麗,如果不是在課堂上老師讓我在同學們面前或那個設計時序圖,我想我現(xiàn)在仍然不會明白軟件工程怎么去做需求,不是老師一步步的教導,我根本不可能完成今天這么簡單的并且不完善的項目,所以在此我對老師表示深深的敬意與感激!

參考文獻[01]李明.java程序設計與應用[M]:北京.交通大學出版社.2010.3[02]葉和亞.陳立.java2程序設計實用教程例[M]北京:電子工業(yè)出版社.2003.5[03]李兆峰.龐永慶.java程序設計與項目實踐[M]北京:電子工業(yè)出版社.2011.6[04]Y.DanielLiang.java語言程序設計[M]西安;機械工業(yè)出版社.2011.5[07]劉京華.Java?Web整合開發(fā)王者歸來[M]:清華大學出版社.

2010.1

[08]何富貴.DreamweaverCS4網(wǎng)頁設計與制作[M]:

機械工業(yè)出版社.

2010.3

[09]鄭阿奇MySQL實用教程[M]:電子工業(yè)出版社.2012.5

[10]

葉和亞.陳立.java2程序設計實用教程例[M]北京:電子工業(yè)出版社.

2003.5

指導教師評語成績:指導教師簽名:年月日

附錄A:附加圖、表圖1學生端主頁面圖2教師端學生請假信息頁面附錄B:主要源程序DAO包/* *請假審批 */ publicbooleanLeaveAllow(Stringsid){ //獲取數(shù)據(jù)庫連接 Connectionconnection=DButils.getConnection(); //創(chuàng)建sql執(zhí)行環(huán)境 PreparedStatementps=null; //創(chuàng)建sql語句 Strings="已批準"; Stringsql="updateleaverecordssetoperate1=?wheresid=?"; //執(zhí)行sql語句 try{ ps=connection.prepareStatement(sql); ps.setString(1,s); ps.setString(2,sid); intcount=ps.executeUpdate(); if(count==1){ returntrue; } }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ DButils.release(connection,ps,null); } returnfalse; } /* *銷假審批 */ publicbooleanXJallow(Strings,Stringsid){ //獲取數(shù)據(jù)庫連接 Connectionconnection=DButils.getConnection(); //創(chuàng)建sql執(zhí)行環(huán)境 PreparedStatementps=null; //創(chuàng)建sql語句 s="已銷假"; Stringsql="updateleaverecordssetoperate2=?wheresid=?"; //執(zhí)行sql語句 try{ ps=connection.prepareStatement(sql); ps.setString(1,s); ps.setString(2,sid); intcount=ps.executeUpdate(); if(count==1){ returntrue; } }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ DButils.release(connection,ps,null); } returnfalse; } /* *查詢請假記錄 */ publicArrayList<LeaveRecordDO>selectAll(){ ArrayList<LeaveRecordDO>list=newArrayList<LeaveRecordDO>(

溫馨提示

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

評論

0/150

提交評論