版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、職工工資管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘 要:近幾年來(lái),隨著經(jīng)濟(jì)全球化和城鄉(xiāng)居民生活需求不斷變化及計(jì)算機(jī)科學(xué)技術(shù)的飛速發(fā)展,人們的生活水平不斷提升,理財(cái)意識(shí)逐漸深入人心,直接影響著人們的生活,因此人們迫切需要一個(gè)高效、方便的管理家庭財(cái)務(wù)的系統(tǒng)。該系統(tǒng)采用Java技術(shù),使用C/S模式,采用MyEclipse開(kāi)發(fā)工具、MySQL數(shù)據(jù)庫(kù)、VISIO2003畫(huà)圖工具和Photoshop圖像處理等工具,對(duì)家庭財(cái)務(wù)管理系統(tǒng)進(jìn)行需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)和對(duì)各功能模塊進(jìn)行單元測(cè)試和綜合測(cè)試,主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)及前臺(tái)應(yīng)用程序的開(kāi)發(fā)。通過(guò)該系統(tǒng),可以方便地對(duì)日常收入、日常支出、現(xiàn)金的借入及借出進(jìn)行管理,該系
2、統(tǒng)具備瀏覽、查詢、添加、刪除、修改和報(bào)表等功能,界面友好且操作簡(jiǎn)單。關(guān)鍵詞:家庭財(cái)務(wù)管理系統(tǒng);Java;MySQL;C/S第一章 可行性分析1.1可行性分析可行性分析是指在現(xiàn)有的技術(shù)、經(jīng)濟(jì)、法律和社會(huì)效益等方面的條件下分析每一項(xiàng)需求實(shí)施的可行性,通過(guò)可行性分析,可以對(duì)系統(tǒng)的技術(shù)、操作和經(jīng)濟(jì)方面提出相關(guān)要求和設(shè)計(jì)方案??尚行苑治鼍褪墙鉀Q一個(gè)項(xiàng)目是否有可行解以及是否值得去解的問(wèn)題。對(duì)于每個(gè)管理系統(tǒng)來(lái)說(shuō),首先都需要對(duì)系統(tǒng)有一個(gè)合適的設(shè)計(jì)思想和方法,對(duì)系統(tǒng)有個(gè)明確的方案,使用現(xiàn)有技術(shù)能否實(shí)現(xiàn)該系統(tǒng),該系統(tǒng)的經(jīng)濟(jì)效益能否超過(guò)它的開(kāi)發(fā)成本,系統(tǒng)的操作方案在用戶組織里能否行得通,選擇合理的操作系統(tǒng)和開(kāi)發(fā)環(huán)境
3、等等,這些都對(duì)系統(tǒng)的開(kāi)發(fā)起著很重要的作用。只有通過(guò)對(duì)系統(tǒng)進(jìn)行可行性分析才能構(gòu)建完善的系統(tǒng)。本系統(tǒng)的可行性分析將從技術(shù)可行性、操作可行性、經(jīng)濟(jì)可行性和法律可行性四個(gè)方面進(jìn)行說(shuō)明。 技術(shù)可行性由于該系統(tǒng)所要滿足的硬件是計(jì)算機(jī),軟件方面是采用JDK1.6開(kāi)發(fā)環(huán)境、MyEclipse 開(kāi)發(fā)工具和MySQL數(shù)據(jù)庫(kù),這些設(shè)備和軟件易于實(shí)現(xiàn)和滿足。采用的語(yǔ)言是Java語(yǔ)言,具有可移植性,功能易于實(shí)現(xiàn),界面比較美觀,操作簡(jiǎn)單,能夠移植到其他計(jì)算機(jī)上運(yùn)行,與平臺(tái)無(wú)關(guān),能夠滿足更多的用戶,使得該系統(tǒng)能被很多家庭所接受。所以該系統(tǒng)在技術(shù)上是可行的。 經(jīng)濟(jì)可行性現(xiàn)代化信息管理和電腦普及的今天,該系統(tǒng)如果開(kāi)發(fā)成功,成本
4、比較低,工作效率比較高,維護(hù)費(fèi)用比較低,能給一個(gè)家庭帶來(lái)很多的方便,該系統(tǒng)采用比較容易學(xué)的Java語(yǔ)言編寫(xiě),由于Java平臺(tái)的自由和開(kāi)放性使得該系統(tǒng)實(shí)現(xiàn)不是很復(fù)雜、開(kāi)發(fā)周期比較短,開(kāi)發(fā)人員成本低。該系統(tǒng)的成本主要是開(kāi)發(fā)和數(shù)據(jù)庫(kù)的維護(hù)上,所設(shè)計(jì)的成本都比較低,能給一個(gè)家庭帶來(lái)很大的利潤(rùn)。因此在經(jīng)濟(jì)上是可行的。 1.1.3 操作可行性該系統(tǒng)在操作上是可行的,系統(tǒng)是采用Windows平臺(tái)開(kāi)發(fā)的,是家庭管理者與系統(tǒng)之間的操作,窗口和界面簡(jiǎn)單直觀,人性化,易用操作和管理,業(yè)務(wù)邏輯清晰,各模塊容易擴(kuò)充。因此在操作上是可行的。1.1.4 法律可行性隨著社會(huì)主義的發(fā)展和人們的生活水平的提高,對(duì)于一個(gè)家庭來(lái)說(shuō),
5、所面對(duì)的事情都越來(lái)越復(fù)雜了,特別是對(duì)家庭財(cái)產(chǎn)的管理。如何有效的管理和利用當(dāng)今的計(jì)算機(jī)技術(shù)來(lái)達(dá)到人們所期望的生活已經(jīng)在人們心中深入人心了,對(duì)于一個(gè)家庭財(cái)產(chǎn)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)對(duì)于每個(gè)家庭來(lái)說(shuō)都是有必要的,沒(méi)有任何侵犯法律問(wèn)題。因此,在法律上該系統(tǒng)是可行的。第二章 需求分析2.1系統(tǒng)需求分析家庭財(cái)務(wù)管理系統(tǒng)是一個(gè)家庭必需的信息管理系統(tǒng)。通過(guò)我們對(duì)家庭財(cái)務(wù)管理的詳細(xì)調(diào)查,大部分家庭對(duì)于財(cái)務(wù)的管理還是局限在使用傳統(tǒng)的人工紙質(zhì)記賬管理的方式,這種方式存在許多缺點(diǎn),如:效率很低、安全性差、管理難和產(chǎn)生大量紙質(zhì)文件等。所以需要一個(gè)家庭財(cái)務(wù)管理系統(tǒng)來(lái)為每一個(gè)家庭的管理者提供充足的信息和快捷的查詢手段。家庭財(cái)務(wù)
6、管理系統(tǒng)的信息數(shù)據(jù)主要是家庭管理員對(duì)家庭的收支消費(fèi)信息的輸入,由于一個(gè)家庭每天都會(huì)有收入和支出的情況,導(dǎo)致數(shù)據(jù)庫(kù)時(shí)時(shí)有更新,因此,能夠及時(shí)有效的處理數(shù)據(jù),就需要建立一個(gè)數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)數(shù)據(jù)。該家庭財(cái)務(wù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前臺(tái)應(yīng)用程序的開(kāi)發(fā)兩個(gè)方面。對(duì)于后臺(tái)的數(shù)據(jù)庫(kù)建立需要數(shù)據(jù)安全性好,對(duì)于前端應(yīng)用程序則需要功能完善和易使用的特點(diǎn)。 系統(tǒng)功能需求本系統(tǒng)由系統(tǒng)管理、基礎(chǔ)數(shù)據(jù)管理、日常收支管理、銀行儲(chǔ)蓄管理、借還錢(qián)管理和理財(cái)分析等模塊組成。系統(tǒng)管理模塊需求:通過(guò)此模塊可以驗(yàn)證用戶登錄、密碼修改、重新登錄和退出等功能?;A(chǔ)數(shù)據(jù)管理模塊需求:通過(guò)此模塊可以對(duì)家庭成員的添加
7、、刪除和修改,對(duì)收支項(xiàng)目的添加、刪除和修改。日常收支管理模塊需求:通過(guò)此模塊可以對(duì)日常收入進(jìn)行添加、刪除和修改,對(duì)日常支出進(jìn)行添加、刪除和修改。銀行儲(chǔ)蓄管理模塊需求:通過(guò)此模塊可以對(duì)銀行活期賬戶進(jìn)行添加、刪除和修改,對(duì)定期賬戶進(jìn)行添加、刪除和修改。借還錢(qián)管理模塊需求:通過(guò)此模塊可以對(duì)家庭成員的各項(xiàng)借出款進(jìn)行添加、刪除和修改,對(duì)家庭成員的借入款進(jìn)行添加、刪除和修改。理財(cái)分析模塊需求:通過(guò)此模塊可以查詢收支明細(xì)和生成理財(cái)分析報(bào)告。 系統(tǒng)性能需求該系統(tǒng)要求具有良好的靈活性、可擴(kuò)充性和可移植性,系統(tǒng)采用MySQL數(shù)據(jù)庫(kù),系統(tǒng)的數(shù)據(jù)都是通過(guò)數(shù)據(jù)庫(kù)來(lái)保存,需要數(shù)據(jù)庫(kù)具有很好的穩(wěn)定性,系統(tǒng)可運(yùn)行在主流的Wi
8、ndows操作系統(tǒng)平臺(tái)上,操作系統(tǒng)要求響應(yīng)速度快,使操作者感覺(jué)操作流暢。 系統(tǒng)環(huán)境需求該系統(tǒng)采用C/S模式,系統(tǒng)基本環(huán)境為windows xp操作系統(tǒng),在MyEclipse平臺(tái)上開(kāi)發(fā),根據(jù)的運(yùn)行需求以及系統(tǒng)的調(diào)試需求,需要滿足下列的軟硬件要求:硬件環(huán)境:CPU:2.10GHz內(nèi)存:512M以上硬盤(pán):30GB以上VGA顯示器或更高軟件環(huán)境:運(yùn)行環(huán)境:MyEclipse 7.5數(shù)據(jù)庫(kù):MySQL數(shù)據(jù)庫(kù)客戶端:Navicat for MySQL畫(huà)圖軟件:Visio 2003操作系統(tǒng):WindowsXP 用戶界面需求系統(tǒng)采用人機(jī)交互方式,主要通過(guò)界面來(lái)顯示用戶需要的信息,界面需要美觀友好,信息查詢方便
9、靈活,輸入輸出數(shù)據(jù)格式友好便捷,并且具備簡(jiǎn)單的錯(cuò)誤提示功能。2.2系統(tǒng)流程圖該系統(tǒng)中,用戶可以通過(guò)進(jìn)入后臺(tái)數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)進(jìn)行操作和管理,可以通過(guò)登錄界面進(jìn)入主界面管理各個(gè)功能模塊。系統(tǒng)流程圖如下圖所示: 圖 3-1 系統(tǒng)流程圖2.3系統(tǒng)數(shù)據(jù)流圖圖 3-2 0層數(shù)據(jù)流圖圖 3-3 功能級(jí)數(shù)據(jù)流圖第三章 概要設(shè)計(jì)3.1系統(tǒng)概述本系統(tǒng)主要管理家庭財(cái)務(wù)信息的功能,主要是家庭管理員向該系統(tǒng)錄入財(cái)務(wù)收支信息,對(duì)家庭成員的消費(fèi)水平進(jìn)行管理。采用C/S模式實(shí)現(xiàn),用戶可以通過(guò)瀏覽器向服務(wù)器發(fā)送請(qǐng)求,進(jìn)行相關(guān)操作,服務(wù)器接收瀏覽器發(fā)送來(lái)的請(qǐng)求,將響應(yīng)結(jié)果返回給客戶端,財(cái)務(wù)管理信息存放到數(shù)據(jù)庫(kù)里。 3.2系統(tǒng)的功能結(jié)
10、構(gòu)圖通過(guò)對(duì)家庭財(cái)務(wù)管理系統(tǒng)進(jìn)行詳細(xì)設(shè)計(jì)后,家庭財(cái)務(wù)管理系統(tǒng)由系統(tǒng)管理、基礎(chǔ)數(shù)據(jù)管理、日常收支管理、銀行儲(chǔ)蓄管理、借還錢(qián)管理和理財(cái)分析等六個(gè)模塊組成。系統(tǒng)功能結(jié)構(gòu)如下圖所示: 圖 4-1 系統(tǒng)功能結(jié)構(gòu)圖3.3系統(tǒng)的各功能模塊設(shè)計(jì)3.3.1系統(tǒng)管理模塊功能設(shè)計(jì)該模塊實(shí)現(xiàn)的功能主要是用戶登錄、密碼修改、重新登錄和退出等系統(tǒng)管理模塊功能圖如下圖所示:圖 4-2 系統(tǒng)管理模塊結(jié)構(gòu)圖3.3.2基礎(chǔ)數(shù)據(jù)管理模塊功能設(shè)計(jì)該模塊實(shí)現(xiàn)的功能主要是家庭成員的添加、刪除和修改,收支項(xiàng)目的添加、刪除和修改等?;A(chǔ)數(shù)據(jù)管理模塊功能圖如下圖所示:圖 4-3 基礎(chǔ)數(shù)據(jù)管理模塊結(jié)構(gòu)圖3.3.3日常收支管理模塊功能設(shè)計(jì)該模塊實(shí)現(xiàn)
11、的功能主要是日常收入和日常支出功能。日常收支管理模塊功能圖如下圖所示:圖 4-4 日常收支管理模塊結(jié)構(gòu)圖3.3.4銀行儲(chǔ)蓄管理模塊功能設(shè)計(jì)該模塊實(shí)現(xiàn)的功能主要是對(duì)銀行活期和定期賬戶進(jìn)行添加、刪除和修改及存取款記錄等功能。銀行儲(chǔ)蓄管理模塊功能圖如下所示:圖 4-5 銀行儲(chǔ)蓄管理模塊結(jié)構(gòu)圖3.3.5借還錢(qián)管理模塊功能設(shè)計(jì)該模塊實(shí)現(xiàn)功能主要是記錄家庭成員各項(xiàng)借出款和借入款等情況。借還錢(qián)管理模塊功能圖如下圖所示: 圖 4-6 借還錢(qián)管理模塊結(jié)構(gòu)圖3.3.6理財(cái)分析模塊功能設(shè)計(jì)該模塊實(shí)現(xiàn)功能主要是查詢收支明細(xì)和生成理財(cái)分析報(bào)告等理財(cái)分析模塊功能圖如下圖所示: 圖 4-7 理財(cái)分析模塊結(jié)構(gòu)圖3.4系統(tǒng)的數(shù)
12、據(jù)庫(kù)設(shè)計(jì)3.4.1 E-R圖通常,采用實(shí)體-聯(lián)系圖(E-R圖)來(lái)建立數(shù)據(jù)模型,包含實(shí)體、關(guān)系和屬性三種成分,它是描述現(xiàn)實(shí)世界概念結(jié)構(gòu)模型的有效方法。是一種數(shù)據(jù)庫(kù)設(shè)計(jì)的概念模型,是描述數(shù)據(jù)實(shí)體與其他數(shù)據(jù)實(shí)體的關(guān)聯(lián)的一種設(shè)計(jì)模式,實(shí)體內(nèi)部的聯(lián)系通常是指組成實(shí)體的各種屬性之間的聯(lián)系,實(shí)體之間的聯(lián)系通常是指不同實(shí)體集之間的聯(lián)系。該系統(tǒng)主要有三個(gè)實(shí)體,分別為用戶、銀行、收支記錄、存取款記錄和借入借出記錄。用戶可以到銀行開(kāi)戶、可以借入借出、可以收入支出、可以存取款,存取款的記錄需要存入銀行賬戶里。家庭財(cái)務(wù)管理的E-R圖如下所示: 圖 4-8 E-R圖3.4.2 數(shù)據(jù)表設(shè)計(jì)本系統(tǒng)是實(shí)現(xiàn)家庭財(cái)務(wù)管理系統(tǒng),主要
13、設(shè)計(jì)了11張表,分別為fmtable,receivetable,outlaytable,dailyincometable,dailyexpensetable,currentaccounttable, currentaccountimfortable, depositaccounttable,lendtable,borrowtable,record表。分別用于存儲(chǔ)家庭成員信息、收入項(xiàng)目信息、支出項(xiàng)目信息、日常收入信息、日常支出信息、活期賬戶信息、存取款信息、定期賬戶信息,借出款信息表,借入款信息表,記錄表。下面給出數(shù)據(jù)表的詳細(xì)設(shè)計(jì)。(1)家庭成員表用于記錄家庭成員的基本信息表4-1 fmtabl
14、e表字段名數(shù)據(jù)類型長(zhǎng)度字段約束描述fmsnointNot null成員編號(hào)fmnamevarchar20Not null成員姓名passwordvarchar20Not null 密碼sexenum0Not null性別brithdaydate0Not null出生年月telephonevarchar20電話號(hào)碼emailvarchar30電子郵件(2)收入項(xiàng)目表用于記錄收入項(xiàng)目信息表4-2 receivetable表字段名數(shù)據(jù)類型長(zhǎng)度字段約束描述rsnointNot null收入項(xiàng)目編號(hào)rnamevarchar50Not null收入項(xiàng)目名稱(3)支出項(xiàng)目表用于記錄支出項(xiàng)目信息表4-3 ou
15、tlaytable表字段名數(shù)據(jù)類型長(zhǎng)度字段約束描述osnointNot null支出項(xiàng)目編號(hào)onamevarchar50Not null支出項(xiàng)目名稱(4)日常收入信息表用于記錄日常收入的詳細(xì)信息表4-4 dailyincometable表字段名數(shù)據(jù)類型長(zhǎng)度字段約束描述iidintNot null收入序號(hào)isnamevarchar50Not null收入項(xiàng)目名稱ibankaccountvarchar50Not null銀行賬號(hào)imembervarchar20Not null收入人員idatedate0Not null收入日期isumfloat0Not null收入金額remarksvarchar
16、255備注(5)日常支出信息表用于記錄日常支出的詳細(xì)信息表4-5 dailyexpensetable表字段名數(shù)據(jù)類型長(zhǎng)度字段約束描述eidintNot null支出序號(hào)esnamevarchar50Not null支出項(xiàng)目名稱ebankaccountvarchar50Not null銀行賬號(hào)emembervarchar20Not null支出人員edatedate0Not null支出日期esumfloat0Not null支出金額remarksvarchar255備注(6)活期賬戶表用于記錄活期賬戶的信息表4-6 currentaccounttable表字段名數(shù)據(jù)類型長(zhǎng)度字段約束描述casn
17、ovarchar50Not null活期賬戶號(hào)cabanknamevarchar20Not null活期銀行名caholdervarchar20Not null活期賬戶持有者opendatedate0Not null開(kāi)戶日期bankbalancefloat0Not null賬戶余額(7)存取款信息表用于記錄每次的存取款記錄信息表4-7currentaccountimfortable表字段名數(shù)據(jù)類型長(zhǎng)度字段約束描述caiidintNot null存取編號(hào)caisnovarchar50Not null活期銀行賬戶cabankbalancefloat0Not null賬戶余額caitypeenum0
18、Not null存取類型caisumfloat0Not null存取金額ncabankbalancefloat0Not null賬戶現(xiàn)余額caidatedate0Not null存取日期caimembervarchar20Not null存取款人(8)定期賬戶信息表用于記錄定期賬戶的詳細(xì)信息表4-8 depositaccounttable表字段名數(shù)據(jù)類型長(zhǎng)度字段約束描述dasnovarchar50Not null定期賬戶號(hào)dabanknamevarchar50Not null定期銀行名daholdervarchar20Not null定期賬戶持有者dadatedate0Not null開(kāi)戶日期
19、dasumfloat0Not null定期賬戶金額istakeoutenum0Not null是否取出(9)借出款信息表用于記錄借出款的詳細(xì)信息 表4-9 lendtable表字段名數(shù)據(jù)類型長(zhǎng)度字段約束描述lendsnointNot null借出款編號(hào)getmoneynamevarchar20Not null得款人lendmoneynamevarchar20Not null借出人lbankaccountvarchar50Not null銀行賬號(hào)lendsumfloat0Not null借出金額lendreasonvarchar255借出理由lenddatedate0Not null借出日期is
20、paybackedenum0Not null是否歸還remarksvarchar255備注(10) 借入款信息表用于記錄借入款的詳細(xì)信息表4-10 borrowtable表字段名數(shù)據(jù)類型長(zhǎng)度字段約束描述borrowsnointNot null借入款編號(hào)borrownamevarchar20Not null借入人lendmoneynamevarchar20Not null借出人lbankaccountvarchar50Not null銀行賬號(hào)borrowsumfloatNot null借入金額borrowreasonvarchar255借入理由borrowdatedate0Not null借入日
21、期ispaybackedenum0Not null是否歸還remarksvarchar255備注(11) 記錄表用于記錄每次銀行賬號(hào)更新的信息,用于每月總的余額查詢。表4-11 recordtable表字段名數(shù)據(jù)類型長(zhǎng)度字段約束描述ridintNot null編號(hào)rbanksnovarchar50Not null銀行賬號(hào)rdatedate0Not null記錄日期rbankbalancefloatNot null銀行余額第四章 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1創(chuàng)建與連接數(shù)據(jù)庫(kù)JDBC(Java Database Connectivity)是Java應(yīng)用程序連接各種不同數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)API,可以為多種關(guān)系
22、數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn),它由一組用Java編寫(xiě)的類和接口組成,開(kāi)發(fā)人員可以通過(guò)該API連接到各種類型的數(shù)據(jù)庫(kù)管理系統(tǒng),并對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行操作,用戶只需編寫(xiě)不同的SQL語(yǔ)句,而不必關(guān)心數(shù)據(jù)庫(kù)的實(shí)現(xiàn)以及不同數(shù)據(jù)庫(kù)之間的差異。JDBC包括兩組接口,一組接口面向Java應(yīng)用開(kāi)發(fā)人員,另一組接口面向驅(qū)動(dòng)程序編寫(xiě)人員,通過(guò)JDBC API可以完成三件事:建立與數(shù)據(jù)庫(kù)管理系統(tǒng)的連接,向服務(wù)器提交要執(zhí)行的SQL語(yǔ)句,處理返回的結(jié)果集。JDBC包括兩個(gè)包:核心API(java.sql)和擴(kuò)展的API(javax.sql),應(yīng)用程序通過(guò)核心API的接口實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接和數(shù)據(jù)處理,其接口主要如下:j:用于讀取數(shù)據(jù)庫(kù)驅(qū)
23、動(dòng)器的信息,提供連接方法,建立訪問(wèn)數(shù)據(jù)庫(kù)所用的Connection對(duì)象。java.sql.DriverManager:負(fù)責(zé)管理Driver對(duì)象,連接數(shù)據(jù)庫(kù),包括注冊(cè)驅(qū)動(dòng)程序、獲得連接、向數(shù)據(jù)庫(kù)發(fā)送信息。java.sql.Connection:連接Java數(shù)據(jù)庫(kù)和Java應(yīng)用程序之間的主要對(duì)象,創(chuàng)建所有的Statement對(duì)象,執(zhí)行SQL語(yǔ)句。java.sql.ResultSet:用于控制對(duì)一個(gè)特定語(yǔ)句的行數(shù)據(jù)的存取,也就是數(shù)據(jù)庫(kù)中由記錄或行組成的集合。連接數(shù)據(jù)庫(kù)的基本過(guò)程:1)建立數(shù)據(jù)源2) 引入java.sql包:import java.sql3) 加載驅(qū)動(dòng)程序:Class.forName(
24、“”)4) 創(chuàng)建與數(shù)據(jù)庫(kù)的連接:Connection con = DriverManager.getConnection(“jdbc:mysql:/localhost:3306/ffms”, “root”,“root”)5) 創(chuàng)建語(yǔ)句對(duì)象:Statement stmt = con.createStatement();6) 編寫(xiě)SQL語(yǔ)句7)執(zhí)行SQL語(yǔ)句8)處理結(jié)果集9)關(guān)閉相關(guān)對(duì)象10)異常處理該家庭財(cái)務(wù)管理系統(tǒng)采用的數(shù)據(jù)是MySQL,連接數(shù)據(jù)庫(kù)的主要代碼如下:import java.sql.*;public class DataBaseManager Connection conn; Re
25、sultSet rs; Statement stmt; public DataBaseManager() try Class.forName(com.mysql.jdbc.Driver); conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/ffms,root,root);stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); conn.setAutoCommit(false); catch(SQLExcept
26、ion sqle) System.out.println(sqle.toString(); catch (ClassNotFoundException e) e.printStackTrace(); public ResultSet getResult(String strSQL) try rs=stmt.executeQuery(strSQL); return rs; catch(SQLException sqle) System.out.println(sqle.toString(); return null; public boolean updateSql(String strSQL)
27、 try stmt.executeUpdate(strSQL); mit(); return true; catch(SQLException sqle) System.out.println(sqle.toString(); return false; public void closeConnection() try conn.close(); catch(SQLException sqle) System.out.println(sqle.toString(); 4.2登錄界面頁(yè)面的設(shè)計(jì)用戶在進(jìn)入家庭財(cái)務(wù)管理系統(tǒng)時(shí)首先必須通過(guò)登錄界面,輸入用戶名和密碼,點(diǎn)擊登錄按鈕,只有通過(guò)省份認(rèn)證,才
28、能進(jìn)入系統(tǒng)的主界面。該模塊設(shè)計(jì)主要涉及的類Login、DataBaseManager和MainMenu。Login類是登錄類,該類的主要方法是getuserName()和getpassWord(),用于獲得登錄名和登錄密碼的信息,登錄時(shí)需要身份認(rèn)證,需要連接數(shù)據(jù)庫(kù),查詢數(shù)據(jù),需要引用DataBaseManager類,該類主要是連接數(shù)據(jù)庫(kù),輸入的用戶名和密碼與數(shù)據(jù)庫(kù)中的數(shù)據(jù)比較,如何相等就需要引用MainMenu類進(jìn)入主界面,如果不相等就提示輸入錯(cuò)誤信息。該系統(tǒng)的登錄界面如下圖所示: 圖 5-1 登錄界面圖登陸界面的核心代碼如下:String username = userName.getTex
29、t();String password = new String(passWord.getPassword();if(username.equals()JOptionPane.showMessageDialog(null, 用戶名不能為空);else if(password.equals()JOptionPane.showMessageDialog(null, 密碼不能為空);elseString strsql =select fmname password from fmtable where fmname=+username.trim()+and password=+password.tr
30、im()+; rs=db.getResult(strsql); boolean isExist = false; try isExist = rs.first(); catch (SQLException e1) e1.printStackTrace();if(!isExist)JOptionPane.showMessageDialog(null, 用戶名不正確或密碼錯(cuò)誤);elsetry rs.first();db.closeConnection();JOptionPane.showMessageDialog(null, 登陸成功);MainMenu m = new MainMenu(家庭財(cái)
31、務(wù)管理系統(tǒng)); m.setVisible(true); setVisible(false); catch (SQLException e1) e1.printStackTrace(); 4.3 主界面的設(shè)計(jì)該系統(tǒng)主要實(shí)現(xiàn)六個(gè)模塊,分別為系統(tǒng)管理模塊,基礎(chǔ)數(shù)據(jù)管理模塊,日常收支管理模塊,銀行儲(chǔ)蓄管理模塊,借還錢(qián)管理模塊,理財(cái)分析模塊。菜單欄主要實(shí)現(xiàn)六大模塊的功能,每個(gè)模塊都有相應(yīng)的菜單實(shí)現(xiàn),工具欄主要實(shí)現(xiàn)家庭成員、收入項(xiàng)目、支出項(xiàng)目、日常收入、日常支出、銀行儲(chǔ)蓄、借出款、借入款等的查找,點(diǎn)擊工具欄上的圖標(biāo)都可以跳出一個(gè)查找界面。主界面的設(shè)計(jì)主要采用Java的圖形用戶界面(GUI)技術(shù),采用Jav
32、a提供的AWT和Swing兩個(gè)圖形用戶界面工具包,借助菜單、工具欄和按鈕等標(biāo)準(zhǔn)界面元素和鼠標(biāo)操作,用戶向系統(tǒng)發(fā)出命令、啟動(dòng)操作,并將系統(tǒng)運(yùn)行的結(jié)果以圖形的方式展示給用戶。主界面的實(shí)現(xiàn)主要兩部分的實(shí)現(xiàn):菜單欄各個(gè)功能的實(shí)現(xiàn),點(diǎn)擊菜單欄的菜單都會(huì)監(jiān)聽(tīng)一個(gè)相應(yīng)的事件,每個(gè)菜單都有實(shí)現(xiàn)的功能模塊,工具欄實(shí)現(xiàn)了經(jīng)常需要查找的功能模塊,點(diǎn)擊工具欄圖標(biāo)都會(huì)監(jiān)聽(tīng)一個(gè)相應(yīng)的事件,系統(tǒng)會(huì)將查詢結(jié)果顯示出來(lái)。主界面圖如下圖所示: 圖 5-2 主界面圖主界面的核心代碼如下: public MainMenu(String title)super(title);setSize(800,600);/初始窗口的大小Dimen
33、sion scrSize=Toolkit.getDefaultToolkit().getScreenSize();setLocation(scrSize.width-getSize().width)/2,(scrSize.height-getSize().height)/2);/將窗口置于屏幕中央setLayout(null); createMenu();/創(chuàng)建菜單Container container=getContentPane();/為主窗口獲得一個(gè)容器container.setLayout(new BorderLayout(6,0);ImageIcon ic = new ImageIc
34、on(./src/images/main.jpg);JLabel jLabel2 = new JLabel(ic);jLabel2.setBounds(0,0,ic.getIconWidth(),ic.getIconHeight();getContentPane().add(jLabel2,BorderLayout.CENTER);container.add(showToolBar(),BorderLayout.NORTH);this.pack();4.4 系統(tǒng)管理模塊的設(shè)計(jì)系統(tǒng)管理模塊主要實(shí)現(xiàn)用戶登錄,密碼修改,重新登錄和退出系統(tǒng)。該菜單包括四個(gè)菜單項(xiàng),用戶在點(diǎn)擊用戶登陸和重新登陸時(shí),程序從
35、主界面返回到登錄界面。 用戶在點(diǎn)擊退出時(shí),程序退出。 用戶在點(diǎn)擊密碼修改時(shí),出現(xiàn)修改密碼的窗口。該模塊設(shè)計(jì)主要涉及的類有Login、DataBaseManager和PasswordChange,Login類主要是用戶在操作用戶登錄和重新登錄功能時(shí)需要引用的類,通過(guò)Login類可以使用戶返回到登錄界面,PasswordChange類主要是用戶在操作密碼修改功能時(shí)需要引用的類,通過(guò)這個(gè)類可以實(shí)現(xiàn)密碼的修改,密碼修改需要關(guān)聯(lián)數(shù)據(jù)庫(kù),需要DataBaseManager類來(lái)連接數(shù)據(jù)庫(kù)。該模塊的界面圖和密碼修改界面圖如下所示: 圖 5-3 系統(tǒng)管理界面圖 圖 5-4 修改密碼界面圖修改密碼的核心代碼如下:
36、public void actionPerformed(ActionEvent e)if(e.getSource()=CancelBtn)db.closeConnection();this.dispose();else if(e.getSource()=UpdateBtn)trychar password=PasswordTextField.getPassword(); String passwordSTR=new String(password); char newPassword=NewPasswordTextField.getPassword(); String newPasswordS
37、TR=new String(newPassword); char confirmPassword=PasswordConfirmTextField.getPassword(); String confirmPasswordSTR=new String(confirmPassword);String strSQL=select * from usertable where username=+UserTextField.getText().trim()+and password=+passwordSTR+;if(UserTextField.getText().trim().equals()JOp
38、tionPane.showMessageDialog(null,用戶名不能為空!);else if(passwordSTR.equals()JOptionPane.showMessageDialog(null,原密碼不能為空!);else if(!newPasswordSTR.equals(confirmPasswordSTR)JOptionPane.showMessageDialog(null,兩次輸入的新密碼不一致!);else if(!db.getResult(strSQL).first() JOptionPane.showMessageDialog(null,此用戶不存在或者原密碼不正
39、確!); else strSQL=update usertable set password=+newPasswordSTR+where username=+UserTextField.getText() .trim()+; if(db.updateSql(strSQL) JOptionPane.showMessageDialog(null,更新密碼成功!); this.dispose(); else JOptionPane.showMessageDialog(null,更新密碼失??!); this.dispose(); db.closeConnection(); catch(SQLExcep
40、tion sqle)System.out.println(sqle.toString();catch(Exception ex)System.out.println(ex.toString();4.5 基礎(chǔ)數(shù)據(jù)庫(kù)管理模塊的設(shè)計(jì)基礎(chǔ)數(shù)據(jù)管理模塊主要實(shí)現(xiàn)家庭成員添加、刪除和修改,收支項(xiàng)目添加、刪除和修改。用戶可以點(diǎn)擊家庭成員添加、刪除和修改,來(lái)實(shí)現(xiàn)對(duì)家庭成員的管理,點(diǎn)擊收支項(xiàng)目添加、刪除和修改,來(lái)實(shí)現(xiàn)對(duì)收支項(xiàng)目的管理。該模塊主要涉及的類有DataBaseManager、FamilyMemberAdd、FamilyMemberDelete、FamilMemberUpdate、IncomeAdd、In
41、comeDelete、IncomeUpdate、ExpenseAdd、ExpenseDelete和ExpenseUpdate?;緮?shù)據(jù)管理模塊中需要將輸入的數(shù)據(jù)插入數(shù)據(jù),刪除和更新數(shù)據(jù)都需要從數(shù)據(jù)庫(kù)中查詢數(shù)據(jù)并且顯示,需要DataBaseManager類來(lái)連接數(shù)據(jù)庫(kù),F(xiàn)amilyMemberAdd、FamilyMemberDelete和FamilMemberUpdate這三個(gè)類主要實(shí)現(xiàn)家庭成員的添加、刪除和修改。IncomeAdd、IncomeDelete和IncomeUpdate這三個(gè)類主要實(shí)現(xiàn)收入項(xiàng)目的添加、刪除和修改,ExpenseAdd、ExpenseDelete和ExpenseUpd
42、ate這三個(gè)類主要實(shí)現(xiàn)支出項(xiàng)目的添加、刪除和修改。該模塊的界面圖如下圖所示: 圖 5-5 基本數(shù)據(jù)管理界面圖管理員可以在該模塊添加、刪除和修改家庭成員,添加、刪除和修改收支項(xiàng)目。家庭成員添加模塊主要需要輸入家庭成員的詳細(xì)信息,該界面設(shè)計(jì)了三個(gè)按鈕,清空按鈕可以將輸入的信息清空,添加按鈕可以實(shí)現(xiàn)家庭成員的添加,退出按鈕可以退出操作。家庭成員刪除模塊主要需要輸入要?jiǎng)h除的成員編號(hào),該界面設(shè)計(jì)了四個(gè)按鈕,清空和退出按鈕和添加模塊一樣的功能,確定按鈕是將輸入的成員的詳細(xì)信息展現(xiàn)出來(lái),刪除按鈕實(shí)現(xiàn)家庭成員的刪除。家庭成員修改模塊主要是修改家庭成員的詳細(xì)信息,該界面設(shè)計(jì)了四個(gè)按鈕,清空、確定和退出按鈕跟刪除
43、家庭成員一樣的功能,更新按鈕是將修改后的家庭成員信息更新到數(shù)據(jù)庫(kù)中,各個(gè)界面圖如下圖所示: 圖 5-6 家庭成員添加界面圖圖 5-7 家庭成員刪除界面圖 圖 5-8 修改家庭成員界面圖家庭成員添加的核心代碼如下:public void actionPerformed(ActionEvent e)if(e.getSource()=ExitBtn)db.closeConnection();this.dispose();else if(e.getSource()=ClearBtn)fmsnoTextField.setText();fmnameTextField.setText();passwordT
44、extField.setText();brithdayTextField.setText();telephoneTextField.setText();emailTextField.setText();else if(e.getSource()=AddBtn) if(fmsnoTextField.getText().trim().equals()JOptionPane.showMessageDialog(null,成員編號(hào)不能為空!); else if(fmnameTextField.getText().trim().equals()JOptionPane.showMessageDialog(
45、null,成員姓名不能為空!); else if(passwordTextField.getText().trim().equals()JOptionPane.showMessageDialog(null,密碼不能為空!);else if(brithdayTextField.getText().trim().equals()JOptionPane.showMessageDialog(null,出生年月不能為空);elsetryString strSQL=insert into fmtable(fmsno,fmname,password,sex,brithday,telephone,email)
46、 values(+fmsnoTextField.getText().trim()+,+ fmnameTextField.getText().trim()+,+ passwordTextField.getText().trim()+,+ sexJcomboBox.getSelectedItem().toString().trim()+,+brithdayTextField.getText().trim()+,+ telephoneTextField.getText().trim()+,+ emailTextField.getText().trim()+); System.out.println(
47、strSQL); if(db.updateSql(strSQL)JOptionPane.showMessageDialog(null,家庭成員添加成功!);this.dispose();elseJOptionPane.showMessageDialog(null,家庭成員添加失??!);this.dispose();db.closeConnection(); catch(Exception ex) System.out.println(ex.toString(); 4.6 日常收支管理模塊的設(shè)計(jì)日常收支管理模塊實(shí)現(xiàn)了日常收入添加、刪除和修改,日常支出添加、刪除和修改。該菜單主要由日常收入和日常支出菜單項(xiàng),每個(gè)菜單項(xiàng)都實(shí)現(xiàn)了收支項(xiàng)目的添加、刪除和修改,其界面設(shè)計(jì)和按鈕的實(shí)現(xiàn)功能跟基本數(shù)據(jù)管理模塊中的家庭成員添加、刪除和修改一樣。該模塊設(shè)計(jì)主要設(shè)計(jì)的類有DataBaseManager、DailyIncomeAdd、DailyIncomeDelete、DailyIncomeUpdate、DailyExpenseAdd、DailyExpenseDelete和DailyExpenseUpdate。日常收入和日常支出的添加、刪除和更新都
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備長(zhǎng)期租賃合同范本(2025年)
- 2025年小商品進(jìn)出口貿(mào)易合同范本2篇
- 2025年度土地整治項(xiàng)目轉(zhuǎn)讓居間合同范本3篇
- 2025年度房地產(chǎn)融資擔(dān)保合同3篇
- 不動(dòng)產(chǎn)抵押合同2025年
- 2025采購(gòu)裝修材料合同模板
- 珠寶銷售委托合同三篇
- 關(guān)于老師表?yè)P(yáng)信匯編7篇
- 施工現(xiàn)場(chǎng)安全防護(hù)設(shè)施設(shè)置計(jì)劃(三篇)
- 2024年度幼兒園教職工保密協(xié)議及保密事件應(yīng)急預(yù)案3篇
- 紅色頒獎(jiǎng)典禮公司年會(huì)員工表彰大會(huì)模板
- 2022-2023學(xué)年福建省泉州市惠安縣三年級(jí)(上)期末數(shù)學(xué)試卷
- 統(tǒng)編版語(yǔ)文三年級(jí)上冊(cè)2024-2025學(xué)年第三單元測(cè)試題 (含答案)
- 2024甘肅省安全員C證考試題庫(kù)
- 2024-2025學(xué)年上學(xué)期廣州初中地理七年級(jí)期末模擬卷1
- 八年級(jí)地理期末模擬卷(考試版A4)【測(cè)試范圍:晉教版八上全冊(cè)】
- 統(tǒng)編版語(yǔ)文2024-2025學(xué)年六年級(jí)上冊(cè)語(yǔ)文期末專題訓(xùn)練:字音字形(有答案)
- 2024年文化娛樂(lè)產(chǎn)業(yè)投資合同3篇
- 機(jī)器人課件模板下載
- 《肺癌病人的護(hù)理》課件
- 臨時(shí)工人勞動(dòng)合同范本(3篇)
評(píng)論
0/150
提交評(píng)論