課程設(shè)計-ATM柜員機(jī)模擬程序_第1頁
課程設(shè)計-ATM柜員機(jī)模擬程序_第2頁
課程設(shè)計-ATM柜員機(jī)模擬程序_第3頁
課程設(shè)計-ATM柜員機(jī)模擬程序_第4頁
課程設(shè)計-ATM柜員機(jī)模擬程序_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、軟 件 學(xué) 院課程設(shè)計報告書課程名稱 面向?qū)ο蟪绦蛟O(shè)計 設(shè)計題目 ATM柜員機(jī)模擬程序 專業(yè)班級 軟件工程 學(xué) 號 姓 名 指導(dǎo)教師 劉臘梅 2015年 月目錄1 設(shè)計時間12 設(shè)計目的13 設(shè)計題目14 設(shè)計任務(wù)15 設(shè)計內(nèi)容15.1 kehu類代碼15.2 ATM主界面模塊設(shè)計25.3 選擇頁面模塊設(shè)計55.4 存款模塊設(shè)計85.5 取款模塊設(shè)計115.6 查詢余額模塊設(shè)計165.7 修改密碼模塊設(shè)計186 總結(jié)與展望23參考文獻(xiàn)24成績評定24 1 設(shè)計時間2015 年 月2 設(shè)計目的掌握圖形用戶界面設(shè)計方法,掌握常用swing組件的使用和事件處理程序設(shè)計.3 設(shè)計題目ATM柜員機(jī)模擬程

2、序4 設(shè)計任務(wù)使用圖形用戶界面。當(dāng)輸入給定的卡號和密碼(初始卡號和密碼為123456)時,系統(tǒng)能登錄ATM柜員機(jī)系統(tǒng),用戶可以按照以下規(guī)則進(jìn)行:(1)查詢余額功能:初始余額為10000元(2)ATM取款功能:每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支。(3)ATM存款功能:不能出現(xiàn)負(fù)存款。(4)修改密碼:新密碼長度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。5 設(shè)計內(nèi)容 5.1 kehu類代碼import javax.swing.*;import javax.swing.event.*;impor

3、t java.awt.*;import java.awt.event.*; / 導(dǎo)入包import java.util.*;class kehu / 定義客戶類String zh; /定義賬號String pswf; /定義密碼double jine; /定義金額public kehu() /構(gòu)造GUKEpublic kehu(String zh, String pswf, double jine)this.zh = zh; this.pswf = pswf;this.jine = jine;String getzh() /定義成員變量賬號return zh; /成員方法double setM

4、ima(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主界面模塊設(shè)計 class ATM

5、 extends JFrame implements ActionListener /導(dǎo)入接口類JPanel p1,p2, p3; /定義個面板JLabel l1, l2, l3,l4; /定義個標(biāo)簽JPasswordField pswf; /定義一個密碼文本JButton jb1, jb2; /定義個按鈕JTextField jtf1,jc1; /定義個文本框Container content; /定義一個容器kehu g = new kehu4; /定義客戶類數(shù)組public ATM() /布局g0 = new kehu("liuyiping", "12345

6、6", 10000);/客戶類數(shù)組里給的帳號,密碼,錢數(shù)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、卡號:"); /定義標(biāo)簽l2 jc1 = new JTextField(10); /定義賬號文本 l3 = new JLabel("密 碼:"); /定義標(biāo)簽l3pswf = new JPasswordField(12); /定義密碼文本l4 = new JLabel("歡迎使用自動取款機(jī)");p1.add(l4);p2.add(l2); /把它們分別鑲在面板上p2.add(jc1);p2.add(l3);p2.add(pswf);p3 = new JPanel(); /定義第三個面板 jb1 = new JButton("登錄&qu

8、ot;); /定義按鈕登錄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(p2, B

9、orderLayout.CENTER); /定義中部為面板p2content.add(p3, BorderLayout.SOUTH); /定義底部為面板p3this.pack();this.setTitle("ATM 柜員機(jī)"); /定義為窗口名稱this.setBounds(300, 300, 400, 300); / 定義窗口的大小this.setResizable(false);this.show(); /顯示this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 關(guān)閉、退出public void actionPer

10、formed(ActionEvent e) /監(jiān)聽類String x = jc1.getText(); if (e.getSource() = jb1) /如果點(diǎn)擊是jb1按鈕就進(jìn)入For for (int i = 0; i < 4; i+) /判斷名字在數(shù)組的位置if (x.equals(gi.zh) /檢查到開始判斷是否匹配 if (pswf.getText().equals(gi.pswf) /名字匹配成功后判斷密碼是否成功 new XUANZE(gi); /密碼真確后進(jìn)入XUANZE的界面elseJOptionPane.showMessageDialog(this, "

11、密碼錯誤!"); /密碼錯誤彈出提示密碼錯誤elseSystem.exit(0); /注銷事件退出public static void main(String args) /定義的MAIN,才能進(jìn)入。new ATM(); 主界面 密碼輸入錯誤提示欄5.3 選擇頁面模塊設(shè)計 class XUANZE extends JFrame implements ActionListener /導(dǎo)入接口類JPanel p2, p3; /定義個面板JLabel l1; /定義個標(biāo)簽JButton jb1, jb2, jb3, jb4, jb5; /定義個按鈕Container content; /定

12、義一個容器kehu key; /定義客戶類傳從參數(shù)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("查詢余額&quo

13、t;); /定義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 Action

14、Listener()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("進(jìn)入界面&q

15、uot;); /定義為窗口名稱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); /進(jìn)入XgmmsetVisible(false);if (event.getSource() = jb1) /判斷是否是jb1new QUKUAN(key); /進(jìn)入QUKUANsetVisibl

16、e(false);if (event.getSource() = jb2) /判斷是否是jb2new CUNKUAN(key); /進(jìn)入CUNKUANsetVisible(false);if (event.getSource() = jb3) /判斷是否是jb3new CHAXUN(key); /進(jìn)入CHAXUNsetVisible(false); 進(jìn)入選擇界面5.4 存款模塊設(shè)計class CUNKUAN extends JFrame implements ActionListener /導(dǎo)入接口類JPanel p2, p3; /定義個面板JLabel l1; /定義個標(biāo)簽JButton j

17、b1, jb2; /定義個按鈕JTextField jtf1; /定義一個文本框Container content; /定義一個容器kehu key; /定義客戶類傳從參數(shù)keypublic CUNKUAN(kehu key)this.key = key; /把key傳到頂層容器p2 = new JPanel(); /定義面板l1 = new JLabel("請輸入您要存入的金額:"); /定義一個標(biāo)簽請輸入您要存入的金額:jtf1 = new JTextField(10); /定義一個文本框 p2.add(l1);p2.add(jtf1);p3 = new JPanel(

18、); /定義第三個面板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);conten

19、t = 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, 300

20、); / 定義窗口的大小this.setResizable(false);this.show(); /顯示public void actionPerformed(ActionEvent e) /接口監(jiān)聽類if (e.getSource() = jb1) /判斷是是否是jb1double money = Double.parseDouble(jtf1.getText();/ 把money轉(zhuǎn)成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 取款模塊設(shè)計class QUKUAN extends JFrame implements ActionListener /導(dǎo)入接口類JPanel p2, p3;

22、/定義個面板JLabel l1; /定義個標(biāo)簽JButton jb1, jb2; /定義個按鈕JTextField jtf1; /定義一個文本框Container content; /定義一個容器GUKE key; /定義客戶類傳從參數(shù)keypublic QUKUAN(GUKE key)this.key = key; /把key傳到頂層容器p2 = new JPanel(); /定義面板l1 = new JLabel("請輸入您要取的金額:"); /定義一個標(biāo)簽請輸入您要取的金額:jtf1 = new JTextField(10); /定義一個文本框p2.add(l1);p

23、2.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 BorderLayout()

24、;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.getSource(

25、) = jb1) /判斷是是否是jb1double money = Double.parseDouble(jtf1.getText();/ 把money轉(zhuǎn)成Doubleif (money < key.jine)if (money % 100 = 0)if (money <=5000) JOptionPane.showMessageDialog(this, "成功取款" + jtf1.getText() + "元!");/一個提示框填出你成功取了多少key.quqian(money); /把存的錢傳回客戶類jtf1.setText("

26、0");elseJOptionPane.showMessageDialog(this, "提取金額不許超過五千");elseJOptionPane.showMessageDialog(this, "取款許為一百的整數(shù)");elseJOptionPane.showMessageDialog(this, "金額不足不許透支");/一個提示框提示你你的卡即將要已透支if (e.getSource() = jb2)/判斷是是否是jb2new XUANZE(key); /返回XUANZEsetVisible(false);取款界面取款

27、成功金額不足取款失敗提示提取金額不許超過五千提取金額需為一百的整數(shù) 5.6 查詢余額模塊設(shè)計class CHAXUN extends JFrame implements ActionListener /導(dǎo)入接口類JPanel p2, p3; /定義個面板JLabel l1; /定義個標(biāo)簽JButton jb1; /定義個按鈕 Container content; /定義一個容器kehu key; /定義客戶類傳從參數(shù)keypublic CHAXUN(kehu key) this.key=key; /把key傳到頂層容器 p2=new JPanel(); /定義面板 l1=new JLabel(

28、"您的剩余金額為:"+ 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,BorderLayout.SO

29、UTH); /定義底部為面板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);開戶資金10000元存7

30、00后查詢余額再取款900后查詢余額5.7 修改密碼模塊設(shè)計class Xgmm extends JFrame implements ActionListener /導(dǎo)入接口類JPanel p2, p3; /定義個面板JLabel l1, l2, l3, l4; /定義個標(biāo)簽JPasswordField jtf1, jtf2, jtf3; /定義個文本框JButton jb1, jb2; /定義個按鈕Container content; /定義一個容器kehu key; /定義客戶類傳從參數(shù)keypublic Xgmm(kehu key)this.key=key; /把key傳到頂層容器p2=

31、new JPanel(); /定義第二個面板l2=new JLabel("請輸入原始密碼:"); /定義標(biāo)簽請輸入原始密碼:l3=new JLabel("輸入要修改的密碼:"); /定義標(biāo)簽輸入要修改的密碼l4=new JLabel("確認(rèn)輸入的新密碼:"); /定義標(biāo)簽確認(rèn)輸入的新密碼:jtf1 = new JPasswordField(15); /定義文本框jtf1jtf2 = new JPasswordField(15); /定義文本框jtf2 jtf3=new JPasswordField(15); /定義文本框jtf3 p2

32、.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); cont

33、ent = 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); th

34、is.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.getText(

35、).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(this

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論