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

下載本文檔

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

文檔簡介

1、中原工學(xué)院軟件學(xué)院軟件工程實踐一設(shè)計任務(wù)書姓名* 軟件工程 專業(yè) JAVA123 班題目學(xué)生請假管理系統(tǒng)的開發(fā)設(shè)計任務(wù)開發(fā)一個基于Web的學(xué)生請假管理系統(tǒng),包括教師端和學(xué)生端。主要功能包括:1. UI設(shè)計:界面(參與)2. 學(xué)生端:請假申請、銷假申請、查詢自己請假記錄;(獨立完成)3. 教師端:請假審批、銷假審批、查詢學(xué)生請假記錄;(參與)開發(fā)工具:Java、JSP、MySQL、Photoshop、MyEclipse8.6 時 間 進(jìn) 度第1周(9-99-13):完成需求分析、UI設(shè)計第2周(9-169-21):完成代碼第3周(9-249-29):完成報告原 主始 要資 參料 考與 文 獻(xiàn)01

2、 02葉和亞.陳立.java2程序設(shè)計實用教程例M北京:電子工業(yè)出版社. 2003.503李兆峰.龐永慶.java程序設(shè)計與項目實踐M北京:電子工業(yè)出版社.2011.6指導(dǎo)教師簽字: 年 月 日學(xué)生請假管理系統(tǒng)摘 要當(dāng)前信息化時代,講究高效,準(zhǔn)確,及時的完成事情,近年來學(xué)校都在開展信息化部署,實現(xiàn)了多媒體教學(xué),網(wǎng)上提交作業(yè),在線考試等學(xué)生考勤對學(xué)校教務(wù)管理是至關(guān)重要,在以前,學(xué)生請假要去找班主任或者領(lǐng)導(dǎo)批準(zhǔn),并且不一定每次都能順利的找到班主任,完成請假批準(zhǔn)。如果學(xué)生不在學(xué)校,沒辦法向班主任提交請假單;對于學(xué)生出勤檢查,是學(xué)生會根據(jù)紙制名單逐一點名,或老師根據(jù)學(xué)生上交課堂作業(yè)來判斷學(xué)生是否來上課

3、。這些方法往往具有考勤差錯率比較高,考勤效率也比較慢,沒有一個總體的的記錄和整理,并且紙制的點名冊容易丟失遺漏,耽誤時間等缺點。針對以上的問題,開發(fā)一種針對學(xué)生請假的考勤網(wǎng)上管理系統(tǒng),通過請假管理系統(tǒng),任課老師可以在課堂上直接登錄考勤記錄網(wǎng)站進(jìn)行課堂查看哪些學(xué)生請假,記錄學(xué)生考勤情況等。此外,在其他時間,班主任以及其他老師也可以登錄該網(wǎng)站查詢學(xué)生在某課程的出勤情況。該系統(tǒng)是基于Java web的簡單型設(shè)計,它體現(xiàn)了對一些簡單的JSP標(biāo)簽語言的運用,該系統(tǒng)界面簡單、操作方便。根據(jù)實際需要將系統(tǒng)分為學(xué)生端和教師端,學(xué)生請假和教師批假都需要首先登錄,學(xué)生端實現(xiàn)了學(xué)生申請請假、申請銷假、查詢自己請假記

4、錄功能;教師端實現(xiàn)了教師對學(xué)生請假的批準(zhǔn)、銷假批準(zhǔn)以及查詢學(xué)生的請假記錄功能。關(guān)鍵詞: 學(xué)生; 請假管理; Java Web目 錄摘 要2第1章 項目分析11.1 問題描述11.2技術(shù)分析11.3工程進(jìn)度計劃2第2章 系統(tǒng)分析與設(shè)計32.1 系統(tǒng)分析32.1.1 參與者32.1.2 用例圖32.1.3 用例及用例規(guī)約 UC001 登錄42.1 .3.2 UC002 申請請假 UC003 申請銷假 UC004 查詢請假記錄72.2 系統(tǒng)設(shè)計72.2.1順序圖82.2.2類圖112.2.3系統(tǒng)體系結(jié)構(gòu)設(shè)計112.2.4 設(shè)計時序圖12圖 2.10 學(xué)

5、生銷假申請設(shè)計時序圖142.3 數(shù)據(jù)庫設(shè)計142.3.1E-R圖152.3.2關(guān)系模式162.3.3表的設(shè)計16第3章 實現(xiàn)與測試193.1 請假申請功能203.1.1活動圖213.1.2界面213.1.3代碼213.1.4測試用例223.2銷假申請功能223.2.1活動圖223.2.2界面223.2.3代碼223.2.4測試用例223.3請假記錄查詢223.3.1活動圖233.3.2界面233.3.3代碼233.3.4測試用例233.4登錄功能233.4.1活動圖233.4.2界面233.4.3代碼243.5.4測試用例24第4章 結(jié)束語25附錄A: 附加圖、表29附錄B: 主要源程序29x

6、xx:學(xué)生請假系統(tǒng)管理第1章 項目分析隨著計算機(jī)的發(fā)展與不斷進(jìn)步,各個領(lǐng)域都出現(xiàn)了新的技術(shù),曾經(jīng)各種規(guī)模之間的競爭已經(jīng)發(fā)展成為技術(shù)之間的競爭,管理和人才之間的競爭,然而計算機(jī)技術(shù)的發(fā)展也離不開軟件的更新,在軟件不斷更新和替換的過程中已經(jīng)滲透到各個領(lǐng)域,政府機(jī)關(guān),各大高校等都不斷向智能方向發(fā)展,學(xué)生請假也成為一件棘手的事情,為了請假學(xué)生需要寫請假條找老師批準(zhǔn),結(jié)果是這個時候老師不一定在,另外學(xué)生需要請假時不一定在學(xué)校,所以為了給廣大師生提供方便,我們需要開發(fā)軟件系統(tǒng)學(xué)生請假管理系統(tǒng)。1.1 問題描述要完成這個系統(tǒng)最大的問題就是所學(xué)知識是有限的,在完成其中某些功能時候所需要的可能就完全沒有接觸過,

7、所以只能用一些簡單的功能代替或者替換掉那些用目前的水平所不能實現(xiàn)的功能,再者就是對目前所需求的不是很明確,比如要做出一個請假管理如何去設(shè)置友好界面讓大家都喜歡適應(yīng)去使用,如何把系統(tǒng)做到什么程度才能夠投入使用,這些都是所面臨的棘手問題。1.2技術(shù)分析該系統(tǒng)用到MVC設(shè)計模式,總共建立了五個包,界面View、數(shù)據(jù)對象DO、數(shù)據(jù)庫連接DB、數(shù)據(jù)庫操作DAO、控制層Control、業(yè)務(wù)層BO;DO層是對數(shù)據(jù)對象的封裝,DB層是連接數(shù)據(jù)庫,DAO層是包含對數(shù)據(jù)標(biāo)的基本操作,BO層是所有和業(yè)務(wù)相關(guān)的關(guān)于對數(shù)據(jù)的判斷等,調(diào)用的是DAO層然后返回一個結(jié)果,Control層是為了獲取用戶參數(shù)并封裝,同時調(diào)用BO

8、層,再根據(jù)調(diào)用得到的不同的結(jié)果在調(diào)用不同的View層,將處理結(jié)果顯示給用戶。圖1.1 包圖1.3工程進(jìn)度計劃實際開發(fā)過程中,開發(fā)周期可以分為三個階段:第一階段:成果:(1)需求分析(2)對數(shù)據(jù)庫進(jìn)行設(shè)計目標(biāo):設(shè)計出適合學(xué)生請假管理系統(tǒng)的數(shù)據(jù)庫;完成數(shù)據(jù)庫的連接 時間:一周第二階段:成果:完成JSP頁面和系統(tǒng)代碼目標(biāo):能在編譯器中有效正確運行。時間:一周第三階段:成果:寫報告;目標(biāo):完成系統(tǒng)報告。時間:一周第2章 系統(tǒng)分析與設(shè)計學(xué)生請假管理系統(tǒng)必須通過正確的用戶名的密碼方能進(jìn)入系統(tǒng),系統(tǒng)分為兩大模塊,學(xué)生端和教師端,學(xué)生端和教師端分別有三個模塊,學(xué)生端分為請假申請、銷假申請、個人請假記錄查詢,教

9、師端分為請假審批、銷假審批和學(xué)生請假記錄查詢;學(xué)生提交的請假申請需要教師的審批,只有批準(zhǔn)之后學(xué)生方可提出銷假申請。2.1 系統(tǒng)分析該系統(tǒng)有兩個參與者,分別為學(xué)生和教師,學(xué)生請假需首先得到教師的批準(zhǔn)方可奏效,學(xué)生與教師都需使用自己的工號作為用戶名和密碼進(jìn)行登錄。2.1.1 參與者學(xué)生、教師2.1.2 用例圖圖2.1 用例圖2.1.3 用例及用例規(guī)約請假管理系統(tǒng)學(xué)生端共包含1個參與者、4個用例。用例的編號及名稱如表1所示:表2.1 用例列表用例編號用例名稱參與者UC-001登錄學(xué)生UC-002申請請假學(xué)生UC-003申請銷假學(xué)生UC-004查詢請假記錄學(xué)生 UC001登錄參與者學(xué)生需

10、要用戶名和密碼登錄到系統(tǒng),才能進(jìn)行相應(yīng)的操作,系統(tǒng)中設(shè)置學(xué)生的登錄用戶名為學(xué)號,初始化密碼為學(xué)號.表2.2功能編號UC-001功能名稱登錄前置條件參與者通過瀏覽器打開請假管理系統(tǒng)的登錄頁面基本事件流1. 系統(tǒng)要求參與者填寫用戶名和密碼。2. 參與者填寫相應(yīng)信息,學(xué)生輸入學(xué)號作為用戶名,密碼初始值為學(xué)號。3. 系統(tǒng)驗證用戶輸入信息是否正確備選流1.用戶名和密碼輸入錯誤如果系統(tǒng)檢測到用戶輸入的用戶名和密碼與數(shù)據(jù)庫中不一致,給予用戶“用戶名和密碼不正確”的錯誤提示,并要求用戶重新輸入。后置條件如果用例成功,系統(tǒng)進(jìn)入相應(yīng)權(quán)限頁面界面原型參與者學(xué)生 UC002申請請假該用例的主要參與者為學(xué)

11、生,學(xué)生通過系統(tǒng)填寫請假申請單,請假申請單將會提交給輔導(dǎo)員審批。表2.3功能編號UC-002功能名稱申請請假用例描述學(xué)生創(chuàng)建新的請假申請單,錄入請假資料,創(chuàng)建一個請假申請流程前置條件學(xué)生正常登錄到系統(tǒng)中,并打開請假管理頁面基本事件流1、 學(xué)生選擇創(chuàng)建請假申請單,系統(tǒng)自動查詢當(dāng)前的學(xué)生是否存在沒有銷假的記錄,如果存在沒有銷假的請假記錄,執(zhí)行異常流1.1,如果不存在未銷假記錄,執(zhí)行基本事件流22、 系統(tǒng)展示申請單錄入界面3、 學(xué)生錄入學(xué)生學(xué)號、姓名、請假事由(原因、去向),開始時間、結(jié)束時間,聯(lián)系方式(個人聯(lián)系方式、家長聯(lián)系方式)4、 學(xué)生提交申請單,系統(tǒng)進(jìn)行數(shù)據(jù)校驗,依據(jù)業(yè)務(wù)規(guī)則C,如果數(shù)據(jù)校驗

12、不合法,執(zhí)行分支流4.1,如果數(shù)據(jù)校驗合法,執(zhí)行基本事件流55、 系統(tǒng)為當(dāng)前的請假申請單生成唯一的編號,保存該請假申請單6、 將該流程推進(jìn)到下一環(huán)節(jié)系統(tǒng)應(yīng)該向?qū)W生展現(xiàn)請假申請單的最終頁面,用例結(jié)束分支流4.1請假信息填寫有誤,顯示填寫不正確的信息提示,并要求學(xué)生重新填寫,顯示填寫請假申請單的頁面。異常流1.1系統(tǒng)顯示學(xué)生沒有銷假的記錄詳情1.1學(xué)生確認(rèn)自己的請假記錄是否屬實,用例終止后置條件1、 系統(tǒng)將保存該條請假記錄。2、 創(chuàng)建新的請假單并生成唯一的申請編號3、 創(chuàng)建新的請假申請流程實例4、 記錄提交后不能夠再修改界面原型無業(yè)務(wù)規(guī)則A、 包括學(xué)生姓名、輔導(dǎo)員姓名、請假開始時間(必須選擇當(dāng)天及

13、當(dāng)天之后的時間)、請假結(jié)束時間(大于請假開始時間),請假理由,家長聯(lián)系電話B、 系統(tǒng)首先判斷是否存在沒有銷假的記錄,存在的話,將該記錄顯示給當(dāng)前學(xué)生學(xué)生進(jìn)行確認(rèn),如果確認(rèn)是沒有銷假,學(xué)生繼續(xù)執(zhí)行銷假流程,否則,輔導(dǎo)員進(jìn)行異常處理C、 學(xué)生姓名、輔導(dǎo)員姓名、請假開始時間(必須選擇當(dāng)天及當(dāng)天之后的時間)、請假結(jié)束時間(大于請假開始時間),請假理由,家長聯(lián)系電話信息為必填,不能為空。聯(lián)系方式是否合法,請假開始時間是否在請假結(jié)束時間之前。執(zhí)行者學(xué)生涉及的實體1、 學(xué)生屬性:學(xué)號、姓名、班級、性別、聯(lián)系方式、宿舍、標(biāo)志變量(tag=1)2、 請假申請單屬性:學(xué)生(學(xué)號、姓名),請假事由(原因、去向),開

14、始時間、結(jié)束時間,聯(lián)系方式(個人聯(lián)系方式、家長聯(lián)系方式)、操作1(已批準(zhǔn)、待批準(zhǔn))、操作2(申請銷假、已銷假、未銷假) UC003申請銷假該用例的主要參與者為學(xué)生,學(xué)生通過系統(tǒng)提出銷假申請,若申請成功,此時請假信息中操作2的狀態(tài)將修改為申請銷假,否則提示申請銷假失敗。表2.4功能編號UC-003功能名稱申請銷假前置條件參與者通過瀏覽器打開請假管理系統(tǒng)的登錄頁面成功登錄進(jìn)入系統(tǒng)主頁面基本事件流1. 學(xué)生發(fā)出銷假申請,并等待系統(tǒng)驗證2. 如果提示申請成功,執(zhí)行基本事件流33. 等待輔導(dǎo)員銷假4. 如果提示申請失敗,執(zhí)行基本事件流55. 提示申請銷假失敗,請重新申請備選流無后置條件如果

15、用例成功,系統(tǒng)進(jìn)入相應(yīng)權(quán)限頁面界面原型無參與者學(xué)生 UC004查詢請假記錄該用例的參與者為學(xué)生,學(xué)生通過系統(tǒng)提出請假記錄查詢,若查詢成功,學(xué)生請假的記錄將會顯示在頁面上。表2.5功能編號UC-004功能名稱查詢請假記錄前置條件參與者通過瀏覽器打開請假管理系統(tǒng)的登錄頁面成功登錄進(jìn)入系統(tǒng)主頁面基本事件流1.學(xué)生發(fā)出查詢請假記錄,并等待系統(tǒng)驗證2.如果提示驗證成功,執(zhí)行基本事件流33.顯示請假記錄4.如果提示驗證失敗,執(zhí)行基本事件流55.提示查詢失敗或者無請假記錄,請重新申請備選流無后置條件如果用例成功,系統(tǒng)進(jìn)入相應(yīng)權(quán)限頁面界面原型無參與者學(xué)生2.2 系統(tǒng)設(shè)計該系統(tǒng)分為3個部分,第一部

16、分是登錄,學(xué)生和教師都需要登錄,第二部分是學(xué)生端,學(xué)生端3個功能學(xué)生申請請假、學(xué)生申請銷假、查詢個人請假記錄,第三個部分是教師端,教師端3個功能教師批準(zhǔn)請假申請、教師批準(zhǔn)銷假申請、教師查詢學(xué)生請假記錄。2.2.1順序圖圖2.2 登錄時序圖圖2.3 學(xué)生請假申請時序圖圖2.4 學(xué)生銷假申請時序圖圖2.5 學(xué)生請假查詢時序圖2.2.2類圖圖2.6 類圖2.2.3系統(tǒng)體系結(jié)構(gòu)設(shè)學(xué)生請假管理系統(tǒng)統(tǒng)學(xué)生端教師端學(xué)生申請請假學(xué)生申請銷假學(xué)生查詢請假教師審批請假教師審批銷假教師查詢請假登錄圖 2.7 體系結(jié)構(gòu)圖該系統(tǒng)包括基本的3各模塊,登錄、學(xué)生端、教師端。學(xué)生和教師在登錄成功時分別進(jìn)入不同的頁面進(jìn)行操作,

17、學(xué)生端進(jìn)行請假申請、銷假申請、查詢個人請假;教師審批請假、審批銷假、查詢學(xué)生請假記錄。2.2.4 設(shè)計時序圖圖2.8 登錄設(shè)計時序圖該圖是學(xué)生端登錄設(shè)計時序圖,首先學(xué)生發(fā)送請求到控制類,然后跳出登錄頁面,學(xué)生填寫登錄信息并提交到控制類,控制類封裝數(shù)據(jù)創(chuàng)建對象調(diào)用邏輯層進(jìn)行數(shù)據(jù)校驗并返回結(jié)果,邏輯層調(diào)用DAO層最終根據(jù)結(jié)果判斷如果登錄成功將跳轉(zhuǎn)到學(xué)生端主頁,如果登錄失敗將給以提示信息并請重新登錄。圖 2.9 請假申請設(shè)計時序圖該圖是學(xué)生請假申請設(shè)計時序圖,首先學(xué)生需要成功登錄,發(fā)出請假申請,這時候控制類會自發(fā)調(diào)用邏輯層,邏輯層調(diào)用DAO層,如果該學(xué)生之前請過假并且未曾銷假,這時該學(xué)生是不能夠再請

18、假的,倘若該學(xué)生發(fā)出請假申請,系統(tǒng)將會把該學(xué)生之前的請假未銷假記錄顯示出來,如果沒有未銷假記錄,將會顯示請假申請頁面,學(xué)生需要填寫請假申請單將請假詳細(xì)信息填寫并提交倘若正確無誤,系統(tǒng)將會提示請假申請成功。圖 2.10 學(xué)生銷假申請設(shè)計時序圖該圖是學(xué)生銷假申請設(shè)計時序圖,在學(xué)生成功登錄之后,學(xué)生在申請請假時候必須不存在未銷假記錄,所以在學(xué)生請假完成到校報到后必須進(jìn)行銷假,然而這時需要發(fā)出銷假申請,這時候在業(yè)務(wù)邏輯層將會給予判斷,如果銷假申請成功將會提示申請成功,如果有錯誤將會提示申請失敗或者不存在未銷假記錄。2.3 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫在該系統(tǒng)中是為了存儲數(shù)據(jù),學(xué)生所提交的請假記錄是通過保存到數(shù)據(jù)庫

19、中來實現(xiàn)申請請假、銷假等功能的,在我們目前所學(xué)的有限的知識內(nèi),沒有數(shù)據(jù)庫該系統(tǒng)是沒法運行和實現(xiàn)的。2.3.1關(guān)系模式(1)學(xué)生信息:(學(xué)號、姓名、班級、性別、宿舍、聯(lián)系方式、tag)(2)教師信息:(工號、姓名、聯(lián)系方式、性別、年級、tag)(3)登錄:(用戶名(學(xué)號、工號),密碼)(4)請假信息:(學(xué)號、姓名、事由、請假開始時間、請假結(jié)束時間、聯(lián)系方式)2.3.2 E-R圖E-R圖在數(shù)據(jù)庫設(shè)計里面是至關(guān)重要的一步,它是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵,下面使用實體聯(lián)系(E-R)模型來描述系統(tǒng)的概念結(jié)構(gòu),設(shè)計出能夠滿足用戶需求的各種實體,以及它們之間的關(guān)系,為后面的邏輯設(shè)計打下基礎(chǔ)。圖2.11 E-R圖請

20、假記錄理由開始時間學(xué)號操作2操作1結(jié)束時間姓名聯(lián)系方式用戶 1教師 n學(xué)生n屬于姓名聯(lián)系班級學(xué)號性別宿舍Tag屬于性別年級電話姓名工號Tags用戶名:學(xué)號、工號密碼2.3.3表的設(shè)計表 2.6 用戶登錄信息表(login)編號字段名稱數(shù)據(jù)類型約束條件說明1useridVarchar(14)無學(xué)號、工號2passwordVarchar(12)無密碼3TagVarchar(2)無標(biāo)志該表是用戶登錄信息表,表中包括3個屬性,用戶名和密碼、還有標(biāo)志變量tag,tag是為了控制學(xué)生端和教師端,用戶名分別為學(xué)號和教師的工號;表 2.7 學(xué)生信息表(Student)編號字段名稱數(shù)據(jù)類型約束條件說明1sidV

21、archar(14)無學(xué)號2SnameVarchar(20)無姓名3ClassesVarchar(20)無班級4SsexVarchar(6)無性別5SphoneVarchar(12)無聯(lián)系電話6DormitoryVarchar(6)無宿舍7TagVarchar(2)1標(biāo)志該表是學(xué)生信息表,表中包括7個屬性,都是字符串類型,其中tag標(biāo)志變量默認(rèn)為1,并且不可修改;表 2.8 教師信息表(teacher)編號字段名稱數(shù)據(jù)類型約束條件說明1tidVarchar(14)無工號2tnameVarchar(16)無姓名3tsexVarchar(4)無性別4gradesVarchar(20)無所帶年級5t

22、phoneVarchar(12)無電話6tagVarchar(2)2標(biāo)志該表是教師信息表,表中包括6個屬性,都是字符串類型,教師也包括一個標(biāo)志變量tag,也存在一個默認(rèn)值為2 ,并且不能修改;表 2.8 請假信息表(leaverecords)編號字段名稱數(shù)據(jù)類型約束條件說明1sidVarchar(14)無學(xué)號2SnameVarchar(16)無姓名3Starttimedate無開始時間4endtimedate無截止時間5SphoneVarchar(12)無聯(lián)系電話6Operate1Varchar(20)操作17Operate2Varchar(20)操作28reasonVarchar(255)無

23、理由該表示請假信息表,包括8個屬性,其中有字符串和日期類型,操作1和操作2分別是默認(rèn)值,其值是根據(jù)學(xué)生的請假申請成功,銷假以及教師的審批有關(guān)。第3章 實現(xiàn)與測試每一個項目的核心部分都是功能的實現(xiàn),功能的完成標(biāo)志著一個系統(tǒng)的完成,然而這些結(jié)果都需要一個需求和設(shè)計來作為基本的要求,以下就是該系統(tǒng)詳細(xì)功能的實現(xiàn)過程:需求分析:需求分析階段我采用了StarUML工具做了詳細(xì)的分析,根據(jù)自己的需要畫出了包圖、時序圖、用例圖、類圖、活動圖、設(shè)計時序圖等所需要的幾類基本圖,項目的框架是根據(jù)包圖來創(chuàng)建的,時序圖主要就是項目的每一個功能所要求的基本流程,設(shè)計時序圖就是將時序圖給詳細(xì)化,具體到每一步所走的流程返回

24、什么樣的數(shù)據(jù)或者類型,也就是說畫設(shè)計時序圖時基本上已經(jīng)把代碼在腦子里有了型,用例圖其實就是項目所有的功能,每一個用例就代表一個基本的功能,數(shù)據(jù)庫的設(shè)計是根據(jù)類圖來實現(xiàn)的,類圖就表示了數(shù)據(jù)庫中的表以及各表之間的關(guān)系。界面設(shè)計:用戶界面設(shè)計要求友好合理,要充分考慮到用戶的操作習(xí)慣,而且要有良好的顯示效果。此外界面的配色方案要協(xié)調(diào),使用的主色,背景色,前景色,按鈕大小,文字,格式,表格等要統(tǒng)一標(biāo)準(zhǔn)。由于該系統(tǒng)主要用于公司人員管理的,所以界面框架的主色采用較為嚴(yán)肅的淺藍(lán)色,在此基礎(chǔ)上用到了PhotoShop技術(shù),dreamweaver以及css和Java script等,里面的登錄那個信息是一個圖片用

25、ps加工修改寫上了藝術(shù)字,界面的代碼是在dreamweaver里面直接設(shè)計好的,然后將代碼復(fù)制粘貼過去,因為在dreamweaver里面設(shè)計的界面在MyEclipse里面是不能運行的,需要一個腳本來支持,所以只需要在MyEclipse里面建好jsp頁面只需將dreamweaver里面body里面的東西復(fù)制粘貼到MyEclipse里面就可以運行了;每一個界面里面都有一個表格,表格里面有許多其他的元素之類,比如:按鈕,標(biāo)題,下拉框等許多細(xì)小的知識,外面有一個表單,這個表單是必須有的,他是為了在前臺與后連接時候提交一個數(shù)據(jù)來運行這個項目的;在這些界面里面,時間是用js來完成的,統(tǒng)一的css樣式表;還

26、有就是在查詢過程中將所顯示的數(shù)據(jù)設(shè)置為某一屬性他將無法在查詢顯示這個頁面來任意修改一些信息功能描述:首先這個系統(tǒng)除了界面其他的代碼分別寫在5個包中,第一個DO包,它里面從某種意義上說在這個包里面的每一個類都是創(chuàng)建某一個實例的方法,它里面定義了相對屬性,以及get()和set()方法;第二個是DAO包,它里面是對于每一個管理模塊的一些基本小的功能的實現(xiàn),說白了主要就是增刪改查之類的它是對數(shù)據(jù)庫語句的一個應(yīng)用;第三個包是DB包,這個包可以說是只為了一件事,就是數(shù)據(jù)庫的連接,之所以這樣寫專門用一個包來寫關(guān)于數(shù)據(jù)庫的連接目的只是為了看到數(shù)據(jù)與的封裝,體現(xiàn)一個面向?qū)ο蟮乃伎迹瑥亩谀承┓矫嬉材軌驕p少代碼

27、的重復(fù)率,提高代碼的可讀性;第四個包是control包,這個包是最重要的,因為在web應(yīng)用開發(fā)的過程中每一個項目要想與前臺數(shù)據(jù)連接并能夠成功把數(shù)據(jù)相互傳遞,servelet里面有兩個方法,一個是doGet(),一個是doPost(),兩者最大的區(qū)別就是前者對數(shù)據(jù)沒有保密,就是隨時都會泄露一些重要的信息,因為每一提交的表單都會隨著瀏覽器的瀏覽網(wǎng)址顯示出來,然而要想從前臺獲得數(shù)據(jù),就好比添加員工就得用到客戶端所發(fā)出的請求request.getParameter()得到。第五個包是BO包,這個是業(yè)務(wù)邏輯層,主要是調(diào)用DAO包里面的方法,數(shù)據(jù)校驗等功能。在該系統(tǒng)中我主要完成的是學(xué)生端的功能,以下為學(xué)生

28、端的功能:3.1 請假申請功能在學(xué)生請假申請這個功能里面其實所做的就是對數(shù)據(jù)的添加,界面是簡單采用了CSS樣式的界面,如果學(xué)生登錄成功點擊申請請假,如果該學(xué)生存在未銷假記錄系統(tǒng)將會把該學(xué)生的未銷假記錄顯示出來,如果不存在未銷假記錄,此時學(xué)生請假信息界面會顯示出來,在學(xué)生填寫完請假信息出發(fā)右下方的一個提交按鈕,倘若提交成功會提示申請成功,如果失敗會跳轉(zhuǎn)到信息填寫頁面并提示錯誤信息。3.1.1活動圖圖 3.1 學(xué)生申請請假活動圖3.1.2界面圖 3.2 學(xué)生請假申請頁面3.1.3代碼public void doPost(HttpServletRequest request, HttpServlet

29、Response response)throws ServletException, IOException request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");String str="已銷假"String type=request.getParameter("type");LeaveRecordDO ld=null;LeaveRecordDO lrd=new LeaveRecordDO()

30、;StudentBO sb=new StudentBO();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.

31、setEndtime(Date.valueOf(request.getParameter("endtime"); lrd.setReason(request.getParameter("reason"); String results=sb.validate(lrd); if(results=null) String id=request.getParameter("sid"); ld=sb.queryrecords(str,id); if(ld=null)sb.save(lrd); request.getRequestDispatc

32、her("./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(&quo

33、t;./askforleave.jsp").forward(request, response); return; 3.1.4測試用例表 3.1序號功能模塊測試數(shù)據(jù)預(yù)期結(jié)果1請假申請姓名:韓一正學(xué)號:123電話由:回家申請成功3.2 請假記錄查詢在學(xué)生請假記錄查詢里面和學(xué)生請假申請基本是一樣的,這個實際上的就是對數(shù)據(jù)庫里面的數(shù)據(jù)的一個查詢,并將查詢記錄顯示到網(wǎng)頁上,如果不存在請假記錄,將不會顯示任何記錄。3.2.1界面圖 3.3 請假記錄3.2.2代碼HttpSession session=request.getSession();session.setAt

34、tribute("username", request.getParameter("sid");ArrayList<LeaveRecordDO> list=(ArrayList<LeaveRecordDO>) sb.getrecords(request.getParameter("sid");request.setAttribute("list", list);request.getRequestDispatcher("./SseclectDisplay.jsp").fo

35、rward(request, response);return;3.2.3測試用例序號功能模塊測試數(shù)據(jù)預(yù)期結(jié)果1請假查詢學(xué)號:123查詢成功3.4登錄功能登錄是該項目最基本的一個功能,這其實也是一個查詢,只不過是根據(jù)數(shù)據(jù)庫中的數(shù)據(jù)和從網(wǎng)頁中得到的數(shù)據(jù)進(jìn)行對比,如果匹配成功將會進(jìn)入到另外一個頁面,如果登錄失敗將會進(jìn)行提示并重新登錄,登錄過程中在后臺數(shù)據(jù)中定義了標(biāo)志變量來表示學(xué)生和教師,所以在登錄時候根據(jù)這個屬性來判斷登錄成功后跳轉(zhuǎn)到學(xué)生端還是教師端。登錄過程中進(jìn)行了簡單的數(shù)據(jù)校驗,就是說用戶名和密碼不能為空,倘若為空將會提示錯誤信息并提醒重新登錄。3.4.1代碼public void doPos

36、t(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");LoginDO ld=new LoginDO();LoginBO lb=new LoginBO();int tags;String userid=request.getParameter(&

37、quot;username");String passwd=request.getParameter("password");ld.setUserid(userid);ld.setPasswd(passwd);String message=lb.validate(ld);if(message!=null)request.setAttribute("message", message);request.getRequestDispatcher("./loginerror.jsp").forward(request, respo

38、nse);elsetags=lb.login(ld);if(tags=1)HttpSession session=request.getSession();session.setAttribute("username", ld.getUserid();request.getRequestDispatcher("./smain.jsp").forward(request, response);return;else if(tags=2)HttpSession session=request.getSession();session.setAttribute

39、("username", ld.getUserid();request.getRequestDispatcher("./tmain.jsp").forward(request, response);return;elserequest.getRequestDispatcher("./error.jsp").forward(request, response);return;3.4.2界面圖 3.4 登錄界面3.4.1活動圖圖 3.5 登錄活動圖3.5.4測試用例序號功能模塊測試數(shù)據(jù)預(yù)期結(jié)果1學(xué)生登錄用戶名:123密碼:123登錄成功3

40、3第4章 結(jié)束語這次的課題我用的web開發(fā)來完成的,從我對這三個字母的不理解到學(xué)習(xí)它再到用它們來完成我的課題,這個過程并不是想象的那么容易,今天終于完成了,長呼了一口氣,同時在內(nèi)心深處,也默默地為接下來的學(xué)習(xí),做一個前段時間的項目總結(jié),也是學(xué)習(xí)的總結(jié),吸取之前的經(jīng)驗教訓(xùn),錯誤并不可怕,可怕的是再在同一個地方犯同樣錯誤,所以對于我來說,更多的去自我認(rèn)知,知我批評要比表揚(yáng)和贊許來的更加深刻 ,非常有必要做一個總結(jié)。雖然時間略顯倉促,但在項目開發(fā)過程中我學(xué)習(xí)到了很多之前沒有接觸過的內(nèi)容,也發(fā)現(xiàn)了自己的很多不足,感悟頗深。主要包括以下幾個方面:1.在需求分析階段,由于對學(xué)生請假管理系統(tǒng)真正的需求并不了

41、解,還有就是自己在做這個需求的過程當(dāng)中總覺得想到了自己做不出來,就好比沒想到一個需求的功能腦子里就會閃現(xiàn)出一個畫面,我該如何去實現(xiàn)它,正是因為這些錯誤的想法導(dǎo)致了這次課題實踐的進(jìn)度,因此我覺得在做需求時我們應(yīng)該根據(jù)實際不必考慮怎么做怎么實現(xiàn)。2.數(shù)據(jù)庫采用的是Mysql,在編寫sql語句經(jīng)常會出現(xiàn)一些語法錯誤,例如sql語句不之一次的出錯,在修改的過程當(dāng)中我發(fā)現(xiàn)了自己知識的欠缺,或者說對過去所學(xué)的東西并沒有完全理解甚至吸收;尤其是數(shù)據(jù)庫中的亂碼問題,我從一開始數(shù)據(jù)庫中導(dǎo)入數(shù)據(jù)我就一直被亂碼問題糾結(jié)著,我先上網(wǎng)查閱相關(guān)資料,看書尋找改變亂碼的方法,甚至解決不了向同學(xué)請教,但是最終我都沒有解決,最

42、后在老師的幫助下檢測出亂碼不是編碼的問題而是我的數(shù)據(jù)庫安裝過程中字符編碼選擇錯誤,所以一直回出現(xiàn)亂碼問題,而且解決之后再將自己遇到的問題記錄下來,使得以后出現(xiàn)同樣的問題時能夠快速解決。3.由于該系統(tǒng)在學(xué)生申請成功后需要教師端的批準(zhǔn),在學(xué)生端才能進(jìn)行下一次的操作,這些之前很少用到,通過這次實習(xí)也將自己在課本上學(xué)到的內(nèi)容用到了實際項目中;感受最深的就是MVC模式和在兩個客戶端操作。4.團(tuán)隊合作。我們完成一個項目總是需要一個團(tuán)隊的,而不是個人,在開發(fā)過程中小組之間的溝通非常重要。如果組內(nèi)成員沒有很好的交流,則在項目后期各模塊合并時,會出現(xiàn)許多意想不到的錯誤,例如路徑問題、頁面間跳轉(zhuǎn)等。所以我們完成系

43、統(tǒng)時,小組間要定期開例會,相互交流,對于有分歧的地方,一定要及時討論,采取一致措施,這樣才有利于團(tuán)隊工作。總之,這次的課題真的使我受益匪淺。在這個過程中,我學(xué)習(xí)到的不僅僅是以上技術(shù)上的收獲,更還有生活中的的人際交往以及其他的許多經(jīng)驗。而這些,都將作為我邁入社會的根本,我將以此為我的基礎(chǔ),盡量將學(xué)到的知識運用到實際工作中,去迎接一個又一個的挑戰(zhàn)。回想在這不到一個月的學(xué)習(xí)時間里,我學(xué)到了許許多多讓我感覺比較充實的知識,掌握了更多的學(xué)習(xí)的方法,作為一個程序員,我們更需要信心,面對項目時我們要仔細(xì)分析,想法嘗試,想法去實現(xiàn),這樣才能進(jìn)步,才能找到自己的不足。同樣在職場中,工作需要自信心,不相信自己,任

44、何工作都做不好。沒有信心,成功的機(jī)會就會少些。自信心能讓你做什么都不難。生活需要自信心。現(xiàn)實是殘酷的,沒有自信心是難以生存的。道路是坎坷的,自信心能幫你順利地走過。有時希望是渺茫的,但是自信心能讓你看到美好明天。在寫程序時,總是在看到功能后,立即投入到代碼編寫工作中。后期出現(xiàn)的錯誤總是很多很多,經(jīng)常返回重新修改。經(jīng)過這次旳實踐,又對軟件這個東西有了新的認(rèn)識,新的收獲,而且我對軟件工程又有了新的理解,說白了軟件工程就是在為這個軟件做鋪墊,也就是說需求分析就是軟件工程,而我在做需求分析階段能順利完成,我十分的感激我的老師郭麗,如果不是在課堂上老師讓我在同學(xué)們面前或那個設(shè)計時序圖,我想我現(xiàn)在仍然不會

45、明白軟件工程怎么去做需求,不是老師一步步的教導(dǎo),我根本不可能完成今天這么簡單的并且不完善的項目,所以在此我對老師表示深深的敬意與感激!參考文獻(xiàn)01李明.java程序設(shè)計與應(yīng)用M:北京.交通大學(xué)出版社. 2010.302葉和亞.陳立.java2程序設(shè)計實用教程例M北京:電子工業(yè)出版社. 2003.503李兆峰.龐永慶.java程序設(shè)計與項目實踐M北京:電子工業(yè)出版社.2011.604Y.Daniel Liang.java語言程序設(shè)計M西安;機(jī)械工業(yè)出版社.2011.505 06 07劉京華.Java Web整合開發(fā)王者歸來M:清華大學(xué)出版社. 2010.108何富貴.Drea

46、mweaverCS4網(wǎng)頁設(shè)計與制作M: 機(jī)械工業(yè)出版社. 2010.309鄭阿奇MySQL實用教程M:電子工業(yè)出版社.2012.510 葉和亞.陳立.java2程序設(shè)計實用教程例M北京:電子工業(yè)出版社. 2003.5指導(dǎo)教師評語成績:指導(dǎo)教師簽名: 年 月 日 附錄A: 附加圖、表圖 1 學(xué)生端主頁面圖 2 教師端學(xué)生請假信息頁面附錄B: 主要源程序DAO包/* * 請假審批 */public boolean LeaveAllow(String sid)/獲取數(shù)據(jù)庫連接Connection connection=DButils.getConnection

47、();/創(chuàng)建sql執(zhí)行環(huán)境PreparedStatement ps=null;/創(chuàng)建sql語句String s="已批準(zhǔn)"String sql="update leaverecords set operate1=? where sid=?"/執(zhí)行sql語句try ps= connection.prepareStatement(sql);ps.setString(1,s);ps.setString(2, sid);int count = ps.executeUpdate();if(count=1)return true; catch (SQLExcepti

48、on e) / TODO Auto-generated catch blocke.printStackTrace();finallyDButils.release(connection, ps, null);return false;/* * 銷假審批 */public boolean XJallow(String s,String sid)/獲取數(shù)據(jù)庫連接Connection connection=DButils.getConnection();/創(chuàng)建sql執(zhí)行環(huán)境PreparedStatement ps=null;/創(chuàng)建sql語句s="已銷假"String sql=&q

49、uot;update leaverecords set operate2=?where sid=?"/執(zhí)行sql語句try ps= connection.prepareStatement(sql);ps.setString(1, s);ps.setString(2, sid);int count = ps.executeUpdate();if(count=1)return true; catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();finallyDButils.release(connection, ps, null);return false;/* * 查詢請假記錄 */public ArrayList<LeaveRecordDO> selectAll()ArrayList<LeaveRecordDO> list = new ArrayList<LeaveRecordDO>();/1、獲取數(shù)據(jù)庫連接C

溫馨提示

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

評論

0/150

提交評論