畢業(yè)設(shè)計(論文)-基于JAVA的建設(shè)銀行賬目管理系統(tǒng)的設(shè)計.doc
《畢業(yè)設(shè)計(論文)-基于JAVA的建設(shè)銀行賬目管理系統(tǒng)的設(shè)計.doc》由會員分享,可在線閱讀,更多相關(guān)《畢業(yè)設(shè)計(論文)-基于JAVA的建設(shè)銀行賬目管理系統(tǒng)的設(shè)計.doc(21頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、建設(shè)銀行賬目管理系統(tǒng)的設(shè)計摘 要隨著我國信息產(chǎn)業(yè)發(fā)展迅速以及中國加入世界貿(mào)易組織,國內(nèi)銀行之間以及與外國銀行之間的競爭也越來越激烈,怎樣發(fā)展業(yè)務(wù)以吸引更多顧客是各銀行面隊的當務(wù)之急。而帳目管理是銀行業(yè)務(wù)流程過程中十分重要且必備的環(huán)節(jié)之一,在銀行業(yè)務(wù)流程當中起著相當重要的作用?,F(xiàn)在銀行的業(yè)務(wù)越來越多,吸引的客戶也越來越多,銀行帳目的管理就越顯重要。銀行帳目管理系統(tǒng)是針對銀行帳目的日常管理而設(shè)計。銀行帳目管理系統(tǒng)不僅要求操作方便而且要求界面簡潔,它還需要實現(xiàn)帳目管理,用戶查詢和查詢統(tǒng)計功能。針對上述情況和要求,采用軟件工程的開發(fā)原理,依據(jù)軟件流程過程規(guī)范,按照需求分析、概要設(shè)計、詳細設(shè)計、程序編碼
2、、測試等過程開發(fā)了一個銀行賬目管理系統(tǒng)。采用JAVA作為編程語言,使用工具eclipse3.1設(shè)計實現(xiàn)了銀行帳目管理系統(tǒng),完成系統(tǒng)管理、帳目管理、查詢統(tǒng)計、用戶查詢等功能。關(guān)鍵詞:用戶查詢;帳目管理;查詢統(tǒng)計;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目 錄論文總頁數(shù):23頁1引言11.1開發(fā)背景11.2開發(fā)意義12系統(tǒng)需求分析22.1銀行帳目管理系統(tǒng)的需求22.2用戶對系統(tǒng)的期望22.3編程語言和運行環(huán)境介紹23功能模塊設(shè)計33.1銀行帳目管理系統(tǒng)功能模塊33.2功能模塊介紹44系統(tǒng)的實現(xiàn)54.1登錄界面的設(shè)計54.2操作主界面的設(shè)計64.3功能界
8、面的設(shè)計94.3.1顯示全部的功能實現(xiàn)94.3.2開戶窗口的設(shè)計與實現(xiàn)104.3.3銷戶窗口的設(shè)計與實現(xiàn)114.3.4存款和取款窗口的設(shè)計與實現(xiàn)134.3.5修改信息窗口的設(shè)計與實現(xiàn)164.3.6查詢功能的實現(xiàn)174.3.7查詢統(tǒng)計的實現(xiàn)185數(shù)據(jù)保存機制-采用鏈表和輸入輸出流186測試196.1測試環(huán)境196.2測試結(jié)果19結(jié) 論20參考文獻211 引言隨著社會經(jīng)濟的發(fā)展,信息化程度的不斷深入,銀行的傳統(tǒng)業(yè)務(wù)己愈來愈不能滿足銀行客戶的需要。同時,隨著我國加入世貿(mào)組織,我國的銀行業(yè)面臨更加激烈的同業(yè)競爭,如何提供更多的金融產(chǎn)品和更優(yōu)質(zhì)的服務(wù),如何吸引更多的客戶,如何利用計算機技術(shù)加強銀行帳戶信
9、息管理,提高銀行的工作效率和業(yè)務(wù)竟爭能力是擺在各家銀行面前的一個迫切需要解訣的問題。1.1 開發(fā)背景隨著科技發(fā)展和社會進步,尤其是計算機大范圍的普及,計算機應(yīng)用逐漸由大規(guī)模科學計算的海量數(shù)據(jù)處理轉(zhuǎn)向大規(guī)模的事務(wù)處理和對工作流的管理,這就產(chǎn)生了以臺式計算機為核心的管理信息系統(tǒng)在大規(guī)模的事務(wù)處理和對工作流的管理等方面的應(yīng)用,在銀行帳目管理之中的應(yīng)用日益增加。近年來我國信息產(chǎn)業(yè)發(fā)展迅速,手工管理方式在銀行帳目管理等需要大量事務(wù)處理的應(yīng)用中已顯得不相適應(yīng),采用IT技術(shù)提高服務(wù)質(zhì)量和管理水平勢在必行。目前,對外開放必然趨勢使銀行業(yè)直面外國銀行巨頭的直接挑戰(zhàn),因此,銀行必須提高其工作效率,改善其工作環(huán)境。
10、這樣,帳戶管理的信息化勢在必行。在傳統(tǒng)的銀行帳戶管理中,其過程往往是很復(fù)雜的,繁瑣的,帳戶管理以入帳和出帳兩項內(nèi)容為核心,在此過程中又需要經(jīng)過若干道手續(xù),因為整個過程都需要手工操作,效率十分低下,且由于他們之間關(guān)聯(lián)復(fù)雜,統(tǒng)計和查詢的方式各不相同;且會出現(xiàn)信息的重復(fù)傳遞問題,因此該過程需要進行信息化,以利用計算機進行帳目管理。系統(tǒng)開發(fā)的整體任務(wù)是實現(xiàn)銀行帳戶管理的系統(tǒng)化、規(guī)范化、自動化和智能化,從而達到提高企業(yè)管理效率的目的。1.2 開發(fā)意義隨著社會的進步和計算機技術(shù)的發(fā)展,尤其是網(wǎng)絡(luò)技術(shù)的飛速進步,信息觀念已經(jīng)深入人心。信息科學作為當代社會中的重要一環(huán)在國民經(jīng)濟中起著舉足輕重的作用。在中國經(jīng)濟
11、蓬勃發(fā)展的今天,越來越龐大的儲蓄用戶數(shù)目和資金流通量對銀行帳目管理的可靠性每天都在進行苛刻的考驗。建立和發(fā)展功能較完善的銀行帳目管理系統(tǒng),不僅可以服務(wù)客戶、聯(lián)系客戶、吸引客戶、穩(wěn)定客戶,鞏固銀行業(yè)務(wù)經(jīng)營基礎(chǔ),而且通過服務(wù)社會,可以塑造銀行自身的市場形象,體現(xiàn)銀行的綜合實力還能夠提高銀行的存款總量;通過提供高效,優(yōu)質(zhì)的業(yè)務(wù),吸引更多的客戶來銀行辦理業(yè)務(wù),從而擴大了銀行的客戶群,加強了銀行和客戶的業(yè)務(wù)聯(lián)系,也會帶動其他業(yè)務(wù)的發(fā)展??傊?,現(xiàn)代商業(yè)銀行的競爭和發(fā)展,已突破傳統(tǒng)業(yè)務(wù)的框架,為了提高銀行的業(yè)務(wù)競爭能力,擴大客戶群,培育新的利潤增長點,務(wù)必大力改良其帳目管理系統(tǒng),因此建立一個功能齊全可靠的帳
12、目管理系統(tǒng)成為銀行當前業(yè)務(wù)發(fā)展的迫切之需。2 系統(tǒng)需求分析2.1 銀行帳目管理系統(tǒng)的需求通過與銀行工作人員交流了解:隨著銀行業(yè)務(wù)的推陳出新以及這些業(yè)務(wù)為客戶帶來的便利,使銀行吸引了越來越多的客戶,一切都使銀行帳目的管理越來越重要。銀行帳目管理系統(tǒng)是針對銀行帳目的日常管理而設(shè)計。銀行操作系統(tǒng)不僅要求操作方便而且要求界面簡潔,它需要實現(xiàn)帳目管理,用戶查詢和查詢統(tǒng)計等幾個功能。其中帳目管理又包含了開戶、銷戶、存款、取款和修改信息的功能。用戶可以通過不同的方式來查詢需要的信息。通過該系統(tǒng)的設(shè)計實現(xiàn),使銀行部門更好地進行業(yè)務(wù)管理,為客戶提供更佳優(yōu)質(zhì)的服務(wù)。2.2 用戶對系統(tǒng)的期望銀行對帳目管理系統(tǒng)的要求
13、主要有以下幾個方面:1. 系統(tǒng)能夠完成銀行帳目管理系統(tǒng)的主要功能;2. 系統(tǒng)界面簡潔,容易操作;3. 具有一定的穩(wěn)定性,安全性;4. 訪問速度快。2.3 編程語言和運行環(huán)境介紹銀行帳目管理系統(tǒng)采用Java語言進行編程。Java語言是一種很優(yōu)秀的語言,是目前軟件設(shè)計中極為壯健的編程語言,只要提供了Java解釋器,Java編寫的軟件在執(zhí)行碼上兼容。Java作為一種程序設(shè)計語言,它簡單、面向?qū)ο蟆⒉灰蕾囉跈C器的結(jié)構(gòu)、具有可移植性、安全性、并且提供了并發(fā)的機制,具有很高的性能。其次,它最大限度地利用了網(wǎng)絡(luò),Java的小應(yīng)用程序(applet)可在網(wǎng)絡(luò)上運行而不受CPU和環(huán)境的限制。另外,Java還提供
14、了豐富的類庫,使程序設(shè)計者可以很方便地建立自己的系統(tǒng)。通過分析Java的特點,進一步指出它所具有的優(yōu)點。Java語言有下面一些特點:簡單、面向?qū)ο?、與平臺無關(guān)、解釋執(zhí)行、多線程、安全、動態(tài)性。1) 簡單:Java語言是一種面向?qū)ο蟮恼Z言,它通過提供最基本的方法來完成指定的任務(wù),只需理解一些基本的概念,就可以用它編寫出適合于各種情況的應(yīng)用程序。Java略去了運算符重載、多重繼承等模糊的概念,并且通過實現(xiàn)自動垃圾回收,大大簡化了程序設(shè)計者的內(nèi)存管理工作。2) 面向?qū)ο螅篔ava語言的設(shè)計集中于對象及其接口,它提供了簡單的類機制以及動態(tài)的接口模型。對象中封裝了它的狀態(tài)變量以及相應(yīng)的方法,實現(xiàn)了模塊化
15、和信息隱藏;而類則提供了一類對象的原型,并且通過繼承機制,子類可以使用父類所提供的方法,實現(xiàn)了代碼的復(fù)用。3) 與平臺無關(guān):Java解釋器生成與體系結(jié)構(gòu)無關(guān)的字節(jié)碼指令,只要安裝了Java運行時系統(tǒng),Java程序就可在任意的處理器上運行。這些字節(jié)碼指令對應(yīng)于Java虛擬機中的表示,Java解釋器得到字節(jié)碼后,對它進行轉(zhuǎn)換,使之能夠在不同的平臺運行。4) 解釋型:Java解釋器直接對Java字節(jié)碼進行解釋執(zhí)行。字節(jié)碼本身攜帶了許多編譯時信息,使得連接過程更加簡單。5) 多線程:Java還有一特點就是內(nèi)置對多線程的支持。多線程支持完成多個任務(wù)。6) 安全:用于網(wǎng)絡(luò)、分布環(huán)境下的Java必須要防止病
16、毒的入侵。Java不支持指針,一切對內(nèi)存的訪問都必須通過對象的實例變量來實現(xiàn),這樣就防止程序員使用“特洛伊”木馬等欺騙手段訪問對象的私有成員,同時也避免了指針操作中容易產(chǎn)生的錯誤。7) 動態(tài):Java的設(shè)計使它適合于一個不斷發(fā)展的環(huán)境。在類庫中可以自由地加入新的方法和實例變量而不會影響用戶程序的執(zhí)行。并且Java通過接口來支持多重繼承,使之比嚴格的類繼承具有更靈活的方式和擴展性。Eclipse是一個開放源碼的、可擴展的應(yīng)用開發(fā)平臺,該平臺為編程人員提供了一流的Java集成開發(fā)環(huán)境。作為一套開源工具,可用于構(gòu)建Web Services J2EE等各種類型的應(yīng)用,其所提供的功能不亞于、甚至超過由專
17、業(yè)的集成環(huán)境供應(yīng)商所提供的商業(yè)化產(chǎn)品,如JBuilder。在JAVA的程序開發(fā)環(huán)境jdk1.5.0_04下Eclipse不需要安裝,下載后解壓即可使用。3 功能模塊設(shè)計3.1 銀行帳目管理系統(tǒng)功能模塊銀行帳目管理系統(tǒng)包括五個模塊,分別為系統(tǒng)選項、帳目管理、查詢統(tǒng)計、用戶查詢和幫助。其中帳目管理還包含了開戶、銷戶、存款、取款和修改信息功能。用戶查詢包含了姓名查詢、地址查詢、帳號查詢和電話查詢。功能模塊圖如圖1所示。銀行帳目管理系統(tǒng)查詢統(tǒng)計用戶查詢帳目管理系統(tǒng)管理幫助電話查詢地址查詢帳號查詢姓名查詢?nèi)】钚薷男畔N戶存款開戶圖1銀行帳目管理系統(tǒng)模塊圖3.2 功能模塊介紹銀行帳目管理系統(tǒng)包括五個模塊,
18、分別為系統(tǒng)管理、帳目管理、查詢統(tǒng)計、用戶查詢和幫助。其具體的功能如下:帳目管理模塊:主要處理用戶的日常操作。(1)開戶:新建一個帳戶,為其指定一個唯一的帳號來標志該用戶(2)銷戶:將指定用戶的帳號刪除。用戶輸入密碼經(jīng)過驗證成功后,把帳戶的余額全部取出,最后刪除該帳戶。(3)存款:向指定的帳戶中存入一筆錢,經(jīng)用戶輸入密碼確認后,方可存入。(4)取款:從指定的帳戶中取出一筆錢。取款前用戶需要輸入密碼確認,取款后帳戶余額不得少于帳戶的最低存款額,否則不予處理。(5)修改信息:選擇一個存在的帳戶,然后輸入密碼經(jīng)確認后進入用戶信息窗口,可對里面的密碼、聯(lián)系電話和家庭住址進行修改,而帳號和帳戶上的金額不能
19、被用戶修改。查詢模塊:按照指定方式進行查找?guī)粜畔?,包括按姓名、帳號和?lián)系電話進行查找,也可以按照地址進行模糊查找。統(tǒng)計模塊:對銀行的數(shù)據(jù)進行統(tǒng)計,如對帳戶數(shù)量的統(tǒng)計。4 系統(tǒng)的實現(xiàn)4.1 登錄界面的設(shè)計在登錄界面輸入管理員姓名和密碼,點擊“確定”按鈕,通過if(username.equals(getUsername()&password.equals(getPassword()語句進行比較; 判斷是否通過驗證,如果通過則釋放,顯示主窗體,進入操作主界面,如圖2所示。圖2 登錄界面示意圖當管理員打開登錄界面后,如果不想登錄,點擊“退出”按鈕退出系統(tǒng),其代碼如下:private void doE
20、xit() System.exit(0);在登錄時如果管理員輸入錯誤的帳號或密碼,通過JOptionPane.showMessageDialog(this,錯誤的用戶名或密碼!);提示管理員操作。為防止暴力破解,設(shè)計三次輸入錯誤密碼,則自動退出系統(tǒng)的機制.其代碼如下: else if(count = 3) JOptionPane.showMessageDialog(this,連續(xù)三次輸入錯誤,退出系統(tǒng)!); doExit();為了防止下個用戶看到上個用戶的信息,利用setUsername();和setPassword();來清空用戶名和密碼輸入框中的內(nèi)容。在設(shè)計登錄界面的框架時,通過publi
21、c class LoginWindow extends JFrame implements ActionListener定義一個登錄窗口類,它繼承于JFrame。在設(shè)計好登錄界面的框架后,要初始化所有控件,實現(xiàn)的部分代碼如下:public void initComponent() Container contentPane = this.getContentPane();contentPane.setLayout(null);labelUsername= new JLabel(管理員帳號:);labelPassword= new JLabel(管理員密碼:);txtUsername= new
22、JTextField();txtPassword= new JPasswordField();btnConfirm= new JButton(確定);btnCancel= new JButton(退出); 4.2 操作主界面的設(shè)計在操作主界面,可以進行各種操作,包括存款、取款、開戶、銷戶、修改信息、顯示全部和查找,而且界面簡潔易于操作,如圖3所示。圖3 操作主界面示意圖在設(shè)計銀行帳目管理系統(tǒng)的操作主界面時,先利用public class MainWindow extends JFrame implements ActionListener 來定義一個主窗口類MainWindow,然后在里面定義
23、所需要的全部變量,變量定義為private型。在MainWindow類中,功能刻畫的代碼如下:public MainWindow(String title) setTitle(title);setSize(WIDTH,HEIGHT);setResizable(false);setDefaultCloseOperation(EXIT_ON_CLOSE);initMenu();initComponent();center();loadAccountData();loadBillData();操作主界面的設(shè)計主要包括幾部分:一是菜單欄的設(shè)計,二是中間部分表格的設(shè)計,三是下面部分按鈕的設(shè)計。主要設(shè)計過
24、程如下:菜單欄的設(shè)計是先創(chuàng)建好菜單項,然后把菜單項添加到對應(yīng)的菜單中,再將菜單添加至菜單欄中,最后把菜單添加到主窗體中。設(shè)計好操作主界面后,點擊“查詢統(tǒng)計”按鈕,出現(xiàn)如圖4所示的下拉菜單。圖4 菜單欄示意圖實現(xiàn)的主要代碼如下:public void initMenu() menuBar = new JMenuBar();/創(chuàng)建菜單queryCountMenu = new JMenu(查詢統(tǒng)計); /創(chuàng)建菜單項 queryCountMI = new JMenuItem(查詢統(tǒng)計);/給菜單項添加監(jiān)聽器,監(jiān)聽菜單項的單擊事件queryCountMI.addActionListener(this);
25、/菜單項添加到菜單里面queryCountMenu.add(queryCountMI);setJMenuBar(menuBar);操作主界面的表格如圖5所示。表格主要包含了姓名、帳號、卡上余額、家庭住址和電話,主要是方便查看信息。圖5 表格示意圖表格部分的設(shè)計主要代碼如下:/設(shè)置表格的列標題final String strColName = 姓名, 帳號, 卡上余額, 家庭住址, 電話;/獲得表格的所顯示數(shù)據(jù)的TableModeldm = (DefaultTableModel) table.getModel();/把列標題添加到表格中for ( int i = 0;i strCOLName.l
26、ength; i+ )dm.addColumn(strCOLNamei);窗體下面部分的控件的設(shè)計主要就先將控件創(chuàng)建出來,再將不同功能的控件分組放置,便于操作。面板被只能創(chuàng)建一次,如果已經(jīng)創(chuàng)建了該這塊面板,直接返回創(chuàng)建好了的面板,提高效率。其實現(xiàn)代碼如下:if(bottomPanel != null)return bottomPanel;該面板的控件分三部分創(chuàng)建,分別放置在三個面板中,將實現(xiàn)不同功能的控件放在不同的面板中,達到界面美觀,操作方便的目的。如圖6所示。圖6操作主界面的面板示意圖三個面板通過程序中的三個方法 getBottomLeftPanel(), getBottomMiddleP
27、anel()以及getBottomRightPanel()。這樣的劃分增強了程序的可以讀性,不同的方法實現(xiàn)不同的功能,一目了然。實現(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è)計4.3.1 顯示全部的功能實現(xiàn)在實現(xiàn)存款、取款、銷戶和修改信息的時候都需要顯示出表格中的信息,然后選擇一個帳戶后進行操作。點擊如圖3操作主界面的“顯示全部”按鈕,在表格中出現(xiàn)已經(jīng)存在的信息,當存款、取款、銷戶和修改信息等操作的時候,顯示的信息會發(fā)生變化,這主要是隨著操作的進行,系統(tǒng)會清除以前的數(shù)據(jù)。實現(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);/顯示出所有帳戶數(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 開戶窗口的設(shè)計與實現(xiàn)4.3.3 銷戶窗口的設(shè)計與實現(xiàn)
30、4.3.4 存款和取款窗口的設(shè)計與實現(xiàn)存款和取款的操作方法都是一樣的,都是首先在如圖3所示的操作主界面里選中一個需要存款(取款)的帳戶,如圖9所示,然后點擊按鈕(存款或取款按鈕),彈出輸入密碼的信息框,帳戶輸入密碼經(jīng)驗證后。圖9帳戶被選中示意圖(藍色標志)在沒有選中帳戶的時候點擊存款按鈕,系統(tǒng)會提示帳戶,實現(xiàn)的代碼為:if(row = -1) /如果沒有選中記錄,提示先選中記錄才能存款JOptionPane.showMessageDialog(this,請先選擇要存款的帳戶!); 選中要存款的帳戶后,點擊存款按鈕,彈出輸入密碼框,帳戶要輸入密碼驗證后才能存款操作,當沒有輸入的密碼或者輸錯3次,
31、會自動退出系統(tǒng),實現(xiàn)的代碼如下:else/根據(jù)選擇的行獲得標識該帳戶的唯一IDString delId = (String)dm.getValueAt(table.getSelectedRow(), 1);/根據(jù)ID在帳戶鏈表中找到該帳戶并返回該帳戶的引用while(iterator.hasNext()account = (Account)iterator.next();if(account.getId().equals(delId) break;/找到要存款的帳戶后,要用戶輸入密碼確認進行存款操作int number = 0;while(true) String strPassword =
32、JOptionPane.showInputDialog(this,請輸入密碼:); if(strPassword = null) return; else if (account.getPassword().equals(strPassword) break; else if(+number) 3) JOptionPane.showMessageDialog(this,密碼錯誤!請重新輸入!); continue; JOptionPane.showMessageDialog(this,密碼輸錯三次,帳號被鎖定!);return;驗證密碼通過后,在輸入框中輸入存款金額,金額必須為數(shù)字,如果輸入其
33、他信息,系統(tǒng)會報錯,如圖10所示。圖10操作錯誤提示框?qū)崿F(xiàn)的代碼如下:/存款數(shù)目只能是數(shù)字String strNumber = null;while (true) strNumber = JOptionPane.showInputDialog(this, 請輸入存款金額:);if(strNumber = null) return; else if (strNumber.matches(1-90-9*) break; JOptionPane.showMessageDialog(this, 輸入錯誤!請輸入數(shù)字!);通過account.setMoney(account.getMoney() + I
34、nteger.parseInt(strNumber);來實現(xiàn)存款操作。存款完后顯示一張存取信息表,如圖11所示。產(chǎn)生的存取清單會存儲到存取清單鏈表中去,點擊“顯示全部”按鈕,顯示新的信息,此時的卡上余額信息已經(jīng)發(fā)生變化,通過圖11和圖12可以發(fā)現(xiàn)金額的變化。圖11存款后的信息表圖12 卡上余額變化實現(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(存款);/保存帳戶信息到文件FileOutputStream fos = new FileOutputStream(file);ObjectOutputStream oos = new ObjectOutputStream (fos);oos.writeObject(listAccount);oos.close();4.3.5 修改信息窗口的設(shè)計與實現(xiàn)修改信息的窗口和開戶窗口是一樣的,他們繼承于同一個類,但是他們完成的功能不一樣。點擊如圖3所示操作主界面的“修改密碼”按鈕,彈出輸入密碼提示框,驗證后可以修改用戶名、密
36、碼、聯(lián)系電話和家庭住址,點擊“確定”按鈕后顯示修改信息成功。但是帳戶沒有權(quán)力利修改帳號和存款金額。修改窗口如圖12所示: 圖12 修改信息窗口主要功能實現(xiàn)代碼與開戶的功能代碼相似,不同的地方是最后只對帳戶信息進行更新,而不是新添加帳戶,如下:/保存此帳戶信息的更新account.setName(getAccountName();/更改帳戶的姓名account.setPassword(getPassword();/更改帳戶的密碼account.setPhone(getPhone();/更改帳戶的電話號碼account.setAddress(getAddress();/更改帳戶的住址/在鏈表中更新
37、該帳戶的信息data.getAccountList().set(pos,account);/保存帳戶信息到文件4.3.6 查詢功能的實現(xiàn)在圖3所示的操作主界面,點擊“用戶查詢”或“查找”都能進行查找操作,查找的時候必須選中一個查詢方式,并且必須輸入查找的關(guān)鍵字,否則會產(chǎn)生如圖13的提示框。圖13提示信息框代碼如下:if(getInput().trim().length() = 0) JOptionPane.showMessageDialog(this,請輸入查詢關(guān)鍵字!);return;帳戶可以通過四種方式來查詢,分別是查詢姓名,查詢帳號,查詢電話號碼和查詢家庭住址。當查詢結(jié)束為,為保證信息的
38、安全,會清除表格中以前的數(shù)據(jù),代碼如下:while(table.getRowCount() != 0) dm.removeRow(0);根據(jù)查詢方式進行查詢,并在表格中顯示出來,當查找方式為姓名時的代碼如下:/根據(jù)用戶選擇的單選按鈕 進行查詢,在表格中顯示符合條件的記錄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 查詢統(tǒng)計的實現(xiàn)在如圖3所示的操作主界面單擊菜單上的“查詢統(tǒng)計”,可以完成對帳戶數(shù)的統(tǒng)計,代碼如下:private void doCount() JOptionPane.showMessageDialog(this,共有+AccountData.getInstance().getCount()+個帳戶!);5 數(shù)據(jù)保存機制-采用鏈表和輸入輸出流銀行帳目管理系統(tǒng)采用輸入輸出流對數(shù)據(jù)進行存取。I/O流提供一條通道程序,可以使用這條通道把與源中的字符序列送
40、到目的地。把輸入流的指向稱做源,程序從指向源的輸入流中讀取源中的數(shù)據(jù)。而輸出流的指向是字節(jié)要去的目的地,程序通過向輸出流中寫入數(shù)據(jù)把信息傳遞到目的地。程序中用到的是I/O流中的對象流,即對象輸入流(ObjectInputStream)和對象輸出流(ObjectOutputStream)。當使用對象流寫入和讀出數(shù)據(jù)時,要保證對象是序列化的,一個類如果實現(xiàn)了Serializable接口,則這個類創(chuàng)建的對象就是序列化的對象。對象輸出流使用writeObject(Object obj)方法將一個對象obj寫入到一個文件,對象輸入流使用readObject(Object obj)方法讀取一個對象到程序中
41、。 在程序中對數(shù)據(jù)的操作是使用鏈表來實現(xiàn)的,所有對數(shù)據(jù)的操作都能在鏈表中表現(xiàn)出來,如數(shù)據(jù)的增加、刪除、修改等。程序中有兩張鏈表存儲帳戶數(shù)據(jù)的鏈表(listAccount)和存儲所有存取清單的帳單鏈表(BillList),鏈表是通過Java.util包中的LinkedList類來創(chuàng)建。用戶的所有操作都被記錄在這兩張鏈表中,當鏈表中的內(nèi)容發(fā)生改變時,程序會調(diào)用對象輸出流的writeObject(Object obj)方法將文件中的內(nèi)容更新,從而實現(xiàn)數(shù)據(jù)的一致性。在存款,取款,修改信息還有銷戶的時候首先要在存取帳戶信息的鏈表中找到這個相對應(yīng)的帳號,然后在進行操作。借助Iterator類實現(xiàn)遍歷鏈表,
42、一個鏈表對象可以使用iterator()方法獲取一個Iterator對象,使用next()方法遍歷鏈表。帳戶數(shù)據(jù)的鏈表listAccount建立的代碼如下:/存儲帳戶數(shù)據(jù)的鏈表,且只能存儲Account類private LinkedList listAccount = new LinkedList();在鏈表中查詢帳戶的代碼為:以銷戶為例Iterator iterator = data.getAccountList().iterator();/根據(jù)選擇的行獲得標志該帳戶的唯一IDString delId = (String)dm.getValueAt(table.getSelectedRow(
43、),1);/根據(jù)ID在帳戶鏈表中找到該帳戶并返回該帳戶的引用while (iterator.hasNext()account = (Account) iterator. next(); if(account.getId().equals(delId)建立新的帳戶并把它保存在鏈表,實現(xiàn)的代碼如下:public void addAccount(Account account) listAccount.add(account)讀取帳戶信息并保存到鏈表,實現(xiàn)的代碼如下:FileInputStream fis = new FileInputStream(file);ObjectInputStream o
44、is = new ObjectInputStream (fis);listAccount = (LinkedList)ois.readObject();ois.close();6 測試6.1 測試環(huán)境銀行帳目管理系統(tǒng)測試的環(huán)境是:內(nèi)存512M,硬盤80G,JDK1.5.0_04以及eclipse漢化版,操作系統(tǒng)為Microsoft Windows XP professional上正常運行。6.2 測試結(jié)果銀行帳目管理系統(tǒng)能夠按照用戶的需求實現(xiàn)各種功能,在登錄以前運行整個系統(tǒng),運行通過后彈出管理員登錄框,輸入姓名和密碼,然后點擊“確定”按鈕,當驗證通過后,進入操作主界面??蛇M行存款、取款、開戶、
45、銷戶、修改信息、查詢和統(tǒng)計功能。在進行存款、取款、銷戶和修改信息時首先都必須選中一個帳戶,然后再進行操作,通過點擊“修改信息”按鈕來查看具體的變化。在存款時當用戶沒有設(shè)置密碼時,默認密碼是000000,用戶可以通過點擊“修改信息”按鈕來修改自己的密碼。在輸入密碼時設(shè)置了輸入次數(shù),當超過輸入次數(shù)后,帳戶被鎖定。進行查找操作時,可以通過兩種方式,一是通過查找?guī)ぬ枴⑿彰吐?lián)系電話來查找?guī)?,二是通過查找住址來進行模糊查詢,找到一些相匹配的帳戶系統(tǒng)在上述軟硬件環(huán)境下對系統(tǒng)的五個模塊系統(tǒng)管理、帳目管理、用戶查詢、統(tǒng)計和幫助進行測試和運行,結(jié)果能達到預(yù)期目標。結(jié) 論到現(xiàn)在,銀行帳目管理系統(tǒng)能夠完成用戶所要
46、求實現(xiàn)的功能,能夠進行系統(tǒng)管理操作來退出系統(tǒng);實現(xiàn)帳目管理從而對開戶、銷戶、存款、取款還有修改信息進行操作,除了開戶功能在進行銷戶等操作時必須先選擇一個帳戶然后輸入密碼進行驗證后才能進行下一步的操作;實現(xiàn)了用戶查詢,可以通過四種方式:姓名查詢、地址查詢、電話查詢還有帳戶查詢,在查詢的時候先選擇查詢方式然后必須輸入關(guān)鍵字才能進行查詢。最后實現(xiàn)了查詢統(tǒng)計功能,通過這個功能能夠查詢到當前的帳戶數(shù)量。在設(shè)計銀行帳目管理系統(tǒng)時,多次用到繼承,很多功能實現(xiàn)的代碼是相似的,對數(shù)據(jù)的操作是使用鏈表來實現(xiàn)的,所有對數(shù)據(jù)的操作都能在鏈表中表現(xiàn)出來,如數(shù)據(jù)的增加、刪除、修改等。但是在開發(fā)實現(xiàn)時還是遇到了很多料想不到
47、的問題,在這里很感謝指導(dǎo)老師的指導(dǎo)和幫助,讓我能夠及時改正錯誤,最終完成系統(tǒng)所能展示的功能。但是還是存在一些不足,幫助模塊里面涉及到的關(guān)于功能還沒有出來。在設(shè)計完整個系統(tǒng)后,不僅加深了以前所學的理論知識,也學到了很多新的知識,提高自己全面思考和實踐能力。為了鞏固和提高自身的能力,復(fù)習和常做項目是必不可少的,同時要虛心學習,不驕傲自滿,認真聽取他人的建議。參考文獻1 汪志達.Java程序設(shè)計項目化教程M.北方交通大學出版社,2003。2 吳其慶.JAVA編程思想與實踐M.冶金工業(yè)出版社,2002。3 孫印杰,劉斌,孫玉強等.Java編程案例精解M.電子工業(yè)出版社,2005。4 陸正五,蔣武等.Java項目開發(fā)實踐M.中國鐵道出版社,2004。5 張懷慶.Java案例精釋150例M.冶金工業(yè)出版社,2005。6 陳剛.Eclipse從入門到精通M.清華大學出版社,2005。7 張云濤,龔玲.Eclipse精要與高級開發(fā)技術(shù)M.電子工業(yè)出版社,2005。8 周競濤.Eclipse完全手冊M.電子工業(yè)出版社,2006。9 耿祥義,張躍平,王克宏.JAVA 2 實用教程M.清華大學出版社,2004。第18頁 共23頁
- 溫馨提示:
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. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 統(tǒng)編版選擇性必修下冊《孔雀東南飛》課件
- 案例分析PPT模版
- 民生附加醫(yī)樂保醫(yī)療保險產(chǎn)品主要特色基本形態(tài)投保案例增值服務(wù)介紹課件
- 乳腺癌新輔助化療共識與進展課件
- 2021 2022學年新教材高中物理第2章勻變速直線運動的研究4自由落體運動ppt課件新人教版必修第一冊
- 《公司金融》資本預(yù)算
- 工程安全與結(jié)構(gòu)健康監(jiān)測
- 防水閘門制造取費、工期、質(zhì)量保證工作匯報
- 水處理技術(shù)基礎(chǔ)
- 腘窩囊腫綜述中英文對照-課件
- 平面構(gòu)成基本形
- 奧運福娃簡介
- 課題2元素 (3)
- “相約中秋”流程
- 勞動爭議處理課件