版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p> 論文題目:家庭財(cái)務(wù)管理系統(tǒng)</p><p> 所 在 系 電信系 </p><p> 姓 名 羅時(shí)聰 </p><p> 專 業(yè) 軟件技術(shù) </p><
2、;p> 班 級 10軟件 </p><p> 指導(dǎo)老師 王敏 </p><p> 2013年 4 月 20 日</p><p><b> 目 錄</b></p><p><b> 第1章 緒論1</b></p><p&g
3、t; 1.1 課題背景及選題意義1</p><p> 1.2 課題簡介1</p><p> 1.3 系統(tǒng)的開發(fā)目的和意義2</p><p> 1.4 系統(tǒng)開發(fā)工具與數(shù)據(jù)庫介紹2</p><p> 1.4.1 B/S模式介紹2</p><p> 1.4.2 JavaBean介紹3</p&g
4、t;<p> 1.4.3 JSP技術(shù)介紹3</p><p> 1.4.4 Hibernate技術(shù)介紹4</p><p> 1.4.5 “容器”Tomcat應(yīng)用服務(wù)器介紹4</p><p> 1.4.6 Oracle數(shù)據(jù)庫介紹5</p><p> 1.4.7 開發(fā)框架技術(shù)MVC6</p&g
5、t;<p> 1.5 系統(tǒng)開發(fā)理論介紹6</p><p> 1.5.1 系統(tǒng)規(guī)劃階段7</p><p> 1.5.2 系統(tǒng)分析階段7</p><p> 1.5.3 系統(tǒng)設(shè)計(jì)階段7</p><p> 1.5.4 系統(tǒng)實(shí)施階段7</p><p> 1.6 運(yùn)行環(huán)境8</p>
6、<p> 第2章 系統(tǒng)需求分析9</p><p><b> 2.1系統(tǒng)目標(biāo)9</b></p><p> 2.2 系統(tǒng)可行性分析9</p><p> 2.2.1 技術(shù)可行性9</p><p> 2.2.2 經(jīng)濟(jì)可行性9</p><p> 2.3系統(tǒng)需求分析方法1
7、0</p><p> 2.3.1系統(tǒng)需求分析概述10</p><p> 2.3.2系統(tǒng)需求分析方法11</p><p> 2.4系統(tǒng)功能需求分析11</p><p> 第3章 系統(tǒng)總體設(shè)計(jì)13</p><p> 3.1 系統(tǒng)設(shè)計(jì)方法13</p><p> 3.2 系統(tǒng)架構(gòu)
8、13</p><p> 3.3 系統(tǒng)功能模塊細(xì)分15</p><p> 3.4 系統(tǒng)數(shù)據(jù)庫的設(shè)計(jì)16</p><p> 3.4.1 數(shù)據(jù)庫分析16</p><p> 3.4.2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)16</p><p> 3.4.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)18</p><p>
9、 第4章 系統(tǒng)特性19</p><p> 4.1 框架文件配置19</p><p> 4.2 系統(tǒng)主界面21</p><p> 4.3家庭成員管理收支項(xiàng)目23</p><p> 4.3.1 查看收支項(xiàng)目23</p><p> 4.3.2編輯收支項(xiàng)目23</p><p>
10、4.3.3 刪除收支項(xiàng)目23</p><p> 4.3.4 技術(shù)23</p><p> 第五章 結(jié) 論27</p><p><b> 第1章 緒論</b></p><p> 1.1 課題背景及選題意義</p><p> 近幾年來,隨著我國城鄉(xiāng)居民收入的增加和生活水平的提高,家庭理
11、財(cái)已成為人們居家過日子的重要內(nèi)容。社會學(xué)家細(xì)心的觀察到,時(shí)下家庭的財(cái)務(wù)管理比之計(jì)劃經(jīng)濟(jì)年代,開始發(fā)生微妙的變化?,F(xiàn)在的城鄉(xiāng)家庭生活發(fā)生了明顯的變化,人們的收入逐漸拉開檔次,消費(fèi)水平也高了。大多數(shù)家庭關(guān)注的是提高生活質(zhì)量,一方面精打細(xì)算,量入為出,把錢用在刀刃上;另一方面保證適當(dāng)?shù)膴蕵坊顒印⑸鐣浑H、智力開發(fā)等方面的開支。為此,不少家庭就有中長期財(cái)務(wù)預(yù)算,有基本建設(shè)規(guī)劃??偟恼f來,家庭財(cái)務(wù)必須以量入為出為原則,以財(cái)產(chǎn)保值增值為目標(biāo),處理好
12、積累和消費(fèi)的關(guān)系。因此,開發(fā)一個(gè)家庭財(cái)務(wù)管理系統(tǒng)具有很強(qiáng)的實(shí)用性,能夠達(dá)到對家庭財(cái)務(wù)合理有效的管理。</p><p><b> 1.2 課題簡介</b></p><p> 家庭財(cái)務(wù)管理系統(tǒng)是每一個(gè)家庭管理家庭財(cái)務(wù)收入和支出的不可缺少的一個(gè)管理信息系統(tǒng),它的內(nèi)容對于家庭的管理者來說是至關(guān)重要的,所以家庭財(cái)務(wù)管理系統(tǒng)應(yīng)該能夠?yàn)槊恳粋€(gè)家庭的管理者提供充足的信息和快捷的查
13、詢手段,大大的方便家庭的管理者的合理理財(cái)。</p><p> 隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已被人們深刻認(rèn)識,它已進(jìn)入人類社會的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對家庭財(cái)務(wù)進(jìn)行管理,具有手工管理所無法比擬的優(yōu)點(diǎn),如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極大地提高家庭財(cái)務(wù)管理的效率,也是家庭理財(cái)?shù)目茖W(xué)化、正規(guī)化
14、管理,與先進(jìn)科學(xué)技術(shù)接軌的重要條件。</p><p> 1.3 系統(tǒng)的開發(fā)目的和意義</p><p> 家庭理財(cái)管理系統(tǒng)是為滿足當(dāng)代家庭理財(cái)管理的需要而設(shè)計(jì)開發(fā)的一個(gè)財(cái)務(wù)管理系統(tǒng)。它針對家庭理財(cái)?shù)男枰?,開發(fā)出一個(gè)能實(shí)現(xiàn)管理家庭財(cái)務(wù)收支以及統(tǒng)計(jì)分析等功能的實(shí)用型軟件,能夠?yàn)槊恳粋€(gè)家庭的管理者提供充足的信息和快捷的查詢手段,大大方便家庭管理者合理科學(xué)有效的理財(cái)。</p>&l
15、t;p> 伴隨著信息時(shí)代的到來,信息的種類、數(shù)量越來越多,容量也越來越大,在競爭越來越激烈的今天,隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識,它已進(jìn)入人類社會的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。而使用計(jì)算機(jī)對家庭財(cái)務(wù)進(jìn)行管理,已經(jīng)成為一種趨勢,與傳統(tǒng)的手工式家庭財(cái)務(wù)管理相比,利用計(jì)算機(jī)軟件對家庭財(cái)務(wù)實(shí)行管理具有檢索迅速、查找方便、可行性高、存儲量大、保密性好、壽命長、成本低等優(yōu)點(diǎn)。家庭理財(cái)管理系統(tǒng)正
16、是在這種環(huán)境下應(yīng)運(yùn)而生,其開發(fā)的整體任務(wù)是實(shí)現(xiàn)家庭財(cái)務(wù)管理的系統(tǒng)化、規(guī)范化、科學(xué)化,從而達(dá)到有效管理家庭財(cái)務(wù)的目的。因此,開發(fā)這樣一個(gè)系統(tǒng)在當(dāng)今社會中是很有必要的。</p><p> 1.4 系統(tǒng)開發(fā)工具與數(shù)據(jù)庫介紹</p><p> 1.4.1 B/S模式介紹</p><p> 伴隨著Internet的迅速發(fā)展,計(jì)算機(jī)技術(shù)正在由基于C/S(client/ S
17、erver)模式的應(yīng)用系統(tǒng)轉(zhuǎn)變?yōu)榛贐/S模式的應(yīng)用系統(tǒng)。</p><p> 過去,網(wǎng)絡(luò)軟件的開發(fā)都采用C/S(client)模式,在這種模式下,主要的業(yè)務(wù)邏輯都集中于客戶端程序,因此,必然導(dǎo)致以下問題:</p><p> (1) 系統(tǒng)安裝、調(diào)試、維護(hù)和升級困難。由于客戶端的硬件配置可能存在差異,軟件環(huán)能各不相同,因此,在安裝時(shí),必須對每一個(gè)客戶端分別進(jìn)行配置,同樣,在軟件升級時(shí)也要對
18、客戶端分別處理。</p><p> (2) 在整個(gè)系統(tǒng)中,業(yè)務(wù)邏輯和用戶界面都集中到了客戶端,必然會增加安全隱患。</p><p> (3) B/S模式帶來了巨大的好處:</p><p> 開發(fā)成本及維護(hù)成本降低。由于B/S架構(gòu)管理軟件只安裝在服務(wù)器端(Server)上,即應(yīng)用程序在部署、升級、維護(hù)時(shí),只需要在服務(wù)器端進(jìn)行配置就可以了,網(wǎng)絡(luò)管理人員只需要管理服
19、務(wù)器就行了,用戶界面主要事務(wù)邏輯在服務(wù)器(Server)端完全通過WWW瀏覽器實(shí)現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),所有的客戶端只有瀏覽器,網(wǎng)絡(luò)管理人員只需要做硬件維護(hù)。</p><p> (4) 良好的安全性能,防火墻技術(shù)可以保證后臺數(shù)據(jù)庫的安全性。所有的配置工作都集中在服務(wù)器端且所有客戶端請求都是通過DBMS來訪問數(shù)據(jù)庫,從而大大減少了數(shù)據(jù)直接暴露的風(fēng)險(xiǎn)。</p><p&g
20、t; 1.4.2 JavaBean介紹</p><p> 用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫訪問和其他任何可以用java代碼創(chuàng)造的對象進(jìn)行打包,并且其他的開發(fā)者可以通過內(nèi)部的JSP頁面、Servlet、其他JavaBean、applet程序或者應(yīng)用來使用這些對象。用戶可以認(rèn)為JavaBean提供了一種隨時(shí)隨地的復(fù)制和粘貼的功能,而不用關(guān)心任何改變。最初,JavaBean的目的是為了將可以重
21、復(fù)使用的軟件代碼打包標(biāo)準(zhǔn)。特別是用與幫助廠家開發(fā)在綜合開發(fā)環(huán)境(IDE)下使用的java軟件部件。這些包括如Grid控件,用戶可以將該部件拖放到開發(fā)環(huán)境中。從此,JavaBean就可以擴(kuò)展為一個(gè)java web 應(yīng)用的標(biāo)準(zhǔn)部件,并且JavaBean部件框架已經(jīng)擴(kuò)展為企業(yè)版的 Bean(EJB)。</p><p> 1.4.3 JSP技術(shù)介紹</p><p> JSP的全稱是Java
22、 Server Pages,它是SUN推出的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。它在傳統(tǒng)的靜態(tài)頁面文件(*.html,*.htm)中加入JAVA程序片段和JSP標(biāo)記,就構(gòu)成了JSP頁面。JSP具有以下的優(yōu)點(diǎn):</p><p> (1) 將業(yè)務(wù)層與表示層分離:使用JSP技術(shù),網(wǎng)絡(luò)開發(fā)人員可充分使用HTML來設(shè)計(jì)頁面顯示部分(如字體顏色等),并使用JSP指令或者JAVA程序片段來生成網(wǎng)頁上的動態(tài)內(nèi)容;</p>&l
23、t;p> (2) 能夠跨平臺:JSP支持絕大部分平臺,包括現(xiàn)在非常流行的LINUX系統(tǒng),應(yīng)用非常廣泛的Apache服務(wù)器也提供了支持JSP的服務(wù);</p><p> (3) 組件的開發(fā)和使用很方便:如ASP的組件是由C++,VB等語言開發(fā)的,并需要注冊才能使用;而JSP的組件是用Java開發(fā)的,可以直接使用;</p><p> (4)一次編寫,處處運(yùn)行:作為JAVA開發(fā)平臺的一
24、部分,JSP具有JAVA所有優(yōu)點(diǎn),包括Write once , Run everywhere.</p><p> 1.4.4 Hibernate技術(shù)介紹</p><p> Hibernate是一個(gè)免費(fèi)的開源Java包,它使得與關(guān)系數(shù)據(jù)庫打交道變得十分輕松,就像您的數(shù)據(jù)庫中包含每天使用的普通Java對象一樣,同時(shí)不必考慮如何把它們從神秘的數(shù)據(jù)庫表中取出(或放回到數(shù)據(jù)庫表中)。它解放了您
25、,使您可以專注于應(yīng)用程序的對象和功能,而不必?fù)?dān)心如何保存它們或稍后如何找到它們。 </p><p> Hibernate不會對您造成妨礙,也不會強(qiáng)迫您修改對象的行為方式。它們不需要實(shí)現(xiàn)任何不可思議的接口以便能夠持續(xù)存在。惟一需要做的就是創(chuàng)建一份 XML“映射文檔”,告訴Hibernate您希望能夠保存在數(shù)據(jù)庫中的類,以及它們?nèi)绾侮P(guān)聯(lián)到該數(shù)據(jù)庫中的表和列,然后就可以要求它以對象的形式獲取數(shù)據(jù),或者把對象保存為數(shù)據(jù)
26、。與其他解決方案相比,它幾乎已經(jīng)很完美了。</p><p> 運(yùn)行時(shí),Hibernate讀取映射文檔,然后動態(tài)構(gòu)建Java類,以便管理數(shù)據(jù)庫與Java之間的轉(zhuǎn)換。在Hibernate中有一個(gè)簡單而直觀的API,用于對數(shù)據(jù)庫所表示的對象執(zhí)行查詢。要修改這些對象,(一般情況下)只需在程序中與它們進(jìn)行交互,然后告訴Hibernate保存修改即可。類似地,創(chuàng)建新對象也很簡單;只需以常規(guī)方式創(chuàng)建它們,然后告訴Hibern
27、ate有關(guān)它們的信息,這樣就能在數(shù)據(jù)庫中保存它們。</p><p> Hibernate API學(xué)習(xí)起來很簡單,而且它與程序流的交互相當(dāng)自然。在適當(dāng)?shù)奈恢谜{(diào)用它,就可以達(dá)成目的。它帶來了很多自動化和代碼節(jié)省方面的好處,所以花一點(diǎn)時(shí)間學(xué)習(xí)它是值得的。而且還可以獲得另一個(gè)好處,即代碼不用關(guān)心要使用的數(shù)據(jù)庫種類(否則的話甚至必須知道)。我所在的公司就曾有過在開發(fā)過程后期被迫更換數(shù)據(jù)庫廠商的經(jīng)歷。這會造成巨大的災(zāi)難,但
28、是借助于Hibernate,只需要簡單地修改Hibernate配置文件即可。</p><p> 1.4.5 “容器”Tomcat應(yīng)用服務(wù)器介紹</p><p> 目前支持JSP的應(yīng)用服務(wù)器是較多的,Tomcat是其中較為流行的一個(gè)Web服務(wù)器,被JavaWorld雜志的編輯選為2001年度最具創(chuàng)新的Java產(chǎn)品,可見其在業(yè)界的地位。 </p><
29、;p> Tomcat是一個(gè)免費(fèi)的開源的Serlvet容器,在Tomcat中,應(yīng)用程序的部署很簡單,你只需將你的WAR放到Tomcat的webapp目錄下,Tomcat會自動檢測到這個(gè)文件,并將其解壓。你在瀏覽器中訪問這個(gè)應(yīng)用的Jsp時(shí),通常第一次會很慢,因?yàn)門omcat要將Jsp轉(zhuǎn)化為Servlet文件,然后編譯。編譯以后,訪問將會很快。</p><p> Tomcat也具有傳統(tǒng)的Web服務(wù)器的功能:處
30、理Html頁面。但是與Apache相比,它的處理靜態(tài)Html的能力就不如Apache。我們可以將Tomcat和Apache集成到一塊,讓Apache處理靜態(tài)Html,而Tomcat處理Jsp和Servlet。Tomcat是一個(gè)很好的工具,不僅僅因?yàn)槠涿赓M(fèi),功能強(qiáng)大,更因?yàn)槠溟_放性,越來越受到人們的重視。</p><p> 1.4.6 Oracle數(shù)據(jù)庫介紹</p><p> Or
31、acle 是以高級結(jié)構(gòu)化查詢語言(SQL)為基礎(chǔ)的大型關(guān)系數(shù)據(jù)庫,通俗地講它是用方便邏輯管理的語言操縱大量有規(guī)律數(shù)據(jù)的集合。是目前最流行的B/S體系結(jié)構(gòu)的數(shù)據(jù)庫之一。</p><p> ORACLE7.X以來引入了共享SQL和多線索服務(wù)器體系結(jié)構(gòu)。這減少了ORACLE的資源占用,并增強(qiáng)了ORACLE的能力,使之在低檔軟硬件平臺上用較少的資源就可以支持更多的用戶,而在高檔平臺上可以支持成百上千個(gè)用戶。</p
32、><p> 提供了基于角色(ROLE)分工的安全保密管理。在數(shù)據(jù)庫管理功能、完整性檢查、安全性、一致性方面都有良好的表現(xiàn)。提供了與第三代高級語言的接口軟件PRO*系列,能在C,C++等主語言中嵌入SQL語句及過程化(PL/SQL)語句,對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操縱。加上它有許多優(yōu)秀的前臺開發(fā)工具如 POWER BUILD、SQL*FORMS、VISIA BASIC 等,可以快速開發(fā)生成基于客戶端PC 平臺的應(yīng)用程序
33、,并具有良好的移植性。</p><p> 提供了新的分布式數(shù)據(jù)庫能力??赏ㄟ^網(wǎng)絡(luò)較方便地讀寫遠(yuǎn)端數(shù)據(jù)庫里的數(shù)據(jù),并有對稱復(fù)制的技術(shù)。ORACLE數(shù)據(jù)庫在物理上是存儲于硬盤的各種文件。它是活動的,可擴(kuò)充的,隨著數(shù)據(jù)的添加和應(yīng)用程序的增大而變化。</p><p> ORACLE數(shù)據(jù)庫在邏輯上是由許多表空間構(gòu)成。主要分為系統(tǒng)表空間和非系統(tǒng)表空間。非系統(tǒng)表空間內(nèi)存儲著各項(xiàng)應(yīng)用的數(shù)據(jù)、索引、
34、程序等相關(guān)信息。我們準(zhǔn)備上馬一個(gè)較大的ORACLE應(yīng)用系統(tǒng)時(shí),應(yīng)該創(chuàng)建它所獨(dú)占的表空間,同時(shí)定義物理文件的存放路徑和所占硬盤的大小。物理上存放于網(wǎng)絡(luò)的多個(gè)ORACLE數(shù)據(jù)庫,邏輯上可以看成一個(gè)單個(gè)的大數(shù)據(jù)庫。用戶可以通過網(wǎng)絡(luò)對異地?cái)?shù)據(jù)庫中的數(shù)據(jù)同時(shí)進(jìn)行存取,而服務(wù)器之間的協(xié)同處理對于工作站用戶及應(yīng)用程序而言是完全透明的:開發(fā)人員無需關(guān)心網(wǎng)絡(luò)的連接細(xì)節(jié)、無需關(guān)心數(shù)據(jù)在網(wǎng)絡(luò)接點(diǎn)中的具體分布情況、也無需關(guān)心服務(wù)器之間的協(xié)調(diào)工作過程。<
35、;/p><p> 由網(wǎng)絡(luò)相連的兩個(gè)ORACLE數(shù)據(jù)庫之間通過數(shù)據(jù)庫鏈接(DB-LINKS)建立訪問機(jī)制,相當(dāng)于一方以另一方的某用戶遠(yuǎn)程登錄所做的操作。但ORACLE采用的一些高級管理方法,如同義詞(SYNONME)等使我們覺察不到這個(gè)過程,似乎遠(yuǎn)端的數(shù)據(jù)就在本地。數(shù)據(jù)庫復(fù)制技術(shù)包括:實(shí)時(shí)復(fù)制、定時(shí)復(fù)制、儲存轉(zhuǎn)發(fā)復(fù)制。對復(fù)制的力度而言,有整個(gè)數(shù)據(jù)庫表的復(fù)制,表中部分行的復(fù)制。在復(fù)制的過程中,有自動沖突檢測和解決的手段
36、。</p><p> 1.4.7 開發(fā)框架技術(shù)MVC</p><p> 對于框架技術(shù),我們采用Struts+ Struts+Hibernate的整合,其實(shí)任何一種框架都可以完成我們的項(xiàng)目,但我們選擇三種框架的組合是因?yàn)槿N框架各有好處,我們利用它們的優(yōu)點(diǎn),來避免它們的缺點(diǎn),充分利用Java技術(shù)在web的應(yīng)用。</p><p> ●Struts是應(yīng)用比較廣泛的
37、一種表現(xiàn)層框架</p><p> Struts是一個(gè)為開發(fā)基于模型(Model)-視圖(View)-控制器(Controller)(MVC)模式的應(yīng)用架構(gòu)的開源框架,是利用Servlet,JSP和custom tag library構(gòu)建Web應(yīng)用的一項(xiàng)非常有用的技術(shù)。由于Struts能充分滿足應(yīng)用開發(fā)的需求,簡單易用,敏捷迅速。它使用服務(wù)層框架可以將JavaBeans從Jsp/Servlet中分離出來,而使用表
38、現(xiàn)層框架則可以將Jsp中剩余的JavaBeans完全分離,這部分JavaBeans主要負(fù)責(zé)顯示相關(guān)信息,一般是通過標(biāo)簽庫(Taglib)實(shí)現(xiàn),不同框架有不同自己的標(biāo)簽庫,Struts是應(yīng)用比較廣泛的一種表現(xiàn)層框架。</p><p> 1.5 系統(tǒng)開發(fā)理論介紹</p><p> 軟件的生命周期指從提出軟件產(chǎn)品開始,直到該軟件產(chǎn)品被淘汰的全過程。信息系統(tǒng)在使用過程中隨著其生存環(huán)境的變化,要
39、不斷維護(hù)、修改,當(dāng)它不再適應(yīng)的時(shí)候就要被淘汰,就要有新系統(tǒng)代替老系統(tǒng),這種周期循環(huán)稱為信息系統(tǒng)的生命周期。</p><p> 信息系統(tǒng)的生命周期可以分為系統(tǒng)規(guī)劃、系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)施、系統(tǒng)運(yùn)行和維護(hù)等五個(gè)階段。</p><p> 1.5.1 系統(tǒng)規(guī)劃階段</p><p> 系統(tǒng)規(guī)劃階段的任務(wù)是對各家庭理財(cái)?shù)沫h(huán)境、目標(biāo)及現(xiàn)行系統(tǒng)的狀況進(jìn)行初步調(diào)查,根據(jù)家
40、庭理財(cái)目標(biāo)和發(fā)展戰(zhàn)略,確定信息系統(tǒng)的發(fā)展戰(zhàn)略,對建設(shè)新系統(tǒng)的需求做出分析和預(yù)測,同時(shí)考慮建設(shè)新系統(tǒng)所受的各種約束,研究建設(shè)新系統(tǒng)的必要性和可能性。根據(jù)需要與可能,給出擬建系統(tǒng)的備選方案。對這些方案進(jìn)行可行性分析,寫出可行性分析報(bào)告。可行性分析報(bào)告審議通過后,將新系統(tǒng)建設(shè)方案及實(shí)施計(jì)劃編寫成系統(tǒng)設(shè)計(jì)任務(wù)書。</p><p> 1.5.2 系統(tǒng)分析階段</p><p> 系統(tǒng)分析階段的任務(wù)
41、是根據(jù)系統(tǒng)設(shè)計(jì)任務(wù)書所確定的范圍,對現(xiàn)行系統(tǒng)進(jìn)行詳細(xì)調(diào)查,描述現(xiàn)行系統(tǒng)的業(yè)務(wù)流程,指出現(xiàn)行系統(tǒng)的局限性和不足之處,確定新系統(tǒng)的基本目標(biāo)和邏輯功能要求,即提出新系統(tǒng)的邏輯模型。這個(gè)階段又稱為邏輯設(shè)計(jì)階段,他是整個(gè)系統(tǒng)建設(shè)的關(guān)鍵階段,也是信息系統(tǒng)建設(shè)與一般工程項(xiàng)目的重要區(qū)別所在。該階段的工作成果體現(xiàn)在系統(tǒng)說明書中,這是系統(tǒng)建設(shè)的必備文件。它既是給用戶看的,也是下一階段的工作依據(jù)。因此,系統(tǒng)說明書既要通俗,又要準(zhǔn)確。用戶通過說明書可以了解未來
42、系統(tǒng)的功能,判斷是不是其所要求的系統(tǒng)。系統(tǒng)說明書一旦討論通過,就是系統(tǒng)設(shè)計(jì)的依據(jù),也是將來驗(yàn)收系統(tǒng)的依據(jù)。</p><p> 1.5.3 系統(tǒng)設(shè)計(jì)階段</p><p> 簡單地講,系統(tǒng)分析階段的任務(wù)是回答系統(tǒng)“做什么”的問題,而系統(tǒng)設(shè)計(jì)階段要回答的問題是“怎么做”。該階段的任務(wù)是根據(jù)系統(tǒng)說明書中規(guī)定的功能要求,考慮實(shí)際條件,具體設(shè)計(jì)實(shí)現(xiàn)邏輯模型的技術(shù)方案,也即設(shè)計(jì)新系統(tǒng)的物理模型。這個(gè)
43、階段又稱為物理設(shè)計(jì)階段,可分為總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段。這個(gè)階段的技術(shù)文檔是“系統(tǒng)設(shè)計(jì)說明書”。</p><p> 1.5.4 系統(tǒng)實(shí)施階段</p><p> 系統(tǒng)實(shí)施階段是將設(shè)計(jì)的系統(tǒng)付諸實(shí)施的階段。這一階段的任務(wù)包括計(jì)算機(jī)等設(shè)備的購置、安裝和調(diào)試,程序的編寫和調(diào)試,人員培訓(xùn),數(shù)據(jù)文件轉(zhuǎn)換,系統(tǒng)調(diào)試與轉(zhuǎn)換等。這個(gè)階段的特點(diǎn)是幾個(gè)互相聯(lián)系、互相制約的任務(wù)同時(shí)展開,必須精心安排、合理組
44、織。系統(tǒng)實(shí)施是按實(shí)施計(jì)劃分階段完成的,每個(gè)階段應(yīng)寫出實(shí)施進(jìn)度報(bào)告。系統(tǒng)測試之后寫出系統(tǒng)測試分析報(bào)告。</p><p><b> 1.6 運(yùn)行環(huán)境</b></p><p><b> ?、俨僮飨到y(tǒng)</b></p><p> Windows XP </p><p><b> ?、谲浖h(huán)境&l
45、t;/b></p><p> 數(shù)據(jù)庫:Oracle10g</p><p> 開發(fā)工具:MyEclipse8.5</p><p> 第2章 系統(tǒng)需求分析</p><p><b> 2.1系統(tǒng)目標(biāo)</b></p><p> 本系統(tǒng)要達(dá)到的目標(biāo)有以下幾點(diǎn):</p><
46、p> ◆ 驗(yàn)證用戶和密碼的正確性再登入,以及修改密碼和退出系統(tǒng);</p><p> ◆ 保存每次輸入的收支記錄,并提供兩種查詢方式:種類法和編號法;</p><p> ◆ 整個(gè)收支記錄庫可以導(dǎo)出為文本文件,以便做其它工作;</p><p> ◆ 能夠提供一定的安全機(jī)制,提供數(shù)據(jù)信息授權(quán)訪問,防止隨意刪改,同時(shí)提供信息備份的服務(wù)。</p&g
47、t;<p> 2.2 系統(tǒng)可行性分析</p><p> 可行性研究的目的是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決。從現(xiàn)在應(yīng)用的技術(shù)方面、管理者和用戶的操作方式方面研究智能家庭理財(cái)系統(tǒng)的可行性和必要性。智能家庭理財(cái)系統(tǒng)的實(shí)施,將很大程度上提高現(xiàn)代家庭的理財(cái)效率,使得現(xiàn)代家庭能夠更加方便的對自己的財(cái)務(wù)進(jìn)行個(gè)性化的管理。</p><p> 2.2.1 技術(shù)可行性&
48、lt;/p><p> 技術(shù)可行性研究的任務(wù),是從總體上鑒別和選擇技術(shù)系統(tǒng),是研究現(xiàn)有的技術(shù)條件能否順利完成開發(fā)工作,硬、軟件配置能否滿足開發(fā)的需求等等。本系統(tǒng)的開發(fā)使用MyEclipse 作為系統(tǒng)開發(fā)的開發(fā)環(huán)境,它作為一種現(xiàn)代化的編程語言,提供完善的指令控制語句、類與對象的支持及豐富的數(shù)據(jù)類型,給開發(fā)高性能系統(tǒng)提供了保障,為開發(fā)滿足客戶要求的系統(tǒng)保證了代碼的模塊化要求,而代碼模塊化的提高,非常有利于以后對新系統(tǒng)的擴(kuò)
49、展與修改。</p><p> 綜上所述,本系統(tǒng)為一個(gè)小型的家庭理財(cái)系統(tǒng),所耗費(fèi)的資源非常的小,現(xiàn)行的電腦無論是硬件還是軟件都能夠滿足條件,因此,本系統(tǒng)在技術(shù)上是可行的。</p><p> 2.2.2 經(jīng)濟(jì)可行性 </p><p> 進(jìn)行軟件開發(fā)項(xiàng)目成本的估算以及了解取得效益的評估,確定要開發(fā)的項(xiàng)目是否值得投資開發(fā),這些即為經(jīng)濟(jì)可行性。</p>
50、<p> 如今,隨著計(jì)算機(jī)的大量普及,各種軟件的開發(fā)成本越來越低,價(jià)格也越來越底。本系統(tǒng)也是這樣,開發(fā)成本較低,只是需要一臺配置一般的計(jì)算機(jī),該系統(tǒng)運(yùn)行時(shí)占計(jì)算機(jī)的資源也不多,但并不會因?yàn)殚_發(fā)成本低而造成系統(tǒng)功能性能的下降。相反,隨著計(jì)算機(jī)技術(shù)的發(fā)展,各種實(shí)用軟件的性能日漸提高。家庭理財(cái)管理系統(tǒng)廉價(jià)的開發(fā)成本,卻能夠?yàn)榫用駧硐喈?dāng)大的實(shí)惠和方便。主要表現(xiàn)在:</p><p> (1)本系統(tǒng)是一個(gè)擁有
51、多種實(shí)用功能的家庭理財(cái)管理信息系統(tǒng),它集成了家庭成員管理、收入管理、支出管理、密碼管理等多種功能,具有較強(qiáng)的實(shí)用性和方便性。</p><p> (2)本系統(tǒng)的運(yùn)行可以大大提高居民管理財(cái)務(wù)的效率,減少不必要的人力和物力。</p><p> (3)本系統(tǒng)還具有查詢和統(tǒng)計(jì)功能,能夠查詢到用戶在一段特定時(shí)間內(nèi)收入和支出的情況,特別是支出情況,有時(shí)往往會讓用戶在月底嚇一跳,大大超出預(yù)算,還弄不清
52、錢都花到哪里了。有了家庭理財(cái)系統(tǒng),不僅使用戶對口袋里錢的去向一目了然,而且可以幫助用戶漸漸感悟到一些心得,摸清哪些花費(fèi)是必要的,哪些“意外開支”是可以避免的,哪筆開支是可繼續(xù)評估其必要性的。</p><p> (4)本系統(tǒng)的運(yùn)行可以大大的提高家庭的工作效率,并可以使敏感文檔更加安全。</p><p> 由此可以得出,本系統(tǒng)在經(jīng)濟(jì)上是具有可行性的。</p><p>
53、; 2.3系統(tǒng)需求分析方法</p><p> 2.3.1系統(tǒng)需求分析概述</p><p> 在軟件工程中,需求分析指的是在建立一個(gè)新的或改變一個(gè)現(xiàn)存的電腦系統(tǒng)時(shí),為描寫新系統(tǒng)的目的、范圍和定義所要做的所有的工作。需求分析的任務(wù)是通過詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對象,充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。它是軟件工程中的一個(gè)關(guān)鍵過程。在這個(gè)過程中,系
54、統(tǒng)分析員和軟件工程師必須確定顧客的需要。只有在確定了這些需要后,他們才能夠分析和尋求新系統(tǒng)的解決方法。如果在需求分析時(shí)分析者們未能正確地認(rèn)識到顧客的需要的話,那么最后的軟件實(shí)際上不可能達(dá)到顧客的需要,或者軟件無法在規(guī)定的時(shí)間里完工。</p><p> 2.3.2系統(tǒng)需求分析方法</p><p> 在管理信息系統(tǒng)開發(fā)實(shí)踐中,系統(tǒng)分析人員使用了多種系統(tǒng)分析方法,主要有結(jié)構(gòu)化分析方法(Str
55、uctured Analysis簡稱SA)、面向數(shù)據(jù)結(jié)構(gòu)的分析方法以及面向?qū)ο蟮姆治龇椒ǖ?。其中,結(jié)構(gòu)化分析方法自從20世紀(jì)70年代末提出以后,由于其簡單、清晰、易于學(xué)習(xí)、掌握和使用的特點(diǎn),成為長期以來被廣泛使用的分析方法。</p><p> 結(jié)構(gòu)化系統(tǒng)分析是指用一組標(biāo)準(zhǔn)的準(zhǔn)則和工具從事分析工作,即有組織、有計(jì)劃、有規(guī)律地進(jìn)行分析。它是一種利用系統(tǒng)工程的思想和有關(guān)結(jié)構(gòu)的概念、自頂向下劃分模塊、逐步求精的分析方法
56、。該方法把研究對象看成一個(gè)系統(tǒng),用分解和抽象這兩個(gè)基本策略來控制系統(tǒng)的復(fù)雜性。它有三個(gè)要點(diǎn):(1)分解和抽象;(2)圖表描述;(3)模型轉(zhuǎn)換。</p><p> 結(jié)構(gòu)化系統(tǒng)分析常用的工具有:數(shù)據(jù)流程圖(DFD)、數(shù)據(jù)字典(DD)、數(shù)據(jù)庫存儲結(jié)構(gòu)規(guī)范化法;數(shù)據(jù)立即存取圖;處理邏輯的表達(dá)方法(決策樹、判定表、結(jié)構(gòu)式語言)</p><p> 2.4系統(tǒng)功能需求分析</p>&l
57、t;p> 家庭理財(cái)管理系統(tǒng)是典型的信息管理系統(tǒng),其開發(fā)功能主要包括:通過計(jì)算機(jī)管理個(gè)人財(cái)務(wù),實(shí)現(xiàn)無紙化理財(cái);通過查詢分析,統(tǒng)計(jì)出各項(xiàng)數(shù)據(jù),分析出生活中的浪費(fèi)和節(jié)約的地方,通過強(qiáng)大的查詢和索檢高效的索檢出數(shù)據(jù),提高辦事效率。本系統(tǒng)主要有以下功能:</p><p> ◆ 對家庭成員資料的管理及對使用權(quán)限的管理。相關(guān)信息存在“家庭成員信息表”中,普通用戶可以對自己的密碼進(jìn)行修改,系統(tǒng)管理員在密碼修改功能上的
58、基礎(chǔ)上可以添加或刪除成員;</p><p> ◆ 對理財(cái)項(xiàng)目可以進(jìn)行編輯。理財(cái)項(xiàng)目包括日常收入來源和支出類型,相關(guān)信息存在“收入來源表”、“支出類型表”、“活期賬戶信息表”均可以實(shí)現(xiàn)添加、刪除、修改功能;</p><p> ◆ 日常財(cái)務(wù)管理,包括日常收入和日常支出,即記下日常的收入和日常的支出。相關(guān)信息存入“收入信息表”和“支出信息表”中,均可以實(shí)現(xiàn)添加、刪除、修改功能。</
59、p><p> ◆ 理財(cái)分析,實(shí)現(xiàn)分類查詢,即按類別查詢收支明細(xì),而且可以看到收支的財(cái)務(wù)分析報(bào)告,并可打?。?lt;/p><p> ◆ 數(shù)據(jù)維護(hù):包括數(shù)據(jù)庫的備份、數(shù)據(jù)庫的導(dǎo)入/出,方便用戶保存和早期查詢;</p><p> 第3章 系統(tǒng)總體設(shè)計(jì)</p><p> 3.1 系統(tǒng)設(shè)計(jì)方法</p><p> 系統(tǒng)設(shè)計(jì)
60、是對整個(gè)管理系統(tǒng)功能進(jìn)行分析,并劃分和構(gòu)建系統(tǒng)功能模塊。模塊化程序設(shè)計(jì)就是把一個(gè)大程序按一個(gè)人能理解的規(guī)模進(jìn)行分解的一種方法。模塊化指的是把一個(gè)程序按功能分解成若干彼此具有一定獨(dú)立性同時(shí)也具有一定聯(lián)系的組成部分,這些組成部分稱為模塊。</p><p> 系統(tǒng)設(shè)計(jì)是本系統(tǒng)開發(fā)的重要階段,它直接影響到目標(biāo)系統(tǒng)的質(zhì)量,是整個(gè)開發(fā)工作的核心。系統(tǒng)設(shè)計(jì)階段的主要任務(wù)是:在系統(tǒng)分析提出的邏輯模型的基礎(chǔ)上,科學(xué)合理地進(jìn)行物理
61、模型設(shè)計(jì)。</p><p> 本系統(tǒng)在設(shè)計(jì)過程中,充分考慮了系統(tǒng)的穩(wěn)健性、適應(yīng)性和效率性,符合系統(tǒng)設(shè)計(jì)的原則。</p><p><b> 3.2 系統(tǒng)架構(gòu)</b></p><p> 通過對家庭理財(cái)功能的分析,本系統(tǒng)分為系統(tǒng)登錄界面、系統(tǒng)主程序界面、導(dǎo)出數(shù)據(jù)庫界面、導(dǎo)入數(shù)據(jù)庫界面、收支項(xiàng)目管理界面、家庭成員管理界面、日常收入管理界面、日常支
62、出管理界面、查詢明細(xì)界面。系統(tǒng)結(jié)構(gòu)設(shè)計(jì)圖如下:</p><p> 圖3.1 系統(tǒng)結(jié)構(gòu)圖</p><p> 3.3 系統(tǒng)功能模塊細(xì)分</p><p> 根據(jù)上述系統(tǒng)總體架構(gòu)思想的分析,可將系統(tǒng)分為以下六大部分:</p><p> ◆ 登錄管理模塊用戶登錄管理</p><p> ◆ 賬簿管理模塊可以新
63、增、修改、刪除記賬</p><p> ◆ 家庭成員管理可以設(shè)置家庭成員、修改、刪除</p><p> ◆ 收支項(xiàng)目管理可以設(shè)置收入和支出</p><p> ◆ 報(bào)表管理 </p><p><b> ◆ 退出管理</b></p><p> 最后得到如圖示系統(tǒng)功能模
64、塊圖:</p><p> 圖3.2 系統(tǒng)功能模塊圖</p><p> 3.4 系統(tǒng)數(shù)據(jù)庫的設(shè)計(jì)</p><p> 3.4.1 數(shù)據(jù)庫分析</p><p> 成員信息:編號,稱呼,姓名,密碼,權(quán)限;</p><p> 收入項(xiàng)目信息:編號,收入來源;</p><p> 支出項(xiàng)目信息:編號
65、,支出類型;</p><p> 日常收入信息:編號,日期,方式,金額,項(xiàng)目,來源,人員,備注;</p><p> 日常支出信息:編號,日期,方式,金額,項(xiàng)目,去向,人員,備注;</p><p> 3.4.2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)</p><p> 得到上面的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)后,即可設(shè)計(jì)滿足用戶需求的各種實(shí)體,以及它們之間的關(guān)系。根據(jù)上述
66、設(shè)計(jì)規(guī)劃出以下各個(gè)實(shí)體及其E-R圖:</p><p> 圖3.3 成員信息圖</p><p> 圖3.4收入支出項(xiàng)目圖</p><p> 圖3.5 日常收入信息圖</p><p> 綜合以上E-R模型,得到整個(gè)系統(tǒng)的E-R關(guān)系圖,如下示:</p><p> 圖3.6 E-R關(guān)系圖</p><
67、;p> 3.4.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)</p><p> 系統(tǒng)模型的邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)是把概念結(jié)構(gòu)設(shè)計(jì)好的基本的E-R圖轉(zhuǎn)換為支持關(guān)系模型的DBMS相符合的邏輯結(jié)構(gòu)。</p><p> 家庭理財(cái)管理系統(tǒng)數(shù)據(jù)庫各表具體定義如下:</p><p> 表3.1 家庭成員信息表</p><p> 表3.2 收入項(xiàng)目信息表</p&
68、gt;<p><b> 表3.3收入信息表</b></p><p><b> 第4章 系統(tǒng)特性</b></p><p> 4.1 框架文件配置</p><p> Spring+hibernate的配置</p><p> <bean id="dataSource
69、" class="org.apache.commons.dbcp.BasicDataSource"></p><p> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property></p>&
70、lt;p> <property name="url" value="jdbc:oracle:thin:@172.7.41.110:1521:XE"></property></p><p> <property name="username" value="ffms"></proper
71、ty></p><p> <property name="password" value="ffms"></property></p><p><b> </bean></b></p><p> <bean id="sessionFactor
72、y" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"></p><p> <property name="dataSource" ref="dataSource"/></p><p> <property n
73、ame="mappingResources"></p><p><b> <list></b></p><p> <value>com\\ambow\\ffms\\entity\\Entity.hbm.xml</value></p><p><b> </lis
74、t></b></p><p> </property></p><p> <property name="hibernateProperties"></p><p> <props> </p><p> <prop key="hibernat
75、e.dialect">org.hibernate.dialect.OracleDialect</prop> </p><p> <prop key="hibernate.show_sql">false</prop> </p><p> <prop key="hibernate.format_
76、sql">true</prop> </p><p><b> </props></b></p><p> </property></p><p><b> </bean></b></p><p> <bean id=&qu
77、ot;userDao" class="com.ambow.ffms.dao.UserDao"></p><p> <property name="sessionFactory" ref="sessionFactory"></property></p><p><b> <
78、/bean></b></p><p> <bean name="itemDao" class="com.ambow.ffms.dao.ItemDao"></p><p> <property name="sessionFactory" ref="sessionFactory&quo
79、t;></property></p><p><b> </bean></b></p><p> <bean name="accountDao" class="com.ambow.ffms.dao.AccountDao"></p><p> <prop
80、erty name="sessionFactory" ref="sessionFactory"></property></p><p><b> </bean></b></p><p> <bean id="userService" class="com.am
81、bow.ffms.service.UserService"></p><p> <property name="userDao" ref="userDao"></property></p><p><b> </bean></b></p><p>
82、 <bean id="itemService" class="com.ambow.ffms.service.ItemService"></p><p> <property name="itemDao" ref="itemDao"></property></p><p>&
83、lt;b> </bean></b></p><p> <bean id="accountService" class="com.ambow.ffms.service.AccountService"></p><p> <property name="accountDao" re
84、f="accountDao"></property></p><p><b> </bean></b></p><p><b> </beans></b></p><p> Sprint+Struts的配置(在web.xml中添加如下配置)</p&g
85、t;<p> <!-- 配置Spring的配置文件放的地方及文件名 --></p><p> <context-param></p><p> <param-name>contextConfigLocation</param-name></p><p> <param-value>/W
86、EB-INF/applicationContext*.xml,classpath*:applicationContext*.xml</param-value></p><p> </context-param></p><p> <!-- 配置Spring的偵聽器 --></p><p> <listener>&
87、lt;/p><p> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></p><p> </listener></p><p> <!-- 配置struts2過濾器 --></p>
88、<p><b> <filter></b></p><p> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-
89、class></p><p><b> </filter></b></p><p> <filter-mapping></p><p> <filter-name>struts2</filter-name></p><p> <url-pattern&g
90、t;/*</url-pattern></p><p> </filter-mapping></p><p><b> 4.2 系統(tǒng)主界面</b></p><p> 用戶進(jìn)入系統(tǒng)時(shí)要輸入正確的用戶名和密碼,系統(tǒng)從數(shù)據(jù)庫用戶表中檢索是否有相對應(yīng)的數(shù)據(jù)信息,若輸入正確則進(jìn)入主界面,否則提示錯(cuò)誤,需重新輸入。選擇取消退出登
91、陸系統(tǒng)。若連續(xù)三次輸入的用戶名和密碼都無法與數(shù)據(jù)庫中的數(shù)據(jù)匹配,則強(qiáng)制推出系統(tǒng)。</p><p> 模塊流程圖如圖4.1所示:</p><p> 圖4.1 登錄模塊流程圖</p><p> 登陸窗體如圖4.2所示:</p><p><b> 圖4.2 登錄窗體</b></p><p>
92、輸入正確的用戶名和密碼登錄,進(jìn)入系統(tǒng)主界面,如下圖示:</p><p> 圖4.3 系統(tǒng)主界面</p><p> 4.3家庭成員管理收支項(xiàng)目</p><p> 4.3.1 查看收支項(xiàng)目</p><p><b> 使用者:用戶</b></p><p> 目的:查看收支具體信息</p&
93、gt;<p><b> 基本事件流:</b></p><p> 1、進(jìn)入收支項(xiàng)目管理界面,點(diǎn)擊查看,本用例開始。</p><p> 2、查看具體項(xiàng)目收支情況。</p><p> 3、點(diǎn)擊確定,用例結(jié)束。</p><p> 4.3.2編輯收支項(xiàng)目</p><p><b&
94、gt; 使用者:用戶</b></p><p><b> 目的:編輯收支條目</b></p><p><b> 基本事件流:</b></p><p> 1、進(jìn)入收支項(xiàng)目管理界面,點(diǎn)擊編輯,用例開始。</p><p> 2、對當(dāng)前選中的收支條目進(jìn)行修改編輯。</p>
95、<p> 3、編輯完后點(diǎn)確定,用例結(jié)束。</p><p> 4.3.3 刪除收支項(xiàng)目</p><p><b> 使用者:用戶</b></p><p><b> 目的:刪除條目</b></p><p><b> 基本事件流:</b></p>&l
96、t;p> 1、進(jìn)入收支項(xiàng)目管理界面,點(diǎn)擊刪除,本用例開始。</p><p> 2、對當(dāng)前選中的收支條目進(jìn)行刪除操作。</p><p> 3、點(diǎn)擊確定刪除,用例結(jié)束。</p><p><b> 4.3.4 技術(shù)</b></p><p> package com.ambow.ffms.service;<
97、/p><p> import java.util.ArrayList;</p><p> import java.util.Collections;</p><p> import java.util.List;</p><p> import java.util.Set;</p><p> import org
98、.springframework.context.ApplicationContext;</p><p> import org.springframework.context.support.ClassPathXmlApplicationContext;</p><p> import com.ambow.ffms.dao.ItemDao;</p><p>
99、 import com.ambow.ffms.entity.Account;</p><p> import com.ambow.ffms.entity.Item;</p><p> public class ItemService {</p><p> // 約定類型父ID為0</p><p> private final stat
100、ic long TYPE_PID = 0;</p><p> // 收入類型,項(xiàng)目ID,即收入項(xiàng)目的父ID</p><p> private final static long INCOME_ID = 1;</p><p> // 支出類型,項(xiàng)目ID,即支出項(xiàng)目的父ID</p><p> private final static lo
101、ng PAYMENT_ID = 2;</p><p> private ItemDao itemDao;</p><p> public ItemService() {</p><p><b> } </b></p><p> public ItemDao getItemDao() {</p>&l
102、t;p> return itemDao;</p><p><b> }</b></p><p> public void setItemDao(ItemDao itemDao) {</p><p> this.itemDao = itemDao;</p><p><b> }</b>
103、</p><p> public Item getItemByPK(long id){</p><p> return itemDao.getItemByPK(id);</p><p><b> }</b></p><p> // 保存Item對象</p><p> public voi
104、d save(Item item) {</p><p> itemDao.save(item);</p><p><b> }</b></p><p> // 修改Item對象</p><p> public void update(Item item) {</p><p> itemD
105、ao.update(item);</p><p><b> }</b></p><p><b> // 刪除一個(gè)項(xiàng)目</b></p><p> public void delete(long id) {</p><p> itemDao.delete(id);</p><
106、p><b> }</b></p><p><b> // 批量刪除</b></p><p> public void delete(String[] ids) {</p><p> itemDao.delete(ids);</p><p><b> }</b>&
107、lt;/p><p> // 首先判斷這些項(xiàng)目中是否有子項(xiàng)目,或是否已有帳目,如有則不可以刪除</p><p> public boolean canDelete(String[] ids) {</p><p> for(String s : ids)</p><p><b> {</b></p><
108、;p> //Long id = new Long(s);</p><p> long id = Long.parseLong(s);</p><p> List<Item> sitems = itemDao.getSubItems(id);</p><p> Set<Account> accounts = itemDao
109、.getItemByPK(id).getAccounts();</p><p> if(sitems.size()!=0||accounts.size()!=0){</p><p> return false;</p><p><b> }</b></p><p><b> }</b><
110、;/p><p> return true;</p><p><b> }</b></p><p> // 根據(jù)父項(xiàng)目id獲得其子項(xiàng)目集合</p><p> public List<Item> getAllItems() {</p><p> return itemDao.g
111、etAllItems();</p><p><b> }</b></p><p> // 根據(jù)父項(xiàng)目id獲得其子項(xiàng)目集合</p><p> public List<Item> getSubItems(long pid) {</p><p> return itemDao.getSubItems(pid
112、);</p><p><b> }</b></p><p> //通過 ID 得到所有的PID</p><p> public Item getPItem(long id) {</p><p> return itemDao.getItemByPK(itemDao.getItemByPK(id).getPitem
113、().getId());</p><p><b> }</b></p><p> //*****判斷id是否是pid的后代,一個(gè)簡單的遞歸</p><p> public boolean isDescendant(long pid,long id){</p><p> return itemDao.isDesc
114、endant(pid,id);</p><p><b> }</b></p><p> public String getSZbyPK(Long id)</p><p><b> {</b></p><p> String itemType = "收入";</p&g
115、t;<p> if(isDescendant(11, id)||id==11)</p><p><b> {</b></p><p> itemType = "支出";</p><p><b> }</b></p><p> return itemType
116、;</p><p><b> }</b></p><p><b> //</b></p><p> public List getListNavByPid(long id)</p><p><b> {</b></p><p> List th
117、enav = itemDao.getListNavByid(id,new ArrayList());</p><p> if(thenav!=null)</p><p><b> {</b></p><p> String[] str ={"收入/支出","listItem.action?pid=0"
118、;};</p><p> thenav.add(str);</p><p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><p> thenav = new ArrayList
119、();</p><p> String[] str ={"收入/支出","listItem.action?pid=0"};</p><p> thenav.add(str);</p><p><b> }</b></p><p> String[] tempStr = (S
120、tring[])thenav.get(0);</p><p> tempStr[1] = "";</p><p> thenav.set(0, tempStr);</p><p> Collections.reverse(thenav);</p><p> return thenav;</p><
121、;p><b> }</b></p><p> public static void main(String[] args) {</p><p> //ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext_i
122、tem.xml");</p><p> //ItemService is=(ItemService)applicationContext.getBean("itemService");</p><p> //System.out.println(is.getPItem(43L).getPitem().getSitems());</p>
123、;<p> //List<Item> items = is.getSubItems(0L);</p><p> //for(Item item:items)</p><p><b> //{</b></p><p> //System.out.println(is.getSZbyPK(
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家庭財(cái)務(wù)管理系統(tǒng)畢業(yè)論文
- 家庭財(cái)務(wù)管理系統(tǒng)畢業(yè)論文
- 家庭財(cái)務(wù)管理系統(tǒng)畢業(yè)論文
- 財(cái)務(wù)管理畢業(yè)論文
- 財(cái)務(wù)管理畢業(yè)論文
- 財(cái)務(wù)管理畢業(yè)論文
- 財(cái)務(wù)管理畢業(yè)論文
- 畢業(yè)論文《家庭財(cái)務(wù)管理系統(tǒng)》.doc
- 家庭財(cái)務(wù)管理系統(tǒng)-畢業(yè)論文12
- 財(cái)務(wù)管理專業(yè)畢業(yè)論文
- 網(wǎng)上財(cái)務(wù)管理畢業(yè)論文
- 村級財(cái)務(wù)管理畢業(yè)論文
- 酒店財(cái)務(wù)管理畢業(yè)論文
- 財(cái)務(wù)管理畢業(yè)論文 (2)
- 畢業(yè)論文財(cái)務(wù)管理專業(yè)
- 級財(cái)務(wù)管理畢業(yè)論文
- 財(cái)務(wù)管理畢業(yè)論文1
- 財(cái)務(wù)管理畢業(yè)論文 (2)
- 財(cái)務(wù)管理目標(biāo)畢業(yè)論文
- 酒店財(cái)務(wù)管理畢業(yè)論文
評論
0/150
提交評論