![淺談學(xué)生公寓管理系統(tǒng)設(shè)計(jì)_第1頁](http://file4.renrendoc.com/view/07d3804d5b6111275846db87da7bfd38/07d3804d5b6111275846db87da7bfd381.gif)
![淺談學(xué)生公寓管理系統(tǒng)設(shè)計(jì)_第2頁](http://file4.renrendoc.com/view/07d3804d5b6111275846db87da7bfd38/07d3804d5b6111275846db87da7bfd382.gif)
![淺談學(xué)生公寓管理系統(tǒng)設(shè)計(jì)_第3頁](http://file4.renrendoc.com/view/07d3804d5b6111275846db87da7bfd38/07d3804d5b6111275846db87da7bfd383.gif)
![淺談學(xué)生公寓管理系統(tǒng)設(shè)計(jì)_第4頁](http://file4.renrendoc.com/view/07d3804d5b6111275846db87da7bfd38/07d3804d5b6111275846db87da7bfd384.gif)
![淺談學(xué)生公寓管理系統(tǒng)設(shè)計(jì)_第5頁](http://file4.renrendoc.com/view/07d3804d5b6111275846db87da7bfd38/07d3804d5b6111275846db87da7bfd385.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
淺談學(xué)生公寓管理系統(tǒng)設(shè)計(jì)【摘要】隨著計(jì)算機(jī)信息管理的普及和發(fā)展,信息自動(dòng)化管理已成為必然趨勢。一個(gè)能大大提高學(xué)生宿舍管理績效的管理系統(tǒng)尤為重要,不僅可以方便各方相關(guān)人員在宿舍管理的信息交流、查詢、修改,也極大方便了管理工作,降低相關(guān)管理人員的管理工作量。基于以上情況,本文提出了開發(fā)學(xué)生公寓管理系統(tǒng)的方案,方案采用Jsp及MySQL,使用eclipse開發(fā)完成,系統(tǒng)支持三大用戶類型,分為系統(tǒng)管理員、宿舍管理員以及學(xué)生,登錄時(shí)通過用戶識(shí)別跳轉(zhuǎn)至各自用戶類型對(duì)應(yīng)的用戶頁面。系統(tǒng)管理員擁有最高權(quán)限,宿舍管理員、學(xué)生的管理及賬號(hào)的創(chuàng)建均由系統(tǒng)管理員完成。同時(shí),系統(tǒng)還具有修改密碼、學(xué)生管理、宿舍樓管理、宿舍管理員管理、缺寢記錄管理等功能,其中,系統(tǒng)管理員幾乎擁有全部功能,宿舍管理員擁有學(xué)生查看功能、缺寢記錄管理功能和修改密碼功能,學(xué)生缺寢記錄查看功能和修改密碼功能。整個(gè)系統(tǒng)層次結(jié)構(gòu)簡潔明了,權(quán)限分明,對(duì)于提高學(xué)生公寓信息的管理效率有著極大的助益?!娟P(guān)鍵詞】Jsp;MySQL;eclipse;學(xué)生公寓管理DiscussiononthedesignofstudentapartmentmanagementsystemWiththepopularizationanddevelopmentofcomputerinformationmanagement,informationautomationmanagementhasbecomeaninevitabletrend.Amanagementsystemthatcangreatlyimprovethemanagementperformanceofstudentdormitoryisparticularlyimportant.Itcannotonlyfacilitatetheinformationexchange,queryandmodificationofrelevantpersonnelindormitorymanagement,butalsogreatlyfacilitatethemanagementworkandreducethemanagementworkloadofrelevantmanagementpersonnel.Basedontheabovesituation,thispaperproposesaplantodevelopastudentapartmentmanagementsystem.TheplanadoptsJspandMySQLandisdevelopedbyeclipse.Thesystemsupportsthreetypesofusers,namelysystemadministrator,dormitoryadministratorandstudent.Systemadministratorhasthehighestauthority,dormitoryadministrator,studentmanagementandaccountcreationarecompletedbythesystemadministrator.Atthesametime,thesystemalsohaschangepasswords,studentmanagement,dormitorymanagement,dormitorymanagement,lackoflayrecordsmanagement,andotherfunctions,thesystemadministratortohavenearlyallfunctions,thedormitoryadministratorhasstudentsviewthesleepfunction,lackofrecordmanagementfunctionandmodifythepasswordfunction,studentslackoflayrecordstocheckthefunctionandmodifythepasswordfunction.Thewholesystemhasasimplehierarchicalstructureandclearauthority,whichisofgreathelptoimprovethemanagementefficiencyofstudentapartmentinformation.Keywords:Studentapartmentmanagement;jsp;MySQL;eclipse目錄1系統(tǒng)總體設(shè)計(jì) 11.1總體思路 11.2系統(tǒng)總體結(jié)構(gòu)規(guī)劃 11.2.1系統(tǒng)管理員功能結(jié)構(gòu)圖 21.2.2宿舍管理員功能結(jié)構(gòu)圖 21.2.3學(xué)生功能結(jié)構(gòu)圖 31.3數(shù)據(jù)庫設(shè)計(jì) 41.3.1數(shù)據(jù)庫表需求分析 41.3.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì) 41.3.3數(shù)據(jù)庫表的規(guī)劃 62系統(tǒng)詳細(xì)設(shè)計(jì) 112.1登錄流程圖 112.2系統(tǒng)管理員操作流程圖 112.2.1宿舍管理員管理操作流程圖 122.2.2學(xué)生管理操作流程圖 132.2.3宿舍樓管理流程圖 142.2.4缺寢記錄流程圖 153系統(tǒng)實(shí)現(xiàn) 173.1開發(fā)環(huán)境 173.2代碼實(shí)現(xiàn)結(jié)構(gòu) 173.3界面設(shè)計(jì)與實(shí)現(xiàn) 173.3.1登錄界面的設(shè)計(jì)與實(shí)現(xiàn) 173.3.2用戶界面的設(shè)計(jì)與實(shí)現(xiàn) 203.4數(shù)據(jù)庫實(shí)現(xiàn) 223.5功能實(shí)現(xiàn) 233.5.1登錄模塊的設(shè)計(jì)與實(shí)現(xiàn) 233.5.2宿舍管理員管理模塊的設(shè)計(jì)與實(shí)現(xiàn) 273.5.3學(xué)生管理模塊的設(shè)計(jì)與實(shí)現(xiàn) 283.5.4宿舍樓管理模塊的設(shè)計(jì)與實(shí)現(xiàn) 303.5.5缺寢記錄模塊的設(shè)計(jì)與實(shí)現(xiàn) 323.5.6修改密碼模塊的設(shè)計(jì)與實(shí)現(xiàn) 373.5.7首頁與退出系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 384系統(tǒng)測試 394.1測試的目的 394.2黑盒測試 394.3測試用例的設(shè)計(jì) 394.3.1登錄模塊測試 404.3.2宿舍管理員管理模塊測試 514.3.3學(xué)生管理模塊測試 544.3.4宿舍樓管理模塊測試 574.3.5缺寢記錄管理模塊測試 604.3.6修改密碼測試 62結(jié)論 65參考文獻(xiàn) 66致謝 671系統(tǒng)總體設(shè)計(jì)1.1總體思路該系統(tǒng)面對(duì)的對(duì)象有系統(tǒng)管理員、學(xué)生和宿舍管理員,三者通過各自的賬號(hào)進(jìn)入該系統(tǒng),然后完成各自需要完成的操作。其中,學(xué)生可以查詢、提交信息及修改密碼;宿舍管理員可以查看學(xué)生信息、公寓信息及提交考勤信息;系統(tǒng)管理員可以管理宿管、樓宇、學(xué)生信息等。因此,在系統(tǒng)實(shí)現(xiàn)之前,需要先確定不同用戶類型之間的權(quán)限。這需要對(duì)系統(tǒng)做詳細(xì)的需求分析,確定每個(gè)用戶類型在系統(tǒng)內(nèi)應(yīng)該擁有的操作權(quán)限,并且在設(shè)計(jì)數(shù)據(jù)庫的時(shí)候,我們需要給每個(gè)實(shí)體設(shè)計(jì)合適的屬性。1.2系統(tǒng)總體結(jié)構(gòu)規(guī)劃學(xué)生公寓管理系統(tǒng)整體上包括了四個(gè)主要模塊:登陸模塊、系統(tǒng)管理員模塊、宿舍管理員模塊、學(xué)生模塊。模塊之內(nèi)亦存在許多功能,因用戶的權(quán)限不同而擁有的功能不同。本管理系統(tǒng)的系統(tǒng)總體規(guī)劃如圖1.1所示:圖1.1系統(tǒng)總體結(jié)構(gòu)規(guī)劃圖因用戶角色的權(quán)限不同,各用戶模塊的功能結(jié)構(gòu)圖也有其不同細(xì)分之處。1.2.1系統(tǒng)管理員功能結(jié)構(gòu)圖系統(tǒng)管理人員的用戶角色,能夠?qū)λ奚針?、宿舍管理員、學(xué)生的個(gè)人信息進(jìn)行查看、添加、修改、刪除,同時(shí)能夠?yàn)樗奚針欠峙渌奚峁芾韱T以及對(duì)學(xué)生缺寢記錄的查找和刪除。如圖1.2所示:圖1.2系統(tǒng)管理員功能結(jié)構(gòu)圖1.2.2宿舍管理員功能結(jié)構(gòu)圖宿舍管理人員的用戶角色,能夠查看、學(xué)生所在寢室、聯(lián)系電話信息等,可以添加學(xué)生的缺寢記錄信息,能增加、修改、刪除、查詢學(xué)生的缺寢記錄。如圖1.3所示:圖1.3宿舍管理員功能結(jié)構(gòu)圖1.2.3學(xué)生功能結(jié)構(gòu)圖學(xué)生的用戶角色,能夠查看個(gè)人的考勤記錄和修改密碼。如圖1.4所示:圖1.4學(xué)生功能結(jié)構(gòu)圖1.3數(shù)據(jù)庫設(shè)計(jì)1.3.1數(shù)據(jù)庫表需求分析本系統(tǒng)由于不止擁有單一類型的用戶,服務(wù)的對(duì)象包括系統(tǒng)管理員、宿舍管理員和學(xué)生。用戶在使用系統(tǒng)時(shí),首先需要在登錄頁面輸入用戶名和密碼,驗(yàn)證通過后才能進(jìn)入系統(tǒng)。不同數(shù)據(jù)實(shí)體需要包括的屬性不同:用戶實(shí)體的屬性需要包括用戶編號(hào)、姓名、用戶名、密碼、性別、聯(lián)系電話等等;宿舍實(shí)體的屬性需要包括宿舍編號(hào)、宿舍名字等等;記錄實(shí)體的屬性需要包括記錄編號(hào)、學(xué)生姓名、所在宿舍樓等等。針對(duì)不同的數(shù)據(jù)對(duì)象,我們需要設(shè)計(jì)其各自的數(shù)據(jù)概念結(jié)構(gòu)。1.3.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)系統(tǒng)管理員E-R結(jié)構(gòu)圖系統(tǒng)管理員需要具有的屬性為:系統(tǒng)管理員用戶編號(hào),用戶名,密碼,系統(tǒng)管理員姓名,性別,電話,如圖1.5所示:圖1.5系統(tǒng)管理員E-R結(jié)構(gòu)圖宿舍管理員E-R結(jié)構(gòu)圖宿舍管理員需要具有的屬性為:宿舍管理員用戶編號(hào),用戶名,密碼,樓棟編號(hào),宿舍管理員姓名,性別,電話,如圖1.6所示:圖1.6宿舍管理員E-R結(jié)構(gòu)圖學(xué)生E-R結(jié)構(gòu)圖學(xué)生需要具有的屬性為:學(xué)生編號(hào),學(xué)號(hào),密碼,姓名,樓棟編號(hào),宿舍號(hào),性別,電話,如圖1.7所示:圖1.7學(xué)生E-R結(jié)構(gòu)圖宿舍樓棟E-R結(jié)構(gòu)圖宿舍樓棟需要具有的屬性為:樓棟編號(hào),宿舍樓名字,宿舍樓簡介,如圖1.8所示:圖1.8宿舍樓棟E-R結(jié)構(gòu)圖缺寢記錄E-R結(jié)構(gòu)圖缺寢記錄需要具有的屬性為:記錄編號(hào),缺寢日期,學(xué)生姓名,學(xué)生學(xué)號(hào),宿舍樓棟編號(hào),宿舍號(hào),電話,備注,如圖1.9所示:圖1.9缺寢記錄E-R結(jié)構(gòu)圖1.3.3數(shù)據(jù)庫表的規(guī)劃通過對(duì)數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì),我們需要將概念模型轉(zhuǎn)換為管理系統(tǒng)支持的數(shù)據(jù)模型。1.系統(tǒng)管理員信息表(admin)該表用來保存系統(tǒng)管理員的相關(guān)信息,包括系統(tǒng)管理員編號(hào)(adminId)、系統(tǒng)管理員姓名(name)、用戶名(username)、密碼(password)、性別(sex)、聯(lián)系電話(tel)。其中系統(tǒng)管理員編號(hào)是主鍵(adminId)。如下表1.1所示:表1.1系統(tǒng)管理員信息表屬性名稱數(shù)據(jù)類型是否允許缺省屬性介紹Adminidint否系統(tǒng)管理員編號(hào)Passwordvarchar是密碼Usernamevarchar是用戶名Namevarchar是系統(tǒng)管理員姓名Sexvarchar是性別Telvarchar是聯(lián)系電話2.宿舍管理員信息表(dormmanager)該表用來保存宿舍管理員的相關(guān)信息,包括宿舍管理員編號(hào)(dormManId)、用戶名(username)、密碼(password)、宿舍樓編號(hào)(dormBuildId)、宿舍管理員姓名(name)、性別(sex)、聯(lián)系電話(tel)。其中宿舍管理員編號(hào)是主鍵(dormManId)。如下表1.2所示:表1.2宿舍管理員信息表屬性名稱數(shù)據(jù)類型是否允許缺省屬性介紹Dormmanidint否宿舍管理員編號(hào)Passwordvarchar是密碼Usernamevarchar是用戶名Dormbuildidint是宿舍樓編號(hào)Namevarchar是宿舍管理員姓名Sexvarchar是性別Telvarchar是聯(lián)系電話3.學(xué)生信息表(student)該表用來保存學(xué)生的相關(guān)信息,包括學(xué)生編號(hào)(studentId)、學(xué)生學(xué)號(hào)(stuNumber)、密碼(password)、姓名(name)、宿舍樓編號(hào)(dormBuildId)、宿舍號(hào)(dormName)、性別(sex)、聯(lián)系電話(tel)。其中系統(tǒng)管理員編號(hào)是主鍵(studentId)。如下表1.3所示:表1.3學(xué)生信息表屬性名稱數(shù)據(jù)類型是否允許缺省屬性介紹Studentidint否學(xué)生編號(hào)Stunumbervarchar是學(xué)生學(xué)號(hào)Passwordvarchar是密碼namevarchar是姓名Dormbuildidint是宿舍樓編號(hào)Dormnamevarchar是宿舍號(hào)Sexvarchar是性別Telvarchar是聯(lián)系電話4.宿舍信息表(dorm)該表用來保存宿舍的相關(guān)信息,包括宿舍編號(hào)(dormId)、宿舍樓編號(hào)(dormBuildId)、宿舍號(hào)(dormName)、宿舍類型(dormType)、宿舍人數(shù)(dormNumber)、宿舍聯(lián)系電話(dormTel)。其中系統(tǒng)管理員編號(hào)是主鍵(dormId)。如下表1.4所示:表1.4宿舍信息表屬性名稱數(shù)據(jù)類型是否允許缺省屬性介紹Dormidint否宿舍編號(hào)Dormbuildidint是宿舍樓編號(hào)Dormnamevarchar是宿舍號(hào)Dormtypevarchar是宿舍類型Dormnumberint是宿舍人數(shù)dormtelvarchar是聯(lián)系電話5.宿舍樓信息表(dormbuild)該表用來保存宿舍樓的相關(guān)信息,包括、宿舍樓名稱(dormBuildName)、宿舍樓簡介(dormBuildDetail)。其中宿舍樓編號(hào)是主鍵(dormBuildId)。如下表1.5所示:表1.5宿舍信息表屬性名稱數(shù)據(jù)類型是否允許缺省屬性介紹Dormbuildidint否宿舍樓編號(hào)Dormbuildnameint是宿舍樓名稱Dormbuilddetailvarchar是宿舍樓簡介6.缺寢記錄信息表(record)該表用來記錄學(xué)生缺寢的相關(guān)信息,包括記錄編號(hào)(recordId)、宿舍樓編號(hào)(dormBuildId)、宿舍號(hào)(dormName)、學(xué)生學(xué)號(hào)(studentNumber)、學(xué)生姓名(studentName)、日期(date)、備注(detail)。其中記錄編號(hào)是主鍵(recordId)。如下表1.6所示:表1.6宿舍信息表屬性名稱數(shù)據(jù)類型是否允許缺省屬性介紹Recordedint否記錄編號(hào)Dormbuildidint是宿舍樓編號(hào)dormnamevarchar是宿舍號(hào)Studentnumbervarchar是學(xué)生學(xué)號(hào)Studentnamevarchar是學(xué)生姓名Datedate是日期Detailvarchar是備注2系統(tǒng)詳細(xì)設(shè)計(jì)2.1登錄流程圖當(dāng)用戶打開登錄界面時(shí),用戶需要輸入正確的用戶名和對(duì)應(yīng)的密碼,并選擇登錄用戶的類型,用戶名和密碼都不允許為空。當(dāng)用戶名和密碼均輸入正確,且符合所選的用戶類型,即可登錄成功進(jìn)入系統(tǒng)的管理界面。用戶依照不同的管理權(quán)限執(zhí)行不同的操作。用戶登錄系統(tǒng)流程圖如圖2.1所示。圖2.1登錄流程圖2.2系統(tǒng)管理員操作流程圖當(dāng)系統(tǒng)管理員進(jìn)入系統(tǒng)管理頁面時(shí),在用戶管理頁面下?lián)碛校核奚峁芾韱T管理功能、宿舍樓管理功能、學(xué)生管理功能、缺寢記錄功能、修改密碼功能、退出系統(tǒng)功能,系統(tǒng)管理員需要選擇對(duì)應(yīng)的功能,才可以繼續(xù)下一步操作,如圖2.2所示。圖2.2系統(tǒng)管理員操作流程圖2.2.1宿舍管理員管理操作流程圖當(dāng)系統(tǒng)管理員進(jìn)入到宿舍管理員的管理界面,可見一個(gè)表格形式的列表,該列表展示了現(xiàn)有的宿舍管理員姓名以及各自管理的宿舍樓、聯(lián)系電話等信息。系統(tǒng)管理員可以在此頁面對(duì)宿舍管理員進(jìn)行添加、修改以及刪除操作,系統(tǒng)管理員需要選擇對(duì)應(yīng)的功能,才可以繼續(xù)下一步操作,如圖2.3所示。圖2.3宿舍管理員管理操作流程圖2.2.2學(xué)生管理操作流程圖當(dāng)系統(tǒng)管理員進(jìn)入學(xué)生的管理界面,可以看到一個(gè)表格形式的列表,該列表展示了現(xiàn)有的學(xué)生姓名以及各自居住的宿舍樓、寢室、聯(lián)系電話等信息。系統(tǒng)管理員可以在此頁面對(duì)學(xué)生進(jìn)行添加、修改以及刪除操作,系統(tǒng)管理員需要選擇對(duì)應(yīng)的功能,才可以急需下一步操作,如圖2.4所示。圖2.4學(xué)生管理操作流程圖2.2.3宿舍樓管理流程圖當(dāng)系統(tǒng)管理員進(jìn)入宿舍樓的管理界面,可見一個(gè)表格形式的列表,該列表展示了現(xiàn)有的宿舍樓以及各自的簡介等信息。系統(tǒng)管理員可以在此頁面對(duì)宿舍樓進(jìn)行添加、修改、刪除以及查看管理員操作,系統(tǒng)管理員需要選擇對(duì)應(yīng)的功能,才可以進(jìn)行下一步操作,其流程圖如圖2.5所示:圖2.5宿舍樓管理流程圖2.2.4缺寢記錄流程圖系統(tǒng)管理員進(jìn)入缺寢記錄界面,可見一個(gè)表格形式的列表,該列表展示了現(xiàn)有的學(xué)生學(xué)號(hào)、學(xué)生姓名、缺寢日期等信息。系統(tǒng)管理員在此頁面僅可對(duì)學(xué)生的缺寢記錄進(jìn)行刪除操作,系統(tǒng)管理員需要選擇對(duì)應(yīng)的記錄,才可以進(jìn)行下一步操作,其流程圖如圖2.6所示。圖2.6缺寢記錄流程圖
3系統(tǒng)實(shí)現(xiàn)3.1開發(fā)環(huán)境操作系統(tǒng):Windows764bit。數(shù)據(jù)庫軟件:MySQLEnterpriseEdition。運(yùn)行環(huán)境:ApacheTomcat7.0。分辨率:最佳分辨率為1920*1080。3.2代碼實(shí)現(xiàn)結(jié)構(gòu)在系統(tǒng)的實(shí)現(xiàn)設(shè)計(jì)過程中,由于涉及的頁面效果及頁面功能較多,因此將頁面的顯示與頁面的功能操作分離,src文件夾里存放Java代碼,其中分為dao層(數(shù)據(jù)訪問層)、filter層(過濾層)、model層(實(shí)體層)、util層(工具層)、web層(展示層);webContent文件夾里存放Jsp代碼,其中Login.jsp為登陸頁面,mainAdmin.jsp為系統(tǒng)管理員用戶主頁面,mainManage.jsp為宿舍管理員用戶主頁面,mainStudent.jsp為學(xué)生用戶主頁面。3.3界面設(shè)計(jì)與實(shí)現(xiàn)3.3.1登錄界面的設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)的登錄界面的設(shè)計(jì),有四點(diǎn)需求:1.用戶名及密碼的文本框輸入2.用戶類型的勾選選項(xiàng)3.布置登錄、重置按鈕4.界面布局的美化實(shí)現(xiàn)過程:1)首先基本確定一個(gè)div容器用于存放,登錄所需的輸入框等相關(guān)的子容器參考常規(guī)平臺(tái)登陸頁面的位置大致擺放;2)系統(tǒng)需要驗(yàn)證用戶及密碼登錄,首先需要建立用戶名及密碼的文本輸入框,再通過使用兩個(gè)<input>標(biāo)簽,定義其分別為用戶名及密碼的文本輸入框;3)由于系統(tǒng)分三大用戶類型,因此在登錄界面應(yīng)有用戶類型的勾選選項(xiàng),通過使用四個(gè)<label>標(biāo)簽為各自子元素的input元素分別定義其標(biāo)注為系統(tǒng)管理員、宿舍管理員以及學(xué)生,實(shí)現(xiàn)用戶類型的勾選。4)通過<button>標(biāo)簽定義顯示文本為“登錄”以及“重置”的按鈕,實(shí)現(xiàn)登錄、重置按鈕的布置。5)最后通過上述標(biāo)簽位置、大小及字體的調(diào)整等等,加以頁面背景圖裝飾,實(shí)現(xiàn)界面布局的美化。效果展示:圖3.1登錄界面展示圖關(guān)鍵代碼:<formname="myForm"class="form-signin"action="login"method="post"onsubmit="returncheckForm()"><h2class="form-signin-heading"><fontcolor="gray">學(xué)生公寓管理系統(tǒng)</font></h2><inputid="userName"name="userName"value="${user.userName}"type="text"class="input-block-level"placeholder="用戶名..."><inputid="password"name="password"value="${user.password}"type="password"class="input-block-level"placeholder="密碼..."><labelclass="radioinline"><inputid="admin"type="radio"name="userType"value="admin"checked/>系統(tǒng)管理員</label><labelclass="radioinline"><inputid="dormManager"type="radio"name="userType"value="dormManager"${userType==2?'checked':''}/>宿舍管理員</label><labelclass="radioinline"><inputid="student"type="radio"name="userType"value="student"${userType==3?'checked':''}/>學(xué)生</label><labelclass="checkbox"><inputid="remember"name="remember"type="checkbox"value="remember-me"${remember==1?'checked':''}>記住我 <fontid="error"color="red">${error}</font></label><buttonclass="btnbtn-largebtn-primary"type="submit">登錄</button> <buttonclass="btnbtn-largebtn-primary"type="button">重置</button><palign="center"style="padding-top:15px;"></p></form>3.3.2用戶界面的設(shè)計(jì)與實(shí)現(xiàn)本系統(tǒng)有三大用戶類型,登錄不同的用戶之后會(huì)跳轉(zhuǎn)到擁有對(duì)應(yīng)用戶權(quán)限功能的頁面,所以三大用戶類型對(duì)應(yīng)的用戶界面有一些細(xì)節(jié)之差,但大體界面結(jié)構(gòu)一致。在此以權(quán)限最高、功能最多的系統(tǒng)管理員用戶界面為例分析需求:1.首先作為一個(gè)功能型管理系統(tǒng),用戶進(jìn)入用戶頁面要有一個(gè)直觀可見的功能菜單;2.其次是系統(tǒng)全名的提示以及歡迎用語和當(dāng)前登錄的用戶名等一系列的友好提示。根據(jù)界面設(shè)計(jì)需求以及由大到小、由主到次的排序原則,結(jié)合常規(guī)網(wǎng)站平面設(shè)計(jì)風(fēng)格,應(yīng)將系統(tǒng)名放置于頁面頂部顯示,同時(shí)在頂部邊側(cè)顯示當(dāng)前登陸用戶;3.功能菜單放置與頁面頂部之下、靠左位置,預(yù)留右側(cè)的空白區(qū)域,當(dāng)點(diǎn)擊功能菜單的某一功能時(shí),可提供功能詳情的顯示區(qū)域,4.同時(shí),在用戶剛剛登陸進(jìn)入用戶頁面時(shí),可在此處顯示歡迎用語。實(shí)現(xiàn)過程:結(jié)合以上分析,1.首先將頁面主體的顯示區(qū)域分為兩大容器,頂部容器放置系統(tǒng)名(頂部之中的右側(cè)小區(qū)域顯示登陸用戶);2.頁面頂部之下的區(qū)域,考慮到上述第2點(diǎn),為了顯示效果整體對(duì)齊美觀及后續(xù)移動(dòng)調(diào)整,故頁面頂部之下的區(qū)域包含在一個(gè)容器中,其中又分為左右子容器,左側(cè)存放功能菜單,使用無序列表ul和列表項(xiàng)目li排列,右側(cè)用于顯示功能詳情及歡迎用語;3.考慮到頁面美觀,調(diào)整各標(biāo)簽位置、大小及字體等等,為頂部容器加以背景圖裝飾,同時(shí)給系統(tǒng)名稱設(shè)置浮動(dòng)效果避免遮擋。整體設(shè)計(jì)下來頁面簡介、大方。效果展示:圖3.2用戶界面之系統(tǒng)管理員界面展示圖關(guān)鍵代碼:<divclass="container-fluid"style="padding-right:0px;padding-left:0px;"> <divregion="north"style="height:100px;background-image:url('images/bg.jpg')"> <divalign="left"style="width:80%;height:100px;float:left;padding-top:40px;padding-left:30px;"><fontcolor="white"size="6">宿舍管理系統(tǒng)</font></div> <divstyle="padding-top:70px;padding-right:20px;">當(dāng)前用戶: <fontcolor="red">${currentUser.userName}</font></div> </div></div> <divclass="container-fluid"> <divclass="row-fluid"> <divclass="span2bs-docs-sidebar"> <ulclass="navnav-listbs-docs-sidenav"> <li><ahref="blank"><iclass="icon-chevron-right"></i>首頁</a></li> <li><ahref="dormManager?action=list"><iclass="icon-chevron-right"></i>宿舍管理員管理</a></li> <li><ahref="student?action=list"><iclass="icon-chevron-right"></i>學(xué)生管理</a></li> <li><ahref="dormBuild?action=list"><iclass="icon-chevron-right"></i>宿舍樓管理</a></li> <li><ahref="record?action=list"><iclass="icon-chevron-right"></i>缺寢記錄</a></li> <li><ahref="password?action=preChange"><iclass="icon-chevron-right"></i>修改密碼</a></li> <li><ahref="login.jsp"><iclass="icon-chevron-right"></i>退出系統(tǒng)</a></li> </ul></div> <divclass="span10"> <jsp:includepage="${mainPage==null?'admin/blank.jsp':mainPage}"></jsp:include> </div> </div> </div>3.4數(shù)據(jù)庫實(shí)現(xiàn)根據(jù)數(shù)據(jù)庫的需求分析以及結(jié)構(gòu)規(guī)劃和設(shè)計(jì),對(duì)宿舍公寓管理系統(tǒng)的數(shù)據(jù)庫進(jìn)行實(shí)現(xiàn),其數(shù)據(jù)表結(jié)構(gòu)圖如下圖所示:圖3.3數(shù)據(jù)表結(jié)構(gòu)圖3.5功能實(shí)現(xiàn)3.5.1登錄模塊的設(shè)計(jì)與實(shí)現(xiàn)用戶登錄模塊,在本系統(tǒng)中,其任務(wù)是為用戶提供登錄系統(tǒng)的接口,通過輸入用戶的賬號(hào)和密碼,選擇登錄的用戶類型,如果正確則跳轉(zhuǎn)用戶界面。其詳細(xì)情況如圖所示:圖3.4登錄模塊圖用戶登錄分為三個(gè)用戶類型,分別為系統(tǒng)管理員和宿舍管理員以及學(xué)生,當(dāng)用戶登錄時(shí)輸入用戶名及密碼并選擇用戶類型,點(diǎn)擊登錄后,系統(tǒng)首先通過HttpServletRequest對(duì)象獲取其userType參數(shù)以此來區(qū)分用戶類型。然后分別判斷其userType的值進(jìn)行處理。以下部分代碼為系統(tǒng)實(shí)現(xiàn)根據(jù)不同的登錄用戶類型,跳轉(zhuǎn)不同用戶管理界面的關(guān)鍵代碼。具體代碼在src目錄下的com.lero.web目錄下的BlankServlet文件中。關(guān)鍵代碼: ProtectedvoiddoPost(HttpServletRequestrequest,HttpServletResponse response) throwsServletException,IOException{ HttpSessionsession=request.getSession();Object currentUserType=session.getAttribute("currentUserType"); if("admin".equals((String)currentUserType)){ request.setAttribute("mainPage","admin/blank.jsp"); request.getRequestDispatcher("mainAdmin.jsp").forward(request,response); }elseif("dormManager".equals((String)currentUserType)){ request.setAttribute("mainPage","dormManager/blank.jsp"); request.getRequestDispatcher("mainManager.jsp").forward(request,response); }elseif("student".equals((String)currentUserType)){ request.setAttribute("mainPage","student/blank.jsp"); request.getRequestDispatcher("mainStudent.jsp").forward(request,response); }系統(tǒng)通過userType值區(qū)分用戶類型后,再獲取用戶登錄時(shí)輸入的用戶名和密碼,并將其封裝成用戶對(duì)應(yīng)的對(duì)象:1.如用戶登錄時(shí)選擇用戶類型為系統(tǒng)管理員,則封裝成admin對(duì)象;2.如用戶登錄時(shí)選擇用戶類型為宿舍管理員,則封裝成dormmanager對(duì)象;3.如用戶登錄時(shí)選擇用戶類型為學(xué)生,則封裝成student對(duì)象。之后調(diào)用dao層的Login方法,根據(jù)用戶登錄時(shí)選擇的身份類型去數(shù)據(jù)庫匹配對(duì)應(yīng)的賬號(hào)和密碼,如有相關(guān)數(shù)據(jù),則登錄成功,將相關(guān)信息存儲(chǔ)后轉(zhuǎn)發(fā)到封裝對(duì)象對(duì)應(yīng)的jsp頁面:1.如封裝對(duì)象為admin對(duì)象,則跳轉(zhuǎn)至mainAdmin.jsp頁面;2.如封裝對(duì)象為dormmanager對(duì)象,則跳轉(zhuǎn)至mainManager.jsp頁面;3.如封裝對(duì)象為admin對(duì)象,則跳轉(zhuǎn)至mainStudent.jsp頁面。否則,即數(shù)據(jù)庫中匹配不到對(duì)應(yīng)的賬號(hào)和密碼,則返回login頁面并提示用戶相關(guān)錯(cuò)誤信息。以下代碼為驗(yàn)證系統(tǒng)管理員賬號(hào)密碼是否正確的部分代碼,實(shí)現(xiàn)系統(tǒng)管理員用戶登錄,具體代碼在src目錄下的com.lero.web目錄下的LoginServlet文件中。關(guān)鍵代碼:protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ request.setCharacterEncoding("utf-8"); HttpSessionsession=request.getSession(); StringuserName=request.getParameter("userName"); Stringpassword=request.getParameter("password"); Stringremember=request.getParameter("remember"); StringuserType=request.getParameter("userType"); Connectioncon=null; try{con=dbUtil.getCon(); AdmincurrentAdmin=null; DormManagercurrentDormManager=null; StudentcurrentStudent=null; if("admin".equals(userType)){ Adminadmin=newAdmin(userName,password); currentAdmin=userDao.Login(con,admin); if(currentAdmin==null){ request.setAttribute("admin",admin); request.setAttribute("error","用戶名或密碼錯(cuò)誤!"); request.getRequestDispatcher("login.jsp").forward(request,response);}else{ if("remember-me".equals(remember)){ rememberMe(userName,password,userType,response); }else{ deleteCookie(userName,request,response);} session.setAttribute("currentUserType","admin"); session.setAttribute("currentUser",currentAdmin); request.setAttribute("mainPage","admin/blank.jsp"); request.getRequestDispatcher("mainAdmin.jsp").forward(request,response);}宿舍管理員用戶以及學(xué)生用戶的登錄過程與系統(tǒng)管理員用戶相似。3.5.2宿舍管理員管理模塊的設(shè)計(jì)與實(shí)現(xiàn)宿舍管理員管理模塊主要是實(shí)現(xiàn)能夠設(shè)置宿舍管理員的用戶名、密碼、姓名、性別、聯(lián)系電話,當(dāng)新增一個(gè)管理員之后,還需另外分配宿舍樓給其管理(需要另行進(jìn)入宿舍樓管理功能)。宿舍管理員管理模塊實(shí)現(xiàn)效果圖如圖所示:圖3.5宿舍管理員管理模塊圖該模塊為宿舍管理員管理模塊,能夠進(jìn)行宿舍管理員的添加、修改、刪除、查找。當(dāng)系統(tǒng)根據(jù)系統(tǒng)管理員的操作執(zhí)行命令時(shí),系統(tǒng)首先使用request.getParameter()方法獲取操作的值,通過equals()函數(shù)判斷信息在數(shù)據(jù)中是否存在,如果在數(shù)據(jù)中存在,則進(jìn)行相對(duì)應(yīng)的操作。關(guān)鍵代碼如下:Strings_dormManagerText=request.getParameter("s_dormManagerText");StringsearchType=request.getParameter("searchType");Stringpage=request.getParameter("page");Stringaction=request.getParameter("action"); DormManagerdormManager=newDormManager(); if("preSave".equals(action)){ dormManagerPreSave(request,response); return; }elseif("save".equals(action)){dormManagerSave(request,response); return; }elseif("delete".equals(action)){dormManagerDelete(request,response); return; }else if("list".equals(action)){ if(StringUtil.isNotEmpty(s_dormManagerText)){ if("name".equals(searchType)){ dormManager.setName(s_dormManagerText); }elseif("userName".equals(searchType)){ dormManager.setUserName(s_dormManagerText); } }3.5.3學(xué)生管理模塊的設(shè)計(jì)與實(shí)現(xiàn)學(xué)生管理模塊主要實(shí)現(xiàn)管理員進(jìn)行學(xué)生的增加、修改、刪除等,如學(xué)生入學(xué)時(shí)可以在系統(tǒng)上增加該學(xué)生,退學(xué)/畢業(yè)后可以將該學(xué)生刪除,中間也可以對(duì)學(xué)生信息進(jìn)行修改操作,學(xué)生的宿舍樓棟、寢室信息也可一并在此處修改。學(xué)生管理模塊實(shí)現(xiàn)效果圖如圖所示:圖3.6學(xué)生管理模塊圖實(shí)現(xiàn)過程:系統(tǒng)定義一個(gè)新的student.java類,使用request.getParameter()方法,發(fā)送post請(qǐng)求獲取操作的值,通過equals()函數(shù)判斷信息是否存在,如果在數(shù)據(jù)中存在,則執(zhí)行對(duì)應(yīng)操作。關(guān)鍵代碼:protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ request.setCharacterEncoding("utf-8"); HttpSessionsession=request.getSession(); ObjectcurrentUserType=session.getAttribute("currentUserType"); Strings_studentText=request.getParameter("s_studentText"); StringdormBuildId=request.getParameter("buildToSelect"); StringsearchType=request.getParameter("searchType"); Stringaction=request.getParameter("action"); Studentstudent=newStudent(); if("preSave".equals(action)){ studentPreSave(request,response); return; }elseif("save".equals(action)){ studentSave(request,response); return; }elseif("delete".equals(action)){ studentDelete(request,response); return; }elseif("list".equals(action)){ if(StringUtil.isNotEmpty(s_studentText)){ if("name".equals(searchType)){ student.setName(s_studentText); }elseif("number".equals(searchType)){ student.setStuNumber(s_studentText); }elseif("dorm".equals(searchType)){ student.setDormName(s_studentText); } }3.5.4宿舍樓管理模塊的設(shè)計(jì)與實(shí)現(xiàn)宿舍樓管理模塊主要是對(duì)宿舍樓棟進(jìn)行添加、修改、刪除等操作。如學(xué)院新建宿舍樓時(shí)可添加新宿舍樓,宿舍樓有了新的命名或者有需要修改簡介的時(shí)候可以選擇修改,宿舍樓需要分配給哪位宿舍管理員管理時(shí)可以進(jìn)行分配操作等。宿舍樓管理模塊實(shí)現(xiàn)效果圖如圖所示:圖3.7宿舍樓管理模塊圖實(shí)現(xiàn)過程:當(dāng)系統(tǒng)管理員在該頁面對(duì)宿舍樓進(jìn)行管理操作時(shí),系統(tǒng)發(fā)送post請(qǐng)求,通過request.getParameter("action")方法獲取action值之后,利用equals()函數(shù)與數(shù)據(jù)庫進(jìn)行對(duì)比,判斷用戶要進(jìn)行的操作。關(guān)鍵代碼:if("preSave".equals(action)){ dormBuildPreSave(request,response); return; }elseif("save".equals(action)){ dormBuildSave(request,response); return; }elseif("delete".equals(action)){ dormBuildDelete(request,response); return; }elseif("manager".equals(action)){ dormBuildManager(request,response); return; }elseif("addManager".equals(action)){ dormBuildAddManager(request,response); }elseif("move".equals(action)){ managerMove(request,response); }elseif("list".equals(action)){ if(StringUtil.isNotEmpty(s_dormBuildName)){ dormBuild.setDormBuildName(s_dormBuildName); } session.removeAttribute("s_dormBuildName"); request.setAttribute("s_dormBuildName",s_dormBuildName); }elseif("search".equals(action)){ if(StringUtil.isNotEmpty(s_dormBuildName)){ dormBuild.setDormBuildName(s_dormBuildName); session.setAttribute("s_dormBuildName",s_dormBuildName); }else{ session.removeAttribute("s_dormBuildName"); }3.5.5缺寢記錄模塊的設(shè)計(jì)與實(shí)現(xiàn)學(xué)生缺寢記錄模塊有添加、修改、刪除、查詢功能,管理員可對(duì)學(xué)生缺寢記錄信息進(jìn)行一系列操作,學(xué)生也可在學(xué)生的用戶界面查詢自己的缺寢記錄信息。以系統(tǒng)管理員的缺寢記錄功能為例,缺寢記錄管理模塊實(shí)現(xiàn)效果如圖所示:圖3.8缺寢記錄模塊圖實(shí)現(xiàn)過程:以系統(tǒng)管理員的操作為例,系統(tǒng)管理員對(duì)缺寢記錄做出操作后,系統(tǒng)利用equals()函數(shù),在數(shù)據(jù)中對(duì)比request.getParameter("action")方法獲取到的action值,根據(jù)對(duì)比結(jié)果判斷用戶進(jìn)行的操作,從而實(shí)現(xiàn)缺寢記錄的增加、修改、刪除等操作判斷。代碼實(shí)現(xiàn)思路與前幾個(gè)模塊相似,在此不做贅述。其中,增加和修改共用同一個(gè)方法,其action參數(shù)的值均為“save”,區(qū)別在于當(dāng)傳遞到后臺(tái)的數(shù)據(jù)中存在記錄Id的時(shí)候,其執(zhí)行修改操作,否則,執(zhí)行新增操作。增加,修改:填寫完學(xué)號(hào)和備注信息或者修改完學(xué)號(hào)和備注信息之后,點(diǎn)擊提交按鈕,數(shù)據(jù)傳遞到后臺(tái),其先從session對(duì)象中獲取管理員所管理的宿舍的棟號(hào),之后根據(jù)所輸入的學(xué)號(hào)判斷該學(xué)生是否位于所管理的宿舍樓里,如果不在所管理的樓層,則返回管理員頁面,并給出相應(yīng)的提示信息。否則,通過判斷用戶recordId是否為空來選擇對(duì)記錄信息進(jìn)行更新(recordId值不為空)或者新增(recordId值為空)。以下是部分關(guān)鍵代碼,具體代碼位于src/com/lero/web/RecordServlet處。StringrecordId=request.getParameter("recordId");
StringstudentNumber=request.getParameter("studentNumber");
Stringdate=request.getParameter("date");
Stringdetail=request.getParameter("detail");
Recordrecord=newRecord(studentNumber,date,detail);
if(StringUtil.isNotEmpty(recordId)){
if(Integer.parseInt(recordId)!=0){
record.setRecordId(Integer.parseInt(recordId));
}
}
Connectioncon=null;
try{
con=dbUtil.getCon();
intsaveNum=0;
HttpSessionsession=request.getSession();
DormManagermanager=(DormManager)(session.getAttribute("currentUser"));
intbuildId=manager.getDormBuildId();
Studentstudent=StudentDao.getNameById(con,studentNumber,buildId);
if(student.getName()==null){
request.setAttribute("record",record);
request.setAttribute("error","學(xué)號(hào)不在您管理的宿舍樓內(nèi)");
request.setAttribute("mainPage","dormManager/recordSave.jsp");
request.getRequestDispatcher("mainManager.jsp").forward(request,response);
}else{
record.setDormBuildId(student.getDormBuildId());
record.setStudentName(student.getName());
record.setDormName(student.getDormName());
if(StringUtil.isNotEmpty(recordId)&&Integer.parseInt(recordId)!=0){
saveNum=recordDao.recordUpdate(con,record);
}else{
saveNum=recordDao.recordAdd(con,record);
}
if(saveNum>0){
request.getRequestDispatcher("record?action=list").forward(request,response);
}else{
request.setAttribute("record",record);
request.setAttribute("error","保存失敗");
request.setAttribute("mainPage","dormManager/recordSave.jsp");
request.getRequestDispatcher("mainManager.jsp").forward(request,response);
}
}刪除:當(dāng)點(diǎn)擊了刪除按鈕,并確認(rèn)之后,其會(huì)提交該條記錄的recordId值到后臺(tái),在后臺(tái)獲取了該值之后,調(diào)用recordDao的recordDelete方法對(duì)記錄進(jìn)行刪除。以下是部分關(guān)鍵代碼,具體代碼位于src/com/lero/web/RecordServlet處。privatevoidrecordDelete(HttpServletRequestrequest,
HttpServletResponseresponse){
StringrecordId=request.getParameter("recordId");
Connectioncon=null;
try{
con=dbUtil.getCon(); recordDao.recordDelete(con,recordId);
request.getRequestDispatcher("record?action=list").forward(request,response);} catch(Exceptione){e.printStackTrace();} finally{try{dbUtil.closeCon(con);}catch(Exceptione){
e.printStackTrace(); }
}
}查找:查找功能根據(jù)用戶角色的不同,所能執(zhí)行的功能也不同。對(duì)于學(xué)生而言,其只能查找到本人的所有記錄,對(duì)于系統(tǒng)管理員而言,其能查找到所有的記錄。對(duì)于宿舍管理員而言,其只能查找到其所在管理樓層的記錄。記錄信息的查找可以按照姓名,學(xué)號(hào),寢室進(jìn)行。以宿舍管理員按照寢室進(jìn)行查找為例。其先通過request對(duì)象獲取到查找的信息,之后,通過session對(duì)象獲取管理員管理的樓的信息,之后根據(jù)管理員所管理的宿舍樓和寢室號(hào)為條件,進(jìn)行記錄的查找。以下是部分關(guān)鍵代碼,具體代碼位于src/com/lero/web/RecordServlet處。elseif("dormManager".equals((String)currentUserType)){
DormManagermanager=(DormManager)(session.getAttribute("currentUser"));
intbuildId=manager.getDormBuildId();
StringbuildName=DormBuildDao.dormBuildName(con,buildId);
List<Record>recordList=recordDao.recordListWithBuild(con,record,buildId);
request.setAttribute("dormBuildName",buildName);
request.setAttribute("recordList",recordList);
request.setAttribute("mainPage","dormManager/record.jsp");
request.getRequestDispatcher("mainManager.jsp").forward(request,response);
}3.5.6修改密碼模塊的設(shè)計(jì)與實(shí)現(xiàn)先通過存儲(chǔ)在session對(duì)象中的用戶類型(currentUserType鍵)來獲取存儲(chǔ)在session中的用戶信息對(duì)象。之后獲取request對(duì)象中的新舊密碼信息。以用戶角色為學(xué)生為例,其獲取了保存在session中的學(xué)生對(duì)象之后,判斷舊密碼是否和存儲(chǔ)在數(shù)據(jù)庫中的保持一致。如一致,則調(diào)用userDao的adminUpdate方法對(duì)密碼進(jìn)行更新,同時(shí)更新session中存儲(chǔ)的學(xué)生對(duì)象的密碼信息,之后返回密碼修改頁面,并給出相關(guān)提示信息。如不一致,則直接返回密碼修改頁面,并給出“原密碼錯(cuò)誤”的相關(guān)提示信息。以下是部分關(guān)鍵代碼,具體代碼在src/com/lero/web/PasswordServlet文件中。elseif("student".equals((String)currentUserType)){
Studentstudent=(Student)(session.getAttribute("currentUser"));
if(oldPassword.equals(student.getPassword())){
userDao.adminUpdate(con,student.getStudentId(),newPassword);
student.setPassword(newPassword);
request.setAttribute("oldPassword",oldPassword);
request.setAttribute("newPassword",newPassword);
request.setAttribute("rPassword",newPassword);
request.setAttribute("error","修改成功");
request.setAttribute("mainPage","student/passwordChange.jsp");
request.getRequestDispatcher("mainStudent.jsp").forward(request,response);
}else{
request.setAttribute("oldPassword",oldPassword);
request.setAttribute("newPassword",newPassword);
request.setAttribute("rPassword",newPassword);
request.setAttribute("error","原密碼錯(cuò)誤");
request.setAttribute("mainPage","student/passwordChange.jsp");
request.getRequestDispatcher("mainStudent.jsp").forward(request,response);
}
}3.5.7首頁與退出系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)首頁與退出系統(tǒng)功能的設(shè)計(jì)相對(duì)簡單,用戶通過點(diǎn)擊“首頁”或者“退出系統(tǒng)”功能,頁面跳轉(zhuǎn)至指定的頁面即可。實(shí)現(xiàn)過程:以系統(tǒng)管理員點(diǎn)擊“首頁”功能為例,系統(tǒng)管理員點(diǎn)擊功能菜單的“首頁”之后,通過存放“首頁”的容器綁定鏈接,指向系統(tǒng)管理員的首頁頁面(即admin文件夾下的blank子頁面),即可實(shí)現(xiàn)跳轉(zhuǎn)至首頁。4系統(tǒng)測試4.1測試的目的系統(tǒng)的測試,是開發(fā)過程中的一個(gè)重要環(huán)節(jié),沒能通過測試就不能算是真正的開發(fā)完成??梢姡瑴y試環(huán)節(jié)是系統(tǒng)開發(fā)的質(zhì)量保證,極為重要。測試的目的,是找到盡可能多的缺陷和錯(cuò)誤,把系統(tǒng)的錯(cuò)誤和缺陷找出來,及時(shí)進(jìn)行修改,避免系統(tǒng)出現(xiàn)bug、奔潰等造成不必要的損失。因此,合理地設(shè)計(jì)系統(tǒng)測試,也顯得尤為重要,是判斷系統(tǒng)開發(fā)是否能通過測試的重要標(biāo)準(zhǔn)。4.2黑盒測試黑盒測試,也常常稱之為功能測試,顧名思義,就是把開發(fā)出來的系統(tǒng)看作一個(gè)黑盒子整體,我們看不到測試過程中內(nèi)部的運(yùn)行邏輯、運(yùn)行流程等,但能測試其輸出的結(jié)果是否是合理的、正確的。黑盒測試能發(fā)現(xiàn)以下類型的主要錯(cuò)誤:1.功能點(diǎn)的遺漏或錯(cuò)誤2.界面數(shù)據(jù)、效果顯示錯(cuò)誤3.數(shù)據(jù)庫讀取錯(cuò)誤4.性能錯(cuò)誤5.初始化過程和結(jié)束的錯(cuò)誤黑盒測試是最貼近用戶使用感受及效果的測試,因此我們選擇,對(duì)系統(tǒng)進(jìn)行黑盒測試。4.3測試用例的設(shè)計(jì)合理地測試用例設(shè)計(jì),不僅是測試發(fā)揮有效作用的大前提,也是測試結(jié)果的權(quán)威保證。黑盒測試中,測試用例設(shè)計(jì)方法較多,主要分為:1.等價(jià)類劃分方法;2.邊界值分析方法;3.錯(cuò)誤推測方法;4.因果圖方法;5.判定\t"/item/%E5%8A%9F%E8%83%BD%E6%B5%8B%E8%AF%95/_blank"表驅(qū)動(dòng)分析方法;6.正交實(shí)驗(yàn)設(shè)計(jì)方法;7.功能圖分析方法。其中,被測試人員使用得最多的,是邊界值分析法、等價(jià)類劃分法和錯(cuò)誤推斷法。在本系統(tǒng)的測試中,由于模塊較多,故計(jì)劃從用戶的角度出發(fā),根據(jù)不同的模塊及常規(guī)操作流程,設(shè)計(jì)測試用例。由于系統(tǒng)設(shè)計(jì)開發(fā)的邏輯特性,以權(quán)限最高、功能最多的系統(tǒng)管理員為例,宿舍管理員以及學(xué)生的用戶身份及其功能也會(huì)進(jìn)行測試,但考慮到篇幅太多,故只闡述系統(tǒng)管理員的功能測試。4.3.1登錄模塊測試登錄模塊測試需求分析:結(jié)合本系統(tǒng)的系統(tǒng)特性,要測試登錄模塊,主要測試其對(duì)賬號(hào)密碼正確性的驗(yàn)證及其返回結(jié)果是否合格、使用匹配的賬號(hào)密碼與不對(duì)應(yīng)的賬號(hào)類型是否能登錄等。因此有以下三點(diǎn)需求:1.賬號(hào)密碼驗(yàn)證;2.用戶類型驗(yàn)證;3.錯(cuò)誤提示驗(yàn)證。根據(jù)以上需求分析,設(shè)計(jì)測試用例,測試記錄如下表4.1:表4.1登錄模塊測試用例用例編號(hào)用例歸屬測試項(xiàng)測試子項(xiàng)測試步驟預(yù)期結(jié)果結(jié)論MK-001-001登錄模塊系統(tǒng)管理員角色正確的用戶名,正確的密碼登錄驗(yàn)證1.登錄系統(tǒng)主頁;2.在“用戶名”輸入框填寫正確的用戶名;3.在“密碼”輸入框填寫正確的密碼;4.選擇“系統(tǒng)管理員”角色;5.點(diǎn)擊“登錄”按鈕,驗(yàn)證登錄情況;1.用戶可正常打開登錄頁面;2.用戶名”輸入框與“密碼”輸入框能正常輸入;3.輸入正確的用戶名及密碼后,選擇系統(tǒng)管理員角色,通過登錄按鈕,可正常登錄;合格MK-001-002登錄模塊系統(tǒng)管理員角色正確的用戶名,錯(cuò)誤的密碼登錄驗(yàn)證1.登錄系統(tǒng)主頁;
2.在“用戶名”輸入框填寫正確的用戶名;
3.在“密碼”輸入框填寫錯(cuò)誤的密碼;
4.選擇“系統(tǒng)管理員”角色;
5.點(diǎn)擊“登錄”按鈕,驗(yàn)證登錄情況;1.用戶可正常打開登錄頁面;
2.用戶名”輸入框與“密碼”輸入框能正常輸入;
3.輸入正確的用戶名、錯(cuò)誤的密碼后,選擇系統(tǒng)管理員角色,通過點(diǎn)擊登錄按鈕,由于密碼錯(cuò)誤,無法正常登錄;合格MK-001-003登錄模塊系統(tǒng)管理員角色正確的用戶名,密碼為空登錄驗(yàn)證1.登錄系統(tǒng)主頁;
2.在“用戶名”輸入框填寫正確的用戶名;
3.在“密碼”輸入框?yàn)榭眨?/p>
4.選擇“系統(tǒng)管理員”角色;
5.點(diǎn)擊“登錄”按鈕,驗(yàn)證登錄情況;1.用戶可正常打開登錄頁面;
2.用戶名”輸入框與“密碼”輸入框能正常輸入;
3.選擇系統(tǒng)管理員角色,通過點(diǎn)擊登錄按鈕,由于密碼為空,系統(tǒng)不允許空用戶名及密碼,給予友好提示,觸發(fā)登錄后無法登錄;合格MK-001-004登錄模塊系統(tǒng)管理員角色用戶名、密碼為空登錄驗(yàn)證1.登錄系統(tǒng)主頁;
2.在“用戶名”輸入框?yàn)榭眨?/p>
3.在“密碼”輸入框?yàn)榭眨?/p>
4.選擇“系統(tǒng)管理員”角色;
5.點(diǎn)擊“登錄”按鈕,驗(yàn)證登錄情況;1.用戶可正常打開登錄頁面;
2.用戶名”輸入框與“密碼”輸入框能正常輸入;
3.選擇系統(tǒng)管理員角色,通過點(diǎn)擊登錄按鈕,由于密碼為空,系統(tǒng)不允許空用戶名及密碼,給予友好提示,觸發(fā)登錄后無法登錄;合格MK-001-005登錄模塊系統(tǒng)管理員角色用戶名輸入框長度驗(yàn)證1.登錄系統(tǒng)主頁;
2.在“用戶名”輸入框輸入錯(cuò)誤的100個(gè)字符;
3.在“密碼”輸入框?yàn)檎_的密碼;
4.選擇“系統(tǒng)管理員”角色;
5.點(diǎn)擊“登錄”按鈕,驗(yàn)證登錄情況;1.用戶可正常打開登錄頁面;
2.用戶名”輸入框與“密碼”輸入框能正常輸入;
3.選擇系統(tǒng)管理員角色,通過點(diǎn)擊登錄按鈕,由于用戶名長度超過限制,給予友好提示,觸發(fā)登錄后無法登錄;合格MK-001-006登錄模塊系統(tǒng)管理員角色用戶名輸入框特殊字符驗(yàn)證1.登錄系統(tǒng)主頁;
2.在“用戶名”輸入框輸入所有特殊字符;
3.在“密碼”輸入框?yàn)榭眨?/p>
4.選擇“系統(tǒng)管理員”角色;
5.點(diǎn)擊“登錄”按鈕,驗(yàn)證登錄情況;1.用戶可正常打開登錄頁面;
2.用戶名”輸入框與“密碼”輸入框能正常輸入;
3.選擇系統(tǒng)管理員角色,通過點(diǎn)擊登錄按鈕,由于系統(tǒng)防止跨站腳本攻擊,不允許用戶名含有特殊字符,系統(tǒng)給予友好提示,觸發(fā)登錄后無法登錄;合格MK-001-007登錄模塊系統(tǒng)管理員角色密碼輸入框長度驗(yàn)證1.登錄系統(tǒng)主頁;
2.在“用戶名”輸入框填寫正確的用戶名;
3.在“密碼”輸入框輸入錯(cuò)誤的100個(gè)字符;
4.選擇“系統(tǒng)管理員”角色;
5.點(diǎn)擊“登錄”按鈕,驗(yàn)證登錄情況;1.用戶可正常打開登錄頁面;
2.用戶名”輸入框與“密碼”輸入框能正常輸入;
3.選擇系統(tǒng)管理員角色,通過點(diǎn)擊登錄按鈕,由于密碼長度超過限制,給予友好提示,觸發(fā)登錄后無法登錄;合格MK-001-008登錄模塊系統(tǒng)管理員角色密碼輸入框特殊字符驗(yàn)證1.登錄系統(tǒng)主頁;
2.在“用戶名”輸入框填寫正確的用戶名;
3.在“密碼”輸入框輸入所有特殊字符;
4.選擇“系統(tǒng)管理員”角色;
5.點(diǎn)擊“登錄”按鈕,驗(yàn)證登錄情況;1.用戶可正常打開登錄頁面;
2.用戶名”輸入框與“密碼”輸入框能正常輸入;
3.選擇系統(tǒng)管理員角色,通過點(diǎn)擊登錄按鈕,由于系統(tǒng)防止跨站腳本攻擊,不允許密碼含有特殊字符,系統(tǒng)給予友好提示,觸發(fā)登錄后無法登錄;合格MK-001-009登錄模塊宿舍管理員角色正確的用戶名,正確的密碼登錄驗(yàn)證1.登錄系統(tǒng)主頁;2.在“用戶名”輸入框填寫正確的用戶名;3.在“密碼”輸入框填寫正確的密碼;4.選擇“宿舍管理員”角色;5.點(diǎn)擊“登錄”按鈕,驗(yàn)證登錄情況;1.用戶可正常打開登錄頁面;2.用戶名”輸入框與“密碼”輸入框能正常輸入;3.輸入正確的用戶名及密碼后,選擇宿舍管理員角色,通過登錄按鈕,可正常登錄;合格MK-001-010登錄模塊宿舍管理員角色正確的用戶名,錯(cuò)誤的密碼登錄驗(yàn)證1.登錄系統(tǒng)主頁;
2.在“用戶名”輸入框填寫正確的用戶名;
3.在“密碼”輸入框填寫錯(cuò)誤的密碼;
4.選擇“宿舍管理員”角色;
5.點(diǎn)擊“登錄”按鈕,驗(yàn)證登錄情況;1.用戶可正常打開登錄頁面;
2.用戶名”輸入框與“密碼”輸入框能正常輸入;
3.輸入正確的用戶名、錯(cuò)誤的密碼后,選擇宿舍管理員角色,通過點(diǎn)擊登錄按鈕,由于密碼錯(cuò)誤,無法正常登錄;合格MK-001-011登錄模塊宿舍管理員角色正確的用戶名,密碼為空登錄驗(yàn)證1.登錄系統(tǒng)主頁;
2.在“用戶名”輸入框填寫正確的用戶名;
3.在“密碼”輸入框?yàn)榭眨?/p>
4.選擇“宿舍管理員”角色;
5.點(diǎn)擊“登錄”按鈕,驗(yàn)證登錄情況;1.用戶可正常打開登錄頁面;
2.用戶名”輸入框與“密碼”輸入框能正常輸入;
3.選擇宿舍管理員角色,通過點(diǎn)擊登錄按鈕,由于密碼為空,系統(tǒng)不允許空用戶名及密碼,給予友好提示,觸發(fā)登錄后無法登錄;合格MK-001-012登錄模塊宿舍管理員角色用戶名、密碼為空登錄驗(yàn)證1.登錄系統(tǒng)主頁;
2.在“用戶名”輸入框?yàn)榭眨?/p>
3.在“密碼”輸入框?yàn)榭眨?/p>
4.選擇“宿舍管理員”角色;
5.點(diǎn)擊“登錄”按鈕,驗(yàn)證登錄情況;1.用戶可正常打開登錄頁面;
2.用戶名”輸入框與“密碼”輸入框能正常輸入;
3.選擇宿舍管理員角色,通過點(diǎn)擊登錄按鈕,由于密碼為空,系統(tǒng)不允許空用戶名及密碼,給予友好提示,觸發(fā)登錄后無法登錄;合格MK-001-013登錄模塊宿舍管理員角色用戶名輸入框長度驗(yàn)證1.登錄系統(tǒng)主頁;
2.在“用戶名”輸入框輸入錯(cuò)誤的100個(gè)字符;
3.在“密碼”輸入框?yàn)檎_的密碼;
4.選擇“宿舍管理員”角色;
5.點(diǎn)擊“登錄”按鈕,驗(yàn)證登錄情況;1.用戶可正常打開登錄頁面;
2.用戶名”輸入框與“密碼”輸入框能正常輸入;
3.選擇宿舍管理員角色,通過點(diǎn)擊登錄按鈕,由于用戶名長度超過限制,給予友好提示,觸發(fā)登錄后無法登錄;合格MK-001-014登錄模塊宿舍管理員角色用戶名輸入框特殊字符驗(yàn)證1.登錄系統(tǒng)主頁;
2.在“用戶名”輸入框輸入所有特殊字符;
3.在“密碼”輸入框?yàn)榭眨?/p>
4.選擇“宿舍管理員”角色;
5.點(diǎn)擊“登錄”按鈕,驗(yàn)證登錄情況;1.用戶可正常打開登錄頁面;
2.用戶名”輸入框與“密碼”輸入框能正常輸入;
3.選擇宿舍管理員角色,通過點(diǎn)擊登錄按鈕,由于系統(tǒng)防止跨站腳本攻擊,不允許用戶名含有特殊字符,系統(tǒng)給予友好提示,觸發(fā)登錄后無法登錄;合格MK-001-015登錄模塊宿舍管理員角色密碼輸入框長度驗(yàn)證1.登錄系統(tǒng)主頁;
2.在“用戶名”輸入框填寫正確的用戶名;
3.在“密碼”輸入框輸入錯(cuò)誤的100個(gè)字符;
4.選擇“宿舍管理員”角色;
5.點(diǎn)擊“登錄”按鈕,驗(yàn)證登錄情況;1.用戶可正常打開登錄頁面;
2.用戶名”輸入框與“密碼”輸入
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度敬老院消防安全檢查及整改服務(wù)合同
- 2025年度建筑砂漿行業(yè)發(fā)展趨勢預(yù)測采購合同
- 2025年度商業(yè)空間工裝設(shè)計(jì)施工一體化合同
- 電力工程項(xiàng)目中的合同風(fēng)險(xiǎn)管理
- 2025年度養(yǎng)老機(jī)構(gòu)入住服務(wù)與管理合同
- 2025年度建筑工程結(jié)算協(xié)議書及節(jié)能評(píng)估合同范本
- 2025年度智能穿戴合伙創(chuàng)業(yè)合同協(xié)議書
- 2025年工作餐配送及維護(hù)服務(wù)合同范本
- 2025年度離婚協(xié)議書專業(yè)翻譯與審核合同
- 2025年度人力資源居間招聘服務(wù)合同范本
- 2023年菏澤醫(yī)學(xué)??茖W(xué)校單招綜合素質(zhì)模擬試題及答案解析
- 鋁合金門窗設(shè)計(jì)說明
- 常見食物的嘌呤含量表匯總
- 小學(xué)數(shù)學(xué)-三角形面積計(jì)算公式的推導(dǎo)教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 人教版數(shù)學(xué)八年級(jí)下冊(cè)同步練習(xí)(含答案)
- SB/T 10752-2012馬鈴薯雪花全粉
- 2023年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招(英語)試題庫含答案解析
- 秦暉社會(huì)主義思想史課件
- 積累運(yùn)用表示動(dòng)作的詞語課件
- 機(jī)動(dòng)車登記證書英文證書模板
- 質(zhì)量管理體系基礎(chǔ)知識(shí)培訓(xùn)-2016
評(píng)論
0/150
提交評(píng)論