宿舍管理系統(tǒng)設(shè)計論文_第1頁
宿舍管理系統(tǒng)設(shè)計論文_第2頁
宿舍管理系統(tǒng)設(shè)計論文_第3頁
宿舍管理系統(tǒng)設(shè)計論文_第4頁
宿舍管理系統(tǒng)設(shè)計論文_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、浙江科技學(xué)院信息與電子工程學(xué)院2015屆本科畢業(yè)設(shè)計(論文)PAGE 2浙 江 科 技 學(xué) 院本 科 畢 業(yè) 論 文(2015屆)題 目 宿舍管理系統(tǒng) 學(xué) 院 信息與電子工程學(xué)院 專 業(yè) 班 級 學(xué) 號 學(xué)生姓名 指導(dǎo)教師 完成日期 2015年5月18日 摘要現(xiàn)如今大學(xué)宿舍,因起龐大的學(xué)生人數(shù),眾多的學(xué)生信息,造成管理上的不便。而且一本本紙質(zhì)的本子,靠人力查詢,效率低下。從存放上來講,本子太多太厚,占太多空間并且相當(dāng)容易損壞。該學(xué)生宿舍管理系統(tǒng)主要分為權(quán)限管理和普通功能。權(quán)限管理:就是可以使非程序員的管理者可以管理用戶的訪問權(quán)限,所以在界面上要求簡單易懂。普通功能:如保修功能,送水功能,離返校

2、簽到功能等大多數(shù)對用戶開發(fā)的功能。該系統(tǒng)選擇了MySQL做為數(shù)據(jù)庫,開發(fā)工具是eclipse,jar包管理用了maven,系統(tǒng)實現(xiàn)了學(xué)生個人信息,送水,報修以及管理員管理學(xué)生信息,報修記錄,送水記錄等必需的功能,其操作簡單,界面友好,運(yùn)行比較穩(wěn)定,適用于學(xué)生宿舍管理。關(guān)鍵詞: 學(xué)生宿舍管理,java,MySQL數(shù)據(jù)庫,eclipseAbstract The enormous numbers of students,too much studentss information , make it difficult for Managers to run the university dormi

3、tory now . Its low efficiency that querying information by men on very thick record books . And we have to spend a lot of space to deposit record books. Its not easy to keep record books . The dormitory management system including the management of jurisdiction and the management of function. Author

4、ization is about permissions , and it should be easy for managers who is not programmer to use this system . The management of function including sending-watger application , repair application and another function used by users . After analysis, the system uses MySQL as the backend database, eclips

5、e as the front-end development tools,system management to achieve the student personal information management , sending-watger application management , repair application management and other necessary information query functions, the operation is simple, friendly interface and stable operation for

6、college students at the university dormitory management. Keywords Student Apartment Management, java,MySQL Database,eclipse目 錄 TOC o 1-3 h z u HYPERLINK l _Toc8758 摘要 PAGEREF _Toc8758 II HYPERLINK l _Toc30333 1 緒論 PAGEREF _Toc30333 1 HYPERLINK l _Toc24505 11 開發(fā)背景與現(xiàn)狀 PAGEREF _Toc24505 1 HYPERLINK l _

7、Toc28159 12 開發(fā)設(shè)計的意義 PAGEREF _Toc28159 1 HYPERLINK l _Toc12457 2 開發(fā)環(huán)境介紹 PAGEREF _Toc12457 2 HYPERLINK l _Toc32233 21 開發(fā)工具 Eclipse PAGEREF _Toc32233 2 HYPERLINK l _Toc32099 22 數(shù)據(jù)庫 MySQL PAGEREF _Toc32099 3 HYPERLINK l _Toc5240 2.2.1 MySQL概述 PAGEREF _Toc5240 3 HYPERLINK l _Toc27930 2.2.3 MySQL的應(yīng)用 PAGER

8、EF _Toc27930 3 HYPERLINK l _Toc11841 23 頁面腳本 Velocity介紹 PAGEREF _Toc11841 3 HYPERLINK l _Toc23448 3 系統(tǒng)需求分析 PAGEREF _Toc23448 4 HYPERLINK l _Toc19293 3.1 功能需求 PAGEREF _Toc19293 4 HYPERLINK l _Toc30241 3.1.1 基本功能需求 PAGEREF _Toc30241 4 HYPERLINK l _Toc9036 3.1.2 功能模塊 PAGEREF _Toc9036 5 HYPERLINK l _Toc

9、86 3.2 性能需求 PAGEREF _Toc86 6 HYPERLINK l _Toc13508 3.2.1數(shù)據(jù)庫選擇 PAGEREF _Toc13508 6 HYPERLINK l _Toc2378 4 系統(tǒng)設(shè)計 PAGEREF _Toc2378 7 HYPERLINK l _Toc30967 4.1 數(shù)據(jù)庫設(shè)計 PAGEREF _Toc30967 7 HYPERLINK l _Toc23079 4.1.1 物理設(shè)計 PAGEREF _Toc23079 7 HYPERLINK l _Toc32285 4.1.2 表/字段及表間關(guān)系設(shè)計 PAGEREF _Toc32285 8 HYPERL

10、INK l _Toc29464 4.2 模塊設(shè)計 PAGEREF _Toc29464 12 HYPERLINK l _Toc2887 4.2.1 權(quán)限管理模塊 PAGEREF _Toc2887 12 HYPERLINK l _Toc20553 4.2.2 學(xué)生管理模塊 PAGEREF _Toc20553 12 HYPERLINK l _Toc16322 4.2.3 學(xué)生個人信息模塊 PAGEREF _Toc16322 13 HYPERLINK l _Toc16457 4.2.4 系統(tǒng)模塊 PAGEREF _Toc16457 13 HYPERLINK l _Toc29329 5 系統(tǒng)的編碼與實現(xiàn)

11、 PAGEREF _Toc29329 13 HYPERLINK l _Toc7693 5.1 系統(tǒng)的實現(xiàn)平臺 PAGEREF _Toc7693 13 HYPERLINK l _Toc31439 5.1.1 系統(tǒng)環(huán)境 PAGEREF _Toc31439 13 HYPERLINK l _Toc5212 5.2 系統(tǒng)功能模塊的實現(xiàn) PAGEREF _Toc5212 14 HYPERLINK l _Toc4077 5.2.1 權(quán)限管理模塊 PAGEREF _Toc4077 14 HYPERLINK l _Toc32125 5.2.2 宿舍管理模塊 PAGEREF _Toc32125 19 HYPERL

12、INK l _Toc10547 5.2.3 學(xué)生信息管理模塊 PAGEREF _Toc10547 21 HYPERLINK l _Toc18769 5.2.4 離返校管理模塊 PAGEREF _Toc18769 24 HYPERLINK l _Toc15848 5.2.5 離返校模塊 PAGEREF _Toc15848 25 HYPERLINK l _Toc25921 5.3 數(shù)據(jù)庫插件SQLyog PAGEREF _Toc25921 27 HYPERLINK l _Toc5127 5.4 Maven PAGEREF _Toc5127 27 HYPERLINK l _Toc15536 5.5

13、系統(tǒng)測試 PAGEREF _Toc15536 28 HYPERLINK l _Toc31097 5.5.1 系統(tǒng)測試的目的 PAGEREF _Toc31097 28 HYPERLINK l _Toc24004 5.5.2 系統(tǒng)的測試環(huán)境 PAGEREF _Toc24004 28 HYPERLINK l _Toc25631 總 結(jié) PAGEREF _Toc25631 29 HYPERLINK l _Toc28108 致 謝 PAGEREF _Toc28108 30 HYPERLINK l _Toc5943 參 考 文 獻(xiàn) PAGEREF _Toc5943 31PAGE PAGE 311 引言 1

14、1 開發(fā)背景與現(xiàn)狀隨著時代的不斷發(fā)展,人們對工作效率的要求越來越高。各行各業(yè)中都涉及到了信息處理技術(shù),所以信息管理變得越來越重要。而使用計算機(jī)來進(jìn)行信息管理,大大的提高了查詢效率,并使數(shù)據(jù)更容易拷貝和保存,節(jié)省了不少人力。學(xué)生宿舍是學(xué)生休息的地方,所以信息的交匯也特別頻繁。如今,部分學(xué)生宿舍還是使用紙質(zhì)本子來記錄信息的。當(dāng)開學(xué)、放假離返校這些學(xué)生流動量大的時候,信息處理的數(shù)據(jù)量也大,學(xué)生要一個個排隊書寫離返校信息;而且本子記錄了太多信息的時候,在記錄上找人卻不知道那人幾樓幾號宿舍時,只能通過一頁頁翻。很繁瑣,效率低,對工作人員來說很累。這就是沒有宿舍管理系統(tǒng)的缺點。傳統(tǒng)的數(shù)據(jù)處理采用紙筆操作,

15、工作量大,出錯率高,出錯后更改不便更不能多次更改。而且數(shù)據(jù)量一大,本子用的多,開銷大。厚厚的記錄本,存放占空間。紙質(zhì)的材質(zhì)使得保存要格外小心,存放多年容易破損。在以往傳統(tǒng)模式下,人工進(jìn)行紙筆操作的學(xué)生宿舍管理,有不少缺點,如:效率底,保密性差,時間一長,大量的文件和數(shù)據(jù)會存在查詢,拷貝,存放上的不便等。這些情況給學(xué)校管理者帶來了很大困難,嚴(yán)重影響了教育工作者的工作效率,對于以上情況,我們可使用日趨成熟的計算機(jī)技術(shù)來代替?zhèn)鹘y(tǒng)的紙筆記錄模式, 來實現(xiàn)學(xué)生信息的計算機(jī)化管理,該技術(shù)具有傳統(tǒng)的紙筆記錄所無法比擬的優(yōu)點,如:查找快速,方便,安全,巨大的存儲量,超長的存儲時間, 較低地存儲成本和使用成本等

16、。真正好的技術(shù),多數(shù)都能讓人變懶。一件事情無論何時何地,在電腦上點擊幾下就能完成,不用排隊。 學(xué)生宿舍管理系統(tǒng)對于學(xué)生來說,在生活上方便了許多。12 開發(fā)設(shè)計的意義該系統(tǒng)主要2個部分:權(quán)限控制,具體功能權(quán)限控制,現(xiàn)在各種各樣的系統(tǒng)都要求權(quán)限控制。我設(shè)計為:用戶-角色-資源。管理員可以管理用戶擁有哪些角色,角色擁有哪些資源權(quán)限從而來實現(xiàn)權(quán)限控制。這樣的話,非程序員的管理者,就可以控制角色的權(quán)限。如果要修改所有學(xué)生的權(quán)限,那就修改學(xué)生權(quán)限,而不是一個個用戶地改,效率快得多。如果要提升某個用戶的權(quán)限,可以新建一個角色,把新權(quán)限賦給該角色,然后把該角色賦給該用戶。這種設(shè)計方式,在管理系統(tǒng)中用的相當(dāng)普遍

17、。住校期間,離返校記錄,宿舍報修,送水等情況,都是我們下樓找宿舍阿姨,阿姨在本子上記錄,然后阿姨再通知相關(guān)的校工人員。在整個環(huán)節(jié)中,宿管阿姨顯得十分重要,萬一找不到阿姨,學(xué)生無法再本子上記錄信息,也沒人通知校工來進(jìn)行維修。學(xué)生聯(lián)系宿舍阿姨,阿姨再聯(lián)系相關(guān)的校工來維修,一來一回,學(xué)生要等上很久。如果學(xué)生直接聯(lián)系校工的話,還是要找地方記錄數(shù)據(jù),并且需要校工的聯(lián)系方式。那如果這一切在網(wǎng)上可以進(jìn)行的話,就快得多了。而且對于管理員來說,只要在電腦上點幾下,一個人就可以管理10個宿舍樓甚至更多的數(shù)據(jù)。大大的減少了人力的消耗,提高了管理的效率,降低了管理的資源。2 開發(fā)環(huán)境介紹21 開發(fā)工具 Eclipse

18、Eclipse 是一個開放源代碼的,基于 Java 的可擴(kuò)展的開發(fā)工具。 Eclipse是廣為人知的、免費(fèi)的、跨平臺的集成開發(fā)環(huán)境(Integrated Development Environment,即IDE)。最初主要用來Java語言開發(fā),但是目前也有人通過插件使其作為其他計算機(jī)語言,比如C+的開發(fā)工具。Eclipse的本身只是一個框架平臺和一組服務(wù),但是眾多插件組件構(gòu)建了開發(fā)環(huán)境。一方面,Eclipse可作為Java IDE來使用。另一方面,Eclipse的插件(Plug-in Development Environment,PDE)允許希望擴(kuò)Eclipse的開發(fā)人員構(gòu)建與Eclipse

19、環(huán)境集成的工具。簡單來說,相對于其他功能相對固定的IDE軟件,Eclipse有很大的靈活性。同時,許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE?;贓clipse的應(yīng)用程序的出名例子是IBM的WebSphere Studio Workbench,改程序構(gòu)成了 IBM-Java 開發(fā)工具系列的基礎(chǔ)。比如,WebSphere Studio Application Developer 添加了對 XML、JSP、EJB、servlet、Web 服務(wù)和數(shù)據(jù)庫訪問的支持。22 數(shù)據(jù)庫 MySQL2.2.1 MySQL概述 MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。

20、目前MySQL常常被應(yīng)用在網(wǎng)上上的中小型網(wǎng)站中。因為免費(fèi),并且語言較Oracle差別小,學(xué)習(xí)快速,體積小,速度快,總體擁有成本低,尤其是開放源碼等原因,被許多小公司接受。2.2.3 MySQL的應(yīng)用與其他的大型數(shù)據(jù)庫例如Oracle、Sybase、DB2、PostgreSQL、SQL Server等相比,在市場占有率上處于劣勢。但作為一個開源的免費(fèi)的數(shù)據(jù)庫,對于中小性企業(yè)來說,甚至于大型企業(yè)來說,少了一筆相當(dāng)可觀的開銷。(當(dāng)然,多數(shù)大公司是有他們獨(dú)自的數(shù)據(jù)庫)但相對于Oracle那高昂的費(fèi)用,MySQL還是有相當(dāng)大的優(yōu)勢的。并且該數(shù)據(jù)庫的市場占有率也在逐年增加。23 頁面腳本 Velocity

21、介紹Velocity是一個基于java的模板引擎(template engine)。當(dāng)Velocity應(yīng)用于web開發(fā)時,是MVC構(gòu)架的一部分,頁面設(shè)計人員(前端)可以只關(guān)注頁面顯示效果,而由java程序開發(fā)人員關(guān)注業(yè)務(wù)邏輯編碼。為程序員在JSP和PHP之外又提供了一種可選方案。最初作為模板使用,為的是程序員用.vm文件構(gòu)建好規(guī)則之后,可以根據(jù)實體類,來生成控制層,服務(wù)層,mapper,以及頁面。為的是提升程序員寫代碼效率。當(dāng)然生成的模板是死的,多數(shù)功能要程序員自己修改。不過,后來因為Velocity作為腳本,使用起來方便(標(biāo)簽的使用規(guī)則易學(xué),傳數(shù)據(jù)方便),開始作為腳本使用。作為頁面腳本,自身

22、有頁面上就可以進(jìn)行foreach循環(huán),if判斷等簡單邏輯,復(fù)雜處理還是交給js。因為其頁面與控制層傳數(shù)據(jù)方便的特點,被許多公司企業(yè)采用,作為頁面腳本。3 系統(tǒng)需求分析學(xué)生宿舍管理實現(xiàn)了權(quán)限管理,學(xué)生實物的提交申報,以及管理員對信息的管理。該學(xué)生宿舍管理系統(tǒng)主要分為權(quán)限管理和普通功能。權(quán)限管理:就是可以使非程序員的管理者可以管理用戶的訪問權(quán)限,所以在界面上要求簡單易懂。具體實現(xiàn):管理員可以通過管理用戶擁有哪些角色,該角色在擁有哪些權(quán)限的方式實現(xiàn)。普通功能:分為管理員界面和學(xué)生界面。學(xué)生界面包括:如保修功能,送水功能,離返校簽到功能等大多數(shù)對用戶開發(fā)的功能。管理員界面:包括報修記錄管理,送水記錄管

23、理,學(xué)生離返校記錄管理,校工信息管理等與學(xué)生功能相對于的功能。該系統(tǒng)選擇了MySQL做為數(shù)據(jù)庫,開發(fā)工具是eclipse,jar包管理用了maven(本地有一個庫,項目通過maven管理來指向這個庫,實現(xiàn)了jar包的重用,節(jié)約硬盤空間,本地沒有的jar包,maven會去網(wǎng)上下)。該系統(tǒng)實現(xiàn)了權(quán)限管理,學(xué)生個人信息,送水,報修以及管理員管理學(xué)生信息,報修記錄,送水記錄等必需的功能,其操作簡單易懂,界面整潔,運(yùn)行比較穩(wěn)定,適用于學(xué)生宿舍管理。3.1 功能需求3.1.1 基本功能需求主要實現(xiàn)的是學(xué)生宿舍管理系統(tǒng),在設(shè)計該系統(tǒng)時,應(yīng)盡可能的貼近用戶,便于用戶操作。系統(tǒng)在實現(xiàn)上應(yīng)該具有如下功能:系統(tǒng)要求

24、用戶輸入正確的賬號和密碼才能進(jìn)入系統(tǒng)。系統(tǒng)應(yīng)提供管理員對權(quán)限的管理,分配用戶擁有的角色,以及各個角色對應(yīng)的權(quán)限。系統(tǒng)應(yīng)提供宿舍管理,就是可以給宿舍入住學(xué)生,也可以修改學(xué)生所在的宿舍號。系統(tǒng)有學(xué)生送水申請功能,管理員對送水記錄的管理。系統(tǒng)有學(xué)生報修申請功能,管理員對報修記錄的管理。系統(tǒng)應(yīng)該有學(xué)生個人信息查詢,修改功能,管理員有查詢所有學(xué)生信息的功能。系統(tǒng)因為保修涉及到聯(lián)系校工,管理員應(yīng)該能管理更新校工的信息。系統(tǒng)應(yīng)該完成密碼修改,賬號退出的實現(xiàn)。3.1.2 功能模塊宿舍管理系統(tǒng)主要實現(xiàn)的功能有:系統(tǒng)管理、權(quán)限管理、學(xué)生查詢、學(xué)生個人信息維護(hù)等。功能模塊圖如表3.1所示:宿舍管理系統(tǒng)系統(tǒng)管理登陸修

25、改密碼注銷權(quán)限管理 用戶管理 角色管理 模塊管理學(xué)生管理學(xué)生信息管理學(xué)生離返校管理校工管理送水管理報修管理宿舍管理學(xué)生個人信息個人信息離返校登記報修送水圖3.1 宿舍管理系統(tǒng)模塊表3.2 性能需求3.2.1數(shù)據(jù)庫選擇由于用到的數(shù)據(jù)表格不是很多,另外考慮到Oracle需要成本。并且該系統(tǒng)不大,小型數(shù)據(jù)庫更加適合該系統(tǒng),所以我選擇了MySQL作為該系統(tǒng)的數(shù)據(jù)庫。而且有SQLyog這類數(shù)據(jù)庫圖形化軟件,方便了數(shù)據(jù)庫的管理。4 系統(tǒng)設(shè)計4.1 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計(Database Design)是指根據(jù)業(yè)務(wù)的需求,在某一具體的數(shù)據(jù)庫管理系統(tǒng)上,設(shè)計數(shù)據(jù)庫的結(jié)構(gòu)和建立數(shù)據(jù)庫的過程。 數(shù)據(jù)庫設(shè)計與業(yè)務(wù)實

26、體類的字段的個數(shù)、多少、種類息息相關(guān)。并且數(shù)據(jù)庫的設(shè)計,是一個需要一步步完善缺點的過程。所以我在設(shè)計數(shù)據(jù)庫時,參考了其他系統(tǒng)對數(shù)據(jù)庫的設(shè)計,以及對字段的要求。4.1.1 物理設(shè)計從需求分析可以看出,本系統(tǒng)存在以下幾個實體:權(quán)限控制方面:模塊實體:id,排序號,模塊名稱,路徑資源實體:id,資源名稱,路徑,對應(yīng)的模塊id用戶實體:id,登錄名,密碼,姓名角色實體:id,角色名稱角色資源實體:id,角色id,資源id用戶角色實體:id,角色id,用戶id功能實現(xiàn)方面:學(xué)生實體:用于顯示學(xué)生的屬性,包括id,學(xué)生姓名、學(xué)生性別、學(xué)號、宿舍編號、入住日期等宿舍實體:用于顯示宿舍的信息,包括房間ID、應(yīng)

27、住人數(shù)、實住人數(shù)等校工實體:id,名字,編號,郵箱宿舍物品實體:id,物品編號,物品名稱離返校實體:id,學(xué)號,宿舍號,離校時間,返校時間報修實體:id,宿舍編號,物品編號,報修申請時間,原因,報修解決時間送水實體:id,宿舍編號,money,是否付款,是否送達(dá),申請?zhí)峤粫r間4.1.2 表/字段及表間關(guān)系設(shè)計用戶表 表4.1用戶信息表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件Keyididint20nP_K登錄名Login_namevarchar20n密碼passwordvarchar150n真實姓名read_namevarchar40n用戶角色表 表4.2用戶角色表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件

28、Keyididint20nP_K用戶idUser_idvarchar20n角色idRole_idvarchar20n角色表表4.3角色表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件Keyididint20nP_K角色名namevarchar40n角色資源表表4.4角色資源表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件Keyididint20nP_K角色idRole_idvarchar20n資源idResource_idvarchar20n模塊表表4.5模塊表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件Keyididint20nP_K排序號serialvarchar20n模塊名字namevarchar50n路徑urlvarc

29、har50n資源表表4.6資源表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件Keyididint20nP_K模塊idModule_idInt20n資源名字namevarchar50n路徑urlvarchar50n宿舍表表4.7宿舍表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件Keyididint20nP_K宿舍號dNovarchar20n應(yīng)住人數(shù)numberint10n校工表表4.8校工表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件Keyididint20nP_K郵箱emallvarchar20名字namevarchar50離返校記錄表表4.9離返校記錄表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件Keyididint20nP_K學(xué)

30、生學(xué)號sNovarchar20宿舍號dNovarchar50離開時間Left_timevarchar20回校時間Return_timevarchar20宿舍物品表表4.10宿舍物品表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件Keyididint20nP_K物品編號pNovarchar20物品名稱pNamevarchar40維修記錄表表4.11維修記錄表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件Keyididint20nP_K宿舍編號dNovarchar20物品編號pNoint20申請時間Apply_timevarchar20修理完成時間Solve_timevarchar20原因reasonvarchar50送

31、水表表4.1送水記錄表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件Keyididint20nP_K宿舍編號dNovarchar20金額moneyint20是否付款payvarchar200為未付款1已付款是否送到sendvarchar200沒送到1送到申請時間timevarchar50申請時間學(xué)生信息表表4.1學(xué)生信息表字段名數(shù)據(jù)類型數(shù)據(jù)長度是否為空條件Keyididint20nP_K性別sexvarchar4專業(yè)deptvarchar40宿舍號dnovarchar6入住時間Check_invarchar20登錄名學(xué)號Login_nameint204.2 模塊設(shè)計用戶在學(xué)生宿舍管理系統(tǒng)成功登錄后,宿舍管

32、理系統(tǒng)的接口會將傳過來的用戶信息進(jìn)行核對。并查詢到該用戶所擁有的角色,角色所擁有的模塊以及資源,并進(jìn)行相關(guān)排序。再進(jìn)行加密后的密碼與賬號的查找對比。確認(rèn)登陸信息無誤后,然后再跳轉(zhuǎn)到登陸成功頁面(index頁面),并頁面上顯示出他相對應(yīng)的,擁有訪問權(quán)限的模塊。4.2.1 權(quán)限管理模塊該模塊主要是為了方便非程序員的系統(tǒng)管理者管理各個用戶的權(quán)限設(shè)計的。主要分為:用戶管理模塊,角色管理模塊,模塊管理模塊用戶管理模塊:管理員可以查詢到全部用戶,包括管理員本人??梢圆樵冇脩羲鶕碛械慕巧?,刪除角色,修改角色(一個用戶可以擁有多個角色)。 角色管理模塊:管理員可以查詢到系統(tǒng)全部的角色,目前只有學(xué)生、管理員。管

33、理員可以增加角色,刪除角色,修改各個角色的權(quán)限。從而實現(xiàn)對用戶的權(quán)限控制。模塊管理模塊:可以查詢系統(tǒng)的父類模塊,父類模塊下的各個子類模塊,每個子類模塊所擁有的資源。方便增加、修改或刪除每個模塊相對應(yīng)的資源。4.2.2 學(xué)生管理模塊該模塊主要實現(xiàn):學(xué)生信息管理模塊,離返校管理模塊,報修管理模塊,校工管理模塊,送水管理模塊,宿舍管理模塊。學(xué)生信息管理模塊:通過學(xué)號,宿舍號查找學(xué)生,可對學(xué)生添加,刪除,修改學(xué)生信息。離返校管理模塊:通過學(xué)號,宿舍號查找學(xué)生,可對離返校記錄刪除,修改。報修管理模塊:通過時間查找報修記錄,管理員課刪除記錄,或試該記錄修理成功。校工管理模塊:添加校工,修改校工信息,刪除校

34、工。送水記錄管理模塊:按是否送達(dá),是否付款查詢,可編輯,刪除。是否付款,是否送達(dá)由管理員管理。宿舍管理模塊:按照宿舍號查詢,可添加宿舍,編輯、刪除宿舍??刹榭丛撍奚嵋讶胱〉膶W(xué)生??蔀樵撍奚崽砑訉W(xué)生。4.2.3 學(xué)生個人信息模塊該模塊分為:個人信息模塊,離返校模塊,報修申請模塊,送水申請模塊個人信息模塊:查看個人的信息,并可對學(xué)號、入住時間以外的信息進(jìn)行修改。學(xué)生離返校模塊:學(xué)生可在網(wǎng)上實現(xiàn)離校,返校的登記報修功能模塊:學(xué)生保修,只需填寫損壞物件、原因,選擇維修師傅。提交后維修人員(校工)可收到郵件。郵件內(nèi)容包括宿舍號,損壞物品,損壞原因。校工的相關(guān)信息由管理員管理。送水功能模塊:選擇送水校工。

35、提交后,校工會收到郵件提醒。郵件包括需要送水的宿舍。校工的相關(guān)信息由管理員管理。4.2.4 系統(tǒng)模塊注銷模塊:退出系統(tǒng)并清空緩存。修改密碼模塊:填寫新舊密碼(舊密碼需要填寫2次),實現(xiàn)修改。新舊密碼的加密在頁面上完成,具體比較在后臺完成。登錄模塊:填寫賬號,密碼,驗證碼登錄。賬號為學(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)服務(wù)端 操作系統(tǒng):Microsoft Windows 7數(shù)據(jù)庫系統(tǒng):MySQL(2)客戶端開發(fā)工具:Eclipse容器:Jetty開發(fā)語言:Java,JavaScript,Velocity2、系統(tǒng)硬件環(huán)境(1

36、)服務(wù)端:CPU:酷睿I5,內(nèi)存4G,硬盤500G;5.2 系統(tǒng)功能模塊的實現(xiàn)宿舍管理系統(tǒng)主界面圖5.1 宿舍管理系統(tǒng)主界面5.2.1 權(quán)限管理模塊用戶管理根據(jù)登錄名(學(xué)號),和用戶姓名來查詢用戶??煽吹絠d,登錄名,加密后的密碼。圖5.2 用戶界面編輯用戶角色可管理該用戶擁有的角色,已經(jīng)用戶的姓名,登錄名。 圖5.3 用戶修改角色界面代碼部分修改用戶角色界面:顯示(查詢用戶信息,用戶擁有的權(quán)限,所有權(quán)限傳給頁面):AdmUser admUser = new AdmUser();List all = admUserService.selectAllRole();admUser.setId(In

37、teger.valueOf(id);List admUserList = admUserService.selectRoleByUserID(admUser);AdmUser user = admUserService.selectByPrimaryKey(Integer.valueOf(id);modelMap.addAttribute(user, user);modelMap.addAttribute(all, all);modelMap.addAttribute(item, admUserList);修改用戶信息(修改用戶個人信息,以及用戶角色權(quán)限):int n = admUserSer

38、vice.updateByKey(admUser);int a = admUserService.updateUser(id, roleId,admUser.getLoginName();角色管理查詢?nèi)拷巧?,可添加角色,刪除角色,修改角色權(quán)限。圖5.4 角色管理界面修改角色權(quán)限:管理該角色,在每個模塊下所擁有的權(quán)限。 圖5.5 角色修改權(quán)限界面代碼部分角色權(quán)限更改:AdmRoleController.java顯示:AdmModule admModule = new AdmModule();List all = admRoleService.selectAll();admModule.setI

39、d(Integer.valueOf(id);List admRoleList = admRoleService.selectByID(admModule);AdmRole admRole = admRoleService.selectRole(Integer.parseInt(id);modelMap.addAttribute(item, admRoleList);modelMap.addAttribute(all, all);modelMap.addAttribute(admRole, admRole);修改:List admModuleList = new ArrayList();if(r

40、esourceId != null)for (String resId : resourceId) if (null != resId & != resId) AdmModule admModule = new AdmModule();if (admRole.getName() = null) admModule.setRoleId(Integer.parseInt(roleId);admModule.setAdmName(admName); else admModule.setAdmName(admRole.getName();admModule.setResourceId(Integer.

41、parseInt(resId);admModuleList.add(admModule);int n = admRoleService.edit(admModuleList);拿到權(quán)限下的每個資源,并傳到serviceAdmRole adm = new AdmRole();adm.setId(admModuleList.get(0).getRoleId();adm.setName(admModuleList.get(0).getAdmName();admRoleMapper.updateByPrimaryKey(adm);/ 改角色名字admRoleResourceMapper.deleteB

42、yRoleId(admModuleList.get(0).getRoleId();/ 去舊權(quán)限int i = 0;for (AdmModule amd : admModuleList) i = i + admRoleResourceMapper.insertRolrResource(amd);/ 新權(quán)限r(nóng)eturn i;在serviceImp刪除該角色舊權(quán)限,添加新權(quán)限。具體的語句: insert into adm_role_resource ( role_id,resource_id, create_person, modified_person, gmt_create, gmt_modif

43、ied) values (#roleId,jdbcType=INTEGER, #resourceId,jdbcType=INTEGER, #admName,jdbcType=VARCHAR,#admName,jdbcType=VARCHAR, NOW(), NOW() delete from adm_role_resource where role_id = #id,jdbcType=INTEGER模塊管理查詢系統(tǒng)的全部模塊,可修改模塊,添加子模塊,刪除模塊。圖5.6 模塊管理界面查詢?nèi)磕K,并按字符排序。查詢結(jié)果返回給頁面。代碼:查詢?nèi)磕K,并按serial字段排序List admMod

44、uleList = admModuleMapper.selectByExample(example);Collections.sort(admModuleList, new Comparator() public int compare(AdmModule arg0, AdmModule arg1) return (arg0.getSerial().compareTo(arg1.getSerial(););修改模塊資源:顯示該模塊擁有哪些資源,沒有哪些資源。5.2.2 宿舍管理模塊宿舍管理查詢根據(jù)宿舍號進(jìn)行查詢。關(guān)聯(lián)學(xué)生表,分別查詢出該宿舍,宿舍號,應(yīng)住人數(shù),實住人數(shù)圖5.7 住宿界面代碼部分

45、宿舍頁面:dormitory.vm控制層:DormitoryController用到的接口DormitoryService int deleteByKey(Integer id);/根據(jù)id刪除 int insert(Dormitory record);/添加宿舍 List selectByExample(Dormitory example);/按條件查找宿舍 Dormitory selectByPrimaryKey(Integer id);/按id查 int updateByKey(Dormitory record);/更新信息DormitoryMapperint deleteByPrima

46、ryKey(Integer id);/刪除int insert(Dormitory record);/添加List selectByExample(Dormitory example);/查找Dormitory selectByPrimaryKey(Dormitory dor);/查找int updateByPrimaryKeySelective(Dormitory record);/更新給房間添加學(xué)生給該房間添加學(xué)生,同時添加一個用戶,該用戶擁有學(xué)生角色。圖5.8 給房間添加學(xué)生界面查找該宿舍入住的學(xué)生根據(jù)該宿舍的宿舍號,查詢該宿舍入住的學(xué)生,同時可以修改該學(xué)生相關(guān)信息。圖5.9 辦理退宿界

47、面5.2.3 學(xué)生信息管理模塊學(xué)生信息查詢通過學(xué)號、宿舍號查詢學(xué)生,可對學(xué)生信息進(jìn)行相關(guān)修改。以及填寫學(xué)生,刪除學(xué)生。圖5.10 房間查詢界面代碼部分學(xué)生信息控制層:StudentInfoController.java界面:studentInfo.vm用到的接口:studentInfoService方法: List selectByStudent(StudentInfo student);/根據(jù)學(xué)號,宿舍號查詢學(xué)生studentInfoMapper方法List selectByStudent(StudentInfo student);/具體的查詢語句添加學(xué)生需要輸入學(xué)生的登錄名(學(xué)號),密碼,

48、真實姓名,選擇身份,性別,專業(yè),宿舍號。提交后會生成相關(guān)用戶,該用戶擁有學(xué)生權(quán)限。密碼加密在頁面上完成。圖5.11 添加學(xué)生界面用到的接口studentInfoService.javaadmUserService.javaservice方法 int insert(StudentInfo record);/添加一個學(xué)生int insert(AdmUser record);/添加一個用戶int updateUser(String id, String roleId, String loginName);admUserMappermapper方法 int insert(StudentInfo rec

49、ord);int insert(AdmUser record);int selectLastInsertID();int deleteUserRole(Integer id);int insertUserRole(AdmUser admUser);刪除學(xué)生信息代碼部分StudentInfoService方法int deleteByKey(Integer id);/根據(jù)學(xué)號刪除學(xué)生StudentInfoMapperint deleteByPrimaryKey(Integer id);/到xml文件里,調(diào)用具體的刪除語句 修改學(xué)生信息修改學(xué)生信息,包括專業(yè),宿舍號,入住時間,性別(為了防止輸錯,所

50、以大多信息都可以修改)。密碼信息有專門頁面修改。圖5.12 修改學(xué)生界面代碼部分StudentInfoService服務(wù)層方法StudentInfo selectPersion(Integer id);/根據(jù)學(xué)號查到該學(xué)生的個人信息int updateByKey(StudentInfo record);/修改該學(xué)生的個人信息StudentInfoMapperStudentInfo selectPersion(StudentInfo stu);int updateByPrimaryKeySelective(StudentInfo record);5.2.4 離返校管理模塊離返校管理查詢按住學(xué)號,

51、宿舍號來查詢所以學(xué)生離返校記錄,管理員可修改離返校時間,或刪除記錄圖5.13離返校管理界面代碼部分DioStuentAlt.java用到的接口leaveSchoolService服務(wù)層方法 List selectByExample(LeaveSchool example);/按照學(xué)號,宿舍號查詢離返校記錄leaveSchoolMapper方法 List selectByExample(LeaveSchool example);/5.2.5 離返校模塊學(xué)生個人離返校記錄從緩存中得到學(xué)生個人信息,查詢該學(xué)生全部的離返校記錄,學(xué)生可以自主離校返校。該學(xué)生離返校記錄生成,需要的個人信息在賬號緩存中得到

52、。離返校時間為點擊離返校功能的當(dāng)時時間。時間格式為(2015-04-04 15:00:00)圖5.14 學(xué)生個人離返校界面代碼部分:用戶添加:stuLeaveSchool.java查詢個人已有的離返校記錄LeaveSchool example=new LeaveSchool();AdmUser user = (AdmUser) request.getSession().getAttribute(admuser);example.setsNo(user.getLoginName();/得到用戶學(xué)生個人相關(guān)信息List leaveSchoolList = leaveSchoolService.se

53、lectByExample(example);modelMap.addAttribute(items, leaveSchoolList);離校接口添加一條離校記錄LeaveSchoolServiceleaveSchoolMapper方法:LeaveSchoolService : int insert(LeaveSchool record);/服務(wù)層LeaveSchoolMapper : int insert(LeaveSchool record);/Mapper具體的查詢語句返校接口對一次離校記錄,添加返校時間(時間為當(dāng)時時間,不需要人為輸入)LeaveSchoolServiceleaveSc

54、hoolMapper方法:LeaveSchoolService : int updateById(String id);/服務(wù)層LeaveSchoolMapper :int updateById(String id);Mapper5.3 數(shù)據(jù)庫插件SQLyog因為在系統(tǒng)開發(fā)時要對數(shù)據(jù)庫進(jìn)行操作,所以用了SQLyog這個插件。該軟件是一款易于使用的、簡潔而快速的圖形化管理MYSQL數(shù)據(jù)庫的工具。它能夠在任何地點有效地管理你的數(shù)據(jù)庫。因為原先都是在控制臺輸入sql語句,來實驗語句是否存在錯誤。而使用SQLyog的話,輸入Ip,賬號,密碼就可遠(yuǎn)程連接數(shù)據(jù)庫,并對數(shù)據(jù)庫進(jìn)行增刪改查。界面效果簡單整潔,

55、軟件穩(wěn)定方便。該軟件因為免費(fèi),小巧等原因,常用于涉及MYSQL數(shù)據(jù)庫的項目開發(fā)之中。圖5.15 SQLyog登陸界面5.4 Maven一款項目管理工具,使用他的原因是安裝簡單,節(jié)省硬盤空間。主要功能是:Jar包的管理,Maven在電腦本地存在一個Jar庫,項目通過Maven組件指向Jar包。當(dāng)電腦上,項目過多時,項目與項目之間會有重復(fù)的Jar包,占了不必要的硬盤空間。而使用了Maven后Jar包可以重用,因為每一個項目上有一個路徑,指向本地庫中的Jar。如果本地庫沒有該項目所需要的Jar包,那么右鍵項目,選中maven,update Project。Maven會去maven倉庫網(wǎng)站(/sear

56、ch)上自動下載Jar包。另外,Maven默認(rèn)就配置了apache的中央倉庫,所以安裝maven后只需要設(shè)置本地庫,不需要人手動設(shè)置遠(yuǎn)程庫。5.5 系統(tǒng)測試5.5.1 系統(tǒng)測試的目的一個未經(jīng)多次考驗的系統(tǒng),難免存在各種各樣的問題。查詢條件傳遞的不正確,查詢結(jié)果頁面渲染不好,頁面之間跳轉(zhuǎn)出錯,頁面功能沒完全實現(xiàn)等等。所以,每完成一個功能后,都需要程序員進(jìn)行多次調(diào)試,再交由測試人員進(jìn)行調(diào)試。以免出現(xiàn)不必要的麻煩,影響客戶體驗。5.5.2 系統(tǒng)的測試環(huán)境測試數(shù)據(jù)的方法(1) 數(shù)據(jù)輸入選擇幾組數(shù)據(jù)進(jìn)行添加操作,再查詢是否添加成功。 (2) 數(shù)據(jù)查詢數(shù)據(jù)輸入后,通過數(shù)據(jù)查詢,查看查詢結(jié)果是否符合輸入的查詢條件,以確認(rèn)查詢的正確性。 (3) 數(shù)據(jù)的刪除通過對數(shù)據(jù)的刪除,然后進(jìn)行查詢,驗證數(shù)據(jù)是否已經(jīng)成功刪除。 (4) 數(shù)據(jù)

溫馨提示

  • 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

提交評論