Java課程設計實驗報告_第1頁
Java課程設計實驗報告_第2頁
Java課程設計實驗報告_第3頁
Java課程設計實驗報告_第4頁
Java課程設計實驗報告_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、河南機電高等??茖W校學生課程設計報告實驗課程名稱 Java程序設計 開課實驗室 實驗樓308機房 系、部 計科系 年級 11 專業(yè)班 軟件技術 學 生 姓 名 宋亞澎 學 號 111012228 開 課 時 間 2012 至 2013 學 年 第 一 學期總 成 績教師簽名Java程序設計課程設計報告 2012年12月24日系部計科系年級、專業(yè)、班軟件112(對口)姓名 宋亞澎課程名稱Java程序設計項目名稱ATM柜員機模擬程序指導教師戴冬教師評語教師簽名:戴冬年 月 日一、課程設計目的及要求目的:1.熟練掌握Java面向?qū)ο蟪绦蛟O計的基礎知識2.熟練掌握Java中常用的Swing組件的使用方

2、法3.熟練掌握使用JDBC操作數(shù)據(jù)庫的方法4.通過實訓,培養(yǎng)學生分析和解決實際問題的能力,提高調(diào)試和分析應用程序的能力,并為后續(xù)的Java高級編程等專業(yè)課程的學習奠定良好的基礎。要求:當輸入給定的卡號和密碼(初始卡號和密碼為123456)時,系統(tǒng)能登錄ATM柜員機系統(tǒng),用戶可以進行:1.查詢余額:初始余額為1000元2 .ATM取款:每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支3 .ATM存款:不能出現(xiàn)負存款4 .修改密碼:新密碼長度不小于6為,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。二、使用儀器、材料1.

3、開發(fā)工具:MyEclipse 8.5三、課程設計步驟1、 分析題目2、 根據(jù)自己的想法搭建程序主界面3、 為各菜單項添加事件處理程序四、課程設計原始記錄(數(shù)據(jù)、圖表、計算等)1、Guest 類代碼如下:public class Guest String zh; /定義賬號String pswf; /定義密碼double jine; /定義金額 public Guest() /構造GuestGuest(String zh,String pswf,double jine)this.zh=zh; /帶入頂層容器,賬號,密碼,金額this.pswf=pswf;this.jine=jine;String

4、 getzh() /定義成員變量賬號return zh; /成員方法double setMima(double pswf)/定義成員變量密碼return pswf; /成員方法 double getJine() /定義成員變量金額 return jine; /定義成員方法 void cunkuan(double money)/定義成員變量存款 jine=jine+money; /定義成員方法 void quqian(double money) /定義成員變量取款 jine=jine-money; /定義成員方法 String xiugai(String mi) /定義成員變量密碼 pswf =

5、 mi; /定義成員方法 return pswf; 2、ATM柜員機主界面模塊設計主界面的設計,主要有按鈕、文本框,組合框,標簽,在組合中選擇賬號,在密碼的文本框中輸入各個賬號所對應的密碼,單擊登錄按鈕可以進入選擇界面,如果密碼錯誤,就會彈出如圖3的對話框,提示“密碼錯誤 ,拒絕登錄”import javax.swing.*;import javax.swing.event.*; import java.awt.*;import java.awt.event.*; / 導入包public class DENGRU extends JFrame implements ActionListener

6、JPanel p1,p2,p3; /定義3個面板JLabel l1,l2,l3,l4; /定義4個標簽JPasswordField pswf; /定義一個密碼文本JButton jb1,jb2,jb3; /定義3個按鈕JTextField jtf1; /定義一個文本框JComboBox jc1; /定義一個組合框ImageIcon myimage; /定義導入圖片Container content; /定義一個容器Guest g=new Guest4; /定義客戶類數(shù)組public DENGRU() /布局 g0=new Guest("1001","123456&

7、quot;,10000);g1=new Guest("1002","123456",10000);g2=new Guest("1003","123456",10000);g3=new Guest("1004","123456",10000);p1 = new JPanel(); /定義第一個面板myimage = new ImageIcon("yl1.jpg"); /定義填入的圖片l1 = new JLabel(myimage); /定義把圖片放在標簽的上

8、面p1.add(l1); p2 = new JPanel(); /定義第二個面板l2 = new JLabel("卡號:"); /定義標簽l2 jc1 = new JComboBox(); /定義組合框jc1.addItem( "1001" ); /組合框里賦值jc1.addItem("1002");jc1.addItem("1003");jc1.addItem("1004");jc1.setSelectedIndex( 0 ); /組合框里的下標從0開始jc1.setEditable(true

9、); /里面還可以輸入l3=new JLabel("密 碼:"); /定義標簽l3pswf=new JPasswordField(12); /定義密碼文本p2.add(l2); /把它們分別鑲在面板上p2.add(jc1);p2.add(l3);p2.add(pswf);p3 = new JPanel(); /定義第三個面板 jb1 = new JButton("登錄"); /定義按鈕登錄jb1jb1.addActionListener(this); /jb1申請監(jiān)聽jb2 = new JButton("注銷"); /定義按鈕注銷jb

10、2jb2.addActionListener(this); /jb2申請監(jiān)聽p3.add(jb1); /把它們添加到p3面板里p3.add(jb2);content = this.getContentPane(); /布局定義content.setLayout(new BorderLayout(); content.add(p1,BorderLayout.NORTH); /定義頂部為面板p1content.add(p2,BorderLayout.CENTER); /定義中部為面板p2content.add(p3,BorderLayout.SOUTH); /定義底部為面板p3this.pack(

11、);this.setTitle("ATM CRS柜員機"); /定義為窗口名稱this.setSize(600,300); / 定義窗口的大小this.setResizable(false);this.show(); /顯示this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );/ 關閉、退出 public void actionPerformed(ActionEvent e ) /監(jiān)聽類String x= jc1.getSelectedItem().toString(); if(e.getSource()=jb1) /如果

12、點擊是jb1按鈕就進入For for(int i=0;i<4;i+) /判斷名字在數(shù)組的位置if(x.equals(gi.zh) /檢查到開始判斷是否匹配 if(pswf.getText().equals(gi.pswf) /名字匹配成功后判斷密碼是否成功 new KQ(gi); /密碼真確后進入KQ的界面 setVisible( false); else JOptionPane.showMessageDialog( this,"密碼錯誤,拒絕登陸"); pswf.setText(""); elseSystem.exit(0); /注銷事件退出 p

13、ublic static void main(String args) /定義的MAIN,才能進入。 new DENGRU(); 圖2主界面圖2-1密碼錯誤提示欄3、選擇界面模塊設計在選擇模塊服務中,有各種ATM的服務功能,只要在用戶該界面中選擇按鈕,它會彈出各個相應的界面,其中的代碼如下:import javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;public class KQ extends JFrame implements ActionListenerJPanel p

14、1,p2,p3; /定義3個面板JLabel l1; /定義1個標簽JButton jb1,jb2,jb3,jb4,jb5; /定義5個按鈕ImageIcon myimage; /定義導入圖片Container content; /定義一個容器Guest key; /定義客戶類傳從參數(shù)keypublic KQ(Guest key) this.key =key; /把key傳到頂層容器 p1 = new JPanel(); /定義第一個面板 myimage = new ImageIcon("yl1.jpg"); /定義填入的圖片 l1 = new JLabel(myimage

15、); /定義把圖片放在標簽的上面 p1.add(l1); 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("查詢余額 "); /定義jb3按鈕查詢余額 jb3.addActio

16、nListener(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 ActionListener() public void

17、 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); /定義中部為面板p2 content.add(p3,BorderLayout.SOUTH); /定義底部為面板p3 this.p

18、ack(); this.setTitle("進入界面"); /定義為窗口名稱 this.setSize(400,300); / 定義窗口的大小 this.setResizable(false); this.show(); public void actionPerformed ( ActionEvent event ) /接口監(jiān)聽 if (event.getSource()=jb4 ) /判斷是否是jb4 new Xgmm(key); /進入Xgmm setVisible( false); if (event.getSource()=jb1 ) /判斷是否是jb1 new

19、Zdqk(key); /進入Zdqk setVisible( false); if (event.getSource()=jb2 ) /判斷是否是jb2 new Zdck(key); /進入Zdck setVisible( false); if (event.getSource()=jb3 ) /判斷是否是jb3 new Cxye(key); /進入Cxye setVisible( false); 圖3進入KQ界面4、自動存款模塊設計在取款模塊中,和其它界面也是同樣的結構,有文本框和按鈕還有標簽,用戶在文本框中輸入它想存入的數(shù)額,單擊確定,就可以存入,如果輸錯了或者是不想存了,可以單擊取消,退

20、出的選擇界面。代碼如下所示:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Zdck extends JFrame implements ActionListener JPanel p1,p2,p3; /定義3個面板JLabel l1; /定義1個標簽JButton jb1,jb2; /定義2個按鈕JTextField jtf1; /定義一個文本框ImageIcon myimage; /定義導入圖片Container content; /定義一個容器Guest key; /定義客戶類傳從參數(shù)

21、keypublic Zdck(Guest key) this.key=key; /把key傳到頂層容器 p1=new JPanel(); /定義第一個面板 myimage = new ImageIcon("yl1.jpg"); /定義填入的圖片 l1 = new JLabel(myimage); p1.add(l1); p2=new JPanel(); /定義第二個面板 l1=new JLabel("請輸入您要存入的金額:"); jtf1 = new JTextField(10); /定義一個文本框 p2.add(l1); p2.add(jtf1); p

22、3=new JPanel(); /定義第三個面板 jb1=new JButton("確定"); /定義一個按鈕確定 jb1.addActionListener(this); /jb1申請一個監(jiān)聽 jb2=new JButton("返回"); /定義一個按鈕返回 jb2.addActionListener( /定義一個匿名類監(jiān)聽 new ActionListener() public void actionPerformed(ActionEvent event) KQActionPerformed(event); ); p3.add(jb1); p3.ad

23、d(jb2);content=this.getContentPane(); /布局定義content.setLayout(new BorderLayout();content.add(p1,BorderLayout.NORTH); /定義頂部為面板p1 content.add(p2,BorderLayout.CENTER); /定義中部為面板p2content.add(p3,BorderLayout.SOUTH); /定義底部為面板p3 this.pack(); this.setTitle("自 動 存 款"); /定義為窗口名稱 this.setSize(320,300)

24、; / 定義窗口的大小 this.setResizable(false); this.show(); /顯示 public void actionPerformed (ActionEvent e) /接口監(jiān)聽類 if(e.getSource()=jb1) /判斷是是否是jb1 double money = Double.parseDouble(jtf1.getText(); if(money<0) JOptionPane.showMessageDialog(this,"對不起,存的金額不能為負數(shù)!"); jtf1.setText(""); retu

25、rn; if(money%100!=0&&money>0) JOptionPane.showMessageDialog(this,"對不起,你所存的錢不是整百的!"); jtf1.setText(""); return; JOptionPane.showMessageDialog(this,"成功取款"+jtf1.getText()+"元!");/一個提示框填出你成功存了多少 key.cunkuan(money); /把存的錢傳回客戶類 jtf1.setText("0");

26、 return; public void KQActionPerformed ( ActionEvent event ) /匿名類監(jiān)聽過程 if (event.getSource()=jb2 ) /判斷要是jb2 new KQ(key); /返回KQ界面 setVisible( false); 圖4自動存款 圖4-1存款成功5、自動取款模塊設計在取款模塊中,和其它界面也是同樣的結構,有文本框和按鈕還有標簽,用戶在文本框中輸入它想取的數(shù)額,但必須是100的倍數(shù),當然取款時不能超過卡里的余額沒卡里的余額不可以為負數(shù),否則會彈出報錯的窗口,其代碼為:import java.awt.*;import

27、java.awt.event.*;import javax.swing.*;public class Zdqk extends JFrame implements ActionListener JPanel p1,p2,p3; /定義3個面板JLabel l1; /定義1個標簽JButton jb1,jb2; /定義2個按鈕JTextField jtf1; /定義一個文本框ImageIcon myimage; /定義導入圖片Container content; /定義一個容器 Guest key; /定義客戶類傳從參數(shù)key public Zdqk(Guest key) this.key=ke

28、y; /把key傳到頂層容器 p1=new JPanel(); /定義第一個面板 myimage = new ImageIcon("yl1.jpg"); /定義填入的圖片 l1 = new JLabel(myimage); /定義把圖片放在標簽的上面 p1.add(l1); p2=new JPanel(); /定義第二個面板 l1=new JLabel("請輸入您要取的金額:");/定義一個標簽請輸入您要取的金額: jtf1 = new JTextField(10); /定義一個文本框 p2.add(l1); p2.add(jtf1); p3=new J

29、Panel(); /定義第三個面板 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(); content.add(p1,

30、BorderLayout.NORTH); /定義頂部為面板p1 content.add(p2,BorderLayout.CENTER); /定義中部為面板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)

31、 /接口監(jiān)聽類 if(e.getSource()=jb1) /判斷是是否是jb1 Double money = Double.parseDouble(jtf1.getText(); if(money%100!=0) JOptionPane.showMessageDialog(this,"對不起,你所取的錢不是整百的!"); jtf1.setText(""); return; if(money<key.jine ) if(money<0) JOptionPane.showMessageDialog(this,"取款失敗,取款不能為負數(shù)

32、!"); jtf1.setText(""); return; if(money>5000) JOptionPane.showMessageDialog(this,"取款"+jtf1.getText()+"元!失敗,已經(jīng)超過了5000元!"); jtf1.setText(""); return; JOptionPane.showMessageDialog(this,"成功取款"+jtf1.getText()+"元!");/一個提示框填出你成功取了多少 key.q

33、uqian(money); /把存的錢傳回客戶類 jtf1.setText(""); return; else JOptionPane.showMessageDialog(this,"你的卡即將要已透支"); jtf1.setText(""); if (e.getSource()=jb2 )/判斷是是否是jb2 new KQ(key); /放回KQ setVisible( false); 當取款時如果超過卡里的余額的話就會報圖5的錯誤。圖5已超出你的你的剩余金額6、查詢余額模塊設計查詢余額的界面主要有文本框,標簽,按鈕,主要功能是在上

34、一級選擇菜單中選擇查詢余額,就會彈出查詢余額的這個對話框。其代碼如下:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Cxye extends JFrame implements ActionListenerJPanel p1,p2,p3; /定義3個面板JLabel l1; /定義1個標簽JButton jb1; /定義3個按鈕 ImageIcon myimage; /定義導入圖片Container content; /定義一個容器Guest key; /定義客戶類傳從參數(shù)key publ

35、ic Cxye(Guest key) this.key=key; /把key傳到頂層容器 p1=new JPanel(); /定義第一個面板 myimage = new ImageIcon("yl1.jpg"); /定義填入的圖片 l1 = new JLabel(myimage); /定義把圖片放在標簽的上面 p1.add(l1); p2=new JPanel(); /定義第二個面板 l1=new JLabel("您的剩余金額為:"+ key.getJine(); p2.add(l1); p3=new JPanel(); /定義第三個面板 jb1=new

36、 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); /定義中部為面板p2 content.add(p3,BorderLayout.SOUTH); /定義底部為面板p3 this.pack(); th

37、is.setTitle("查 詢 余 額"); /定義為窗口名稱 this.setSize(320,300); / 定義窗口的大小 this.setResizable(false); this.show(); public void actionPerformed ( ActionEvent e ) /接口監(jiān)聽類 if (e.getSource()=jb1 ) /判斷是否是jb1 new KQ(key); /放回KQ setVisible( false); 7、修改密碼模塊設計修改密碼的界面主要有文本框,標簽,按鈕,主要功能是先在輸入原始密碼 的文本框中輸入原來的密碼,然后

38、在輸入要修改的密碼的文本框中輸入新密碼,在確認新密碼后,才能真正的將密碼修改成功。代碼如下所示:import java.awt.BorderLayout;import java.awt.Container;import java.awt.event.*;import javax.swing.*;import java.util.*;class Xgmm extends JFrame implements ActionListenerJPanel p1,p2,p3; /定義3個面板JLabel l1, l2, l3, l4; /定義4個標簽JTextField jtf1,jtf2,jtf3; /

39、定義3個文本框JButton jb1,jb2; /定義2個按鈕JPasswordField mima1; JPasswordField mima2; JPasswordField mima3; ImageIcon myimage; /定義導入圖片Container content; /定義一個容器Guest key; /定義客戶類傳從參數(shù)keypublic Xgmm(Guest key)this.key=key; /把key傳到頂層容器p1 = new JPanel(); /定義第一個面板myimage = new ImageIcon("yl1.jpg"); /定義填入的圖

40、片l1 = new JLabel(myimage); /定義把圖片放在標簽的上面 p1.add(l1);p2=new JPanel(); /定義第二個面板l2=new JLabel("請輸入原來的密碼:"); /定義標簽請輸入原始密碼:l3=new JLabel("輸入要修改的密碼:"); /定義標簽輸入要修改的密碼l4=new JLabel("確認輸入的新密碼:"); /定義標簽確認輸入的新密碼:/jtf1=new JTextField(15); /定義文本框jtf1/jtf2=new JTextField(15); /定義文本框jtf2 /jtf3=new JTextField(15); /定義文本框jtf3mima1=new JPasswordField(15);mima2=new JPasswordField(15);mima3=new JPasswordField(15);p2.add(l2); p2.add(mima1); p2.add(l3); p2.add(mima2);p2.add(l4);p2.add(mima3);p3=new JPanel(); /定義第三個面板

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論