版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、ATM取款機系統(tǒng)(JAVA)1課程設計的目的此次課程設計讓我對JAVA有了更深刻的認識,這次課程設計的主要目的是結合面 向對象程序設計課程,培養(yǎng)我們面向對象軟件開發(fā)的思維,初步了解軟件開發(fā)的一般流 程,提高用JAVA編程的實際動手能力并增強大家對面向對象的了解,對以后在面向對 象的編程中奠定基礎。2系統(tǒng)總體設計2.1數據庫設計在ATM取款機系統(tǒng)中,數據庫的設計也很重要,數據庫的好壞會影響到整個系統(tǒng)的 運行效率,在此次設計中,atm數據庫包括有以下1個表,客戶信息表(guest )。表1客戶信息表(guest)列名數據類型及長度是否為空主鍵說明id數字NO主鍵記錄號gid文本NO銀行卡號pwd文
2、本NO密碼gmoney貨幣NO錢數目2.2系統(tǒng)功能模塊劃分本系統(tǒng)主要包括登陸模塊設計,選擇服務模塊設計,取款模塊設計,修改密碼模塊 設計,退卡模塊設計等幾個功能模塊。其中,(1) 登陸模塊設計:與ATMK員機打交道比較多的,也是大家對安全比較關心的冋 題:密碼。所以第一個界面就是要輸入密碼和卡號才能繼續(xù)服務。(2) 選擇服務模塊設計:在選擇服務模塊中,有各種 ATM的服務功能,只要用戶在 該界面中選擇按鈕,它就會彈出各個相應的界面。(3) 取款模塊設計:在取款模塊中,和其他的界面也是同樣的結構。也是有一個文 本框和一個按鈕還有標簽組成的,實現用戶取款的服務。(4) 修改密碼模塊設計:在修改密碼
3、模塊中,首先你必須要輸入你的舊密碼是否正 確,否則就會報錯。再一個就是要兩次輸入你的新密碼, 且兩次要匹配,否則也會報錯, 然后再重新回到修改密碼的界面。(5)退卡模塊設計:此功能非常簡單,僅僅是實現彈出卡的功能。2.3 ATM取款機系統(tǒng)功能結構圖總體設計中最核心的問題是系統(tǒng)總體功能結構的確定和子系統(tǒng)與模塊的劃分,結構化。ATM取款機系統(tǒng)功能結構圖,如圖1所示:圖1 ATM取款機系統(tǒng)功能結構圖該ATM取款機系統(tǒng)各個部分負責的主要業(yè)務如下:(1) 登陸頁面模塊,對取款者進行身份驗證。(2) 選擇服務模塊,包括取款,余額查詢,轉帳,修改密碼,退出等功能模塊。(3) 取款模塊,實現取款的具體操作。(
4、4) 查詢余額模塊,查看當前登陸人員的余額。(5) 修改密碼模塊,可以方便的實現當前登陸人員對自己的密碼進行修改。(6) 退卡模塊,完成取款,查詢等功能后退出銀行卡。3詳細設計在這次系統(tǒng)設計過程中,我把詳細設計介紹如下:配置好環(huán)境,編譯程序,當程序運行后,首先看到的頁面銀行管理系統(tǒng)頁面,它的運行效果圖,如圖2所示:圖2銀行管理系統(tǒng)首界面登陸頁面模塊設計:定義了文本框類的對象tf1,tf2。主要是用于輸入單行的文本;文本區(qū)調用public String getText(方法,獲取用戶想要的字符串。用來判斷輸入的密碼 和卡號是否正確,如果不正確的話,則彈出密碼或卡號錯誤的警告框,并用關掉窗口。此模
5、塊相應的詳細源代碼見附錄部分,部分代碼如下:box 仁 Box.createVerticalBox;box1.add(new Label(請輸入你的卡號 );/輸入卡號boxl.add (Box.createVerticalStrut(8);box1.add(new Label(請輸入你的密碼 );/輸入密碼選擇服務模塊設計:在選擇服務模塊中,有各種 ATM的服務功能,只要用戶在該 界面中選擇按鈕,它就會彈出各個相應的界面。每一個按鈕都有監(jiān)聽器,在選擇了按鈕 后,java.awt.event中的ActionEvent類創(chuàng)建一個事件對象,并將它傳遞給方法publicvoid actionPerf
6、ormed(ActionEvent e中的參數e,監(jiān)視器就會知道所發(fā)生的事件,對此 事件進行處理。其中的詳細源代碼請參見附錄部分,部分代碼如下:this.setLayout(null);this.setLayout(new GridLayout(6,1);p.add(new Label(請選擇你要的服務);this.add(p);取款模塊設計:在取款模塊中,和其他的界面也是同樣的結構。也是有一個文本框和一個按鈕還有標簽組成的。用戶在文本框中輸入他想取的數額,但是必須是100的倍數,而且每一次最多只能取5000塊。當然了取款的時候也不能超過卡里的余額,再就是卡里的余額不能為負,否則就會彈出報錯的
7、窗口。其方法的具體實現代碼請參見附錄 部分,部分代碼如下:if(money%100!= 0)|(money=5000) 取錢數為 100 的倍數或不大于 5000dispose();ErrorWarn6 ew6 = new ErrorWarn6( 消息! ,act);act.set_Balance(money);重置余額this.setVisible(false);修改密碼模塊設計:在修改密碼模塊中,首先你必須要輸入你的舊密碼是否正確, 否則就會報錯。再一個就是要兩次輸入你的新密碼,且兩次藥匹配,否則也會報錯,然 后再重新回到修改密碼的界面。在修改密碼時用到的方法的具體實現代碼請參見附錄部 分
8、,部分代碼如下:tf4 = new TextField(6);tf5 = new TextField(6);tf6 = new TextField(6);退卡模塊設計:在退卡模塊設計中,這個方法就更加的簡單了,它只是用了if(e.getSource()=button4) 退出System.exit(O);dispose。;這個方法就可以實現了,這里就不再多說了。4系統(tǒng)運行效果及存在問題4.1系統(tǒng)運行效果進入系統(tǒng)按鈕進入輸入卡號頁面,運行效果圖,如圖3所示:圖3輸入卡號界面輸入卡號后,點擊確定時系統(tǒng)會判斷是否存在此卡號,如果不存在此卡號,系統(tǒng)則 會自動提醒用戶此卡號不存在,請重新輸入,如果輸入的
9、是正確的卡后,則進入輸入密 碼界面,其運行效果圖,如圖 4所示:圖4輸入密碼界面輸入不正確,則會提醒你密碼不正確,請重新輸入,當輸入正確密碼后,點擊確定進入系統(tǒng)主界面,運行效果圖,如圖 5所示:圖5系統(tǒng)主界面界面在主界面中包含了 6個主要功能,只要用戶在該界面中選擇按鈕,它就會彈出各個相應的界面。當點擊取款按鈕時彈出取款界面,運行效果圖,如圖6所示:圏崔行管理系統(tǒng)1008003001Q00500其他近回退出圖6取款界面當點擊余額查詢界面時系統(tǒng)會自動幫助你檢索你的當前賬戶還有多少錢,并且在查 詢完后會自動彈出友好界面,來顯示你的當前余額,余額查詢界面,運行效果圖,如圖 7所示:圖7帳戶余額查看界
10、面在取款界面中,選擇要取的金額,取出金額,并且會彈出取款成功界面,運行效果 圖,如圖8所示:圖8取款成功界面在選擇服務界面,點擊轉賬功能按鈕之后,則會彈出轉賬界面,運行效果圖,如圖9所示:圖9轉帳操作界面在選擇服務界面,點擊修改密碼功能按鈕,則會彈出修改密碼界面,運行效果圖,如圖10所示:圖10修改密碼界面經過測試,所有的功能基本上都實現了,而且運行正常。4.2系統(tǒng)存在問題在此次課程設計中,我遇到了一些問題,如:對于面向對象的方法了解不夠透徹, 運用到實際的軟件開發(fā)中存在著困難; 對于Java語言,只學習到了一些最基本的知識, 這導致編寫程序時經常出現一些語法錯誤,而且要在短時間內用Java語
11、言來設計一個具體的系統(tǒng)是一個較大的挑戰(zhàn);還有對于正規(guī)開發(fā)一個系統(tǒng)的流程不熟悉,適應起來比 較慢,編寫各個模塊相對應的操作時,自己感覺難以動手,這表明所學的知識不能靈活 運用到實際中。對于以上的問題,自己有清楚的認識, 解決辦法是需要大量閱讀相關的書籍,對于書上以及網站上下載的資料中的 Java實例必須有清楚的理解,還有就是多跟精通此方 面的老師和同學交流,取其精華。對于實際動手能力與系統(tǒng)開發(fā)的流程的適應,必須多 進行實際的練習與操作,才能有大的進步。5設計體會在這次的課程設計中,主要是運用JAVA語言來編寫一個小的應用程序,當然還可 以用其他的技術來輔助了。在這個小應用程序當中,我用了 Jav
12、a外還用了 Swing控件。 輸入輸出流等技術。由于以前學的不是很扎實,而且還有些知識我們都是沒有學過的, 這就要求我們去查相關的書籍,還有就是和同學之間的交流。正因為這樣,才鍛煉了我 的自學的能力,還有就是加深了我對各個知識點的認識,并且提高了我對專業(yè)的學習的興趣,為我以后的學習打下了基礎。此外,我還感受到了面向對象語言的類庫的強大的 功能,掌握了運用JAVA中的類實現某些基本功能,并學會了自己查詢使用類的方法,也就是要會用API文檔,為以后更好的學習面向對象語言奠定了基礎。6參考文獻1 張孝祥JAVA就業(yè)培訓教材M.北京:清華出版社20062 印昊,JAVA與面向對象程序設計M.北京:高等
13、教育出版社20043 李尊朝,JAVA語言程序設計M.北京:中國鐵道出版社20044 孫健.計算機周刊-CNKIJ.上海市:長江計算機(集團)公司主辦:附錄在附錄中我們將附加一些程序設計過程中的代碼:(1) 登陸頁面首窗口設計代碼:class WindowBox extends Frame implements ActionListenerBox baseBox,box1,box2;TextField tf1,tf2;Button button1;Button button2;WindowBox(String s)構造方法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)聽器設計代碼: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) 選擇各種服務設計代碼: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,選擇服務 ”,act);elsedispose();ErrorWarn ew = new ErrorWarn( 消息! ,act); 報輸入密碼或卡號不正確
18、 if(e.getSource()=button2)System.exit(O);dispose。;/退出(4) 主函數設計代碼:class ATMpublic static void main(String args)new WindowBox(登錄頁面”);(5) 選擇服務設計代碼: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(請選擇你要的服務); this.add(
20、p);(6) 各種服務功能設計代碼: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) 取款功能設計代碼: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) 構造函數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(請輸入你想取錢的數目);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)判斷余額是否為負dispose
26、。;ErrorWarn4 ew4 = new ErrorWarn4( 消息! ,act);else if(moneyv=act.get_Money() 取錢的數額不大于余額if(money%100!=0)|(money=5000) 取錢數為 100 的倍數或不大于 5000 dispose();ErrorWarn6 ew6 = new ErrorWarn6( 消息! ,act);act.set_Balance(money);重置余額this.setVisible(false);Selection s = new Selection選擇服務 ”,act);/ 返回選擇服務窗口dispose();
27、else if(moneyact.get_Money()判斷取款數額是否大于余額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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 平衡正向移動與轉化率變化的關系
- 九年語文課件教學課件
- 汽車總經銷合同模板
- 強電設備采購合同模板
- 閑置花瓶出售合同模板
- 火鍋店特許經營合同模板
- 美容學徒培訓合同模板
- 政府采購內部承包合同模板
- 辭職賠償合同模板
- 食堂廣告合同模板
- 小學科普知識競賽題庫
- 生物醫(yī)學體系的確立與發(fā)展
- 口腔罕見病觀察指南
- 項目一 任務二 鋰的冶煉 3、金屬鋰的制取
- 新教科版科學六年級上冊第三單元工具與技術表格式核心素養(yǎng)目標教案
- 2022-2023學年北京市西城區(qū)三帆中學七年級(上)期中數學試卷
- 國測省測四年級勞動質量檢測試卷
- 英語四級單詞4500
- (高清版)TDT 1031.3-2011 土地復墾方案編制規(guī)程 第3部分:井工煤礦
- 2023年10月自考02187電工與電子技術試題及答案含評分標準
- ??破餍堤幚砹鞒膛嘤栒n件
評論
0/150
提交評論