學生宿舍管理系統(tǒng)畢業(yè)設計論文1
《學生宿舍管理系統(tǒng)畢業(yè)設計論文1》由會員分享,可在線閱讀,更多相關《學生宿舍管理系統(tǒng)畢業(yè)設計論文1(46頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、河北經(jīng)貿大學經(jīng)濟管理學院畢業(yè)論文河北經(jīng)貿大學經(jīng)濟管理學院畢業(yè)論文學生宿舍學生宿舍管理系統(tǒng)管理系統(tǒng)專業(yè)名稱:信息管理與信息系統(tǒng)班 級: C 信管 09-1 班 學生姓名: 指導老師: 完成時間: 2013 年 5 月 I目錄目錄1 緒論.111 開發(fā)背景與現(xiàn)狀 .112開發(fā)設計的意義.12 開發(fā)環(huán)境介紹.321 開發(fā)工具 MYECLIPSE.322 數(shù)據(jù)庫 MYSQL.32.2.1 MySQL 概述 .32.2.2 MySQL 的特性 .32.2.3 MySQL 的應用 .43 系統(tǒng)需求分析.53.1 功能需求 .53.1.1 基本功能需求.53.1.2 總體功能模塊.63.2 性能需求 .73
2、.2.1 系統(tǒng)安全性 .73.2.2 數(shù)據(jù)庫選擇.73.2.3 系統(tǒng)穩(wěn)定性 .74 系統(tǒng)設計.84.1 數(shù)據(jù)庫設計 .84.1.1 數(shù)據(jù)庫概念結構設計.84.1.2 數(shù)據(jù)庫邏輯結構設計.114.2 模塊設計 .134.2.1 用戶管理模塊.134.2.2 宿舍管理模塊.144.2.3 信息維護模塊.154.2.4 外來人員管理模塊.164.2.5 學生注冊模塊.195 系統(tǒng)的編碼與實現(xiàn).205.1 系統(tǒng)的實現(xiàn)平臺 .205.1.1 系統(tǒng)環(huán)境.20 II5.1.2 后臺數(shù)據(jù)庫選擇及配置.205.2 系統(tǒng)功能模塊實現(xiàn).205.2.1 學生注冊模塊.225.2.2 宿舍衛(wèi)生管理.325.3 數(shù)據(jù)庫操
3、作的實現(xiàn) .355.4 系統(tǒng)測試 .385.4.1 系統(tǒng)測試的目的.385.4.2 系統(tǒng)的測試環(huán)境.38總 結.40致 謝.41參 考 文 獻.42 1學生宿舍管理系統(tǒng)畢業(yè)設計論文1 緒論11 開發(fā)背景與現(xiàn)狀隨著時代的發(fā)展,計算機技術越來越深入各行各業(yè),為廣大的用戶提供了更為周到和便捷的服務。目前各行各業(yè)廣泛使用專用系統(tǒng),其內容范圍跨越了教育科研、文化事業(yè)、金融、商業(yè)、新聞出版、娛樂、體育等各個領域,其用戶群十分龐大,因此,設計開發(fā)好一個專用系統(tǒng)對一個機構(或部門)的發(fā)展十分重要。近年來,隨著用戶要求的不斷提高及計算機科學的迅速發(fā)展,特別是數(shù)據(jù)庫技術的廣泛應用,向用戶提供的服務將越來越豐富,越
4、來越人性化。 對于學校而言,學生宿舍管理是必不可少的組成部分。目前仍然存在有學校停留在宿舍管理部門人員手工記錄數(shù)據(jù)的階段,手工記錄對于規(guī)模小的學校來說勉強可以接受;但對于學生信息量比較龐大,需要記錄存檔的數(shù)據(jù)比較多的高校來說,人工記錄是相當麻煩的,而且當查找某條記錄時,由于數(shù)據(jù)量龐大,只能依靠人工去一條一條地查找,這樣不但麻煩而且浪費許多時間,工作效率比較低。采用計算機來管理宿舍和學生的信息,大大提高了查詢的速度,節(jié)約了人力和物力資源,達到了預期的要求。今天,計算機的價格已經(jīng)十分低廉,性能卻有了長足的進步。它已經(jīng)被應用于許多領域,計算機之所以如此流行的原因主要有以下幾個方面: 首先,計算機可以
5、代替人工進行許多繁雜的勞動; 其次,計算機可以節(jié)省許多資源; 第三,計算機可以大大的提高人們的工作效率; 第四,計算機可以使敏感文檔更加安全,等等.12開發(fā)設計的意義隨著高校辦學規(guī)模的擴大,在校學生的學歷層次、思想狀態(tài)、文化水平呈多樣化、復雜化趨勢,這在很大程度上給學生管理工作帶來許多新的 2問題。隨著學生人數(shù)的增多,高校學生宿舍管理的信息量日益龐大,賬本化的工作模式獲取信息慢,查閱困難,準確性差,很難適應高水平。因此,如何為學生提供一個安全、整潔、舒適的生活和學習環(huán)境,如何應用現(xiàn)代技術更科學、高效地對學生宿舍進行管理是各宿舍管理工作者的目標。 在傳統(tǒng)模式下利用人工進行學生宿舍管理,存在著較多
6、的缺點,如:效率底,保密性差,時間一長將產生大量的文件和數(shù)據(jù),更不便于查找,更新,維護等。諸如這些情況,令學校管理者對學生的信息管理帶來了很大困難,嚴重影響了教育工作者的工作效率,針對這些情況,我們可使用日趨成熟的計算機技術來代替?zhèn)鹘y(tǒng)的人工模式, 來實現(xiàn)學生信息的現(xiàn)代化管理,這一技術具有手工管理所無法比擬的優(yōu)點,如:檢索迅速,查找方便,可靠性高,存儲量大,保密性好,壽命長, 成本底等。 這些優(yōu)點能夠極大地提高學生信息管理的效率,使我們的學校在市場經(jīng)濟的發(fā)展過程 中具有一定的競爭優(yōu)勢,也是學校實現(xiàn)科學化,正規(guī)化,現(xiàn)代化的重要條件。實現(xiàn)了科學、統(tǒng)一管理,避免了人工操作產生的錯誤,大大提高了工作效率
7、。為了實現(xiàn)提高高校宿舍管理部門的工作效率;充分利用資源;減少不必要的人力,物力和財力的支出;方便宿舍管理部門的工作人員全面地掌握學生住宿情況等目的;為宿舍管理部門,開發(fā)設計專用系統(tǒng)-學生宿舍信息管理系統(tǒng)來進行管理學生宿舍信息,使學生宿舍信息實現(xiàn)標準化的管理和規(guī)范化的制度是十分要的。 32 開發(fā)環(huán)境介紹21 開發(fā)工具 MyEclipseMyEclipse 企業(yè)級工作平臺(MyEclipse Enterprise Workbench ,簡稱MyEclipse) 是對 EclipseIDE 的擴展,利用它我們可以在數(shù)據(jù)庫和 JavaEE的開發(fā)、發(fā)布以及應用程序服務器的整合方面極大的提高工作效率。它是
8、功能豐富的 JavaEE 集成開發(fā)環(huán)境,包括了完備的編碼、調試、測試和發(fā)布功能,支持完整的 HTML,Struts,JSP, CSS,Javascript,Spring,SQL,Hibernate。 MyEclipse 是一個十分優(yōu)秀的用于開發(fā) Java, J2EE 的 Eclipse 插件集合,MyEclipse 的功能非常強大,支持也十分廣泛,尤其是對各種開源產品的支持十分不錯。MyEclipse 目前支持 Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC 數(shù)據(jù)庫鏈接工具等多項功能??梢哉fMyEclipse 幾乎
9、囊括了目前所有主流開源產品的專屬 eclipse 開發(fā)工具22 數(shù)據(jù)庫 MySQL2.2.1 MySQL 概述 MySQL 是一個小型關系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典 MySQL AB 公司。目前 MySQL 被廣泛地應用在 Internet 上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了 MySQL 作為網(wǎng)站數(shù)據(jù)庫。2.2.2 MySQL 的特性1.使用 C 和 C+編寫,并使用了多種編譯器進行測試,保證源代碼的可移植性 。2.支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell N
10、etware、OpenBSD、OS/2 Wrap、Solaris、Windows 等多種操作系統(tǒng) 。3.為多種編程語言提供了 API。這些編程語言包括C、C+、Eiffel、Java、Perl、PHP、Python、Ruby 和 Tcl 等。 44.支持多線程,充分利用 CPU 資源 。5.優(yōu)化的 SQL 查詢算法,有效地提高查詢速度 。6.既能夠作為一個單獨的應用程序應用在客戶端服務器網(wǎng)絡環(huán)境中,也能夠作為一個庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的 GB2312、BIG5,日文的 Shift_JIS 等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。7.提供 TCP/IP、ODBC 和 JD
11、BC 等多種數(shù)據(jù)庫連接途徑 。8.提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具 。9.可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。2.2.3 MySQL L 的應用與其他的大型數(shù)據(jù)庫例如 Oracle、DB2、SQL Server 等相比,MySQL 自有它的不足之處,如規(guī)模小、功能有限(MySQL 不支持視圖(已經(jīng)被列入 5.1 版的開發(fā)計劃)、事件等)等,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業(yè)來說,MySQL 提供的功能已經(jīng)綽綽有余,而且由于 MySQL 是開放源碼軟件,因此可以大大降低總體擁有成本。 53 系統(tǒng)需求分析學生宿舍管理是當代學校中不可或缺的組成部分,在
12、信息化飛速發(fā)展的今天,它的出現(xiàn)已經(jīng)成了一種必然,本文將從宿舍管理系統(tǒng)的歷史和現(xiàn)狀進行分析,以求證本系統(tǒng)的設計具有實際的意義,并得到它在未來的發(fā)展,從而跟上時代的腳步,做出一個高質量的、安全性好的宿舍管理系統(tǒng),使其不僅能滿足學?,F(xiàn)在的需要,也能滿足將來一段時間的需要。學生宿舍管理系統(tǒng)的開發(fā)主要包括前臺用戶界面的開發(fā)和后臺數(shù)據(jù)庫的開發(fā),對于后臺數(shù)據(jù)庫的建立和維護要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的數(shù)據(jù)庫。而對于前端應用程序的開發(fā)則要求應用程序能提供強大的數(shù)據(jù)操縱功能,界面友好、使用簡單方便等特點。本系統(tǒng)采用 java 作為前臺用戶界面的開發(fā)語言,java 語言開源而且穩(wěn)定,后臺的數(shù)據(jù)庫采
13、用 MySql。3.1 功能需求3.1.1 基本功能需求主要實現(xiàn)的是學生宿舍管理系統(tǒng),在設計該系統(tǒng)時,應盡可能的貼近用戶,便于用戶操作。系統(tǒng)在實現(xiàn)上應該具有如下功能:1. 系統(tǒng)要求宿管人員輸入正確的賬號和密碼才能進入系統(tǒng)。 62. 系統(tǒng)提供學生注冊,并上傳照片。3. 系統(tǒng)應該提供學生的入住信息及學生注冊后的學生個人詳細信息4. 系統(tǒng)應提供宿管員的信息查詢功能。5. 系統(tǒng)應提供信息維護功能,對學生信息添加,修改,刪除。6. 新生可以自己根據(jù)學號在入學前查找自己所在的宿舍床位。7. 系統(tǒng)提供宿舍外來人員登記的功能。8. 系統(tǒng)提供記錄學生宿舍衛(wèi)生管理的功能,9. 系統(tǒng)提供宿舍設備管理功能。3.1.2
14、 總體功能模塊宿舍管理系統(tǒng)主要實現(xiàn)的功能有:宿管員登錄、學生注冊、治安管理、信息查詢、信息維護、宿舍設備管理、外來人員進出登記管理等。宿舍管理統(tǒng)宿 舍管 理 宿 舍設 備管理外來人員管 理管 理人 員登 錄 衛(wèi) 生管 理添加新生查 詢宿 舍信 息查看學生查 詢宿 舍設 備修改設備按日期查詢按姓名查詢信息統(tǒng)計登錄和 退出錄 入 宿 舍 分 數(shù)評 選優(yōu) 秀宿 舍統(tǒng) 計 優(yōu) 秀 宿舍修 改學 生信 息對設備備注 7圖 3.1 總體功能模塊圖3.2 性能需求3.2.1 系統(tǒng)安全性對于系統(tǒng)為方便學校管理學生宿舍而開發(fā),便于統(tǒng)一管理,對學生信息表進行保護,沒有登錄的人員不能直接訪問學生信息表,用于保護學生
15、的信息。3.2.2 數(shù)據(jù)庫選擇 MySQL 是一個開放源碼的小型關聯(lián)式數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典 MySQL AB 公司。目前 MySQL 被廣泛地應用在 Internet 上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,我選用了 MySql 作為數(shù)據(jù)庫開發(fā)。3.2.3 系統(tǒng)穩(wěn)定性本系統(tǒng)采用 MVC 模式(Model View Controlle),使應用程序,處理和輸出分開,他們各自處理自己的業(yè)務,不應一個部分的邏輯業(yè)務變動,而導致整體代碼的重寫。本系統(tǒng)的代碼就是最典型的 JSP + servlet + javabean 的模式。 84 系統(tǒng)設計4.1 數(shù)據(jù)
16、庫設計數(shù)據(jù)庫設計(Database Design)是指根據(jù)用戶的需求,在某一具體的數(shù)據(jù)庫管理系統(tǒng)上,設計數(shù)據(jù)庫的結構和建立數(shù)據(jù)庫的過程。 數(shù)據(jù)庫設計是建立數(shù)據(jù)庫及應用系統(tǒng)的技術,是信息系統(tǒng)開發(fā)和建議中的核心技術。由于數(shù)據(jù)庫應用系統(tǒng)的復雜性,為了支持相關程序運行,數(shù)據(jù)庫設計就變得異常復雜,因此最佳設計不可能一蹴而就,而只能是一種“反復探尋,逐步求精”的過程,也就是規(guī)劃和結構化數(shù)據(jù)庫中的數(shù)據(jù)對象以及這些數(shù)據(jù)對象之間關系的過程。4.1.1 數(shù)據(jù)庫概念結構設計從需求分析可以看出,本系統(tǒng)存在以下幾個實體:學生實體:用于顯示學生的屬性,包括學生學號、姓名、班級、性別、戶籍所在地、所在宿舍號、聯(lián)系方式。宿管
17、員實體:用于顯示宿管員的用戶名和密碼。學生上傳照片的實體:照片的 id、照片的名字、照片對應學生的學號。導員實體:用于顯示導員的姓名、所帶班級和聯(lián)系方式。外來人員:用于顯示外來人員的姓名、身份證號、目的、來的時刻、走的時刻。E-R 模型設計:根據(jù)實體設計,可以得到各個實體 E-R 圖和部分子系統(tǒng) E-R 圖。(1)學生實體 E-R 圖如圖 4.1 所示。 9學生聯(lián)系電話班級籍貫性別姓名宿舍號學生 ID圖 4.1 學生實體 E-R 圖(2)宿管員實體 E-R 圖如圖 4.2 所示。宿管員密碼用戶名圖 4.2 宿管員實體 E-R 圖(3)照片實體 E-R 圖如圖 4.3 所示。照片名字學生 id照
18、片 ID圖 4.3 學生實體 E-R 圖 10(4)導員實體 E-R 圖如圖 4.4 所示。導員姓名所帶班級電話圖 4.4 導員實體 E-R 圖(5)外來人員實體 E-R 圖。外來人員離開時間來時間姓名身份證號目的圖 4.5 外來人員實體 E-R 圖 11匯總后總體 E-R 模型圖:導員Id班級電話姓名管理學生學號姓名性別宿舍號電話戶籍輔導宿管員用戶名密碼管理宿舍宿舍號人數(shù)住宿管理設備名稱數(shù)量使用外來人員姓名身份證號目的來時走時登記圖 4.6 總體 E-R 圖4.1.2 數(shù)據(jù)庫邏輯結構設計1. 學生信息表存儲了學生的基本信息。表 4.1 學生信息表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件KeyIDI
19、nt32NP_K姓名Char20Y 12姓名Char20Y班級Char2Y性別Char4Y戶籍Char100Y聯(lián)系方式Char11Y2.宿管員信息表存儲了宿管員的基本信息。表 4.2 宿管員信息表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件KeyIDint32NP_K用戶名Char50YUni密碼Char30Y3. 宿舍信息表存儲了學生上傳照片的基本信息。表 4.3 學生上傳照片表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件KeyIDint32NP_K名字Char50Y對應學生的學號Char32Y4. 班主任表存儲了班主任的基本信息。表 4.4 班主任表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件Key班主任 IDInt3
20、2NP_K姓名Char20Y手機號Char11Y所帶班級Char50Y4. 外來人員登記表存儲了外來人員的基本信息。 13表 4.5 外來人員登記表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件KeyIDInt32NP_K姓名Varchar50Y省份證號varChar11Y目的varChar500Y日期DateY進入時間DateY離開時間DateY4.2 模塊設計宿舍管理系統(tǒng)作為學校內部信息平臺的一部分,系統(tǒng)的用戶信息來源于內部信息平臺。用戶在內部信息平臺單點登錄,即可直接訪問宿舍管理系統(tǒng)。系統(tǒng)數(shù)據(jù)庫與內部信息平臺的后臺數(shù)據(jù)庫保持同步,當內部信息平臺的用戶信息修改后,即可同步信息到本系統(tǒng)數(shù)據(jù)庫。用戶在內部
21、信息平臺成功登錄后,當訪問宿舍管理系統(tǒng)系統(tǒng)時,內部信息平臺將用戶名等信息傳給宿舍管理系統(tǒng),宿舍管理系統(tǒng)的接口模塊將傳過來的用戶信息進行解析和初始化,得到系統(tǒng)的用戶認證,從而是實現(xiàn)系統(tǒng)和內部信息平臺的登錄。4.2.1 用戶管理模塊該模塊主要是為宿管員登錄設計的,在宿管員登錄后進入后臺管理頁面,注銷用戶可以重新登錄。用戶管理流程圖如圖 4.7 所示: 14宿管員登陸后臺登錄管理登錄操作退出系統(tǒng)Error圖 4.7 用戶管理流程圖4.2.2 宿舍管理模塊該模塊主要實現(xiàn)房間管理,包括添加,修改,刪除。模塊圖如圖 4.8 所示: 15添加宿舍顯示添加宿舍輸入修改信息信息提交增加成功圖 4.8 學生信息修
22、改流程4.2.3 信息維護模塊該模塊實現(xiàn)的功能是修改學生的信息。首先查詢到要修改信息的學生,然后修改學生的聯(lián)系方式,所在班級等。流程圖如圖 4.8 所示: 16信息維護學生信息修改輸入學生信息確認修改信息數(shù)據(jù)處理查詢結束取消失敗成功圖 4.9 信息維護流程4.2.4 外來人員管理模塊該模塊的功能是實現(xiàn)外來人員的登記和查詢,將外來人員的信息保存到數(shù)據(jù)中。(1)外來人員登記流程 17姓名身份證號目的日期離開時間來的時間外來人員登記管理登記外來人員 提交成功圖 4.10 外來人員登記流程 18(2)查詢外來人員信息按日期查詢按姓名查詢查詢外來人員姓名日期來的時間身份證號離開時間目的返回查詢信息圖 4
23、.11 查詢外來人員流程 194.2.5 學生注冊模塊該模塊實現(xiàn)學生注冊功能。學生注冊學生信息修改輸入學生信息確認上傳照片數(shù)據(jù)處理查詢數(shù)據(jù)庫結束取消失敗成功圖 4.12 學生注冊流程 205 系統(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):Microsoft Windows7數(shù)據(jù)庫系統(tǒng):MySQL5.5服務器:Tomcat5.0(2)客戶端操作系統(tǒng):適用于各種平臺開發(fā)工具:MyEclipse,開發(fā)語言:Java(3)開發(fā)模式MVC 模式,數(shù)據(jù)層、控制層、界面分開,其中一個模塊邏輯業(yè)務的變動不影響到其他層,通過控制層(ActionServlet)
24、,將頁面的信息保存到數(shù)據(jù)庫,也可從數(shù)據(jù)庫查詢到的結果反饋到頁面,從而使系統(tǒng)穩(wěn)定、高效的運行。2、系統(tǒng)硬件環(huán)境(1)服務端:CPU:酷睿四核,內存 4G,硬盤 500G;(2)客戶端:Pentium 1.6GHz 以上 CPU,512MB 以上內存;(3)網(wǎng)絡配置:百兆模式或以上。5.1.2 后臺數(shù)據(jù)庫選擇及配置本系統(tǒng)決定用 MySQL 數(shù)據(jù)庫,原因有幾下幾點: 21(1)MySQL 是一個小型關系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB 公司。在 2008 年 1 月 16 號被 Sun 公司收購。而 2009 年,SUN 又被 Oracle 收購.目前 MySQL 被廣泛地應用在 In
25、ternet 上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了 MySQL 作為網(wǎng)站數(shù)據(jù)庫。(2)從自身特性來說:1.使用 C 和 C+編寫,并使用了多種編譯器進行測試,保證源代碼的可移植性。 2.支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows 等多種操作系統(tǒng) 。3.為多種編程語言提供了 API。這些編程語言包括C、C+、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等
26、。 4.支持多線程,充分利用 CPU 資源。 5.優(yōu)化的 SQL 查詢算法,有效地提高查詢速度。 6.既能夠作為一個單獨的應用程序應用在客戶端服務器網(wǎng)絡環(huán)境中,也能夠作為一個庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的 GB 2312、BIG5,日文的 Shift_JIS 等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。 7.提供 TCP/IP、ODBC 和 JDBC 等多種數(shù)據(jù)庫連接途徑。 8.提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具。 9.可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。5.2系統(tǒng)功能模塊實現(xiàn) 22圖 5.1 宿舍管理系統(tǒng)主界面5.2.1 學生注冊模塊一、學生注冊 23圖 5.2 學
27、生注冊界面代碼部分學生注冊界面:regist.jsp1、 用到的工廠Factory2、 接口StudentDAO獲得方法:StudentDAO dao = (StudentDAO)Factory .getInstance(StudentDAO);3、 數(shù)據(jù)庫層的方法/通過 id 查找學生是否注冊過public Student findById(int id)Connection conn=null;Student s=null;/Employee e=new Employee();try conn=DBUtil.getConnection();PreparedStatement prep=co
28、nn.prepareStatement(select * from t_student where id=?);prep.setInt(1,id);ResultSet rst=prep.executeQuery();if(rst.next()s=new Student();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.getS
29、tring(pwd); s.setPhone(rst.getString(phone); 24 catch (Exception e1) / TODO Auto-generated catch blocke1.printStackTrace();finallyDBUtil.close(conn);return s;/將沒有注冊過的學生信息保存到數(shù)據(jù)庫public void save(Student s)throws ExceptionConnection conn=null;tryconn=DBUtil.getConnection();PreparedStatement prep=conn.p
30、repareStatement(insert into t_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();pre
31、p.executeUpdate();catch(Exception e1)e1.printStackTrace();finallyDBUtil.close(conn); 254、 控制層 ActionServletAction.equals(“/regist”)int id=Integer.parseInt(request.getParameter(id);StudentDAO dao = (StudentDAO)Factory .getInstance(StudentDAO);try Student s=dao.findById(id);if(s!=null)/學號已被注冊request.s
32、etAttribute(id_error, 學號已注冊,不能再注冊);request.getRequestDispatcher(regist.jsp).forward(request, response);else /將沒有注冊過的學生信息添加到數(shù)據(jù)庫s=new Student();s.setId(id);s.setName(request.getParameter(name);s.setSalary(request.getParameter(salary);s.setSex(request.getParameter(sex);s.setAge(request.getParameter(age
33、);s.setPwd(request.getParameter(pwd);s.setPhone(request.getParameter(phone);dao.save(s);/為用戶新建一個用來保存文件的文件加String path = getServletContext().getRealPath(upload);File file = new File(path + / + pic_ + id);if(!file.exists()file.mkdirs();HttpSession session = request.getSession(); 26session.setAttribute
34、(s, s);request.setAttribute(s,s);request.getRequestDispatcher(regsuccess.jsp).forward(request, response);/response.sendRedirect(regsuccess.jsp); catch (Exception e) e.printStackTrace();throw new ServletException(e);5.2.2 宿管員登錄圖 5.3 宿管員登錄界面代碼部分宿管員登錄:”/login”用到的接口1.userDAO 272.方法/通過宿管員的名字查找是否有該宿管員,才能進
35、行身份驗證并登錄,返回的是一個 User 對象。public User findByUsername(String name) throws ExceptionUser user=new User();Connection conn=null;try conn=DBUtil.getConnection();PreparedStatement prep=conn.prepareStatement(select * from t_user where name=?);prep.setString(1, name);ResultSet rst=prep.executeQuery();if(rst.n
36、ext() user=new User();user.setId(rst.getInt(id);user.setPwd(rst.getString(pwd);user.setName(rst.getString(name);else return null; catch (Exception e) e.printStackTrace();finallyconn.close();return user;3.控制層的方法if(action.equals(/login)String name=request.getParameter(name);/獲得頁面的宿管員的用戶名 28String pwd=
37、request.getParameter(pwd);/獲得頁面的密碼UserDAO dao = (UserDAO)Factory .getInstance(UserDAO); try User user=dao.findByUsername(name);/調用數(shù)據(jù)庫的方法/檢查用戶名和密碼是否正確if(user!=null& user.getPwd().equals(pwd) HttpSession session=request.getSession(); session.setAttribute(user, user);EmployeeDAO dao1= (EmployeeDAO) Fac
38、tory.getInstance(EmployeeDAO) ; response.sendRedirect(second.jsp); else request.setAttribute(login_error, 用戶名或密碼錯誤(*_*),請檢查你的用戶名和密碼); request.getRequestDispatcher(login.jsp).forward(request, response); catch (Exception e) e.printStackTrace();throw new ServletException(e);5.2.3 對學生的操作 29圖 5.4 操作界面代碼部
39、分宿舍界面:”/list”用到的接口StudentDAO 方法 public List findAll()throws Exception;/將所有學生的信息都查出來public Employee findById(int id)throws Exception;/通過學號查找學生的信息public void save(Employee e) throws Exception;/保存學生信息public void delete(int id)throws Exception;/通過學號刪除學生信息public void modify(Employee e)throws Exception;/修
40、改學生信息public int totalPages(int rowsPerPage) throws Exception;/計算總頁數(shù)public List findAll2(int page,int rowsPerPage) throws Exception; /分頁 30控制層if(action.equals(/list)/進行 session 驗證,看是否已登錄過HttpSession session=request.getSession();Object obj=session.getAttribute(user);if(obj=null)/如果沒有登錄,則跳到登錄頁面response
41、.sendRedirect(login.jsp);return;elseString pageStr = request.getParameter(page);if(pageStr = null)pageStr = 1;int page = Integer.parseInt(pageStr);request.setAttribute(page, page);EmployeeDAO dao=(EmployeeDAO) Factory.getInstance(EmployeeDAO);List employees;try employees = dao.findAll2(page,10);/獲得總
42、頁數(shù)int totalPages = dao.totalPages(10);request.setAttribute(totalPages, totalPages);request.setAttribute(employees,employees);RequestDispatcher rd=request.getRequestDispatcher(emplist.jsp);rd.forward(request, response); catch (Exception e) e.printStackTrace();throw new ServletException(e); 31 else if
43、(action.equals(/add)/從頁面去增加的學生的信息int id=Integer.parseInt(request.getParameter(id);String name=request.getParameter(name);String salary=request.getParameter(salary);String age=request.getParameter(age);String sex=request.getParameter(sex);/將學生信息保存到 employee 的對象 e 里Employee e=new Employee();e.setId(id
44、);e.setAge(age);e.setName(name);e.setSalary(salary);e.setSex(sex);/將學生信息保存到數(shù)據(jù)庫EmployeeDAO dao=(EmployeeDAO) Factory.getInstance(EmployeeDAO);try dao.save(e);response.sendRedirect(list.do); catch (Exception e1) e1.printStackTrace();throw new ServletException (e1); 325.2.4 外來人員登記 圖 5.5 外來人員登記界面代碼部分/查找
45、所有public List findAll()/返回所有外來人員的信息public List findByData(String data)/通過日期來查詢外來人員public List findByName(String name)/通過名字來查詢外來人員public void save(Dj dj)/保存外來人員系信息到數(shù)據(jù)庫中public void xiugai(Dj dj)/修改外來人員的信息 335.2.5 宿舍衛(wèi)生管理圖 5.6 宿舍衛(wèi)生界面代碼部分WsDAOpublic List findAll() /將所有宿舍衛(wèi)生情況查詢出來返回的是 list集合public List fin
46、dJx()/將學生宿舍的衛(wèi)生分數(shù)排名Listwss=new ArrayList();Connection conn = null;try conn = DBUtil.getConnection();Statement stat = conn.createStatement();ResultSet rst = stat.executeQuery(select * from t_ws order by score desc);while (rst.next() 34Ws ws= new Ws();ws.setId(rst.getInt(id);ws.setSeh(rst.getString(seh
47、);ws.setScore(rst.getDouble(score);wss.add(ws); catch (Exception e) e.printStackTrace(); finally DBUtil.close(conn);return wss;public List findPy() /將評完分后的前三名優(yōu)秀宿舍評選出來public void gscore(Ws ws) throws Exception /修改宿舍衛(wèi)生分數(shù)public List pwy()Listwys=new ArrayList();Connection conn=null;try conn=DBUtil.getC
48、onnection();PreparedStatement prep=conn.prepareStatement(/統(tǒng)計總分數(shù)select id, seh,sum(score) sscore from t_wy group by seh order by sscore desc);ResultSet rst=prep.executeQuery();while(rst.next()Wy wy=new Wy();wy.setId(rst.getInt(id);wy.setSeh(rst.getString(seh);wy.setSscore(rst.getDouble(sscore);System
49、.out.println(wy.getScore();wys.add(wy); 35 catch (Exception e) e.printStackTrace();finallyDBUtil.close(conn);return wys;public List findPy() /衛(wèi)生評優(yōu)規(guī)則Listwss=new ArrayList();Connection conn = null;try conn = DBUtil.getConnection();Statement stat = conn.createStatement();ResultSet rst = stat.executeQue
50、ry(select * from t_ws order by score desc limit 3);/將分數(shù)高的前三名的宿舍加入到衛(wèi)生優(yōu)秀表while (rst.next() Ws ws= new Ws();ws.setId(rst.getInt(id);ws.setSeh(rst.getString(seh);ws.setScore(rst.getDouble(score);wss.add(ws); catch (Exception e) e.printStackTrace(); finally DBUtil.close(conn);return wss; 365.2.6 宿舍設備管理圖
51、5.7 宿舍設備管理界面代碼部分/按宿舍號查找public Sb findBySeh(String seh)/修改設備信息public void xiugai(Sb sb)5.3 數(shù)據(jù)庫操作的實現(xiàn)在系統(tǒng)開發(fā)過程中,因為要多處用到對數(shù)據(jù)庫的操作,如果這些操作在每次用到時在每個 Java 程序中去實現(xiàn),將非常繁瑣,因此,為了簡化這些操作,在開發(fā)時設計了一個連接數(shù)據(jù)庫的包 util,用來連接數(shù)據(jù)庫和關閉數(shù)據(jù)庫package util;import dao.impl.EmployeeDAOJdbcImpl;public class Factory public static Object getIns
52、tance(String interfaceName)Object obj = null;String className = 37ConfigUtil.getValue(interfaceName);try Class c = Class.forName(className);obj = c.newInstance(); catch (Exception e) e.printStackTrace();return obj;package util;import java.io.IOException;import java.io.InputStream;import java.util.Pr
53、operties;public class ConfigUtil private static Properties props=new Properties();staticInputStream ips=null;ClassLoader loader=ConfigUtil.class.getClassLoader();ips=loader.getResourceAsStream(util/config.properties);try props.load(ips); catch (IOException e) / TODO Auto-generated catch blocke.print
54、StackTrace();public static String getValue(String key)return props.getProperty(key);package util;import java.sql.Connection; 38import java.sql.DriverManager;import java.sql.SQLException;public class DBUtil public static Connection getConnection() throws ExceptionConnection conn=null;try Class.forNam
55、e(com.mysql.jdbc.Driver);conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/sypddb? +useUnicode=true&characterEncoding=utf8,root,); catch (ClassNotFoundException e) e.printStackTrace();throw e;return conn;public static void close(Connection conn)if(conn!=null)try conn.close(); catch (SQLE
56、xception e) e.printStackTrace(); 395.4 系統(tǒng)測試5.4.1 系統(tǒng)測試的目的系統(tǒng)測試是將已經(jīng)確認的軟件、計算機硬件、外設、網(wǎng)絡等其他元素結合在一起,進行信息系統(tǒng)的各種組裝測試和確認測試,其目的是通過與系統(tǒng)的需求相比較,發(fā)現(xiàn)所開發(fā)的系統(tǒng)與用戶需求不符或矛盾的地方,從而提出更加完善的方案。它的任務是盡可能徹底地檢查出程序中的錯誤,提高 軟件的可靠性,其目的是檢驗系統(tǒng) “做得怎樣?”。這階段又可分為三個步驟: 模塊測試,測試每個模塊的程序是否有錯誤;組裝測試,測試模塊之間的接口是否正確;確認測試,測試整個軟件系統(tǒng)是否滿足用戶功能和性能的要求。該階段結束應交付測試報
57、告,說明測試數(shù)據(jù)的選擇, 測試用例以及測試結果是否符合預期結果。測試發(fā)現(xiàn)問題之后要經(jīng)過調試找出錯誤原因和位置,然后進行改正。是基于系統(tǒng)整體需求說明書的黑盒類測試,應覆蓋系統(tǒng)所有聯(lián)合的部件。系統(tǒng)測試是針對整個產品系統(tǒng)進行的測試,目的是驗證系統(tǒng)是否滿足了需求規(guī)格的定義,找出與需求規(guī)格不相符合或與之矛盾的地方。一個程序并不可能達到十分完美,難免存在一些錯誤。如果不能及時將其找出并修改,會造成系統(tǒng)崩潰并造成不必要的損失。通過軟件測試,盡可能多的找出系統(tǒng)中的錯誤,以便與及時修改。宿舍管理系統(tǒng)是對學生宿舍進行管理的系統(tǒng),一旦系統(tǒng)無法運行,對學校的宿舍管理帶來很多的影響。所以通過軟件測試的手段,盡可能排除程
58、序中的錯誤,已達到程序運行穩(wěn)定的目的,使學校的工作不會因此受到影響。5.4.2 系統(tǒng)的測試環(huán)境1.系統(tǒng)測試的性能要求系統(tǒng)的性能要求通常指系統(tǒng)需要的存儲容量以及后援存儲,重新啟動和安全性,運行效率等方面的考慮。 本系統(tǒng)運行環(huán)境為網(wǎng)絡版,在運行時對系統(tǒng)整體性能要有一定的要求,要求:軟硬件要求:winXp 和 win7+MySQL+Myeclipse硬件系統(tǒng)環(huán)境 P4 2.4、512MB 內存、80G 硬盤 40系統(tǒng)運行時對數(shù)據(jù)的保密性要求不高對一般的數(shù)據(jù)不要求進行加密。此外,對其它軟件幾乎沒有依賴性,程序健壯性較好。 2.測試數(shù)據(jù)(1)信息輸入選擇幾組數(shù)據(jù)進行添加 修改 刪除 等操作 實現(xiàn)其基本功
59、能。 (2) 信息查詢信息輸入后,通過信息查詢,查看結果是否和設計時數(shù)據(jù)一致,以確認數(shù)據(jù)的正確性。, (3) 信息的刪除,通過對信息的刪除,然后進行信息查詢,驗證信息是否已經(jīng)成功刪除。 41總 結在一個軟件開發(fā)過程中,我覺得最重要的是需求分析,軟件是給客戶來使用的,所以客戶就是上帝,如何合理有效地跟客戶進行溝通,然后把需求與軟件結合起來,最終形成一個確定的需求文檔,這是最重要的。這次的設計就在需求方面吃了很大的虧,剛開始由于需求做的不是很細,第一,內容開始的時候太匱乏,功能點太模棱兩可,不夠詳細,規(guī)定的不夠具體,沒有明確要求,從而導致大幅度的修改過一次需求分析,第二,項目的時間安排沒有考慮到很
60、周全,測試的時候估計是因為具體實現(xiàn)代碼的時候,返工以及磨合的需求太大,導致測試停滯斷時間,從而把后期修改 BUG 的時間占用了一些,差點來不及。第三,想做的功能太多,導致后期拋了幾個功能點不做,這也同時是需求分析以及時間安排的不合理問題。最終到了后期才發(fā)現(xiàn)這些問題,導致了很多功能都要重新寫,花費了很大的功夫,這是這次項目感觸最大的,也是收獲最多的。在這次的畢業(yè)設計的過程中,更加深入了解了對分層設計思想的認識。從一開始的 Dao 層到業(yè)務邏輯層,然后通過監(jiān)聽器連接到界面上,最終成為一個滿足需求的軟件,這就是 MVC 開發(fā)模式。雖然一開始感覺到分層很復雜,但是做了幾個類后,逐漸有了思路,也進一步加
61、深了對java 面向對象概念的認識。在這次項目中,我體會并感受到了一個項目開發(fā)的流程,除了在技術上有一定的提高以外,更重要的是形成了分層的思想與面向對象的思想。看著做出的產品,感受到了這幾個月來所付出的一切都是值得的! 42致 謝到目前為止,學生宿舍管理軟件基本開發(fā)完畢,軟件運行穩(wěn)定,運行時間短,執(zhí)行功能強,其功能基本符合用戶需求。能夠完成對學生宿舍基本資料的存儲和查詢,可以使用查找、修改、添加和刪除對學生公寓管理軟件的操作等。 由于本人知識有限,又缺乏經(jīng)驗,必定有很多不足和不周之處,希望各位老師給予指導,本人將繼續(xù)完善修改,使此系統(tǒng)能更好地發(fā)揮性能。在此我要特別感謝我的導師給我的指點和幫助,
62、與此同時我還要感謝所有給我鼓勵和幫助的同學,使我圓滿的完成了畢業(yè)設計。衷心的祝愿老師同學工作順利、學業(yè)有成。 43參 考 文 獻l 張劍平,學校管理信息系統(tǒng)中國鐵道出版社,19972葉達峰,Eclipse 編程技術與實例思維科技編著 人民郵電出版社 06 年出版 3趙增敏,ASP 動態(tài)網(wǎng)頁設計電子工業(yè)出版社,20034劉乃麗,精通 Java EE 項目案例人民郵電出版社,20115 張孝祥深入體驗 Java Web 開發(fā)內幕電子工業(yè)出版社,2006 6 丁振凡,Java 語言實用教程北京郵電大學出版社,2008 7孫鑫,Servlet/JSP 深入詳解電子工業(yè)出版社,2012 8孫衛(wèi)琴,李洪稱
63、,Tomcat 與 Java Web 開發(fā)技術詳解電子工業(yè)出版社,2008 9Java 核心技術 卷機械工業(yè)出版社,2008 10mysql 核心技術手冊 機械工業(yè)出版社,2009 11Java 編程思想 機械工業(yè)出版社,200813 楊志茹,溫沿書編著,Java 入門與實戰(zhàn)教程。人民郵電出版社,201014 David M Geary.Graphic Java 2 Mastering the JFC Volume 2:Swing (3rd Edition)M.Prentice Hall/Pearson,2000.15 Joshua Marinacci,Chris Adamson.SWING HACKSM.Oreilly,2007.16 James Elliott.Java Swing(Second Edition)M. OReilly & Associates,2002.12.
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。