版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> XXXXXXXX </b></p><p> 2011 屆畢業(yè)設(shè)計(jì)說明書</p><p> xx家政服務(wù)管理系統(tǒng) </p><p> 系 、 部: XXXXXXXXXXXX </p><p> 學(xué)生姓名: XXX </p>
2、;<p> 指導(dǎo)教師: XXX 職稱 XXXX </p><p> 專 業(yè): XXXXXXXXXX </p><p> 班 級(jí): XXXXXX </p><p> 完成時(shí)間: 2011-04-15 </p><p&g
3、t;<b> 摘要</b></p><p> 家政服務(wù)管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面.對(duì)于前者要求建立數(shù)據(jù)一致性和完整性強(qiáng),數(shù)據(jù)安全性好的數(shù)據(jù)庫(kù).而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。隨著計(jì)算機(jī)技術(shù)的高速發(fā)展,人們對(duì)計(jì)算機(jī)的依賴性越來越強(qiáng),特別是用計(jì)算機(jī)開發(fā)的數(shù)據(jù)庫(kù)以及數(shù)據(jù)管理系統(tǒng)在生活應(yīng)用中表現(xiàn)得更為
4、突出,為此開發(fā)此系統(tǒng)。通過使用家政服務(wù)管理系統(tǒng),使家政服務(wù)店的管理工作系統(tǒng)化、規(guī)范化、自動(dòng)化、簡(jiǎn)易化、智能化,從而達(dá)到提高家政服務(wù)管理效率的目的。系統(tǒng)開發(fā)采用Sun公司的Java,利用其強(qiáng)大的可視化界面功能及對(duì)數(shù)據(jù)庫(kù)的支持,先構(gòu)造一個(gè)原型,逐步增加功能,最終滿足需求。 </p><p> 關(guān)鍵詞:家政服務(wù)、 管理系統(tǒng)、數(shù)據(jù)庫(kù)、瀏覽器/服務(wù)器體系結(jié)構(gòu) </p><p><b>
5、 目錄</b></p><p><b> 摘要2</b></p><p><b> 目錄3</b></p><p> 第一章 緒 論4</p><p> 1.1 系統(tǒng)開發(fā)背景4</p><p> 第二章 開發(fā)工具簡(jiǎn)介6</p>
6、<p> 2.1 SQL Server簡(jiǎn)介6</p><p> 2.2 Myeclipse7.5簡(jiǎn)介7</p><p> 2.3 Tomcat簡(jiǎn)介7</p><p> 第三章 系統(tǒng)需求分析7</p><p> 3.1 需求分析8</p><p> 3.2 可行性分析8</
7、p><p> 3.3 系統(tǒng)分析8</p><p> 3.3.1 系統(tǒng)目標(biāo)8</p><p> 3.3.2 系統(tǒng)模塊結(jié)構(gòu)9</p><p> 3.3.3 業(yè)務(wù)流程圖9</p><p> 第四章 系統(tǒng)總體設(shè)計(jì)10</p><p> 4.1 系統(tǒng)設(shè)計(jì)的內(nèi)容10</p>
8、<p> 4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)11</p><p> 4.2.1 數(shù)據(jù)庫(kù)分析11</p><p> 4.2.2 數(shù)據(jù)庫(kù)概念設(shè)計(jì)11</p><p> 4.2.3 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)12</p><p> 4.2.4 創(chuàng)建數(shù)據(jù)庫(kù)及表15</p><p> 第五章 系統(tǒng)詳細(xì)設(shè)計(jì)16<
9、/p><p> 5.1 注冊(cè)和登錄界面設(shè)計(jì)16</p><p> 5.2 主界面設(shè)計(jì)19</p><p> 5.3 公共類設(shè)計(jì)20</p><p> 5.4 服務(wù)預(yù)約模塊23</p><p> 5.5 查詢?cè)O(shè)計(jì)26</p><p> 5.6 客戶發(fā)布需求信息模塊28</
10、p><p> 5.7 雇員管理模塊30</p><p> 5.8 會(huì)員管理模塊設(shè)計(jì)33</p><p> 5.9 其他管理模塊設(shè)計(jì)35</p><p> 第六章 系統(tǒng)測(cè)試與運(yùn)行38</p><p> 6.1 系統(tǒng)測(cè)試測(cè)試策略說明38</p><p> 6.1.1整個(gè)系統(tǒng)界面窗口
11、的測(cè)試38</p><p> 6.1.2 數(shù)據(jù)測(cè)試項(xiàng)目38</p><p> 6.2 測(cè)試報(bào)告39</p><p> 6.3 系統(tǒng)運(yùn)行39</p><p> 第七章 結(jié)束語39</p><p><b> 致謝41</b></p><p><b&
12、gt; 參考文獻(xiàn)42</b></p><p><b> 第一章 緒 論</b></p><p> 1.1 系統(tǒng)開發(fā)背景</p><p> 近年來,隨著家政服務(wù)行業(yè)在國(guó)內(nèi)的普及,越來越多的家政服務(wù)機(jī)構(gòu)在中國(guó)大地上生根發(fā)芽。這么多的機(jī)構(gòu)和公司給需求者帶來了很大的便利,同時(shí)也給更多的需求者帶來了很大的困惑。如,我該選擇哪家機(jī)
13、構(gòu),哪家機(jī)構(gòu)的家政服務(wù)人員都是哪里的,哪家機(jī)構(gòu)的家政服務(wù)人員的工作認(rèn)真、態(tài)度好。</p><p> 此類問題的產(chǎn)生多數(shù)是由于家政服務(wù)機(jī)構(gòu)對(duì)家政服務(wù)人員的信息的管理不當(dāng)引起的。很多機(jī)構(gòu)都采用記賬本的方式來記錄、管理員工的信息,這樣就可能會(huì)導(dǎo)致信息的丟失、被隨意串改等情況,對(duì)需求者的需求帶來很大的不安定因素。</p><p> 在采用計(jì)算機(jī)的管理技術(shù)后,在很大程度上將會(huì)減少這類事情的發(fā)生,
14、也提高了信息的可信度和安全性而且對(duì)于管理者來說這樣的管理方式可以提高自己的工作效率。</p><p> 其實(shí)在國(guó)外,家政服務(wù)行業(yè)早已是一個(gè)很繁榮的行業(yè),更有日本學(xué)者說他們有一個(gè)服務(wù)行業(yè)的時(shí)代。</p><p> 這正是因?yàn)閲?guó)外的家政服務(wù)公司都有一個(gè)適合自己企業(yè)發(fā)展的管理系統(tǒng),將員工的信息進(jìn)行系統(tǒng)的、安全的管理和讓需求者有適合自己需求選擇,這樣不僅減少了對(duì)管理者人力的要求,大大提高了公司
15、的口碑、信譽(yù)和發(fā)展速度。</p><p> 1.2 系統(tǒng)開發(fā)意義</p><p> 對(duì)于正在發(fā)展中的家政服務(wù)行業(yè),一個(gè)公司的家政服務(wù)人員的信息管理是一個(gè)很重要并且很繁瑣環(huán)節(jié),這樣就需要大量的人力去進(jìn)行統(tǒng)計(jì)和管理。但xx家政服務(wù)管理系統(tǒng)通過使用數(shù)據(jù)庫(kù)這個(gè)平臺(tái),可以將大量的數(shù)據(jù)進(jìn)行統(tǒng)一管理并且可以很便捷的查找到所需要的信息。這樣可以大大減少管理者的工作時(shí)間并提高工作效率。</p>
16、;<p> 同時(shí)該系統(tǒng)支持需求者在網(wǎng)上進(jìn)行對(duì)家政服務(wù)人員的信息查詢和雇傭操作,和傳統(tǒng)的打電話雇傭方式相比,大大減少了人工接聽和處理的操作,讓工作效率變得更高。</p><p> 安全、方便、快捷的管理系統(tǒng)可以給家政公司的發(fā)展帶來很大的效益。</p><p> 1.3 研究和設(shè)計(jì)目標(biāo):</p><p> 通過利用JSP技術(shù)利用網(wǎng)頁(yè)進(jìn)行對(duì)服務(wù)人員的
17、信息錄入、修改、刪除等操作,同時(shí)也可以按照需求者的查詢條件從后臺(tái)的數(shù)據(jù)庫(kù)里進(jìn)行查找適合的結(jié)果并通過網(wǎng)頁(yè)顯示來傳達(dá)給需求者。當(dāng)最后確定需要雇傭該家政服務(wù)人員的時(shí)候就可以進(jìn)行提交或者雇傭操作,其實(shí)這里是通過對(duì)數(shù)據(jù)庫(kù)中已有數(shù)據(jù)的更改以達(dá)到需求者雇傭的目的。</p><p> 第二章 開發(fā)工具簡(jiǎn)介</p><p> 2.1 SQL Server簡(jiǎn)介</p><p>
18、SQL是英文(Structured Query Language)的縮寫,意思為結(jié)構(gòu)化查詢語言。SQL語言的主要功能就是同各種數(shù)據(jù)庫(kù)建立聯(lián)系,進(jìn)行溝通。SQL被作為關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語言。SQL語句可以用來執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫(kù)中的數(shù)據(jù),從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)等。目前,絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL語言標(biāo)準(zhǔn)。
19、SQL語言有以下幾個(gè)優(yōu)點(diǎn):</p><p><b> ?、俜沁^程化語言</b></p><p> SQL是一個(gè)非過程化的語言,因?yàn)樗淮翁幚硪粋€(gè)記錄,對(duì)數(shù)據(jù)提供自動(dòng)導(dǎo)航。SQL允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對(duì)單個(gè)記錄進(jìn)行操作,可操作記錄集,所有SQL 語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結(jié)果作為另一條SQL語句的輸入。&
20、lt;/p><p> SQL不要求用戶指定對(duì)數(shù)據(jù)的存放方法, 這種特性使用戶更易集中精力于要得到的結(jié)果;所有SQL語句使用查詢優(yōu)化器,它是RDBMS的一部分,由它決定對(duì)指定數(shù)據(jù)存取的最快速度的手段,查詢優(yōu)化器知道存在什么索引,在哪兒使用索引合適,而用戶則從不需要知道表是否有索引、有什么類型的索引。</p><p><b> ② 統(tǒng)一的語言</b></p>
21、<p> SQL可用于所有用戶的DB活動(dòng)模型,包括系統(tǒng)管理員、數(shù)據(jù)庫(kù)管理員、 應(yīng)用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶?;镜腟QL 命令只需很少時(shí)間就能學(xué)會(huì),最高級(jí)的命令在幾天內(nèi)便可掌握。</p><p> ?、?所有關(guān)系數(shù)據(jù)庫(kù)的公共語言</p><p> 由于所有主要的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)都支持SQL語言,用戶可將使用SQL的技能從一個(gè)RDBMS(關(guān)系數(shù)據(jù)庫(kù)管
22、理系統(tǒng))轉(zhuǎn)到另一個(gè),所有用SQL編寫的程序都是可以移植的。</p><p> 2.2 Myeclipse7.5簡(jiǎn)介</p><p> MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipse Enterprise Workbench ,簡(jiǎn)稱MyEclipse)是對(duì)Eclipse IDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和J2EE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它
23、是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。</p><p> 2.3 Tomcat簡(jiǎn)介</p><p> Tomcat 是一個(gè)輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選??梢赃@樣認(rèn)為,
24、當(dāng)在一臺(tái)機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)對(duì)HTML 頁(yè)面的訪問請(qǐng)求。實(shí)際上Tomcat 部分是Apache 服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。 </p><p> 第三章 系統(tǒng)需求分析</p><p><b> 3.1 需求分析</b></p><p
25、> xx家政服務(wù)管理系統(tǒng)主要實(shí)現(xiàn)的是管理者對(duì)家政服務(wù)人員信息的增加、刪除、更新等操作和需求者對(duì)家政服務(wù)人員的雇傭操作。該系統(tǒng)的開發(fā)采用MyEclipse8.5開發(fā)平臺(tái)、Tomcat6.0服務(wù)器和SQL Server 2000數(shù)據(jù)庫(kù)來實(shí)現(xiàn)。</p><p> 該系統(tǒng)有兩種登錄權(quán)限,一種是管理員身份,另一種是需求者身份。</p><p> 管理員身份是系統(tǒng)設(shè)定的,整個(gè)系統(tǒng)只有一個(gè)管
26、理員。在管理員登錄后進(jìn)入系統(tǒng)主頁(yè)面管理員的操作權(quán)限有:查看整個(gè)系統(tǒng)的情況、對(duì)已有家政服務(wù)人員的信息進(jìn)行增加信息、修改信息、刪除信息等操作。同時(shí)也可以增加新的家政服務(wù)人員的名單。</p><p> 需求者身份的人員個(gè)數(shù)沒有限制,只需要注冊(cè)后就可以登陸系統(tǒng)并進(jìn)行操作。在登陸后進(jìn)入系統(tǒng)主界面,需求者的操作權(quán)限有:查看公司的基本和概況、查看該公司家政服務(wù)人員的基本信息、雇傭家政服務(wù)人員等等操作。</p>
27、<p><b> 3.2 可行性分析</b></p><p> 該家政服務(wù)管理系統(tǒng)采用時(shí)下最流行的B/S(Brower/Server)網(wǎng)頁(yè)結(jié)構(gòu)模式,這樣就將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上。</p><p> 而在系統(tǒng)中采用Servlet來實(shí)現(xiàn)控制器的功能,該Servlet是一個(gè)Struts API中提供的ActionServlet類型的實(shí)例,該類
28、的實(shí)例可以和普通的Servlet一樣工作。采用JavaBean以及EJB(即企業(yè)級(jí)JavaBean)來組成模型部分。最后使用JSP來實(shí)現(xiàn)視圖。這三個(gè)部分的結(jié)合就將會(huì)形成一個(gè)MVC的三層設(shè)計(jì)模式。</p><p> 在MVC模式中只需改變其中的一層就能滿足應(yīng)用的改變。一個(gè)應(yīng)用的業(yè)務(wù)流程或者業(yè)務(wù)規(guī)則的改變只需改動(dòng)MVC的模型層.</p><p><b> 3.3 系統(tǒng)分析<
29、/b></p><p> 3.3.1 系統(tǒng)目標(biāo)</p><p> 會(huì)員注冊(cè),登錄(管理員和會(huì)員兩種權(quán)限登錄)</p><p> 雇員管理(曾、刪、改、查)</p><p> 會(huì)員管理(刪,改、查)</p><p> 搜索功能(會(huì)員,雇員,狀態(tài))</p><p><b>
30、 雇傭管理</b></p><p><b> 會(huì)員發(fā)布需求</b></p><p> 3.3.2 系統(tǒng)模塊結(jié)構(gòu)</p><p> 系統(tǒng)模塊結(jié)構(gòu)如圖所示:</p><p> 圖3.1 系統(tǒng)功能模塊圖</p><p> 3.3.3 業(yè)務(wù)流程圖</p><p&
31、gt; 系統(tǒng)的業(yè)務(wù)流程圖如圖3.2所示:</p><p> 圖3.2 系統(tǒng)的業(yè)務(wù)流程圖</p><p> 第四章 系統(tǒng)總體設(shè)計(jì)</p><p> 4.1 系統(tǒng)設(shè)計(jì)的內(nèi)容</p><p> 通過利用JSP技術(shù)利用網(wǎng)頁(yè)進(jìn)行對(duì)服務(wù)人員的信息錄入、修改、刪除等操作,同時(shí)也可以按照需求者的查詢條件從后臺(tái)的數(shù)據(jù)庫(kù)里進(jìn)行查找適合的結(jié)果并通過網(wǎng)
32、頁(yè)顯示來傳達(dá)給需求者。當(dāng)最后確定需要雇傭該家政服務(wù)人員的時(shí)候就可以進(jìn)行提交或者雇傭操作,其實(shí)這里是通過對(duì)數(shù)據(jù)庫(kù)中已有數(shù)據(jù)的更改以達(dá)到需求者雇傭的目的。</p><p> 4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p> 4.2.1 數(shù)據(jù)庫(kù)分析</p><p> 在xx家政服務(wù)管理系統(tǒng)中涉及到家政服務(wù)信息、會(huì)員信息,雇員信息,雇傭關(guān)系等數(shù)據(jù),為了更好的對(duì)其進(jìn)行管理在設(shè)計(jì)該
33、系統(tǒng)的時(shí)候選擇Microsoft SQL Server 2005數(shù)據(jù)庫(kù)來滿足系統(tǒng)的要求,數(shù)據(jù)庫(kù)名稱為home,在數(shù)據(jù)庫(kù)中創(chuàng)建7張表用于存儲(chǔ)各種不同信息。如下圖:</p><p> 4.2.2 數(shù)據(jù)庫(kù)概念設(shè)計(jì)</p><p> 根據(jù)對(duì)系統(tǒng)的功能分析和功能設(shè)計(jì),規(guī)劃出本系統(tǒng)中使用的數(shù)據(jù)庫(kù)實(shí)體。下面只介紹幾個(gè)關(guān)鍵實(shí)體的的E-R圖。</p><p> 圖4.1 會(huì)員
34、實(shí)體</p><p> 圖4.2 雇傭關(guān)系信息實(shí)體</p><p> 4.2.3 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)</p><p> 根據(jù)上述實(shí)體E-R關(guān)系圖可以得出以下是數(shù)據(jù)庫(kù)中主要表的結(jié)構(gòu):</p><p> ?、?server(雇員信息表) 該表主要用于存儲(chǔ)所有雇員的基本信息,其結(jié)構(gòu)如下表所示。</p><p> 表4
35、.1 server表</p><p> ?、?users(用戶信息表)</p><p> 表users用于存儲(chǔ)供應(yīng)商信息,包括注冊(cè)用戶基本的信息。users表結(jié)構(gòu)如表4.2所示.</p><p> 表4.2 users表</p><p> ?、?admin(管理員表) 表用于管理員信息等。表的結(jié)構(gòu)如表4.3所示:</p>
36、<p> 表4.3 admin表</p><p> ?、?require(客戶需求表) 用于存儲(chǔ)xx家政服務(wù)的xx家政服務(wù)借閱信息等。表的結(jié)構(gòu)如表4.4所示.</p><p> 表4.4 require</p><p> ?、?item(服務(wù)項(xiàng)目表) 用于存儲(chǔ)xx家政服務(wù)服務(wù)項(xiàng)目信息等。表的結(jié)構(gòu)如表4.5所示.</p>&
37、lt;p> 表4.5 item表</p><p> ⑥ employ(雇傭表) 表用于存儲(chǔ)xx家政服務(wù)雇傭的雇員和客戶的信息。表的結(jié)構(gòu)如表4.6所示.</p><p> 表4.6 employ表</p><p> 4.2.4 創(chuàng)建數(shù)據(jù)庫(kù)及表</p><p><b> ?。?) 創(chuàng)建數(shù)據(jù)庫(kù)</b><
38、;/p><p> 創(chuàng)建SQL Server數(shù)據(jù)庫(kù)的步驟如下:</p><p> 選擇“開始”/“所有程序”/ Microsoft SQL Server 2000/企業(yè)管理器命令,打開企業(yè)管理器,展開服務(wù)器的節(jié)點(diǎn)。</p><p> 右擊“數(shù)據(jù)庫(kù)”節(jié)點(diǎn),在彈出的快捷菜單中選擇“新建數(shù)據(jù)庫(kù)”命令,彈出“數(shù)據(jù)庫(kù)屬性”對(duì)話框。</p><p>
39、在“名稱”編輯框中輸入數(shù)據(jù)庫(kù)的名稱;然后選擇“數(shù)據(jù)xx家政服務(wù)”選項(xiàng)卡,在該選項(xiàng)卡中設(shè)置數(shù)據(jù)庫(kù)xx家政服務(wù)的存儲(chǔ)位置及xx家政服務(wù)屬性;再選擇“事務(wù)日志”選項(xiàng)卡,在該選項(xiàng)卡中選擇日志xx家政服務(wù)的存儲(chǔ)位置及xx家政服務(wù)屬性;最后單擊“確定”按鈕完成數(shù)據(jù)庫(kù)的創(chuàng)建。</p><p><b> ?。?)創(chuàng)建數(shù)據(jù)表</b></p><p> 在新建的的home數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)
40、據(jù)表,以u(píng)sers表的創(chuàng)建為例介紹數(shù)據(jù)表的創(chuàng)建過程。</p><p> 1 展開home節(jié)點(diǎn),右擊“表”節(jié)點(diǎn),在彈出的快捷菜單中選擇“新建表”命令, 彈出表設(shè)計(jì)器設(shè)置要?jiǎng)?chuàng)建表中所需要的字段,并設(shè)置主鍵.</p><p> 2 設(shè)置完字段后,關(guān)閉表設(shè)計(jì)器,在彈出的“選擇名稱”對(duì)話框中設(shè)置表名.</p><p> 3 單擊“確定”
41、按鈕完成表的創(chuàng)建。</p><p> 第五章 系統(tǒng)詳細(xì)設(shè)計(jì)</p><p> 5.1 注冊(cè)和登錄界面設(shè)計(jì)</p><p> 注冊(cè)界面和登錄界面提供用戶注冊(cè)和登錄。xx家政服務(wù)管理系統(tǒng)的注冊(cè)界面如圖5.1所示。</p><p> 圖5.1 會(huì)員注冊(cè)界面</p><p> 注冊(cè)界面的設(shè)計(jì) 必須注冊(cè)為會(huì)員后才能登陸
42、xx家政服務(wù)系統(tǒng),收集會(huì)員信息,注冊(cè)后進(jìn)入登錄界面.部分實(shí)代碼如下:</p><p> if(act.equals("reg")){</p><p> String uname = request.getParameter("uname");</p><p> String pwd = request.getParame
43、ter("pwd");</p><p> String sex = request.getParameter("sex");</p><p> String card = request.getParameter("card");</p><p> String tel = request.getPa
44、rameter("tel");</p><p> String bus = request.getParameter("bus");</p><p> String addr = request.getParameter("addr");</p><p> String family = reques
45、t.getParameter("family");</p><p> user.setUname(uname);</p><p> user.setPwd(pwd);</p><p> user.setSex(sex);</p><p> user.setCard(card);</p><p&g
46、t; user.setTel(tel);</p><p> user.setBus(bus);</p><p> user.setAddr(addr);</p><p> user.setFamily(family);</p><p> flag=userDao.addUser(user);</p><p>
47、 if(flag>0){</p><p> out.println("<script type='text/javascript'> alert('注冊(cè)成功!');location.href='login.jsp';</script>");</p><p><b> }else
48、{</b></p><p> out.println("<script type='text/javascript'> alert('注冊(cè)失敗!');location.href='reg.jsp';</script>");</p><p><b> }</b>&
49、lt;/p><p><b> }</b></p><p> ?。?)登錄界面的效果:</p><p> 登錄界面分為兩種權(quán)限登錄,一種是會(huì)員,一種是管理員登錄成功后記錄用戶的session值。后臺(tái)實(shí)現(xiàn)代碼如下:</p><p> if(act.equals("login")){</p>
50、<p> String uname = request.getParameter("uname");</p><p> String pwd = request.getParameter("pwd");</p><p> int method = Integer.parseInt(request.getParameter("
51、;method"));</p><p> if(method==0){</p><p> user = userDao.findUser(uname);</p><p> if(user!=null && user.getPwd().equals(pwd)){</p><p> session = reque
52、st.getSession();</p><p> boolean isNew = session.isNew();</p><p> if (!isNew){</p><p> session.removeAttribute("users");</p><p> session = request.getSess
53、ion(true);</p><p><b> }</b></p><p> session.setMaxInactiveInterval(600);</p><p> session.setAttribute("users", user);</p><p> response.sendRed
54、irect("index.jsp");</p><p><b> }else{</b></p><p> out.println("<script type='text/javascript'> alert('用戶名或密碼錯(cuò)誤!');location.href='login.jsp&
55、#39;;</script>");</p><p><b> }</b></p><p><b> }</b></p><p> if(method==1){</p><p> Admin admin = new Admin();</p><p>
56、; AdminDAO adminDao = new AdminDaoImpl();</p><p> admin = adminDao.findAdmin(uname);</p><p> if (admin != null && admin.getPwd().equals(pwd)) {</p><p> session = request
57、.getSession();</p><p> boolean isNew = session.isNew();</p><p> if (!isNew) {</p><p> session.removeAttribute("admin");</p><p> session = request.getSessi
58、on(true);</p><p><b> }</b></p><p> session.setMaxInactiveInterval(600);</p><p> session.setAttribute("admin", admin);</p><p> response.sendRed
59、irect("index.jsp");</p><p><b> } else {</b></p><p> out.println("<script type='text/javascript'> alert('用戶名或密碼錯(cuò)誤!');location.href='login.js
60、p';</script>");</p><p><b> }</b></p><p><b> }</b></p><p><b> 5.2 主界面設(shè)計(jì)</b></p><p> 主界面是程序操作過程中必不可少的,它是人機(jī)交互中的重要環(huán)節(jié)
61、。通過主界面,用戶可以調(diào)用系統(tǒng)相關(guān)的各子模塊,快速實(shí)現(xiàn)各個(gè)功能。xx家政服務(wù)管理系統(tǒng)中,主界面被分為3個(gè)部分:最上面是系統(tǒng)信息欄,左面的快速入口欄;界面中間的區(qū)域信息查看。主界面運(yùn)行效果如圖5.2所示.</p><p> 圖5.2 主界面界面</p><p><b> 5.3 公共類設(shè)計(jì)</b></p><p> 在開發(fā)應(yīng)用程序時(shí),可以
62、將界面繪制的相關(guān)操作以及對(duì)一些控件的設(shè)置封裝在自定義類中,以便于在開發(fā)程序時(shí)調(diào)用,這樣可以提高代碼的重用性。本系統(tǒng)創(chuàng)建了ConnectDB類,用于數(shù)據(jù)庫(kù)的操作;用來簡(jiǎn)化程序操作,提高代碼的重用性,文件夾結(jié)構(gòu)如下:</p><p><b> 數(shù)據(jù)操作類:</b></p><p> package com.qswl.home.base;</p><
63、p> import java.sql.Connection;</p><p> import java.sql.DriverManager;</p><p> import java.sql.PreparedStatement;</p><p> import java.sql.ResultSet;</p><p> impo
64、rt java.sql.SQLException;</p><p> public class ConnectDB {</p><p> public final static String DRIVER="com.microsoft.jdbc.sqlserver.SQLServerDriver"; </p><p> public fin
65、al static String URL="jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=home";</p><p> public final static String DBNAME="sa"; </p><p> public final static String DHPA
66、SS="saadmin"; </p><p> public Connection getConn(){ </p><p> Connection conn=null;</p><p><b> try {</b></p><p> Class.forName(DRIVER);</p&
67、gt;<p> } catch (ClassNotFoundException e) {</p><p> // TODO Auto-generated catch block</p><p> System.out.println("DRIVER is not find");</p><p> e.printStackTr
68、ace();</p><p><b> }</b></p><p><b> try {</b></p><p> conn = DriverManager.getConnection(URL,DBNAME,DHPASS);</p><p> } catch (SQLException e)
69、 {</p><p> // TODO Auto-generated catch block</p><p> System.out.println("connect database error");</p><p> e.printStackTrace();</p><p><b> }</b&
70、gt;</p><p> return conn;</p><p><b> }</b></p><p> public int executeSQL(String sql,String[] getValue){</p><p> int result=0;</p><p> Conne
71、ction conn=null;</p><p> PreparedStatement pstmt=null;</p><p><b> try {</b></p><p> conn=getConn(); </p><p> pstmt=conn.prepareStatement(sql);</p>
72、;<p> if (getValue!=null) {</p><p> for (int i = 0; i < getValue.length; i++) {</p><p> pstmt.setString(i+1, getValue[i]);</p><p><b> }</b></p><
73、p><b> }</b></p><p> result=pstmt.executeUpdate(); </p><p> } catch (Exception e) {</p><p> // TODO: handle exception</p><p> System.out.println(&qu
74、ot;executeSQL error");</p><p> e.printStackTrace();</p><p><b> }finally{</b></p><p> closeAll(conn,pstmt,null);</p><p><b> }</b></p&
75、gt;<p> return result;</p><p><b> }</b></p><p> public void closeAll(Connection conn,PreparedStatement pstmt,ResultSet rs){</p><p> if (rs!=null) {</p>
76、<p><b> try {</b></p><p> rs.close();</p><p> } catch (SQLException e) {</p><p> System.out.println("close rs error");</p><p> e.printS
77、tackTrace();</p><p><b> }</b></p><p><b> }</b></p><p> if (pstmt!=null) {</p><p><b> try {</b></p><p> pstmt.close
78、();</p><p> } catch (SQLException e) {</p><p> System.out.println("close pstmt error");</p><p> e.printStackTrace();</p><p><b> }</b></p>
79、;<p><b> }</b></p><p> if (conn!=null) {</p><p><b> try {</b></p><p> conn.close();</p><p> } catch (SQLException e) {</p>&l
80、t;p> // TODO Auto-generated catch block</p><p> System.out.println("close conn error");</p><p> e.printStackTrace();</p><p><b> }</b></p><p&g
81、t;<b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 5.4服務(wù)預(yù)約模塊</b></p><p> 該界面主要用于顯示當(dāng)所有的雇員列表,可以查看當(dāng)前的雇員的信息和當(dāng)前狀態(tài)和
82、執(zhí)行雇傭操作等信息,界面效果如下圖:</p><p><b> 界面部分實(shí)現(xiàn)代碼:</b></p><p> <table width="98%" cellpadding="0" cellspacing="0" border="0" class="maillist&q
83、uot;></p><p> <tr> </p><p> <th width="7%">姓名</th></p><p> <th width="6%">性別</th></p><p> <th width=&q
84、uot;6%">籍貫</th></p><p> <th width="9%">服務(wù)類別</th></p><p> <th width="27%">描述</th></p><p> <th width="20%">
85、;特長(zhǎng)</th></p><p> <th width="8%">工作經(jīng)歷</th></p><p> <th width="6%">狀態(tài)</th></p><p> <th width="7%">詳細(xì)資料</th>&
86、lt;/p><p> <th width="4%">雇傭</th></p><p><b> </tr></b></p><p><b> <%</b></p><p> if(allnum>0){</p><
87、;p> for(int i=0;i<sevList.size();i++){</p><p> Server sev = (Server)sevList.get(i);</p><p><b> %></b></p><p> <tr> </p><p> <td
88、><a class='setblue'><%=sev.getSname() %></a></td></p><p> <td><%=sev.getSex() %></td></p><p> <td><%=sev.getPlace()%></td>
89、;</p><p> <td><a class='setred'><%=sev.getType() %></a></td></p><p> <td><%=sev.getAbout() %></td></p><p> <td><%
90、=sev.getSpecial() %></td></p><p> <td><%=sev.getWorkdate() %></td></p><p> <td><a class='setblue'><% if(sev.getCurr()==0){ out.print("未雇傭
91、");} if(sev.getCurr()==1){ out.print("雇傭中");}%></a></td></p><p> <td><a class="setblue" target="_blank" href="view.jsp?sid=<%=sev.getSid()
92、%>">查看</a></td></p><p> <td><a class="setred" <% if(sev.getCurr()==0){%> target="_blank" href="view.jsp?sid=<%=sev.getSid() %>" <
93、%}%>>雇傭</a></td></p><p><b> </tr></b></p><p> <% }}else{ %></p><p> <tr><td colspan="10" class="error">還
94、沒添服務(wù)人員!</td></tr></p><p><b> <%} %></b></p><p><b> </table></b></p><p> 查看和雇傭操作部分實(shí)現(xiàn)代碼:</p><p> if(act.equals("a
95、dd")){</p><p> ServerDAO servDao = new ServerDaoImpl();</p><p> int sid = Integer.parseInt(request.getParameter("sid"));</p><p> String sname = request.getParamete
96、r("sname");</p><p> String type = request.getParameter("type");</p><p> String etime = request.getParameter("etime");</p><p> String note = request.
97、getParameter("notes");</p><p> emp.setSname(sname);</p><p> emp.setUname(uname);</p><p> emp.setType(type);</p><p> emp.setEtime(etime);</p><p&
98、gt; emp.setNote(note);</p><p> flag= empDao.addEmploy(emp);</p><p> if(flag>0){</p><p> servDao.modSevStatus(sid);</p><p><b> }</b></p><p
99、> if(flag>0){</p><p> out.println("<script type='text/javascript'> alert('雇傭成功!');location.href='service.jsp';</script>");</p><p><b>
100、 }else{</b></p><p> out.println("<script type='text/javascript'> alert('雇傭失?。?#39;);location.href='service.jsp';</script>");</p><p><b> }
101、</b></p><p><b> }</b></p><p><b> 5.5查詢?cè)O(shè)計(jì)</b></p><p> 用于用戶查詢自己想要借閱的xx家政服務(wù),主要采用3種查詢,一種是雇員查詢,一種是會(huì)員查詢,一種是雇員狀態(tài)查詢,雇員查詢可以通過雇員姓名,查詢服務(wù)類別進(jìn)行查詢 查詢界面如下:</p>
102、;<p> 輸入數(shù)據(jù)提交查詢后處理代碼:</p><p><b> <%</b></p><p> if(method==0){</p><p><b> int p=1;</b></p><p> int pagesize = 9;</p><p&
103、gt;<b> int down;</b></p><p><b> int up;</b></p><p> int allnum= sevDao.countServer(keyword);</p><p> int count = (int)Math.ceil((double)allnum/(double)p
104、agesize);</p><p> if(request.getParameter("page")!=null){</p><p> p=Integer.parseInt(request.getParameter("page"));</p><p><b> }</b></p>&l
105、t;p> if(p>=count){</p><p> down = count;</p><p><b> }else{</b></p><p><b> down=p+1;</b></p><p><b> }</b></p><p
106、><b> if(p>1){</b></p><p><b> up=p-1;</b></p><p><b> }else{</b></p><p><b> up = 1;</b></p><p><b> }</
107、b></p><p> List sevList = sevDao.findServerList(keyword,p,pagesize);</p><p><b> %></b></p><p> <div class="tool ta1"><span>您查詢的內(nèi)容是:<b&g
108、t;<%=keyword %></b> 共找到 <b><%=allnum %></b> 條記錄 <a href="result.jsp?action=serach&&method=0&&keyword=<%=keyword %>&&page=<%=up
109、%>">上一頁(yè)</a><a href="result.jsp?action=serach&&method=0&&keyword=<%=keyword %>&&page=<%=down %>">下一頁(yè)</a></span><a class="add1"&
110、gt;信息查詢列表</a></div></p><p> <table width="98%" cellpadding="0" cellspacing="0" border="0" class="maillist"></p><p> <tr&
111、gt; </p><p> <th width="7%">姓名</th></p><p> <th width="6%">性別</th></p><p> <th width="6%">籍貫</th></p>
112、;<p> <th width="9%">服務(wù)類別</th></p><p> <th width="26%">描述</th></p><p> <th width="21%">特長(zhǎng)</th></p><p> &
113、lt;th width="8%">工作經(jīng)歷</th></p><p> <th width="6%">狀態(tài)</th></p><p> <th width="7%">詳細(xì)資料</th></p><p> <th width=&qu
114、ot;4%">雇傭</th></p><p><b> </tr></b></p><p><b> <%</b></p><p> if(allnum>0){</p><p> for(int i=0;i<sevList.size(
115、);i++){</p><p> Server sev = (Server)sevList.get(i);</p><p><b> %></b></p><p> <tr> </p><p> <td><a class='setblue'>&
116、lt;%=sev.getSname() %></a></td></p><p> <td><%=sev.getSex() %></td></p><p> <td><%=sev.getPlace()%></td></p><p> <td><
117、a class='setred'><%=sev.getType() %></a></td></p><p> <td><%=sev.getAbout() %></td></p><p> <td><%=sev.getSpecial() %></td><
118、/p><p> <td><%=sev.getWorkdate() %></td></p><p> <td><a class='setblue'><% if(sev.getCurr()==0){ out.print("未雇傭");} if(sev.getCurr()==1){ out.pr
119、int("雇傭中");}%></a></td></p><p> <td><a class="setblue" target="_blank" href="view.jsp?sid=<%=sev.getSid() %>">查看</a></td>
120、</p><p> <td><a class="setred" <% if(sev.getCurr()==0){%> target="_blank" href="view.jsp?sid=<%=sev.getSid() %>" <%}%>>雇傭</a></td><
121、/p><p><b> </tr></b></p><p> <% }}else{ %></p><p> <tr><td colspan="10" class="error">沒有找到相關(guān)信息!</td></tr></p&g
122、t;<p><b> <%} %></b></p><p><b> </table></b></p><p><b> <%} %></b></p><p> 最終顯示界面效果如下:</p><p> 5.6 客戶發(fā)
123、布需求信息模塊</p><p> 如果用戶沒有找到自己想要的服務(wù),客戶可以通過發(fā)布需求信息來獲取我們的幫助,界面效果如下:</p><p> 用戶輸入相關(guān)信息后提交處理代碼如下:</p><p> int flag=0;</p><p> String act= request.getParameter("action&qu
124、ot;);</p><p> HttpSession session = null ;</p><p> session = request.getSession();</p><p> String uname="";</p><p> Require req = new Require();</p>
125、<p> ReqDAO reqDao = new ReqDaoImpl();</p><p> if(session.getAttribute("users")!=null){</p><p> User user = (User)session.getAttribute("users");</p><p>
126、; uname = user.getUname();</p><p><b> }else{</b></p><p> out.println("<script type='text/javascript'> alert('管理員不能發(fā)布操作!');location.href='post.jsp
127、9;;</script>");</p><p><b> }</b></p><p> if(act.equals("add")){</p><p> String type = request.getParameter("type");</p><p>
128、; String time = request.getParameter("time");</p><p> String notes = request.getParameter("notes");</p><p> req.setNotes(notes);</p><p> req.setTime(time);&l
129、t;/p><p> req.setUname(uname);</p><p> req.setType(type);</p><p> flag= reqDao.addReq(req);</p><p> if(flag>0){</p><p> out.println("<script t
130、ype='text/javascript'> alert('發(fā)布成功!');location.href='newpost.jsp';</script>");</p><p><b> }else{</b></p><p> out.println("<script type
131、='text/javascript'> alert('發(fā)布失??!');location.href='newpost.jsp';</script>");</p><p><b> }</b></p><p><b> }</b></p><p>
132、; 5.7 雇員管理模塊</p><p> 雇員管理是管理員添加雇員,修改雇員信息,刪除雇員,推薦雇員的操作,面效果如下:</p><p><b> 添加雇員操作:</b></p><p> sev.setSname(sname);</p><p> sev.setSex(sex);</p>&l
133、t;p> sev.setImg(img);</p><p> sev.setHeight(height);</p><p> sev.setWeight(weight);</p><p> sev.setPlace(place);</p><p> sev.setEdu(edu);</p><p>
134、sev.setMarray(marray);</p><p> sev.setBirthday(birthday);</p><p> sev.setTel(tel);</p><p> sev.setAddr(addr);</p><p> sev.setCard(card);</p><p> sev.s
135、etType(type);</p><p> sev.setWorktime(worktime);</p><p> sev.setWorkdate(workdate);</p><p> sev.setSpecial(special);</p><p> sev.setAbout(about);</p><p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- jsp家政管理系統(tǒng)-畢業(yè)設(shè)計(jì)
- 家政服務(wù)管理系統(tǒng)【優(yōu)秀含源代碼課程畢業(yè)設(shè)計(jì)】
- 家政服務(wù)管理系統(tǒng)【優(yōu)秀含源代碼課程畢業(yè)設(shè)計(jì)】
- 家政服務(wù)管理系統(tǒng)【優(yōu)秀含源代碼課程畢業(yè)設(shè)計(jì)】
- 畢業(yè)設(shè)計(jì)---基于vb的家政服務(wù)信息管理系統(tǒng)開發(fā)
- 基于javaweb的家政服務(wù)畢業(yè)設(shè)計(jì)
- java圖書管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于java用戶管理系統(tǒng)
- java學(xué)生管理系統(tǒng)畢業(yè)設(shè)計(jì)論文
- java畢業(yè)設(shè)計(jì)學(xué)藉管理系統(tǒng)
- java畢業(yè)設(shè)計(jì)--網(wǎng)吧收費(fèi)管理系統(tǒng)
- java家教服務(wù)平臺(tái)畢業(yè)設(shè)計(jì)
- 基于java的餐飲管理系統(tǒng)畢業(yè)設(shè)計(jì)
- [java畢設(shè)]java圖書管理系統(tǒng)畢業(yè)設(shè)計(jì)+源碼
- java藥品管理系統(tǒng)設(shè)計(jì)-畢業(yè)設(shè)計(jì)(論文)
- java畢業(yè)設(shè)計(jì)--小區(qū)物業(yè)管理系統(tǒng)
- java論文成績(jī)管理系統(tǒng)畢業(yè)設(shè)計(jì)
- java開發(fā)的畢業(yè)設(shè)計(jì)-學(xué)籍管理系統(tǒng)
- java圖書管理系統(tǒng)(畢業(yè)設(shè)計(jì)帶源碼)
- 基于java的酒店管理系統(tǒng)畢業(yè)設(shè)計(jì)論文
評(píng)論
0/150
提交評(píng)論