




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、ATM取款機系統(tǒng)(JAVA)1課程設(shè)計的目的此次課程設(shè)計讓我對JAVA有了更深刻的認(rèn)識,這次課程設(shè)計的主要目的是結(jié)合面 向?qū)ο蟪绦蛟O(shè)計課程,培養(yǎng)我們面向?qū)ο筌浖_發(fā)的思維,初步了解軟件開發(fā)的一般流 程,提高用JAVA編程的實際動手能力并增強大家對面向?qū)ο蟮牧私?,對以后在面向?qū)?象的編程中奠定基礎(chǔ)。2系統(tǒng)總體設(shè)計2.1數(shù)據(jù)庫設(shè)計在ATM取款機系統(tǒng)中,數(shù)據(jù)庫的設(shè)計也很重要,數(shù)據(jù)庫的好壞會影響到整個系統(tǒng)的 運行效率,在此次設(shè)計中,atm數(shù)據(jù)庫包括有以下1個表,客戶信息表(guest )。表1客戶信息表(guest)列名數(shù)據(jù)類型及長度是否為空主鍵說明id數(shù)字NO主鍵記錄號gid文本NO銀行卡號pwd文
2、本NO密碼gmoney貨幣NO錢數(shù)目2.2系統(tǒng)功能模塊劃分本系統(tǒng)主要包括登陸模塊設(shè)計,選擇服務(wù)模塊設(shè)計,取款模塊設(shè)計,修改密碼模塊 設(shè)計,退卡模塊設(shè)計等幾個功能模塊。其中,(1) 登陸模塊設(shè)計:與ATMK員機打交道比較多的,也是大家對安全比較關(guān)心的冋 題:密碼。所以第一個界面就是要輸入密碼和卡號才能繼續(xù)服務(wù)。(2) 選擇服務(wù)模塊設(shè)計:在選擇服務(wù)模塊中,有各種 ATM的服務(wù)功能,只要用戶在 該界面中選擇按鈕,它就會彈出各個相應(yīng)的界面。(3) 取款模塊設(shè)計:在取款模塊中,和其他的界面也是同樣的結(jié)構(gòu)。也是有一個文 本框和一個按鈕還有標(biāo)簽組成的,實現(xiàn)用戶取款的服務(wù)。(4) 修改密碼模塊設(shè)計:在修改密碼
3、模塊中,首先你必須要輸入你的舊密碼是否正 確,否則就會報錯。再一個就是要兩次輸入你的新密碼, 且兩次要匹配,否則也會報錯, 然后再重新回到修改密碼的界面。(5)退卡模塊設(shè)計:此功能非常簡單,僅僅是實現(xiàn)彈出卡的功能。2.3 ATM取款機系統(tǒng)功能結(jié)構(gòu)圖總體設(shè)計中最核心的問題是系統(tǒng)總體功能結(jié)構(gòu)的確定和子系統(tǒng)與模塊的劃分,結(jié)構(gòu)化。ATM取款機系統(tǒng)功能結(jié)構(gòu)圖,如圖1所示:圖1 ATM取款機系統(tǒng)功能結(jié)構(gòu)圖該ATM取款機系統(tǒng)各個部分負(fù)責(zé)的主要業(yè)務(wù)如下:(1) 登陸頁面模塊,對取款者進(jìn)行身份驗證。(2) 選擇服務(wù)模塊,包括取款,余額查詢,轉(zhuǎn)帳,修改密碼,退出等功能模塊。(3) 取款模塊,實現(xiàn)取款的具體操作。(
4、4) 查詢余額模塊,查看當(dāng)前登陸人員的余額。(5) 修改密碼模塊,可以方便的實現(xiàn)當(dāng)前登陸人員對自己的密碼進(jìn)行修改。(6) 退卡模塊,完成取款,查詢等功能后退出銀行卡。3詳細(xì)設(shè)計在這次系統(tǒng)設(shè)計過程中,我把詳細(xì)設(shè)計介紹如下:配置好環(huán)境,編譯程序,當(dāng)程序運行后,首先看到的頁面銀行管理系統(tǒng)頁面,它的運行效果圖,如圖2所示:圖2銀行管理系統(tǒng)首界面登陸頁面模塊設(shè)計:定義了文本框類的對象tf1,tf2。主要是用于輸入單行的文本;文本區(qū)調(diào)用public String getText(方法,獲取用戶想要的字符串。用來判斷輸入的密碼 和卡號是否正確,如果不正確的話,則彈出密碼或卡號錯誤的警告框,并用關(guān)掉窗口。此模
5、塊相應(yīng)的詳細(xì)源代碼見附錄部分,部分代碼如下:box 仁 Box.createVerticalBox;box1.add(new Label(請輸入你的卡號 );/輸入卡號boxl.add (Box.createVerticalStrut(8);box1.add(new Label(請輸入你的密碼 );/輸入密碼選擇服務(wù)模塊設(shè)計:在選擇服務(wù)模塊中,有各種 ATM的服務(wù)功能,只要用戶在該 界面中選擇按鈕,它就會彈出各個相應(yīng)的界面。每一個按鈕都有監(jiān)聽器,在選擇了按鈕 后,java.awt.event中的ActionEvent類創(chuàng)建一個事件對象,并將它傳遞給方法publicvoid actionPerf
6、ormed(ActionEvent e中的參數(shù)e,監(jiān)視器就會知道所發(fā)生的事件,對此 事件進(jìn)行處理。其中的詳細(xì)源代碼請參見附錄部分,部分代碼如下:this.setLayout(null);this.setLayout(new GridLayout(6,1);p.add(new Label(請選擇你要的服務(wù));this.add(p);取款模塊設(shè)計:在取款模塊中,和其他的界面也是同樣的結(jié)構(gòu)。也是有一個文本框和一個按鈕還有標(biāo)簽組成的。用戶在文本框中輸入他想取的數(shù)額,但是必須是100的倍數(shù),而且每一次最多只能取5000塊。當(dāng)然了取款的時候也不能超過卡里的余額,再就是卡里的余額不能為負(fù),否則就會彈出報錯的
7、窗口。其方法的具體實現(xiàn)代碼請參見附錄 部分,部分代碼如下:if(money%100!= 0)|(money=5000) 取錢數(shù)為 100 的倍數(shù)或不大于 5000dispose();ErrorWarn6 ew6 = new ErrorWarn6( 消息! ,act);act.set_Balance(money);重置余額this.setVisible(false);修改密碼模塊設(shè)計:在修改密碼模塊中,首先你必須要輸入你的舊密碼是否正確, 否則就會報錯。再一個就是要兩次輸入你的新密碼,且兩次藥匹配,否則也會報錯,然 后再重新回到修改密碼的界面。在修改密碼時用到的方法的具體實現(xiàn)代碼請參見附錄部 分
8、,部分代碼如下:tf4 = new TextField(6);tf5 = new TextField(6);tf6 = new TextField(6);退卡模塊設(shè)計:在退卡模塊設(shè)計中,這個方法就更加的簡單了,它只是用了if(e.getSource()=button4) 退出System.exit(O);dispose。;這個方法就可以實現(xiàn)了,這里就不再多說了。4系統(tǒng)運行效果及存在問題4.1系統(tǒng)運行效果進(jìn)入系統(tǒng)按鈕進(jìn)入輸入卡號頁面,運行效果圖,如圖3所示:圖3輸入卡號界面輸入卡號后,點擊確定時系統(tǒng)會判斷是否存在此卡號,如果不存在此卡號,系統(tǒng)則 會自動提醒用戶此卡號不存在,請重新輸入,如果輸入的
9、是正確的卡后,則進(jìn)入輸入密 碼界面,其運行效果圖,如圖 4所示:圖4輸入密碼界面輸入不正確,則會提醒你密碼不正確,請重新輸入,當(dāng)輸入正確密碼后,點擊確定進(jìn)入系統(tǒng)主界面,運行效果圖,如圖 5所示:圖5系統(tǒng)主界面界面在主界面中包含了 6個主要功能,只要用戶在該界面中選擇按鈕,它就會彈出各個相應(yīng)的界面。當(dāng)點擊取款按鈕時彈出取款界面,運行效果圖,如圖6所示:圏崔行管理系統(tǒng)1008003001Q00500其他近回退出圖6取款界面當(dāng)點擊余額查詢界面時系統(tǒng)會自動幫助你檢索你的當(dāng)前賬戶還有多少錢,并且在查 詢完后會自動彈出友好界面,來顯示你的當(dāng)前余額,余額查詢界面,運行效果圖,如圖 7所示:圖7帳戶余額查看界
10、面在取款界面中,選擇要取的金額,取出金額,并且會彈出取款成功界面,運行效果 圖,如圖8所示:圖8取款成功界面在選擇服務(wù)界面,點擊轉(zhuǎn)賬功能按鈕之后,則會彈出轉(zhuǎn)賬界面,運行效果圖,如圖9所示:圖9轉(zhuǎn)帳操作界面在選擇服務(wù)界面,點擊修改密碼功能按鈕,則會彈出修改密碼界面,運行效果圖,如圖10所示:圖10修改密碼界面經(jīng)過測試,所有的功能基本上都實現(xiàn)了,而且運行正常。4.2系統(tǒng)存在問題在此次課程設(shè)計中,我遇到了一些問題,如:對于面向?qū)ο蟮姆椒私獠粔蛲笍兀?運用到實際的軟件開發(fā)中存在著困難; 對于Java語言,只學(xué)習(xí)到了一些最基本的知識, 這導(dǎo)致編寫程序時經(jīng)常出現(xiàn)一些語法錯誤,而且要在短時間內(nèi)用Java語
11、言來設(shè)計一個具體的系統(tǒng)是一個較大的挑戰(zhàn);還有對于正規(guī)開發(fā)一個系統(tǒng)的流程不熟悉,適應(yīng)起來比 較慢,編寫各個模塊相對應(yīng)的操作時,自己感覺難以動手,這表明所學(xué)的知識不能靈活 運用到實際中。對于以上的問題,自己有清楚的認(rèn)識, 解決辦法是需要大量閱讀相關(guān)的書籍,對于書上以及網(wǎng)站上下載的資料中的 Java實例必須有清楚的理解,還有就是多跟精通此方 面的老師和同學(xué)交流,取其精華。對于實際動手能力與系統(tǒng)開發(fā)的流程的適應(yīng),必須多 進(jìn)行實際的練習(xí)與操作,才能有大的進(jìn)步。5設(shè)計體會在這次的課程設(shè)計中,主要是運用JAVA語言來編寫一個小的應(yīng)用程序,當(dāng)然還可 以用其他的技術(shù)來輔助了。在這個小應(yīng)用程序當(dāng)中,我用了 Jav
12、a外還用了 Swing控件。 輸入輸出流等技術(shù)。由于以前學(xué)的不是很扎實,而且還有些知識我們都是沒有學(xué)過的, 這就要求我們?nèi)ゲ橄嚓P(guān)的書籍,還有就是和同學(xué)之間的交流。正因為這樣,才鍛煉了我 的自學(xué)的能力,還有就是加深了我對各個知識點的認(rèn)識,并且提高了我對專業(yè)的學(xué)習(xí)的興趣,為我以后的學(xué)習(xí)打下了基礎(chǔ)。此外,我還感受到了面向?qū)ο笳Z言的類庫的強大的 功能,掌握了運用JAVA中的類實現(xiàn)某些基本功能,并學(xué)會了自己查詢使用類的方法,也就是要會用API文檔,為以后更好的學(xué)習(xí)面向?qū)ο笳Z言奠定了基礎(chǔ)。6參考文獻(xiàn)1 張孝祥JAVA就業(yè)培訓(xùn)教材M.北京:清華出版社20062 印昊,JAVA與面向?qū)ο蟪绦蛟O(shè)計M.北京:高等
13、教育出版社20043 李尊朝,JAVA語言程序設(shè)計M.北京:中國鐵道出版社20044 孫健.計算機周刊-CNKIJ.上海市:長江計算機(集團(tuán))公司主辦:附錄在附錄中我們將附加一些程序設(shè)計過程中的代碼:(1) 登陸頁面首窗口設(shè)計代碼:class WindowBox extends Frame implements ActionListenerBox baseBox,box1,box2;TextField tf1,tf2;Button button1;Button button2;WindowBox(String s)構(gòu)造方法super(s);tf1 = new TextField(6);tf2
14、= new TextField(6);box 仁 Box.createVerticalBox;box1.add(new Label(請輸入你的卡號 );/輸入卡號box1.add (Box.createVerticalStrut(8);box1.add(new Label(請輸入你的密碼 );/輸入密碼box2=Box.createVerticalBox();box2.add(tf1);box2.add(new TextField(16); box2.add(Box.createVerticalStrut(8);box2.add(tf2);box2.add(new TextField(16);
15、 baseBox=Box.createHorizontalBox();baseBox.add(box1);baseBox.add(Box.createHorizontalStrut(10);baseBox.add(box2);add(baseBox);button1= new Button(確定);/ 加入按鈕 buttonl.addActionListener(this);add(buttonl);button2 = new Button(退卡);/ 退卡按鈕 button2.addActionListener(this);add(button2);setLayout(new FlowLay
16、out();(2) 監(jiān)聽器設(shè)計代碼:this.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(O););setBounds(175); setVisible(true);public void actionPerformed(ActionEvent e)Account act;String card;String pwd;act=new Account(000000,Devil,123456,50000); 初始化(3) 選擇各種服務(wù)設(shè)計代碼:if(e.getSou
17、rce() = button1)String number1,number2;輸入的兩個卡號和密碼的變量number仁tf1.getText(); number2=tf2.getText();/*判斷兩次輸入的卡號和密碼是否正確*/if(act.get Code().equals(number1)&(act.get Password().equals(number2)dispose。;Selection s = new Selection,選擇服務(wù) ”,act);elsedispose();ErrorWarn ew = new ErrorWarn( 消息! ,act); 報輸入密碼或卡號不正確
18、 if(e.getSource()=button2)System.exit(O);dispose。;/退出(4) 主函數(shù)設(shè)計代碼:class ATMpublic static void main(String args)new WindowBox(登錄頁面”);(5) 選擇服務(wù)設(shè)計代碼:import java.awt.*;import java.awt.event.*;class Selection extends Frame implements ActionListenerButton button1,button2,button3,button4,button5;Panel p1 = n
19、ew Panel();Panel p2 = new Panel();Panel p3 = new Panel();Panel p4 = new Panel();Panel p5 = new Panel();Panel p = new Panel();Account act;public Selection()Selection(String s,Account act)super(s);this.act=act;this.setLayout(null);this.setLayout(new GridLayout(6,1);p.add(new Label(請選擇你要的服務(wù)); this.add(
20、p);(6) 各種服務(wù)功能設(shè)計代碼: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.
21、addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(O););button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);button5.addActionListener(this);setBounds(200);setVisible(true);validate。;public void actionPerformed(Action
22、Event 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(O);dispose();else if(e.getSource()=button5) 修改密碼ChangePassword cp = new ChangePassword(修改密碼 ”
23、,act); dispose();(7) 取款功能設(shè)計代碼:import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;class GetBalance extends Frame implements ActionListenerBox baseBox, box1,box2;Button button;TextField tf;Account act;GetBalance(String s,Account act) 構(gòu)造函數(shù)super(s);this.act=act;bu
24、tton=new Button(確定);Panel panel = new Panel();Panel panel1 = new Panel();tf = new TextField(6);this.setLayout(new GridLayout(2,1);panel1.add(new Label(請輸入你想取錢的數(shù)目);panel1.add(tf);panel.add(button);this.add(panel1);this.add(panel);button.addActionListener(this);this.addWindowListener(new WindowAdapter
25、() public void windowClosing(WindowEvent e) System.exit(O););setBounds(150);this.setVisible(true);public void actionPerformed(ActionEvent e)System.out.println(e.getActionCommand();double money;money = Double.parseDouble(tf.getText().trim();if(e.getSource()=button)if(act.get_Money()vO)判斷余額是否為負(fù)dispose
26、。;ErrorWarn4 ew4 = new ErrorWarn4( 消息! ,act);else if(moneyv=act.get_Money() 取錢的數(shù)額不大于余額if(money%100!=0)|(money=5000) 取錢數(shù)為 100 的倍數(shù)或不大于 5000 dispose();ErrorWarn6 ew6 = new ErrorWarn6( 消息! ,act);act.set_Balance(money);重置余額this.setVisible(false);Selection s = new Selection選擇服務(wù) ”,act);/ 返回選擇服務(wù)窗口dispose();
27、else if(moneyact.get_Money()判斷取款數(shù)額是否大于余額dispose();ErrorWarn5 ew5 = new ErrorWarn5( 消息! ,act);public static void main(String args)GetBalance test = new GetBalance(dfdf);GetBalance gb = new GetBalance(取款);import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;Panel
28、panell = new Panel();Panel panel2 = new Panel();Panel panel3 = new Panel();Panel panel = new Panel();TextField tf4,tf5,tf6;Button button;Account act;ChangePassword(String s,Account act)super(s);this.act=act;tf4 = new TextField(6);tf5 = new TextField(6);tf6 = new TextField(6);button = new Button(確定); button.addActionLi
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國H型鋼自動焊接生產(chǎn)線設(shè)備數(shù)據(jù)監(jiān)測報告
- 2025年中國D-泛醇數(shù)據(jù)監(jiān)測報告
- 2025年中國48針插件數(shù)據(jù)監(jiān)測報告
- 2025年中國1,4-二氨基蒽醌數(shù)據(jù)監(jiān)測報告
- 2025至2030年中國高爾夫球鞋市場分析及競爭策略研究報告
- 2025至2030年中國裝配式鉑電阻市場分析及競爭策略研究報告
- 2025至2030年中國聚氨酯地坪材料市場分析及競爭策略研究報告
- 2025至2030年中國竹制座墊市場分析及競爭策略研究報告
- 2025至2030年中國電熱鍋爐用管狀電熱元件市場分析及競爭策略研究報告
- 2025至2030年中國洗護(hù)產(chǎn)品瓶市場分析及競爭策略研究報告
- 2025年高考云南卷歷史高考真題(無答案)
- 2025-2030中國輔助生殖技術(shù)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 中醫(yī)茶飲培訓(xùn)課件模板
- (湖北省高考卷)2024年湖北省普通高中學(xué)業(yè)水平選擇性考試高考物化生+政史地真題試卷及答案
- 2024-2025學(xué)年人教PEP英語六年級下學(xué)期期末模擬試卷(含答案含聽力原文無音頻)
- GSK質(zhì)量管理體系介紹培訓(xùn)課件
- 學(xué)生宿舍改造設(shè)計方案
- 出國培訓(xùn)考試試題及答案
- 2025年中國樂器網(wǎng)數(shù)據(jù)監(jiān)測研究報告
- 西方文化導(dǎo)論試題及答案
- 2025-2030中國毛衣市場調(diào)研及重點企業(yè)投資評估規(guī)劃分析研究報告
評論
0/150
提交評論