ATM柜員機(jī)模擬程序 課程設(shè)計(jì)報(bào)告
《ATM柜員機(jī)模擬程序 課程設(shè)計(jì)報(bào)告》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《ATM柜員機(jī)模擬程序 課程設(shè)計(jì)報(bào)告(18頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 《Java程序設(shè)計(jì)》 課程設(shè)計(jì)報(bào)告 題目 ATM柜員機(jī)模擬程序 姓名 學(xué)號(hào) 性別 所在班級(jí) 指導(dǎo)教師
2、 二〇一二年十二月二十九日 目錄 一 前言 1 1.1 課程設(shè)計(jì)題目 1 1.2 課程設(shè)計(jì)完成地點(diǎn) 1 1.3 系統(tǒng)概述 1 1.3.1課程設(shè)計(jì)介紹 1 1.3.2 課程設(shè)計(jì)目的 1 1.3.3 課程設(shè)計(jì)內(nèi)容 2 1.4 相關(guān)技術(shù) 2 二 需求分析 3 2.1 功能需求 3 2.2 界面需求 3 2.2.1窗體的設(shè)計(jì) 4 2.2.2窗體的主要結(jié)構(gòu)的設(shè)計(jì) 4 三 功能設(shè)計(jì) 5 3.1 系統(tǒng)總體結(jié)構(gòu) 5 3.2 系統(tǒng)模塊 5 3.3 主要相關(guān)類(lèi) 6 四 詳細(xì)設(shè)計(jì) 8 4.1登陸頁(yè)面模塊設(shè)計(jì) 8 4.2選擇
3、服務(wù)模塊設(shè)計(jì) 9 4.3取款模塊設(shè)計(jì) 10 4.4修改密碼模塊設(shè)計(jì) 11 4.5退卡模塊設(shè)計(jì) 12 4.6異常處理情況說(shuō)明 12 4.7系統(tǒng)實(shí)現(xiàn)與測(cè)試 12 五 總結(jié) 14 5.1遇到的問(wèn)題及解決辦法 14 5.2心得體會(huì) 14 六 感謝 15 16 一 前言 1.1 課程設(shè)計(jì)題目 ATM柜員機(jī)模擬程序 1.2 課程設(shè)計(jì)完成地點(diǎn) 文理樓A504 1.3 系統(tǒng)概述 1.3.1課程設(shè)計(jì)介紹 本次JAVA游戲開(kāi)發(fā)課程設(shè)計(jì)在文理樓機(jī)房進(jìn)行,為期一周。這次課程設(shè)計(jì)的主要目的是結(jié)合面向?qū)ο蟪绦蛟O(shè)計(jì)課程,培養(yǎng)我們面向?qū)ο筌浖_(kāi)發(fā)的思維,初步了解軟件開(kāi)發(fā)的
4、一般流程,提高用JAVA編程的實(shí)際動(dòng)手能力并增強(qiáng)大家對(duì)面向?qū)ο蟮牧私?。這次課程設(shè)計(jì)的主要內(nèi)容是獨(dú)立用JAVA語(yǔ)言開(kāi)發(fā)一個(gè)簡(jiǎn)單的應(yīng)用程序。我所設(shè)計(jì)的是ATM柜員機(jī)。 隨著市場(chǎng)經(jīng)濟(jì)的繁榮發(fā)展,人們物質(zhì)生活得到了極大的提高,手中剩余資金日益增多,受傳統(tǒng)觀(guān)念的影響,絕大多數(shù)人喜歡把暫時(shí)不用的資金存入銀行,而在需要現(xiàn)金時(shí)去銀行提現(xiàn),這就導(dǎo)致了銀行業(yè)務(wù)的急劇增加。最然銀行網(wǎng)點(diǎn)越來(lái)越多,銀行工作人員效率也隨著信息化有明顯增長(zhǎng),但依舊不能及時(shí)滿(mǎn)足廣大儲(chǔ)戶(hù)的需求。而一味的增加營(yíng)業(yè)網(wǎng)點(diǎn),從理論上講雖有緩解此問(wèn)題的功效,但是建立一個(gè)網(wǎng)點(diǎn)需要付出昂貴的資金,還要不斷注入人力資源。這時(shí)候,就迫切需要一種自動(dòng)化的,易操
5、作的,低成本的設(shè)備來(lái)解決這一問(wèn)題,于是ATM柜員機(jī)就這樣應(yīng)運(yùn)而生。 我設(shè)計(jì)的ATM柜員機(jī)主要是由各個(gè)Windows窗口組成,它是由登錄頁(yè)面、選擇服務(wù)、取款、查詢(xún)余額、修改密碼和退卡等功能。它的各種按鈕的事件和功能可以簡(jiǎn)單的模擬ATM柜員機(jī)的要求。 1.3.2 課程設(shè)計(jì)目的 1. 要求學(xué)生自主選擇課題并自行完成操作內(nèi)容,并能達(dá)到舉一反三的目的,完成一個(gè)項(xiàng)目解決一類(lèi)問(wèn)題。培養(yǎng)獨(dú)立的Java語(yǔ)言與算法設(shè)計(jì)方法,具備初步的獨(dú)立分析和設(shè)計(jì)能力; 2.學(xué)習(xí)軟件開(kāi)發(fā)過(guò)程的問(wèn)題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能;培養(yǎng)學(xué)生設(shè)計(jì)分析、設(shè)計(jì)方法。設(shè)計(jì)操作和測(cè)試、設(shè)計(jì)過(guò)程的觀(guān)察理解和歸納能力。
6、 3.掌握J(rèn)AVA程序設(shè)計(jì)基本的基本技能。面向?qū)ο蟮母拍詈头椒?,了解多線(xiàn)程、安全和網(wǎng)絡(luò)等編程技術(shù)。培養(yǎng)學(xué)生分析問(wèn)題和解決問(wèn)題的能力。訓(xùn)練綜合運(yùn)用所學(xué)的理論知識(shí)和方法進(jìn)行獨(dú)立分析和解決問(wèn)題的能力。 4.要求學(xué)生能夠全面、深入理解和熟練掌握所學(xué)內(nèi)容,并能夠用其分析、設(shè)計(jì)和解答類(lèi)似問(wèn)題。訓(xùn)練用系統(tǒng)的觀(guān)點(diǎn)和軟件開(kāi)發(fā)一般規(guī)范進(jìn)行軟件開(kāi)發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風(fēng)。 1.3.3 課程設(shè)計(jì)內(nèi)容 設(shè)計(jì)一個(gè)ATM柜員機(jī)模擬程序,使用圖形用戶(hù)界面。當(dāng)輸入給定的卡號(hào)和密碼(初始卡號(hào)為000000密碼為123456)時(shí),系統(tǒng)能登錄ATM柜員機(jī)系統(tǒng),用戶(hù)需按照以下規(guī)則進(jìn)行: 1.查詢(xún)余額:初
7、始余額為10000元 2.ATM取款:每次取款金額為100的倍數(shù),總額不超過(guò)5000元,支取金額不允許透支。 3.ATM存款:不能出現(xiàn)負(fù)存款。 4.修改密碼:新密碼長(zhǎng)度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。 1.4 相關(guān)技術(shù) JAVA語(yǔ)言的特點(diǎn):JAVA是一種簡(jiǎn)易的、完全面向?qū)ο蟆踩煽?、分布式的、多線(xiàn)程的、高性能的、主要面向Internet且具有最好的跨平臺(tái)可移植性的動(dòng)態(tài)程序設(shè)計(jì)開(kāi)發(fā)工具。 1.java語(yǔ)言簡(jiǎn)單易學(xué)。java語(yǔ)言的語(yǔ)法與C語(yǔ)言和C++語(yǔ)言很接近,使得多數(shù)程序員很容易學(xué)習(xí)和使用java。
8、另一方面,java丟棄了C++中很少使用的,很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動(dòng)的強(qiáng)制類(lèi)型轉(zhuǎn)換。特別地。java語(yǔ)言不使用指針,并提供了自動(dòng)的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂(yōu)。 2.跨平臺(tái)。是指Java能運(yùn)行于不同的平臺(tái)。Java引進(jìn)虛擬機(jī) 原理,并運(yùn)行于虛擬機(jī),實(shí)現(xiàn)不同平臺(tái)的Java接口之間。使用Java編寫(xiě)的程序能在世界范圍內(nèi)共享。Java的數(shù)據(jù)類(lèi)型與 機(jī)器無(wú)關(guān),Java虛擬機(jī)(Java Virtual Machine)是建立在硬件和操作系統(tǒng)之上,實(shí)現(xiàn)Java二進(jìn)制代碼的解釋執(zhí)行功能, 提供于不同平臺(tái)的接口的。 3.安全性。Java的編程類(lèi)似C++,學(xué)習(xí)過(guò)
9、C++的讀者將很快掌握J(rèn)ava的精髓。Java舍棄了C++的指針對(duì)存儲(chǔ)器地址的直接操作,程序運(yùn)行時(shí),內(nèi)存由操作系統(tǒng)分配,這樣可以避免病毒通過(guò)指針侵入系統(tǒng)。Java對(duì)程序提供了安全管理器,防止程序的非法訪(fǎng)問(wèn)。 4.面向?qū)ο?。Java吸取了C++面向?qū)ο蟮母拍?,將?shù)據(jù)封裝于類(lèi)中,利用類(lèi)的優(yōu)點(diǎn),實(shí)現(xiàn)了程序的簡(jiǎn)潔性和便于維護(hù)性。類(lèi)的封裝性、繼承性等有關(guān)對(duì)象的特性,使程序代碼只需一次編譯,然后通過(guò)上述特性反復(fù)利用。程序員只需把主要精力用在類(lèi)和接口的設(shè)計(jì)和應(yīng)用上。Java提供了眾多的一般對(duì)象的類(lèi),通過(guò)繼承即可使用父類(lèi)的方法。在Java中,類(lèi)的繼承關(guān)系是單一的非多重的,一個(gè)子類(lèi)只有一個(gè)父類(lèi),子類(lèi)的父
10、類(lèi)又有一個(gè)父類(lèi)。Java提供的Object類(lèi)及其子類(lèi)的繼承關(guān)系如同一棵倒立的樹(shù)形,根類(lèi)為Object類(lèi),Object類(lèi)功能強(qiáng)大,經(jīng)常會(huì)使用到它及其它派生的子類(lèi)。 5.分布式。Java建立在擴(kuò)展TCP/IP網(wǎng)絡(luò)平臺(tái)上。庫(kù)函數(shù)提供了用HTTP和FTP協(xié)議傳送和接受信息的方法。這使得程序員使用網(wǎng)絡(luò)上的文件和使用本機(jī)文件一樣容易。 6.動(dòng)態(tài)。java程序的基本組成單元就是類(lèi),有些類(lèi)是自己編寫(xiě)的,有些是從類(lèi)庫(kù)中引入的,而類(lèi)又是運(yùn)行時(shí)動(dòng)態(tài)裝載的,這就使得Java可以在分部環(huán)境中動(dòng)態(tài)的維護(hù)程序及分類(lèi),而不像C++那樣,沒(méi)檔期類(lèi)庫(kù)升級(jí)以后,如果想讓程序具有新類(lèi)庫(kù)提供的功能,就需要修改程序,重新
11、編譯。 7.多線(xiàn)程。Java是支持多線(xiàn)程的語(yǔ)言。多線(xiàn)程是一種應(yīng)用程序設(shè)計(jì)方法。線(xiàn)程是一大進(jìn)程里分出來(lái)的,小的、獨(dú)立的進(jìn)程,使得在一個(gè)程序里可同時(shí)執(zhí)行多個(gè)小任務(wù)。多線(xiàn)程帶來(lái)的好處是具有更好的交互性能和實(shí)時(shí)控制性能。但采用傳統(tǒng)的程序設(shè)計(jì)語(yǔ)言(如:C/C++)實(shí)現(xiàn)多線(xiàn)程程序并非易事。Java實(shí)現(xiàn)了多線(xiàn)程技術(shù),提供了簡(jiǎn)便的實(shí)現(xiàn)多線(xiàn)程的方法,并擁有一組高復(fù)雜性的同步機(jī)制。 8.可以移植的。這種可移植性來(lái)源于體系結(jié)構(gòu)中立性,另外,java還嚴(yán)格規(guī)定了各個(gè)基本數(shù)據(jù)類(lèi)型的長(zhǎng)度。java系統(tǒng)本身也具有很強(qiáng)的可移植性,java編譯器是用java實(shí)現(xiàn)的,java運(yùn)行環(huán)境是用ANSIC實(shí)現(xiàn)的。 二 需求分析
12、2.1 功能需求 本ATM柜員機(jī)的主要功能需求如下所述: 要求使用圖形用戶(hù)界面。當(dāng)輸入給定的卡號(hào)和密碼(初始卡號(hào)為000000和密碼為123456)時(shí),系統(tǒng)能登錄ATM柜員機(jī)系統(tǒng),用戶(hù)可以按照以下規(guī)則進(jìn)行: 1.查詢(xún)余額:初始余額為10000元 2.ATM取款:每次取款金額為100的倍數(shù),總額不超過(guò)5000元,支取金額不允許透支。 3.ATM存款:不能出現(xiàn)負(fù)存款。 4.修改密碼:只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。 2.2 界面需求 以Windows窗口形式顯示,標(biāo)題欄為ATM柜員機(jī)名稱(chēng),右上角有最小化按鈕、最大化按鈕、關(guān)閉按鈕,不同的窗
13、口中有不同的按鈕和選擇菜單。 2.2.1窗體的設(shè)計(jì) 窗體整個(gè)框架使用Frame類(lèi)構(gòu)造,F(xiàn)rame有自己的外邊框和自己的標(biāo)題,創(chuàng)建Frame時(shí)可以指定其窗口標(biāo)題,我創(chuàng)建的窗口標(biāo)題是各個(gè)不同功能的模塊的名字,比如說(shuō)查詢(xún)余額,還有取款等。 每個(gè)Frame在其右上角都有三個(gè)控制圖標(biāo),分別代表將窗口最小化、窗口最大化和關(guān)閉的操作,其中最小化和最大化操作Frame可自動(dòng)完成,而關(guān)閉窗口操作實(shí)現(xiàn)需要書(shū)寫(xiě)有關(guān)的代碼,在我的程序中我采用的是對(duì)WINDOWS_CLOSING事件做出響應(yīng),調(diào)用dispose()方法關(guān)閉窗口。Frame也可以引發(fā)WindowsEvent類(lèi)代表的窗口事件。 2.2.2窗體的主要
14、結(jié)構(gòu)的設(shè)計(jì) 我所設(shè)計(jì)的窗口的主要結(jié)構(gòu)的特點(diǎn)就是每個(gè)窗口都對(duì)應(yīng)著一個(gè)特定的功能。比如說(shuō)報(bào)各種各樣的錯(cuò),還有各種查詢(xún)余額、取款、選擇服務(wù)等,所以它們都是由各種按鈕和文本框,標(biāo)簽組成的,而聯(lián)系各個(gè)窗體成為一個(gè)整體的就是各個(gè)按鈕的監(jiān)聽(tīng)事件。所以整個(gè)設(shè)計(jì)就趨向簡(jiǎn)單化了。 為了定義各個(gè)按鈕所對(duì)應(yīng)的命令和操作,首先需要將各個(gè)按鈕注冊(cè)給實(shí)現(xiàn)了動(dòng)作事件的監(jiān)聽(tīng)接口A(yíng)ctionListener的監(jiān)聽(tīng)者,然后為監(jiān)聽(tīng)者定義actionPerformed(ActionEvent e)方法,在這個(gè)方法中調(diào)用e.getSource()或e.getActionCommand()來(lái)判斷用戶(hù)點(diǎn)擊的菜單子項(xiàng),并完成這個(gè)菜單子項(xiàng)定
15、義的操作(如下圖所示) 請(qǐng)輸入你的卡號(hào): 請(qǐng)輸入你的密碼: 123456 ****** 圖:界面簡(jiǎn)易圖 三 功能設(shè)計(jì) 3.1 系統(tǒng)總體結(jié)構(gòu) 開(kāi) 始 登陸界面 選擇服務(wù) 取 款 查 詢(xún) 余 額 修 改 密 碼 退 卡 結(jié) 束 退出界面 存款 用戶(hù)登錄(輸入賬號(hào)和密碼) 報(bào)錯(cuò)界面 N Y 圖:系統(tǒng)總體結(jié)構(gòu)流程圖 3.2 系統(tǒng)模塊 我所設(shè)計(jì)的ATM柜員機(jī)主要是由登錄頁(yè)面模塊還由選擇服務(wù)模塊組成,其中選擇服務(wù)模塊又由取款模塊、查詢(xún)余額
16、模塊、修改密碼模塊、退卡模塊組成。其功能結(jié)構(gòu)圖如下所示: 登陸界面模塊 選擇服務(wù)模塊 退 卡 模 塊 修 改密碼模塊 取 款 模 塊 存 款 模 塊 查 詢(xún) 余 額 模 塊 圖: ATM功能模塊示意圖 各部分模塊功能如下: 1.登陸界面模塊:用戶(hù)登陸時(shí)所需的界面窗口,能夠輸入用戶(hù)賬號(hào)(000000)和密碼(123456)。 2.選擇服務(wù)模塊:列出所有服務(wù)項(xiàng)供用戶(hù)選擇,分別有存款、取款、查詢(xún)余額、修改密碼和退卡。 3.存款模塊:用戶(hù)可在文本框中輸入想要存的金額。 4
17、.取款模塊:用戶(hù)在文本框中輸入他想取的數(shù)額,(必須是100的倍數(shù),而且每一次最多只能取5000塊)取款時(shí)候也不能超過(guò)卡里的余額,否則將會(huì)報(bào)錯(cuò)。 5.查詢(xún)余額模塊:能夠在用戶(hù)選擇此功能是顯示所剩余額。 6.修改密碼模塊:要求可滿(mǎn)足用戶(hù)修改密碼這一需求,用戶(hù)必須輸入正確的舊密碼且輸入兩次新密碼一致,方可修改。 7.退卡模塊:退出界面。 3.3 主要相關(guān)類(lèi) 1. Java.awt包中的Container類(lèi)可以直接或間接派生出兩個(gè)常用容器:框架(Frame類(lèi))和面板(Panel類(lèi));通過(guò)Frame()創(chuàng)建一個(gè)標(biāo)準(zhǔn)窗口;當(dāng)Frame窗口被創(chuàng)建以后,需要調(diào)用setSize()方法來(lái)設(shè)置窗口大小,
18、并調(diào)用setVisible()來(lái)顯示窗口。 2.面板不是一個(gè)單獨(dú)的窗口,它只包含在窗口中的一個(gè)區(qū)域;最簡(jiǎn)單的創(chuàng)建面板的方式就是通過(guò)面板的構(gòu)造函數(shù)Panel()來(lái)進(jìn)行;必須將面板添加到窗口中。 3.設(shè)置布局管理器,控制組件的大小和位置;調(diào)用setLayout(null);在設(shè)置空布局管理器后,必須對(duì)所有組件調(diào)用setLocation(),setSize()或setBrounds(),將他們定位容器中。 4.Button 類(lèi)有一個(gè)addActionListner(ActionListener)方法;AddActionListner 接口定義了一個(gè)方法actionPerformed,用來(lái)接收一
19、個(gè)ActionEvent。ActionEvent 類(lèi)的getActionCommand()方法返回與動(dòng)作相關(guān)聯(lián)的命令名稱(chēng)。 5.事件類(lèi)型。許多事件類(lèi)在java.awt.event 包中,也有一些事件類(lèi)在A(yíng)PI 的其他地方。對(duì)于每類(lèi)事件,都有一個(gè)接口,這個(gè)接口必須由想接收這個(gè)事件的類(lèi)的對(duì)象實(shí)現(xiàn)。這個(gè)接口還要求定義一個(gè)或多個(gè)方法。當(dāng)發(fā)生特定的事件時(shí),就會(huì)調(diào)用這些方法。 6.文本區(qū)(TextArea)。addTexListener 指定的監(jiān)聽(tīng)者將以和文本域相同的方式接收到關(guān)于擊鍵的通知。你可以給文本區(qū)增加一般的組件監(jiān)聽(tīng)者,然而,由于文本是多行的,按下 Enter 鍵將導(dǎo)致把另一個(gè)字符送入緩沖。
20、 7.Applet 的方法。播放聲音:musicClip.play(); 8.代碼中的Accout類(lèi)、MainFrame類(lèi)、Load類(lèi)、Take類(lèi)、Input類(lèi)、Setpew類(lèi)和Display類(lèi)都繼承了JAVA類(lèi)和JFrame.(詳見(jiàn)下圖所示) 類(lèi)名 功能 方法 Class Accout 創(chuàng)建客戶(hù)初始化客戶(hù)信息功能以及保護(hù)用戶(hù)信息功能 成員變量account、count、password和方法構(gòu)造方法Account() Class MainFrame 構(gòu)造主界面,提供業(yè)務(wù)選擇 構(gòu)造方法MainFrame()和初始化主界面方法initComponents()以
21、及成員變量checked、cunkuan、qiute、qukuan、reset Class Load 實(shí)現(xiàn)登錄功能和登陸界面 Jpassword、accountnum、committ和構(gòu)造方法load()初始化方法initConents Class Take 實(shí)現(xiàn)取款功能 Back、clcar、commit、quite和構(gòu)造方法Take()初始化的initComponents() Class input 實(shí)現(xiàn)存款功能 Clear、commint、str以及構(gòu)造函數(shù)Inputhe()和初始化方法initComponents() Class Disp
22、lay 顯示當(dāng)前余額 Back、qiut、qukuan和構(gòu)造方法Display初始化方法initComponents() Class Setpw 修改密碼功能 成員變量commit、commitpw、jpwcommit、quit等和構(gòu)造方法Setpw()和初始化方法initComponents() 四 詳細(xì)設(shè)計(jì) 4.1登陸頁(yè)面模塊設(shè)計(jì) 與ATM柜員機(jī)打交道比較多的,也是大家對(duì)安全比較關(guān)心的問(wèn)題:密碼。所以第一個(gè)界面就是要輸入密碼和卡號(hào)才能繼續(xù)服務(wù)。 我定義了文本框累的對(duì)象tf1,tf2。抓藥是用于輸入單行的文本;文本區(qū)調(diào)用public String getTex
23、t()方法,獲取用戶(hù)想要的字符串。用來(lái)判斷輸入的密碼和卡號(hào)是否正確,如果不正確的話(huà),則彈出密碼或卡號(hào)錯(cuò)誤的警告框,并用dispose()關(guān)掉窗口。 其方法是: 引入所需要的包 創(chuàng)建一個(gè)公共類(lèi)ATM3繼承JFrame實(shí)現(xiàn)ActionListener接口 創(chuàng)建三個(gè)box類(lèi)對(duì)象 創(chuàng)建兩個(gè)文本框?qū)ο? 創(chuàng)建一個(gè)按鈕對(duì)象1 創(chuàng)建一個(gè)按鈕對(duì)象2 創(chuàng)建該類(lèi)的構(gòu)造函數(shù)接收一個(gè)字符串 調(diào)用本類(lèi)的s 文本框?qū)ο?內(nèi)容為6 文本框?qū)ο?內(nèi)容為6 把盒子類(lèi)名貼出來(lái)賦值給box對(duì)象 新建一個(gè)標(biāo)簽組件("請(qǐng)輸入你的卡號(hào)")添加到容器上 把獲得的類(lèi)名添加到容器上 新建一個(gè)標(biāo)簽("請(qǐng)輸入你的密碼"
24、添加到容器上 把貼出來(lái)的類(lèi)名賦值給box2 把文本框添加到box2 把文本框w添加到box2上 在容器上添加一個(gè)橫向的box組件 把box1添加到basebox上 把按鈕對(duì)象1("確定")加入到容器上 把按鈕對(duì)象2("退卡")加入到容器上 按鈕對(duì)象2注冊(cè)呢監(jiān)聽(tīng)器 添加布局管理器滾動(dòng)條 添加容器窗口監(jiān)聽(tīng) 創(chuàng)建一個(gè)關(guān)閉窗口函數(shù) 調(diào)用System.exit(0); 添加setBounds組件坐標(biāo)是120,125,長(zhǎng)寬是200,175 設(shè)置顯示圖形界面可見(jiàn) 創(chuàng)建事件處理函數(shù) 初始化 選擇各種服務(wù) 如果發(fā)生的事件等于按鈕1 輸入的兩個(gè)卡號(hào)和密碼的變量 則調(diào)用文本框
25、1和文本框2 判斷兩次輸入的卡號(hào)和密碼是否正確 如果輸入的賬號(hào)和密碼正確 清除屏幕 打印出選擇fuwu其他輸出出現(xiàn) 報(bào)輸入密碼或卡號(hào)不正確 4.2選擇服務(wù)模塊設(shè)計(jì) 在選擇服務(wù)模塊中,有各種ATM的服務(wù)功能,只要用戶(hù)在該界面中選擇按鈕,它就會(huì)彈出各個(gè)相應(yīng)的界面。每一個(gè)按鈕都有監(jiān)聽(tīng)器,在選擇了按鈕后,java.awt.event中的ActionEvent類(lèi)創(chuàng)建一個(gè)事件對(duì)象,并將它傳遞給方法public void actionPerformed(ActionEvent e)中的參數(shù)e,監(jiān)視器就會(huì)知道所發(fā)生的事件,對(duì)此事件進(jìn)行處理。 其方法是: 創(chuàng)建一個(gè)公共類(lèi)ATM 引入所需要的
26、bao創(chuàng)建一個(gè)Selection類(lèi)繼承了Frame實(shí)現(xiàn)了Actionlistener接口 創(chuàng)建5個(gè)按鈕對(duì)象 創(chuàng)建6個(gè)panel對(duì)象 添加各種服務(wù)功能 按鈕1設(shè)為"存款") 添加到panel1上 按鈕2設(shè)為"取款") 添加到panel2上 按鈕三定義為"查詢(xún)余額"); 添加到panel3上 按鈕4定義為退出 添加到panel4上 按鈕5定義為"修改密碼") 添加到panel5上 把所有panel添加到本容器上 添加關(guān)閉窗口的成員函數(shù) 按鈕1到按鈕全部注冊(cè)監(jiān)聽(tīng) 設(shè)置邊界坐標(biāo)為150,150,長(zhǎng)寬為200,200 顯示所有組件 創(chuàng)建一個(gè)事件處理函數(shù)如果點(diǎn)擊按鈕一
27、 調(diào)用清屏函數(shù)顯示取款頁(yè)面 如果點(diǎn)擊按鈕三清屏顯示查詢(xún)余額頁(yè)面 如果點(diǎn)擊按鈕4 則顯示退出頁(yè)面 如果點(diǎn)擊按鈕5則顯示修改密碼頁(yè)面 4.3取款模塊設(shè)計(jì) 在取款模塊中,和其他的界面也是同樣的結(jié)構(gòu)。也是有一個(gè)文本框和一個(gè)按鈕還有標(biāo)簽組成的。用戶(hù)在文本框中輸入他想取的數(shù)額,但是必須是100的倍數(shù),而且每一次最多只能取5000塊。當(dāng)然了取款的時(shí)候也不能超過(guò)卡里的余額,再就是卡里的余額不可以為負(fù),否則就會(huì)彈出報(bào)錯(cuò)的窗口。 其方法是: 引入所需要的包 創(chuàng)建一個(gè)類(lèi)名為GetBalance繼承了Frame實(shí)現(xiàn)了Actionlisten接口 創(chuàng)建三個(gè)box對(duì)象 一個(gè)按鈕對(duì)象 一個(gè)文本框?qū)ο?/p>
28、 一個(gè)Account對(duì)象 創(chuàng)建一個(gè)構(gòu)造函數(shù) 創(chuàng)建一個(gè)面板 標(biāo)簽為請(qǐng)輸入你想取錢(qián)的數(shù)目 創(chuàng)建一個(gè)文本框 把文本框和按鈕添加到panel上pannel添加到本容器上 按鈕1注冊(cè)呢監(jiān)聽(tīng) 創(chuàng)建窗口關(guān)閉函數(shù) 調(diào)用顯示函數(shù) 創(chuàng)建一個(gè)事件處理函數(shù) 用if語(yǔ)句判斷如果觸發(fā)按鈕一 賬戶(hù)錢(qián)小于0 清屏 發(fā)出錯(cuò)誤 其他如果 取錢(qián)的數(shù)額不大于余額 取錢(qián)數(shù)為100的倍數(shù)或不大于5000 清屏發(fā)出消息 充值余額 不顯示組件 返回選擇服務(wù)窗口 清屏 發(fā)出消息 引入所需要的包創(chuàng)建一個(gè)公共類(lèi)名為修改密碼繼承了Frame實(shí)現(xiàn)了接口A(yíng)ctionListener 引入所需要的包創(chuàng)建一個(gè)公
29、共名為查詢(xún)的類(lèi)繼承了frame實(shí)現(xiàn)了接口A(yíng)ctionlistener 4.4修改密碼模塊設(shè)計(jì) 在修改密碼模塊中,首先你必須要輸入你的舊密碼是否正確,否則就會(huì)報(bào)錯(cuò)。再一個(gè)就是要兩次輸入你的新密碼,且兩次藥匹配,否則也會(huì)報(bào)錯(cuò),然后再重新回到修改密碼的界面。 其方法是: 創(chuàng)建一個(gè)名為 Account的類(lèi) 定義一個(gè)私有的字符串用來(lái)表示信用卡號(hào) 創(chuàng)建一個(gè)私有的字符串用來(lái)表示客戶(hù)姓名 創(chuàng)建一個(gè)私有的字符串用來(lái)表示客戶(hù)密碼 創(chuàng)建一個(gè)私有的字符串用來(lái)表示卡里金額 創(chuàng)建一個(gè)構(gòu)造函數(shù)用來(lái)接收卡號(hào)姓名密碼和金額 創(chuàng)建一個(gè)取得卡號(hào)的成員方法 創(chuàng)建一個(gè)用來(lái)取得密碼的成員函數(shù) 創(chuàng)建一個(gè)用來(lái)取得姓名
30、的成員函數(shù) 創(chuàng)建一個(gè)用來(lái)取得密碼的成員函數(shù) 創(chuàng)建一個(gè)用來(lái)取得余額的成員函數(shù) 創(chuàng)建一個(gè)得到剩余的錢(qián)的數(shù)目的成員函數(shù) 創(chuàng)建一個(gè)用來(lái)重置密碼成員函數(shù) 4.5退卡模塊設(shè)計(jì) 退卡模塊相對(duì)其他模塊來(lái)說(shuō)較為簡(jiǎn)單,只需在選擇服務(wù)模塊選擇退卡就可以了。 其方法是: 如果是按鈕4,則退出。 4.6異常處理情況說(shuō)明 1.打開(kāi)、保存文件時(shí)的異常處理 需要處理的異常:IOException 2.數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)時(shí)的異常處理 需要處理的異常:SQLException 3.加載類(lèi)時(shí)的異常處理 需要處理的異常:ClassNotFindException,當(dāng)應(yīng)用程序試圖使用Class類(lèi)中的forName
31、方法通過(guò)字符串名加載類(lèi)時(shí),但是沒(méi)有找到具有指定名稱(chēng)的類(lèi)的定義。 4.加載URL時(shí)的異常 需要處理的異常:MalformedURLException,拋出這一異常指示出現(xiàn)了錯(cuò)誤的 URL?;蛘咴谝?guī)范字符串中找不到任何合法協(xié)議,或者無(wú)法分析字符串。 4.7系統(tǒng)實(shí)現(xiàn)與測(cè)試 1.打開(kāi)DOS,編譯運(yùn)行程序后,將會(huì)看到如下的界面,如圖1所示。如果輸入的密碼或卡號(hào)不正確的話(huà)就會(huì)報(bào)右下圖的錯(cuò)誤。 圖1 主界面—登陸頁(yè)面 2.選擇服務(wù)界面效果 當(dāng)輸入的密碼和卡號(hào)正確,單擊確定后就會(huì)進(jìn)入到選擇服務(wù)的界面,如圖2所示。然后就可以選擇所需要的服務(wù)了。 圖2 選擇服務(wù)界面 3.取款界面
32、,如圖3所示。 圖3 取款界面 4.當(dāng)輸入的錢(qián)數(shù)不是100的倍數(shù)或每一次大于5000時(shí)就會(huì)報(bào)圖4的錯(cuò)誤。 圖4 輸入錯(cuò)誤1 5.當(dāng)取款時(shí)如果超過(guò)卡里的余額的話(huà)就會(huì)報(bào)圖5的錯(cuò)誤。 圖5 輸入錯(cuò)誤2 6.查詢(xún)余額界面,如圖6所示。 圖6 查詢(xún)余額界面 經(jīng)過(guò)測(cè)試,所有的功能基本上都實(shí)現(xiàn)了,而且運(yùn)行正常。 五 總結(jié) 5.1遇到的問(wèn)題及解決辦法 在此次課程設(shè)計(jì)中,我遇到了一些問(wèn)題,如:對(duì)于面向?qū)ο蟮姆椒私獠粔蛲笍?,運(yùn)用到實(shí)際的軟件開(kāi)發(fā)中存在著困難;對(duì)于Java語(yǔ)言,只學(xué)習(xí)到了一些最基本的知識(shí),這導(dǎo)致編寫(xiě)程序時(shí)經(jīng)常出現(xiàn)一些語(yǔ)法錯(cuò)誤,而且要在短時(shí)間內(nèi)用Java語(yǔ)
33、言來(lái)設(shè)計(jì)一個(gè)具體的系統(tǒng)是一個(gè)較大的挑戰(zhàn);還有對(duì)于正規(guī)開(kāi)發(fā)一個(gè)系統(tǒng)的流程不熟悉,適應(yīng)起來(lái)比較慢,編寫(xiě)各個(gè)模塊相對(duì)應(yīng)的操作時(shí),自己感覺(jué)難以動(dòng)手,這表明所學(xué)的知識(shí)不能靈活運(yùn)用到實(shí)際中。 對(duì)于以上的問(wèn)題,自己有清楚的認(rèn)識(shí),解決辦法是需要大量閱讀相關(guān)的書(shū)籍,對(duì)于書(shū)上以及網(wǎng)站上下載的資料中的Java實(shí)例必須有清楚的理解,還有就是多跟精通此方面的老師和同學(xué)交流,取其精華。對(duì)于實(shí)際動(dòng)手能力與系統(tǒng)開(kāi)發(fā)的流程的適應(yīng),必須多進(jìn)行實(shí)際的練習(xí)與操作,才能有大的進(jìn)步。 5.2心得體會(huì) 在這次的學(xué)年度課程設(shè)計(jì)中,我主要運(yùn)用了Java語(yǔ)言的界面設(shè)計(jì)、異常處理、Awt控件、Swing控件,輸入輸出流等,綜合運(yùn)用了Java
34、語(yǔ)言。我深刻感受到了面向?qū)ο笳Z(yǔ)言中類(lèi)庫(kù)的強(qiáng)大功能,掌握了運(yùn)用Java中的類(lèi)實(shí)現(xiàn)某些基本功能,并學(xué)會(huì)了自己查詢(xún)使用類(lèi)的方法,為以后的面向?qū)ο笳Z(yǔ)言的自學(xué)奠定了基礎(chǔ)。 通過(guò)一周的課程設(shè)計(jì)我真的學(xué)到了很多的東西,當(dāng)然這也和老師同學(xué)的幫助是離不開(kāi)的。 這次的課程設(shè)計(jì)中,我查閱了很多資料,很好的鍛煉了自己查閱資料的能力和快速吸收新知識(shí)的能力。同時(shí)也加深了與同學(xué)的緊密交流。本次主要是運(yùn)用JAVA語(yǔ)言來(lái)編寫(xiě)簡(jiǎn)單應(yīng)用程序,當(dāng)然還可以用其他的技術(shù)來(lái)輔助。在這個(gè)簡(jiǎn)單應(yīng)用程序當(dāng)中,我除了運(yùn)用Java外還使用了Swing控件。輸入輸出流等技術(shù)。由于以前學(xué)的不是很扎實(shí),而且還有些知識(shí)我們都是沒(méi)有學(xué)過(guò)的,這就要求我們?nèi)?/p>
35、查相關(guān)的書(shū)籍,還有就是和同學(xué)之間的交流。正因?yàn)檫@樣,才鍛煉了我的自學(xué)的能力,還有就是加深了我對(duì)各個(gè)知識(shí)點(diǎn)的認(rèn)識(shí),并且提高了我對(duì)專(zhuān)業(yè)的學(xué)習(xí)的興趣,為我以后的學(xué)習(xí)打下了基礎(chǔ)。此外,我還感受到了面向?qū)ο笳Z(yǔ)言的類(lèi)庫(kù)的強(qiáng)大的功能,掌握了運(yùn)用JAVA中的類(lèi)實(shí)現(xiàn)某些基本功能,并學(xué)會(huì)了自己查詢(xún)使用類(lèi)的方法,也就是要會(huì)用API文檔,為以后更好的學(xué)習(xí)面向?qū)ο笳Z(yǔ)言奠定了基礎(chǔ)。 通過(guò)將近一周的努力,這次課程設(shè)計(jì)終于結(jié)束了,在這個(gè)過(guò)程當(dāng)中,我學(xué)到了很多的知識(shí),同時(shí)也感謝我的同學(xué)的幫助和指導(dǎo)。在以后的學(xué)習(xí)當(dāng)中,我會(huì)更加努力的學(xué)習(xí)好專(zhuān)業(yè)知識(shí),并將所學(xué)的知識(shí)用于實(shí)踐當(dāng)中去,以便牢固掌握知識(shí) 六 感謝 為期一周的實(shí)訓(xùn)即將結(jié)束,我收獲頗多。感謝老師對(duì)我們Java課程及實(shí)驗(yàn)的悉心指導(dǎo),正是因?yàn)槔蠋熢趯?shí)驗(yàn)課上的指導(dǎo),讓我能夠把書(shū)本上的知識(shí)化成自己的知識(shí),并運(yùn)用在編程過(guò)程中。感謝同學(xué)的熱情幫助,讓我能夠順利的解決程序設(shè)計(jì)中所遇到的困難。這次課程設(shè)計(jì)不僅讓我在知識(shí)技能上有了很大的進(jìn)步,還讓我在資料整理和閱讀上的質(zhì)量有所提高,更讓我體會(huì)到我們不能獨(dú)立存在,團(tuán)隊(duì)的力量是巨大的。 在此我要再次感謝老師的悉心教導(dǎo)和同學(xué)們的熱心幫助,如果沒(méi)有你們只憑我自己的力量是無(wú)法順利完成這項(xiàng)任務(wù)的,可見(jiàn)知識(shí)和團(tuán)隊(duì)的同等重要性。謝謝你們!
- 溫馨提示:
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案