




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄1設(shè)計(jì)目的32功能介紹33概要設(shè)計(jì)33.1 需求分析33.2 自定義類說(shuō)明33.3 界面設(shè)計(jì)思想43.4 方法定義說(shuō)明44詳細(xì)設(shè)計(jì)44.1程序流程圖44.2登陸界面設(shè)計(jì)5具體實(shí)現(xiàn)過(guò)程5關(guān)鍵代碼設(shè)計(jì)65 設(shè)計(jì)心得與體會(huì)261設(shè)計(jì)目的使用圖形用戶界面。當(dāng)輸入給定的卡號(hào)和密碼(初始卡號(hào)和初始密碼)時(shí),系統(tǒng)能登錄atm柜員機(jī)系統(tǒng)2功能介紹(1)查詢余額:初始余額為10000元(2)atm取款:每次取款金額為100的倍數(shù),總額不超過(guò)5000元,支取金額不允許透支。(3)atm存款:不能出現(xiàn)負(fù)存款。(4)修改密碼:新密碼長(zhǎng)度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩
2、次輸入相同的情況下才可以成功修改密碼。3概要設(shè)計(jì)3.1 需求分析 使用atm機(jī)可以節(jié)約人力資源,方便用戶進(jìn)行簡(jiǎn)單常用操作,并且可以為用戶提供全天候的服務(wù),提高銀行效率。3.2 自定義類說(shuō)明 a: guest類定義客戶類,該類主要提供用戶的各種操作提供定義變量 b: dengru類為主類,主要有按鈕、文本框,組合框,標(biāo)簽,在組合中選擇賬號(hào),在密碼的文本框中輸入各個(gè)賬號(hào)所對(duì)應(yīng)的密碼,單擊登錄按鈕可以進(jìn)入選擇界面,如果密碼錯(cuò)誤,就會(huì)彈出對(duì)話框,提示“密碼錯(cuò)誤 ,拒絕登錄”。c:kq類為選擇界面模塊,在選擇模塊服務(wù)中,有各種atm的服務(wù)功能,只要在用戶該界面中選擇按鈕,它會(huì)彈出各個(gè)相應(yīng)的界面。d: z
3、dqk類為取款類,在取款模塊中,用戶在文本框中輸入它想取的數(shù)額,但必須是100的倍數(shù),否則會(huì)彈出報(bào)錯(cuò)窗口,而且每一次最多只能去5000快,否則會(huì)彈出報(bào)錯(cuò)窗口,當(dāng)然取款時(shí)不能超過(guò)卡里的余額沒(méi)卡里的余額不可以為負(fù)數(shù),否則會(huì)彈出報(bào)錯(cuò)的窗口。e: zdck類為自動(dòng)存款類,用戶在文本框中輸入它想存入的數(shù)額,單擊確定,就可以存入,如果輸錯(cuò)了或者是不想存了,可以單擊取消,退出的選擇界面。f: cxye類為查詢余額類,查詢余額的界面主要有文本框,標(biāo)簽,按鈕,主要功能是在上一級(jí)選擇菜單中選擇查詢余額,就會(huì)彈出查詢余額的這個(gè)對(duì)話框。g: xgmm類為修改密碼類,主要功能是先在輸入原始密碼的文本框中輸入原來(lái)的密碼,
4、然后在輸入要修改的密碼的文本框中輸入新密碼,新密碼長(zhǎng)度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。3.3 界面設(shè)計(jì)思想 圖形化界面設(shè)計(jì)3.4 方法定義說(shuō)明 通過(guò)dengru這個(gè)類登入kq類的界面選擇各種操作。4詳細(xì)設(shè)計(jì)4.1程序流程圖atm柜員機(jī)界面登入賬戶密碼碼進(jìn)入界面文本框輸入取款數(shù)額修改密碼查詢余額atm存款atm取款數(shù)額是否符合要求文本區(qū)輸入取款數(shù)額輸入新舊密碼顯示余額舊密碼是否正確 否 是 否 提示并確認(rèn)錯(cuò)誤提示取款成功重新輸入密碼根據(jù)提示操作返回進(jìn)入界面彈出確認(rèn)是是否繼續(xù)返回進(jìn)入界面 否否是否繼續(xù)是4.2登陸界
5、面設(shè)計(jì)具體實(shí)現(xiàn)過(guò)程dengru類繼承jframe類,有賬號(hào)選項(xiàng)和輸入密碼的文本框,在輸入密碼后登入按鈕登入,如果密碼錯(cuò)誤彈出提示,按要求修改后可重新登入。之后進(jìn)入kq類定義的atm機(jī)界面,選擇不同的選項(xiàng)進(jìn)入不同操作,在進(jìn)行各種操作是有錯(cuò)誤時(shí)可根據(jù)彈出的對(duì)話框進(jìn)行修改。 關(guān)鍵代碼設(shè)計(jì)import javax.swing.*;import javax.swing.event.*; import java.awt.*;import java.awt.event.*;import java.util.*;class guest / 定義客戶類string zh; /定義賬號(hào)string pswf; /
6、定義密碼double jine; /定義金額 public guest() /構(gòu)造guestpublic guest(string zh,string pswf,double jine)this.zh=zh; /帶入頂層容器,賬號(hào),密碼,金額this.pswf=pswf;this.jine=jine;string getzh() /定義成員變量賬號(hào)return zh; /成員方法double setmima(double pswf)/定義成員變量密碼return pswf;/成員方法 double getjine()/定義成員變量金額 return jine;/定義成員方法 void cunk
7、uan(double money)/定義成員變量存款 jine=jine+money; /定義成員方法 void quqian(double money)/定義成員變量取款 jine=jine-money; /定義成員方法 string xiugaim(string mi)/定義成員變量密碼 pswf = mi; /定義成員方法 return pswf; public class dengru extends jframe implements actionlistener /導(dǎo)入接口類 jpanel p1,p2,p3; jlabel l1,l2,l3,l4; jpasswordfield p
8、swf; jbutton jb1,jb2,jb3; jtextfield jtf1; jcombobox jc1; imageicon myimage; container content; guest g=new guest4; public dengru() g0=new guest(chengchao,199101,10000);帳號(hào),密碼,錢數(shù) g1=new guest(baijing,199102,10000); g2=new guest(gaolingling,199103,10000); g3=new guest(zhaofengying,199104,10000);p1 = n
9、ew jpanel(); myimage = new imageicon(yl1.jpg); l1 = new jlabel(myimage); 的上面p1.add(l1); p2 = new jpanel(); l2 = new jlabel(卡號(hào):); jc1 = new jcombobox(); jc1.additem( chengchao ); jc1.additem(baijing);jc1.additem(zhaofengying);jc1.additem(gaolingling); jc1.setselectedindex( 0 ); jc1.seteditable(true);
10、 l3=new jlabel(密 碼:); pswf=new jpasswordfield(12); l4 = new jlabel(如果沒(méi)有賬號(hào)請(qǐng)注冊(cè)不能登錄); /*jb3 = new jbutton(); p2.add(l2); p2.add(jc1);p2.add(l3);p2.add(pswf);p2.add(l4);/*p2.add(jb3);*/p3 = new jpanel(); /定義第三個(gè)面板 jb1 = new jbutton(登錄); /定義按鈕登錄jb1jb1.addactionlistener(this); /jb1申請(qǐng)監(jiān)聽(tīng)jb2 = new jbutton(注銷)
11、; /定義按鈕注銷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); /定義頂部為面板p1 content.add(p2,borderlayout.center); /定義中部為面板p2 content.add(p3,borderlayout.south); /定義底
12、部為面板p3 this.pack(); this.settitle(atm 柜員機(jī)); /定義為窗口名稱 this.setsize(600,300); / 定義窗口的大小 this.setresizable(false); this.show(); /顯示 this.setdefaultcloseoperation( jframe.exit_on_close );/ 關(guān)閉、退出 this.validate(); public void actionperformed(actionevent e ) /監(jiān)聽(tīng)類string x= jc1.getselecteditem().tostring();
13、/把jc1的值強(qiáng)制轉(zhuǎn)換成字符if(e.getsource()=jb1) /如果點(diǎn)擊是jb1按鈕就進(jìn)入forfor(int i=0;i4;i+) /判斷名字在數(shù)組的位置if(x.equals(gi.zh) /檢查到開(kāi)始判斷是否匹配 if(pswf.gettext().equals(gi.pswf) /名字匹配成功后判斷密碼是否成功 new kq(gi); /密碼真確后進(jìn)入kq的界面 setvisible( false); else joptionpane.showmessagedialog( this,密碼錯(cuò)誤,拒絕登陸); /密碼錯(cuò)誤彈出提示密碼錯(cuò)誤 elsesystem.exit(0); /
14、注銷事件退出 public static void main(string args) /定義的main,才能進(jìn)入。 new dengru(); class kq extends jframe implements actionlistener /導(dǎo)入接口類 jpanel p1,p2,p3; /定義3個(gè)面板jlabel l1; /定義1個(gè)標(biāo)簽jbutton jb1,jb2,jb3,jb4,jb5; /定義5個(gè)按鈕imageicon myimage; /定義導(dǎo)入圖片container content; /定義一個(gè)容器 guest key; /定義客戶類傳從參數(shù)keypublic kq(guest
15、 key) this.key =key; /把key傳到頂層容器p1 = new jpanel(); /定義第一個(gè)面板myimage = new imageicon(yl1.jpg); /定義填入的圖片l1 = new jlabel(myimage); /定義把圖片放在標(biāo)簽的上面p1.add(l1); p2 = new jpanel(); /定義第二個(gè)面板 jb1 = new jbutton(atm取款); /定義jb1按鈕atm取款 jb1.addactionlistener(this); /jb1申請(qǐng)監(jiān)聽(tīng)jb2 = new jbutton(atm存款); /定義jb2按鈕atm存款 jb2
16、.addactionlistener(this); /jb2申請(qǐng)監(jiān)聽(tīng)jb3 = new jbutton(查詢余額 ); /定義jb3按鈕查詢余額 jb3.addactionlistener(this); /jb3申請(qǐng)監(jiān)聽(tīng)jb4 = new jbutton(修改密碼); /定義jb4按鈕修改密碼 jb4.addactionlistener(this); /jb4申請(qǐng)監(jiān)聽(tīng)p2.add(jb1);p2.add(jb2);p2.add(jb3);p2.add(jb4);p3 = new jpanel(); /定義第三個(gè)面板 jb5 = new jbutton(退出); /定義jb5按鈕退出 jb5.a
17、ddactionlistener( /定義一個(gè)匿名類 new actionlistener() public void actionperformed( actionevent event ) system.exit(0); /退出登陸 );p3.add(jb5); content = this.getcontentpane(); /布局定義 content.setlayout(new borderlayout(); content.add(p1,borderlayout.north); /定義頂部為面板p1 content.add(p2,borderlayout.center); /定義中部
18、為面板p2 content.add(p3,borderlayout.south); /定義底部為面板p3 this.pack();this.settitle(進(jìn)入界面); /定義為窗口名稱this.setsize(400,300); / 定義窗口的大小 this.setresizable(false);this.show(); public void actionperformed ( actionevent event ) /接口監(jiān)聽(tīng) if (event.getsource()=jb4 ) /判斷是否是jb4 new xgmm(key); /進(jìn)入xgmm setvisible(false);
19、 if (event.getsource()=jb1 ) /判斷是否是jb1 new zdqk(key); /進(jìn)入zdqk setvisible(false); if (event.getsource()=jb2 ) /判斷是否是jb2 new zdck(key); /進(jìn)入zdck setvisible( false); if (event.getsource()=jb3 ) /判斷是否是jb3 new cxye(key); /進(jìn)入cxye setvisible( false); class zdck extends jframe implements actionlistener /導(dǎo)入接口
20、類 jpanel p1,p2,p3; /定義3個(gè)面板jlabel l1; /定義1個(gè)標(biāo)簽jbutton jb1,jb2; /定義2個(gè)按鈕jtextfield jtf1; /定義一個(gè)文本框imageicon myimage; /定義導(dǎo)入圖片container content; /定義一個(gè)容器guest key; /定義客戶類傳從參數(shù)keypublic zdck(guest key) this.key=key; /把key傳到頂層容器 p1=new jpanel(); /定義第一個(gè)面板 myimage = new imageicon(yl1.jpg); /定義填入的圖片 l1 = new jlab
21、el(myimage); /定義把圖片放在標(biāo)簽的上面 p1.add(l1); p2=new jpanel(); /定義第二個(gè)面板 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è)按鈕返
22、回 jb2.addactionlistener( /定義一個(gè)匿名類監(jiān)聽(tīng) new actionlistener() public void actionperformed(actionevent event) kqactionperformed(event); ); p3.add(jb1); p3.add(jb2); content=this.getcontentpane(); /布局定義 content.setlayout(new borderlayout(); content.add(p2,borderlayout.north); /定義頂部為面板p1 content.add(p2,bord
23、erlayout.center); /定義中部為面板p2 content.add(p3,borderlayout.south); /定義底部為面板p3 this.pack(); this.settitle(自 動(dòng) 存 款); /定義為窗口名稱 this.setsize(320,300); / 定義窗口的大小 this.setresizable(false); this.show(); /顯示 public void actionperformed (actionevent e) /接口監(jiān)聽(tīng)類 if(e.getsource()=jb1) /判斷是是否是jb1 double money = dou
24、ble.parsedouble(jtf1.gettext();/ 把money轉(zhuǎn)成double joptionpane.showmessagedialog(this,成功存款+jtf1.gettext()+元!);/一個(gè)提示框填出你成功存了多少 key.cunkuan(money); /把存的錢傳回客戶類 jtf1.settext(0); return; public void kqactionperformed ( actionevent event ) /匿名類監(jiān)聽(tīng)過(guò)程 if (event.getsource()=jb2 ) /判斷要是jb2 new kq(key); /返回kq界面 se
25、tvisible( false); class zdqk extends jframe implements actionlistener /導(dǎo)入接口類jpanel p1,p2,p3; /定義3個(gè)面板jlabel l1; /定義1個(gè)標(biāo)簽jbutton jb1,jb2; /定義2個(gè)按鈕jtextfield jtf1; /定義一個(gè)文本框imageicon myimage; /定義導(dǎo)入圖片container content; /定義一個(gè)容器 guest key; /定義客戶類傳從參數(shù)key public zdqk(guest key) this.key=key; /把key傳到頂層容器 p1=new
26、 jpanel(); /定義第一個(gè)面板 myimage = new imageicon(yl1.jpg); /定義填入的圖片 l1 = new jlabel(myimage); /定義把圖片放在標(biāo)簽的上面 p1.add(l1); p2=new jpanel(); /定義第二個(gè)面板 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è)
27、按鈕確定 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(); /布局定義 content.setlayout(new borderlayout(); content.add(p1,borderlayout.north); /定義頂部為面板p1 content.add(p2,borderlayout.center);
28、 /定義中部為面板p2 content.add(p3,borderlayout.south); /定義底部為面板p3 this.pack(); this.settitle(自 動(dòng) 取 款); /定義為窗口名稱 this.setsize(320,300); / 定義窗口的大小 this.setresizable(false); this.show(); public void actionperformed (actionevent e) /接口監(jiān)聽(tīng)類 if(e.getsource()=jb1) /判斷是是否是jb1 if(double.parsedouble(jtf1.gettext()%10
29、0=0&(double.parsedouble(jtf1.gettext()=5000&(double.parsedouble(jtf1.gettext()!=0) double money = double.parsedouble(jtf1.gettext();/ 把money轉(zhuǎn)成double if(moneykey.jine) joptionpane.showmessagedialog(this,成功取款+jtf1.gettext()+元!);/一個(gè)提示框填出你成功取了多少 key.quqian(money); /把存的錢傳回客戶類 jtf1.settext(0); return; els
30、e joptionpane.showmessagedialog(this,你的卡即將要已透支);/一個(gè)提示框提示你你的卡即將要已透支 else joptionpane.showmessagedialog(this,取款額必須為100的正整數(shù)倍且單次數(shù)額5000); if (e.getsource()=jb2 )/判斷是是否是jb2 new kq(key); /放回kq setvisible( false); class cxye extends jframe implements actionlistener /導(dǎo)入接口類jpanel p1,p2,p3; /定義3個(gè)面板jlabel l1; /
31、定義1個(gè)標(biāo)簽jbutton jb1; /定義3個(gè)按鈕 imageicon myimage; /定義導(dǎo)入圖片container content; /定義一個(gè)容器guest key; /定義客戶類傳從參數(shù)key public cxye(guest key) this.key=key; /把key傳到頂層容器 p1=new jpanel(); /定義第一個(gè)面板 myimage = new imageicon(yl1.jpg); /定義填入的圖片 l1 = new jlabel(myimage); /定義把圖片放在標(biāo)簽的上面 p1.add(l1); p2=new jpanel(); /定義第二個(gè)面板
32、l1=new jlabel(您的剩余金額為:+ key.getjine(); p2.add(l1); p3=new jpanel(); /定義第三個(gè)面板 jb1=new jbutton(返回); jb1.addactionlistener(this); p3.add(jb1); content=this.getcontentpane(); /布局定義 content.setlayout(new borderlayout(); content.add(p1,borderlayout.north); /定義頂部為面板p1 content.add(p2,borderlayout.center); /
33、定義中部為面板p2 content.add(p3,borderlayout.south); /定義底部為面板p3 this.pack(); this.settitle(查 詢 余 額); /定義為窗口名稱 this.setsize(320,300); / 定義窗口的大小 this.setresizable(false); this.show(); public void actionperformed ( actionevent e ) /接口監(jiān)聽(tīng)類 if (e.getsource()=jb1 ) /判斷是否是jb1 new kq(key); /放回kq setvisible( false);
34、 class xgmm extends jframe implements actionlistener /導(dǎo)入接口類jpanel p1,p2,p3; /定義3個(gè)面板jlabel l1, l2, l3, l4; /定義4個(gè)標(biāo)簽jtextfield jtf1,jtf2,jtf3; /定義3個(gè)文本框jbutton jb1,jb2; /定義2個(gè)按鈕imageicon myimage; /定義導(dǎo)入圖片container content; /定義一個(gè)容器guest key; /定義客戶類傳從參數(shù)keypublic xgmm(guest key)this.key=key; /把key傳到頂層容器p1 =
35、new jpanel(); /定義第一個(gè)面板myimage = new imageicon(yl1.jpg); /定義填入的圖片l1 = new jlabel(myimage); /定義把圖片放在標(biāo)簽的上面 p1.add(l1)p2=new jpanel(); /定義第二個(gè)面板l2=new jlabel(請(qǐng)輸入原始密碼:); /定義標(biāo)簽請(qǐng)輸入原始密碼:l3=new jlabel(輸入要修改的密碼:); /定義標(biāo)簽輸入要修改的密碼l4=new jlabel(確認(rèn)輸入的新密碼:); /定義標(biāo)簽確認(rèn)輸入的新密碼:jtf1=new jtextfield(15); /定義文本框jtf1jtf2=new jtextfield(15); /定義文本框jtf2 jtf3=new jtextfield(15); /定義文本框jtf3p2.add(l2); p2.add(jtf1); p2.add(l3);
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度高級(jí)管理人員競(jìng)業(yè)禁止合同
- 農(nóng)業(yè)生產(chǎn)資金投入與財(cái)務(wù)管理手冊(cè)
- 開(kāi)幕式致辭與未來(lái)發(fā)展展望報(bào)告
- 員工年終工作總結(jié)報(bào)告模板集萃
- 互聯(lián)網(wǎng)廣告投放及推廣合作協(xié)議
- 農(nóng)業(yè)生產(chǎn)投入品減量增效技術(shù)指導(dǎo)手冊(cè)
- 農(nóng)業(yè)產(chǎn)業(yè)扶貧政策及項(xiàng)目申報(bào)指導(dǎo)手冊(cè)
- 智能家居技術(shù)研發(fā)推廣合作協(xié)議
- 健身房客戶服務(wù)手冊(cè)
- 健身房健身器材租賃合同
- 環(huán)保監(jiān)測(cè)設(shè)備運(yùn)維服務(wù)
- 醫(yī)德醫(yī)風(fēng)考評(píng)內(nèi)容及量化考評(píng)標(biāo)準(zhǔn)
- 小學(xué)信息技術(shù)-第8冊(cè)全冊(cè)-6年級(jí)下-電子工業(yè)出版社
- 《網(wǎng)絡(luò)攻擊與防御》課件第四章 基于系統(tǒng)的攻擊與防御
- 供電一把手講安全課
- JTG∕T F30-2014 公路水泥混凝土路面施工技術(shù)細(xì)則
- 建設(shè)工程施工專業(yè)分包合同(GF-2003-0213)
- 司法心理學(xué)課件
- 耳鼻喉科各項(xiàng)規(guī)章制度
- 湖南科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試參考試題庫(kù)(含答案)
- 玻璃分化板制作工藝
評(píng)論
0/150
提交評(píng)論