版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p><b> 1 前言1</b></p><p><b> 2 需求分析1</b></p><p> 2.1 任務(wù)和要求1</p><p> 2.2 運(yùn)行環(huán)境1</p><p>
2、 2.3 開發(fā)工具1</p><p><b> 3 分析和設(shè)計(jì)2</b></p><p> 3.1 系統(tǒng)分析及設(shè)計(jì)思路2</p><p> 3.2 主要類圖2</p><p> 4 具體代碼實(shí)現(xiàn)5</p><p> 5 課程設(shè)計(jì)總結(jié)5</p><p>
3、 5.1 程序運(yùn)行結(jié)果或預(yù)期運(yùn)行結(jié)果16</p><p> 5.2 設(shè)計(jì)結(jié)論16</p><p><b> 參考文獻(xiàn)20</b></p><p><b> 致 謝21</b></p><p><b> 1 前言</b></p><p>
4、; 本次的課程設(shè)計(jì),主要是編寫一個(gè)程序來管理ATM機(jī)模擬系統(tǒng)。ATM機(jī)模擬系統(tǒng)主要是由各個(gè)Windows窗口組成,它是由登錄頁(yè)面、選擇服務(wù)、存款、取款、查詢余額、修改密碼和退卡等功能。它的各種按鈕的事件和功能可以簡(jiǎn)單的模擬ATM機(jī)系統(tǒng)的要求。</p><p><b> 2 需求分析</b></p><p><b> 2.1 任務(wù)和要求</b>
5、;</p><p> 設(shè)計(jì)一個(gè)ATM機(jī)模擬系統(tǒng)。要求:</p><p> 可以登錄ATM柜員機(jī)系統(tǒng),用戶可以按照以下規(guī)則進(jìn)行:查詢余額:初始余額為50000元;ATM取款:每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支;ATM存款:不能出現(xiàn)負(fù)存款;修改密碼:只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。以Windows窗口形式顯示,標(biāo)題
6、欄為ATM機(jī)名稱,右上角有最小化按鈕、最大化按鈕、關(guān)閉按鈕,不同的窗口中有不同的按鈕和選擇菜單。</p><p><b> 2.2 運(yùn)行環(huán)境</b></p><p> ?。?)WINDOWS7/XP系統(tǒng)</p><p> ?。?)myeclipse</p><p><b> 2.3 開發(fā)工具</b&g
7、t;</p><p><b> Java </b></p><p><b> 3 分析和設(shè)計(jì)</b></p><p> 3.1 系統(tǒng)分析及設(shè)計(jì)思路</p><p> ATM機(jī)模擬系統(tǒng)主要是由登錄頁(yè)面模塊還由選擇服務(wù)模塊組成,其中選擇服務(wù)模塊又由存款模塊、取款模塊、查詢余額模塊、修改密碼模塊、
8、退卡模塊組成。</p><p> 登錄頁(yè)面模塊:我們對(duì)于ATM機(jī)最關(guān)心的是安全問題,當(dāng)然是密碼,所以第一個(gè)界面就是要輸入密碼和卡號(hào)才能繼續(xù)服務(wù)。首先定義了文本框類的對(duì)象tf1,tf2,用于輸入單行的文本;調(diào)用public String getPassword()方法,獲取用戶想要的字符串;判斷輸入的密碼和卡號(hào)是否正確,如果不正確的話,則彈出密碼或卡號(hào)錯(cuò)誤的警告框,并用dispose()關(guān)掉窗口。定義一個(gè)Acco
9、unt類來實(shí)現(xiàn)這一功能。</p><p> 選擇服務(wù)模塊:在選擇服務(wù)模塊中,有各種ATM的服務(wù)功能,只要用戶在該界面中選擇按鈕,它就會(huì)彈出各個(gè)相應(yīng)的界面。每一個(gè)按鈕都有監(jiān)聽器,在選擇了按鈕后,java.awt.event中的ActionEvent類創(chuàng)建一個(gè)事件對(duì)象,并將它傳遞給方法public void actionPerformed(ActionEvent e)中的參數(shù)e,監(jiān)視器就會(huì)知道所發(fā)生的事件,對(duì)此事件
10、進(jìn)行處理。定義一個(gè)Selection類來實(shí)現(xiàn)這一功能。其中部分代碼:</p><p> p.add(new Label("請(qǐng)選擇你要的服務(wù)"));</p><p> this.add(p);</p><p> /*各種服務(wù)功能*/</p><p> buttonCUN = new Button(" 存
11、 款 ");</p><p> p1.add(buttonCUN);this.add(p1);</p><p> buttonQU = new Button(" 取 款 ");</p><p> p2.add(buttonQU);this.add(p2);</p><p> but
12、tonCHA = new Button(" 查詢余額 ");</p><p> p3.add(buttonCHA);this.add(p3);</p><p> buttonGAI = new Button(" 修改密碼 ");</p><p> p4.add(buttonGAI);this.add(p4);<
13、/p><p> buttonTUI = new Button(" 退 出 ");</p><p> p5.add(buttonTUI);this.add(p5);</p><p> 存款模塊:在存款模塊中,有一個(gè)文本框和一個(gè)按鈕還有標(biāo)簽組成的。用戶在文本框中輸入他想存的數(shù)額,但是必須是100的倍數(shù)且是正整數(shù)。否則就會(huì)彈出報(bào)錯(cuò)的
14、窗口。定義一個(gè)SetBalance類來實(shí)現(xiàn)這一功能。</p><p> 取款模塊:在取款模塊中,也是有一個(gè)文本框和一個(gè)按鈕還有標(biāo)簽組成的。用戶在文本框中輸入他想取的數(shù)額,但是必須是100的倍數(shù),而且每一次最多只能取5000元塊。當(dāng)然了取款的時(shí)候也不能超過卡里的余額,再就是卡里的余額不可以為負(fù),否則就會(huì)彈出報(bào)錯(cuò)的窗口。定義一個(gè)GetBalance類來實(shí)現(xiàn)這一功能。部分代碼為:</p><p&g
15、t; public String withdrawMoney(double money){</p><p> String str = null ;</p><p> if(money<=0){</p><p> str = "取款數(shù)目須是正數(shù)!";</p><p><b> }else{<
16、/b></p><p> if(getMoney()<0){//判斷余額是否為負(fù)</p><p> str="余額為負(fù)數(shù)!";</p><p> }else if(money<=getMoney()){</p><p> if((money%100!=0)||(money>=5000)){/
17、/取錢數(shù)為100的倍數(shù)或不大于5000</p><p> str= "取款數(shù)目須是一百的整數(shù)倍!";</p><p><b> }else{</b></p><p> setBalance(money);</p><p> str = "取款成功:余額為"+getMoney
18、();</p><p><b> }</b></p><p> }else{ str = "余額不足!";</p><p><b> }</b></p><p><b> }</b></p><p> retur
19、n str ;</p><p><b> }</b></p><p> 查詢余額模塊:,運(yùn)用panel1.add(new Label("你的余額為: " + act.getMoney()));方法來查詢的你余額,余額可以是任何格式的,沒有要求限制。定義了一個(gè)Query類來實(shí)現(xiàn)這一功能。</p><p> 修改密碼模塊:
20、在修改密碼模塊中,首先你必須要輸入你的舊密碼是否正確,否則就會(huì)報(bào)錯(cuò)。再一個(gè)就是要兩次輸入你的新密碼,且兩次要匹配,否則也會(huì)報(bào)錯(cuò),然后再重新回到修改密碼的界面。定義了一個(gè)ChangePassword類,來實(shí)現(xiàn)這一功能。</p><p> 退卡模塊:在退卡模塊設(shè)計(jì)中,只是用了</p><p> if(e.getSource()==buttonTUI)</p><p>
21、;<b> {//退出</b></p><p> System.exit(0);</p><p> dispose();</p><p><b> }</b></p><p> 這個(gè)方法就可以實(shí)現(xiàn)了。</p><p><b> 3.2 主要類圖</
22、b></p><p> 圖3.1 ATM機(jī)模擬系統(tǒng)類圖</p><p> 4 具體代碼實(shí)現(xiàn)(主要源代碼)</p><p><b> Account類</b></p><p> package com.syxy.kcsj.account;</p><p><b> /**
23、</b></p><p><b> * 帳戶</b></p><p> * 該類為實(shí)現(xiàn)客戶信息及部分功能</p><p><b> */</b></p><p> public class Account {</p><p> private Strin
24、g code = null; //信用卡號(hào)</p><p> private String name = null; //客戶姓名</p><p> private String password= null; //客戶密碼</p><p> private double money = 0.0; //卡里金額</p>
25、;<p> public Account(){this.code = "123456" ;this.password = "123456" ;}</p><p> public Account(String code,String name,String password,double money)</p><p> {
26、this.code=code; this.name=name;</p><p> this.password=password;this.money=money;}</p><p> public String getCode() {//取得卡號(hào)return code; }</p><p> public String getName() {/
27、/取得名字return name;}</p><p><b> /**</b></p><p><b> * 取得密碼</b></p><p><b> * @return</b></p><p><b> */</b></p>
28、<p> public String getPassword() {return password;}</p><p><b> /**</b></p><p><b> * 重置秘密的方法</b></p><p><b> */</b></p><p>
29、 public void changePassword(String pwd){password = pwd; }</p><p> public double getMoney(){//取得余額return money;}</p><p><b> /**</b></p><p> * 得到剩余的錢的數(shù)目</p>
30、<p><b> */</b></p><p> private void setBalance(double mon) {money -= mon;}</p><p><b> /**</b></p><p><b> * 取款設(shè)置</b></p><
31、p><b> * 若成功顯示余額</b></p><p> * 不成功顯示提示信息</p><p><b> */</b></p><p> public String withdrawMoney(double money){</p><p> String str = null ;
32、</p><p> if(money<=0){ str = "取款數(shù)目須是正數(shù)!";</p><p><b> }else{</b></p><p> if(getMoney()<0){//判斷余額是否為負(fù)</p><p> str="余額為負(fù)數(shù)!";<
33、/p><p> }else if(money<=getMoney()){</p><p> if((money%100!=0)||(money>5000)){</p><p> //取錢數(shù)為100的倍數(shù)或不大于5000</p><p> str= "取款數(shù)目須是一百的整數(shù)倍且不大于5000!";</p
34、><p> }else{setBalance(money);</p><p> str = "取款成功:余額為"+getMoney();}</p><p> }else{ str = "余額不足!"; } }</p><p> return str ;}</p>
35、;<p><b> /**</b></p><p><b> * 存款設(shè)置</b></p><p><b> * 若成功顯示余額</b></p><p> * 不成功顯示提示信息</p><p><b> */</b></p&
36、gt;<p> public String depositMoney(double money){String str = null ;</p><p> if((money<0)||(money%100!=0)||(money<=100)){</p><p> str ="存款數(shù)目須是正數(shù)且是一百的倍數(shù)!";</p>&
37、lt;p> }else{setBalance(-money);</p><p> str = "存款成功:余額為"+getMoney();}</p><p> return str ;}}</p><p> WindowBox 類</p><p> package com.syxy.kcsj.W
38、indowBox;</p><p> import javax.swing.*;</p><p> import com.syxy.kcsj.Selection.Selection;</p><p> import com.syxy.kcsj.account.Account;</p><p> import java.awt.*;&l
39、t;/p><p> import java.awt.event.*;</p><p><b> /**</b></p><p><b> * 登陸頁(yè)面首窗口</b></p><p><b> */</b></p><p> @SuppressWar
40、nings("serial")</p><p> public class WindowBox extends Frame implements ActionListener{</p><p> Box baseBox,box1,box2; TextField tf1;</p><p> JPasswordField tf2; Bu
41、tton button1; Button button2;</p><p> public WindowBox(String s){//構(gòu)造方法</p><p> super(s); tf1 = new TextField(6); tf2 = new JPasswordField(6);</p><p> box1= Box.createVe
42、rticalBox();</p><p> box1.add(new Label("請(qǐng)輸入您的卡號(hào)")); //輸入卡號(hào)</p><p> box1.add(Box.createVerticalStrut(8));</p><p> box1.add(new Label("請(qǐng)輸入您的密碼"));//輸入密碼</p&
43、gt;<p> box2=Box.createVerticalBox();box2.add(tf1);</p><p> box2.add(Box.createVerticalStrut(8));box2.add(tf2);</p><p> baseBox=Box.createHorizontalBox();baseBox.add(box1);</p&
44、gt;<p> baseBox.add(Box.createHorizontalStrut(10)); baseBox.add(box2);</p><p> add(baseBox);button1= new Button("確定");//加入按鈕</p><p> button1.addActionListener(this);add(
45、button1);</p><p> button2 = new Button("退卡");//退卡按鈕button2.addActionListener(this);</p><p> add(button2);</p><p> setLayout(new FlowLayout());</p><p><
46、b> /*監(jiān)聽器*/</b></p><p> this.addWindowListener(new WindowAdapter(){</p><p> public void windowClosing(WindowEvent e){</p><p> System.exit(0);}});</p><p&
47、gt; setBounds(120,125,300,200);</p><p> setVisible(true); }</p><p> public void actionPerformed(ActionEvent e){Account act;</p><p> act=new Account("000000","k
48、csj","123456",50000);//初始化</p><p> /*選擇各種服務(wù)*/</p><p> if(e.getSource() == button1){</p><p> String number1,number2;//輸入的兩個(gè)卡號(hào)和密碼的變量</p><p> number1=tf
49、1.getText().toString();</p><p> number2 = new String(tf2.getPassword()) ;</p><p> /*判斷兩次輸入的卡號(hào)和密碼是否正確*/</p><p> if((act.getCode().equals(number1))&&(act.getPassword().eq
50、uals(number2))){</p><p> dispose();</p><p> new Selection("選擇服務(wù)",act);</p><p> }else{JOptionPane.showMessageDialog(this, "密碼或帳號(hào)錯(cuò)誤!","賬戶提示信息",JOption
51、Pane.ERROR_MESSAGE );</p><p> dispose();new WindowBox("ATM") ;}}</p><p> if(e.getSource()==button2){</p><p> System.exit(0); dispose();//退出}} }</p>
52、<p><b> Query類</b></p><p> package com.syxy.kcsj.Query;</p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> import com.sun.mail.
53、imap.ACL;</p><p> import com.syxy.kcsj.Selection.Selection;</p><p> import com.syxy.kcsj.account.Account;</p><p> @SuppressWarnings("serial")</p><p> publ
54、ic class Query extends Frame implements ActionListener{</p><p> Button button;Account act;</p><p> public Query(String s,Account act){//構(gòu)造函數(shù)super(s);</p><p> this.act = act;
55、button=new Button("確定");</p><p> Panel panel1 = new Panel(); Panel panel = new Panel();</p><p> panel1.add(new Label("你的余額為:" + act.getMoney()));//查詢余額的方法</p><
56、p> this.add(panel1); this.add(panel); button.addActionListener(this);</p><p> panel.add(button);this.setLayout(new GridLayout(2,1));</p><p> this.addWindowListener(new WindowAdapter()
57、{</p><p> public void windowClosing(WindowEvent e){</p><p> System.exit(0);}});</p><p> setBounds(200,200,200,150); setVisible(true);}</p><p> public void acti
58、onPerformed(ActionEvent e){</p><p> if(e.getSource()==button){</p><p> dispose(); new Selection("選擇服務(wù)",act);//返回選擇服務(wù)窗口</p><p><b> }} }</b></p>
59、<p> GetBalance 類</p><p> package com.syxy.kcsj.GetBalance;</p><p> import com.syxy.kcsj.Selection.Selection;</p><p> import com.syxy.kcsj.account.Account;</p><p
60、> import javax.swing.*;</p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> @SuppressWarnings("serial")</p><p> public class GetBalanc
61、e extends Frame implements ActionListener{</p><p> Box baseBox, box1,box2;</p><p> Button button;TextField tf; Account act;</p><p> public GetBalance(String s,Account act){//構(gòu)造
62、函數(shù)</p><p> super(s); this.act=act; button=new Button("確定");</p><p> Panel panel = new Panel();Panel panel1 = new Panel();</p><p> tf = new TextField(6);this.setLay
63、out(new GridLayout(2,1));</p><p> panel1.add(new Label("請(qǐng)輸入你想取錢的數(shù)目"));</p><p> panel1.add(tf); panel.add(button);</p><p> this.add(panel1); this.add(panel);</p
64、><p> button.addActionListener(this);</p><p> this.addWindowListener(new WindowAdapter(){</p><p> public void windowClosing(WindowEvent e){</p><p> System.exit(0);}
65、});</p><p> setBounds(200,200,300,200);</p><p> this.setVisible(true);}</p><p> public void actionPerformed(ActionEvent e){</p><p> double money; String str =
66、null ;</p><p><b> /*</b></p><p><b> * 取款判定</b></p><p><b> */</b></p><p> if(tf.getText().toString().equals("")){</p
67、><p> str = "取款數(shù)目不能為空!" ;</p><p><b> }else{</b></p><p> money = Double.parseDouble(tf.getText().toString());</p><p> str = act.withdrawMoney(mone
68、y);}</p><p> JOptionPane.showMessageDialog(this, str,"取款提示信息",JOptionPane.INFORMATION_MESSAGE);</p><p> dispose();this.setVisible(false);</p><p> new Selection("
69、選擇服務(wù)",act);} }</p><p> SetBalance 類</p><p> package com.syxy.kcsj.SetBalance;</p><p> import javax.swing.*;</p><p> import com.syxy.kcsj.Selection.Selection;
70、</p><p> import com.syxy.kcsj.account.Account;</p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> @SuppressWarnings("serial")</p>
71、<p> public class SetBalance extends Frame implements ActionListener{</p><p> Box baseBox, box1,box2;</p><p> Button button;TextField tf; Account act;</p><p> public Set
72、Balance(String s,Account act){//構(gòu)造函數(shù)</p><p> super(s); this.act=act; button=new Button("確定");</p><p> Panel panel = new Panel();Panel panel1 = new Panel();</p><p>
73、tf = new TextField(6); this.setLayout(new GridLayout(2,1));</p><p> panel1.add(new Label("請(qǐng)輸入你想存款的數(shù)目"));</p><p> panel1.add(tf); panel.add(button);</p><p> this.
74、add(panel1);this.add(panel);</p><p> button.addActionListener(this);</p><p> this.addWindowListener(new WindowAdapter(){</p><p> public void windowClosing(WindowEvent e){</p
75、><p> System.exit(0);}});</p><p> setBounds(200,200,300,200);</p><p> this.setVisible(true);}</p><p> public void actionPerformed(ActionEvent e){</p><p&
76、gt; double money;</p><p> String str = null ;</p><p> if(tf.getText().toString().equals("")){</p><p> str = "存款數(shù)目不能為空!" ;</p><p><b> }els
77、e{</b></p><p> money = Double.parseDouble(tf.getText().toString());</p><p> str = act.depositMoney(money) ;}</p><p> JOptionPane.showMessageDialog(this, str,"存款提示信息&
78、quot;,JOptionPane.INFORMATION_MESSAGE );</p><p> dispose();this.setVisible(false); new Selection("選擇服務(wù)",act);</p><p><b> }</b></p><p><b> }</
79、b></p><p> Selection 類</p><p> package com.syxy.kcsj.Selection;</p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> import com.syxy
80、.kcsj.GetBalance.GetBalance;</p><p> import com.syxy.kcsj.Query.Query;</p><p> import com.syxy.kcsj.SetBalance.SetBalance;</p><p> import com.syxy.kcsj.account.Account;</p>
81、<p> import com.syxy.kcsj.frameui.ChangePassword;</p><p> @SuppressWarnings("serial")</p><p> public class Selection extends Frame implements ActionListener{</p><p
82、> Button buttonCUN,buttonQU,buttonCHA,buttonTUI,buttonGAI;</p><p> Panel p1 = new Panel();Panel p2 = new Panel();</p><p> Panel p3 = new Panel();Panel p4 = new Panel();</p><p&
83、gt; Panel p5 = new Panel();Panel p = new Panel();</p><p> Account act;</p><p> public Selection(){}</p><p> public Selection(String s,Account act){</p><p> super(
84、s); this.act=act; this.setLayout(null);</p><p> this.setLayout(new GridLayout(6,1));</p><p> p.add(new Label("請(qǐng)選擇你要的服務(wù)"));</p><p> this.add(p);</p><p>
85、; /*各種服務(wù)功能*/</p><p> buttonCUN = new Button(" 存 款 ");</p><p> p1.add(buttonCUN); this.add(p1);</p><p> buttonQU = new Button(" 取 款 ");</p
86、><p> p2.add(buttonQU);this.add(p2);</p><p> buttonCHA = new Button(" 查詢余額 ");</p><p> p3.add(buttonCHA);this.add(p3);</p><p> buttonGAI = new Button(&q
87、uot; 修改密碼 ");</p><p> p4.add(buttonGAI);this.add(p4);</p><p> buttonTUI = new Button(" 退 出 ");</p><p> p5.add(buttonTUI);this.add(p5);</p><p&
88、gt; this.addWindowListener(new WindowAdapter(){</p><p> public void windowClosing(WindowEvent e){</p><p> System.exit(0);}});</p><p> buttonCUN.addActionListener(this);<
89、/p><p> buttonQU.addActionListener(this);</p><p> buttonCHA.addActionListener(this);</p><p> buttonTUI.addActionListener(this);</p><p> buttonGAI.addActionListener(thi
90、s);</p><p> setBounds(150,150,300,200);</p><p> setVisible(true);</p><p> validate();}</p><p> public void actionPerformed(ActionEvent e){</p><p> if
91、(e.getSource()==buttonCUN){//存款</p><p> dispose() ;new SetBalance("存款",act);</p><p> }else if(e.getSource()==buttonQU){//取款</p><p> dispose();new GetBalance("取
92、款",act);</p><p> }else if(e.getSource()==buttonCHA){//查詢余額</p><p> dispose();new Query("查詢余額",act);</p><p> }else if(e.getSource()==buttonGAI){//修改密碼</p>
93、<p> dispose();new ChangePassword("修改密碼",act);</p><p> }else if(e.getSource()==buttonTUI){//退出</p><p> System.exit(0);dispose();}} </p><p><b> }<
94、;/b></p><p> ChangePassword類</p><p> package com.syxy.kcsj.frameui;</p><p> import javax.swing.*;</p><p> import com.syxy.kcsj.Selection.Selection;</p>&l
95、t;p> import com.syxy.kcsj.account.Account;</p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> @SuppressWarnings("serial")</p><p> pub
96、lic class ChangePassword extends Frame implements ActionListener{</p><p> Panel panel1 = new Panel();Panel panel2 = new Panel();</p><p> Panel panel3 = new Panel();Panel panel = new Panel();
97、</p><p> JPasswordField tf4,tf5,tf6;Button button;Account act;</p><p> public ChangePassword(String s,Account act){</p><p> super(s);this.act=act;tf4 = new JPasswordField(
98、6);</p><p> tf5 = new JPasswordField(6); tf6 = new JPasswordField(6);</p><p> button = new Button("確定");button.addActionListener(this);</p><p><b> /*建立新密碼*/&l
99、t;/b></p><p> panel1.add(new Label("請(qǐng)輸入你的舊密碼:"));panel1.add(tf4);</p><p> panel2.add(new Label("請(qǐng)輸入你的新密碼:"));panel2.add(tf5);</p><p> panel3.add(new Labe
100、l("請(qǐng)?jiān)俅屋斎胄旅艽a:"));panel3.add(tf6);</p><p> panel.add(button);this.add(panel1);</p><p> this.add(panel2);this.add(panel3);this.add(panel);</p><p> setLayout(new Gr
101、idLayout(4,1));</p><p> setBounds(200,200,300,200);this.setVisible(true);</p><p> /*** 窗口事件, 判斷窗口是否關(guān)閉*/</p><p> this.addWindowListener(new WindowAdapter(){</p><p>
102、 public void windowClosing(WindowEvent e){</p><p> System.exit(0);}}); }</p><p> /*** 判斷事件源,看條件是否成立再修改密碼*/</p><p> public void actionPerformed(ActionEvent e){</p>&
103、lt;p> if(e.getSource()==button){</p><p> String pwd2,pwd3,pwd4,pwd1;char [] p2,p3,p4;</p><p> pwd1 = act.getPassword();p2=tf4.getPassword();</p><p> p3=tf5.getPassword();
104、 p4=tf6.getPassword();</p><p> pwd2 = new String(p2); pwd3 = new String(p3); pwd4 = new String(p4);</p><p> if(pwd2.equals(pwd1)){</p><p> if(pwd3.equals(pwd4)){//判斷兩次輸入的新密碼是
105、個(gè)匹配</p><p> act.changePassword(pwd3);//啟用新的密碼</p><p> dispose();</p><p> JOptionPane.showMessageDialog(this, "修改密碼成功!");</p><p> new Selection("選擇&qu
106、ot;,act);//返回選擇服務(wù)窗口</p><p><b> }else{</b></p><p> this.setVisible(true); dispose();</p><p> JOptionPane.showMessageDialog(this, "兩次輸入要修改的密碼不同,更新密碼失敗!");
107、</p><p> new Selection("選擇",act);} </p><p><b> }else{</b></p><p> this.setVisible(false);dispose();</p><p> JOptionPane.showMessageDialog
108、(this, "輸入密碼錯(cuò)誤,更新密碼失敗!"); </p><p> new Selection("選擇",act); } </p><p><b> }</b></p><p><b> } </b></p><p><b>
109、; }</b></p><p><b> ATM類</b></p><p> package com.syxy.kcsj.WindowBox;</p><p> public class ATM {</p><p><b> /**</b></p><p&g
110、t;<b> * 主測(cè)試程序</b></p><p> * @param args</p><p><b> */</b></p><p> public static void main(String[] args) {</p><p> new WindowBox("ATM&
111、quot;);</p><p><b> } </b></p><p><b> }</b></p><p><b> 5 課程設(shè)計(jì)總結(jié)</b></p><p> 5.1 程序運(yùn)行結(jié)果或預(yù)期運(yùn)行結(jié)果</p><p> 1、輸入的密碼或卡號(hào)不
112、正確的話就會(huì)報(bào)下圖的錯(cuò)誤。</p><p> 2、輸入的密碼和卡號(hào)正確,單擊確定后就會(huì)進(jìn)入到選擇服務(wù)的界面</p><p> 3、當(dāng)輸入的錢數(shù)不是100的倍數(shù)且不是正整數(shù)時(shí)就會(huì)出錯(cuò)誤。</p><p><b> 4、取款界面</b></p><p> 當(dāng)輸入的錢數(shù)不是100的倍數(shù)或每一次大于5000時(shí)就會(huì)報(bào)錯(cuò)誤&
113、lt;/p><p><b> ?。?、余額查詢界面</b></p><p><b> 修改密碼界面</b></p><p><b> 5.2 設(shè)計(jì)結(jié)論</b></p><p> 在本次課程設(shè)計(jì)中,我對(duì)Java語言的界面設(shè)計(jì)、Awt控件、Swing控件,輸入輸出流等有一定的認(rèn)識(shí),
114、綜合運(yùn)用了Java語言。我深刻感受到了面向?qū)ο笳Z言中類庫(kù)的強(qiáng)大功能,掌握了運(yùn)用Java中的類實(shí)現(xiàn)某些基本功能,并學(xué)會(huì)了自己查詢使用類的方法,為以后的面向?qū)ο笳Z言的自學(xué)奠定了基礎(chǔ)。</p><p> 這次的課程設(shè)計(jì)我已基本完成自己所設(shè)想的要求,但是在本次課程中,我遇到了很多的困難:比如在存款的時(shí)候能夠存負(fù)數(shù)和不是一百的倍數(shù);在取款的界面沒有標(biāo)題;取款最大值不能超過五千;在畫類圖的時(shí)候并不知道一個(gè)父類可以被多個(gè)子類
115、繼承;在編寫代碼的時(shí)候這些小問題都沒有考慮到,但經(jīng)過仔細(xì)的檢查,上網(wǎng)查閱資料,查詢過去的書籍,室友和同學(xué)的幫助,終于將這些小問題解決了。導(dǎo)致這些原因的出現(xiàn),是因?yàn)橐郧皩W(xué)的知識(shí)不扎實(shí),還有些知識(shí)我們都是沒有學(xué)過的,還有自己不仔細(xì)。</p><p> 通過將近兩周的努力,這次課程設(shè)計(jì)終于結(jié)束了,在這個(gè)過程當(dāng)中,我學(xué)到了很多的知識(shí),同時(shí)也感謝老師同學(xué)的幫助和指導(dǎo)。在以后的學(xué)習(xí)當(dāng)中,我會(huì)更加努力的學(xué)習(xí)好專業(yè)知識(shí),并將所
116、學(xué)的知識(shí)用于實(shí)踐當(dāng)中去,以便牢固掌握知識(shí)。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 王萌,劉婧,來賓著.JAVA程序設(shè)計(jì)[M]北京 冶金工業(yè)出版社,2004</p><p> [2] 黃聰明 精通 JAVA2程序設(shè)計(jì)[M]北京:清華大學(xué)出版社,2004.4</p><p> [3]
117、 王文濤,袁海燕 JAVA實(shí)用程序設(shè)計(jì)100例[M]北京:人民郵電出版社,2005.5</p><p> [4] 雍俊海 JAVA程序設(shè)計(jì)[M]北京:清華大學(xué)出版社,2006.8</p><p> [5] 劉寶林 JAVA程序設(shè)計(jì)與案例[M]北京:高等教育出版社,2006.11</p><p><b> 致 謝</b></p>
118、;<p> 這次實(shí)驗(yàn)得以圓滿完成,沒有老師的督導(dǎo),同學(xué)的支持,室友的鼓勵(lì),要想完成這次實(shí)驗(yàn)是難以想象的。</p><p> 在這次設(shè)計(jì)過程中,體現(xiàn)出自己?jiǎn)为?dú)設(shè)計(jì)能力以及綜合運(yùn)用知識(shí)的能力,體會(huì)了學(xué)以致用、突出自己勞動(dòng)成果的喜悅心情,從中發(fā)現(xiàn)自己平時(shí)學(xué)習(xí)的不足和薄弱環(huán)節(jié),從而加以彌補(bǔ)。</p><p> 在這里首先我要感謝的是我的指導(dǎo)老師**老師,老師平日里工作繁多,但在
119、我們做程序設(shè)計(jì)時(shí),她對(duì)我們程序的細(xì)心認(rèn)真的輔導(dǎo),耐心的教我們?nèi)绾螌懗绦驁?bào)告。讓我對(duì)java程序設(shè)計(jì)課程設(shè)這門課程也越來越了解,越來越感興趣了。除了敬佩**老師的專業(yè)水平外,她的治學(xué)嚴(yán)謹(jǐn)和科學(xué)研究的精神也是我永遠(yuǎn)學(xué)習(xí)的榜樣,并將積極影響我今后的學(xué)習(xí)和工作。</p><p> 其次我要感謝所有幫助過我的人以及我的隊(duì)友們,衷心的感謝你們給予我無私的幫助,如果沒有你們的幫助,要想完成這次實(shí)驗(yàn)是有困難的。</p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計(jì)atm機(jī)
- java課程設(shè)計(jì)報(bào)告--銀行atm機(jī)系統(tǒng)
- java課程設(shè)計(jì)--- atm柜員機(jī)
- java課程設(shè)計(jì)-atm柜員機(jī)模擬程序資料
- java課程設(shè)計(jì)報(bào)告---atm柜員機(jī)
- java課程設(shè)計(jì)---atm柜臺(tái)模擬說明書
- java課程設(shè)計(jì)---atm柜臺(tái)模擬說明書
- atm課程設(shè)計(jì)報(bào)告---簡(jiǎn)易atm機(jī)系統(tǒng)
- atm機(jī)課程設(shè)計(jì)--atm自動(dòng)粗取款系統(tǒng)
- java課程設(shè)計(jì)報(bào)告--atm存取款系統(tǒng)
- atm網(wǎng)絡(luò)編程cs課程設(shè)計(jì)--模擬atm機(jī)網(wǎng)絡(luò)編程
- java模擬atm系統(tǒng)
- java模擬atm系統(tǒng)畢業(yè)設(shè)計(jì)
- atm課程設(shè)計(jì)報(bào)告--atm管理系統(tǒng)
- 銀行atm自動(dòng)取款機(jī)系統(tǒng)課程設(shè)計(jì)
- 銀行atm自動(dòng)取款機(jī)系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告---atm自動(dòng)提款機(jī)系統(tǒng)
- atm課程設(shè)計(jì)報(bào)告---atm交易管理系統(tǒng)
- 基于java的atm模擬系統(tǒng)
- atm管理子系統(tǒng)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論