2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩47頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  畢 業(yè) 論 文(設(shè)計(jì))</p><p> 論文(設(shè)計(jì))題目家庭理財(cái)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 院系名稱</p><p> 專業(yè)(班級)</p><p> 姓名(學(xué)號)</p><p> 指導(dǎo)教師</p><p> 系負(fù)責(zé)人</p><p> 

2、完成時(shí)間</p><p>  家庭理財(cái)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  中 文 摘 要</p><p>  家庭財(cái)務(wù)管理系統(tǒng)就是我們常說的管理信息系統(tǒng)MIS(Management Information System)中的一種,它是一個(gè)計(jì)算機(jī)軟硬件資源以及數(shù)據(jù)庫的人-機(jī)系統(tǒng)。隨著信息技術(shù),計(jì)算機(jī)技術(shù)的發(fā)展,在社會各領(lǐng)域都已經(jīng)離不開信息系統(tǒng)的支持。</

3、p><p>  本系統(tǒng)是在對當(dāng)代社會家庭財(cái)務(wù)狀況進(jìn)行了全面分析的基礎(chǔ)上,制做的關(guān)于處理家庭財(cái)產(chǎn),家庭副業(yè),家庭生活,家庭經(jīng)營等方面的管理系統(tǒng)可以完成對各類信息的查看、查詢、添加、刪除、編輯、報(bào)表等功能。該系統(tǒng)是典型的財(cái)務(wù)管理系統(tǒng),包括“賬簿管理”、“家庭成員管理”、“收支項(xiàng)目管理”、“報(bào)表統(tǒng)計(jì)”四個(gè)項(xiàng)目模型,可對家庭成員、收支項(xiàng)目、收支金額等進(jìn)行管理統(tǒng)計(jì),配有多個(gè)快捷按鈕使用簡單。</p><p&

4、gt;  其開發(fā)主要包括后臺數(shù)據(jù)庫的建立鏈接和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對于前者建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。經(jīng)過分析以微軟公司的SQL Server 2000、以及 MyEclipse和Tomcat為工具開發(fā)出來的系統(tǒng),它有著最為靈活的數(shù)據(jù)庫結(jié)構(gòu),對數(shù)據(jù)庫應(yīng)用有著良好的支持。本系統(tǒng)采用的是基于B/S模式的體系結(jié)構(gòu)。</p><p>  關(guān)

5、鍵詞:家庭財(cái)務(wù)管理系統(tǒng);SQL Server 2000;JSP ;B/S </p><p>  The Management System of the Family Finance</p><p><b>  ABSTRACT</b></p><p>  The management system of the family finance

6、is the management information system(MIS)that we often say. It is a human-machine system of hardware and software resources as well as database. Along with information technology, computer technology development, we are

7、not all already got away from support of the information system in the social various domains.</p><p>  This system is the basis of a comprehensive analysis of contemporary social and family financial situat

8、ion, making for dealing with family property in household sideline production, family life, family-run management system can complete all kinds of information to view, query,add, delete, edit, report and other functions.

9、 The system is typical of the financial management system, including the "books", "family management", the balance of payments project management, statistical reports four proje</p><p>  

10、Includes the development of back-end database to establish the link, and maintenance, and front-end application development aspects. For the former to establish data consistency and integrity, data security, a good libra

11、ry. For the latter requires the application fully functional, easy to use features. Microsoft SQL Server 2000, as well as MyEclipse and Tomcat as a tool to develop systems through analysis, it has the most flexible datab

12、ase structure, have a good support for database applications</p><p>  Key word:family financial management system,structured query language server 2000 database,javascript,browser/server</p><p>

13、<b>  目 錄</b></p><p><b>  中文摘要I</b></p><p>  ABSTRACTII</p><p><b>  第一章 緒論1</b></p><p>  1.1 課題簡介1</p><p>  1.2 系

14、統(tǒng)可行性分析1</p><p>  1.3 MyEclipse的介紹2</p><p>  1.4 SQL Server 2000數(shù)據(jù)庫2</p><p>  1.5 B/S體系結(jié)構(gòu)3</p><p>  1.6 環(huán)境需求3</p><p>  1.6.1 軟件環(huán)境需求3</p><p&

15、gt;  1.6.2 硬件環(huán)境需求4</p><p>  第二章 系統(tǒng)需求分析5</p><p>  2.1 系統(tǒng)結(jié)構(gòu)分析初步5</p><p>  2.2 系統(tǒng)設(shè)計(jì)思想5</p><p>  2.3 系統(tǒng)架構(gòu)5</p><p>  2.4 數(shù)據(jù)庫需求分析6</p><p>  第三

16、章 系統(tǒng)總體設(shè)計(jì)7</p><p>  3.1 系統(tǒng)功能模塊細(xì)分7</p><p>  3.2 數(shù)據(jù)庫設(shè)計(jì)8</p><p>  3.2.1 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)8</p><p>  3.2.2 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)9</p><p>  3.2.3 數(shù)據(jù)庫建表10</p><p> 

17、 3.3. 系統(tǒng)整體詳細(xì)設(shè)計(jì)12</p><p>  第四章 系統(tǒng)實(shí)現(xiàn)13</p><p>  4.1 JDBC建立數(shù)據(jù)庫連接的設(shè)計(jì)13</p><p>  4.2 系統(tǒng)登錄界面的設(shè)計(jì)15</p><p>  4.3 主界面的設(shè)計(jì)17</p><p>  4.4 賬簿管理模塊的設(shè)計(jì)19</p>

18、<p>  4.4.1. 新增收支記錄20</p><p>  4.4.2. 編輯收支記錄22</p><p>  4.4.3. 查找收支記錄24</p><p>  4.4.4. 刪除收支記錄26</p><p>  4.5 家庭成員管理模塊的設(shè)計(jì)26</p><p>  4.5.1.

19、 新增用戶27</p><p>  4.5.2. 刪除已有用戶29</p><p>  4.5.3. 編輯用戶信息29</p><p>  4.6 收支項(xiàng)目模塊的設(shè)計(jì)31</p><p>  4.7 報(bào)表統(tǒng)計(jì)模塊的設(shè)計(jì)33</p><p>  第五章 系統(tǒng)測試38</p><p>

20、;  5.1 測試環(huán)境38</p><p>  5.1.1 軟件環(huán)境38</p><p>  5.1.2 硬件環(huán)境38</p><p>  5.2 系統(tǒng)測試38</p><p>  5.2.1 測試的目的38</p><p>  5.2.2 測試的方法及內(nèi)容39</p><p>&l

21、t;b>  結(jié)論41</b></p><p><b>  參考文獻(xiàn)42</b></p><p><b>  致 謝43</b></p><p><b>  第一章 緒論</b></p><p><b>  1.1 課題簡介</b&g

22、t;</p><p>  隨著社會的飛速發(fā)展,隨著生活和文化水平的提高,現(xiàn)代家庭在理財(cái)上所要面對的項(xiàng)目和事物越來越多,需要處理的信息急劇增加?,F(xiàn)在我國的家庭財(cái)務(wù)管理水平還停留在紙介質(zhì)的基礎(chǔ)上,這樣的機(jī)制已經(jīng)不能適應(yīng)時(shí)代的發(fā)展,因?yàn)樗速M(fèi)了許多人力和物力,在信息時(shí)代這種傳統(tǒng)的管理方法必然被計(jì)算機(jī)為基礎(chǔ)的信息管理所取代。為了適應(yīng)現(xiàn)代化的快節(jié)奏生活,也為了可以對如此多的信息實(shí)現(xiàn)科學(xué)的管理,家庭財(cái)務(wù)管理系統(tǒng)的需求也就應(yīng)運(yùn)

23、而生。</p><p>  本系統(tǒng)是一個(gè)小型家庭財(cái)務(wù)管理軟件,系統(tǒng)目標(biāo)是把適合家庭化管理的各種理財(cái)手段及家庭日常收支管理實(shí)現(xiàn)計(jì)算機(jī)化管理,使對家庭及家庭成員的收支活動(dòng)更好地進(jìn)行記錄并加以統(tǒng)計(jì)分析成為可能,也使家庭理財(cái)變得方便,快捷,全面,適應(yīng)社會不同階層,不同行業(yè)人士的應(yīng)用。其界面友好,操作簡單,除具備基本的財(cái)務(wù)信息管理外,還提供了用戶管理,數(shù)據(jù)查詢,報(bào)表統(tǒng)計(jì)等。它多方面把握用戶的財(cái)務(wù)情況,科學(xué)的統(tǒng)計(jì)數(shù)據(jù)。<

24、;/p><p>  家庭財(cái)務(wù)管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。</p><p>  本系統(tǒng)采用MyEclipse、Tomcat以及SQL Server 開發(fā)環(huán)境,是一個(gè)提供家庭理財(cái)功能的軟件,它主要使用于家庭成員對財(cái)

25、務(wù)狀況的掌握和管理,解決了日常的收支項(xiàng)目、收支金額、按時(shí)間統(tǒng)計(jì)等管理需求。主要的功能包括:</p><p>  1.賬簿管理,包括日常收入與支出的記錄,以及費(fèi)用的經(jīng)手人和記錄時(shí)間同時(shí)給出備注以便查看。</p><p>  2.家庭成員管理,包括賬戶的新建、修改、查詢等操作,可以很方便地實(shí)現(xiàn)系統(tǒng)用戶管理。</p><p>  3.收支項(xiàng)目管理,對家庭主要的收入支出項(xiàng)目

26、進(jìn)行記錄,供查詢修改,一目了然。</p><p>  4.報(bào)表統(tǒng)計(jì),可以設(shè)置時(shí)間段,對整個(gè)家庭在這一指定的時(shí)間段內(nèi)進(jìn)行收支統(tǒng)計(jì),給出詳細(xì)盈虧結(jié)論。</p><p>  1.2 系統(tǒng)可行性分析</p><p>  現(xiàn)在,人們的生活水平和文化素質(zhì)普遍提高,并且開始注重生活質(zhì)量。隨著市場經(jīng)濟(jì)的快速發(fā)展,觀念的不斷更新,個(gè)人理財(cái)意識普遍增強(qiáng),特別是家庭理財(cái)意識得到很大發(fā)展,

27、在意識上,一方面,人們對家庭和個(gè)人的各方面消費(fèi)有想進(jìn)行統(tǒng)計(jì)和分析的愿望,以便更好地做好家庭收支計(jì)劃,和家庭財(cái)務(wù)管理。另一方面,各種理財(cái)手段不斷豐富,如何把各種理財(cái)手段統(tǒng)一起來,并且能更加方便的操作成為要求。在物質(zhì)基礎(chǔ)上,計(jì)算機(jī)的應(yīng)用開始普及,人們購置計(jì)算機(jī)和使用計(jì)算機(jī)的能力增強(qiáng),人均計(jì)算機(jī)擁有量將快速提高。這些條件說明,人們有購買一個(gè)家庭化財(cái)務(wù)軟件的要求。在一個(gè)可接受的價(jià)格范圍內(nèi),將購買這種軟件,因此具有市場潛力。開發(fā)一個(gè)小型財(cái)務(wù)軟件,

28、用快速開發(fā)工具可在幾個(gè)也內(nèi)由幾個(gè)人的開發(fā)小組完成。經(jīng)過以上分析,開發(fā)一個(gè)通用型家庭理財(cái)軟件具有在經(jīng)濟(jì)和市場可行性。</p><p>  技術(shù)上主要涉及界面設(shè)計(jì)和數(shù)據(jù)庫設(shè)計(jì)。在開發(fā)工具方面,可采用一個(gè)十分優(yōu)秀的用于開發(fā)Java, J2EE的Eclipse插件集合——MyEclipse,它的功能非常強(qiáng)大,支持也十分廣泛,尤其是對各種開源產(chǎn)品的支持十分不錯(cuò),例如使用到的Tomcat。利用它我們可以在數(shù)據(jù)庫和JavaEE

29、的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。</p><p>  1.3 MyEclipse的介紹</p><p>  MyEclipse,是一個(gè)十分優(yōu)秀的用于開發(fā)Java, J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對各種開源產(chǎn)品的支持十分不錯(cuò)。</p><p>  MyEclipse企業(yè)級工作平臺(

30、MyEclipse Enterprise Workbench ,簡稱MyEclipse)是對EclipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。</p><

31、p>  在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類: JavaEE模型; WEB開發(fā)工具 ;EJB開發(fā)工具 ;應(yīng)用程序服務(wù)器的連接器 ;JavaEE項(xiàng)目部署服務(wù) ;數(shù)據(jù)庫服務(wù) ;MyEclipse整合幫助 。</p><p>  對于以上每一種功能上的類別,在Eclipse中都有相應(yīng)的功能部件,并通過一系列的插件來實(shí)現(xiàn)它們。MyEclipse結(jié)構(gòu)上的這種模塊化,可以讓我們在不影響其他模塊的情況下,對任

32、一模塊進(jìn)行單獨(dú)的擴(kuò)展和升級。 </p><p>  簡單而言,MyEclipse是Eclipse的插件,也是一款功能強(qiáng)大的JavaEE集成開發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯(cuò),MyEclipse 6.0以前版本需先安裝Eclipse。MyEclipse 6.0以后版本安裝時(shí)不需安裝Eclipse,開發(fā)本系統(tǒng)的工具為MyEclipse 8.5。</p><p>  1.4 SQL Se

33、rver數(shù)據(jù)庫</p><p>  SQL 的全稱是Structured Query Language,即結(jié)構(gòu)化查詢語言。SQL語句可以從關(guān)系數(shù)據(jù)庫中獲得數(shù)據(jù),也可以建立數(shù)據(jù)庫、增加數(shù)據(jù)、修改數(shù)據(jù)。1986年ANSI采用SQL語言作為關(guān)系數(shù)據(jù)庫系統(tǒng)的標(biāo)準(zhǔn)語言,后被國際化標(biāo)準(zhǔn)組織(ISO)采納為國際標(biāo)準(zhǔn)。SQL語言使用方便、功能豐富、簡潔易學(xué),是操作數(shù)據(jù)庫的工業(yè)標(biāo)準(zhǔn)語言,得到廣泛地應(yīng)用。例如關(guān)系數(shù)據(jù)庫產(chǎn)品DB2、O

34、RACLE等都實(shí)現(xiàn)了SQL語言。同時(shí),其它數(shù)據(jù)庫產(chǎn)品廠家也紛紛推出各自的支持SQL的軟件或者與SQL的接口軟件。這樣SQL語言很快被整個(gè)計(jì)算機(jī)界認(rèn)可。</p><p>  SQL語言是一種非過程化語言,它一次處理一個(gè)記錄集合,對數(shù)據(jù)提供自動(dòng)導(dǎo)航。SQL語言允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對單個(gè)記錄進(jìn)行操作。SQL語言不要求用戶指定數(shù)據(jù)的存取方法,而是使用查詢優(yōu)化器,由系統(tǒng)決定對指定數(shù)據(jù)存取的最快速手段。當(dāng)設(shè)計(jì)

35、者在關(guān)系表上定義了索引時(shí),系統(tǒng)會自動(dòng)利用索引進(jìn)行快速檢索,用戶不需知道表上是否有索引或者有什么類型的索引等細(xì)節(jié)。</p><p>  1.5 B/S體系結(jié)構(gòu)</p><p>  瀏覽器/服務(wù)器模式(Browser/Server,簡稱C/S模式),三層結(jié)構(gòu),它的運(yùn)行環(huán)境分客戶端、應(yīng)用服務(wù)器端和數(shù)據(jù)庫服務(wù)器端三部分。</p><p><b>  其原理圖如下:

36、</b></p><p>  圖1-1 B/S 模式原理圖</p><p>  B/S結(jié)構(gòu)是WEB興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,WEB瀏覽器是客戶端最主要的應(yīng)用軟件。這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,簡化了系統(tǒng)的開發(fā)、維護(hù)和使用??蛻魴C(jī)上只要安裝一個(gè)瀏覽器(Browser),如Netscape Navigator或Internet Explorer,服

37、務(wù)器安裝Oracle、Sybase、Informix或 SQL Server等數(shù)據(jù)庫。瀏覽器通過Web Server 同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互。在這種結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn)。瀏覽器通過Web Server 同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互。</p><p><b>  1.6 環(huán)境需求</b></p><p>

38、;  1.6.1 軟件環(huán)境需求</p><p>  本系統(tǒng)開發(fā)需求的軟件有:</p><p> ?。?)Windows xp 操作系統(tǒng)。</p><p> ?。?)MyEclipse 8.5</p><p>  (3)SQL Server 2005數(shù)據(jù)庫</p><p>  1.6.2 硬件環(huán)境需求</p>

39、<p>  本系統(tǒng)開發(fā)需求的硬件有:</p><p> ?。?)Intel奔騰系列以上CPU;</p><p> ?。?)硬盤數(shù)據(jù)量配置為120G;</p><p> ?。?)計(jì)算機(jī)內(nèi)存要求為2G以上;</p><p>  第二章 系統(tǒng)需求分析</p><p>  2.1 系統(tǒng)結(jié)構(gòu)分析初步</p&g

40、t;<p>  整個(gè)家庭財(cái)務(wù)管理系統(tǒng)的所有用戶都是全部的家庭成員,考慮到使用該系統(tǒng)的是家庭主要管理成員(父母),其管理地位基本平等,在管理訴求上有著眾多相同點(diǎn),所以系統(tǒng)設(shè)計(jì)放寬用戶權(quán)限的約束。用戶基本都可以進(jìn)行系統(tǒng)功能的使用。系統(tǒng)用戶需要定時(shí)的對家庭財(cái)務(wù)進(jìn)行管理,包括賬目管理、收支項(xiàng)目管理、報(bào)表管理等。因?yàn)檫@是一個(gè)家庭財(cái)務(wù)管理系,所以不需要編寫注冊界面,可以由已有用戶直接建立新用戶分配給具有操作能力的家庭成員。</p

41、><p>  利用數(shù)據(jù)庫作為數(shù)據(jù)源,通過程序圖形化界面的操作轉(zhuǎn)化成對數(shù)據(jù)庫的讀寫,這樣便于數(shù)據(jù)管理。更重要的是在系統(tǒng)使用一段時(shí)間后同樣可以憑借數(shù)據(jù)庫讀寫速度快的優(yōu)勢保證系統(tǒng)反應(yīng)速度滿足用戶需求。</p><p>  2.2 系統(tǒng)設(shè)計(jì)思想</p><p>  考慮到該小型家庭財(cái)務(wù)管理軟件的系統(tǒng)要求,本系統(tǒng)采用Microsoft SQL Server數(shù)據(jù)庫加JDBC技術(shù)實(shí)現(xiàn)

42、對數(shù)據(jù)庫的訪問,如下圖:</p><p>  圖 2-1 系統(tǒng)數(shù)據(jù)交互結(jié)構(gòu)圖</p><p><b>  2.3 系統(tǒng)架構(gòu)</b></p><p>  通過對家庭財(cái)務(wù)管理系統(tǒng)功能的分析,本系統(tǒng)分為系統(tǒng)登陸界面、系統(tǒng)主界面、賬簿管理界面、家庭成員管理界面、收支項(xiàng)目管理界面、報(bào)表統(tǒng)計(jì)界面。</p><p>  系統(tǒng)結(jié)構(gòu)設(shè)計(jì)圖

43、如下圖:</p><p>  圖 2-2 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)圖</p><p>  2.4 數(shù)據(jù)庫需求分析</p><p>  根據(jù)上面的系統(tǒng)分析和系統(tǒng)功能模塊圖,設(shè)計(jì)出下列數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)。</p><p>  1.用戶信息,包括的數(shù)據(jù)項(xiàng)由:編號,用戶名,姓名,密碼,權(quán)限。</p><p>  2.賬簿信息,包括的數(shù)據(jù)項(xiàng)

44、有:編號,金額,款項(xiàng)日期,備注,項(xiàng)目編號,用戶編號。</p><p>  3.收支項(xiàng)目信息,包括的數(shù)據(jù)項(xiàng)有:編號,收支類型,備注。</p><p>  第三章 系統(tǒng)總體設(shè)計(jì)</p><p>  3.1 系統(tǒng)功能模塊細(xì)分</p><p>  根據(jù)對系統(tǒng)總體設(shè)計(jì)思想的分析,可將系統(tǒng)分為以下四大部分:</p><p>  1

45、.賬簿管理模塊:負(fù)責(zé)對家庭賬簿進(jìn)行管理</p><p>  2.家庭成員管理模塊:負(fù)責(zé)對家庭成員進(jìn)行管理</p><p>  3.收支項(xiàng)目管理管理模塊 :負(fù)責(zé)對收支項(xiàng)目進(jìn)行管理</p><p>  4.統(tǒng)計(jì)報(bào)告管理模塊 :負(fù)責(zé)對指定時(shí)間收支進(jìn)行統(tǒng)計(jì)管理</p><p>  下圖為系統(tǒng)功能模塊圖:</p><p>  圖

46、 3-1 系統(tǒng)功能模塊圖</p><p><b>  3.2 數(shù)據(jù)庫設(shè)計(jì)</b></p><p>  3.2.1 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)</p><p>  數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)就是在以上數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)的前提下,設(shè)計(jì)出滿足用戶需求的實(shí)體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。</p><p>  本軟件規(guī)劃出的實(shí)

47、體有:用戶信息實(shí)體,賬簿信息實(shí)體,收支項(xiàng)目信息實(shí)體。</p><p>  各個(gè)實(shí)體具體的描述E-R圖如下:</p><p>  用戶信息實(shí)體E-R圖:</p><p>  圖3-2 用戶信息實(shí)體E-R圖</p><p>  賬簿信息實(shí)體E-R圖:</p><p>  圖3-3 賬簿信息實(shí)體E-R圖</p>

48、<p>  收支項(xiàng)目信息實(shí)體E-R圖:</p><p>  圖3-4 收支項(xiàng)目實(shí)體E-R圖</p><p>  3.2.2 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)</p><p>  根據(jù)以上的信息實(shí)體E-R圖,本系統(tǒng)數(shù)據(jù)庫中的各個(gè)表格的設(shè)計(jì)結(jié)構(gòu)如下面的表:</p><p>  表3-1 用戶表User</p><p>  表

49、3-2 收支項(xiàng)目表 Items</p><p>  表3-3 賬目表 Account</p><p>  3.2.3 數(shù)據(jù)庫建表</p><p>  先啟動(dòng)數(shù)據(jù)庫服務(wù)管理器,打開SQL Server 2000企業(yè)管理器,在企業(yè)管理器界面,右擊“數(shù)據(jù)庫”,選擇“新建數(shù)據(jù)庫”,填寫數(shù)據(jù)庫名稱:family,單擊“確定”完成新建數(shù)據(jù)庫。</p><p&

50、gt;  打開查詢分析器,在family里執(zhí)行以下數(shù)據(jù)庫建表語句完成建表:</p><p>  Create table User</p><p><b>  (</b></p><p>  userId int not null primary key,</p><p&g

51、t;  userName nvchar(50) not null,</p><p>  userTrueName varchar(8) not null,</p><p>  userPassword nvchar(50) not null</p><p><b>  );</b

52、></p><p>  Create table Items</p><p><b>  (</b></p><p>  itemsId int not null primary key,</p><p>  itemsType nvchar(50)

53、 not null,</p><p>  itemsDetails nvchar(200) not null</p><p><b>  );</b></p><p>  Create table Accout</p><p><b>  (</b></p&g

54、t;<p>  accountId int not null primary key,</p><p>  accountMoney money not null,</p><p>  accountDetails varchar(200) not null,</p>

55、<p>  accountDate datetime not null,</p><p>  itemsId int not null,</p><p>  userId int not null </p><p><

56、b>  );</b></p><p>  執(zhí)行完成之后可以看到如下3個(gè)表的結(jié)構(gòu):</p><p>  圖3-5 user表</p><p>  圖3-6 items表</p><p>  圖3-7 account表</p><p>  3.3 系統(tǒng)整體詳細(xì)設(shè)計(jì)</p><p>

57、  本系統(tǒng)只是個(gè)小型的家庭財(cái)務(wù)管理系統(tǒng),因此整體的數(shù)據(jù)流走向不會太復(fù)雜,其中最主要的模塊有賬簿管理、收支項(xiàng)目管理、家庭成員管理以及報(bào)表統(tǒng)計(jì)。</p><p>  系統(tǒng)整體數(shù)據(jù)流程圖如下:</p><p>  圖 3-8 系統(tǒng)整體數(shù)據(jù)流程圖</p><p><b>  第四章 系統(tǒng)實(shí)現(xiàn)</b></p><p>  4.1

58、JDBC建立數(shù)據(jù)庫連接的設(shè)計(jì)</p><p>  系統(tǒng)的核心內(nèi)容是與數(shù)據(jù)庫進(jìn)行的數(shù)據(jù)交互,通過與數(shù)據(jù)庫的連接,執(zhí)行查詢、插入、更改、刪除等操作。JDBC接口技術(shù)是一種通過java語言訪問數(shù)據(jù)庫的應(yīng)用程序接口。主要實(shí)現(xiàn)三個(gè)功能:與一個(gè)數(shù)據(jù)庫建立連接(connection);向一個(gè)數(shù)據(jù)庫發(fā)送SQL語句(statement);處理數(shù)據(jù)庫返回的結(jié)果(result)。</p><p>  JDBC數(shù)

59、據(jù)庫連接步驟主要有:</p><p>  1.加入命令行:所有與數(shù)據(jù)庫有關(guān)的對象和方法都在java.sql包中,所以在使用JSP訪問數(shù)據(jù)庫的程序中必須加入命令行:</p><p>  <%@ page import=”java.sql.*”%></p><p>  2.加載驅(qū)動(dòng)程序,使用語句:</p><p>  Class.fo

60、rName(“DataBaseDrivers”);</p><p>  Class是包java.lang中的一個(gè)類,該類通過調(diào)用靜態(tài)方法forName加載驅(qū)動(dòng)程序。由于加載驅(qū)動(dòng)程序時(shí)可能產(chǎn)生異常,所以需要異常處理程序段。</p><p><b>  try{</b></p><p><b>  …</b></p>

61、;<p>  }catch(Exception e){</p><p><b>  …</b></p><p><b>  }</b></p><p>  3.建立連接:要連接一個(gè)數(shù)據(jù)庫,必須創(chuàng)建Connection類的一個(gè)實(shí)例,使用語句:</p><p>  Connection c

62、onn = null;</p><p>  conn = DriverManager.getConnection(connStr,userName,userPass);</p><p>  調(diào)用DriverManager.getConnection方法建立與數(shù)據(jù)庫的連接,指定了數(shù)據(jù)庫的位置、用戶名和用戶密碼。一旦該方法找到了建立連接驅(qū)動(dòng)程序和數(shù)據(jù)源,則通過用戶名和口令開始與DBMS建立連

63、接,如果連接通過則建立完成。</p><p>  4.發(fā)送SQL語句:JDBC提供了3個(gè)類向數(shù)據(jù)庫發(fā)送SQL語句:Statement、PrepareStatement和CallableStatement。主要語句:</p><p>  Connection conn = null;</p><p>  conn = DriverManager.getConnect

64、ion(connStr,userName,userPass);</p><p>  PrepareStatement pstmt=PrepareStatement(“select * from user”);</p><p>  5.創(chuàng)建結(jié)果集對象:</p><p>  Statement stmt=con.create Statement();</p>

65、<p>  ResultSet rs;</p><p>  rs=stmt.excuteQuery(“select * from user where userId =’1’”);</p><p>  6.執(zhí)行SQL語句:執(zhí)行SQL語句可選用三種方法:excuteQuery、excuteUpdate和excute。excuteQuery用于產(chǎn)生單個(gè)結(jié)果集的語句,excuteU

66、pdate用來執(zhí)行insert、update、delete等操作,excute用來返回多個(gè)結(jié)果集等情況。</p><p>  7.關(guān)閉對象:結(jié)束對數(shù)據(jù)庫的訪問后要關(guān)閉建立的對象,同時(shí)可能產(chǎn)生異常所以要加上異常處理程序語句:</p><p>  public static void closeConnection(Connection conn){</p><p> 

67、 if(conn!=null){</p><p><b>  try {</b></p><p>  conn.close();</p><p>  } catch (SQLException e) {}</p><p><b>  }</b></p><p>  /

68、/System.out.println("關(guān)閉了數(shù)據(jù)庫連接!");</p><p><b>  }</b></p><p><b>  類似的有還有: </b></p><p>  rs.close() //關(guān)閉ResultSet對象</p><p>  stmt.clos

69、e() //關(guān)閉Statement對象</p><p>  4.2 系統(tǒng)登錄界面的設(shè)計(jì)</p><p>  系統(tǒng)用戶登錄界面的設(shè)計(jì):</p><p>  1.模塊名:系統(tǒng)用戶登錄。</p><p>  2.輸入?yún)?shù):用戶登錄名、密碼。</p><p>  3.輸出參數(shù):合法用戶信息,錯(cuò)誤信息。</p>

70、<p>  用戶登錄界面的程序流程圖如下:</p><p><b>  否</b></p><p><b>  是</b></p><p><b>  否</b></p><p><b>  是</b></p><p> 

71、 圖 4-1 用戶登錄界面的程序流程圖</p><p>  登錄界面共添加2個(gè)文本框,2個(gè)按鈕。文本框用于用戶輸入用戶名及密碼。登錄按鈕提交輸入內(nèi)容,查詢數(shù)據(jù)庫檢測用戶是否合法,如是系統(tǒng)用戶則進(jìn)入主界面,否則報(bào)錯(cuò)并要求重新輸入登錄信息。取消按鈕用于退出系統(tǒng)登陸界面。</p><p>  系統(tǒng)用戶登錄模塊的界面如下:</p><p>  圖 4-2 系統(tǒng)用戶登錄模塊的

72、界面圖</p><p><b>  主要代碼設(shè)計(jì)如下:</b></p><p>  loginAction.</p><p>  <%@page import="user.action.UserAction"%></p><p>  <%@page import="pojo

73、.UserBean"%></p><p>  <%@ page language="java"</p><p>  contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%></p><p><b>  &

74、lt;%</b></p><p>  String userName = request.getParameter("userName");</p><p>  String userPass = request.getParameter("userPass");</p><p>  String nextPage

75、 = request.getContextPath() + "/jsps/index.jsp";</p><p>  String path = request.getContextPath();</p><p>  UserBean bean = new UserAction().verifyLogin(userName, userPass);</p>

76、<p>  if(bean==null)</p><p><b>  {</b></p><p>  nextPage = path + "/login.jsp";</p><p>  session.setAttribute("errorMsg", "帳戶或密碼錯(cuò)誤!");

77、</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  session.setAttribute("userRights",bean.getUserRights())

78、;</p><p>  session.setAttribute("userName",bean.getUserName());</p><p><b>  }</b></p><p>  response.sendRedirect(nextPage);</p><p><b>  %>

79、;</b></p><p>  4.3 主界面的設(shè)計(jì)</p><p>  主界面是通過登錄驗(yàn)證后的功能操作界面,主體使用左右框架,左欄是功能導(dǎo)航欄,顯示當(dāng)前登錄用戶名以及可供操作的功能選項(xiàng),選中會有反顯效果。通過這樣的導(dǎo)航設(shè)置可以很方便地實(shí)現(xiàn)各功能間的切換,層次清晰。右欄是各功能的操作界面。使得整個(gè)系統(tǒng)在一個(gè)頁面中就完全展示出來,符合小型系統(tǒng)簡單快捷的特點(diǎn)。</p>

80、<p><b>  主界面設(shè)計(jì)如下:</b></p><p>  圖4-3 主界面設(shè)計(jì)圖</p><p>  主要代碼設(shè)計(jì)如下(限于篇幅,有省略):</p><p><b>  index.jsp</b></p><p><b>  ...</b></p&g

81、t;<p>  <table width="1004" height="595" border="0" cellpadding="0"cellspacing="0"></p><p><b>  <tr></b></p><p> 

82、 <td height="81"><img src="<%=path1%>/images/index_01.gif"</p><p>  width="1004" height="81"></td></p><p><b>  </tr>&l

83、t;/b></p><p><b>  <tr></b></p><p>  <td height="512" valign="top" bgcolor="#D0CCCC"></p><p>  <table width="100%&quo

84、t; height="513" border="0" cellpadding="0"</p><p>  cellspacing="0"></p><p><b>  <tr></b></p><p>  <td width="20

85、%" height="272" align="center" valign="top"></p><p>  <table width="108" border="0" cellpadding="0" cellspacing="0"</p>

86、<p>  class="mar004"></p><p><b>  <tr></b></p><p>  <td height="41" align="left" valign="bottom"</p><p>  backg

87、round="<%=path1%>/images/index_02.gif"></p><p>  <div class="mar006"><span class="text003">用戶名:</span><span</p><p>  class="text0

88、04"><%= session.getAttribute("userName")!=null?session.getAttribute("userName"):"" %><a href="<%=path1 %>/session/logout.jsp" style="font-size: 12px;tex

89、t-decoration: none;color: gray">注銷</a></span></div></td></tr></p><p>  <tr><td height="433" align="center" valign="top"</p>

90、<p>  background="<%=path1%>/images/index_03.gif" class="bg02"></p><p>  <table width="152" border="0" cellpadding="0" cellspacing="0&

91、quot;</p><p>  class="mar005"></p><p><b>  <tr></b></p><p>  <td height="41" align="left"</p><p>  background=&quo

92、t;<%=path1%>/images/index_09.gif" id="td1"><a</p><p>  href="<%=path1%>/jsps/account/account.jsp" target="mainframe"</p><p>  onClick="c

93、hange1(document.all.td1);change2(document.all.a1);"</p><p>  id="a1" class="tex001"></p><p>  <div class="mar007">賬簿管理</div></a></td>

94、;</p><p><b>  </tr></b></p><p><b>  <tr></b></p><p>  <td height="20">&nbsp;</td></tr><tr></p><p

95、>  <td height="41" align="left"background="<%=path1%>/images/index_06.gif" id="td2"><ahref="<%=path1%>/jsps/user/user.jsp" target="mainframe&

96、quot;</p><p>  onClick="change1(document.all.td2);change2(document.all.a2);"id="a2" class="tex002"></p><p><b>  …</b></p><p>  <div c

97、lass="mar008">家庭成員管理</div></p><p><b>  …</b></p><p>  <div class="mar008">收支項(xiàng)目管理</div></p><p><b>  …</b></p>

98、<p>  <div class="mar007">報(bào)表統(tǒng)計(jì)</div></p><p><b>  …</b></p><p>  <div class="mar007">退出系統(tǒng)</div></p><p>  4.4 賬簿管理

99、模塊的設(shè)計(jì)</p><p>  賬簿管理模塊包括家庭收支信息進(jìn)行查找、添加、刪除操作。</p><p>  賬簿管理模塊的程序結(jié)構(gòu)圖為:</p><p>  圖4-4 賬簿管理模塊的程序結(jié)構(gòu)圖</p><p>  4.4.1. 新增收支記錄</p><p>  1.使用者:登陸進(jìn)入該系統(tǒng)的用戶。</p>

100、<p>  2.目的:增加一個(gè)新的收支記錄。</p><p><b>  3.基本事件流:</b></p><p>  (1)輸入用戶名與密碼,登陸進(jìn)入該系統(tǒng)。</p><p> ?。?)點(diǎn)擊左側(cè)的“帳簿管理”按鈕,進(jìn)入帳簿管理頁面。</p><p> ?。?)單擊“新增”按鈕,進(jìn)入新增頁面,如圖5-6所示,

101、提示用戶輸入收支類型、收支日期、收支家庭成員、收支金額、備注。</p><p> ?。?)輸入完畢,單擊“確定”完成新增。</p><p>  圖 4-5 賬簿管理模塊添加功能圖</p><p><b>  主要代碼設(shè)計(jì)如下:</b></p><p>  accountAdd.jsp</p><p&g

102、t;  <form action="<%=path%>/action/accountAction.jsp" method="post" id="frmAccountAdd"></p><p>  <table width="98%" border="0" cellpadding=&qu

103、ot;0" cellspacing="0"</p><p>  class="text008"></p><p>  <tr align="center"></p><p>  <td width="12%" height="35"

104、align="right">收支類型</td></p><p>  <td width="88%" align="left"><select class="inp001"</p><p>  name="itemsId" style="borde

105、r: 1px solid black;"></p><p><b>  <%</b></p><p>  for (int i = 0; i < listItems.size(); i++) {</p><p>  ItemsBean bean = (ItemsBean) listItems.get(i);</

106、p><p><b>  %></b></p><p>  <optionvalue="<%=bean.getItemsId()%>"><%=bean.getItemType()%></option></p><p><b>  <%</b><

107、/p><p><b>  }</b></p><p>  %></select></td></tr></p><p>  <tr align="center" class="bg04"></p><p>  <td heigh

108、t="35" align="right">收支日期</td></p><p>  <td align="left"><input name="accountDate" type="text"</p><p>  class="inp001&quo

109、t; id="accountDate" readonly="readonly"><input type="button" value="獲取日期" onclick="javascript:document.all['accountDate'].value=selectDate()"></td>

110、</p><p><b>  </tr></b></p><p>  <tr align="center"></p><p>  <td height="35" align="right">收支家庭成員</td></p>&

111、lt;p>  <td align="left"><select class="inp001" name="userId"></p><p><b>  <%</b></p><p>  for (int i = 0; i < listUser.size(); i++)

112、 {</p><p>  UserBean bean = (UserBean) listUser.get(i);</p><p><b>  %></b></p><p>  <option value="<%=bean.getUserId()%>"><%=bean.getUserName

113、()%></option></p><p><b>  <%</b></p><p><b>  }</b></p><p>  %></select></td></tr></p><p>  <tr align="c

114、enter" class="bg04"></p><p>  <td height="35" align="right">收支金額</td></p><p>  <td align="left"><input name="accountMone

115、y" type="text"</p><p>  class="inp001">(RMB)</td></tr></p><p>  <tr align="center"></p><p>  <td height="168" al

116、ign="right" valign="top"></p><p>  <div class="mar009">備注</div></p><p><b>  </td></b></p><p>  <td align="left

117、" valign="top"><textarea name="accountDetails"</p><p>  class="inp002"></textarea></td></p><p><b>  </tr></b></p>

118、<p><b>  </table></b></p><p>  <input type="hidden" name="cmd" value="add"></p><p><b>  </form></b></p><p

119、>  4.4.2. 編輯收支記錄</p><p>  1.使用者:登陸進(jìn)入該系統(tǒng)的用戶。</p><p>  2.目的:編輯一個(gè)已有的收支記錄。</p><p><b>  3.基本事件流:</b></p><p>  (1)輸入用戶名與密碼,登陸進(jìn)入該系統(tǒng)。</p><p> ?。?)點(diǎn)

120、擊左側(cè)的“帳簿管理”按鈕,進(jìn)入帳簿管理頁面。</p><p> ?。?)單擊要編輯的記錄所在行的“編輯”按鈕,如圖5-7所示,進(jìn)入編輯記錄的頁面。</p><p> ?。?)輸入所要編輯的新內(nèi)容,單擊“確定”,完成操作。</p><p>  圖 4-6 賬簿管理模塊編輯功能圖</p><p><b>  主要代碼設(shè)計(jì)如下:</

121、b></p><p>  accountEdit.jsp</p><p>  <form action="<%=path %>/action/accountAction.jsp" id="frmAccountEdit" method="post"></p><p>  <

122、table width="98%" border="0" cellpadding="0" cellspacing="0"</p><p>  class="text008"></p><p>  <tr align="center"></p>

123、<p>  <td width="12%" height="35" align="right">收支項(xiàng)目:</td></p><p>  <td width="88%" align="left"><select class="inp001"

124、</p><p>  name="itemsId" style="height: 19px;" ></p><p><b>  <%</b></p><p>  for (int i = 0; i < listItems.size(); i++) {</p><p&g

125、t;  ItemsBean itemsBean = (ItemsBean) listItems.get(i);</p><p><b>  %></b></p><p>  <optionvalue="<%=itemsBean.getItemsId()%>"><%=itemsBean.getItemType()%

126、></option></p><p><b>  <%</b></p><p><b>  }</b></p><p>  %></select></td></tr></p><p>  <tr align="cent

127、er" class="bg04"></p><p>  <td height="35" align="right">收支日期:</td></p><p>  <td align="left"><input name="accountDate&q

128、uot; type="text"</p><p>  class="inp001" id="accountDate" value="<%=bean.getAccountDate().substring(0,10) %>"><input</p><p>  type="butt

129、on" value="獲取日期"</p><p>  onclick="javascript: document.all['accountDate'].value = selectDate()" ></p><p>  </td></tr></p><p>  <t

130、r align="center"></p><p>  <td height="35" align="right">收支家庭成員:</td></p><p>  <td align="left"><select class="inp001" n

131、ame="userId"></p><p>  <%for (int i = 0; i < listUser.size(); i++) {</p><p>  UserBean userbean = (UserBean) listUser.get(i);%></p><p>  <optionvalue="

132、<%=userbean.getUserId()%>"><%=userbean.getUserName()%></option></p><p><b>  <%}%></b></p><p>  </select></td></tr></p><p&

133、gt;  <tr align="center" class="bg04"></p><p>  <td height="35" align="right">收支金額:</td></p><p>  <td align="left">&n

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論