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

下載本文檔

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

文檔簡介

學(xué)生宿舍管理系統(tǒng)專業(yè)名稱:班級:學(xué)生姓名:指導(dǎo)老師:完成時間目錄1緒論11.1開發(fā)背景與現(xiàn)狀11.2開發(fā)設(shè)計的意義12開發(fā)環(huán)境介紹32.1開發(fā)工具M(jìn)yEclipse32.2數(shù)據(jù)庫MySQL32.2.1MySQL概述32.2.2MySQL的特性32.2.3MySQL的應(yīng)用43系統(tǒng)需求分析53.1功能需求53.1.1根本功能需求53.1.2總體功能模塊63.2性能需求7系統(tǒng)平安性73.2.2數(shù)據(jù)庫選擇7系統(tǒng)穩(wěn)定性74系統(tǒng)設(shè)計84.1數(shù)據(jù)庫設(shè)計84.1.1數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計84.1.2數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計114.2模塊設(shè)計134.2.1用戶管理模塊134.2.2宿舍管理模塊144.2.3信息維護(hù)模塊154.2.4外來人員管理模塊16學(xué)生注冊模塊195系統(tǒng)的編碼與實現(xiàn)205.1系統(tǒng)的實現(xiàn)平臺205.1.1系統(tǒng)環(huán)境205.1.2后臺數(shù)據(jù)庫選擇及配置205.2系統(tǒng)功能模塊實現(xiàn)205.2.1學(xué)生注冊模塊225.2.2宿舍衛(wèi)生管理325.3數(shù)據(jù)庫操作的實現(xiàn)355.4系統(tǒng)測試385.4.1系統(tǒng)測試的目的385.4.2系統(tǒng)的測試環(huán)境38總結(jié)40致謝41參考文獻(xiàn)42學(xué)生宿舍管理系統(tǒng)畢業(yè)設(shè)計論文1緒論1.1開發(fā)背景與現(xiàn)狀隨著時代的開展,計算機(jī)技術(shù)越來越深入各行各業(yè),為廣闊的用戶提供了更為周到和便捷的效勞。目前各行各業(yè)廣泛使用專用系統(tǒng),其內(nèi)容范圍跨越了教育科研、文化事業(yè)、金融、商業(yè)、新聞出版、娛樂、體育等各個領(lǐng)域,其用戶群十分龐大,因此,設(shè)計開發(fā)好一個專用系統(tǒng)對一個機(jī)構(gòu)(或部門)的開展十分重要。近年來,隨著用戶要求的不斷提高及計算機(jī)科學(xué)的迅速開展,特別是數(shù)據(jù)庫技術(shù)的廣泛應(yīng)用,向用戶提供的效勞將越來越豐富,越來越人性化。對于學(xué)校而言,學(xué)生宿舍管理是必不可少的組成局部。目前仍然存在有學(xué)校停留在宿舍管理部門人員手工記錄數(shù)據(jù)的階段,手工記錄對于規(guī)模小的學(xué)校來說勉強(qiáng)可以接受;但對于學(xué)生信息量比較龐大,需要記錄存檔的數(shù)據(jù)比較多的高校來說,人工記錄是相當(dāng)麻煩的,而且當(dāng)查找某條記錄時,由于數(shù)據(jù)量龐大,只能依靠人工去一條一條地查找,這樣不但麻煩而且浪費許多時間,工作效率比較低。采用計算機(jī)來管理宿舍和學(xué)生的信息,大大提高了查詢的速度,節(jié)約了人力和物力資源,到達(dá)了預(yù)期的要求。今天,計算機(jī)的價格已經(jīng)十分低廉,性能卻有了長足的進(jìn)步。它已經(jīng)被應(yīng)用于許多領(lǐng)域,計算機(jī)之所以如此流行的原因主要有以下幾個方面:首先,計算機(jī)可以代替人工進(jìn)行許多繁雜的勞動;其次,計算機(jī)可以節(jié)省許多資源;第三,計算機(jī)可以大大的提高人們的工作效率;第四,計算機(jī)可以使敏感文檔更加平安,等等.開發(fā)設(shè)計的意義隨著高校辦學(xué)規(guī)模的擴(kuò)大,在校學(xué)生的學(xué)歷層次、思想狀態(tài)、文化水平呈多樣化、復(fù)雜化趨勢,這在很大程度上給學(xué)生管理工作帶來許多新的問題。隨著學(xué)生人數(shù)的增多,高校學(xué)生宿舍管理的信息量日益龐大,賬本化的工作模式獲取信息慢,查閱困難,準(zhǔn)確性差,很難適應(yīng)高水平。因此,如何為學(xué)生提供一個平安、整潔、舒適的生活和學(xué)習(xí)環(huán)境,如何應(yīng)用現(xiàn)代技術(shù)更科學(xué)、高效地對學(xué)生宿舍進(jìn)行管理是各宿舍管理工作者的目標(biāo)。在傳統(tǒng)模式下利用人工進(jìn)行學(xué)生宿舍管理,存在著較多的缺點,如:效率底,保密性差,時間一長將產(chǎn)生大量的文件和數(shù)據(jù),更不便于查找,更新,維護(hù)等。諸如這些情況,令學(xué)校管理者對學(xué)生的信息管理帶來了很大困難,嚴(yán)重影響了教育工作者的工作效率,針對這些情況,我們可使用日趨成熟的計算機(jī)技術(shù)來代替?zhèn)鹘y(tǒng)的人工模式,來實現(xiàn)學(xué)生信息的現(xiàn)代化管理,這一技術(shù)具有手工管理所無法比較的優(yōu)點,如:檢索迅速,查找方便,可靠性高,存儲量大,保密性好,壽命長,本錢底等。這些優(yōu)點能夠極大地提高學(xué)生信息管理的效率,使我們的學(xué)校在市場經(jīng)濟(jì)的開展過程中具有一定的競爭優(yōu)勢,也是學(xué)校實現(xiàn)科學(xué)化,正規(guī)化,現(xiàn)代化的重要條件。實現(xiàn)了科學(xué)、統(tǒng)一管理,防止了人工操作產(chǎn)生的錯誤,大大提高了工作效率。為了實現(xiàn)提高高校宿舍管理部門的工作效率;充分利用資源;減少不必要的人力,物力和財力的支出;方便宿舍管理部門的工作人員全面地掌握學(xué)生住宿情況等目的;為宿舍管理部門,開發(fā)設(shè)計專用系統(tǒng)--學(xué)生宿舍信息管理系統(tǒng)來進(jìn)行管理學(xué)生宿舍信息,使學(xué)生宿舍信息實現(xiàn)標(biāo)準(zhǔn)化的管理和標(biāo)準(zhǔn)化的制度是十分要的。2開發(fā)環(huán)境介紹2.1開發(fā)工具M(jìn)yEclipseMyEclipse企業(yè)級工作平臺(MyEclipseEnterpriseWorkbench,簡稱MyEclipse)是對EclipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布以及應(yīng)用程序效勞器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,支持完整的HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。MyEclipse是一個十分優(yōu)秀的用于開發(fā)Java,J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對各種開源產(chǎn)品的支持十分不錯。MyEclipse目前支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC數(shù)據(jù)庫鏈接工具等多項功能。可以說MyEclipse幾乎囊括了目前所有主流開源產(chǎn)品的專屬eclipse開發(fā)工具2.2數(shù)據(jù)庫MySQLMySQL概述MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有本錢低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有本錢而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。MySQL的特性1.使用C和C++編寫,并使用了多種編譯器進(jìn)行測試,保證源代碼的可移植性。2.支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多種操作系統(tǒng)。3.為多種編程語言提供了API。這些編程語言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。4.支持多線程,充分利用CPU資源。5.優(yōu)化的SQL查詢算法,有效地提高查詢速度。6.既能夠作為一個單獨的應(yīng)用程序應(yīng)用在客戶端效勞器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。7.提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑。8.提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具。9.可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。MySQL的應(yīng)用與其他的大型數(shù)據(jù)庫例如Oracle、DB2、SQLServer等相比,MySQL自有它的缺乏之處,如規(guī)模小、功能有限〔MySQL不支持視圖〔已經(jīng)被列入5.1版的開發(fā)方案〕、事件等〕等,但是這絲毫也沒有減少它受歡送的程度。對于一般的個人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有本錢。3系統(tǒng)需求分析學(xué)生宿舍管理是當(dāng)代學(xué)校中不可或缺的組成局部,在信息化飛速開展的今天,它的出現(xiàn)已經(jīng)成了一種必然,本文將從宿舍管理系統(tǒng)的歷史和現(xiàn)狀進(jìn)行分析,以求證本系統(tǒng)的設(shè)計具有實際的意義,并得到它在未來的開展,從而跟上時代的腳步,做出一個高質(zhì)量的、平安性好的宿舍管理系統(tǒng),使其不僅能滿足學(xué)?,F(xiàn)在的需要,也能滿足將來一段時間的需要。學(xué)生宿舍管理系統(tǒng)的開發(fā)主要包括前臺用戶界面的開發(fā)和后臺數(shù)據(jù)庫的開發(fā),對于后臺數(shù)據(jù)庫的建立和維護(hù)要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)平安性好的數(shù)據(jù)庫。而對于前端應(yīng)用程序的開發(fā)那么要求應(yīng)用程序能提供強(qiáng)大的數(shù)據(jù)操縱功能,界面友好、使用簡單方便等特點。本系統(tǒng)采用java作為前臺用戶界面的開發(fā)語言,java語言開源而且穩(wěn)定,后臺的數(shù)據(jù)庫采用MySql。3.1功能需求3.1.1根本功能需求 主要實現(xiàn)的是學(xué)生宿舍管理系統(tǒng),在設(shè)計該系統(tǒng)時,應(yīng)盡可能的貼近用戶,便于用戶操作。系統(tǒng)在實現(xiàn)上應(yīng)該具有如下功能:系統(tǒng)要求宿管人員輸入正確的賬號和密碼才能進(jìn)入系統(tǒng)。系統(tǒng)提供學(xué)生注冊,并上傳照片。系統(tǒng)應(yīng)該提供學(xué)生的入住信息及學(xué)生注冊后的學(xué)生個人詳細(xì)信息系統(tǒng)應(yīng)提供宿管員的信息查詢功能。系統(tǒng)應(yīng)提供信息維護(hù)功能,對學(xué)生信息添加,修改,刪除。新生可以自己根據(jù)學(xué)號在入學(xué)前查找自己所在的宿舍床位。系統(tǒng)提供宿舍外來人員登記的功能。系統(tǒng)提供記錄學(xué)生宿舍衛(wèi)生管理的功能,系統(tǒng)提供宿舍設(shè)備管理功能。3.1.2總體功能模塊宿舍管理系統(tǒng)主要實現(xiàn)的功能有:宿管員登錄、學(xué)生注冊、治安管理、信息查詢、信息維護(hù)、宿舍設(shè)備管理、外來人員進(jìn)出登記管理等。統(tǒng)管理理添加新生查詢宿舍信息查看學(xué)生查詢宿舍設(shè)備修改設(shè)備按日期查詢按姓名查詢信息統(tǒng)計登錄和退出錄入宿舍分?jǐn)?shù)評選優(yōu)秀宿舍統(tǒng)計優(yōu)秀宿舍修改學(xué)生信息對設(shè)備備注圖3.1總體功能模塊圖3.2性能需求3.2.1系統(tǒng)平安性對于系統(tǒng)為方便學(xué)校管理學(xué)生宿舍而開發(fā),便于統(tǒng)一管理,對學(xué)生信息表進(jìn)行保護(hù),沒有登錄的人員不能直接訪問學(xué)生信息表,用于保護(hù)學(xué)生的信息。3.2.2數(shù)據(jù)庫選擇MySQL是一個開放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有本錢低,尤其是開放源碼這一特點,我選用了MySql作為數(shù)據(jù)庫開發(fā)。3.2.3系統(tǒng)穩(wěn)定性本系統(tǒng)采用MVC模式〔ModelViewControlle〕,使應(yīng)用程序,處理和輸出分開,他們各自處理自己的業(yè)務(wù),不應(yīng)一個局部的邏輯業(yè)務(wù)變動,而導(dǎo)致整體代碼的重寫。本系統(tǒng)的代碼就是最典型的JSP+servlet+javabean的模式。4系統(tǒng)設(shè)計數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計(DatabaseDesign)是指根據(jù)用戶的需求,在某一具體的數(shù)據(jù)庫管理系統(tǒng)上,設(shè)計數(shù)據(jù)庫的結(jié)構(gòu)和建立數(shù)據(jù)庫的過程。數(shù)據(jù)庫設(shè)計是建立數(shù)據(jù)庫及應(yīng)用系統(tǒng)的技術(shù),是信息系統(tǒng)開發(fā)和建議中的核心技術(shù)。由于數(shù)據(jù)庫應(yīng)用系統(tǒng)的復(fù)雜性,為了支持相關(guān)程序運行,數(shù)據(jù)庫設(shè)計就變得異常復(fù)雜,因此最正確設(shè)計不可能一蹴而就,而只能是一種“反復(fù)探尋,逐步求精〞的過程,也就是規(guī)劃和結(jié)構(gòu)化數(shù)據(jù)庫中的數(shù)據(jù)對象以及這些數(shù)據(jù)對象之間關(guān)系的過程。4.1.1數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計從需求分析可以看出,本系統(tǒng)存在以下幾個實體:學(xué)生實體:用于顯示學(xué)生的屬性,包括學(xué)生學(xué)號、姓名、班級、性別、戶籍所在地、所在宿舍號、聯(lián)系方式。宿管員實體:用于顯示宿管員的用戶名和密碼。學(xué)生上傳照片的實體:照片的id、照片的名字、照片對應(yīng)學(xué)生的學(xué)號。導(dǎo)員實體:用于顯示導(dǎo)員的姓名、所帶班級和聯(lián)系方式。外來人員:用于顯示外來人員的姓名、身份證號、目的、來的時刻、走的時刻。E-R模型設(shè)計:根據(jù)實體設(shè)計,可以得到各個實體E-R圖和局部子系統(tǒng)E-R圖。〔1〕學(xué)生實體E-R圖如圖4.1所示。學(xué)生學(xué)生聯(lián)系班級籍貫性別姓名宿舍號學(xué)生ID圖4.1學(xué)生實體E-R圖〔2〕宿管員實體E-R圖如圖4.2所示。宿管員宿管員密碼用戶名圖4.2宿管員實體E-R圖〔3〕照片實體E-R圖如圖4.3所示。照片照片名字學(xué)生id照片ID圖4.3學(xué)生實體E-R圖〔4〕導(dǎo)員實體E-R圖如圖4.4所示。導(dǎo)員導(dǎo)員姓名所帶班級圖4.4導(dǎo)員實體E-R圖〔5〕外來人員實體E-R圖外來人員離開時間外來人員離開時間來時間姓名身份證號目的圖4.5外來人員實體E-R圖匯總后總體E-R模型圖:導(dǎo)員導(dǎo)員Id班級姓名管理學(xué)生學(xué)號姓名性別宿舍號戶籍輔導(dǎo)宿管員用戶名密碼管理宿舍宿舍號人數(shù)住宿管理設(shè)備名稱數(shù)量使用外來人員姓名身份證號目的來時走時登記圖4.6總體E-R圖4.1.2數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計1.學(xué)生信息表存儲了學(xué)生的根本信息。表4.1學(xué)生信息表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件KeyIDInt32NP_K姓名Char20Y姓名Char20Y班級Char2Y性別Char4Y戶籍Char100Y聯(lián)系方式Char11Y2.宿管員信息表存儲了宿管員的根本信息。表4.2宿管員信息表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件KeyIDint32NP_K用戶名Char50YUni密碼Char30Y3.宿舍信息表存儲了學(xué)生上傳照片的根本信息。表4.3學(xué)生上傳照片表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件KeyIDint32NP_K名字Char50Y對應(yīng)學(xué)生的學(xué)號Char32Y4.班主任表存儲了班主任的根本信息。表4.4班主任表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件Key班主任IDInt32NP_K姓名Char20Y號Char11Y所帶班級Char50Y4.外來人員登記表存儲了外來人員的根本信息。表4.5外來人員登記表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件KeyIDInt32NP_K姓名Varchar50Y省份證號varChar11Y目的varChar500Y日期DateY進(jìn)入時間DateY離開時間DateY4.2模塊設(shè)計宿舍管理系統(tǒng)作為學(xué)校內(nèi)部信息平臺的一局部,系統(tǒng)的用戶信息來源于內(nèi)部信息平臺。用戶在內(nèi)部信息平臺單點登錄,即可直接訪問宿舍管理系統(tǒng)。系統(tǒng)數(shù)據(jù)庫與內(nèi)部信息平臺的后臺數(shù)據(jù)庫保持同步,當(dāng)內(nèi)部信息平臺的用戶信息修改后,即可同步信息到本系統(tǒng)數(shù)據(jù)庫。用戶在內(nèi)部信息平臺成功登錄后,當(dāng)訪問宿舍管理系統(tǒng)系統(tǒng)時,內(nèi)部信息平臺將用戶名等信息傳給宿舍管理系統(tǒng),宿舍管理系統(tǒng)的接口模塊將傳過來的用戶信息進(jìn)行解析和初始化,得到系統(tǒng)的用戶認(rèn)證,從而是實現(xiàn)系統(tǒng)和內(nèi)部信息平臺的登錄。4.2.1用戶管理模塊該模塊主要是為宿管員登錄設(shè)計的,在宿管員登錄后進(jìn)入后臺管理頁面,注銷用戶可以重新登錄。用戶管理流程圖如圖4.7所示:宿管員登陸宿管員登陸后臺登錄管理登錄操作退出系統(tǒng)Error圖4.7用戶管理流程圖4.2.2宿舍管理模塊該模塊主要實現(xiàn)房間管理,包括添加,修改,刪除。模塊圖如圖4.8所示:添加宿舍添加宿舍顯示添加宿舍輸入修改信息信息提交增加成功圖4.8學(xué)生信息修改流程4.2.3信息維護(hù)模塊該模塊實現(xiàn)的功能是修改學(xué)生的信息。首先查詢到要修改信息的學(xué)生,然后修改學(xué)生的聯(lián)系方式,所在班級等。流程圖如圖4.8所示:信息維護(hù)信息維護(hù)學(xué)生信息修改輸入學(xué)生信息確認(rèn)修改信息數(shù)據(jù)處理查詢結(jié)束取消失敗成功圖4.9信息維護(hù)流程4.2.4外來人員管理模塊該模塊的功能是實現(xiàn)外來人員的登記和查詢,將外來人員的信息保存到數(shù)據(jù)中。〔1〕外來人員登記流程姓名姓名身份證號目的日期離開時間來的時間外來人員登記管理登記外來人員提交成功圖4.10外來人員登記流程〔2〕查詢外來人員信息按日期查詢按日期查詢按姓名查詢查詢外來人員姓名日期來的時間身份證號離開時間目的返回查詢信息圖4.11查詢外來人員流程學(xué)生注冊模塊該模塊實現(xiàn)學(xué)生注冊功能。學(xué)生注冊學(xué)生注冊學(xué)生信息修改輸入學(xué)生信息確認(rèn)上傳照片數(shù)據(jù)處理查詢數(shù)據(jù)庫結(jié)束取消失敗成功圖4.12學(xué)生注冊流程5系統(tǒng)的編碼與實現(xiàn)5.1系統(tǒng)的實現(xiàn)平臺5.1.1系統(tǒng)環(huán)境1、系統(tǒng)軟件環(huán)境〔1〕效勞端操作系統(tǒng):MicrosoftWindows7數(shù)據(jù)庫系統(tǒng):MySQL5.5效勞器:Tomcat5.0〔2〕客戶端操作系統(tǒng):適用于各種平臺開發(fā)工具:MyEclipse,開發(fā)語言:Java〔3〕開發(fā)模式MVC模式,數(shù)據(jù)層、控制層、界面分開,其中一個模塊邏輯業(yè)務(wù)的變動不影響到其他層,通過控制層〔ActionServlet〕,將頁面的信息保存到數(shù)據(jù)庫,也可從數(shù)據(jù)庫查詢到的結(jié)果反應(yīng)到頁面,從而使系統(tǒng)穩(wěn)定、高效的運行。2、系統(tǒng)硬件環(huán)境〔1〕效勞端:CPU:酷睿四核,內(nèi)存4G,硬盤500G;〔2〕客戶端:Pentium1.6GHz以上CPU,512MB以上內(nèi)存;〔3〕網(wǎng)絡(luò)配置:百兆模式或以上。5.1.2后臺數(shù)據(jù)庫選擇及配置本系統(tǒng)決定用MySQL數(shù)據(jù)庫,原因有幾下幾點:〔1〕MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司。在2023年1月16號被Sun公司收購。而2023年,SUN又被Oracle收購.目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有本錢低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有本錢而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。〔2〕從自身特性來說:1.使用C和C++編寫,并使用了多種編譯器進(jìn)行測試,保證源代碼的可移植性。2.支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多種操作系統(tǒng)。3.為多種編程語言提供了API。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。4.支持多線程,充分利用CPU資源。5.優(yōu)化的SQL查詢算法,有效地提高查詢速度。6.既能夠作為一個單獨的應(yīng)用程序應(yīng)用在客戶端效勞器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。7.提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑。8.提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具。9.可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。系統(tǒng)功能模塊實現(xiàn)圖5.1宿舍管理系統(tǒng)主界面5.2.1學(xué)生注冊模塊一、學(xué)生注冊圖5.2學(xué)生注冊界面代碼局部學(xué)生注冊界面:regist.jsp用到的工廠Factory接口StudentDAO獲得方法:StudentDAOdao=(StudentDAO)Factory.getInstance("StudentDAO");數(shù)據(jù)庫層的方法//通過id查找學(xué)生是否注冊過publicStudentfindById(intid){Connectionconn=null;Students=null;//Employeee=newEmployee();try{conn=DBUtil.getConnection(); PreparedStatementprep=conn.prepareStatement( "select*fromt_studentwhereid=?");prep.setInt(1,id); ResultSetrst=prep.executeQuery(); if(rst.next()){ s=newStudent(); s.setAge(rst.getString("age")); s.setId(rst.getInt("id"));s.setName(rst.getString("name")); s.setSalary(rst.getString("salary")); s.setSex(rst.getString("sex")); s.setPwd(rst.getString("pwd")); s.setPhone(rst.getString("phone")); } }catch(Exceptione1){//TODOAuto-generatedcatchblock e1.printStackTrace(); }finally{ DBUtil.close(conn); } returns; }//將沒有注冊過的學(xué)生信息保存到數(shù)據(jù)庫publicvoidsave(Students)throwsException{Connectionconn=null;try{ conn=DBUtil.getConnection(); PreparedStatementprep=conn.prepareStatement( "insertintot_student(id,name,salary,sex,age,pwd,phone)values(?,?,?,?,?,?,?)"); prep.setInt(1,s.getId()); prep.setString(2,s.getName()); prep.setString(3,s.getSalary()); prep.setString(4,s.getSex()); prep.setString(5,s.getAge());prep.setString(6,s.getPwd()); prep.setString(7,s.getPhone()); prep.executeUpdate(); }catch(Exceptione1){ e1.printStackTrace(); }finally{DBUtil.close(conn); } }控制層ActionServletAction.equals(“/regist〞){ intid=Integer.parseInt(request.getParameter("id")); StudentDAOdao=(StudentDAO)Factory.getInstance("StudentDAO"); try{ Students=dao.findById(id); if(s!=null){ //學(xué)號已被注冊request.setAttribute("id_error","學(xué)號已注冊,不能再注冊");request.getRequestDispatcher("regist.jsp").forward(request,response); }else{ //將沒有注冊過的學(xué)生信息添加到數(shù)據(jù)庫s=newStudent(); s.setId(id); s.setName(request.getParameter("name")); s.setSalary(request.getParameter("salary")); s.setSex(request.getParameter("sex")); s.setAge(request.getParameter("age")); s.setPwd(request.getParameter("pwd")); s.setPhone(request.getParameter("phone")); dao.save(s);// 為用戶新建一個用來保存文件的文件加Stringpath= getServletContext().getRealPath("upload"); Filefile=newFile(path+"http://"+"pic_"+id); if(!file.exists()) file.mkdirs(); HttpSessionsession= request.getSession(); session.setAttribute("s",s); request.setAttribute("s",s); request.getRequestDispatcher("regsuccess.jsp") .forward(request,response); //response.sendRedirect("regsuccess.jsp"); } }catch(Exceptione){ e.printStackTrace(); thrownewServletException(e); } }宿管員登錄圖5.3宿管員登錄界面代碼局部宿管員登錄:〞/login〞用到的接口1.userDAO2.方法//通過宿管員的名字查找是否有該宿管員,才能進(jìn)行身份驗證并登錄,返回的是一個User對象。 publicUserfindByUsername(Stringname)throwsException{ Useruser=newUser(); Connectionconn=null; try{ conn=DBUtil.getConnection(); PreparedStatementprep=conn.prepareStatement( "select*fromt_userwherename=?"); prep.setString(1,name); ResultSetrst=prep.executeQuery(); if(rst.next()){ user=newUser(); user.setId(rst.getInt("id")); user.setPwd(rst.getString("pwd")); user.setName(rst.getString("name")); } else{ returnnull; } }catch(Exceptione){ e.printStackTrace(); }finally{ conn.close(); } returnuser; }3.控制層的方法if(action.equals("/login")){ Stringname=request.getParameter("name");//獲得頁面的宿管員的用戶名 Stringpwd=request.getParameter("pwd");//獲得頁面的密碼 UserDAOdao=(UserDAO)Factory .getInstance("UserDAO"); try{ Useruser=dao.findByUsername(name);//調(diào)用數(shù)據(jù)庫的方法//檢查用戶名和密碼是否正確 if(user!=null&&user.getPwd().equals(pwd)){ HttpSessionsession=request.getSession(); session.setAttribute("user",user);EmployeeDAOdao1=(EmployeeDAO)Factory.getInstance("EmployeeDAO"); response.sendRedirect("second.jsp"); }else{ request.setAttribute("login_error","用戶名或密碼錯誤(*_*),請檢查你的用戶名和密碼"); request.getRequestDispatcher("login.jsp").forward(request,response); } }catch(Exceptione){ e.printStackTrace(); thrownewServletException(e);}}5.2.3對學(xué)生的操作圖5.4操作界面代碼局部宿舍界面:〞/list〞用到的接口StudentDAO方法publicList<Employee>findAll()throwsException;//將所有學(xué)生的信息都查出來publicEmployeefindById(intid)throwsException;//通過學(xué)號查找學(xué)生的信息publicvoidsave(Employeee)throwsException;//保存學(xué)生信息publicvoiddelete(intid)throwsException;//通過學(xué)號刪除學(xué)生信息publicvoidmodify(Employeee)throwsException;//修改學(xué)生信息publicinttotalPages(introwsPerPage)throwsException;//計算總頁數(shù)publicList<Employee>findAll2(intpage,introwsPerPage)throwsException;//分頁控制層if(action.equals("/list")){ //進(jìn)行session驗證,看是否已登錄過HttpSessionsession=request.getSession(); Objectobj=session.getAttribute("user"); if(obj==null){ //如果沒有登錄,那么跳到登錄頁面response.sendRedirect("login.jsp"); return; }else{ StringpageStr=request.getParameter("page"); if(pageStr==null){ pageStr="1"; } intpage=Integer.parseInt(pageStr);request.setAttribute("page",page); EmployeeDAOdao=(EmployeeDAO)Factory.getInstance("EmployeeDAO"); List<Employee>employees; try{ employees=dao.findAll2(page,10);// 獲得總頁數(shù)inttotalPages=dao.totalPages(10); request.setAttribute("totalPages",totalPages); request.setAttribute("employees",employees);RequestDispatcherrd=request.getRequestDispatcher("emplist.jsp"); rd.forward(request,response); }catch(Exceptione){ e.printStackTrace(); thrownewServletException(e); }} }elseif(action.equals("/add")){ //從頁面去增加的學(xué)生的信息intid=Integer.parseInt(request.getParameter("id")); Stringname=request.getParameter("name"); Stringsalary=request.getParameter("salary"); Stringage=request.getParameter("age"); Stringsex=request.getParameter("sex"); //將學(xué)生信息保存到employee的對象e里 Employeee=newEmployee(); e.setId(id); e.setAge(age); e.setName(name);e.setSalary(salary); e.setSex(sex); //將學(xué)生信息保存到數(shù)據(jù)庫 EmployeeDAOdao=(EmployeeDAO)Factory.getInstance("EmployeeDAO"); try{ dao.save(e); response.sendRedirect("list.do"); }catch(Exceptione1){e1.printStackTrace(); thrownewServletException(e1);} }外來人員登記圖5.5外來人員登記界面代碼局部//查找所有publicList<Dj>findAll()//返回所有外來人員的信息publicList<Dj>findByData(Stringdata)//通過日期來查詢外來人員publicList<Dj>findByName(Stringname)//通過名字來查詢外來人員publicvoidsave(Djdj)//保存外來人員系信息到數(shù)據(jù)庫中publicvoidxiugai(Djdj)//修改外來人員的信息5.2.5宿舍衛(wèi)生管理圖5.6宿舍衛(wèi)生界面代碼局部WsDAOpublicList<Ws>findAll()//將所有宿舍衛(wèi)生情況查詢出來返回的是list集合publicList<Ws>findJx(){//將學(xué)生宿舍的衛(wèi)生分?jǐn)?shù)排名List<Ws>wss=newArrayList<Ws>(); Connectionconn=null;try{ conn=DBUtil.getConnection(); Statementstat=conn.createStatement(); ResultSetrst=stat.executeQuery("select*fromt_wsorderbyscoredesc"); while(rst.next()){Wsws=newWs(); ws.setId(rst.getInt("id")); ws.setSeh(rst.getString("seh")); ws.setScore(rst.getDouble("score")); wss.add(ws); } }catch(Exceptione){ e.printStackTrace(); }finally{ DBUtil.close(conn); } returnwss;}publicList<Ws>findPy()//將評完分后的前三名優(yōu)秀宿舍評選出來publicvoidgscore(Wsws)throwsException//修改宿舍衛(wèi)生分?jǐn)?shù)publicList<Wy>pwy(){ List<Wy>wys=newArrayList<Wy>(); Connectionconn=null; try{ conn=DBUtil.getConnection(); PreparedStatementprep=conn.prepareStatement(//統(tǒng)計總分?jǐn)?shù)"selectid,seh,sum(score)sscorefromt_wygroupbysehorderbysscoredesc"); ResultSetrst=prep.executeQuery(); while(rst.next()){ Wywy=newWy(); wy.setId(rst.getInt("id")); wy.setSeh(rst.getString("seh")); wy.setSscore(rst.getDouble("sscore")); System.out.println(wy.getScore()); wys.add(wy); } }catch(Exceptione){ e.printStackTrace(); }finally{ DBUtil.close(conn); } returnwys; }}publicList<Ws>findPy(){//衛(wèi)生評優(yōu)規(guī)那么 List<Ws>wss=newArrayList<Ws>(); Connectionconn=null; try{ conn=DBUtil.getConnection(); Statementstat=conn.createStatement(); ResultSetrst=stat.executeQuery("select*fromt_wsorderbyscoredesclimit3");//將分?jǐn)?shù)高的前三名的宿舍參加到衛(wèi)生優(yōu)秀表while(rst.next()){ Wsws=newWs(); ws.setId(rst.getInt("id"));ws.setSeh(rst.getString("seh"));ws.setScore(rst.getDouble("score")); wss.add(ws);} }catch(Exceptione){ e.printStackTrace(); }finally{ DBUtil.close(conn); }returnwss; }宿舍設(shè)備管理圖5.7宿舍設(shè)備管理界面代碼局部//按宿舍號查找publicSbfindBySeh(Stringseh)//修改設(shè)備信息 publicvoidxiugai(Sbsb)5.3數(shù)據(jù)庫操作的實現(xiàn)在系統(tǒng)開發(fā)過程中,因為要多處用到對數(shù)據(jù)庫的操作,如果這些操作在每次用到時在每個Java程序中去實現(xiàn),將非常繁瑣,因此,為了簡化這些操作,在開發(fā)時設(shè)計了一個連接數(shù)據(jù)庫的包util,用來連接數(shù)據(jù)庫和關(guān)閉數(shù)據(jù)庫packageutil;importdao.impl.EmployeeDAOJdbcImpl;publicclassFactory{ publicstaticObjectgetInstance( StringinterfaceName){ Objectobj=null; StringclassName= ConfigUtil.getValue(interfaceName); try{ Classc=Class.forName(className); obj=c.newInstance(); }catch(Exceptione){ e.printStackTrace(); } returnobj; }}packageutil;importjava.io.IOException;importjava.io.InputStream;importjava.util.Properties;publicclassConfigUtil{ privatestaticPropertiesprops=newProperties(); static{ InputStreamips=null;ClassLoaderloader=ConfigUtil.class.getClassLoader(); ips=loader.getResourceAsStream("util/perties"); try{ props.load(ips); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } publicstaticStringgetValue(Stringkey){ returnprops.getProperty(key); }packageutil;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;publicclassDBUtil{ publicstaticConnectiongetConnection()throwsException{ Connectionconn=null; try{Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager .getConnection( "jdbc:mysql://localhost:3306/sypddb?"+ "useUnicode=true&characterEncoding=utf8", "root",""); }catch(ClassNotFoundExceptione){ e.printStackTrace(); throwe; } returnconn; } publicstaticvoidclose(Connectionconn){ if(conn!=null){ try{ conn.close(); }catch(SQLExceptione){ e.printStackTrace(); } } }}}5.4系統(tǒng)測試5.4.1系統(tǒng)測試的目的系統(tǒng)測試是將已經(jīng)確認(rèn)的軟件、計算機(jī)硬件、外設(shè)、網(wǎng)絡(luò)等其他元素結(jié)合在一起,進(jìn)行信息系統(tǒng)的各種組裝測試和確認(rèn)測試,其目的是通過與系統(tǒng)的需求相比較,發(fā)現(xiàn)所開發(fā)的系統(tǒng)與用戶需求不符或矛盾的地方,從而提出更加完善的方案。它的任務(wù)是盡可能徹底地檢查出程序中的錯誤,提高軟件的可靠性,其目的是檢驗系統(tǒng)“做得怎樣?〞。這階段又可分為三個步驟:模塊測試,測試每個模塊的程序是否有錯誤;組裝測試,測試模塊之間的接口是否正確;確認(rèn)測試,測試整個軟件系統(tǒng)是否滿足用戶功能和性能的要求。該階段結(jié)束應(yīng)交付測試報告,說明測試數(shù)據(jù)的選擇,測試用例以及測試結(jié)果是否符合預(yù)期結(jié)果。測試發(fā)現(xiàn)問題之后要經(jīng)過調(diào)試找出錯誤原因和位置,然后進(jìn)行改正。是基于系統(tǒng)整體需求說明書的黑盒類測試,應(yīng)覆蓋系統(tǒng)所有聯(lián)合的部件。系統(tǒng)測試是針對整個產(chǎn)品系統(tǒng)進(jìn)行的測試,目的是驗證系統(tǒng)是否滿足了需求規(guī)格的定義,找出與需求規(guī)格不相符合或與之矛盾的地方。一個程序并不可能到達(dá)十分完美,難免存在一些錯誤。如果不能及時將其找出并修改,會造成系統(tǒng)崩潰并造成不必要的損失。通過軟件測試,盡可能多的找出系統(tǒng)中的錯誤,以便

溫馨提示

  • 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

提交評論