




已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
ATM柜員機模擬程序課程設計報告1 課程設計過程概述這次課程設計的主要目的是結合面向?qū)ο蟪绦蛟O計課程,培養(yǎng)我們面向?qū)ο筌浖_發(fā)的思維,初步了解軟件開發(fā)的一般流程,提高用JAVA編程的實際動手能力并增強大家對面向?qū)ο蟮牧私?。這次課程設計的主要內(nèi)容是獨立用JAVA語言開發(fā)一個小的應用程序。我開發(fā)了一個ATM柜員機。2 課程設計題目描述和基本設計要求我設計的ATM柜員機主要是由各個Windows窗口組成,它是由登錄頁面、選擇服務、取款、查詢余額、修改密碼和退卡等功能。它的各種按鈕的事件和功能可以簡單的模擬ATM柜員機的要求。3 系統(tǒng)需求分析3.1 功能需求分析本ATM柜員機的主要功能如下所述:要求使用圖形用戶界面。當輸入給定的卡號和密碼(初始卡號為000000和密碼為123456)時,系統(tǒng)能登錄ATM柜員機系統(tǒng),用戶可以按照以下規(guī)則進行:l 查詢余額:初始余額為50000元l ATM取款:每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支。l ATM存款:不能出現(xiàn)負存款。l 修改密碼:只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。3.2 其他需求分析(1)性能描述實時性好、靈活性強、易于不同年齡階段的人操作。(2)設計約束開發(fā)工具:JCrator ProV3.5.0運行環(huán)境:Windows 2000以上能實現(xiàn)用戶所定義的各項需求。(3)界面要求以Windows窗口形式顯示,標題欄為ATM柜員機名稱,右上角有最小化按鈕、最大化按鈕、關閉按鈕,不同的窗口中有不同的按鈕和選擇菜單。4 系統(tǒng)設計4.1 總體設計我所設計的ATM柜員機主要是由登錄頁面模塊還由選擇服務模塊組成,其中選擇服務模塊又由取款模塊、查詢余額模塊、修改密碼模塊、退卡模塊組成。其功能結構圖如下所示:圖1 ATM功能結構示意圖4.2 ATM柜員機界面設計我覺得一個系統(tǒng)的界面應該要簡單明了,當然樣式美觀就更好了。我設計的界面主要是由窗體組成,操作簡單。而每一個窗口則執(zhí)行相應的功能。一個系統(tǒng)界面的好壞直接影響到用戶的操作,界面設計要求樣式美觀、簡單明了、方便易操作。我設計的界面主要分為窗體、菜單、按鈕和文本輸入框幾個部分,分別執(zhí)行相應的操作。(1)窗體的設計窗體整個框架使用Frame類構造,F(xiàn)rame有自己的外邊框和自己的標題,創(chuàng)建Frame時可以指定其窗口標題,我創(chuàng)建的窗口標題是各個不同功能的模塊的名字,比如說查詢余額,還有取款等。相應源代碼為:WindowBox(String s,Account act)super(“ATM柜員機”); 、Selection(String s,Account act)super(s);向Frame窗口中添加組件使用add()。例如:button1 = new Button(存款);p1.add(button1);this.add(p1);每個Frame在其右上角都有三個控制圖標,分別代表將窗口最小化、窗口最大化和關閉的操作,其中最小化和最大化操作Frame可自動完成,而關閉窗口操作實現(xiàn)需要書寫有關的代碼,在我的程序中我采用的是對WINDOWS_CLOSING事件做出響應,調(diào)用dispose()方法關閉窗口。Frame也可以引發(fā)WindowsEvent類代表的窗口事件。相應源代碼為:addWindowListener(new WindowAdapter() /窗口偵聽器,以從此窗口接收窗口事件public void windowClosing(WindowEvent e) /處理窗口關閉事件 System.exit(0););(2)窗體的主要結構的設計我所設計的窗口的主要結構的特點就是每個窗口都對應著一個特定的功能。比如說報各種各樣的錯,還有各種查詢余額、取款、選擇服務等,所以它們都是由各種按鈕和文本框,標簽組成的,而聯(lián)系各個窗體成為一個整體的就是各個按鈕的監(jiān)聽事件。所以整個設計就趨向簡單化了。為了定義各個按鈕所對應的命令和操作,首先需要將各個按鈕注冊給實現(xiàn)了動作事件的監(jiān)聽接口ActionListener的監(jiān)聽者,然后為監(jiān)聽者定義actionPerformed(ActionEvent e)方法,在這個方法中調(diào)用e.getSource()或e.getActionCommand()來判斷用戶點擊的菜單子項,并完成這個菜單子項定義的操作。4.3 各功能模塊設計4.3.1 登陸頁面模塊設計與ATM柜員機打交道比較多的,也是大家對安全比較關心的問題:密碼。所以第一個界面就是要輸入密碼和卡號才能繼續(xù)服務。我定義了文本框累的對象tf1,tf2。抓藥是用于輸入單行的文本;文本區(qū)調(diào)用public String getText()方法,獲取用戶想要的字符串。用來判斷輸入的密碼和卡號是否正確,如果不正確的話,則彈出密碼或卡號錯誤的警告框,并用dispose()關掉窗口。此模塊相應的部分源代碼為:public void actionPerformed(ActionEvent e)Account act; String card; String pwd;act=new Account(000000,Devil,123456,50000);/初始化 /*選擇各種服務*/if(e.getSource() = button1)String number1,number2; number1=tf1.getText();number2=tf2.getText();/*判斷密碼和卡號是否正確*/if(act.get_Code().equals(number1)&(act.get_Password().equals(number2)dispose(); /*卡號和密碼都正確則進入功能選擇窗口*/Selection s = new Selection(選擇服務,act);elsedispose();ErrorWarn ew = new ErrorWarn(消息!,act); /*退卡*/if(e.getSource()=button2)System.exit(0);dispose(); 4.3.2 選擇服務模塊設計在選擇服務模塊中,有各種ATM的服務功能,只要用戶在該界面中選擇按鈕,它就會彈出各個相應的界面。每一個按鈕都有監(jiān)聽器,在選擇了按鈕后,java.awt.event中的ActionEvent類創(chuàng)建一個事件對象,并將它傳遞給方法public void actionPerformed(ActionEvent e)中的參數(shù)e,監(jiān)視器就會知道所發(fā)生的事件,對此事件進行處理。其中的部分源代碼為:p.add(new Label(請選擇你要的服務);this.add(p);button1 = new Button(存款);p1.add(button1);this.add(p1);button2 = new Button(取款);p2.add(button2);this.add(p2);button3 = new Button(查詢余額);p3.add(button3);this.add(p3);button4 = new Button(退出);p4.add(button4);this.add(p4);button5 = new Button(修改密碼);p5.add(button5);this.add(p5);this.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);button5.addActionListener(this);/setLayout(new GridLayout();setBounds(150,150,200,200);setVisible(true);validate();public void actionPerformed(ActionEvent e)if(e.getSource()=button2)/取款dispose();GetBalance gb = new GetBalance(取款,act);if(e.getSource()=button3)/查詢余額Query q =new Query(查詢余額,act);dispose();else if(e.getSource()=button4)/退出System.exit(0);dispose();else if(e.getSource()=button5)/修改密碼ChangePassword cp = new ChangePassword(修改密碼,act);dispose();4.3.3 取款模塊設計在取款模塊中,和其他的界面也是同樣的結構。也是有一個文本框和一個按鈕還有標簽組成的。用戶在文本框中輸入他想取的數(shù)額,但是必須是100的倍數(shù),而且每一次最多只能取5000塊。當然了取款的時候也不能超過卡里的余額,再就是卡里的余額不可以為負,否則就會彈出報錯的窗口。其方法為:if(e.getSource()=button) /*判斷余額是否為負*/if(act.get_Money()0)dispose();ErrorWarn4 ew4 = new ErrorWarn4(消息!,act); /*判斷取款數(shù)額是否小于卡里余額*/else if(money=5000)dispose();ErrorWarn6 ew6 = new ErrorWarn6(消息!,act);act.set_Balance(money);/重新設置卡里的余額this.setVisible(false); /*取款后就再次進入選擇界面*/ Selection s = new Selection(選擇服務,act); /dispose();else if(moneyact.get_Money()dispose();ErrorWarn5 ew5 = new ErrorWarn5(消息!,act);4.3.4 修改密碼模塊設計在修改密碼模塊中,首先你必須要輸入你的舊密碼是否正確,否則就會報錯。再一個就是要兩次輸入你的新密碼,且兩次藥匹配,否則也會報錯,然后再重新回到修改密碼的界面。在修改密碼時用到的方法為:/*判斷舊密碼是是否正確*/if(pwd2.equals(act.get_Password()/*判斷兩次輸入的密碼是否匹配*/if(pwd3.equals(pwd4) /*如果都正確的話就設置新密碼*/act.setPassword(pwd3);dispose();Selection s = new Selection(選擇,act);else dispose();ErrorWarn2 ew2 = new ErrorWarn2(消息,act); else this.setVisible(false);ErrorWarn3 ew1 = new ErrorWarn3(消息,act); dispose();4.3.5 退卡模塊設計在退卡模塊設計中,這個方法就更加的簡單了,它只是用了if(e.getSource()=button4)/退出System.exit(0);dispose();這個方法就可以實現(xiàn)了,這里就不再多說了。4.4 異常處理情況說明(1)打開、保存文件時的異常處理需要處理的異常:IOException(2)數(shù)據(jù)庫訪問時的異常處理需要處理的異常:SQLException(3)加載類時的異常處理需要處理的異常:ClassNotFindException,當應用程序試圖使用Class類中的forName方法通過字符串名加載類時,但是沒有找到具有指定名稱的類的定義。(4)加載URL時的異常需要處理的異常:MalformedURLException,拋出這一異常指示出現(xiàn)了錯誤的 URL?;蛘咴谝?guī)范字符串中找不到任何合法協(xié)議,或者無法分析字符串。5 系統(tǒng)實現(xiàn)與測試(1)打開DOS,編譯運行程序后,將會看到如下的界面,如圖2所示。如果輸入的密碼或卡號不正確的話就會報右下圖的錯誤。圖2 主界面登陸頁面(2)選擇服務界面效果當輸入的密碼和卡號正確,單擊確定后就會進入到選擇服務的界面,如圖3所示。然后就可以選擇所需要的服務了。圖3 選擇服務界面(3)取款界面,如圖4所示。圖4 取款界面當輸入的錢數(shù)不是100的倍數(shù)或每一次大于5000時就會報圖5的錯誤。圖5 輸入錯誤1當取款時如果超過卡里的余額的話就會報圖6的錯誤。圖6 輸入錯誤2(4)查詢余額界面,如圖7所示。圖7 查詢余額界面經(jīng)過測試,所有的功能基本上都實現(xiàn)了,而且運行正常。6 課程設計總結6.1 遇到的問題及解決辦法在此次課程設計中,我遇到了一些問題,如:對于面向?qū)ο蟮姆椒私獠粔蛲笍?,運用到實際的軟件開發(fā)中存在著困難;對于Java語言,只學習到了一些最基本的知識,這導致編寫程序時經(jīng)常出現(xiàn)一些語法錯誤,而且要在短時間內(nèi)用Java語言來設計一個具體的系統(tǒng)是一個較大的挑戰(zhàn);還有對于正規(guī)開發(fā)一個系統(tǒng)的流程不熟悉,適應起來比較慢,編寫各個模塊相對應的操作時,自己感覺難以動手,這表明所學的知識不能靈活運用到實際中。 對于以上的問題,自己有清楚的認識
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年縫制機械零部件項目建議書
- 破解2025年入團考試試題及答案
- 租賃合同解決協(xié)議書
- 股民索賠調(diào)解協(xié)議書
- 貿(mào)易公司代理協(xié)議書
- 融資租賃聯(lián)盟協(xié)議書
- 租賃醫(yī)師執(zhí)照協(xié)議書
- 股東清算債務協(xié)議書
- 貨柜陳列轉(zhuǎn)讓協(xié)議書
- 設備租賃招租協(xié)議書
- 江蘇省南京市、鹽城市2025屆高三年級5月第二次模擬考試政治試題及答案(南京鹽城二模)
- 快遞員合同協(xié)議書范本
- 互聯(lián)網(wǎng)+農(nóng)產(chǎn)品商業(yè)計劃書
- 公司安全事故隱患內(nèi)部舉報、報告獎勵制度
- DL-T5344-2018電力光纖通信工程驗收規(guī)范
- 項目經(jīng)理月度報告
- 報價單報價表
- hsk3教程hsk3練習參考答案
- 基于STM32 智能藥箱的設計與實現(xiàn)
- 大象版小學《科學》實驗目錄
- 總公司與分公司承包協(xié)議[頁]
評論
0/150
提交評論