畢業(yè)設(shè)計(jì)(論文)-基于JAVA的建設(shè)銀行賬目管理系統(tǒng)的設(shè)計(jì).doc
《畢業(yè)設(shè)計(jì)(論文)-基于JAVA的建設(shè)銀行賬目管理系統(tǒng)的設(shè)計(jì).doc》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《畢業(yè)設(shè)計(jì)(論文)-基于JAVA的建設(shè)銀行賬目管理系統(tǒng)的設(shè)計(jì).doc(21頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、建設(shè)銀行賬目管理系統(tǒng)的設(shè)計(jì)摘 要隨著我國(guó)信息產(chǎn)業(yè)發(fā)展迅速以及中國(guó)加入世界貿(mào)易組織,國(guó)內(nèi)銀行之間以及與外國(guó)銀行之間的競(jìng)爭(zhēng)也越來(lái)越激烈,怎樣發(fā)展業(yè)務(wù)以吸引更多顧客是各銀行面隊(duì)的當(dāng)務(wù)之急。而帳目管理是銀行業(yè)務(wù)流程過(guò)程中十分重要且必備的環(huán)節(jié)之一,在銀行業(yè)務(wù)流程當(dāng)中起著相當(dāng)重要的作用?,F(xiàn)在銀行的業(yè)務(wù)越來(lái)越多,吸引的客戶(hù)也越來(lái)越多,銀行帳目的管理就越顯重要。銀行帳目管理系統(tǒng)是針對(duì)銀行帳目的日常管理而設(shè)計(jì)。銀行帳目管理系統(tǒng)不僅要求操作方便而且要求界面簡(jiǎn)潔,它還需要實(shí)現(xiàn)帳目管理,用戶(hù)查詢(xún)和查詢(xún)統(tǒng)計(jì)功能。針對(duì)上述情況和要求,采用軟件工程的開(kāi)發(fā)原理,依據(jù)軟件流程過(guò)程規(guī)范,按照需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、程序編碼
2、、測(cè)試等過(guò)程開(kāi)發(fā)了一個(gè)銀行賬目管理系統(tǒng)。采用JAVA作為編程語(yǔ)言,使用工具eclipse3.1設(shè)計(jì)實(shí)現(xiàn)了銀行帳目管理系統(tǒng),完成系統(tǒng)管理、帳目管理、查詢(xún)統(tǒng)計(jì)、用戶(hù)查詢(xún)等功能。關(guān)鍵詞:用戶(hù)查詢(xún);帳目管理;查詢(xún)統(tǒng)計(jì);JAVA;eclipse3.1 591論文網(wǎng) www.591LW.comBank Account Management SystemAbstractAlong with our country of information industry is developing quickly and China has acceded to WTO, many banks have to com
3、pete against each other for attracting customers. How to develop the business to attract more customers is the urgent matter that each bank confronts.Bank account management is a very most important part of the process of the bank business. It plays a key role in the process of bank business. The bu
4、siness of the bank is more and more at present so that the customers of the bank are more and more too. The management of the bank account is very important for customers.The bank account management system is a usual management to aim at the bank account to design. This operate system not only opera
5、tes conveniently but also the interface is succinct, and the system needs to achieve some functions such as account management, search statistics, customer search etc. functionAiming at the above circumstance, presents a practical method to implement a bank account management system based on softwar
6、e engineering ,according to the software process such as analyze the need, essentials design, detailed design, program, test, etc. Adopt JAVA programming language and use the tool of eclipse3.1 to design the bank account management system. It can complete system management, account management, searc
7、h statistics, customer search etc. function.Key words: Customer search; Account management; Search statistics; JAVA; Eclipse3.1 591論文網(wǎng) www.591LW.com目 錄論文總頁(yè)數(shù):23頁(yè)1引言11.1開(kāi)發(fā)背景11.2開(kāi)發(fā)意義12系統(tǒng)需求分析22.1銀行帳目管理系統(tǒng)的需求22.2用戶(hù)對(duì)系統(tǒng)的期望22.3編程語(yǔ)言和運(yùn)行環(huán)境介紹23功能模塊設(shè)計(jì)33.1銀行帳目管理系統(tǒng)功能模塊33.2功能模塊介紹44系統(tǒng)的實(shí)現(xiàn)54.1登錄界面的設(shè)計(jì)54.2操作主界面的設(shè)計(jì)64.3功能界
8、面的設(shè)計(jì)94.3.1顯示全部的功能實(shí)現(xiàn)94.3.2開(kāi)戶(hù)窗口的設(shè)計(jì)與實(shí)現(xiàn)104.3.3銷(xiāo)戶(hù)窗口的設(shè)計(jì)與實(shí)現(xiàn)114.3.4存款和取款窗口的設(shè)計(jì)與實(shí)現(xiàn)134.3.5修改信息窗口的設(shè)計(jì)與實(shí)現(xiàn)164.3.6查詢(xún)功能的實(shí)現(xiàn)174.3.7查詢(xún)統(tǒng)計(jì)的實(shí)現(xiàn)185數(shù)據(jù)保存機(jī)制-采用鏈表和輸入輸出流186測(cè)試196.1測(cè)試環(huán)境196.2測(cè)試結(jié)果19結(jié) 論20參考文獻(xiàn)211 引言隨著社會(huì)經(jīng)濟(jì)的發(fā)展,信息化程度的不斷深入,銀行的傳統(tǒng)業(yè)務(wù)己愈來(lái)愈不能滿(mǎn)足銀行客戶(hù)的需要。同時(shí),隨著我國(guó)加入世貿(mào)組織,我國(guó)的銀行業(yè)面臨更加激烈的同業(yè)競(jìng)爭(zhēng),如何提供更多的金融產(chǎn)品和更優(yōu)質(zhì)的服務(wù),如何吸引更多的客戶(hù),如何利用計(jì)算機(jī)技術(shù)加強(qiáng)銀行帳戶(hù)信
9、息管理,提高銀行的工作效率和業(yè)務(wù)竟?fàn)幠芰κ菙[在各家銀行面前的一個(gè)迫切需要解訣的問(wèn)題。1.1 開(kāi)發(fā)背景隨著科技發(fā)展和社會(huì)進(jìn)步,尤其是計(jì)算機(jī)大范圍的普及,計(jì)算機(jī)應(yīng)用逐漸由大規(guī)模科學(xué)計(jì)算的海量數(shù)據(jù)處理轉(zhuǎn)向大規(guī)模的事務(wù)處理和對(duì)工作流的管理,這就產(chǎn)生了以臺(tái)式計(jì)算機(jī)為核心的管理信息系統(tǒng)在大規(guī)模的事務(wù)處理和對(duì)工作流的管理等方面的應(yīng)用,在銀行帳目管理之中的應(yīng)用日益增加。近年來(lái)我國(guó)信息產(chǎn)業(yè)發(fā)展迅速,手工管理方式在銀行帳目管理等需要大量事務(wù)處理的應(yīng)用中已顯得不相適應(yīng),采用IT技術(shù)提高服務(wù)質(zhì)量和管理水平勢(shì)在必行。目前,對(duì)外開(kāi)放必然趨勢(shì)使銀行業(yè)直面外國(guó)銀行巨頭的直接挑戰(zhàn),因此,銀行必須提高其工作效率,改善其工作環(huán)境。
10、這樣,帳戶(hù)管理的信息化勢(shì)在必行。在傳統(tǒng)的銀行帳戶(hù)管理中,其過(guò)程往往是很復(fù)雜的,繁瑣的,帳戶(hù)管理以入帳和出帳兩項(xiàng)內(nèi)容為核心,在此過(guò)程中又需要經(jīng)過(guò)若干道手續(xù),因?yàn)檎麄€(gè)過(guò)程都需要手工操作,效率十分低下,且由于他們之間關(guān)聯(lián)復(fù)雜,統(tǒng)計(jì)和查詢(xún)的方式各不相同;且會(huì)出現(xiàn)信息的重復(fù)傳遞問(wèn)題,因此該過(guò)程需要進(jìn)行信息化,以利用計(jì)算機(jī)進(jìn)行帳目管理。系統(tǒng)開(kāi)發(fā)的整體任務(wù)是實(shí)現(xiàn)銀行帳戶(hù)管理的系統(tǒng)化、規(guī)范化、自動(dòng)化和智能化,從而達(dá)到提高企業(yè)管理效率的目的。1.2 開(kāi)發(fā)意義隨著社會(huì)的進(jìn)步和計(jì)算機(jī)技術(shù)的發(fā)展,尤其是網(wǎng)絡(luò)技術(shù)的飛速進(jìn)步,信息觀(guān)念已經(jīng)深入人心。信息科學(xué)作為當(dāng)代社會(huì)中的重要一環(huán)在國(guó)民經(jīng)濟(jì)中起著舉足輕重的作用。在中國(guó)經(jīng)濟(jì)
11、蓬勃發(fā)展的今天,越來(lái)越龐大的儲(chǔ)蓄用戶(hù)數(shù)目和資金流通量對(duì)銀行帳目管理的可靠性每天都在進(jìn)行苛刻的考驗(yàn)。建立和發(fā)展功能較完善的銀行帳目管理系統(tǒng),不僅可以服務(wù)客戶(hù)、聯(lián)系客戶(hù)、吸引客戶(hù)、穩(wěn)定客戶(hù),鞏固銀行業(yè)務(wù)經(jīng)營(yíng)基礎(chǔ),而且通過(guò)服務(wù)社會(huì),可以塑造銀行自身的市場(chǎng)形象,體現(xiàn)銀行的綜合實(shí)力還能夠提高銀行的存款總量;通過(guò)提供高效,優(yōu)質(zhì)的業(yè)務(wù),吸引更多的客戶(hù)來(lái)銀行辦理業(yè)務(wù),從而擴(kuò)大了銀行的客戶(hù)群,加強(qiáng)了銀行和客戶(hù)的業(yè)務(wù)聯(lián)系,也會(huì)帶動(dòng)其他業(yè)務(wù)的發(fā)展。總之,現(xiàn)代商業(yè)銀行的競(jìng)爭(zhēng)和發(fā)展,已突破傳統(tǒng)業(yè)務(wù)的框架,為了提高銀行的業(yè)務(wù)競(jìng)爭(zhēng)能力,擴(kuò)大客戶(hù)群,培育新的利潤(rùn)增長(zhǎng)點(diǎn),務(wù)必大力改良其帳目管理系統(tǒng),因此建立一個(gè)功能齊全可靠的帳
12、目管理系統(tǒng)成為銀行當(dāng)前業(yè)務(wù)發(fā)展的迫切之需。2 系統(tǒng)需求分析2.1 銀行帳目管理系統(tǒng)的需求通過(guò)與銀行工作人員交流了解:隨著銀行業(yè)務(wù)的推陳出新以及這些業(yè)務(wù)為客戶(hù)帶來(lái)的便利,使銀行吸引了越來(lái)越多的客戶(hù),一切都使銀行帳目的管理越來(lái)越重要。銀行帳目管理系統(tǒng)是針對(duì)銀行帳目的日常管理而設(shè)計(jì)。銀行操作系統(tǒng)不僅要求操作方便而且要求界面簡(jiǎn)潔,它需要實(shí)現(xiàn)帳目管理,用戶(hù)查詢(xún)和查詢(xún)統(tǒng)計(jì)等幾個(gè)功能。其中帳目管理又包含了開(kāi)戶(hù)、銷(xiāo)戶(hù)、存款、取款和修改信息的功能。用戶(hù)可以通過(guò)不同的方式來(lái)查詢(xún)需要的信息。通過(guò)該系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn),使銀行部門(mén)更好地進(jìn)行業(yè)務(wù)管理,為客戶(hù)提供更佳優(yōu)質(zhì)的服務(wù)。2.2 用戶(hù)對(duì)系統(tǒng)的期望銀行對(duì)帳目管理系統(tǒng)的要求
13、主要有以下幾個(gè)方面:1. 系統(tǒng)能夠完成銀行帳目管理系統(tǒng)的主要功能;2. 系統(tǒng)界面簡(jiǎn)潔,容易操作;3. 具有一定的穩(wěn)定性,安全性;4. 訪(fǎng)問(wèn)速度快。2.3 編程語(yǔ)言和運(yùn)行環(huán)境介紹銀行帳目管理系統(tǒng)采用Java語(yǔ)言進(jìn)行編程。Java語(yǔ)言是一種很優(yōu)秀的語(yǔ)言,是目前軟件設(shè)計(jì)中極為壯健的編程語(yǔ)言,只要提供了Java解釋器,Java編寫(xiě)的軟件在執(zhí)行碼上兼容。Java作為一種程序設(shè)計(jì)語(yǔ)言,它簡(jiǎn)單、面向?qū)ο?、不依?lài)于機(jī)器的結(jié)構(gòu)、具有可移植性、安全性、并且提供了并發(fā)的機(jī)制,具有很高的性能。其次,它最大限度地利用了網(wǎng)絡(luò),Java的小應(yīng)用程序(applet)可在網(wǎng)絡(luò)上運(yùn)行而不受CPU和環(huán)境的限制。另外,Java還提供
14、了豐富的類(lèi)庫(kù),使程序設(shè)計(jì)者可以很方便地建立自己的系統(tǒng)。通過(guò)分析Java的特點(diǎn),進(jìn)一步指出它所具有的優(yōu)點(diǎn)。Java語(yǔ)言有下面一些特點(diǎn):簡(jiǎn)單、面向?qū)ο?、與平臺(tái)無(wú)關(guān)、解釋執(zhí)行、多線(xiàn)程、安全、動(dòng)態(tài)性。1) 簡(jiǎn)單:Java語(yǔ)言是一種面向?qū)ο蟮恼Z(yǔ)言,它通過(guò)提供最基本的方法來(lái)完成指定的任務(wù),只需理解一些基本的概念,就可以用它編寫(xiě)出適合于各種情況的應(yīng)用程序。Java略去了運(yùn)算符重載、多重繼承等模糊的概念,并且通過(guò)實(shí)現(xiàn)自動(dòng)垃圾回收,大大簡(jiǎn)化了程序設(shè)計(jì)者的內(nèi)存管理工作。2) 面向?qū)ο螅篔ava語(yǔ)言的設(shè)計(jì)集中于對(duì)象及其接口,它提供了簡(jiǎn)單的類(lèi)機(jī)制以及動(dòng)態(tài)的接口模型。對(duì)象中封裝了它的狀態(tài)變量以及相應(yīng)的方法,實(shí)現(xiàn)了模塊化
15、和信息隱藏;而類(lèi)則提供了一類(lèi)對(duì)象的原型,并且通過(guò)繼承機(jī)制,子類(lèi)可以使用父類(lèi)所提供的方法,實(shí)現(xiàn)了代碼的復(fù)用。3) 與平臺(tái)無(wú)關(guān):Java解釋器生成與體系結(jié)構(gòu)無(wú)關(guān)的字節(jié)碼指令,只要安裝了Java運(yùn)行時(shí)系統(tǒng),Java程序就可在任意的處理器上運(yùn)行。這些字節(jié)碼指令對(duì)應(yīng)于Java虛擬機(jī)中的表示,Java解釋器得到字節(jié)碼后,對(duì)它進(jìn)行轉(zhuǎn)換,使之能夠在不同的平臺(tái)運(yùn)行。4) 解釋型:Java解釋器直接對(duì)Java字節(jié)碼進(jìn)行解釋執(zhí)行。字節(jié)碼本身攜帶了許多編譯時(shí)信息,使得連接過(guò)程更加簡(jiǎn)單。5) 多線(xiàn)程:Java還有一特點(diǎn)就是內(nèi)置對(duì)多線(xiàn)程的支持。多線(xiàn)程支持完成多個(gè)任務(wù)。6) 安全:用于網(wǎng)絡(luò)、分布環(huán)境下的Java必須要防止病
16、毒的入侵。Java不支持指針,一切對(duì)內(nèi)存的訪(fǎng)問(wèn)都必須通過(guò)對(duì)象的實(shí)例變量來(lái)實(shí)現(xiàn),這樣就防止程序員使用“特洛伊”木馬等欺騙手段訪(fǎng)問(wèn)對(duì)象的私有成員,同時(shí)也避免了指針操作中容易產(chǎn)生的錯(cuò)誤。7) 動(dòng)態(tài):Java的設(shè)計(jì)使它適合于一個(gè)不斷發(fā)展的環(huán)境。在類(lèi)庫(kù)中可以自由地加入新的方法和實(shí)例變量而不會(huì)影響用戶(hù)程序的執(zhí)行。并且Java通過(guò)接口來(lái)支持多重繼承,使之比嚴(yán)格的類(lèi)繼承具有更靈活的方式和擴(kuò)展性。Eclipse是一個(gè)開(kāi)放源碼的、可擴(kuò)展的應(yīng)用開(kāi)發(fā)平臺(tái),該平臺(tái)為編程人員提供了一流的Java集成開(kāi)發(fā)環(huán)境。作為一套開(kāi)源工具,可用于構(gòu)建Web Services J2EE等各種類(lèi)型的應(yīng)用,其所提供的功能不亞于、甚至超過(guò)由專(zhuān)
17、業(yè)的集成環(huán)境供應(yīng)商所提供的商業(yè)化產(chǎn)品,如JBuilder。在JAVA的程序開(kāi)發(fā)環(huán)境jdk1.5.0_04下Eclipse不需要安裝,下載后解壓即可使用。3 功能模塊設(shè)計(jì)3.1 銀行帳目管理系統(tǒng)功能模塊銀行帳目管理系統(tǒng)包括五個(gè)模塊,分別為系統(tǒng)選項(xiàng)、帳目管理、查詢(xún)統(tǒng)計(jì)、用戶(hù)查詢(xún)和幫助。其中帳目管理還包含了開(kāi)戶(hù)、銷(xiāo)戶(hù)、存款、取款和修改信息功能。用戶(hù)查詢(xún)包含了姓名查詢(xún)、地址查詢(xún)、帳號(hào)查詢(xún)和電話(huà)查詢(xún)。功能模塊圖如圖1所示。銀行帳目管理系統(tǒng)查詢(xún)統(tǒng)計(jì)用戶(hù)查詢(xún)帳目管理系統(tǒng)管理幫助電話(huà)查詢(xún)地址查詢(xún)帳號(hào)查詢(xún)姓名查詢(xún)?nèi)】钚薷男畔N(xiāo)戶(hù)存款開(kāi)戶(hù)圖1銀行帳目管理系統(tǒng)模塊圖3.2 功能模塊介紹銀行帳目管理系統(tǒng)包括五個(gè)模塊,
18、分別為系統(tǒng)管理、帳目管理、查詢(xún)統(tǒng)計(jì)、用戶(hù)查詢(xún)和幫助。其具體的功能如下:帳目管理模塊:主要處理用戶(hù)的日常操作。(1)開(kāi)戶(hù):新建一個(gè)帳戶(hù),為其指定一個(gè)唯一的帳號(hào)來(lái)標(biāo)志該用戶(hù)(2)銷(xiāo)戶(hù):將指定用戶(hù)的帳號(hào)刪除。用戶(hù)輸入密碼經(jīng)過(guò)驗(yàn)證成功后,把帳戶(hù)的余額全部取出,最后刪除該帳戶(hù)。(3)存款:向指定的帳戶(hù)中存入一筆錢(qián),經(jīng)用戶(hù)輸入密碼確認(rèn)后,方可存入。(4)取款:從指定的帳戶(hù)中取出一筆錢(qián)。取款前用戶(hù)需要輸入密碼確認(rèn),取款后帳戶(hù)余額不得少于帳戶(hù)的最低存款額,否則不予處理。(5)修改信息:選擇一個(gè)存在的帳戶(hù),然后輸入密碼經(jīng)確認(rèn)后進(jìn)入用戶(hù)信息窗口,可對(duì)里面的密碼、聯(lián)系電話(huà)和家庭住址進(jìn)行修改,而帳號(hào)和帳戶(hù)上的金額不能
19、被用戶(hù)修改。查詢(xún)模塊:按照指定方式進(jìn)行查找?guī)?hù)信息,包括按姓名、帳號(hào)和聯(lián)系電話(huà)進(jìn)行查找,也可以按照地址進(jìn)行模糊查找。統(tǒng)計(jì)模塊:對(duì)銀行的數(shù)據(jù)進(jìn)行統(tǒng)計(jì),如對(duì)帳戶(hù)數(shù)量的統(tǒng)計(jì)。4 系統(tǒng)的實(shí)現(xiàn)4.1 登錄界面的設(shè)計(jì)在登錄界面輸入管理員姓名和密碼,點(diǎn)擊“確定”按鈕,通過(guò)if(username.equals(getUsername()&password.equals(getPassword()語(yǔ)句進(jìn)行比較; 判斷是否通過(guò)驗(yàn)證,如果通過(guò)則釋放,顯示主窗體,進(jìn)入操作主界面,如圖2所示。圖2 登錄界面示意圖當(dāng)管理員打開(kāi)登錄界面后,如果不想登錄,點(diǎn)擊“退出”按鈕退出系統(tǒng),其代碼如下:private void doE
20、xit() System.exit(0);在登錄時(shí)如果管理員輸入錯(cuò)誤的帳號(hào)或密碼,通過(guò)JOptionPane.showMessageDialog(this,錯(cuò)誤的用戶(hù)名或密碼!);提示管理員操作。為防止暴力破解,設(shè)計(jì)三次輸入錯(cuò)誤密碼,則自動(dòng)退出系統(tǒng)的機(jī)制.其代碼如下: else if(count = 3) JOptionPane.showMessageDialog(this,連續(xù)三次輸入錯(cuò)誤,退出系統(tǒng)!); doExit();為了防止下個(gè)用戶(hù)看到上個(gè)用戶(hù)的信息,利用setUsername();和setPassword();來(lái)清空用戶(hù)名和密碼輸入框中的內(nèi)容。在設(shè)計(jì)登錄界面的框架時(shí),通過(guò)publi
21、c class LoginWindow extends JFrame implements ActionListener定義一個(gè)登錄窗口類(lèi),它繼承于JFrame。在設(shè)計(jì)好登錄界面的框架后,要初始化所有控件,實(shí)現(xiàn)的部分代碼如下:public void initComponent() Container contentPane = this.getContentPane();contentPane.setLayout(null);labelUsername= new JLabel(管理員帳號(hào):);labelPassword= new JLabel(管理員密碼:);txtUsername= new
22、JTextField();txtPassword= new JPasswordField();btnConfirm= new JButton(確定);btnCancel= new JButton(退出); 4.2 操作主界面的設(shè)計(jì)在操作主界面,可以進(jìn)行各種操作,包括存款、取款、開(kāi)戶(hù)、銷(xiāo)戶(hù)、修改信息、顯示全部和查找,而且界面簡(jiǎn)潔易于操作,如圖3所示。圖3 操作主界面示意圖在設(shè)計(jì)銀行帳目管理系統(tǒng)的操作主界面時(shí),先利用public class MainWindow extends JFrame implements ActionListener 來(lái)定義一個(gè)主窗口類(lèi)MainWindow,然后在里面定義
23、所需要的全部變量,變量定義為private型。在MainWindow類(lèi)中,功能刻畫(huà)的代碼如下:public MainWindow(String title) setTitle(title);setSize(WIDTH,HEIGHT);setResizable(false);setDefaultCloseOperation(EXIT_ON_CLOSE);initMenu();initComponent();center();loadAccountData();loadBillData();操作主界面的設(shè)計(jì)主要包括幾部分:一是菜單欄的設(shè)計(jì),二是中間部分表格的設(shè)計(jì),三是下面部分按鈕的設(shè)計(jì)。主要設(shè)計(jì)過(guò)
24、程如下:菜單欄的設(shè)計(jì)是先創(chuàng)建好菜單項(xiàng),然后把菜單項(xiàng)添加到對(duì)應(yīng)的菜單中,再將菜單添加至菜單欄中,最后把菜單添加到主窗體中。設(shè)計(jì)好操作主界面后,點(diǎn)擊“查詢(xún)統(tǒng)計(jì)”按鈕,出現(xiàn)如圖4所示的下拉菜單。圖4 菜單欄示意圖實(shí)現(xiàn)的主要代碼如下:public void initMenu() menuBar = new JMenuBar();/創(chuàng)建菜單queryCountMenu = new JMenu(查詢(xún)統(tǒng)計(jì)); /創(chuàng)建菜單項(xiàng) queryCountMI = new JMenuItem(查詢(xún)統(tǒng)計(jì));/給菜單項(xiàng)添加監(jiān)聽(tīng)器,監(jiān)聽(tīng)菜單項(xiàng)的單擊事件queryCountMI.addActionListener(this);
25、/菜單項(xiàng)添加到菜單里面queryCountMenu.add(queryCountMI);setJMenuBar(menuBar);操作主界面的表格如圖5所示。表格主要包含了姓名、帳號(hào)、卡上余額、家庭住址和電話(huà),主要是方便查看信息。圖5 表格示意圖表格部分的設(shè)計(jì)主要代碼如下:/設(shè)置表格的列標(biāo)題final String strColName = 姓名, 帳號(hào), 卡上余額, 家庭住址, 電話(huà);/獲得表格的所顯示數(shù)據(jù)的TableModeldm = (DefaultTableModel) table.getModel();/把列標(biāo)題添加到表格中for ( int i = 0;i strCOLName.l
26、ength; i+ )dm.addColumn(strCOLNamei);窗體下面部分的控件的設(shè)計(jì)主要就先將控件創(chuàng)建出來(lái),再將不同功能的控件分組放置,便于操作。面板被只能創(chuàng)建一次,如果已經(jīng)創(chuàng)建了該這塊面板,直接返回創(chuàng)建好了的面板,提高效率。其實(shí)現(xiàn)代碼如下:if(bottomPanel != null)return bottomPanel;該面板的控件分三部分創(chuàng)建,分別放置在三個(gè)面板中,將實(shí)現(xiàn)不同功能的控件放在不同的面板中,達(dá)到界面美觀(guān),操作方便的目的。如圖6所示。圖6操作主界面的面板示意圖三個(gè)面板通過(guò)程序中的三個(gè)方法 getBottomLeftPanel(), getBottomMiddleP
27、anel()以及getBottomRightPanel()。這樣的劃分增強(qiáng)了程序的可以讀性,不同的方法實(shí)現(xiàn)不同的功能,一目了然。實(shí)現(xiàn)的主要代碼如下:private JPanel getBottomPanel() if(bottomPanel != null) return bottomPanel;bottomPanel = new JPanel();bottomPanel.setLayout(new GridLayout(1,3);bottomPanel.add(getBottomLeftPanel();bottomPanel.add(getBottomMiddlePanel();bottom
28、Panel.add(getBottomRightPanel();return bottomPanel;4.3 功能界面的設(shè)計(jì)4.3.1 顯示全部的功能實(shí)現(xiàn)在實(shí)現(xiàn)存款、取款、銷(xiāo)戶(hù)和修改信息的時(shí)候都需要顯示出表格中的信息,然后選擇一個(gè)帳戶(hù)后進(jìn)行操作。點(diǎn)擊如圖3操作主界面的“顯示全部”按鈕,在表格中出現(xiàn)已經(jīng)存在的信息,當(dāng)存款、取款、銷(xiāo)戶(hù)和修改信息等操作的時(shí)候,顯示的信息會(huì)發(fā)生變化,這主要是隨著操作的進(jìn)行,系統(tǒng)會(huì)清除以前的數(shù)據(jù)。實(shí)現(xiàn)的代碼如下:private void doShowAll() Account account = new Accountdata.getCount();data.getAc
29、countList().toArray(account);/清除表格中以前的數(shù)據(jù)while(table.getRowCount() != 0) dm.removeRow(0);/顯示出所有帳戶(hù)數(shù)據(jù)for(int i=0; idata.getCount(); i+) String strRow = accounti.getName(), accounti.getId(),accounti.getMoney()+,accounti.getAddress(), accounti.getPhone();dm.addRow(strRow);4.3.2 開(kāi)戶(hù)窗口的設(shè)計(jì)與實(shí)現(xiàn)4.3.3 銷(xiāo)戶(hù)窗口的設(shè)計(jì)與實(shí)現(xiàn)
30、4.3.4 存款和取款窗口的設(shè)計(jì)與實(shí)現(xiàn)存款和取款的操作方法都是一樣的,都是首先在如圖3所示的操作主界面里選中一個(gè)需要存款(取款)的帳戶(hù),如圖9所示,然后點(diǎn)擊按鈕(存款或取款按鈕),彈出輸入密碼的信息框,帳戶(hù)輸入密碼經(jīng)驗(yàn)證后。圖9帳戶(hù)被選中示意圖(藍(lán)色標(biāo)志)在沒(méi)有選中帳戶(hù)的時(shí)候點(diǎn)擊存款按鈕,系統(tǒng)會(huì)提示帳戶(hù),實(shí)現(xiàn)的代碼為:if(row = -1) /如果沒(méi)有選中記錄,提示先選中記錄才能存款JOptionPane.showMessageDialog(this,請(qǐng)先選擇要存款的帳戶(hù)!); 選中要存款的帳戶(hù)后,點(diǎn)擊存款按鈕,彈出輸入密碼框,帳戶(hù)要輸入密碼驗(yàn)證后才能存款操作,當(dāng)沒(méi)有輸入的密碼或者輸錯(cuò)3次,
31、會(huì)自動(dòng)退出系統(tǒng),實(shí)現(xiàn)的代碼如下:else/根據(jù)選擇的行獲得標(biāo)識(shí)該帳戶(hù)的唯一IDString delId = (String)dm.getValueAt(table.getSelectedRow(), 1);/根據(jù)ID在帳戶(hù)鏈表中找到該帳戶(hù)并返回該帳戶(hù)的引用while(iterator.hasNext()account = (Account)iterator.next();if(account.getId().equals(delId) break;/找到要存款的帳戶(hù)后,要用戶(hù)輸入密碼確認(rèn)進(jìn)行存款操作int number = 0;while(true) String strPassword =
32、JOptionPane.showInputDialog(this,請(qǐng)輸入密碼:); if(strPassword = null) return; else if (account.getPassword().equals(strPassword) break; else if(+number) 3) JOptionPane.showMessageDialog(this,密碼錯(cuò)誤!請(qǐng)重新輸入!); continue; JOptionPane.showMessageDialog(this,密碼輸錯(cuò)三次,帳號(hào)被鎖定!);return;驗(yàn)證密碼通過(guò)后,在輸入框中輸入存款金額,金額必須為數(shù)字,如果輸入其
33、他信息,系統(tǒng)會(huì)報(bào)錯(cuò),如圖10所示。圖10操作錯(cuò)誤提示框?qū)崿F(xiàn)的代碼如下:/存款數(shù)目只能是數(shù)字String strNumber = null;while (true) strNumber = JOptionPane.showInputDialog(this, 請(qǐng)輸入存款金額:);if(strNumber = null) return; else if (strNumber.matches(1-90-9*) break; JOptionPane.showMessageDialog(this, 輸入錯(cuò)誤!請(qǐng)輸入數(shù)字!);通過(guò)account.setMoney(account.getMoney() + I
34、nteger.parseInt(strNumber);來(lái)實(shí)現(xiàn)存款操作。存款完后顯示一張存取信息表,如圖11所示。產(chǎn)生的存取清單會(huì)存儲(chǔ)到存取清單鏈表中去,點(diǎn)擊“顯示全部”按鈕,顯示新的信息,此時(shí)的卡上余額信息已經(jīng)發(fā)生變化,通過(guò)圖11和圖12可以發(fā)現(xiàn)金額的變化。圖11存款后的信息表圖12 卡上余額變化實(shí)現(xiàn)的代碼如下:bill = new Bill();/生成新的存取清單bill.setAccountId(account.getId();bill.setMoney(Integer.parseInt(strNumber);bill.setBalance(account.getMoney();bill.
35、setName(account.getName();bill.setType(存款);/保存帳戶(hù)信息到文件FileOutputStream fos = new FileOutputStream(file);ObjectOutputStream oos = new ObjectOutputStream (fos);oos.writeObject(listAccount);oos.close();4.3.5 修改信息窗口的設(shè)計(jì)與實(shí)現(xiàn)修改信息的窗口和開(kāi)戶(hù)窗口是一樣的,他們繼承于同一個(gè)類(lèi),但是他們完成的功能不一樣。點(diǎn)擊如圖3所示操作主界面的“修改密碼”按鈕,彈出輸入密碼提示框,驗(yàn)證后可以修改用戶(hù)名、密
36、碼、聯(lián)系電話(huà)和家庭住址,點(diǎn)擊“確定”按鈕后顯示修改信息成功。但是帳戶(hù)沒(méi)有權(quán)力利修改帳號(hào)和存款金額。修改窗口如圖12所示: 圖12 修改信息窗口主要功能實(shí)現(xiàn)代碼與開(kāi)戶(hù)的功能代碼相似,不同的地方是最后只對(duì)帳戶(hù)信息進(jìn)行更新,而不是新添加帳戶(hù),如下:/保存此帳戶(hù)信息的更新account.setName(getAccountName();/更改帳戶(hù)的姓名account.setPassword(getPassword();/更改帳戶(hù)的密碼account.setPhone(getPhone();/更改帳戶(hù)的電話(huà)號(hào)碼account.setAddress(getAddress();/更改帳戶(hù)的住址/在鏈表中更新
37、該帳戶(hù)的信息data.getAccountList().set(pos,account);/保存帳戶(hù)信息到文件4.3.6 查詢(xún)功能的實(shí)現(xiàn)在圖3所示的操作主界面,點(diǎn)擊“用戶(hù)查詢(xún)”或“查找”都能進(jìn)行查找操作,查找的時(shí)候必須選中一個(gè)查詢(xún)方式,并且必須輸入查找的關(guān)鍵字,否則會(huì)產(chǎn)生如圖13的提示框。圖13提示信息框代碼如下:if(getInput().trim().length() = 0) JOptionPane.showMessageDialog(this,請(qǐng)輸入查詢(xún)關(guān)鍵字!);return;帳戶(hù)可以通過(guò)四種方式來(lái)查詢(xún),分別是查詢(xún)姓名,查詢(xún)帳號(hào),查詢(xún)電話(huà)號(hào)碼和查詢(xún)家庭住址。當(dāng)查詢(xún)結(jié)束為,為保證信息的
38、安全,會(huì)清除表格中以前的數(shù)據(jù),代碼如下:while(table.getRowCount() != 0) dm.removeRow(0);根據(jù)查詢(xún)方式進(jìn)行查詢(xún),并在表格中顯示出來(lái),當(dāng)查找方式為姓名時(shí)的代碼如下:/根據(jù)用戶(hù)選擇的單選按鈕 進(jìn)行查詢(xún),在表格中顯示符合條件的記錄if(rab1.isSelected() for(int i=0; idata.getCount(); i+) if(accounti.getName().equals(getInput() String strRow = accounti.getName(), accounti.getId(), accounti.getMon
39、ey()+,accounti.getAddress(), accounti.getPhone(); dm.addRow(strRow);4.3.7 查詢(xún)統(tǒng)計(jì)的實(shí)現(xiàn)在如圖3所示的操作主界面單擊菜單上的“查詢(xún)統(tǒng)計(jì)”,可以完成對(duì)帳戶(hù)數(shù)的統(tǒng)計(jì),代碼如下:private void doCount() JOptionPane.showMessageDialog(this,共有+AccountData.getInstance().getCount()+個(gè)帳戶(hù)!);5 數(shù)據(jù)保存機(jī)制-采用鏈表和輸入輸出流銀行帳目管理系統(tǒng)采用輸入輸出流對(duì)數(shù)據(jù)進(jìn)行存取。I/O流提供一條通道程序,可以使用這條通道把與源中的字符序列送
40、到目的地。把輸入流的指向稱(chēng)做源,程序從指向源的輸入流中讀取源中的數(shù)據(jù)。而輸出流的指向是字節(jié)要去的目的地,程序通過(guò)向輸出流中寫(xiě)入數(shù)據(jù)把信息傳遞到目的地。程序中用到的是I/O流中的對(duì)象流,即對(duì)象輸入流(ObjectInputStream)和對(duì)象輸出流(ObjectOutputStream)。當(dāng)使用對(duì)象流寫(xiě)入和讀出數(shù)據(jù)時(shí),要保證對(duì)象是序列化的,一個(gè)類(lèi)如果實(shí)現(xiàn)了Serializable接口,則這個(gè)類(lèi)創(chuàng)建的對(duì)象就是序列化的對(duì)象。對(duì)象輸出流使用writeObject(Object obj)方法將一個(gè)對(duì)象obj寫(xiě)入到一個(gè)文件,對(duì)象輸入流使用readObject(Object obj)方法讀取一個(gè)對(duì)象到程序中
41、。 在程序中對(duì)數(shù)據(jù)的操作是使用鏈表來(lái)實(shí)現(xiàn)的,所有對(duì)數(shù)據(jù)的操作都能在鏈表中表現(xiàn)出來(lái),如數(shù)據(jù)的增加、刪除、修改等。程序中有兩張鏈表存儲(chǔ)帳戶(hù)數(shù)據(jù)的鏈表(listAccount)和存儲(chǔ)所有存取清單的帳單鏈表(BillList),鏈表是通過(guò)Java.util包中的LinkedList類(lèi)來(lái)創(chuàng)建。用戶(hù)的所有操作都被記錄在這兩張鏈表中,當(dāng)鏈表中的內(nèi)容發(fā)生改變時(shí),程序會(huì)調(diào)用對(duì)象輸出流的writeObject(Object obj)方法將文件中的內(nèi)容更新,從而實(shí)現(xiàn)數(shù)據(jù)的一致性。在存款,取款,修改信息還有銷(xiāo)戶(hù)的時(shí)候首先要在存取帳戶(hù)信息的鏈表中找到這個(gè)相對(duì)應(yīng)的帳號(hào),然后在進(jìn)行操作。借助Iterator類(lèi)實(shí)現(xiàn)遍歷鏈表,
42、一個(gè)鏈表對(duì)象可以使用iterator()方法獲取一個(gè)Iterator對(duì)象,使用next()方法遍歷鏈表。帳戶(hù)數(shù)據(jù)的鏈表listAccount建立的代碼如下:/存儲(chǔ)帳戶(hù)數(shù)據(jù)的鏈表,且只能存儲(chǔ)Account類(lèi)private LinkedList listAccount = new LinkedList();在鏈表中查詢(xún)帳戶(hù)的代碼為:以銷(xiāo)戶(hù)為例Iterator iterator = data.getAccountList().iterator();/根據(jù)選擇的行獲得標(biāo)志該帳戶(hù)的唯一IDString delId = (String)dm.getValueAt(table.getSelectedRow(
43、),1);/根據(jù)ID在帳戶(hù)鏈表中找到該帳戶(hù)并返回該帳戶(hù)的引用while (iterator.hasNext()account = (Account) iterator. next(); if(account.getId().equals(delId)建立新的帳戶(hù)并把它保存在鏈表,實(shí)現(xiàn)的代碼如下:public void addAccount(Account account) listAccount.add(account)讀取帳戶(hù)信息并保存到鏈表,實(shí)現(xiàn)的代碼如下:FileInputStream fis = new FileInputStream(file);ObjectInputStream o
44、is = new ObjectInputStream (fis);listAccount = (LinkedList)ois.readObject();ois.close();6 測(cè)試6.1 測(cè)試環(huán)境銀行帳目管理系統(tǒng)測(cè)試的環(huán)境是:內(nèi)存512M,硬盤(pán)80G,JDK1.5.0_04以及eclipse漢化版,操作系統(tǒng)為Microsoft Windows XP professional上正常運(yùn)行。6.2 測(cè)試結(jié)果銀行帳目管理系統(tǒng)能夠按照用戶(hù)的需求實(shí)現(xiàn)各種功能,在登錄以前運(yùn)行整個(gè)系統(tǒng),運(yùn)行通過(guò)后彈出管理員登錄框,輸入姓名和密碼,然后點(diǎn)擊“確定”按鈕,當(dāng)驗(yàn)證通過(guò)后,進(jìn)入操作主界面??蛇M(jìn)行存款、取款、開(kāi)戶(hù)、
45、銷(xiāo)戶(hù)、修改信息、查詢(xún)和統(tǒng)計(jì)功能。在進(jìn)行存款、取款、銷(xiāo)戶(hù)和修改信息時(shí)首先都必須選中一個(gè)帳戶(hù),然后再進(jìn)行操作,通過(guò)點(diǎn)擊“修改信息”按鈕來(lái)查看具體的變化。在存款時(shí)當(dāng)用戶(hù)沒(méi)有設(shè)置密碼時(shí),默認(rèn)密碼是000000,用戶(hù)可以通過(guò)點(diǎn)擊“修改信息”按鈕來(lái)修改自己的密碼。在輸入密碼時(shí)設(shè)置了輸入次數(shù),當(dāng)超過(guò)輸入次數(shù)后,帳戶(hù)被鎖定。進(jìn)行查找操作時(shí),可以通過(guò)兩種方式,一是通過(guò)查找?guī)ぬ?hào)、姓名和聯(lián)系電話(huà)來(lái)查找?guī)?hù),二是通過(guò)查找住址來(lái)進(jìn)行模糊查詢(xún),找到一些相匹配的帳戶(hù)系統(tǒng)在上述軟硬件環(huán)境下對(duì)系統(tǒng)的五個(gè)模塊系統(tǒng)管理、帳目管理、用戶(hù)查詢(xún)、統(tǒng)計(jì)和幫助進(jìn)行測(cè)試和運(yùn)行,結(jié)果能達(dá)到預(yù)期目標(biāo)。結(jié) 論到現(xiàn)在,銀行帳目管理系統(tǒng)能夠完成用戶(hù)所要
46、求實(shí)現(xiàn)的功能,能夠進(jìn)行系統(tǒng)管理操作來(lái)退出系統(tǒng);實(shí)現(xiàn)帳目管理從而對(duì)開(kāi)戶(hù)、銷(xiāo)戶(hù)、存款、取款還有修改信息進(jìn)行操作,除了開(kāi)戶(hù)功能在進(jìn)行銷(xiāo)戶(hù)等操作時(shí)必須先選擇一個(gè)帳戶(hù)然后輸入密碼進(jìn)行驗(yàn)證后才能進(jìn)行下一步的操作;實(shí)現(xiàn)了用戶(hù)查詢(xún),可以通過(guò)四種方式:姓名查詢(xún)、地址查詢(xún)、電話(huà)查詢(xún)還有帳戶(hù)查詢(xún),在查詢(xún)的時(shí)候先選擇查詢(xún)方式然后必須輸入關(guān)鍵字才能進(jìn)行查詢(xún)。最后實(shí)現(xiàn)了查詢(xún)統(tǒng)計(jì)功能,通過(guò)這個(gè)功能能夠查詢(xún)到當(dāng)前的帳戶(hù)數(shù)量。在設(shè)計(jì)銀行帳目管理系統(tǒng)時(shí),多次用到繼承,很多功能實(shí)現(xiàn)的代碼是相似的,對(duì)數(shù)據(jù)的操作是使用鏈表來(lái)實(shí)現(xiàn)的,所有對(duì)數(shù)據(jù)的操作都能在鏈表中表現(xiàn)出來(lái),如數(shù)據(jù)的增加、刪除、修改等。但是在開(kāi)發(fā)實(shí)現(xiàn)時(shí)還是遇到了很多料想不到
47、的問(wèn)題,在這里很感謝指導(dǎo)老師的指導(dǎo)和幫助,讓我能夠及時(shí)改正錯(cuò)誤,最終完成系統(tǒng)所能展示的功能。但是還是存在一些不足,幫助模塊里面涉及到的關(guān)于功能還沒(méi)有出來(lái)。在設(shè)計(jì)完整個(gè)系統(tǒng)后,不僅加深了以前所學(xué)的理論知識(shí),也學(xué)到了很多新的知識(shí),提高自己全面思考和實(shí)踐能力。為了鞏固和提高自身的能力,復(fù)習(xí)和常做項(xiàng)目是必不可少的,同時(shí)要虛心學(xué)習(xí),不驕傲自滿(mǎn),認(rèn)真聽(tīng)取他人的建議。參考文獻(xiàn)1 汪志達(dá).Java程序設(shè)計(jì)項(xiàng)目化教程M.北方交通大學(xué)出版社,2003。2 吳其慶.JAVA編程思想與實(shí)踐M.冶金工業(yè)出版社,2002。3 孫印杰,劉斌,孫玉強(qiáng)等.Java編程案例精解M.電子工業(yè)出版社,2005。4 陸正五,蔣武等.Java項(xiàng)目開(kāi)發(fā)實(shí)踐M.中國(guó)鐵道出版社,2004。5 張懷慶.Java案例精釋150例M.冶金工業(yè)出版社,2005。6 陳剛.Eclipse從入門(mén)到精通M.清華大學(xué)出版社,2005。7 張?jiān)茲?龔玲.Eclipse精要與高級(jí)開(kāi)發(fā)技術(shù)M.電子工業(yè)出版社,2005。8 周競(jìng)濤.Eclipse完全手冊(cè)M.電子工業(yè)出版社,2006。9 耿祥義,張躍平,王克宏.JAVA 2 實(shí)用教程M.清華大學(xué)出版社,2004。第18頁(yè) 共23頁(yè)
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《光的折射》課件-(公開(kāi)課獲獎(jiǎng))2022年滬科版物理-
- UV油墨的基礎(chǔ)知識(shí)課件
- 藍(lán)色簡(jiǎn)約后備護(hù)士長(zhǎng)競(jìng)聘動(dòng)態(tài)課件
- 藍(lán)色清新筆記本翻頁(yè)年終總結(jié)模板課件
- 81二元一次方程組課件(人教版七年級(jí)下)
- 局部解剖學(xué)-頭部-蝶鞍區(qū)、海綿竇、硬腦膜
- 7273第1課時(shí) 位似圖形及作圖
- 供應(yīng)鏈管理-PPT
- 幼兒園管理過(guò)程
- 4索溪谷的“野”2
- 外科補(bǔ)液注意問(wèn)題
- 組織行為學(xué)--價(jià)值觀(guān)與態(tài)度
- 燈光教學(xué)課件1
- 中原城市春季車(chē)展招商方案
- 祛痰劑醫(yī)學(xué)知識(shí)專(zhuān)家講座