




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟 件 學 院課程設計報告書課程名稱 面向對象程序設計 設計題目 ATM柜員機模擬程序 專業(yè)班級 軟件工程 學 號 姓 名 指導教師 劉臘梅 2015年 月1 / 30目錄1 設計時間12 設計目的13 設計題目14 設計任務15 設計內容15.1 kehu類代碼15.2 ATM主界面模塊設計25.3 選擇頁面模塊設計55.4 存款模塊設計85.5 取款模塊設計115.6 查詢余額模塊設計165.7 修改密碼模塊設計186 總結與展望23參考文獻24成績評定241 設計時間2015 年 月2 設計目的掌握圖形用戶界面設計方法,掌握常用swing組件的使用和事件處理程序設計.3 設計題目ATM柜
2、員機模擬程序4 設計任務使用圖形用戶界面。當輸入給定的卡號和密碼(初始卡號和密碼為123456)時,系統(tǒng)能登錄ATM柜員機系統(tǒng),用戶可以按照以下規(guī)則進行:(1)查詢余額功能:初始余額為10000元(2)ATM取款功能:每次取款金額為100的倍數,總額不超過5000元,支取金額不允許透支。(3)ATM存款功能:不能出現負存款。(4)修改密碼:新密碼長度不小于6位,不允許出現6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。5 設計內容 5.1 kehu類代碼import javax.swing.*;import javax.swing.event.*;
3、import java.awt.*;import java.awt.event.*; / 導入包import java.util.*;class kehu / 定義客戶類String zh; /定義賬號String pswf; /定義密碼double jine; /定義金額public kehu() /構造GUKEpublic kehu(String zh, String pswf, double jine)this.zh = zh; this.pswf = pswf;this.jine = jine;String getzh() /定義成員變量賬號return zh; /成員方法double
4、 setMima(double pswf)/定義成員變量密碼return pswf;/成員方法double getJine()/定義成員變量金額return jine;/定義成員方法void cunkuan(double money)/定義成員變量存款jine = jine + money; /定義成員方法void quqian(double money)/定義成員變量取款jine = jine - money; /定義成員方法String xiugaim(String mi)/定義成員變量密碼pswf = mi; /定義成員方法return pswf; 5.2 ATM主界面模塊設計 clas
5、s ATM extends JFrame implements ActionListener /導入接口類JPanel p1,p2, p3; /定義個面板JLabel l1, l2, l3,l4; /定義個標簽JPasswordField pswf; /定義一個密碼文本JButton jb1, jb2; /定義個按鈕JTextField jtf1,jc1; /定義個文本框Container content; /定義一個容器kehu g = new kehu4; /定義客戶類數組public ATM() /布局g0 = new kehu("liuyiping", "
6、123456", 10000);/客戶類數組里給的帳號,密碼,錢數g1 = new kehu("chengyang", "123456", 10000);g2 = new kehu("zhangzhicheng", "123456", 10000);g3 = new kehu("pengzhanyuan", "123456", 10000);p1 = new JPanel(); p2 = new JPanel(); /定義第二個面板l2 = new JLabel(&
7、quot;卡號:"); /定義標簽l2 jc1 = new JTextField(10); /定義賬號文本 l3 = new JLabel("密 碼:"); /定義標簽l3pswf = new JPasswordField(12); /定義密碼文本l4 = new JLabel("歡迎使用自動取款機");p1.add(l4);p2.add(l2); /把它們分別鑲在面板上p2.add(jc1);p2.add(l3);p2.add(pswf);p3 = new JPanel(); /定義第三個面板 jb1 = new JButton("
8、登錄"); /定義按鈕登錄jb1jb1.addActionListener(this); /jb1申請監(jiān)聽jb2 = new JButton("注銷"); /定義按鈕注銷jb2jb2.addActionListener(this); /jb2申請監(jiān)聽p3.add(jb1); /把它們添加到p3面板里p3.add(jb2);content = this.getContentPane(); /布局定義content.setLayout(new BorderLayout();content.add(p1, BorderLayout.NORTH);content.add(
9、p2, BorderLayout.CENTER); /定義中部為面板p2content.add(p3, BorderLayout.SOUTH); /定義底部為面板p3this.pack();this.setTitle("ATM 柜員機"); /定義為窗口名稱this.setBounds(300, 300, 400, 300); / 定義窗口的大小this.setResizable(false);this.show(); /顯示this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 關閉、退出public void acti
10、onPerformed(ActionEvent e) /監(jiān)聽類String x = jc1.getText(); if (e.getSource() = jb1) /如果點擊是jb1按鈕就進入For for (int i = 0; i < 4; i+) /判斷名字在數組的位置if (x.equals(gi.zh) /檢查到開始判斷是否匹配 if (pswf.getText().equals(gi.pswf) /名字匹配成功后判斷密碼是否成功 new XUANZE(gi); /密碼真確后進入XUANZE的界面elseJOptionPane.showMessageDialog(this, &
11、quot;密碼錯誤!"); /密碼錯誤彈出提示密碼錯誤elseSystem.exit(0); /注銷事件退出public static void main(String args) /定義的MAIN,才能進入。new ATM(); 主界面 密碼輸入錯誤提示欄5.3 選擇頁面模塊設計 class XUANZE extends JFrame implements ActionListener /導入接口類JPanel p2, p3; /定義個面板JLabel l1; /定義個標簽JButton jb1, jb2, jb3, jb4, jb5; /定義個按鈕Container conten
12、t; /定義一個容器kehu key; /定義客戶類傳從參數keypublic XUANZE(GUKE key)this.key = key; p2 = new JPanel(); /定義面板 jb1 = new JButton("ATM取款"); /定義jb1按鈕ATM取款jb1.addActionListener(this); /jb1申請監(jiān)聽jb2 = new JButton("ATM存款"); /定義jb2按鈕ATM存款jb2.addActionListener(this); /jb2申請監(jiān)聽jb3 = new JButton("查詢余
13、額"); /定義jb3按鈕查詢余額jb3.addActionListener(this); /jb3申請監(jiān)聽jb4 = new JButton("修改密碼"); /定義jb4按鈕修改密碼jb4.addActionListener(this); /jb4申請監(jiān)聽p2.add(jb1);p2.add(jb2);p2.add(jb3);p2.add(jb4);p3 = new JPanel(); /定義面板jb5 = new JButton("退出"); /定義jb5按鈕退出 jb5.addActionListener( /定義一個匿名類 new A
14、ctionListener()public void actionPerformed(ActionEvent event)System.exit(0); /退出登陸 );p3.add(jb5);content = this.getContentPane(); /布局定義content.setLayout(new BorderLayout();content.add(p2, BorderLayout.CENTER); /定義中部為面板p2content.add(p3, BorderLayout.SOUTH); /定義底部為面板p3this.pack();this.setTitle("進
15、入界面"); /定義為窗口名稱this.setBounds(300, 300, 400, 300); / 定義窗口的大小this.setResizable(false);this.show();public void actionPerformed(ActionEvent event) /接口監(jiān)聽if (event.getSource() = jb4) /判斷是否是jb4new Xgmm(key); /進入XgmmsetVisible(false);if (event.getSource() = jb1) /判斷是否是jb1new QUKUAN(key); /進入QUKUANsetV
16、isible(false);if (event.getSource() = jb2) /判斷是否是jb2new CUNKUAN(key); /進入CUNKUANsetVisible(false);if (event.getSource() = jb3) /判斷是否是jb3new CHAXUN(key); /進入CHAXUNsetVisible(false); 進入選擇界面5.4 存款模塊設計class CUNKUAN extends JFrame implements ActionListener /導入接口類JPanel p2, p3; /定義個面板JLabel l1; /定義個標簽JBut
17、ton jb1, jb2; /定義個按鈕JTextField jtf1; /定義一個文本框Container content; /定義一個容器kehu key; /定義客戶類傳從參數keypublic CUNKUAN(kehu key)this.key = key; /把key傳到頂層容器p2 = new JPanel(); /定義面板l1 = new JLabel("請輸入您要存入的金額:"); /定義一個標簽請輸入您要存入的金額:jtf1 = new JTextField(10); /定義一個文本框 p2.add(l1);p2.add(jtf1);p3 = new JP
18、anel(); /定義第三個面板jb1 = new JButton("確定"); /定義一個按鈕確定jb1.addActionListener(this); /jb1申請一個監(jiān)聽jb2 = new JButton("返回"); /定義一個按鈕返回jb2.addActionListener( /定義一個匿名類監(jiān)聽 new ActionListener()public void actionPerformed(ActionEvent event)XUANZEActionPerformed(event); );p3.add(jb1);p3.add(jb2);c
19、ontent = this.getContentPane(); /布局定義content.setLayout(new BorderLayout();content.add(p2, BorderLayout.NORTH); /定義頂部為面板p1 content.add(p2,BorderLayout.CENTER); /定義中部為面板p2content.add(p3, BorderLayout.SOUTH); /定義底部為面板p3this.pack();this.setTitle("自 動 存 款"); /定義為窗口名稱this.setBounds(300, 300, 400
20、, 300); / 定義窗口的大小this.setResizable(false);this.show(); /顯示public void actionPerformed(ActionEvent e) /接口監(jiān)聽類if (e.getSource() = jb1) /判斷是是否是jb1double money = Double.parseDouble(jtf1.getText();/ 把money轉成DoubleJOptionPane.showMessageDialog(this, "成功存款" + jtf1.getText() + "元!");/一個提示
21、框填出你成功存了多少key.cunkuan(money); /把存的錢傳回客戶類jtf1.setText("0");public void XUANZEActionPerformed(ActionEvent event) /匿名類監(jiān)聽過程if (event.getSource() = jb2) /判斷要是jb2new XUANZE(key); /返回XUANZE界面setVisible(false);存款界面存款成功5.5 取款模塊設計class QUKUAN extends JFrame implements ActionListener /導入接口類JPanel p2,
22、 p3; /定義個面板JLabel l1; /定義個標簽JButton jb1, jb2; /定義個按鈕JTextField jtf1; /定義一個文本框Container content; /定義一個容器GUKE key; /定義客戶類傳從參數keypublic QUKUAN(GUKE key)this.key = key; /把key傳到頂層容器p2 = new JPanel(); /定義面板l1 = new JLabel("請輸入您要取的金額:"); /定義一個標簽請輸入您要取的金額:jtf1 = new JTextField(10); /定義一個文本框p2.add(
23、l1);p2.add(jtf1);p3 = new JPanel(); /定義面板jb1 = new JButton("確定"); /定義一個按鈕確定jb1.addActionListener(this); /jb1申請一個監(jiān)聽jb2 = new JButton("返回"); /定義一個按鈕返回jb2.addActionListener(this); /jb1申請一個監(jiān)聽p3.add(jb1);p3.add(jb2);content = this.getContentPane(); /布局定義content.setLayout(new BorderLay
24、out();content.add(p2, BorderLayout.CENTER); /定義中部為面板p2content.add(p3, BorderLayout.SOUTH); /定義底部為面板p3this.pack();this.setTitle("自 動 取 款"); /定義為窗口名稱 this.setBounds(300, 300, 400, 300); / 定義窗口的大小this.setResizable(false);this.show();public void actionPerformed(ActionEvent e) /接口監(jiān)聽類if (e.getSo
25、urce() = jb1) /判斷是是否是jb1double money = Double.parseDouble(jtf1.getText();/ 把money轉成Doubleif (money < key.jine)if (money % 100 = 0)if (money <=5000) JOptionPane.showMessageDialog(this, "成功取款" + jtf1.getText() + "元!");/一個提示框填出你成功取了多少key.quqian(money); /把存的錢傳回客戶類jtf1.setText(&
26、quot;0");elseJOptionPane.showMessageDialog(this, "提取金額不許超過五千");elseJOptionPane.showMessageDialog(this, "取款許為一百的整數");elseJOptionPane.showMessageDialog(this, "金額不足不許透支");/一個提示框提示你你的卡即將要已透支if (e.getSource() = jb2)/判斷是是否是jb2new XUANZE(key); /返回XUANZEsetVisible(false);取
27、款界面取款成功金額不足取款失敗提示提取金額不許超過五千提取金額需為一百的整數 5.6 查詢余額模塊設計class CHAXUN extends JFrame implements ActionListener /導入接口類JPanel p2, p3; /定義個面板JLabel l1; /定義個標簽JButton jb1; /定義個按鈕 Container content; /定義一個容器kehu key; /定義客戶類傳從參數keypublic CHAXUN(kehu key) this.key=key; /把key傳到頂層容器 p2=new JPanel(); /定義面板 l1=new JL
28、abel("您的剩余金額為:"+ key.getJine(); p2.add(l1); p3=new JPanel(); /定義面板 jb1=new JButton("返回"); jb1.addActionListener(this); p3.add(jb1); content=this.getContentPane(); /布局定義 content.setLayout(new BorderLayout(); content.add(p2,BorderLayout.CENTER); /定義中部為面板p2 content.add(p3,BorderLayo
29、ut.SOUTH); /定義底部為面板p3 this.pack(); this.setTitle("查 詢 余 額"); /定義為窗口名稱 this.setBounds(300, 300, 400, 300); / 定義窗口的大小 this.setResizable(false); this.show(); public void actionPerformed(ActionEvent e) /接口監(jiān)聽類if (e.getSource() = jb1) /判斷是否是jb1 new XUANZE(key); /返回XUANZEsetVisible(false);開戶資金100
30、00元存700后查詢余額再取款900后查詢余額5.7 修改密碼模塊設計class Xgmm extends JFrame implements ActionListener /導入接口類JPanel p2, p3; /定義個面板JLabel l1, l2, l3, l4; /定義個標簽JPasswordField jtf1, jtf2, jtf3; /定義個文本框JButton jb1, jb2; /定義個按鈕Container content; /定義一個容器kehu key; /定義客戶類傳從參數keypublic Xgmm(kehu key)this.key=key; /把key傳到頂層
31、容器p2=new JPanel(); /定義第二個面板l2=new JLabel("請輸入原始密碼:"); /定義標簽請輸入原始密碼:l3=new JLabel("輸入要修改的密碼:"); /定義標簽輸入要修改的密碼l4=new JLabel("確認輸入的新密碼:"); /定義標簽確認輸入的新密碼:jtf1 = new JPasswordField(15); /定義文本框jtf1jtf2 = new JPasswordField(15); /定義文本框jtf2 jtf3=new JPasswordField(15); /定義文本框jt
32、f3 p2.add(l2); p2.add(jtf1); p2.add(l3); p2.add(jtf2);p2.add(l4);p2.add(jtf3);p3=new JPanel(); /定義面板 jb1 = new JButton("確定"); /定義按鈕jb1 確定 jb1.addActionListener(this); /jb1申請監(jiān)聽 jb2 = new JButton("返回登錄"); /定義按鈕jb2 放回登錄 jb2.addActionListener(this); /jb2申請監(jiān)聽 p3.add(jb1); p3.add(jb2);
33、 content = this.getContentPane(); /布局定義 content.setLayout(new BorderLayout(); content.add(p2,BorderLayout.CENTER); /定義中部為面板p2 content.add(p3,BorderLayout.SOUTH); /定義底部為面板p3 this.pack(); this.setTitle("修 改 密 碼"); /定義為窗口名稱 this.setBounds(300, 300, 400, 300); / 定義窗口的大小 this.setResizable(false
34、); this.show(); /顯示 public void actionPerformed(ActionEvent e) /接口監(jiān)聽類if (e.getSource() = jb1) /判斷是否是jb1if (jtf1.getText().equals(key.pswf) /判斷是否是你輸入的pswf正確if (jtf2.getText().equals(jtf3.getText()/判斷是否是jtf2和jtf3相等不if (jtf2.getText().length()=6) if (jtf2.getText().equals("000000") | jtf2.get
35、Text().equals("111111") | jtf2.getText().equals("222222") | jtf2.getText().equals("333333") | jtf2.getText().equals("444444") | jtf2.getText().equals("555555") | jtf2.getText().equals("666666") | jtf2.getText().equals("777777") | jtf2.getText().equals("888888") | jtf2.getText().equals("999999") jtf2.setText("");jtf3.setText("");JOptionPane.showMessageDialog(th
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 精裝技術考核試卷
- 校園安全與緊急事件預案制定考核試卷
- 醫(yī)學美容保險概述考核試卷
- 教育數字化進程中的環(huán)保理念與實踐
- DB5133-T 106-2024 蘋果園建園技術規(guī)程
- 2020-2025年教師資格之中學數學學科知識與教學能力高分通關題型題庫附解析答案
- 2025至2030代駕行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030男款夾克行業(yè)市場發(fā)展分析及投融資與風險報告
- 2025至2030電影廣告行業(yè)風險投資發(fā)展分析及投資融資策略報告
- 2025至2030水過濾器和凈化行業(yè)市場占有率及有效策略與實施路徑評估報告
- 視頻制作與編輯技術教程
- 提升學校安全保衛(wèi)服務水平的方法與措施
- 麻風病防治知識競賽題庫填空題
- 《美國司法體系》課件
- 《中國心力衰竭診斷和治療指南(2024)》解讀完整版
- 互聯網護理管理
- 兒童督導員和兒童主任培訓
- 小學信息技術試題(附答案)
- 《異常子宮出血診斷與治療指南(2022更新版)》解讀
- 跨界融合與個性化護膚
- 幼兒游戲活動中的保育
評論
0/150
提交評論