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

下載本文檔

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

文檔簡介

中原工學(xué)院軟件學(xué)院軟件工程實踐一設(shè)計任務(wù)書姓名***軟件工程專業(yè)JAVA123班題目學(xué)生請假管理系統(tǒng)的開發(fā)設(shè)計任務(wù)開發(fā)一個基于Web的學(xué)生請假管理系統(tǒng),包括教師端和學(xué)生端。主要功能包括:UI設(shè)計:界面〔參與〕學(xué)生端:請假申請、銷假申請、查詢自己請假記錄;〔獨立完成〕3.教師端:請假審批、銷假審批、查詢學(xué)生請假記錄;〔參與〕開發(fā)工具:Java、JSP、MySQL、Photoshop、MyEclipse8.6時間進(jìn)度第1周〔9-9~9-13〕:完成需求分析、UI設(shè)計第2周〔9-16~9-21〕:完成代碼第3周〔9-24~9-29〕:完成報告原主始要資參料考與文獻(xiàn)[01][02]葉和亞.陳立.java2程序設(shè)計實用教程例[M]北京:電子工業(yè)出版社.2003.5[03]李兆峰.龐永慶.java程序設(shè)計與工程實踐[M]北京:電子工業(yè)出版社.2023.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é)生是否來上課。這些方法往往具有考勤過失率比擬高,考勤效率也比擬慢,沒有一個總體的的記錄和整理,并且紙制的點名冊容易喪失遺漏,耽誤時間等缺點。針對以上的問題,開發(fā)一種針對學(xué)生請假的考勤網(wǎng)上管理系統(tǒng),通過請假管理系統(tǒng),任課老師可以在課堂上直接登錄考勤記錄網(wǎng)站進(jìn)行課堂查看哪些學(xué)生請假,記錄學(xué)生考勤情況等。此外,在其他時間,班主任以及其他老師也可以登錄該網(wǎng)站查詢學(xué)生在某課程的出勤情況。該系統(tǒng)是基于Javaweb的簡單型設(shè)計,它表達(dá)了對一些簡單的JSP標(biāo)簽語言的運(yùn)用,該系統(tǒng)界面簡單、操作方便。根據(jù)實際需要將系統(tǒng)分為學(xué)生端和教師端,學(xué)生請假和教師批假都需要首先登錄,學(xué)生端實現(xiàn)了學(xué)生申請請假、申請銷假、查詢自己請假記錄功能;教師端實現(xiàn)了教師對學(xué)生請假的批準(zhǔn)、銷假批準(zhǔn)以及查詢學(xué)生的請假記錄功能。關(guān)鍵詞:學(xué)生;請假管理;JavaWeb目錄TOC\o"1-4"\h\z\u摘要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ī)約4UC—001登錄42.1.3.2UC—002申請請假5UC—003申請銷假6UC—004查詢請假記錄72.2系統(tǒng)設(shè)計7順序圖8類圖11系統(tǒng)體系結(jié)構(gòu)設(shè)計112.2.4設(shè)計時序圖12圖2.10學(xué)生銷假申請設(shè)計時序圖142.3數(shù)據(jù)庫設(shè)計14圖15關(guān)系模式16表的設(shè)計16第3章實現(xiàn)與測試193.1請假申請功能20活動圖21界面21代碼21測試用例223.2銷假申請功能22活動圖22界面22代碼22測試用例223.3請假記錄查詢22活動圖23界面23代碼23測試用例233.4登錄功能23活動圖23界面23代碼24測試用例24第4章結(jié)束語25附錄A:附加圖、表29附錄B:主要源程序29第1章工程分析隨著計算機(jī)的開展與不斷進(jìn)步,各個領(lǐng)域都出現(xiàn)了新的技術(shù),曾經(jīng)各種規(guī)模之間的競爭已經(jīng)開展成為技術(shù)之間的競爭,管理和人才之間的競爭,然而計算機(jī)技術(shù)的開展也離不開軟件的更新,在軟件不斷更新和替換的過程中已經(jīng)滲透到各個領(lǐng)域,政府機(jī)關(guān),各大高校等都不斷向智能方向開展,學(xué)生請假也成為一件棘手的事情,為了請假學(xué)生需要寫請假條找老師批準(zhǔn),結(jié)果是這個時候老師不一定在,另外學(xué)生需要請假時不一定在學(xué)校,所以為了給廣闊師生提供方便,我們需要開發(fā)軟件系統(tǒng)學(xué)生請假管理系統(tǒng)。1.1問題描述要完成這個系統(tǒng)最大的問題就是所學(xué)知識是有限的,在完成其中某些功能時候所需要的可能就完全沒有接觸過,所以只能用一些簡單的功能代替或者替換掉那些用目前的水平所不能實現(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層,再根據(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):能在編譯器中有效正確運(yùn)行。時間:一周第三階段:成果:寫報告;目標(biāo):完成系統(tǒng)報告。時間:一周第2章系統(tǒng)分析與設(shè)計學(xué)生請假管理系統(tǒng)必須通過正確的用戶名的密碼方能進(jìn)入系統(tǒng),系統(tǒng)分為兩大模塊,學(xué)生端和教師端,學(xué)生端和教師端分別有三個模塊,學(xué)生端分為請假申請、銷假申請、個人請假記錄查詢,教師端分為請假審批、銷假審批和學(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é)生UC—001登錄參與者學(xué)生需要用戶名和密碼登錄到系統(tǒng),才能進(jìn)行相應(yīng)的操作,系統(tǒng)中設(shè)置學(xué)生的登錄用戶名為學(xué)號,初始化密碼為學(xué)號.表2.2功能編號UC-001功能名稱登錄前置條件參與者通過瀏覽器翻開請假管理系統(tǒng)的登錄頁面根本領(lǐng)件流系統(tǒng)要求參與者填寫用戶名和密碼。參與者填寫相應(yīng)信息,學(xué)生輸入學(xué)號作為用戶名,密碼初始值為學(xué)號。系統(tǒng)驗證用戶輸入信息是否正確備選流1.用戶名和密碼輸入錯誤如果系統(tǒng)檢測到用戶輸入的用戶名和密碼與數(shù)據(jù)庫中不一致,給予用戶“用戶名和密碼不正確〞的錯誤提示,并要求用戶重新輸入。后置條件如果用例成功,系統(tǒng)進(jìn)入相應(yīng)權(quán)限頁面界面原型參與者學(xué)生UC—002申請請假該用例的主要參與者為學(xué)生,學(xué)生通過系統(tǒng)填寫請假申請單,請假申請單將會提交給輔導(dǎo)員審批。表=2.32.3功能編號UC-002功能名稱申請請假用例描述學(xué)生創(chuàng)立新的請假申請單,錄入請假資料,創(chuàng)立一個請假申請流程前置條件學(xué)生正常登錄到系統(tǒng)中,并翻開請假管理頁面根本領(lǐng)件流學(xué)生選擇創(chuàng)立請假申請單,系統(tǒng)自動查詢當(dāng)前的學(xué)生是否存在沒有銷假的記錄,如果存在沒有銷假的請假記錄,執(zhí)行異常流1.1,如果不存在未銷假記錄,執(zhí)行根本領(lǐng)件流2系統(tǒng)展示申請單錄入界面學(xué)生錄入學(xué)生學(xué)號、姓名、請假事由〔原因、去向〕,開始時間、結(jié)束時間,聯(lián)系方式〔個人聯(lián)系方式、家長聯(lián)系方式〕學(xué)生提交申請單,系統(tǒng)進(jìn)行數(shù)據(jù)校驗,依據(jù)業(yè)務(wù)規(guī)那么C,如果數(shù)據(jù)校驗不合法,執(zhí)行分支流4.1,如果數(shù)據(jù)校驗合法,執(zhí)行根本領(lǐng)件流5系統(tǒng)為當(dāng)前的請假申請單生成唯一的編號,保存該請假申請單將該流程推進(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)自己的請假記錄是否屬實,用例終止后置條件系統(tǒng)將保存該條請假記錄。創(chuàng)立新的請假單并生成唯一的申請編號創(chuàng)立新的請假申請流程實例記錄提交后不能夠再修改界面原型無業(yè)務(wù)規(guī)那么包括學(xué)生姓名、輔導(dǎo)員姓名、請假開始時間〔必須選擇當(dāng)天及當(dāng)天之后的時間〕、請假結(jié)束時間〔大于請假開始時間〕,請假理由,家長聯(lián)系系統(tǒng)首先判斷是否存在沒有銷假的記錄,存在的話,將該記錄顯示給當(dāng)前學(xué)生學(xué)生進(jìn)行確認(rèn),如果確認(rèn)是沒有銷假,學(xué)生繼續(xù)執(zhí)行銷假流程,否那么,輔導(dǎo)員進(jìn)行異常處理學(xué)生姓名、輔導(dǎo)員姓名、請假開始時間〔必須選擇當(dāng)天及當(dāng)天之后的時間〕、請假結(jié)束時間〔大于請假開始時間〕,請假理由,家長聯(lián)系信息為必填,不能為空。聯(lián)系方式是否合法,請假開始時間是否在請假結(jié)束時間之前。執(zhí)行者學(xué)生涉及的實體學(xué)生屬性:學(xué)號、姓名、班級、性別、聯(lián)系方式、宿舍、標(biāo)志變量〔tag=1〕請假申請單屬性:學(xué)生〔學(xué)號、姓名〕,請假事由〔原因、去向〕,開始時間、結(jié)束時間,聯(lián)系方式〔個人聯(lián)系方式、家長聯(lián)系方式〕、操作1〔已批準(zhǔn)、待批準(zhǔn)〕、操作2〔申請銷假、已銷假、未銷假〕UC—003申請銷假該用例的主要參與者為學(xué)生,學(xué)生通過系統(tǒng)提出銷假申請,假設(shè)申請成功,此時請假信息中操作2的狀態(tài)將修改為申請銷假,否那么提示申請銷假失敗。表2.4功能編號UC-003功能名稱申請銷假前置條件參與者通過瀏覽器翻開請假管理系統(tǒng)的登錄頁面成功登錄進(jìn)入系統(tǒng)主頁面根本領(lǐng)件流學(xué)生發(fā)出銷假申請,并等待系統(tǒng)驗證如果提示申請成功,執(zhí)行根本領(lǐng)件流3等待輔導(dǎo)員銷假如果提示申請失敗,執(zhí)行根本領(lǐng)件流5提示申請銷假失敗,請重新申請備選流無后置條件如果用例成功,系統(tǒng)進(jìn)入相應(yīng)權(quán)限頁面界面原型無參與者學(xué)生UC—004查詢請假記錄該用例的參與者為學(xué)生,學(xué)生通過系統(tǒng)提出請假記錄查詢,假設(shè)查詢成功,學(xué)生請假的記錄將會顯示在頁面上。表2.5功能編號UC-004功能名稱查詢請假記錄前置條件參與者通過瀏覽器翻開請假管理系統(tǒng)的登錄頁面成功登錄進(jìn)入系統(tǒng)主頁面根本領(lǐng)件流1.學(xué)生發(fā)出查詢請假記錄,并等待系統(tǒng)驗證2.如果提示驗證成功,執(zhí)行根本領(lǐng)件流33.顯示請假記錄4.如果提示驗證失敗,執(zhí)行根本領(lǐng)件流55.提示查詢失敗或者無請假記錄,請重新申請備選流無后置條件如果用例成功,系統(tǒng)進(jìn)入相應(yīng)權(quán)限頁面界面原型無參與者學(xué)生2.2系統(tǒng)設(shè)計該系統(tǒng)分為3個局部,第一局部是登錄,學(xué)生和教師都需要登錄,第二局部是學(xué)生端,學(xué)生端3個功能學(xué)生申請請假、學(xué)生申請銷假、查詢個人請假記錄,第三個局部是教師端,教師端3個功能教師批準(zhǔn)請假申請、教師批準(zhǔn)銷假申請、教師查詢學(xué)生請假記錄。順序圖圖2.2登錄時序圖圖2.3學(xué)生請假申請時序圖圖2.4學(xué)生銷假申請時序圖圖2.5學(xué)生請假查詢時序圖類圖圖2.6類圖系統(tǒng)體系結(jié)構(gòu)設(shè)學(xué)生請假管理系統(tǒng)學(xué)生請假管理系統(tǒng)統(tǒng)學(xué)生端教師端學(xué)生申請請假學(xué)生申請銷假學(xué)生查詢請假教師審批請假教師審批銷假教師查詢請假登錄圖2.7體系結(jié)構(gòu)圖該系統(tǒng)包括根本的3各模塊,登錄、學(xué)生端、教師端。學(xué)生和教師在登錄成功時分別進(jìn)入不同的頁面進(jìn)行操作,學(xué)生端進(jìn)行請假申請、銷假申請、查詢個人請假;教師審批請假、審批銷假、查詢學(xué)生請假記錄。設(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é)生是不能夠再請假的,倘假設(shè)該學(xué)生發(fā)出請假申請,系統(tǒng)將會把該學(xué)生之前的請假未銷假記錄顯示出來,如果沒有未銷假記錄,將會顯示請假申請頁面,學(xué)生需要填寫請假申請單將請假詳細(xì)信息填寫并提交倘假設(shè)正確無誤,系統(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ù)庫中來實現(xiàn)申請請假、銷假等功能的,在我們目前所學(xué)的有限的知識內(nèi),沒有數(shù)據(jù)庫該系統(tǒng)是沒法運(yùn)行和實現(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.2E-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è)計打下根底。圖2.11E-R圖請假記錄請假記錄理由開始時間學(xué)號操作2操作1結(jié)束時間姓名聯(lián)系方式用戶用戶1教師n學(xué)生n屬于姓名聯(lián)系班級學(xué)號性別宿舍Tag屬于性別年級姓名工號Tags用戶名:學(xué)號、工號密碼表的設(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ù)類型約束條件說明1sidVarchar(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)無所帶年級5tphoneVarchar(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)無理由該表示請假信息表,包括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ì)化,具體到每一步所走的流程返回什么樣的數(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)色,在此根底上用到了PhotoShop技術(shù),dreamweaver以及css和Javascript等,里面的登錄那個信息是一個圖片用ps加工修改寫上了藝術(shù)字,界面的代碼是在dreamweaver里面直接設(shè)計好的,然后將代碼復(fù)制粘貼過去,因為在dreamweaver里面設(shè)計的界面在MyEclipse里面是不能運(yùn)行的,需要一個腳本來支持,所以只需要在MyEclipse里面建好jsp頁面只需將dreamweaver里面body里面的東西復(fù)制粘貼到MyEclipse里面就可以運(yùn)行了;每一個界面里面都有一個表格,表格里面有許多其他的元素之類,比方:按鈕,標(biāo)題,下拉框等許多細(xì)小的知識,外面有一個表單,這個表單是必須有的,他是為了在前臺與后連接時候提交一個數(shù)據(jù)來運(yùn)行這個工程的;在這些界面里面,時間是用js來完成的,統(tǒng)一的css樣式表;還有就是在查詢過程中將所顯示的數(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ù)與的封裝,表達(dá)一個面向?qū)ο蟮乃伎?,從而在某些方面也能夠減少代碼的重復(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é)生端的功能:3.1請假申請功能在學(xué)生請假申請這個功能里面其實所做的就是對數(shù)據(jù)的添加,界面是簡單采用了CSS樣式的界面,如果學(xué)生登錄成功點擊申請請假,如果該學(xué)生存在未銷假記錄系統(tǒng)將會把該學(xué)生的未銷假記錄顯示出來,如果不存在未銷假記錄,此時學(xué)生請假信息界面會顯示出來,在學(xué)生填寫完請假信息出發(fā)右下方的一個提交按鈕,倘假設(shè)提交成功會提示申請成功,如果失敗會跳轉(zhuǎn)到信息填寫頁面并提示錯誤信息?;顒訄D圖3.1學(xué)生申請請假活動圖界面圖3.2學(xué)生請假申請頁面代碼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序號功能模塊測試數(shù)據(jù)預(yù)期結(jié)果1請假申請姓名:韓一正學(xué)號:123由:回家申請成功請假記錄查詢在學(xué)生請假記錄查詢里面和學(xué)生請假申請根本是一樣的,這個實際上的就是對數(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ù)預(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ù)校驗,就是說用戶名和密碼不能為空,倘假設(shè)為空將會提示錯誤信息并提醒重新登錄。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ù)預(yù)期結(jié)果1學(xué)生登錄用戶名:123密碼:123登錄成功第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)真正的需求并不了解,還有就是自己在做這個需求的過程當(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é)請教,但是最終我都沒有解決,最后在老師的幫助下檢測出亂碼不是編碼的問題而是我的數(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)等。所以我們完成系統(tǒng)時,小組間要定期開例會,相互交流,對于有分歧的地方,一定要及時討論,采取一致措施,這樣才有利于團(tuán)隊工作??傊?,這次的課題真的使我受益匪淺。在這個過程中,我學(xué)習(xí)到的不僅僅是以上技術(shù)上的收獲,更還有生活中的的人際交往以及其他的許多經(jīng)驗。而這些,都將作為我邁入社會的根本,我將以此為我的根底,盡量將學(xué)到的知識運(yùn)用到實際工作中,去迎接一個又一個的挑戰(zhàn)?;叵朐谶@不到一個月的學(xué)習(xí)時間里,我學(xué)到了許許多多讓我感覺比擬充實的知識,掌握了更多的學(xué)習(xí)的方法,作為一個程序員,我們更需要信心,面對工程時我們要仔細(xì)分析,想法嘗試,想法去實現(xiàn),這樣才能進(jìn)步,才能找到自己的缺乏。同樣在職場中,工作需要自信心,不相信自己,任何工作都做不好。沒有信心,成功的時機(jī)就會少些。自信心能讓你做什么都不難。生活需要自信心。現(xiàn)實是殘酷的,沒有自信心是難以生存的。道路是坎坷的,自信心能幫你順利地走過。有時希望是渺茫的,但是自信心能讓你看到美好明天。在寫程序時,總是在看到功能后,立即投入到代碼編寫工作中。后期出現(xiàn)的錯誤總是很多很多,經(jīng)常返回重新修改。經(jīng)過這次旳實踐,又對軟件這個東西有了新的認(rèn)識,新的收獲,而且我對軟件工程又有了新的理解,說白了軟件工程就是在為這個軟件做鋪墊,也就是說需求分析就是軟件工程,而我在做需求分析階段能順利完成,我十分的感謝我的老師郭麗,如果不是在課堂上老師讓我在同學(xué)們面前或那個設(shè)計時序圖,我想我現(xiàn)在仍然不會明白軟件工程怎么去做需求,不是老師一步步的教導(dǎo),我根本不可能完成今天這么簡單的并且不完善的工程,所以在此我對老師表示深深的敬意與感謝!參考文獻(xiàn)[01]李明.java程序設(shè)計與應(yīng)用[M]:北京.交通大學(xué)出版社.2023.3[02]葉和亞.陳立.java2程序設(shè)計實用教程例[M]北京:電子工業(yè)出版社.2003.5[03]李兆峰.龐永慶.java程序設(shè)計與工程實踐[M]北京:電子工業(yè)出版社.2023.6[04]Y.DanielLiang.java語言程序設(shè)計[M]西安;機(jī)械工業(yè)出版社.2023.5[07]劉京華.Java

Web整合開發(fā)王者歸來[M]:清華大學(xué)出版社.

2023.1

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

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

2023.3

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

[10]

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

2003.5指導(dǎo)教師評語成績:指導(dǎo)教師簽名:年月日附錄A:附加圖、表圖1學(xué)生端主頁面圖2教師端學(xué)生請假信息頁面附錄B:主要源程序DAO包/* *請假審批 */publicbooleanLeaveAllow(Stringsid){//獲取數(shù)據(jù)庫連接 Connectionconnection=DButils.getConnection();//創(chuàng)立sql執(zhí)行環(huán)境 PreparedStatementps=null;//創(chuàng)立sql語句 Strings="已批準(zhǔn)"; 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=new

溫馨提示

  • 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

提交評論