學(xué)生公寓管理系統(tǒng)的分析和設(shè)計_第1頁
學(xué)生公寓管理系統(tǒng)的分析和設(shè)計_第2頁
學(xué)生公寓管理系統(tǒng)的分析和設(shè)計_第3頁
學(xué)生公寓管理系統(tǒng)的分析和設(shè)計_第4頁
學(xué)生公寓管理系統(tǒng)的分析和設(shè)計_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

山東建筑大學(xué)計算機科學(xué)與技術(shù)學(xué)院課程設(shè)計說明書題目:學(xué)生公寓管理系統(tǒng)的分析和設(shè)計課程:軟件工程院(部):計算機學(xué)院專業(yè):軟件工程班級:學(xué)生姓名:學(xué)號:指導(dǎo)教師:完成日期:目錄目錄 2課程設(shè)計任務(wù)書(五) 31需求分析 51.1系統(tǒng)概述 51.2目標(biāo)系統(tǒng)描述 51.2.1組織結(jié)構(gòu)與職責(zé) 51.2.3業(yè)務(wù)流程 61.2.4表格及報表 81.3目標(biāo)系統(tǒng)功能需求 81.3.1功能需求分析 81.3.2系統(tǒng)用例圖 92概要設(shè)計 112.1數(shù)據(jù)流圖及數(shù)據(jù)字典 112.1.1公寓管理系統(tǒng)管理系統(tǒng)數(shù)據(jù)流圖 112.2數(shù)據(jù)分析與數(shù)據(jù)庫設(shè)計 122.2.1數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計 132.2.2視圖設(shè)計 143詳細(xì)設(shè)計 183.1公寓中心工作人員 18山東建筑大學(xué)計算機科學(xué)與技術(shù)學(xué)院課程設(shè)計任務(wù)書(五)設(shè)計題目學(xué)生公寓管理系統(tǒng)的分析和設(shè)計已知技術(shù)參數(shù)和設(shè)計要求采用面向?qū)ο蠡蚪Y(jié)構(gòu)化設(shè)計方法,在windows開發(fā)環(huán)境下進(jìn)行。4-5人成立一個開發(fā)小組,選出小組項目負(fù)責(zé)人,并對小組成員按任務(wù)進(jìn)行分工。嚴(yán)格按軟件工程的方法,分階段進(jìn)行開發(fā)(需求分析、概要及詳細(xì)設(shè)計、編碼、測試等)。要求每階段產(chǎn)生的軟件工程文檔等軟件配置齊全、合理。5.課程設(shè)計結(jié)束上交課程設(shè)計報告電子版、編碼。要求的提交的課程設(shè)計報告內(nèi)容包括:1)問題定義2)需求分析3)概要設(shè)計4)詳細(xì)設(shè)計5)程序設(shè)計6)軟件測試。設(shè)計內(nèi)容與步驟學(xué)校有若干公寓,每棟5層,每層18個房間,每個房間4個學(xué)生,需要一個公寓管理系統(tǒng)實現(xiàn)管理。系統(tǒng)主要模塊如下:(1)學(xué)生公寓管理系統(tǒng)設(shè)計與實現(xiàn)—寢室分配寢室分配:根據(jù)系別、年級、班級分配寢室。查詢寢室狀態(tài)和入住信息。(2)學(xué)生公寓管理系統(tǒng)設(shè)計與實現(xiàn)—學(xué)生管理學(xué)生管理:實現(xiàn)入住學(xué)生信息的維護和查詢功能住宿查詢:包括按公寓樓號、學(xué)生姓名等查詢住宿信息。(3)學(xué)生公寓管理系統(tǒng)設(shè)計與實現(xiàn)—財產(chǎn)管理財產(chǎn)管理:實現(xiàn)對公寓財產(chǎn)的管理功能。(4)學(xué)生公寓管理系統(tǒng)設(shè)計與實現(xiàn)—出入登記出入登記:實現(xiàn)對學(xué)生搬出公寓的貨物進(jìn)行登記和對外來人員進(jìn)行登記等功能。(5)學(xué)生公寓管理系統(tǒng)設(shè)計與實現(xiàn)—系統(tǒng)管理系統(tǒng)管理:參數(shù)設(shè)置(如公寓樓號、寢室房號、系別、年級、班級的設(shè)置)設(shè)計工作計劃與進(jìn)度安排1.工作計劃1)軟件工程課程設(shè)計任務(wù)是一個團隊合作完成的任務(wù),小組每位成員都要自始至終一起參與完成。2)任務(wù)分配要求:軟件開發(fā)注重過程管理,組長負(fù)責(zé)整個任務(wù)的管理和協(xié)調(diào)。組長根小組成員情況,將題目進(jìn)行分解,每個成員至少要完成一個模塊的設(shè)計工作。3)文檔的書寫安排:2位成員負(fù)責(zé)需求分析文檔的書寫,2位成員負(fù)責(zé)概要設(shè)計文檔的書寫,小組成員每人完成自己分得的模塊的詳細(xì)設(shè)計、實現(xiàn)和測試。4)課程設(shè)計結(jié)束,根據(jù)課程設(shè)計模板,每位學(xué)生提交一份完整的“軟件工程課程設(shè)計報告”。2.進(jìn)度安排第9周:布置課程設(shè)計工作,布置題目,分組,組長分工;第10周:書寫軟件可行性研究報告,星期三介紹報告;第11周:書寫軟件開發(fā)計劃,星期三介紹報告;第12周:書寫需求分析文檔,星期三介紹報告;第13周:書寫概要設(shè)計文檔,星期三介紹報告;第14周:書寫詳細(xì)設(shè)計文檔,星期三介紹報告;第15周:書寫測試報告,星期三介紹報告;第19周:撰寫課程設(shè)計報告;第20周:答辯,經(jīng)任課教師檢驗合格后每位同學(xué)將自己的文件打包(文檔+代碼),文件名:學(xué)號姓名(2007000101某某).rar交給組長;組長將文檔和程序存儲到資料室存儲器中,同時發(fā)公共郵箱一份。設(shè)計考核要求設(shè)計考核成績分為三部分:課程設(shè)計報告(50%)程序?qū)崿F(xiàn)(30%)課程設(shè)計考勤(20%)指導(dǎo)教師(簽字):教研室主任(簽字):1需求分析1.1系統(tǒng)概述目前我校對于公寓的管理仍有公寓中心,各二級學(xué)院和物業(yè)人員依靠人力進(jìn)行管理,而且宿舍中的各種出入人員和財務(wù)管理還僅僅依靠紙質(zhì)文件,容易丟失和損壞,而學(xué)生的日常管理也有個學(xué)員到院自行收集信息管理。一旦出現(xiàn)變動無法上傳,最直接的導(dǎo)致每年新生入學(xué)時,需要許多人員進(jìn)行服務(wù),和進(jìn)行前期準(zhǔn)備。而且新生宿舍的分配也有純粹的人工進(jìn)行,耗時耗力,而且難以杜絕中間的各種主觀問題?;诖宋覀冮_始了系統(tǒng)的開發(fā)。1.2目標(biāo)系統(tǒng)描述1.2.1組織結(jié)構(gòu)與職責(zé)圖1.2.1山東建筑大學(xué)組織結(jié)構(gòu)圖1.2.2角色定義目標(biāo)系統(tǒng)中的角色如表1.1所示。表1.1角色定義編號角色所在部門職責(zé)1系統(tǒng)管理員信息中心負(fù)責(zé)系統(tǒng)的管理維護,用戶權(quán)限的分配,對用戶的管理。2公寓中心工作人員公寓中心公寓的具體管理工作,全校宿舍的分配,院級的宿舍管理。3院學(xué)生組織工作人員二級學(xué)院負(fù)責(zé)具體學(xué)生事務(wù),把宿舍分配給所有新生,對新生宿舍具體的管理和安排。4學(xué)院導(dǎo)員二級學(xué)院對學(xué)生的信息進(jìn)行管理。負(fù)責(zé)學(xué)生的生活學(xué)習(xí)5樓管物業(yè)控制宿舍的出入情況,負(fù)責(zé)中東宿舍樓的管理1.2.3業(yè)務(wù)流程整個公寓管理系統(tǒng)的業(yè)務(wù)一共有7個,登陸,用戶管理,公寓管理,公寓分配,學(xué)生管理,出入人員管理,財務(wù)管理。(1)登陸圖1.2.2用戶登錄流程圖每一個用戶在登錄時,系統(tǒng)會根據(jù)用戶名和密碼對照,再根據(jù)權(quán)限跳轉(zhuǎn)相應(yīng)網(wǎng)頁。(2)用戶管理圖1.2.3用戶管理管理員登陸后,對用戶進(jìn)行操作,操作完成后系統(tǒng)返回對應(yīng)信息。(3)公寓管理圖1.2.4公寓管理流程圖公寓中心工作人員登陸后,對公寓進(jìn)行操作,操作完成后系統(tǒng)返回對應(yīng)信息。(4)公寓分配圖1.2.5公寓分配流程圖公寓分配分兩部分進(jìn)行,首先由公寓中心對公寓信息進(jìn)行第一次分配,把宿舍分給各學(xué)院,再由各二級學(xué)院進(jìn)行分配。(5)學(xué)生管理圖1.2.6學(xué)生管理流程圖學(xué)院導(dǎo)員登陸后,對學(xué)生信息進(jìn)行操作,操作完成后系統(tǒng)返回對應(yīng)信息。(6)出入人員管理圖1.2.7出入人員管理流程圖樓管登陸后,對出入人員信息進(jìn)行操作,操作完成后系統(tǒng)返回對應(yīng)信息。(7)財務(wù)管理圖1.2.7財務(wù)管理流程圖1.2.4表格及報表1.3目標(biāo)系統(tǒng)功能需求1.3.1功能需求分析公寓管理系統(tǒng)涉及系統(tǒng)管理員,公寓管理員,學(xué)院工作人員,學(xué)院老師,樓管。不同的角色對系統(tǒng)的使用權(quán)限不同。其中系統(tǒng)管理員擁有對該系統(tǒng)的最高權(quán)限,能夠在該系統(tǒng)中執(zhí)行對其他所有用戶的權(quán)限控制和對用戶的管理操作;公寓管理員負(fù)責(zé)全校宿舍的管理和初級宿舍分配;學(xué)院工作人員則負(fù)責(zé)學(xué)院級別的宿舍分配和手動調(diào)節(jié)宿舍;學(xué)院老師則可以對學(xué)生信息進(jìn)行操作;樓管則負(fù)責(zé)出入人員和財務(wù)的管理。1.3.2系統(tǒng)用例圖圖1.3.1公寓管理用例圖1.3.2系統(tǒng)時序圖圖1.3.1公寓管理時序圖1.3.4系統(tǒng)類圖公寓管理實體類為ApartBean,它的屬性包括樓號、宿舍號、最大人數(shù)、已有人數(shù)、所屬學(xué)院、分配時間圖1.3.22概要設(shè)計2.1數(shù)據(jù)流圖及數(shù)據(jù)字典2.1.1公寓管理系統(tǒng)管理系統(tǒng)數(shù)據(jù)流圖在這個系統(tǒng)里,公寓中心只有向系統(tǒng)里更新公寓信息的權(quán)利,還有分配給二級學(xué)院宿舍的權(quán)力。二級學(xué)院可以進(jìn)行宿舍到人的分配功能公寓管理2.2數(shù)據(jù)分析與數(shù)據(jù)庫設(shè)計根據(jù)要求可知,實體有3個。(1)公寓宿舍實體的屬性為:{樓號、宿舍號、最大人數(shù)、已有人數(shù)、所屬學(xué)院、分配時間}(2)用戶實體的屬性為:{用戶名、密碼、權(quán)限、備注(3)學(xué)生實體的屬性為:{學(xué)號、姓名、學(xué)院、專業(yè)、班級、樓號、宿舍號}2.2.1數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計表名說明備注apartInfo公寓信息表儲存全部公寓信息accountIfo用戶信息表系統(tǒng)內(nèi)所有登錄用戶的信息studentInfo學(xué)生信息表記錄學(xué)生信息的表apartInfo數(shù)據(jù)字典列名類型內(nèi)容備注BuildingNoInt公寓樓號DormitoryNoInt宿舍號allPeopleInt總?cè)藬?shù)livePeopleInt已有有人數(shù)belongSchoolVarchar(50)所屬學(xué)院TimeInt分配時間accountIfo數(shù)據(jù)字典列名類型內(nèi)容備注accountVarchar(50)賬號主鍵passwordVarchar(50)密碼powerInt權(quán)限r(nóng)emarksVarchar(50)備注studentInfo數(shù)據(jù)字典列名類型內(nèi)容備注studentNoInt學(xué)號主鍵studentNameVarchar(50)姓名studentCollegeVarchar(50)學(xué)院studentJobVarchar(50)專業(yè)studentClassVarchar(50)班級BuildingNoInt樓號DormitoryNoInt宿舍號2.2.2視圖設(shè)計2.3功能概要設(shè)計模塊名稱子模塊1子模塊2功能說明1.公寓中心工作人員1.1公寓管理1.1.1新增公寓增加一個新的宿舍1.1.2刪除公寓刪除一個宿舍,把一個宿舍從系統(tǒng)中拿走1.1.3修改公寓修改公寓信息,保證日查維護1.1.4查詢公寓查詢單個公寓信息1.1.5顯示所有公寓信息一次性顯示所有公寓信息1.2校級公寓分配1.2.1校級公寓分配把宿舍分給各個二級學(xué)院2.院學(xué)生組織工作人員2.1院級宿舍分配2.1.1院級宿舍分配把宿舍分給本院每個新生。2.2微調(diào)2.2.1修改公寓對本院學(xué)生宿舍進(jìn)行手動調(diào)節(jié)2.2.2顯示所有公寓信息顯示本院所有公寓信息3詳細(xì)設(shè)計3.1公寓中心工作人員3.1.1公寓管理界面設(shè)計登陸界面新增公寓界面刪除公寓界面修改公寓信息界面查詢公寓新界面查詢結(jié)果界面操作成功界面顯示所有公寓信息界面出錯宿舍號已存在出錯界面公寓分配界面公寓分配結(jié)果界面微調(diào)界面功能說明1.1公寓管理模塊說明書模塊名稱:公寓管理窗口標(biāo)題及標(biāo)識:新增公寓:insrtApart.jsp刪除公寓:deleteApart.jsp修改公寓:updateApart.jsp查詢公寓:selectApart.jsp顯示所有公寓信息:flatMangager.jsp校級公寓分配:相關(guān)表及視圖:公寓信息表:apartInfo窗口控件設(shè)計說明新增公寓:insrtApart.jsp信息輸入:添加的公寓樓號—建立一個文本框添加的宿舍號—建立一個文本框總?cè)藬?shù)—建立一個文本框已有有人數(shù)—建立一個文本框所屬學(xué)院—建立一個文本框分配時間—建立一個文本框新增結(jié)果:成功則顯示成功頁面,失敗顯示失敗頁面。功能按鈕:建立2個功能按鈕,重置和提交刪除公寓:deleteApart.jsp信息輸入:刪除的公寓樓號—建立一個文本框。刪除的宿舍號—建立一個文本框。功能按鈕:建立2個功能按鈕,重置和提交修改公寓:updateApart.jsp信息輸入:修改的公寓樓號—建立一個文本框修改的宿舍號—建立一個文本框總?cè)藬?shù)—建立一個文本框已有有人數(shù)—建立一個文本框所屬學(xué)院—建立一個文本框分配時間—建立一個文本框功能按鈕:建立一個功能按鈕,保存。查詢公寓:selectApart.jsp信息輸入:查詢的公寓樓號—建立一個文本框。查詢的公宿舍號—建立一個文本框。功能按鈕:建立2個功能按鈕,重置和提交功能按鈕:建立2個功能按鈕,確定和取消。顯示所有公寓信息:flatMangager.jsp<tr><tdclass="res-lab">樓號</td> <tdclass="res-lab">宿舍號</td> <tdwidth="459"class="res-lab">總?cè)藬?shù)</td> <tdwidth="459"class="res-lab">已有人數(shù)</td> <tdwidth="459"class="res-lab">所屬學(xué)院</td> <tdwidth="459"class="res-lab">分配時間</td> </tr>一個表格顯示。功能說明公寓信息管理查詢:通過輸入想要的樓號和宿舍號,系統(tǒng)會返回對應(yīng)宿舍的信息。新增:通過填寫表單信息后,將新的宿舍添加到公寓信息表中,同時如果成功則會返回成功的頁面,如果失敗則會報錯。修改:通過輸入想要的樓號和宿舍號,同時輸入想要修改成的數(shù)據(jù),通過表單對數(shù)據(jù)庫進(jìn)行修改。同時如果成功則會返回成功的頁面,如果失敗則會報錯。刪除:通過輸入想要的樓號和宿舍號,刪除相應(yīng)宿舍。同時如果成功則會返回成功的頁面,如果失敗則會報錯。顯示所有公寓信息:報數(shù)據(jù)庫中所有資料打印到一個表格中,顯示在網(wǎng)頁上。新增公寓:insrtApart.jsp重置:將所有的文本框、列表框中輸入的信息清空,單選框默認(rèn)為第一個,復(fù)選框

至于未選狀態(tài)。提交:將表單提交到ApartDal.Java,根據(jù)此時所提交的網(wǎng)頁地址,調(diào)用ApartBean.Java中的Insert方法,加表單內(nèi)容存入數(shù)據(jù)庫。同時返回操作情況,以用來顯示是否成功。刪除公寓:deleteApart.jsp重置:將所有的文本框、列表框中輸入的信息清空,單選框默認(rèn)為第一個,復(fù)選框

至于未選狀態(tài)。提交:將表單提交到ApartDal.Java,根據(jù)此時所提交的網(wǎng)頁地址,調(diào)用ApartBean.Java中的delete方法,通過樓號和宿舍號找到相應(yīng)宿舍,對其進(jìn)行刪除。同時返回操作情況,以用來顯示是否成功。修改公寓:updateApart.jsp重置:將所有的文本框、列表框中輸入的信息清空,單選框默認(rèn)為第一個,復(fù)選框

至于未選狀態(tài)。提交:將表單提交到ApartDal.Java,根據(jù)此時所提交的網(wǎng)頁地址,調(diào)用ApartBean.Java中的update方法,通過樓號和宿舍號找到相應(yīng)宿舍,對其進(jìn)行修改,將內(nèi)容改為表單中的內(nèi)容。同時返回操作情況,以用來顯示是否成功。查詢公寓:selectApart.jsp重置:將所有的文本框、列表框中輸入的信息清空,單選框默認(rèn)為第一個,復(fù)選框

至于未選狀態(tài)。提交:將表單提交到ApartDal.Java,根據(jù)此時所提交的網(wǎng)頁地址,調(diào)用ApartBean.Java中的select方法,通過樓號和宿舍號找到相應(yīng)宿舍,將此行內(nèi)容取出,在網(wǎng)頁上的一個列表中顯示出來。顯示所有公寓信息:flatMangager.jsp網(wǎng)頁在加載時,自動實例化ApartBean對象,同時調(diào)用ListAllApart()方法,把數(shù)據(jù)庫的內(nèi)容讀取到一個list中,在從一個表格中打印出來。校級公寓分配:重置:將所有的文本框、列表框中輸入的信息清空,單選框默認(rèn)為第一個,復(fù)選框

至于未選狀態(tài)。提交:將表單提交到ApartDal.Java,根據(jù)此時所提交的網(wǎng)頁地址,調(diào)用ApartBean.Java中的divide方法,通過學(xué)院提交的人數(shù),取4的倍數(shù),計算出宿舍數(shù)量,從沒有學(xué)院和分配時間的宿舍分配好學(xué)院和時間。1.1公寓分配模塊說明書模塊名稱:院級宿舍分配窗口標(biāo)題及標(biāo)識:院級宿舍分配divideFlat.jsp學(xué)生宿舍微調(diào)just.jsp相關(guān)表及視圖:公寓信息表:apartInfo學(xué)生信息表:studentInfo窗口控件設(shè)計說明院級宿舍分配divideFlat.jsp功能按鈕:建立1個功能按鈕,開始分配。學(xué)生宿舍微調(diào)just.jsp要調(diào)的學(xué)號—建立一個文本框要調(diào)到的樓號—建立一個文本框要調(diào)到的寢室號—建立一個文本框功能按鈕:建立2個功能按鈕,重置和提交功能說明院級宿舍分配院級宿舍分配學(xué)生宿舍微調(diào)院級宿舍分配divideFlat.jsp開始分配:點擊后,調(diào)用studentBean中的divide()方法,將本院的宿舍分到個人上。同時跳轉(zhuǎn)到結(jié)果頁面顯示分配結(jié)果。學(xué)生宿舍微調(diào)just.jsp重置:將所有的文本框、列表框中輸入的信息清空,單選框默認(rèn)為第一個,復(fù)選框

至于未選狀態(tài)。提交:將表單提交到StudentDal.Java,根據(jù)此時所提交的網(wǎng)頁地址,調(diào)用StudentDal.Java中的Just(StudentBean)方法,通過樓號和宿舍號找到相應(yīng)宿舍,通過學(xué)號找到相應(yīng)同學(xué),找到相信宿舍后,如果未滿就就讓這個人插入,如果已滿,就從目標(biāo)宿舍中挑選一人與之對換。同時返回操作情況,以用來顯示是否成功。4程序設(shè)計4.1系統(tǒng)外部環(huán)境開發(fā)環(huán)境:PC系列微機,CPU1.2G以上,內(nèi)存256及以上操作系統(tǒng):WindowsXP及以上瀏覽器:IE開發(fā)工具:MyEclipse8.5Web服務(wù)器:Tomcat6.x數(shù)據(jù)庫:SqlServer20054.2系統(tǒng)開發(fā)技術(shù)Java:面向?qū)ο缶幊陶Z言Jsp:Java服務(wù)器界面JavaBean:Java語言寫成的可重用組件JSTL:JSP標(biāo)準(zhǔn)標(biāo)簽庫SQL:結(jié)構(gòu)化查詢語言本系統(tǒng)采用JSP+Servlet+javaBean技術(shù)開發(fā)而成,采用B/S架構(gòu)進(jìn)行開發(fā),開發(fā)環(huán)境采用MyEclipse開發(fā),數(shù)據(jù)庫使用SQLServer2005數(shù)據(jù)庫來存儲信息。運行在windows7系統(tǒng)上。電腦配置:處理器IntelCorei5-2410M(2.3GHz)內(nèi)存容量2GB硬盤容量500GB。服務(wù)器:Tomcat6.0MyEclipse:jdk5.0核心代碼:Jsp網(wǎng)頁:新增公寓:insrtApart.jsp刪除公寓:deleteApart.jsp修改公寓:updateApart.jsp查詢公寓:selectApart.jsp顯示所有公寓信息:flatMangager.jspServlet:ApartDaljavaBean:ApartBean4.3.1添加公寓信息界面insertApart.J<%@pagelanguage="java"import="java.util.*"import="Bean.ApartBean"pageEncoding="UTF-8"%><%@pagecontentType="text/html;charset=UTF-8"%><%@tagliburi="/jsp/jstl/core"prefix="c"%><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><basehref="<%=basePath%>"><title>添加公寓信息</title><linkrel="stylesheet"type="text/css"href="css/common.css"/><linkrel="stylesheet"type="text/css"href="css/main.css"/><scripttype="text/javascript"src="js/libs/modernizr.min.js"></script>引入樣式表。 <metahttp-equiv="pragma"content="no-cache"> <metahttp-equiv="cache-control"content="no-cache"> <metahttp-equiv="expires"content="0"> <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"> <metahttp-equiv="description"content="Thisismypage"> <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"> <!-- <linkrel="stylesheet"type="text/css"href="styles.css"> --></head><body><div><divclass="topbar-wrapwhite">左側(cè)功能菜單<divclass="topbar-innerclearfix"><divclass="topbar-logo-wrapclearfix"><h1class="topbar-logonone"><ahref="index.html"class="navbar-brand">后臺管理</a></h1><ulclass="navbar-listclearfix"><li><aclass="on"href="index.html">首頁</a></li></ul></div> </div></div></div><divclass="containerclearfix"><divclass="sidebar-wrap"><divclass="sidebar-title"><h1>菜單</h1></div><divclass="sidebar-content"><ulclass="sidebar-list"><li><iclass="icon-font"></i>公寓信息</a><ulclass="sub-menu"><li><ahref="selectApart.jsp"><iclass="icon-font"></i>查詢公寓信息</a></li><li><ahref="UpdateApart.jsp"><iclass="icon-font"></i>修改公寓信息</a></li><li><ahref="deleteApart.jsp"><iclass="icon-font"></i>刪除公寓信息</a></li><li><ahref="insertApart.jsp"><iclass="icon-font"></i>增加公寓信息</a></li> <li><ahref="flatMangager.jsp"><iclass="icon-font"></i>顯示所有公寓信息</a></li></ul></li></ul></div></div><divclass="main-wrap"><divclass="crumb-wrap"><divclass="crumb-list"><iclass="icon-font"></i><span>歡迎使用學(xué)生管理系統(tǒng),公寓中心工作人員</span></div></div></div> <!--ddddd--> <divclass="main-wrap"> <divclass="result-title"><h1>公寓信息添加</h1></div> <divclass="result-wrap"><divclass="result-content">用于向servelet提交的表單元素。<formaction="ApartDal"method="post"id="myform"name="myform"><tableclass="insert-tab"width="100%"><tbody><tr><th><iclass="require-red">*</i>添加的公寓樓號:</th><td><inputclass="common-textrequired"id="title"name="BuildingNo"size="50"value=""type="text"></td></tr><tr><th><iclass="require-red">*</i>添加的宿舍號:</th><td><inputclass="common-text"name="DormitoryNo"size="50"type="text"></td></tr> <tr><th><iclass="require-red">*</i>總?cè)藬?shù):</th><td><inputclass="common-text"name="allPeople"size="50"type="text"></td></tr> <tr><th><iclass="require-red">*</i>已有有人數(shù):</th><td><inputclass="common-text"name="livePeople"size="50"type="text"></td></tr> <tr><th><iclass="require-red">*</i>所屬學(xué)院:</th><td><inputclass="common-text"name="belongSchool"size="50"type="text"></td></tr><tr><th><iclass="require-red">*</i>分配時間:</th><td><inputclass="common-text"name="time"size="50"type="text"></td></tr><tr><th></th><td><inputclass="btnbtn-primarybtn6mr10"value="提交"type="submit"><inputclass="btnbtn6"onClick="history.go(-1)"value="返回"type="button"></td></tr></tbody></table></form></div></div><divclass="result-wrap"><divclass="result-title"><h1>使用幫助</h1></div><divclass="result-content"><ulclass="sys-info-list"><li><labelclass="res-lab">電話:</label><spanclass="res-info">lt;/span></li></ul></div></div></div></div></body></html>4.3publicclassApartDalextendsHttpServlet{ /** *ThedoPostmethodoftheservlet.<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost. * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ @Override publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{用來區(qū)分來源的字符串Stringinsert="http://localhost:8080/FlatManage/insertApart.jsp"; Stringselect="http://localhost:8080/FlatManage/selectApart.jsp"; Stringdelete="http://localhost:8080/FlatManage/deleteApart.jsp"; Stringupdate="http://localhost:8080/FlatManage/updateApart.jsp"; if(request.getHeader("Referer").equals(select)){如果表單來自http://localhost:8080/FlatManage/selectApart.jsp網(wǎng)頁則開始執(zhí)行這一步 ApartBeanapart=newApartBean(); ApartBeanapart1=newApartBean(); apart.setbuildingno(Integer.parseInt(request.getParameter("BuildingNo"))); apart.setdormitoryno(Integer.parseInt(request.getParameter("DormitoryNo"))); try{ apart1=apart.Select(apart);調(diào)用bean里的select方法 if(apart1!=null){ request.setAttribute("object",apart1); request.getRequestDispatcher("ApartSelect.jsp").forward(request,response);網(wǎng)頁跳轉(zhuǎn) } else{ request.getRequestDispatcher("ApartFail.jsp").forward(request,response); } }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } elseif(request.getHeader("Referer").equals(delete)){ ApartBeanapart=newApartBean(); ApartBeanapart1=newApartBean(); apart.setbuildingno(Integer.parseInt(request.getParameter("BuildingNo"))); apart.setdormitoryno(Integer.parseInt(request.getParameter("DormitoryNo"))); intflag; try{ flag=apart1.Delete(apart); if(flag==0){ request.getRequestDispatcher("ApartFail.jsp").forward(request,response); }elseif(flag==1){ request.getRequestDispatcher("ApartSuccess.jsp").forward(request,response); }else{ request.getRequestDispatcher("ApartWithout.jsp").forward(request,response); } }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } elseif(request.getHeader("Referer").equals(insert)){ ApartBeanapart=newApartBean(); ApartBeanapart1=newApartBean(); apart.setbuildingno(Integer.parseInt(request.getParameter("BuildingNo"))); apart.setdormitoryno(Integer.parseInt(request.getParameter("DormitoryNo"))); apart.setAllPeople(Integer.parseInt(request.getParameter("allPeople"))); apart.setLivePeople(Integer.parseInt(request.getParameter("livePeople"))); apart.setBelongSchool(request.getParameter("belongSchool")); apart.setTime(Integer.parseInt(request.getParameter("time"))); intflag; try{ flag=apart1.Insert(apart); if(flag==2){ request.getRequestDispatcher("ApartLive.jsp").forward(request,response); }elseif(flag==1){ request.getRequestDispatcher("ApartSuccess.jsp").forward(request,response); }else{ request.getRequestDispatcher("ApartFail.jsp").forward(request,response); } }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } else{ ApartBeanapart=newApartBean(); ApartBeanapart1=newApartBean(); apart.setbuildingno(Integer.parseInt(request.getParameter("BuildingNo"))); apart.setdormitoryno(Integer.parseInt(request.getParameter("DormitoryNo"))); apart.setAllPeople(Integer.parseInt(request.getParameter("allPeople"))); apart.setLivePeople(Integer.parseInt(request.getParameter("livePeople"))); apart.setBelongSchool(request.getParameter("belongSchool")); apart.setTime(Integer.parseInt(request.getParameter("time"))); intflag; try{ flag=apart1.Update(apart); if(flag==1){ request.getRequestDispatcher("ApartSuccess.jsp").forward(request,response); }elseif(flag==0){ request.getRequestDispatcher("ApartFail.jsp").forward(request,response); }else{ request.getRequestDispatcher("ApartWithout.jsp").forward(request,response); } }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } }}4.3.3publicclassApartBean{實體所擁有的屬性privateintbuildingno;privateintdormitoryno;privateintallPeople;privateintlivePeople;privateStringbelongSchool;privateinttime;getset方法List<ApartBean>list1=newLinkedList<ApartBean>(); publicintgetbuildingno(){ returnbuildingno; } publicvoidsetbuildingno(intbudlingNo){ buildingno=budlingNo; } publicintgetdormitoryno(){ returndormitoryno; } publicvoidsetdormitoryno(intdormitoryNo){ dormitoryno=dormitoryNo; } publicintgetAllPeople(){ returnallPeople; } publicvoidsetAllPeople(intallPeople){ this.allPeople=allPeople; } publicintgetLivePeople(){ returnlivePeople; } publicvoidsetLivePeople(intlivePeople){ this.livePeople=livePeople; } publicStringgetBelongSchool(){ returnbelongSchool; } publicvoidsetBelongSchool(StringbelongSchool){ this.belongSchool=belongSchool; } publicintgetTime(){ returntime; } publicvoidsetTime(inttime){ this.time=time; } publicList<ApartBean>ListAllApart(){//獲取公寓信息表所有內(nèi)容的方法 Connectionconn=null;PreparedStatementps=null;ResultSetre=null;try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Stringurl="jdbc:sqlserver://localhost:49188;DatabaseName=FlatManager"; Stringuser1="ares"; Stringpassworda="ares"; conn=DriverManager.getConnection(url,user1,passworda); Stringsql="select*fromapartInfo"; ps=conn.prepareStatement(sql); re=ps.executeQuery(); while(re.next()){ ApartBeanapart11=newApartBean(); apart11.buildingno=re.getInt("BuildingNo"); apart11.dormitoryno=re.getInt("DormitoryNo"); apart11.allPeople=re.getInt("allPeople"); apart11.livePeople=re.getInt("livePeople"); apart11.belongSchool=re.getString("belongSchool"); apart11.time=re.getInt("time"); list1.add(apart11); }}catch(ClassNotFoundExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnlist1; } publicApartBeanSelect(ApartBeanuser2)throwsSQLException{//查詢單個公寓信息所使用的方法 Connectionconn=null;PreparedStatementps=null;ResultSetre=null;ApartBeanapart=null;try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Stringurl="jdbc:sqlserver://localhost:49188;DatabaseName=FlatManager"; Stringuser1="ares"; Stringpassworda="ares"; conn=DriverManager.getConnection(url,user1,passworda); Stringsql="select*fromapartInfowhereBuildingNo=?andDormitoryNo=?"; ps=conn.prepareStatement(sql); ps.setInt(1,user2.buildingno); ps.setInt(2,user2.dormitoryno); re=ps.executeQuery(); while(re.next()){ apart=newApartBean(); apart.buildingno=re.getInt("BuildingNo"); apart.dormitoryno=re.getInt("DormitoryNo"); apart.allPeople=re.getInt("allPeople"); apart.livePeople=re.getInt("livePeople"); apart.belongSchool=re.getString("belongSchool"); apart.time=re.getInt("time"); }}catch(ClassNotFoundExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnapart; } publicintDelete(ApartBeanuser2)throwsSQLException{//刪除公寓信息的方法。 Connectionconn=null;PreparedStatementps=null;intresult=0;if(user2.Select(user2)!=null){ try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Stringurl="jdbc:sqlserver://localhost:49188;DatabaseName=FlatManager"; Stringuser1="ares"; Stringpassworda="ares"; conn=DriverManager.getConnection(url,user1,passworda); Stringsql="deletefromapartInfowhereBuildingNo=?andDormitoryNo=?"; ps=conn.prepareStatement(sql); ps.setInt(1,user2.buildingno); ps.setInt(2,user2.dormitoryno); result=ps.executeUpdate();}catch(ClassNotFoundExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } if(result==1){ return1; } else{ return0; }}else{ return0;} } publicintUpdate(ApartBeanuser)throwsSQLException{ Connectionconn=null;PreparedStatementps=null;intresult=0;if(user.Select(user)!=null){ try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Stringurl="jdbc:sqlserver://localhost:49188;DatabaseName=FlatManager"; Stringuser1="ares"; Stringpassworda="ares"; conn=DriverManager.getConnection(url,user1,passworda); Stringsql="UpdateapartInfosetallPeople=?,livePeople=?,belongSchool=?,time=?whereBuildingNo=?andDormitoryNo=?"; ps=conn.prepareStatement(sql); ps.setInt(1,user.allPeople); ps.setInt(2,user.livePeople); ps.setString(3,user.belongSchool); ps.setInt(4,user.time); ps.setInt(5,user.buildingno); ps.setInt(6,user.dormitoryno); result=ps.executeUpdate();}catch(ClassNotFoundExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } if(result==1){ return1; } else{ return0; }}else{ return0;} } publicintInsert(ApartBeanuser)throwsSQLException{ Connectionconn=null;PreparedStatementps=null;intresult=0;if(user.Select(user)==null){ try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Stringurl="jdbc:sqlserver://localhost:49188;DatabaseName=FlatManager"; Stringuser1="ares"; Stringpassworda="ares"; conn=DriverManager.getConnection(url,user1,passworda); Stringsql="insertintoapartInfo(BuildingNo,DormitoryNo,allPeople,livePeople,belongSchool,time)values(?,?,?,?,?,?)"; ps=conn.prepareStatement(sql); ps.setInt(1,user.buildingno); ps.setInt(2,user.dormitoryno); ps.setInt(3,user.allPeople); ps.setInt(4,user.livePeople); ps.setString(5,user.belongSchool); ps.setInt(6,user.time); result=ps.executeUpdate();}catch(ClassNotFoundExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } if(result==1){ return1; } else{ return0; }}else{ return0;} }}總結(jié)以一個組為單位進(jìn)行軟件開發(fā)雖然不是第一次,但是這次實在軟件工程的指導(dǎo)下進(jìn)行的,同時結(jié)合了本學(xué)期的javaee的學(xué)習(xí),制作成了網(wǎng)站樣式,利用css進(jìn)行了布局,讓網(wǎng)站變得比以往更加美觀。同時利用管理畫圖工具,在開始之前就對程序和數(shù)據(jù)庫有了直觀的印象,讓開發(fā)過更加簡潔,也讓開發(fā)工作變得更容易配合寫作。

參考文獻(xiàn)[1]劉甫迎.C#程序設(shè)計教程[M].北京:電子工業(yè)出版社,2008.[2]黃耀申,張志文,姜海艦等.模具制造企業(yè)物流管理信息系統(tǒng)開發(fā)與實現(xiàn)(軟件工程論文)[J].物流科技,2010,(9):15-17.[3]成先海.數(shù)據(jù)庫基礎(chǔ)與應(yīng)用[M].北京:機械工業(yè)出版社,2008.[4]JoelMurach.ASP.NET2.0webprogrammingwithc#2005[M].Mumbai:MikeMurach&AssociatesInc,2006.[5]曹偉.電子商務(wù)條件下的糧食物流信息管理系統(tǒng)構(gòu)建[J].湖南商學(xué)院學(xué)報,2010,17(3):100-103.[6]AbrahamSilberschatz.DatabaseSystem[M].Singapore:Mcgraw.HillinternationalLtd,2006.[7]楊林,盛業(yè)華,王靖,羅濤.基于UML的物流管理信息系統(tǒng)設(shè)計與實現(xiàn)[J].南京師大學(xué)報(自然科學(xué)版),2009,32(4):122-126.[8]RogerS-Pressman.SoftwareEngineering[M].NewDelhi:TataMcGraw-HillPublishingCompanyLtd,2006.[9]張艷.基于工作過程的物流信息系統(tǒng)與管理課程的重構(gòu)[J].遼寧高職學(xué)報,2010,12(2):45-47.[10]HerbertSchildt.ThecompletereferenceJava2[M].NewDelhi:TataMcGraw-HillPublishingCompanyLtd,2006.[11]鄒建峰.C#企業(yè)級開發(fā)案例精解[M].北京:人民郵電出版社,2006.[12]顧正蘭.高校圖書采購決策系統(tǒng)分析與研究[J].信息系統(tǒng)工程,2009,(12):110-116.[13]李煒.建立高效配送體系實現(xiàn)供應(yīng)鏈優(yōu)化[J].石油商技,2002,20(4):20-22.[14]胡業(yè)江,張全伙.基于ASP.NET的WEB數(shù)據(jù)庫的分頁顯示[J].計算機系統(tǒng)應(yīng)用,2004,(1):30-31.[15]李德奇.ASP.NET程序設(shè)計[M].北京:人民郵電出版社,2007.[16]李劍.路劍.利用物流信息技術(shù)再造我國鮮活農(nóng)產(chǎn)品物流系統(tǒng)[J].商場現(xiàn)代化,2006,2(5):34-38.山東建筑大學(xué)計算機科學(xué)與技術(shù)學(xué)院課程設(shè)計指導(dǎo)教師評語班級:學(xué)生姓名:學(xué)號:指導(dǎo)教師評語(包括工作態(tài)度,遵守紀(jì)律;基本理論、知識、技能;獨立工作能力和分析解決問題的能力;完成任務(wù)情況及水平):學(xué)生成績(百分制):指導(dǎo)教師簽名:年月日基于C8051F單片機直流電動機反饋控制系統(tǒng)的設(shè)計與研究基于單片機的嵌入式Web服務(wù)器的研究MOTOROLA單片機MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論