|
摘要 隨著科技的迅速發(fā)展,各種管理系統(tǒng)已應(yīng)用到社會(huì)的各個(gè)領(lǐng)域。高等院校作為科技發(fā)展的前沿陣地,實(shí)現(xiàn)對(duì)學(xué)生宿舍的信息化管理是一個(gè)必然的趨勢(shì)和潮流,學(xué)生宿舍采用傳統(tǒng)的手工管理模式已經(jīng)逐漸不能適應(yīng)時(shí)代的發(fā)展。 通過(guò)學(xué)生宿舍管理系統(tǒng)這個(gè)平臺(tái),可以實(shí)現(xiàn)宿舍管理的信息化、網(wǎng)絡(luò)化、系統(tǒng)化、規(guī)范化,使工作人員從繁雜的數(shù)據(jù)查詢和統(tǒng)計(jì)中解脫出來(lái),減少工作量。系統(tǒng)的主要功能包括:樓宇信息管理、宿舍信息管理、學(xué)生信息管理、訪客信息管理、衛(wèi)生評(píng)分模塊。電費(fèi)信息管理,學(xué)生報(bào)修等功能。 本系統(tǒng)前臺(tái)主要使用JSP作為開(kāi)發(fā)語(yǔ)言,后臺(tái)使用MySQL作為數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)環(huán)境是MyEclipse,服務(wù)器采用tomcat,開(kāi)發(fā)出的一個(gè)基于Web技術(shù)的B/S結(jié)構(gòu)的宿舍管理系統(tǒng)。 第一章緒論 1.1開(kāi)發(fā)背景及目的 計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,給信息時(shí)代的人們帶來(lái)了很大的方便。如今在Internet 上,隨處都可以看到種類(lèi)繁多的信息管理系統(tǒng),比如,企業(yè)辦公化自動(dòng)管理系統(tǒng),電子商務(wù)系統(tǒng),學(xué)校教務(wù)管理系統(tǒng)等等。隨著信息技術(shù)的日益發(fā)展已深入到社會(huì)的各個(gè)角落,學(xué)生宿舍管理也不例外,尤其作為高等院校的宿舍管理工作,是高校各項(xiàng)工作的重要組成部分,其管理能力和服務(wù)水平的高低直接關(guān)系到學(xué)生的利益、正常的教學(xué)和整體辦學(xué)水平,直接影響到人才的培養(yǎng)質(zhì)量.目前,我校宿舍管理工作還是存在著很多問(wèn)題。我校學(xué)生宿舍現(xiàn)為手工管理,效率低、易出錯(cuò)、手續(xù)繁瑣,而且耗費(fèi)大量的人力,物力,財(cái)力。比如說(shuō),如果是一個(gè)學(xué)生家長(zhǎng)來(lái)探望學(xué)生,該家長(zhǎng)只是知道學(xué)生姓名,并不知道學(xué)生具體住在哪棟宿舍樓的哪個(gè)宿舍,宿舍管理員人員手工查詢學(xué)生信息,必然效率很低,基于以上等一些實(shí)際存在的情況,以及與我校相關(guān)人員的溝通反饋結(jié)果來(lái)看,他們希望有一個(gè)學(xué)生宿舍管理系統(tǒng)。通過(guò)此系統(tǒng),可以對(duì)學(xué)生宿舍的各項(xiàng)情況實(shí)行電腦化管理,這樣可以提高工作效率,也使得宿舍管理所需的各項(xiàng)信息能方便快速進(jìn)行錄入,查詢,刪除和更新,對(duì)相應(yīng)關(guān)鍵數(shù)據(jù)也能夠方便的統(tǒng)計(jì)結(jié)果并且以報(bào)表或者圖形的方式展現(xiàn)出來(lái)。 為了提供給學(xué)生一個(gè)安全、方便的宿舍環(huán)境,學(xué)校行政人員能動(dòng)態(tài)了解學(xué)生宿舍的各方面信息,同時(shí)減輕學(xué)生宿舍管理人員的工作量,提高工作效率和管理質(zhì)量,針對(duì)我校的實(shí)際情況,開(kāi)發(fā)一個(gè)適合我校的學(xué)生宿舍管理系統(tǒng)具有很高的使用價(jià)值和意義。 1.2國(guó)內(nèi)外研究現(xiàn)狀 長(zhǎng)久以來(lái),國(guó)內(nèi)的學(xué)生宿舍管理工作大多數(shù)都采用的是傳統(tǒng)的手工方式來(lái)記錄相關(guān)信息,這種管理方式存在很多缺點(diǎn),比如說(shuō),宿舍樓,宿舍等信息的錄入,查詢,更新,分析都要完全依賴管理人員的手工記錄和人工分析。近幾年來(lái),隨著高校的全面擴(kuò)招,在校人數(shù)的不斷增加,學(xué)生宿舍管理工作采用手工操作的方式,對(duì)于小規(guī)模學(xué)校來(lái)說(shuō)還勉強(qiáng)可以接受,但對(duì)于規(guī)模大,學(xué)生記錄存檔數(shù)據(jù)大的高校來(lái)說(shuō),人工記錄是相當(dāng)麻煩的。為滿足學(xué)校發(fā)展需求,采用各種編程語(yǔ)言入delphi、VB、C#等開(kāi)發(fā)了許多基于B/S 和C/S的學(xué)生宿舍管理系統(tǒng)已經(jīng)存在并且使用,學(xué)生宿舍管理系統(tǒng)是涉及宿舍管理、信息科學(xué)和計(jì)算機(jī)技術(shù)的復(fù)雜的人機(jī)交互系統(tǒng)。通過(guò)這些系統(tǒng),可以對(duì)學(xué)生進(jìn)行智能化管理,有效地記錄并查詢學(xué)生入學(xué)以后在學(xué)校的住宿情況,為學(xué)生宿舍的管理者提供了諸多方便。 由此可以看出國(guó)內(nèi)各高校已逐步認(rèn)識(shí)到學(xué)生宿舍管理系統(tǒng)的價(jià)值和重要性,系統(tǒng)實(shí)現(xiàn)了從無(wú)到有,功能從弱到強(qiáng),從不完善到完善的發(fā)展過(guò)程。國(guó)內(nèi)高校學(xué)生宿舍管理正由傳統(tǒng)模式向高效、快捷的現(xiàn)代化管理過(guò)渡。 在高效學(xué)生宿舍信息化領(lǐng)域,國(guó)外的大學(xué)領(lǐng)先國(guó)內(nèi),一方面得益于國(guó)外大學(xué)宿舍的硬件基礎(chǔ)設(shè)施較好,相關(guān)配套設(shè)施能滿足要求,另一方面是國(guó)外信息技術(shù)應(yīng)用的整體氛圍較為濃厚,信息化意識(shí)強(qiáng)。典型的例子是:目前國(guó)外大學(xué)學(xué)生宿舍基本實(shí)現(xiàn)無(wú)線上網(wǎng),而國(guó)內(nèi)只有少數(shù)幾所高校部分宿舍實(shí)現(xiàn),多所國(guó)外高校學(xué)生宿舍門(mén)禁刷卡監(jiān)控屏可以同時(shí)顯示學(xué)生照片,目前國(guó)內(nèi)高校能實(shí)現(xiàn)這一簡(jiǎn)單功能的還是少數(shù)。國(guó)外的斯巴克高科已使用日趨成熟的計(jì)算技術(shù)和防尾隨門(mén)禁通道來(lái)代替?zhèn)鹘y(tǒng)的人工模式,來(lái)實(shí)現(xiàn)學(xué)生信息的現(xiàn)代化管理,這一技術(shù)具有手工管理所無(wú)法比擬的優(yōu)點(diǎn),如:可有效識(shí)別進(jìn)出人員,查找方便,可靠性高,存儲(chǔ)量大。保密性好,壽命長(zhǎng)、成本低等特點(diǎn)。國(guó)外大學(xué)信息化基礎(chǔ)環(huán)境的保障推動(dòng)了信息化的上層建筑—宿舍管理信息系統(tǒng)的發(fā)展。 1.3開(kāi)發(fā)工具及技術(shù) 1.3.1開(kāi)發(fā)工具 此次設(shè)計(jì)主要采用MyEclipse加Tomcat后臺(tái)服務(wù)器進(jìn)行,設(shè)計(jì)過(guò)程中頁(yè)面主要使用JSP技術(shù)完成,下面對(duì)MyEclipse、Tomcat和MySQL數(shù)據(jù)庫(kù)進(jìn)行簡(jiǎn)要介紹。 1.3.1.1 MyEclipse MyEclipse,是一個(gè)十分優(yōu)秀的用于開(kāi)發(fā)Java, J2EE的Eclipse插件集合,MyEclipse 的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開(kāi)元產(chǎn)品的支持十分不錯(cuò)。MyEclipse 企業(yè)級(jí)工作平臺(tái)(MyEclipse Enterprise Workbench ,簡(jiǎn)稱MyEclipse)是對(duì)Eclipse IDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和JavaEE的開(kāi)發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開(kāi)發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。 1.3.1.2 Tomcat Tomcat是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶不是很多的場(chǎng)合下被普遍使用,是開(kāi)發(fā)和調(diào)試JSP 程序的首選??梢赃@樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apahce服務(wù)器,可利用它響應(yīng)對(duì)HTML頁(yè)面的訪問(wèn)請(qǐng)求。實(shí)際上Tomcat 部分是Apache 服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。 1.3.1.3 MySQL MySQL使用C和C 編寫(xiě),并使用了多種編譯器進(jìn)行測(cè)試,保證源代碼的可移植性;支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng);為多種編程語(yǔ)言提供了API;支持多線程,充分利用CPU資源;提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫(kù)連接途徑;可以處理?yè)碛猩锨f(wàn)條記錄的大型數(shù)據(jù)庫(kù)。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來(lái)說(shuō),MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開(kāi)放源碼軟件,因此可以大大降低總體擁有成本。 1.3.2 JSP技術(shù) J SP技術(shù)使用Java編程語(yǔ)言編寫(xiě)類(lèi)XML的tags和scriptlets,來(lái)封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還能通過(guò)tags和scriptlets訪問(wèn)存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開(kāi)發(fā)變得迅速和容易。 Web服務(wù)器在遇到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。JSP與Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶端就是一個(gè)HTML文本,因此客戶端只要有瀏覽器能瀏覽。JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁(yè)面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶端的瀏覽器。Servlet 是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開(kāi)發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο?,具有平臺(tái)無(wú)關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。JSP技術(shù)的優(yōu)點(diǎn): (1)一次編寫(xiě),到處運(yùn)行。除了系統(tǒng)之外,代碼不用做任何更改。 (2)系統(tǒng)的多平臺(tái)支持?;旧峡梢栽谒衅脚_(tái)上的任意環(huán)境中開(kāi)發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/.net的局限性是顯而易見(jiàn)的。 (3)強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)服務(wù)器到無(wú)數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的生命力。 (4)多樣化和功能強(qiáng)大的開(kāi)發(fā)工具支持。Java已經(jīng)有了許多非常優(yōu)秀的開(kāi)發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下 (5)支持服務(wù)器端組件。web應(yīng)用需要強(qiáng)大的服務(wù)器端組件來(lái)支持,開(kāi)發(fā)人員需要利用其他工具設(shè)計(jì)實(shí)現(xiàn)復(fù)雜功能的組件供web頁(yè)面調(diào)用,以增強(qiáng)系統(tǒng)性能。JSP可以使用成熟的JAVA BEANS 組件來(lái)實(shí)現(xiàn)復(fù)雜商務(wù)功能。 內(nèi)部對(duì)象說(shuō)明:request 客戶端請(qǐng)求,此請(qǐng)求會(huì)包含來(lái)自GET/POST請(qǐng)求的參數(shù);response 網(wǎng)頁(yè)傳回客戶端的響應(yīng);pageContext 網(wǎng)頁(yè)的屬性是在這里管理; session 與請(qǐng)求有關(guān)的會(huì)話; application servlet正在執(zhí)行的內(nèi)容;out 用來(lái)傳送響應(yīng)的輸出流; config 代碼片段配置對(duì)象.page JSP網(wǎng)頁(yè)本身; exception 針對(duì)錯(cuò)誤網(wǎng)頁(yè),未捕捉的例外 1.3.3 JavaScript J avaScript是一種基于對(duì)象和事件驅(qū)動(dòng)并具有相對(duì)安全性的客戶端腳本語(yǔ)言。同時(shí)也是一種廣泛用于客戶端Web開(kāi)發(fā)的腳本語(yǔ)言,常用來(lái)給HTML網(wǎng)頁(yè)添加動(dòng)態(tài)功能,比如響應(yīng)用戶的各種操作。JavaScript的一個(gè)重要功能就是面向?qū)ο蟮墓δ?,通過(guò)基于對(duì)象的程序設(shè)計(jì),可以用更直觀、模塊化和可重復(fù)使用的方式進(jìn)行程序開(kāi)發(fā)。在HTML基礎(chǔ)上,使用Javascript可以開(kāi)發(fā)交互式Web網(wǎng)頁(yè)。Javascript的出現(xiàn)使得網(wǎng)頁(yè)和用戶之間實(shí)現(xiàn)了一種實(shí)時(shí)性的、動(dòng)態(tài)的、交互性的關(guān)系,使網(wǎng)頁(yè)包含更多活躍的元素和更加精彩的內(nèi)容。在本系統(tǒng)中很多地方使用了javascript技術(shù),比如說(shuō),檢驗(yàn)用戶輸入數(shù)據(jù)的有效性,是否重復(fù),是否為空等等。 1.4軟硬件需求 硬件需求: CPU:Pentium以上計(jì)算機(jī) 內(nèi)存: 512M以上 軟件需求: 操作系統(tǒng)版本:Windows XP /vista/Win7 開(kāi)發(fā)工具:MyEclipse 6.0.1 后臺(tái)服務(wù)器:Apache Tomcat 6.0 開(kāi)發(fā)語(yǔ)言:Java 瀏覽器:IE6.0 第二章需求分析 2.1需求調(diào)研 在項(xiàng)目的開(kāi)始是需求調(diào)研,現(xiàn)行的宿舍管理工作還是存在著很多不足之處,手工記錄的方式不易保存,容易丟失,同樣也不利于數(shù)據(jù)的查詢和統(tǒng)計(jì)分析。根據(jù)我校的實(shí)際情況及調(diào)查結(jié)果,發(fā)現(xiàn)實(shí)現(xiàn)宿舍的網(wǎng)絡(luò)化、信息化管理是十分有必要的,因此設(shè)計(jì)了本套基于JSP的宿舍管理系統(tǒng)。 2.2可行性分析 開(kāi)發(fā)任何一個(gè)系統(tǒng),都會(huì)受到時(shí)間和資源上的限制。因此,在每一個(gè)項(xiàng)目開(kāi)發(fā)之前,都要進(jìn)行可行性分析,可以減少項(xiàng)目的開(kāi)發(fā)風(fēng)險(xiǎn),避免人力、物力和財(cái)力的浪費(fèi)。下面就技術(shù)、經(jīng)濟(jì)、操作和法律四個(gè)方面來(lái)介紹。 2.2.1技術(shù)的可行性 本系統(tǒng)開(kāi)發(fā)工具是MyEclipse和MySQL數(shù)據(jù)庫(kù),開(kāi)發(fā)語(yǔ)言是Java,主要使用了J2EE 的技術(shù),java是一種面向?qū)ο缶幊陶Z(yǔ)言,簡(jiǎn)單易學(xué)而且靈活方便。大三時(shí)就學(xué)習(xí)了java 課程,大四期間也系統(tǒng)的了解了J2EE的知識(shí),學(xué)生宿舍管理系統(tǒng)總體上開(kāi)發(fā)難度不高,數(shù)據(jù)庫(kù)的設(shè)計(jì)和操作是本系統(tǒng)設(shè)計(jì)的核心。在大學(xué)期間學(xué)習(xí)過(guò)軟件工程,軟件測(cè)試,UML 統(tǒng)一建模語(yǔ)言等課程,每個(gè)學(xué)期也會(huì)完成對(duì)應(yīng)的課程設(shè)計(jì),具備一定的系統(tǒng)分析、設(shè)計(jì)和測(cè)試能力。因此,完成系統(tǒng)實(shí)現(xiàn)在技術(shù)上完全具有可行性。 2.2.2經(jīng)濟(jì)的可行性 如今是信息化時(shí)代,信息化管理可以使學(xué)生宿舍管理工作更加系統(tǒng)化、快速化、全面化。這樣可以為學(xué)校帶來(lái)較高的工作效益和經(jīng)濟(jì)效益,在提高工作效率的基礎(chǔ)上,可以考慮減少宿舍管理人員的數(shù)量,本系統(tǒng)對(duì)計(jì)算機(jī)配置的要求不高,學(xué)校機(jī)房更換下來(lái)的低配置電腦都可以完全滿足需要,再者,學(xué)校在管理工作上的高效率和便捷性遠(yuǎn)遠(yuǎn)超過(guò)了開(kāi)發(fā)本系統(tǒng)的成本,所以在經(jīng)濟(jì)上具有完全的可行性。 2.2.3操作可行性 本系統(tǒng)操作簡(jiǎn)單,輸入信息頁(yè)面大多數(shù)都是下拉框的選擇形式,在某些頁(yè)面,信息可以自動(dòng)生成,無(wú)需輸入,時(shí)間的輸入也是用的日歷控件,操作簡(jiǎn)便,對(duì)操作人員的要求很低,只需對(duì)WINDOWS操作熟練即可,而且本系統(tǒng)可視性非常好,所以在技術(shù)上不會(huì)有很大難度。 2.2.4法律的可行性 本宿舍管理系統(tǒng)是自行開(kāi)發(fā)的管理系統(tǒng),是很有實(shí)際意義的系統(tǒng),開(kāi)發(fā)環(huán)境軟件和使用的數(shù)據(jù)庫(kù)都是開(kāi)源代碼,開(kāi)發(fā)這個(gè)系統(tǒng)不同于開(kāi)發(fā)普通的系統(tǒng)軟件,不存在侵權(quán)等問(wèn)題,即法律上是可行的。 綜上所述,開(kāi)發(fā)一個(gè)學(xué)生宿舍管理系統(tǒng)與人工記錄的方式相比具有速度更快,操作更準(zhǔn)確,節(jié)省開(kāi)支等有利之處,因此,建立一個(gè)學(xué)生宿舍管理系統(tǒng)是必要可行的。 2.3系統(tǒng)用例圖 2.4功能模塊圖 2.5設(shè)計(jì)的基本思想 設(shè)計(jì)思想遵循以下幾點(diǎn): 1. 采用C/S模式進(jìn)行開(kāi)發(fā),其優(yōu)點(diǎn)是后臺(tái)與前臺(tái)處理層次分明,而且符合眾多已經(jīng)習(xí)慣網(wǎng)頁(yè)搜索方式的用戶。 2. 采用面向?qū)ο蟮拈_(kāi)發(fā)與設(shè)計(jì)理念。運(yùn)用面向?qū)ο蠹夹g(shù)的前提是對(duì)整體系統(tǒng)的高度和準(zhǔn)確抽象,通過(guò)它可以保證系統(tǒng)良好的框架,進(jìn)而帶來(lái)產(chǎn)品較強(qiáng)的穩(wěn)定性和運(yùn)行效率。 3. 采用模塊化設(shè)計(jì)。模塊化設(shè)計(jì)要求將整個(gè)系統(tǒng)劃分成基于小的模塊,有利于代碼的重載,簡(jiǎn)化設(shè)計(jì)和實(shí)現(xiàn)過(guò)程。 4. 簡(jiǎn)單方便的系統(tǒng)界面。設(shè)計(jì)簡(jiǎn)單友好的系統(tǒng)界面,方便用戶較快的適應(yīng)系統(tǒng)的操作。 5.速度優(yōu)先原則。由于此工具最重要的評(píng)測(cè)標(biāo)準(zhǔn)就是速度,因此在設(shè)計(jì)過(guò)程中,具體過(guò)程盡量做到資源占用少,速度快。 6.設(shè)計(jì)既要突出重點(diǎn),又要細(xì)致周到。要符合設(shè)計(jì)需求,在有可能改進(jìn)的地方進(jìn)行擴(kuò)充,使系統(tǒng)更適應(yīng)用戶的需要。 2.6性能需求 2.6.1系統(tǒng)的安全性 學(xué)生宿舍管理系統(tǒng)在管理權(quán)限上要嚴(yán)格進(jìn)行控制,具體要求如下: 1.想登陸學(xué)生宿舍管理系統(tǒng)進(jìn)行操作,必須有某些操作權(quán)限,沒(méi)有權(quán)限的用戶不能通過(guò)任何方式登錄系統(tǒng)查看系統(tǒng)的任何信息和數(shù)據(jù),以確保系統(tǒng)的嚴(yán)密性和安全性。 2.6.2數(shù)據(jù)的完整性 1.各種記錄信息的完整性,信息記錄內(nèi)容不能為空 2.各種數(shù)據(jù)間相互聯(lián)系的正確性 3.相同數(shù)據(jù)在不同記錄中的一致性 2.7界面需求 界面設(shè)計(jì)目前已經(jīng)成為評(píng)價(jià)軟件質(zhì)量的一條重要指標(biāo),一個(gè)好的用戶界面可以增加用戶使用系統(tǒng)的信心和興趣,提高工作效率,JSP技術(shù)是用JAVA語(yǔ)言作為腳本語(yǔ)言的,JSP網(wǎng)頁(yè)為整個(gè)服務(wù)器端的JAVA庫(kù)單元提供了一個(gè)接口來(lái)服務(wù)于HTTP的應(yīng)用程序。創(chuàng)建動(dòng)態(tài)頁(yè)面非常方便。用戶界面是指軟件系統(tǒng)與用戶交互的接口,通常包括輸出、輸入、人-機(jī)對(duì)話的界面格式等。 1.輸出設(shè)計(jì) 輸出是由計(jì)算機(jī)對(duì)輸入的原始信息進(jìn)行加工處理,形成高質(zhì)量的有效信息,并使之具有一定的格式,提供管理者使用,這是輸出設(shè)計(jì)的主要職責(zé)和目標(biāo)。 系統(tǒng)設(shè)計(jì)的過(guò)程正好和實(shí)施過(guò)程相反,并不是從輸入設(shè)計(jì)到輸出設(shè)計(jì),而是從輸出設(shè)計(jì)到輸入設(shè)計(jì),這是因?yàn)檩敵霰砀裰苯优c使用者相聯(lián)系,設(shè)計(jì)的出發(fā)點(diǎn)應(yīng)當(dāng)是保證輸出表格方便地為使用者服務(wù),正確及時(shí)反映和組成用于各部門(mén)的有用信息。輸出設(shè)計(jì)的原則是考慮既要全面反映不同管理層的各項(xiàng)需要,又要言簡(jiǎn)意賅,不要將用戶需要和不需要的都提供給用戶。 2.輸入設(shè)計(jì) 輸入數(shù)據(jù)的收集和錄入是比較費(fèi)事的,需要大量的人力和一定設(shè)備,并且容易出錯(cuò)。如果輸入系統(tǒng)的數(shù)據(jù)有錯(cuò)誤,則處理后的輸出將擴(kuò)大這些錯(cuò)誤,因此輸入數(shù)據(jù)的正確性對(duì)于整個(gè)系統(tǒng)質(zhì)量的好壞是具有決定性意義的。 輸入設(shè)計(jì)的原則有如下幾點(diǎn): 1)輸入量應(yīng)保持在能滿足處理要求的最低限度。設(shè)計(jì)中可采用設(shè)置字段初值,下拉式數(shù)據(jù)窗口等方式盡量減少用戶鍵盤(pán)輸入量。輸入量越少,錯(cuò)誤率就越少,數(shù)據(jù)準(zhǔn)備時(shí)間也減少。 2)輸入的準(zhǔn)備及輸入過(guò)程應(yīng)盡量容易進(jìn)行,從而減少錯(cuò)誤的發(fā)生。 3)應(yīng)盡量早對(duì)輸入數(shù)據(jù)進(jìn)行檢查(盡量接近原數(shù)據(jù)發(fā)生點(diǎn)),以便使錯(cuò)誤及時(shí)得到更正。 4)輸入數(shù)據(jù)盡早地用其處理所需的形式被記錄,以避免數(shù)據(jù)由一種介質(zhì)轉(zhuǎn)移到另一種介質(zhì)時(shí)需要轉(zhuǎn)錄而可能發(fā)生的錯(cuò)誤 第三章 系統(tǒng)分析與設(shè)計(jì) 3.1數(shù)據(jù)庫(kù)的分析與設(shè)計(jì) 計(jì)算機(jī)信息系統(tǒng)以數(shù)據(jù)庫(kù)為核心,在數(shù)據(jù)庫(kù)管理系統(tǒng)的支持下,進(jìn)行信息的收集、整理、存儲(chǔ)、檢索、更新、加工、統(tǒng)計(jì)和傳播等操作。數(shù)據(jù)庫(kù)已經(jīng)成為現(xiàn)在信息系統(tǒng)等計(jì)算機(jī)系統(tǒng)的基礎(chǔ)與核心部分。數(shù)據(jù)庫(kù)設(shè)計(jì)的好壞直接影響到整個(gè)系統(tǒng)的質(zhì)量和效率。 數(shù)據(jù)庫(kù)的設(shè)計(jì)一般經(jīng)過(guò)規(guī)劃。需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)5個(gè)步驟。 3.1.1數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì) 概念設(shè)計(jì)是指在數(shù)據(jù)分析的基礎(chǔ)上自底向上的建立整個(gè)系統(tǒng)的數(shù)據(jù)庫(kù)概念結(jié)構(gòu),從用戶的角度進(jìn)行視圖設(shè)計(jì),然后將視圖集成,最后對(duì)集成的結(jié)構(gòu)分析優(yōu)化得到最后結(jié)果。 數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)采用實(shí)體—聯(lián)系(E-R )模型設(shè)計(jì)方法。E-R 模型法的組成元素有:實(shí)體、屬性、聯(lián)系,E-R 模型用E-R 圖表示,是提示用戶工作環(huán)境中所涉及的事物,屬性則是對(duì)實(shí)體特性的描述。 概念設(shè)計(jì)的目標(biāo)是產(chǎn)生反映企業(yè)組織信息要求的數(shù)據(jù)庫(kù)概念結(jié)構(gòu),即概念模式。概念模式是獨(dú)立于數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu),獨(dú)立于支持?jǐn)?shù)據(jù)庫(kù)的DBMS ,不依賴于計(jì)算機(jī)系統(tǒng)的,根據(jù)以上對(duì)數(shù)據(jù)庫(kù)的需求分析,并結(jié)合系統(tǒng)概念模型的特點(diǎn)及建立方法,建立E-R 模型圖。 (2)宿舍樓宇信息實(shí)體E-R 圖如圖3.5所示: 宿舍樓E-R圖(3)宿舍信息實(shí)體E-R圖 房間E-R圖(4)學(xué)生信息實(shí)體E-R圖 學(xué)生E-R圖 (5)訪客信息實(shí)體E-R圖 訪客信息E-R (6)衛(wèi)生檢查信息實(shí)體E-R圖 衛(wèi)生檢查信息E-R (7)電費(fèi)信息實(shí)體E-R圖 電費(fèi)信息E-R (8)報(bào)修信息實(shí)體E-R圖 報(bào)修信息E-R 3.1.2數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)設(shè)計(jì) 我們知道,數(shù)據(jù)庫(kù)概念模型獨(dú)立于任何特定的數(shù)據(jù)庫(kù)管理系統(tǒng),因此,需要根據(jù)具體使用的數(shù)據(jù)庫(kù)管理系統(tǒng)的特點(diǎn)進(jìn)行轉(zhuǎn)換。即轉(zhuǎn)化為按計(jì)算機(jī)觀點(diǎn)處理的邏輯關(guān)系模型,E-R模型向關(guān)系數(shù)據(jù)庫(kù)模型轉(zhuǎn)換應(yīng)遵循下列原則: *每一個(gè)實(shí)體要轉(zhuǎn)換成一個(gè)關(guān)系 *所有的主鍵必須定義非空(NOT NULL) *對(duì)于二元聯(lián)系應(yīng)按照一對(duì)多、弱對(duì)實(shí)、一對(duì)一、多對(duì)多等聯(lián)系來(lái)定義外鍵。 根據(jù)E-R模型,學(xué)生宿舍管理系統(tǒng)建立了以下邏輯數(shù)據(jù)結(jié)構(gòu),下面是各數(shù)據(jù)表的詳細(xì)說(shuō)明。 (1)學(xué)生表主要是記錄了學(xué)生基本信息。表結(jié)構(gòu)如表3.1所示。 表3.1學(xué)生表(t_xuesheng) (2)宿舍信息表主要是記錄了學(xué)生宿舍的基本,表結(jié)構(gòu)如表3.2所示。 表3.2宿舍信息表(t_sushe) (3)宿舍樓宇信息表主要是記錄了宿舍樓的基本信息,其中ID是主鍵,表結(jié)構(gòu)如圖3.3所示。 表3.3宿舍樓信息表(t_lou) (4)訪客信息表記錄了來(lái)訪者來(lái)訪的基本信息,表如圖3.4所示。 表3.4訪客信息表(t_fangke) (5)管理員信息表主要記錄的管理員的賬號(hào)信息,包括用戶名和密碼,表結(jié)構(gòu)如表3.7所示。 表3.5管理員信息表(t_admin) (6)衛(wèi)生檢查信息表主要記錄了宿舍的衛(wèi)生檢查信息,包括得分、檢查時(shí)間等,表結(jié)構(gòu)如表3.7所示。 表3.6衛(wèi)生檢查信息表(t_weisheng) (7)電費(fèi)表主要記錄的每個(gè)宿舍的電費(fèi)收費(fèi)情況,包括季度、金額、狀態(tài)等,表結(jié)構(gòu)如表3.7所示。 表3.7電費(fèi)信息表(t_dianfei) (8)管理員信息表主要記錄的管理員的賬號(hào)信息,包括用戶名和密碼,表結(jié)構(gòu)如表3.7所示。 表3.8報(bào)修信息表(t_baoxiu) 3.1.3數(shù)據(jù)庫(kù)的連接原理 本系統(tǒng)采用Hibernate對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理。Hibernate 是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì) JDBC 進(jìn)行了輕量級(jí)的對(duì)象封裝,使 Java 程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。它不僅提供了從 Java 類(lèi)到數(shù)據(jù)表之間的映射,也提供了數(shù)據(jù)查詢和恢復(fù)機(jī)制。相對(duì)于使用 JDBC 和 SQL 來(lái)手工操作數(shù)據(jù)庫(kù),Hibernate 可以大大減少操作數(shù)據(jù)庫(kù)的工作量。另外 Hibernate 可以利用代理模式來(lái)簡(jiǎn)化載入類(lèi)的過(guò)程,這將大大減少利用 Hibernate QL 從數(shù)據(jù)庫(kù)提取數(shù)據(jù)的代碼的編寫(xiě)量,從而節(jié)約開(kāi)發(fā)時(shí)間和開(kāi)發(fā)成本 Hibernate 可以和多種Web 服務(wù)器或者應(yīng)用服務(wù)器良好集成,如今已經(jīng)支持幾乎所有的流行的數(shù)據(jù)庫(kù)服務(wù)器。 Hibernate 技術(shù)本質(zhì)上是一個(gè)提供數(shù)據(jù)庫(kù)服務(wù)的中間件。它的架構(gòu)如圖3.5所示: 圖3.5顯示了 Hibernate 的工作原理,它是利用數(shù)據(jù)庫(kù)以及其他一些配置文件如Hibernate .properties ,XML Mapping 等來(lái)為應(yīng)用程序提供數(shù)據(jù)持久化服務(wù)的。Hibernate 具有很大的靈活性,但同時(shí)它的體系結(jié)構(gòu)比較復(fù)雜,提供了好幾種不同的運(yùn)行方式。在輕型體系中,應(yīng)用程序提供 JDBC 連接,并且自行管理事務(wù),這種方式使用了 Hibernate 的一個(gè)最小子集;在全面解決體系中,對(duì)于應(yīng)用程序來(lái)說(shuō),所有底層的JDBC/JTA API 都被抽象了,Hibernate 會(huì)替你照管所有的細(xì)節(jié)。 第四章系統(tǒng)功能實(shí)現(xiàn) 在管理信息系統(tǒng)的生命周期中,僅過(guò)了需求分析、系統(tǒng)設(shè)計(jì)等階段之后,便開(kāi)始了系統(tǒng)實(shí)施階段。在系統(tǒng)分析和設(shè)計(jì)階段,系統(tǒng)開(kāi)發(fā)工作主要是集中在邏輯、功能和技術(shù)設(shè)計(jì)上,系統(tǒng)實(shí)施階段要繼承此前面各個(gè)階段的工作成果,將技術(shù)設(shè)計(jì)轉(zhuǎn)化為物理實(shí)現(xiàn),因此系統(tǒng)實(shí)施的成果是系統(tǒng)分析和設(shè)計(jì)階段的結(jié)晶。 4.1登陸頁(yè)面實(shí)現(xiàn) 1.描述:為了保證系統(tǒng)的安全性,要先使用本系統(tǒng)必須先登陸到系統(tǒng)中,并且不同角色的用戶進(jìn)入不同的管理界面,功能也隨之不同。 2.程序運(yùn)行效果圖如圖4.1所示: 3.在登陸頁(yè)面輸入用戶名和密碼以,選擇登陸身份后,點(diǎn)擊提交按鈕,跳轉(zhuǎn)到登陸的service中,在該service中會(huì)對(duì)用戶名,密碼,驗(yàn)證碼進(jìn)行判斷,并根據(jù)相應(yīng)的用 4.2系統(tǒng)主界面 1.描述:管理員主頁(yè)面:左方頁(yè)面展示了管理員可操作的九大功能,進(jìn)入相關(guān)的管理頁(yè)面可以鏈接到子菜單,并且高亮顯示,每個(gè)管理模塊下面都有相應(yīng)的子菜單。 2.程序運(yùn)行效果圖如圖4.2所示: 在每個(gè)jsp頁(yè)面將會(huì)對(duì)相關(guān)用戶進(jìn)行攔截操作,這樣可以提高安全性,防止用戶不經(jīng)過(guò)登陸頁(yè)面而進(jìn)入任何子菜單頁(yè)面: 4.2.1學(xué)生信息管理 4.2.1.1學(xué)生信息錄入 1.描述:管理員輸入學(xué)生相關(guān)正確信息后點(diǎn)擊錄入按鈕,如果是沒(méi)有輸入完整的學(xué)生 信息,或者輸入學(xué)號(hào)已存在,都會(huì)給出相應(yīng)的錯(cuò)誤提示,不能錄入成功。輸入數(shù)據(jù)都通過(guò)form表單中定義的方法onsubmit="return checkForm()"來(lái)檢查,checkForm()函數(shù)中是各種的校驗(yàn)輸入數(shù)據(jù)的方式。 2.程序效果圖如下圖4.3所示: 圖4.3 學(xué)生信息錄入 3.流程圖如下圖 4.4所示: 4.2.1.2學(xué)生信息管理 1.描述:管理員點(diǎn)擊左側(cè)的菜單“學(xué)生管理”,頁(yè)面跳轉(zhuǎn)到學(xué)生管理界面,調(diào)用后臺(tái)的action類(lèi)查詢所有學(xué)生。 2.程序效果圖如下圖4.5所示 圖4.5 學(xué)生信息管理 學(xué)生管理關(guān)鍵代碼: public String xueshengAdd() TXuesheng xuesheng=new TXuesheng(); xuesheng.setLouId(louId); xuesheng.setSusheId(susheId); xuesheng.setChuangwei(chuangwei); xuesheng.setXuehao(xuehao); xuesheng.setXingming(xingming); xuesheng.setXingbie(xingbie); xuesheng.setNianling(nianling); xuesheng.setLoginpw(loginpw); xuesheng.setDel("no"); xueshengDAO.save(xuesheng); Map request=(Map)ServletActionContext.getContext().get("request"); request.put("msg", "信息添加成功"); return "msg"; public String xueshengMana() String sql="from TXuesheng where del='no' order by louId,susheId"; List xueshengList=xueshengDAO.getHibernateTemplate().find(sql); for(int i=0;i TXuesheng xuesheng=(TXuesheng)xueshengList.get(i); xuesheng.setLou(louDAO.findById(xuesheng.getLouId())); xuesheng.setSushe(susheDAO.findById(xuesheng.getSusheId())); Map request=(Map)ServletActionContext.getContext().get("request"); request.put("xueshengList", xueshengList); return ActionSupport.SUCCESS; public String xueshengDel() TXuesheng xuesheng=xueshengDAO.findById(id); xuesheng.setDel("yes"); xueshengDAO.attachDirty(xuesheng); Map request=(Map)ServletActionContext.getContext().get("request"); request.put("msg", "信息刪除成功"); return "msg"; 4.2.2宿舍信息管理 4.2.2.1房間信息錄入 1.描述:在此頁(yè)面主要是輸入房間信息,樓號(hào)、房號(hào)等信息,是否為空也是通過(guò)form 表單中的onsubmit="return checkForm()來(lái)檢查。 2.程序效果圖如圖4.7所示: 圖4.7 房間信息錄入 4.2.2.2房間信息管理 1.描述:管理員點(diǎn)擊左側(cè)的菜單“宿舍管理”,頁(yè)面跳轉(zhuǎn)到宿舍管理界面,調(diào)用后臺(tái)的susheAction類(lèi)查詢出所有的房間信息,并把這些信息封轉(zhuǎn)到數(shù)據(jù)集合List中,綁定到request對(duì)象,然后頁(yè)面跳轉(zhuǎn)到相應(yīng)的jsp,顯示出房間信息。 2.程序效果圖如下圖4.8所示 房間管理關(guān)鍵代碼: public String susheAdd() TSushe sushe=new TSushe(); sushe.setLouId(louId); sushe.setFanghao(fanghao); sushe.setDel("no"); susheDAO.save(sushe); Map request=(Map)ServletActionContext.getContext().get("request"); request.put("msg", "信息添加完畢"); return "msg"; public String susheMana() String sql="from TSushe where del='no' order by louId"; List susheList=susheDAO.getHibernateTemplate().find(sql); for(int i=0;i TSushe sushe=(TSushe)susheList.get(i); sushe.setLou(louDAO.findById(sushe.getLouId())); Map request=(Map)ServletActionContext.getContext().get("request"); request.put("susheList", susheList); return ActionSupport.SUCCESS; public String susheDel() TSushe sushe=susheDAO.findById(id); sushe.setDel("yes"); susheDAO.attachDirty(sushe); Map request=(Map)ServletActionContext.getContext().get("request"); request.put("msg", "信息刪除完畢"); return "msg"; 4.2.3訪客信息管理 4.2.3.1訪客信息添加 1.描述:輸入來(lái)訪人員信息、來(lái)訪時(shí)間等,點(diǎn)擊登記按鈕,可以在意見(jiàn)框添加意見(jiàn)信息。如果不輸入來(lái)訪時(shí)間,系統(tǒng)會(huì)給出警示,提示必須輸入來(lái)訪時(shí)間 2.程序效果圖如圖4.10所示: 圖4.10 來(lái)訪登記 4.2.3.2訪客信息管理 1.描述:管理員點(diǎn)擊左側(cè)的菜單“訪客信息管理”,頁(yè)面跳轉(zhuǎn)到訪客信息管理界面,調(diào)用后臺(tái)的訪客Action類(lèi)查詢出所有的訪客信息信息,并把這些信息封轉(zhuǎn)到數(shù)據(jù)集合List中,綁定到request對(duì)象,然后頁(yè)面跳轉(zhuǎn)到相應(yīng)的jsp,顯示出房間信息。 2.程序效果圖如下圖4.11所示 圖4.11 訪客信息管理 來(lái)訪管理核心代碼: public String fangkeAdd() TFangke fangke=new TFangke(); fangke.setLouId(louId); fangke.setSusheId(susheId); fangke.setXingming(xingming); fangke.setXingbie(xingbie); fangke.setLaishi(laishi); fangke.setQushi(qushi); fangke.setYijian(yijian); fangkeDAO.save(fangke); Map request=(Map)ServletActionContext.getContext().get("request"); request.put("msg", "信息添加成功"); return "msg"; public String fangkeMana() String sql="from TFangke order by laishi"; List fangkeList=fangkeDAO.getHibernateTemplate().find(sql); for(int i=0;i TFangke fangke=(TFangke)fangkeList.get(i); fangke.setLou(louDAO.findById(fangke.getLouId())); fangke.setSushe(susheDAO.findById(fangke.getSusheId())); Map request=(Map)ServletActionContext.getContext().get("request"); request.put("fangkeList", fangkeList); return ActionSupport.SUCCESS; public String fangkeDel() TFangke fangke=fangkeDAO.findById(id); fangkeDAO.delete(fangke); Map request=(Map)ServletActionContext.getContext().get("request"); request.put("msg", "信息刪除成功"); return "msg"; 4.2.4電費(fèi)信息管理 4.2.4.1電費(fèi)信息添加 1.描述:輸入電費(fèi)金額、狀態(tài)(是否繳納),然后選擇樓號(hào)和宿舍,點(diǎn)擊提交按鈕,即可完成電費(fèi)信息的添加 2.程序效果圖如圖4.10所示: 4.2.4.2電費(fèi)信息管理 1.描述:管理員點(diǎn)擊左側(cè)的菜單“電費(fèi)信息管理”,頁(yè)面跳轉(zhuǎn)到電費(fèi)信息管理界面,調(diào)用后臺(tái)的電費(fèi)Action類(lèi)查詢出所有的電費(fèi)信息信息,并把這些信息封轉(zhuǎn)到數(shù)據(jù)集合List中,綁定到request對(duì)象,然后頁(yè)面跳轉(zhuǎn)到相應(yīng)的jsp,顯示出所有的電費(fèi)信息。 2.程序效果圖如下圖4.11所示 圖4.11 電費(fèi)信息管理 電費(fèi)管理核心代碼: public String dianfeiAdd() TDianfei dianfei=new TDianfei(); dianfei.setLouId(louId); dianfei.setSusheId(susheId); dianfei.setJidu(jidu); dianfei.setJine(jine); dianfei.setZt(zt); dianfeiDAO.save(dianfei); Map request=(Map)ServletActionContext.getContext().get("request"); request.put("msg", "信息添加成功"); return "msg"; public String dianfeiMana() String sql="from TDianfei order by louId,susheId"; List dianfeiList=dianfeiDAO.getHibernateTemplate().find(sql); for(int i=0;i TDianfei dianfei=(TDianfei)dianfeiList.get(i); dianfei.setLou(louDAO.findById(dianfei.getLouId())); dianfei.setSushe(susheDAO.findById(dianfei.getSusheId())); Map request=(Map)ServletActionContext.getContext().get("request"); request.put("dianfeiList", dianfeiList); return ActionSupport.SUCCESS; public String dianfeiDel() TDianfei dianfei=dianfeiDAO.findById(id); dianfeiDAO.delete(dianfei); Map request=(Map)ServletActionContext.getContext().get("request"); request.put("msg", "信息刪除成功"); return "msg"; 4.2.5報(bào)修信息模塊 1.描述:管理員可以查看并受理學(xué)生的報(bào)修信息,點(diǎn)擊左側(cè)的菜單“報(bào)修信息管理”,頁(yè)面跳轉(zhuǎn)到報(bào)修信息管理界面,調(diào)用后臺(tái)的報(bào)修Action類(lèi)查詢出所有的報(bào)修信息信息,并把這些信息封轉(zhuǎn)到數(shù)據(jù)集合List中,綁定到request對(duì)象,然后頁(yè)面跳轉(zhuǎn)到相應(yīng)的jsp,顯示出所有的報(bào)修信息。對(duì)于未受理報(bào)修,可以點(diǎn)擊“受理”按鈕 2.程序效果圖如下圖4.11所示 圖4.11 報(bào)修信息管理 來(lái)訪管理核心代碼: public String baoxiuAdd() Map session=ActionContext.getContext().getSession(); TXuesheng xuesheng=(TXuesheng)session.get("xuesheng"); TBaoxiu baoxiu=new TBaoxiu(); baoxiu.setLouId(xuesheng.getLouId()); baoxiu.setSusheId(xuesheng.getSusheId()); baoxiu.setNeirong(neirong); baoxiu.setShijian(shijian); baoxiu.setZt("待受理"); baoxiu.setXueshengId(xuesheng.getId()); baoxiuDAO.save(baoxiu); Map request=(Map)ServletActionContext.getContext().get("request"); request.put("msg", "信息添加成功"); return "msg"; public String baoxiuMine() Map session=ActionContext.getContext().getSession(); TXuesheng xuesheng=(TXuesheng)session.get("xuesheng"); String sql="from TBaoxiu where xueshengId=" xuesheng.getId(); List baoxiuList=baoxiuDAO.getHibernateTemplate().find(sql); for(int i=0;i TBaoxiu baoxiu=(TBaoxiu)baoxiuList.get(i); baoxiu.setLou(louDAO.findById(baoxiu.getLouId())); baoxiu.setSushe(susheDAO.findById(baoxiu.getSusheId())); Map request=(Map)ServletActionContext.getContext().get("request"); request.put("baoxiuList", baoxiuList); return ActionSupport.SUCCESS; public String baoxiuDel() TBaoxiu baoxiu=baoxiuDAO.findById(id); baoxiuDAO.delete(baoxiu); Map request=(Map)ServletActionContext.getContext().get("request"); request.put("msg", "信息刪除成功"); return "msg"; 4.2.6修改登陸密碼 1.描述:輸入用戶名和用戶的原有密碼,輸入新密碼以后點(diǎn)擊修改按鈕即可修改密碼成功。 2.程序效果圖如圖4.18所示: 圖4.18 修改密碼 4.2.7安全退出系統(tǒng) 1.描述:點(diǎn)此按鈕回到系統(tǒng)的主頁(yè)面。 2.關(guān)鍵代碼:主要是通過(guò)javascript語(yǔ)句來(lái)實(shí)現(xiàn), item_word[8][4]="退出系統(tǒng)"; item_link[8][4]="javascript:window.open('../index.jsp','_self')"; 第五章系統(tǒng)測(cè)試 5.1系統(tǒng)測(cè)試目的與意義 系統(tǒng)測(cè)試是管理信息系統(tǒng)開(kāi)發(fā)周期中一個(gè)十分重要而漫長(zhǎng)的的階段。其重要性體現(xiàn)在他是保證系統(tǒng)質(zhì)量與可靠性的最后關(guān)口,是對(duì)整個(gè)系統(tǒng)開(kāi)發(fā)過(guò)程包括系統(tǒng)分析、系統(tǒng)設(shè)計(jì)和系統(tǒng)實(shí)現(xiàn)的最終審查。 系統(tǒng)測(cè)試的任務(wù)是盡可能徹底的檢查出程序中的錯(cuò)誤,提高軟件系統(tǒng)的可靠性,其目的是檢驗(yàn)系統(tǒng)“做得怎樣”。這這階段又可以分為三個(gè)步驟:模塊測(cè)試,測(cè)試每個(gè)模塊的程序是否正確;組裝測(cè)試,測(cè)試模塊之間的接口是否正確;確認(rèn)測(cè)試,測(cè)試整個(gè)軟件系統(tǒng)是否滿足用戶功能和性能的要求。測(cè)試發(fā)現(xiàn)問(wèn)題之后要經(jīng)過(guò)調(diào)試找出錯(cuò)誤原因和位置,然后進(jìn)行改正。是基于系統(tǒng)整體需求說(shuō)明書(shū)的黑盒測(cè)試,應(yīng)覆蓋系統(tǒng)隨偶聯(lián)合的部件,系統(tǒng)測(cè)試是正對(duì)整個(gè)產(chǎn)品系統(tǒng)進(jìn)行的測(cè)試,目的是驗(yàn)證系統(tǒng)是否滿足了需求規(guī)格的定義,找出需求規(guī)格不符合或與之矛盾的地方。 5.2測(cè)試過(guò)程 在測(cè)試之初,由于將數(shù)據(jù)庫(kù)中的數(shù)據(jù)是隨便輸入,沒(méi)有實(shí)用性,為了使系統(tǒng)更加完善,在系統(tǒng)測(cè)試的過(guò)程中,本系統(tǒng)將一開(kāi)始編程隨便輸入的數(shù)據(jù)全部清理后,輸入了一些有效的測(cè)試數(shù)據(jù),這樣可以更真實(shí)的反映系統(tǒng)的功能實(shí)現(xiàn)情況。 這樣不斷發(fā)現(xiàn)問(wèn)題,經(jīng)過(guò)反復(fù)的測(cè)試、調(diào)試,把問(wèn)題一個(gè)個(gè)的解決,最終系統(tǒng)可以正常運(yùn)行。 5.2.1主頁(yè)面的登錄模塊測(cè)試 測(cè)試流程: 1.打開(kāi)系統(tǒng)首頁(yè),輸入錯(cuò)誤的登錄信息 2.登錄 3.輸入正確的登錄信息 4.登錄 5.測(cè)試結(jié)果 5.3其他錯(cuò)誤 在程序設(shè)計(jì)實(shí)現(xiàn)的過(guò)程中不可避免的會(huì)產(chǎn)生各種難以預(yù)料的錯(cuò)誤,如書(shū)寫(xiě)錯(cuò)誤、傳值類(lèi)型不一致、參數(shù)傳遞問(wèn)題等等。這些都需要通過(guò)細(xì)心的檢測(cè)與不斷的調(diào)試才能夠排除。比如在servlet 路徑配置時(shí)因粗心錯(cuò)誤導(dǎo)致運(yùn)行導(dǎo)致所報(bào)錯(cuò)誤,如圖5.4: 圖 5.4 由于servlet 路徑配置錯(cuò)誤,運(yùn)行時(shí)的提示 結(jié)論 本次畢業(yè)設(shè)計(jì)將我大學(xué)四年所學(xué)的軟件工程理論知識(shí)用到了具體的實(shí)踐中去,深化了理論知識(shí),同時(shí)也鍛煉了動(dòng)手實(shí)踐能力。在這段日子里,我查閱了許多有關(guān)學(xué)生宿舍管理信息系統(tǒng)的資料,翻閱了許多JSP的書(shū)籍,結(jié)合自己的經(jīng)驗(yàn),詳細(xì)調(diào)查了學(xué)生宿舍管理的工作內(nèi)容與細(xì)節(jié),開(kāi)發(fā)設(shè)計(jì)了這個(gè)學(xué)生宿舍管理系統(tǒng),雖然學(xué)校每個(gè)學(xué)期都會(huì)有相應(yīng)課程的課程設(shè)計(jì)和實(shí)訓(xùn)來(lái)作為動(dòng)手練習(xí)訓(xùn)練,不過(guò)在本次畢業(yè)設(shè)計(jì)具體的實(shí)踐的時(shí)候還是遇到了很多小問(wèn)題,比如說(shuō)在jsp頁(yè)面將輸入框設(shè)為不可用是添加屬性readonly=“true”,而我在實(shí)際編程中卻錯(cuò)寫(xiě)成disable=“true”,這樣直接導(dǎo)致了request對(duì)象取不到數(shù)據(jù),調(diào)試了程序很久才發(fā)現(xiàn)request對(duì)象獲得的返回值一直是空,之前一直以為是代碼哪里出了問(wèn)題,總是在查源程序的邏輯。這些雖然都是小問(wèn)題,但是由于不細(xì)心在具體實(shí)踐中卻浪費(fèi)了不少時(shí)間,看來(lái)平時(shí)還是要多多實(shí)踐才是。 在系統(tǒng)的開(kāi)發(fā)過(guò)程中,我運(yùn)用到了B/S三層結(jié)構(gòu)技術(shù)和自己在平時(shí)學(xué)習(xí)中掌握的一些技術(shù),通過(guò)這些技術(shù)的實(shí)現(xiàn),整個(gè)系統(tǒng)的性能得到了大大的提高。這些技術(shù)都在論文中做了比較詳細(xì)的介紹。本系統(tǒng)還存在許多的缺陷和不足之處,比如很多細(xì)節(jié)上做的還不行,有些功能模塊還應(yīng)再加強(qiáng)。希望在以后的時(shí)間里,我可以把這些缺陷都彌補(bǔ)過(guò)來(lái),進(jìn)一步完善系統(tǒng)。 通過(guò)本次畢業(yè)設(shè)計(jì)我鍛煉了自己的自學(xué)、研究能力,也從中學(xué)到不少在學(xué)校在課堂上學(xué)不到的東西.通過(guò)實(shí)踐我也深刻的體會(huì)到軟件開(kāi)發(fā)的艱辛及問(wèn)題解決后的喜悅心情,培養(yǎng)我的獨(dú)立思考問(wèn)題的能力,同時(shí)也增強(qiáng)了我的理論聯(lián)系實(shí)際的能力,這為自己以后的工作奠定了良好的基礎(chǔ)。 本系統(tǒng)可以在很大程度上減輕我校學(xué)生宿舍管理人員的工作負(fù)擔(dān),但由于時(shí)間按和技術(shù)條件的限制,還存在一些不足之處,有些功能還需要改進(jìn),還應(yīng)該做進(jìn)一步的系統(tǒng)調(diào)查需求分析工作,更深入的完善系統(tǒng)??傊粋€(gè)緊跟時(shí)代步伐的真正使用的軟件必需有一個(gè)不斷完善改進(jìn)的過(guò)程
信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
|