版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p> 1課程設(shè)計(jì)題目描述和基本設(shè)計(jì)要求</p><p><b> 2 系統(tǒng)需求分析</b></p><p> 2.1 功能需求分析</p><p> 2.2 其他需求分析</p><p><
2、b> 3系統(tǒng)設(shè)計(jì)</b></p><p> 3.1 總體設(shè)計(jì)</p><p> 3.2 ATM柜員機(jī)界面設(shè)計(jì)</p><p> 3.3 各功能模塊設(shè)計(jì)</p><p> 3.3.1 登陸頁(yè)面模塊設(shè)計(jì)</p><p> 3.3.2 選擇服務(wù)模塊設(shè)計(jì)</p>
3、<p> 3.3.3 取款模塊設(shè)計(jì)</p><p> 3.3.4 退卡模塊設(shè)計(jì)</p><p> 3.4 異常處理情況說(shuō)明</p><p> 4 系統(tǒng)實(shí)現(xiàn)與測(cè)試</p><p><b> 5總程序</b></p><p><b> 6 課程設(shè)計(jì)總結(jié)
4、</b></p><p> 6.1 遇到的問(wèn)題及解決辦法</p><p> 6.2 心得體會(huì)</p><p><b> ATM柜員機(jī)</b></p><p> 1 課程設(shè)計(jì)題目描述和基本設(shè)計(jì)要求</p><p> ATM柜員機(jī)主要是由各個(gè)Windows窗口組成,它是
5、由登錄頁(yè)面、選擇服務(wù)、取款、查詢余額、修改密碼和退卡等功能。它的各種按鈕的事件和功能可以簡(jiǎn)單的模擬ATM柜員機(jī)的要求。</p><p><b> 2 系統(tǒng)需求分析</b></p><p> 2.1 功能需求分析</p><p><b> 主要功能如下所述:</b></p><p> 要求使
6、用圖形用戶界面。當(dāng)輸入給定的卡號(hào)和密碼(初始卡號(hào)為000000和密碼為123456)時(shí),系統(tǒng)能登錄ATM柜員機(jī)系統(tǒng),用戶可以按照以下規(guī)則進(jìn)行:</p><p> 查詢余額:初始余額為50000元</p><p> ATM取款:每次取款金額為100的倍數(shù),總額不超過(guò)5000元,支取金額不允許透支。</p><p> ATM存款:不能出現(xiàn)負(fù)存款。</p>
7、;<p> 修改密碼:只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。</p><p> 2.2 其他需求分析</p><p><b> ?。?)性能描述</b></p><p> 實(shí)時(shí)性好、靈活性強(qiáng)、易于不同年齡階段的人操作。</p><p><b> ?。?)
8、設(shè)計(jì)約束</b></p><p> 開(kāi)發(fā)工具:JCrator ProV3.5.0</p><p> 運(yùn)行環(huán)境:Windows 2000以上</p><p> 能實(shí)現(xiàn)用戶所定義的各項(xiàng)需求。</p><p><b> ?。?)界面要求</b></p><p> 以Windows窗口
9、形式顯示,標(biāo)題欄為ATM柜員機(jī)名稱,右上角有最小化按鈕、最大化按鈕、關(guān)閉按鈕,不同的窗口中有不同的按鈕和選擇菜單。</p><p><b> 3 系統(tǒng)設(shè)計(jì)</b></p><p><b> 3.1 總體設(shè)計(jì)</b></p><p> 我所設(shè)計(jì)的ATM柜員機(jī)主要是由登錄頁(yè)面模塊還由選擇服務(wù)模塊組成,其中選擇服務(wù)模塊又
10、由取款模塊、查詢余額模塊、修改密碼模塊、退卡模塊組成。其功能結(jié)構(gòu)圖如下所示:</p><p> 圖1 ATM功能結(jié)構(gòu)示意圖</p><p> 3.2 ATM柜員機(jī)界面設(shè)計(jì)</p><p> 一個(gè)系統(tǒng)界面的好壞直接影響到用戶的操作,界面設(shè)計(jì)要求樣式美觀、簡(jiǎn)單明了、方便易操作。界面主要分為窗體、菜單、按鈕和文本輸入框幾個(gè)部分,分別執(zhí)行相應(yīng)的操作。</p
11、><p><b> ?。?)窗體的設(shè)計(jì)</b></p><p> 窗體整個(gè)框架使用Frame類構(gòu)造,F(xiàn)rame有自己的外邊框和自己的標(biāo)題,創(chuàng)建Frame時(shí)可以指定其窗口標(biāo)題,我創(chuàng)建的窗口標(biāo)題是各個(gè)不同功能的模塊的名字,比如說(shuō)查詢余額,還有取款等。相應(yīng)源代碼為:WindowBox(String s,Account act){super(“ATM柜員機(jī)”);} 、Selec
12、tion(String s,Account act){</p><p><b> super(s);</b></p><p><b> }</b></p><p> 向Frame窗口中添加組件使用add()。</p><p> 例如:button1 = new Button("存款
13、");</p><p> p1.add(button1);</p><p> this.add(p1);</p><p> 每個(gè)Frame在其右上角都有三個(gè)控制圖標(biāo),分別代表將窗口最小化、窗口最大化和關(guān)閉的操作,其中最小化和最大化操作Frame可自動(dòng)完成,而關(guān)閉窗口操作實(shí)現(xiàn)需要書(shū)寫(xiě)有關(guān)的代碼,在我的程序中我采用的是對(duì)WINDOWS_CLOSING事件
14、做出響應(yīng),調(diào)用dispose()方法關(guān)閉窗口。Frame也可以引發(fā)WindowsEvent類代表的窗口事件。相應(yīng)源代碼為:</p><p> addWindowListener(new WindowAdapter() //窗口偵聽(tīng)器,以從此窗口接收窗口事件</p><p> {public void windowClosing(WindowEvent e) //處理窗口關(guān)閉事件 &l
15、t;/p><p> {System.exit(0);}</p><p><b> });</b></p><p><b> }</b></p><p> ?。?)窗體的主要結(jié)構(gòu)的設(shè)計(jì)</p><p> 我所設(shè)計(jì)的窗口的主要結(jié)構(gòu)的特點(diǎn)就是每個(gè)窗口都對(duì)應(yīng)著一個(gè)特定的功能。
16、比如說(shuō)報(bào)各種各樣的錯(cuò),還有各種查詢余額、取款、選擇服務(wù)等,所以它們都是由各種按鈕和文本框,標(biāo)簽組成的,而聯(lián)系各個(gè)窗體成為一個(gè)整體的就是各個(gè)按鈕的監(jiān)聽(tīng)事件。所以整個(gè)設(shè)計(jì)就趨向簡(jiǎn)單化了。</p><p> 為了定義各個(gè)按鈕所對(duì)應(yīng)的命令和操作,首先需要將各個(gè)按鈕注冊(cè)給實(shí)現(xiàn)了動(dòng)作事件的監(jiān)聽(tīng)接口ActionListener的監(jiān)聽(tīng)者,然后為監(jiān)聽(tīng)者定義actionPerformed(ActionEvent e)方法,在這個(gè)方
17、法中調(diào)用e.getSource()或e.getActionCommand()來(lái)判斷用戶點(diǎn)擊的菜單子項(xiàng),并完成這個(gè)菜單子項(xiàng)定義的操作。</p><p> 3.3 各功能模塊設(shè)計(jì)</p><p> 3.3.1 登陸頁(yè)面模塊設(shè)計(jì)</p><p> 與ATM柜員機(jī)打交道比較多的,也是大家對(duì)安全比較關(guān)心的問(wèn)題:密碼。所以第一個(gè)界面就是要輸入密碼和卡號(hào)才能繼續(xù)服務(wù)。&
18、lt;/p><p> 我定義了文本框累的對(duì)象tf1,tf2。抓藥是用于輸入單行的文本;文本區(qū)調(diào)用public String getText()方法,獲取用戶想要的字符串。用來(lái)判斷輸入的密碼和卡號(hào)是否正確,如果不正確的話,則彈出密碼或卡號(hào)錯(cuò)誤的警告框,并用dispose()關(guān)掉窗口。</p><p> 3.3.2 選擇服務(wù)模塊設(shè)計(jì)</p><p> 在選擇服務(wù)模塊
19、中,有各種ATM的服務(wù)功能,只要用戶在該界面中選擇按鈕,它就會(huì)彈出各個(gè)相應(yīng)的界面。每一個(gè)按鈕都有監(jiān)聽(tīng)器,在選擇了按鈕后,java.awt.event中的ActionEvent類創(chuàng)建一個(gè)事件對(duì)象,并將它傳遞給方法public void actionPerformed(ActionEvent e)中的參數(shù)e,監(jiān)視器就會(huì)知道所發(fā)生的事件,對(duì)此事件進(jìn)行處理。</p><p> 3.3.3 取款模塊設(shè)計(jì)</p&g
20、t;<p> 在取款模塊中,和其他的界面也是同樣的結(jié)構(gòu)。也是有一個(gè)文本框和一個(gè)按鈕還有標(biāo)簽組成的。用戶在文本框中輸入他想取的數(shù)額,但是必須是100的倍數(shù),而且每一次最多只能取5000塊。當(dāng)然了取款的時(shí)候也不能超過(guò)卡里的余額,再就是卡里的余額不可以為負(fù),否則就會(huì)彈出報(bào)錯(cuò)的窗口。3.3.4 退卡模塊設(shè)計(jì)</p><p> 在退卡模塊設(shè)計(jì)中,這個(gè)方法就更加的簡(jiǎn)單了,它只是用了if(e.getSour
21、ce()==button4){//退出</p><p> System.exit(0);</p><p> dispose();</p><p><b> }</b></p><p> 這個(gè)方法就可以實(shí)現(xiàn)了,這里就不再多說(shuō)了。</p><p> 3.4 異常處理情況說(shuō)明</p&g
22、t;<p> ?。?)打開(kāi)、保存文件時(shí)的異常處理</p><p> 需要處理的異常:IOException</p><p> ?。?)數(shù)據(jù)庫(kù)訪問(wèn)時(shí)的異常處理</p><p> 需要處理的異常:SQLException</p><p> (3)加載類時(shí)的異常處理</p><p> 需要處理的異常:C
23、lassNotFindException,當(dāng)應(yīng)用程序試圖使用Class類中的forName方法通過(guò)字符串名加載類時(shí),但是沒(méi)有找到具有指定名稱的類的定義。</p><p> ?。?)加載URL時(shí)的異常</p><p> 需要處理的異常:MalformedURLException,拋出這一異常指示出現(xiàn)了錯(cuò)誤的 URL?;蛘咴谝?guī)范字符串中找不到任何合法協(xié)議,或者無(wú)法分析字符串。</p&g
24、t;<p><b> 4 系統(tǒng)實(shí)現(xiàn)與測(cè)試</b></p><p> 編譯運(yùn)行程序后,將會(huì)看到如下的界面,如圖2所示。如果輸入的密碼或卡號(hào)不正確的話就會(huì)報(bào)右下圖的錯(cuò)誤。</p><p> 圖2 主界面—登陸頁(yè)面</p><p> ?。?)選擇服務(wù)界面效果</p><p> 當(dāng)輸入的密碼和卡號(hào)正確,單
25、擊確定后就會(huì)進(jìn)入到選擇服務(wù)的界面,如圖3所示。然后就可以選擇所需要的服務(wù)了。</p><p> 圖3 選擇服務(wù)界面</p><p> (3)取款界面,如圖4所示。</p><p><b> 圖4 取款界面</b></p><p> ?。?)查詢余額界面,如圖7所示。</p><p>
26、圖7 查詢余額界面</p><p><b> 圖8 存款界面</b></p><p><b> 圖9 轉(zhuǎn)賬界面</b></p><p> 經(jīng)過(guò)測(cè)試,所有的功能基本上都實(shí)現(xiàn)了,而且運(yùn)行正常。</p><p><b> 5 . 總程序</b></p>&
27、lt;p> package ZDC;</p><p><b> //主菜單</b></p><p> import java.awt.*;import java.sql.Connection;</p><p> import java.sql.DriverManager;</p><p> import
28、java.sql.ResultSet;</p><p> import java.sql.SQLException;</p><p> import java.sql.Statement;</p><p> import javax.swing.*;</p><p> import java.awt.event.*;</p>
29、;<p> class Panel1 extends JPanel{</p><p> JLabel label1,label2;</p><p><b> Panel1(){</b></p><p> setLayout(new GridLayout(4,1));</p><p> label1
30、=new JLabel(" "+"銀行存取款系統(tǒng)");label2=new JLabel(" "+"歡迎你成為本行用戶,你可以選擇中文或英文方式");</p><p> add(new JLabel());add(label1)
31、;add(label2);add(new JLabel());</p><p><b> }</b></p><p><b> }</b></p><p> class Panel2 extends JPanel{</p><p> JButton button1,button2;</
32、p><p><b> Panel2(){</b></p><p> setLayout(new GridLayout(3,6));</p><p> button1=new JButton("中文");button2=new JButton("英文");</p><p> ad
33、d(new JLabel());add(new JLabel());add(new JLabel());add(new JLabel());add(new JLabel());</p><p> add(new JLabel());add(new JLabel());add(button1);add(new JLabel());add(new JLabel());</p><p> a
34、dd(button2);add(new JLabel());add(new JLabel());add(new JLabel());add(new JLabel());</p><p> add(new JLabel());add(new JLabel());add(new JLabel());</p><p><b> }</b></p><
35、p><b> }</b></p><p> class Client extends JFrame implements ActionListener{</p><p> Panel1 panel1;Panel2 panel2;JFrame frame;</p><p> Client(String s){</p>
36、<p><b> super(s);</b></p><p> Container con=this.getContentPane();</p><p> con.setLayout(new GridLayout(2,1));</p><p> panel1=new Panel1();panel2=new Panel2();&
37、lt;/p><p> con.add(panel1);con.add(panel2);</p><p> panel2.button1.addActionListener(this);</p><p> panel2.button2.addActionListener(this);</p><p> this.setVisible(tru
38、e);this.pack();</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e){</p><p> if(e.getActionCommand()=="中文"){</p><p> this.setV
39、isible(false);</p><p> new Client00("輸入密碼");</p><p><b> }</b></p><p> else if(e.getActionCommand()=="英文"){String inputValue = JOptionPane.showInpu
40、tDialog("Please input a value");}</p><p><b> }</b></p><p><b> }</b></p><p> public class menu{</p><p> public static void main(Str
41、ing []args){</p><p> new Client("用戶取款系統(tǒng)");</p><p><b> }}</b></p><p> package ZDC;</p><p><b> // 輸入密碼界面</b></p><p> i
42、mport java.awt.*;import java.sql.Connection;</p><p> import java.sql.DriverManager;</p><p> import java.sql.ResultSet;</p><p> import java.sql.SQLException;</p><p>
43、 import java.sql.Statement;</p><p> import javax.swing.*;</p><p> import java.awt.event.*;</p><p> class Panel01 extends JPanel{</p><p> JLabel label1,label2,label3
44、,label4;JPasswordField textA;JTextField textC;</p><p> static JTextField textB;char t[]=new char[4]; </p><p> Panel01(){</p><p> setLayout(new GridLayout(4,4));</p>
45、<p> for(int i=0;i<4;i++){t[i]=(char)(Math.random()*26+'a');}</p><p> String mm=new String(t);</p><p> label2=new JLabel("請(qǐng)輸入卡號(hào):");label1=new JLabel("請(qǐng)輸入密碼:&quo
46、t;);</p><p> label3=new JLabel();label4=new JLabel("請(qǐng)輸入驗(yàn)證碼:");label3.setBackground(Color.white);</p><p> label3.setForeground(Color.red);</p><p> textC=new JTextField(1
47、0);textC.setForeground(Color.blue);</p><p> label3.setText(mm);</p><p> textA=new JPasswordField(6);textA.setEchoChar('*');textB=new JTextField("");</p><p> for
48、(int i=0;i<5;i++){add(new JLabel());}</p><p> add(label2);add(textB);add(new JLabel());add(new JLabel());</p><p> add(label1);add(textA);add(new JLabel());add(new JLabel());</p><
49、p> add(label4);add(textC);add(label3);</p><p><b> }</b></p><p><b> }</b></p><p> class Panel02 extends JPanel{</p><p> JButton button1,b
50、utton2;</p><p> Panel02(){</p><p> setLayout(new GridLayout(3,6));</p><p> button1=new JButton("確定");button2=new JButton("取消");</p><p> for(int
51、i=0;i<7;i++){add(new JLabel());}add(button1);add(new JLabel());add(new JLabel());</p><p> add(button2);for(int i=0;i<6;i++){add(new JLabel());}</p><p><b> }</b></p>&l
52、t;p><b> }</b></p><p> class Client00 extends JFrame implements ActionListener{</p><p> Panel01 panel1;Panel02 panel2;JFrame frame;int i=0,j=0;</p><p> Client00(St
53、ring s){</p><p><b> super(s);</b></p><p> Container con=this.getContentPane();</p><p> con.setLayout(new GridLayout(2,1));</p><p> panel1=new Panel01();
54、panel2=new Panel02();</p><p> con.add(panel1);con.add(panel2);</p><p> panel2.button1.addActionListener(this);</p><p> panel2.button2.addActionListener(this);</p><p>
55、; this.setVisible(true);this.pack();</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e){</p><p> char[] passwords=panel1.textA.getPassword();String
56、password=new String("000000");</p><p> //設(shè)置賬號(hào)123456789的初始密碼為112626,每輸入一次都有提示,在連續(xù)輸入三次不正確后系統(tǒng)自動(dòng)退出。</p><p> if(e.getActionCommand().equals("確定"))</p><p> if(panel
57、1.textC.getText().equals(panel1.label3.getText())){</p><p><b> heshi();</b></p><p><b> }</b></p><p> else{JOptionPane.showMessageDialog(frame,"你輸入的驗(yàn)證
58、碼有誤,請(qǐng)重新輸入。");}</p><p> else if(e.getActionCommand()=="取消"){this.setVisible(false);new Client08("");} </p><p><b> }</b></p><p> public void h
59、eshi(){</p><p> if(panel1.textA.getText().equals("")||panel1.textB.getText().equals(""))</p><p> {JOptionPane.showMessageDialog(frame," 請(qǐng)輸入賬號(hào)、密碼!");</p&
60、gt;<p><b> return;}</b></p><p><b> try{</b></p><p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p> Connection con=DriverManager.
61、getConnection("jdbc:odbc:hello","","");//連接數(shù)據(jù)庫(kù)</p><p> Statement sql=con.createStatement(); </p><p> String ql=panel1.textB.getText();</p><p> Resu
62、ltSet rs=sql.executeQuery("select cnima from card where cno="+ql+"");</p><p> if(rs.next()){</p><p> String qerycmima=panel1.textA.getText();</p><p> String s
63、=rs.getString(1);</p><p> if(qerycmima.equals(s)){</p><p> JOptionPane.showMessageDialog(frame," 連接成功!");</p><p> this.setVisible(false);new Client01(&q
64、uot;用戶取款系統(tǒng)");</p><p> }else{ if(i!=2){i++;j=3-i;</p><p> JOptionPane.showMessageDialog(frame,"密碼有誤! 你還有"+j+"次機(jī)會(huì),請(qǐng)你再仔細(xì)想想.");</p><p> panel1.textA.setText(
65、"");}</p><p> else {JOptionPane.showMessageDialog(frame,"對(duì)不起,你輸入的密碼次數(shù)達(dá)三次,下次再見(jiàn)。");System.exit(0);}</p><p><b> }</b></p><p> con.close();</p>
66、<p> frame.repaint();</p><p><b> }</b></p><p> else{JOptionPane.showMessageDialog(null," 該用戶不存在,重新輸入!","警告!", JOptionPane.YES_NO_OPTION);</
67、p><p> panel1.textA.setText("");panel1.textB.setText("");panel1.textC.setText("");return;}</p><p> }catch(SQLException g){</p><p> System.out.println(&
68、quot;E Code"+g.getErrorCode());</p><p> System.out.println("E M"+g.getMessage());</p><p> } catch(Exception e) {</p><p> e.printStackTrace();</p><p>&
69、lt;b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> class Inputpassword{</p><p> public static void main(String []args){</p&g
70、t;<p> new Client00("用戶取款系統(tǒng)");</p><p><b> }}</b></p><p> package ZDC;</p><p><b> //選擇界面</b></p><p> import java.awt.*;impo
71、rt java.sql.Connection;</p><p> import java.sql.DriverManager;</p><p> import java.sql.ResultSet;</p><p> import java.sql.SQLException;</p><p> import java.sql.Stat
72、ement;</p><p> import javax.swing.*;</p><p> import java.awt.event.*;</p><p> class Panel03 extends JPanel{</p><p> JButton button1,button2,button3,button4,button5;
73、</p><p> Panel03(){</p><p> setLayout(new GridLayout(8,6));</p><p> button1=new JButton("查詢");button2=new JButton("取款");</p><p> button3=new JBu
74、tton("轉(zhuǎn)賬");button4=new JButton("退出");button5=new JButton("存款");</p><p> for(int i=0;i<7;i++){add(new JLabel());}add(button1);add(new JLabel());add(new JLabel());</p>
75、<p> add(button2);for(int i=0;i<8;i++){add(new JLabel());}add(button3);add(new JLabel());add(new JLabel());add(button5);</p><p> for(int i=0;i<17;i++){add(new JLabel());}add(button4);for(int i=0
76、;i<7;i++){add(new JLabel());}</p><p><b> }</b></p><p><b> }</b></p><p> class Client01 extends JFrame implements ActionListener{</p><p>
77、Panel03 panel1;JFrame frame;</p><p> Client01(String s){</p><p><b> super(s);</b></p><p> Container con=this.getContentPane();</p><p> panel1=new Panel0
78、3();con.add(panel1);</p><p> panel1.button1.addActionListener(this);panel1.button2.addActionListener(this);</p><p> panel1.button3.addActionListener(this);panel1.button4.addActionListener(this
79、);panel1.button5.addActionListener(this);</p><p> this.setVisible(true);this.pack();</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e){</p>&
80、lt;p> if(e.getActionCommand()=="取款"){</p><p> this.setVisible(false);</p><p> new Client02("請(qǐng)選擇取款金額");</p><p><b> }</b></p><p>
81、else if(e.getActionCommand()=="查詢"){</p><p> this.setVisible(false);</p><p> new Client06("查詢服務(wù)");</p><p><b> }</b></p><p> else if(
82、e.getActionCommand()=="存款"){</p><p> this.setVisible(false);</p><p> new Client05("請(qǐng)選擇存款金額");</p><p><b> }</b></p><p> else if(e.get
83、ActionCommand()=="轉(zhuǎn)賬"){</p><p> this.setVisible(false);</p><p> new Client04("用戶轉(zhuǎn)賬服務(wù)");</p><p><b> }</b></p><p> else if(e.getAction
84、Command()=="退出"){ this.setVisible(false);new Client08(""); } </p><p><b> }</b></p><p><b> }</b></p><p> class Selectfunction{</p>
85、;<p> public static void main(String []args){</p><p> new Client01("用戶取款系統(tǒng)");</p><p> new Client01("用戶存款系統(tǒng)");</p><p><b> }</b></p>
86、<p><b> }</b></p><p> package ZDC;</p><p><b> //查詢功能</b></p><p> import java.awt.*;import java.sql.Connection;</p><p> import java.sql
87、.DriverManager;</p><p> import java.sql.ResultSet;</p><p> import java.sql.SQLException;</p><p> import java.sql.Statement;</p><p> import javax.swing.*;</p>
88、<p> import ZDC.Panel01;</p><p> import java.awt.event.*;</p><p> class Panel06 extends JPanel{</p><p> JLabel label1,label2;JTextField textA;JFrame frame;</p><
89、p> Panel06(){</p><p> setLayout(new GridLayout(4,4));label1=new JLabel("你的余額為:");</p><p> textA=new JTextField(6); </p><p> for(int i=0;i<5;i++){add(new JLa
90、bel());}</p><p> add(label1);add(textA);for(int i=0;i<9;i++){add(new JLabel());}</p><p><b> }</b></p><p><b> }</b></p><p> class Panel07
91、extends JPanel{</p><p> JButton button1,button2;</p><p> Panel07(){</p><p> setLayout(new GridLayout(3,6));</p><p> button1=new JButton("繼續(xù)");button2=new
92、JButton("查詢");</p><p> for(int i=0;i<7;i++){add(new JLabel());}add(button2);add(new JLabel());add(new JLabel());</p><p> add(button1);for(int i=0;i<7;i++){add(new JLabel());}&l
93、t;/p><p><b> }</b></p><p><b> }</b></p><p> class Client03 extends JFrame implements ActionListener{</p><p> Panel06 panel1;Panel07 panel2;<
94、/p><p> Client03(String s){</p><p><b> super(s);</b></p><p> Container con=this.getContentPane();</p><p> con.setLayout(new GridLayout(2,1));</p>&l
95、t;p> panel1=new Panel06();panel2=new Panel07();</p><p> con.add(panel1);con.add(panel2);</p><p> panel2.button1.addActionListener(this);</p><p> panel2.button2.addActionListe
96、ner(this);</p><p> this.setVisible(true);this.pack();</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e){</p><p> if(e.getActionCommand
97、().equals("繼續(xù)")){</p><p> this.setVisible(false);</p><p> new Client01("選擇服務(wù)種類");</p><p><b> }</b></p><p> else if(e.getActionComman
98、d()=="查詢")showcjine();</p><p><b> }</b></p><p> public void showcjine(){</p><p> //String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ
99、=bankSystem.mdb";//程序直接使用當(dāng)前類目錄下的數(shù)據(jù)庫(kù)文件</p><p><b> try{</b></p><p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p> Connection con=DriverManager.g
100、etConnection("jdbc:odbc:hello","","");//連接數(shù)據(jù)庫(kù)</p><p> Statement sql=con.createStatement();String ql=Panel01.textB.getText();</p><p> Class.forName("sun.jdbc.
101、odbc.JdbcOdbcDriver");</p><p> ResultSet rs=sql.executeQuery("select cjine from card where cno="+ql+"");</p><p> if(rs.next()){</p><p> String ucjine=rs.
102、getString(1);</p><p> panel1.textA.setText(ucjine);</p><p><b> }</b></p><p> else{JOptionPane.showMessageDialog(null," 該用戶不存在","警告!", J
103、OptionPane.YES_NO_OPTION);}</p><p> con.close();</p><p> }catch(Exception ex) {</p><p> ex.printStackTrace();</p><p><b> }</b></p><p><b
104、> }</b></p><p><b> }</b></p><p> class Searchfunction{</p><p> public static void main(String []args){</p><p> new Client03("用戶查詢服務(wù)"
105、);</p><p><b> }}</b></p><p> package ZDC;</p><p><b> //查詢信息</b></p><p> import java.awt.*;import java.sql.Connection;</p><p>
106、import java.sql.DriverManager;</p><p> import java.sql.ResultSet;</p><p> import java.sql.SQLException;</p><p> import java.sql.Statement;</p><p> import javax.swin
107、g.*;</p><p> import java.awt.event.*;</p><p> class Panel11 extends JPanel{</p><p> JButton button1,button2;</p><p> Panel11(){</p><p> setLayout(new
108、GridLayout(10,5));</p><p> button1=new JButton("查詢余額");</p><p> button2=new JButton("查本卡信息");</p><p> for(int i=0;i<=16;i++)add(new JLabel());</p>&
109、lt;p> add(button1);</p><p> for(int i=0;i<=13;i++)add(new JLabel());</p><p> add(button2);</p><p> for(int i=0;i<=16;i++)add(new JLabel());</p><p><b>
110、; }</b></p><p><b> }</b></p><p> class Client06 extends JFrame implements ActionListener{</p><p> Panel11 panel11;JFrame frame;</p><p> Client06(
111、String s){</p><p><b> super(s);</b></p><p> Container con=this.getContentPane();</p><p> panel11=new Panel11();</p><p> con.add(panel11);</p><
112、;p> panel11.button1.addActionListener(this);</p><p> panel11.button2.addActionListener(this);</p><p> this.setVisible(true);this.pack();</p><p><b> }</b></p>
113、;<p> public void actionPerformed(ActionEvent e){</p><p> if(e.getActionCommand()=="查詢余額"){</p><p> this.setVisible(false);</p><p> new Client03("用戶查詢服務(wù)&qu
114、ot;);</p><p><b> }</b></p><p> else if(e.getActionCommand()=="查本卡信息"){</p><p> this.setVisible(false);</p><p> new Client07("本卡信息");
115、</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> class Searchinformation{</p><p> public static void ma
116、in(String []args){</p><p> new Client06("查詢服務(wù)");</p><p><b> }</b></p><p><b> }</b></p><p> package ZDC;</p><p><b&
117、gt; //轉(zhuǎn)賬功能</b></p><p> import java.awt.*;import java.sql.Connection;</p><p> import java.sql.DriverManager;</p><p> import java.sql.ResultSet;</p><p> import
118、 java.sql.SQLException;</p><p> import java.sql.Statement;</p><p> import javax.swing.*;</p><p> import ZDC.Panel01;</p><p> import java.awt.event.*;</p><
119、;p> class Panel08 extends JPanel{</p><p> JLabel label1,label2;JTextField textA,textB;</p><p> Panel08(){</p><p> setLayout(new GridLayout(4,4));</p><p> label1
120、=new JLabel("輸入預(yù)轉(zhuǎn)賬號(hào):");label2=new JLabel("輸入預(yù)轉(zhuǎn)金額:");</p><p> textA=new JTextField(6); textB=new JTextField(6); </p><p> for(int i=0;i<5;i++){add(new JLabel());}<
121、/p><p> add(label1);add(textA);for(int i=0;i<6;i++){add(new JLabel());}</p><p> add(label2);add(textB);add(new JLabel());</p><p><b> }</b></p><p><b&g
122、t; }</b></p><p> class Panel09 extends JPanel{</p><p> JButton button1,button2;</p><p> Panel09(){</p><p> setLayout(new GridLayout(3,6));</p><p&g
123、t; button1=new JButton("確定");button2=new JButton("取消");</p><p> add(new JLabel());add(new JLabel());add(new JLabel());add(new JLabel());add(new JLabel());</p><p> add(new
124、JLabel());add(new JLabel());add(button1);add(new JLabel());add(new JLabel());</p><p> add(button2);add(new JLabel());add(new JLabel());add(new JLabel());add(new JLabel());</p><p> add(new JLab
125、el());add(new JLabel());add(new JLabel());</p><p><b> }</b></p><p><b> }</b></p><p> class Client04 extends JFrame implements ActionListener{</p>&
126、lt;p> Panel08 panel1;Panel09 panel2;JFrame frame;</p><p> Client04(String s){</p><p><b> super(s);</b></p><p> Container con=this.getContentPane();</p><
127、;p> con.setLayout(new GridLayout(2,1));</p><p> panel1=new Panel08();panel2=new Panel09();</p><p> con.add(panel1);con.add(panel2);</p><p> panel2.button1.addActionListener(t
128、his);</p><p> panel2.button2.addActionListener(this);</p><p> this.setVisible(true);this.pack();</p><p><b> }</b></p><p> public void actionPerformed(Ac
溫馨提示
- 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ù)僅提供信息存儲(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ì)銀行存取款管理系統(tǒng)
- vb課程設(shè)計(jì)--銀行存取款管理系統(tǒng)
- 銀行存取款業(yè)務(wù)受理課程設(shè)計(jì)
- vb課程設(shè)計(jì)--銀行存取款管理
- 銀行存取款管理課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)-銀行atm存取款機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告(銀行存取款管理設(shè)計(jì))
- c語(yǔ)言課程設(shè)計(jì)--銀行存取款業(yè)務(wù)
- c語(yǔ)言課程設(shè)計(jì)銀行存取款業(yè)務(wù)8
- 自助存取款系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)---模擬銀行存取款業(yè)務(wù)
- 銀行存取款管理系統(tǒng)設(shè)計(jì)
- atm自動(dòng)存取款機(jī)服務(wù)指南
- 銀行存取款
- 信息管理與信息系統(tǒng)課程設(shè)計(jì)--銀行atm機(jī)存取款系統(tǒng)分析與設(shè)計(jì)
- 銀行自動(dòng)存取款機(jī)(atm機(jī))怎樣存錢
- c_課程設(shè)計(jì)—自動(dòng)存取款機(jī)軟件設(shè)計(jì)
- 畢業(yè)論文-銀行存取款系統(tǒng)
- atm機(jī)課程設(shè)計(jì)--atm自動(dòng)粗取款系統(tǒng)
- 銀行存取款轉(zhuǎn)賬費(fèi)
評(píng)論
0/150
提交評(píng)論