




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟 件 學(xué) 院課程設(shè)計(jì)報(bào)告書(shū)課程名稱(chēng) 面向?qū)ο蟪绦蛟O(shè)計(jì) 設(shè)計(jì)題目 ATM柜員機(jī)模擬程序 專(zhuān)業(yè)班級(jí) 學(xué) 號(hào) 姓 名 指導(dǎo)教師 1 設(shè)計(jì)時(shí)間2013 年 6 月2 設(shè)計(jì)目的掌握?qǐng)D形用戶(hù)界面設(shè)計(jì)方法,掌握常用swing組件的使用和事件處理程序設(shè)計(jì).3設(shè)計(jì)任務(wù)ATM柜員機(jī)模擬程序 要求:使用圖形用戶(hù)界面。當(dāng)輸入給定的卡號(hào)和密碼(初始卡號(hào)和密碼為)時(shí),系統(tǒng)能登錄ATM柜員機(jī)系統(tǒng),用戶(hù)可以按照以下規(guī)則進(jìn)行:(1)查詢(xún)余額功能:初始余額為10000元(2)ATM取款功能:每次取款金額為100的倍數(shù),總額不超過(guò)5000元,支取金額不允許透支。(3)ATM存款功能:不能出現(xiàn)負(fù)存款。(4)修改密碼:新密碼長(zhǎng)度不小
2、于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。4 設(shè)計(jì)內(nèi)容 4.1 kehu類(lèi)代碼:import javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*; / 導(dǎo)入包import java.util.*;class kehu / 定義客戶(hù)類(lèi)String zh; /定義賬號(hào)String pswf; /定義密碼double jine; /定義金額public kehu() /構(gòu)造GUKEpublic kehu(String
3、zh, String pswf, double jine)this.zh = zh; this.pswf = pswf;this.jine = jine;String getzh() /定義成員變量賬號(hào)return zh; /成員方法double setMima(double pswf)/定義成員變量密碼return pswf;/成員方法double getJine()/定義成員變量金額return jine;/定義成員方法void cunkuan(double money)/定義成員變量存款jine = jine + money; /定義成員方法void quqian(double mone
4、y)/定義成員變量取款jine = jine - money; /定義成員方法String xiugaim(String mi)/定義成員變量密碼pswf = mi; /定義成員方法return pswf; 4.2 ATM主界面模塊設(shè)計(jì): class ATM extends JFrame implements ActionListener /導(dǎo)入接口類(lèi)JPanel p1,p2, p3; /定義個(gè)面板JLabel l1, l2, l3,l4; /定義個(gè)標(biāo)簽JPasswordField pswf; /定義一個(gè)密碼文本JButton jb1, jb2; /定義個(gè)按鈕JTextField jtf1,j
5、c1; /定義個(gè)文本框Container content; /定義一個(gè)容器kehu g = new kehu4; /定義客戶(hù)類(lèi)數(shù)組public ATM() /布局g0 = new kehu(liuyiping, , 10000);/客戶(hù)類(lèi)數(shù)組里給的帳號(hào),密碼,錢(qián)數(shù)g1 = new kehu(chengyang, , 10000);g2 = new kehu(zhangzhicheng, , 10000);g3 = new kehu(pengzhanyuan, , 10000);p1 = new JPanel(); p2 = new JPanel(); /定義第二個(gè)面板l2 = new JLab
6、el(卡號(hào):); /定義標(biāo)簽l2 jc1 = new JTextField(10); /定義賬號(hào)文本 l3 = new JLabel(密 碼:); /定義標(biāo)簽l3pswf = new JPasswordField(12); /定義密碼文本l4 = new JLabel(歡迎使用劉一平的自動(dòng)取款機(jī));p1.add(l4);p2.add(l2); /把它們分別鑲在面板上p2.add(jc1);p2.add(l3);p2.add(pswf);p3 = new JPanel(); /定義第三個(gè)面板 jb1 = new JButton(登錄); /定義按鈕登錄jb1jb1.addActionListen
7、er(this); /jb1申請(qǐng)監(jiān)聽(tīng)jb2 = new JButton(注銷(xiāo)); /定義按鈕注銷(xiāo)jb2jb2.addActionListener(this); /jb2申請(qǐng)監(jiān)聽(tīng)p3.add(jb1); /把它們添加到p3面板里p3.add(jb2);content = this.getContentPane(); /布局定義content.setLayout(new BorderLayout();content.add(p1, BorderLayout.NORTH);content.add(p2, BorderLayout.CENTER); /定義中部為面板p2content.add(p3,
8、BorderLayout.SOUTH); /定義底部為面板p3this.pack();this.setTitle(ATM 柜員機(jī)); /定義為窗口名稱(chēng)this.setBounds(300, 300, 400, 300); / 定義窗口的大小this.setResizable(false);this.show(); /顯示this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 關(guān)閉、退出public void actionPerformed(ActionEvent e) /監(jiān)聽(tīng)類(lèi)String x = jc1.getText(); if (e.g
9、etSource() = jb1) /如果點(diǎn)擊是jb1按鈕就進(jìn)入Forfor (int i = 0; i 4; i+) /判斷名字在數(shù)組的位置if (x.equals(gi.zh) /檢查到開(kāi)始判斷是否匹配if (pswf.getText().equals(gi.pswf) /名字匹配成功后判斷密碼是否成功new XUANZE(gi); /密碼真確后進(jìn)入XUANZE的界面elseJOptionPane.showMessageDialog(this, 密碼錯(cuò)誤!); /密碼錯(cuò)誤彈出提示密碼錯(cuò)誤elseSystem.exit(0); /注銷(xiāo)事件退出public static void main(S
10、tring args) /定義的MAIN,才能進(jìn)入。new ATM(); 主界面 密碼輸入錯(cuò)誤提示欄4.3 選擇頁(yè)面模塊設(shè)計(jì): class XUANZE extends JFrame implements ActionListener /導(dǎo)入接口類(lèi)JPanel p2, p3; /定義個(gè)面板JLabel l1; /定義個(gè)標(biāo)簽JButton jb1, jb2, jb3, jb4, jb5; /定義個(gè)按鈕Container content; /定義一個(gè)容器kehu key; /定義客戶(hù)類(lèi)傳從參數(shù)keypublic XUANZE(GUKE key)this.key = key; p2 = new JP
11、anel(); /定義面板 jb1 = new JButton(ATM取款); /定義jb1按鈕ATM取款jb1.addActionListener(this); /jb1申請(qǐng)監(jiān)聽(tīng)jb2 = new JButton(ATM存款); /定義jb2按鈕ATM存款jb2.addActionListener(this); /jb2申請(qǐng)監(jiān)聽(tīng)jb3 = new JButton(查詢(xún)余額); /定義jb3按鈕查詢(xún)余額jb3.addActionListener(this); /jb3申請(qǐng)監(jiān)聽(tīng)jb4 = new JButton(修改密碼); /定義jb4按鈕修改密碼jb4.addActionListener(t
12、his); /jb4申請(qǐng)監(jiān)聽(tīng)p2.add(jb1);p2.add(jb2);p2.add(jb3);p2.add(jb4);p3 = new JPanel(); /定義面板jb5 = new JButton(退出); /定義jb5按鈕退出 jb5.addActionListener( /定義一個(gè)匿名類(lèi) new ActionListener()public void actionPerformed(ActionEvent event)System.exit(0); /退出登陸 );p3.add(jb5);content = this.getContentPane(); /布局定義content.
13、setLayout(new BorderLayout();content.add(p2, BorderLayout.CENTER); /定義中部為面板p2content.add(p3, BorderLayout.SOUTH); /定義底部為面板p3this.pack();this.setTitle(進(jìn)入界面); /定義為窗口名稱(chēng)this.setBounds(300, 300, 400, 300); / 定義窗口的大小this.setResizable(false);this.show();public void actionPerformed(ActionEvent event) /接口監(jiān)聽(tīng)i
14、f (event.getSource() = jb4) /判斷是否是jb4new Xgmm(key); /進(jìn)入XgmmsetVisible(false);if (event.getSource() = jb1) /判斷是否是jb1new QUKUAN(key); /進(jìn)入QUKUANsetVisible(false);if (event.getSource() = jb2) /判斷是否是jb2new CUNKUAN(key); /進(jìn)入CUNKUANsetVisible(false);if (event.getSource() = jb3) /判斷是否是jb3new CHAXUN(key); /進(jìn)
15、入CHAXUNsetVisible(false); 進(jìn)入選擇界面4.4 存款模塊設(shè)計(jì):class CUNKUAN extends JFrame implements ActionListener /導(dǎo)入接口類(lèi)JPanel p2, p3; /定義個(gè)面板JLabel l1; /定義個(gè)標(biāo)簽JButton jb1, jb2; /定義個(gè)按鈕JTextField jtf1; /定義一個(gè)文本框Container content; /定義一個(gè)容器kehu key; /定義客戶(hù)類(lèi)傳從參數(shù)keypublic CUNKUAN(kehu key)this.key = key; /把key傳到頂層容器p2 = new
16、JPanel(); /定義面板l1 = new JLabel(請(qǐng)輸入您要存入的金額:); /定義一個(gè)標(biāo)簽請(qǐng)輸入您要存入的金額:jtf1 = new JTextField(10); /定義一個(gè)文本框 p2.add(l1);p2.add(jtf1);p3 = new JPanel(); /定義第三個(gè)面板jb1 = new JButton(確定); /定義一個(gè)按鈕確定jb1.addActionListener(this); /jb1申請(qǐng)一個(gè)監(jiān)聽(tīng)jb2 = new JButton(返回); /定義一個(gè)按鈕返回jb2.addActionListener( /定義一個(gè)匿名類(lèi)監(jiān)聽(tīng) new ActionLis
17、tener()public void actionPerformed(ActionEvent event)XUANZEActionPerformed(event); );p3.add(jb1);p3.add(jb2);content = this.getContentPane(); /布局定義content.setLayout(new BorderLayout();content.add(p2, BorderLayout.NORTH); /定義頂部為面板p1 content.add(p2,BorderLayout.CENTER); /定義中部為面板p2content.add(p3, Borde
18、rLayout.SOUTH); /定義底部為面板p3this.pack();this.setTitle(自 動(dòng) 存 款); /定義為窗口名稱(chēng)this.setBounds(300, 300, 400, 300); / 定義窗口的大小this.setResizable(false);this.show(); /顯示public void actionPerformed(ActionEvent e) /接口監(jiān)聽(tīng)類(lèi)if (e.getSource() = jb1) /判斷是是否是jb1double money = Double.parseDouble(jtf1.getText();/ 把money轉(zhuǎn)成D
19、oubleJOptionPane.showMessageDialog(this, 成功存款 + jtf1.getText() + 元!);/一個(gè)提示框填出你成功存了多少key.cunkuan(money); /把存的錢(qián)傳回客戶(hù)類(lèi)jtf1.setText(0);public void XUANZEActionPerformed(ActionEvent event) /匿名類(lèi)監(jiān)聽(tīng)過(guò)程if (event.getSource() = jb2) /判斷要是jb2new XUANZE(key); /返回XUANZE界面setVisible(false);存款界面 存款成功4.5 取款模塊設(shè)計(jì):class
20、QUKUAN extends JFrame implements ActionListener /導(dǎo)入接口類(lèi)JPanel p2, p3; /定義個(gè)面板JLabel l1; /定義個(gè)標(biāo)簽JButton jb1, jb2; /定義個(gè)按鈕JTextField jtf1; /定義一個(gè)文本框Container content; /定義一個(gè)容器GUKE key; /定義客戶(hù)類(lèi)傳從參數(shù)keypublic QUKUAN(GUKE key)this.key = key; /把key傳到頂層容器p2 = new JPanel(); /定義面板l1 = new JLabel(請(qǐng)輸入您要取的金額:); /定義一個(gè)標(biāo)簽
21、請(qǐng)輸入您要取的金額:jtf1 = new JTextField(10); /定義一個(gè)文本框p2.add(l1);p2.add(jtf1);p3 = new JPanel(); /定義面板jb1 = new JButton(確定); /定義一個(gè)按鈕確定jb1.addActionListener(this); /jb1申請(qǐng)一個(gè)監(jiān)聽(tīng)jb2 = new JButton(返回); /定義一個(gè)按鈕返回jb2.addActionListener(this); /jb1申請(qǐng)一個(gè)監(jiān)聽(tīng)p3.add(jb1);p3.add(jb2);content = this.getContentPane(); /布局定義con
22、tent.setLayout(new BorderLayout();content.add(p2, BorderLayout.CENTER); /定義中部為面板p2content.add(p3, BorderLayout.SOUTH); /定義底部為面板p3this.pack();this.setTitle(自 動(dòng) 取 款); /定義為窗口名稱(chēng) this.setBounds(300, 300, 400, 300); / 定義窗口的大小this.setResizable(false);this.show();public void actionPerformed(ActionEvent e) /
23、接口監(jiān)聽(tīng)類(lèi)if (e.getSource() = 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() + 元!);/一個(gè)提示框填出你成功取了多少key.quqian(money); /把存的錢(qián)傳回客戶(hù)類(lèi)jtf1.setText(0);elseJOptionPane
24、.showMessageDialog(this, 提取金額不許超過(guò)五千);elseJOptionPane.showMessageDialog(this, 取款許為一百的整數(shù));elseJOptionPane.showMessageDialog(this, 金額不足不許透支);/一個(gè)提示框提示你你的卡即將要已透支if (e.getSource() = jb2)/判斷是是否是jb2new XUANZE(key); /返回XUANZEsetVisible(false); 取款界面取款成功 金額不足取款失敗提示 提取金額不許超過(guò)五千 提取金額需為一百的整數(shù)4.6 查詢(xún)余額模塊設(shè)計(jì):class CHAX
25、UN extends JFrame implements ActionListener /導(dǎo)入接口類(lèi)JPanel p2, p3; /定義個(gè)面板JLabel l1; /定義個(gè)標(biāo)簽JButton jb1; /定義個(gè)按鈕 Container content; /定義一個(gè)容器kehu key; /定義客戶(hù)類(lèi)傳從參數(shù)keypublic CHAXUN(kehu key) this.key=key; /把key傳到頂層容器 p2=new JPanel(); /定義面板 l1=new JLabel(您的剩余金額為:+ key.getJine(); p2.add(l1); p3=new JPanel(); /定
26、義面板 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.SOUTH); /定義底部為面板p3 this.pack(); this.setTitle(查 詢(xún) 余 額); /定義為窗口名稱(chēng) this.setBounds(30
27、0, 300, 400, 300); / 定義窗口的大小 this.setResizable(false); this.show(); public void actionPerformed(ActionEvent e) /接口監(jiān)聽(tīng)類(lèi)if (e.getSource() = jb1) /判斷是否是jb1 new XUANZE(key); /返回XUANZEsetVisible(false); 開(kāi)戶(hù)資金10000元存700后查詢(xún)余額再取款900后查詢(xún)余額4.7修改密碼模塊設(shè)計(jì):class Xgmm extends JFrame implements ActionListener /導(dǎo)入接口類(lèi)JPa
28、nel p2, p3; /定義個(gè)面板JLabel l1, l2, l3, l4; /定義個(gè)標(biāo)簽JPasswordField jtf1, jtf2, jtf3; /定義個(gè)文本框JButton jb1, jb2; /定義個(gè)按鈕Container content; /定義一個(gè)容器kehu key; /定義客戶(hù)類(lèi)傳從參數(shù)keypublic Xgmm(kehu key)this.key=key; /把key傳到頂層容器 p2=new JPanel(); /定義第二個(gè)面板l2=new JLabel(請(qǐng)輸入原始密碼:); /定義標(biāo)簽請(qǐng)輸入原始密碼:l3=new JLabel(輸入要修改的密碼:); /定義標(biāo)
29、簽輸入要修改的密碼l4=new JLabel(確認(rèn)輸入的新密碼:); /定義標(biāo)簽確認(rèn)輸入的新密碼:jtf1 = new JPasswordField(15); /定義文本框jtf1jtf2 = new JPasswordField(15); /定義文本框jtf2 jtf3=new JPasswordField(15); /定義文本框jtf3 p2.add(l2); p2.add(jtf1); p2.add(l3); p2.add(jtf2);p2.add(l4);p2.add(jtf3);p3=new JPanel(); /定義面板 jb1 = new JButton(確定); /定義按鈕jb
30、1 確定 jb1.addActionListener(this); /jb1申請(qǐng)監(jiān)聽(tīng) jb2 = new JButton(返回登錄); /定義按鈕jb2 放回登錄 jb2.addActionListener(this); /jb2申請(qǐng)監(jiān)聽(tīng) p3.add(jb1); p3.add(jb2); content = this.getContentPane(); /布局定義 content.setLayout(new BorderLayout(); content.add(p2,BorderLayout.CENTER); /定義中部為面板p2 content.add(p3,BorderLayout.S
31、OUTH); /定義底部為面板p3 this.pack(); this.setTitle(修 改 密 碼); /定義為窗口名稱(chēng) this.setBounds(300, 300, 400, 300); / 定義窗口的大小 this.setResizable(false); this.show(); /顯示 public void actionPerformed(ActionEvent e) /接口監(jiān)聽(tīng)類(lèi)if (e.getSource() = jb1) /判斷是否是jb1if (jtf1.getText().equals(key.pswf) /判斷是否是你輸入的pswf正確if (jtf2.get
32、Text().equals(jtf3.getText()/判斷是否是jtf2和jtf3相等不if (jtf2.getText().length()=6)if (jtf2.getText().equals() | jtf2.getText().equals() | jtf2.getText().equals() | jtf2.getText().equals() | jtf2.getText().equals() | jtf2.getText().equals() | jtf2.getText().equals() | jtf2.getText().equals() | jtf2.getText().equals() | jtf2.getText().equals() j
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)生禮讓課件
- 2025年蘇州市初中地理中考地理及答案
- 室顫教學(xué)查房課件
- 場(chǎng)地使用權(quán)與客戶(hù)滿(mǎn)意認(rèn)證合同
- 車(chē)間承包與環(huán)保設(shè)施建設(shè)協(xié)議
- 施工現(xiàn)場(chǎng)安全責(zé)任連帶保證合同
- 電子產(chǎn)品典當(dāng)銷(xiāo)售合同
- 車(chē)輛借用保險(xiǎn)責(zé)任免除與損害賠償合同
- 字畫(huà)典當(dāng)貸款協(xié)議書(shū)
- 彩鋼瓦屋面施工及屋頂綠化一體化合同樣本
- 網(wǎng)絡(luò)安全漏洞挖掘與報(bào)告
- 埋地消防管滲漏整改工程施工方案
- 裝飾裝修施工人員安全知識(shí)培訓(xùn)考試試卷及答案
- 2023年上海市普通高中學(xué)業(yè)水平合格性考試地理試題及答案
- 宿舍消防安全培訓(xùn)課件
- 2024版小學(xué)一年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)模擬試卷
- 江蘇2024年江蘇省美術(shù)館招聘筆試歷年典型考題及考點(diǎn)附答案解析
- 2023-2024學(xué)年浙江省杭州市小升初考試數(shù)學(xué)試卷含解析
- DZ∕T 0215-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 煤(正式版)
- 中國(guó)特色社會(huì)主義民族發(fā)展理論研究
評(píng)論
0/150
提交評(píng)論