2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩28頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、<p>  《JAVA游戲開發》課程設計報告</p><p>  題 目 ATM柜員機 </p><p><b>  計算機科學與技術系</b></p><p><b>  2009年6月</b></p><p> 姓 名:</p>&

2、lt;p> 學 號:</p><p> 專 業:</p><p> 班 級:</p><p><b>  目 錄</b></p><p>  1 課程設計過程概述2</p><p>  2 課程設計題目描述和基本設計要求2<

3、/p><p>  3 系統需求分析2</p><p>  3.1 功能需求分析2</p><p>  3.2 其他需求分析2</p><p><b>  4 系統設計3</b></p><p>  4.1 總體設計3</p><p>  4.2 ATM柜員機界

4、面設計4</p><p>  4.3 各功能模塊設計5</p><p>  4.3.1 登陸頁面模塊設計5</p><p>  4.3.2 選擇服務模塊設計6</p><p>  4.3.3 取款模塊設計8</p><p>  4.3.4 修改密碼模塊設計9</p><p>

5、;  4.3.5 退卡模塊設計10</p><p>  4.4 異常處理情況說明10</p><p>  5 系統實現與測試11</p><p>  6 課程設計總結13</p><p>  6.1 遇到的問題及解決辦法13</p><p>  6.2 心得體會13</p><p

6、><b>  參考文獻14</b></p><p><b>  附錄14</b></p><p><b>  ATM柜員機</b></p><p>  1 課程設計過程概述</p><p>  2009年6月,JAVA游戲開發課程設計在實驗樓三樓機房進行,持續時間為兩

7、周。這次課程設計的主要目的是結合面向對象程序設計課程,培養我們面向對象軟件開發的思維,初步了解軟件開發的一般流程,提高用JAVA編程的實際動手能力并增強大家對面向對象的了解。這次課程設計的主要內容是獨立用JAVA語言開發一個小的應用程序。我開發了一個ATM柜員機。</p><p>  2 課程設計題目描述和基本設計要求</p><p>  我設計的ATM柜員機主要是由各個Windows窗口

8、組成,它是由登錄頁面、選擇服務、取款、查詢余額、修改密碼和退卡等功能。它的各種按鈕的事件和功能可以簡單的模擬ATM柜員機的要求。</p><p><b>  3 系統需求分析</b></p><p>  3.1 功能需求分析</p><p>  本ATM柜員機的主要功能如下所述:</p><p>  要求使用圖形用戶界

9、面。當輸入給定的卡號和密碼(初始卡號為000000和密碼為123456)時,系統能登錄ATM柜員機系統,用戶可以按照以下規則進行:</p><p>  查詢余額:初始余額為50000元</p><p>  ATM取款:每次取款金額為100的倍數,總額不超過5000元,支取金額不允許透支。</p><p>  ATM存款:不能出現負存款。</p><

10、;p>  修改密碼:只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。</p><p>  3.2 其他需求分析</p><p><b> ?。?)性能描述</b></p><p>  實時性好、靈活性強、易于不同年齡階段的人操作。</p><p><b> ?。?)設計約束&l

11、t;/b></p><p>  開發工具:JCrator ProV3.5.0</p><p>  運行環境:Windows 2000以上</p><p>  能實現用戶所定義的各項需求。</p><p><b> ?。?)界面要求</b></p><p>  以Windows窗口形式顯示,標

12、題欄為ATM柜員機名稱,右上角有最小化按鈕、最大化按鈕、關閉按鈕,不同的窗口中有不同的按鈕和選擇菜單。</p><p><b>  4 系統設計</b></p><p><b>  4.1 總體設計</b></p><p>  我所設計的ATM柜員機主要是由登錄頁面模塊還由選擇服務模塊組成,其中選擇服務模塊又由取款模塊、

13、查詢余額模塊、修改密碼模塊、退卡模塊組成。其功能結構圖如下所示:</p><p>  圖1 ATM功能結構示意圖</p><p>  4.2 ATM柜員機界面設計</p><p>  我覺得一個系統的界面應該要簡單明了,當然樣式美觀就更好了。我設計的界面主要是由窗體組成,操作簡單。而每一個窗口則執行相應的功能。</p><p>  一個

14、系統界面的好壞直接影響到用戶的操作,界面設計要求樣式美觀、簡單明了、方便易操作。我設計的界面主要分為窗體、菜單、按鈕和文本輸入框幾個部分,分別執行相應的操作。</p><p><b> ?。?)窗體的設計</b></p><p>  窗體整個框架使用Frame類構造,Frame有自己的外邊框和自己的標題,創建Frame時可以指定其窗口標題,我創建的窗口標題是各個不同功

15、能的模塊的名字,比如說查詢余額,還有取款等。相應源代碼為:WindowBox(String s,Account act){super(“ATM柜員機”);} 、Selection(String s,Account act){</p><p><b>  super(s);</b></p><p><b>  }</b></p>&l

16、t;p>  向Frame窗口中添加組件使用add()。</p><p>  例如:button1 = new Button("存款");</p><p>  p1.add(button1);</p><p>  this.add(p1);</p><p>  每個Frame在其右上角都有三個控制圖標,分別代表將窗口最

17、小化、窗口最大化和關閉的操作,其中最小化和最大化操作Frame可自動完成,而關閉窗口操作實現需要書寫有關的代碼,在我的程序中我采用的是對WINDOWS_CLOSING事件做出響應,調用dispose()方法關閉窗口。Frame也可以引發WindowsEvent類代表的窗口事件。相應源代碼為:</p><p>  addWindowListener(new WindowAdapter() //窗口偵聽器,以從此窗口

18、接收窗口事件</p><p>  {public void windowClosing(WindowEvent e) //處理窗口關閉事件 </p><p>  {System.exit(0);}</p><p><b>  });</b></p><p><b>  }</b></p&

19、gt;<p> ?。?)窗體的主要結構的設計</p><p>  我所設計的窗口的主要結構的特點就是每個窗口都對應著一個特定的功能。比如說報各種各樣的錯,還有各種查詢余額、取款、選擇服務等,所以它們都是由各種按鈕和文本框,標簽組成的,而聯系各個窗體成為一個整體的就是各個按鈕的監聽事件。所以整個設計就趨向簡單化了。</p><p>  為了定義各個按鈕所對應的命令和操作,首先需

20、要將各個按鈕注冊給實現了動作事件的監聽接口ActionListener的監聽者,然后為監聽者定義actionPerformed(ActionEvent e)方法,在這個方法中調用e.getSource()或e.getActionCommand()來判斷用戶點擊的菜單子項,并完成這個菜單子項定義的操作。</p><p>  4.3 各功能模塊設計</p><p>  4.3.1 登陸頁面

21、模塊設計</p><p>  與ATM柜員機打交道比較多的,也是大家對安全比較關心的問題:密碼。所以第一個界面就是要輸入密碼和卡號才能繼續服務。</p><p>  我定義了文本框累的對象tf1,tf2。抓藥是用于輸入單行的文本;文本區調用public String getText()方法,獲取用戶想要的字符串。用來判斷輸入的密碼和卡號是否正確,如果不正確的話,則彈出密碼或卡號錯誤的警告框

22、,并用dispose()關掉窗口。此模塊相應的部分源代碼為:</p><p>  public void actionPerformed(ActionEvent e){</p><p>  Account act;</p><p>  String card;</p><p>  String pwd;</p><p>

23、;  act=new Account("000000","Devil","123456",50000);//初始化</p><p>  /*選擇各種服務*/</p><p>  if(e.getSource() == button1){</p><p>  String number1,number2;&l

24、t;/p><p>  number1=tf1.getText();</p><p>  number2=tf2.getText();</p><p>  /*判斷密碼和卡號是否正確*/if((act.get_Code().equals(number1))&&(act.get_Password().equals(number2))){</p>

25、;<p>  dispose();</p><p>  /*卡號和密碼都正確則進入功能選擇窗口*/</p><p>  Selection s = new Selection("選擇服務",act);</p><p><b>  }else{</b></p><p>  dispose(

26、);</p><p>  ErrorWarn ew = new ErrorWarn("消息!",act);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  /*退卡*/</b></p>

27、<p>  if(e.getSource()==button2){</p><p>  System.exit(0);</p><p>  dispose();</p><p><b>  }</b></p><p><b>  }</b></p><p>  

28、4.3.2 選擇服務模塊設計</p><p>  在選擇服務模塊中,有各種ATM的服務功能,只要用戶在該界面中選擇按鈕,它就會彈出各個相應的界面。每一個按鈕都有監聽器,在選擇了按鈕后,java.awt.event中的ActionEvent類創建一個事件對象,并將它傳遞給方法public void actionPerformed(ActionEvent e)中的參數e,監視器就會知道所發生的事件,對此事件進行處理

29、。其中的部分源代碼為:</p><p>  p.add(new Label("請選擇你要的服務"));</p><p>  this.add(p);</p><p>  button1 = new Button("存款");</p><p>  p1.add(button1);</p>&

30、lt;p>  this.add(p1);</p><p>  button2 = new Button("取款");</p><p>  p2.add(button2);</p><p>  this.add(p2);</p><p>  button3 = new Button("查詢余額");

31、</p><p>  p3.add(button3);</p><p>  this.add(p3);</p><p>  button4 = new Button("退出");</p><p>  p4.add(button4);</p><p>  this.add(p4);</p>

32、<p>  button5 = new Button("修改密碼");</p><p>  p5.add(button5);</p><p>  this.add(p5);</p><p>  this.addWindowListener(new WindowAdapter(){</p><p>  publ

33、ic void windowClosing(WindowEvent e){</p><p>  System.exit(0);</p><p><b>  }</b></p><p><b>  });</b></p><p>  button2.addActionListener(this);&l

34、t;/p><p>  button3.addActionListener(this);</p><p>  button4.addActionListener(this);</p><p>  button5.addActionListener(this);</p><p>  //setLayout(new GridLayout());<

35、/p><p>  setBounds(150,150,200,200);</p><p>  setVisible(true);</p><p>  validate();</p><p><b>  }</b></p><p>  public void actionPerformed(Action

36、Event e){</p><p>  if(e.getSource()==button2){//取款</p><p>  dispose();</p><p>  GetBalance gb = new GetBalance("取款",act);</p><p><b>  }</b></p&

37、gt;<p>  if(e.getSource()==button3){//查詢余額</p><p>  Query q =new Query("查詢余額",act);</p><p>  dispose();</p><p><b>  }</b></p><p>  else if(

38、e.getSource()==button4){//退出</p><p>  System.exit(0);</p><p>  dispose();</p><p><b>  }</b></p><p>  else if(e.getSource()==button5){//修改密碼</p><p

39、>  ChangePassword cp = new ChangePassword("修改密碼",act);</p><p>  dispose();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }&

40、lt;/b></p><p>  4.3.3 取款模塊設計</p><p>  在取款模塊中,和其他的界面也是同樣的結構。也是有一個文本框和一個按鈕還有標簽組成的。用戶在文本框中輸入他想取的數額,但是必須是100的倍數,而且每一次最多只能取5000塊。當然了取款的時候也不能超過卡里的余額,再就是卡里的余額不可以為負,否則就會彈出報錯的窗口。其方法為:</p><

41、p>  if(e.getSource()==button){</p><p>  /*判斷余額是否為負*/</p><p>  if(act.get_Money()<0){</p><p>  dispose();</p><p>  ErrorWarn4 ew4 = new ErrorWarn4("消息!",

42、act);</p><p><b>  }</b></p><p>  /*判斷取款數額是否小于卡里余額*/</p><p>  else if(money<=act.get_Money()){</p><p>  /*取款的數額必須是100的倍數且每次最多只能取5000塊*/</p><p&g

43、t;  if((money%100!=0)||(money>=5000)){</p><p>  dispose();</p><p>  ErrorWarn6 ew6 = new ErrorWarn6("消息!",act);</p><p><b>  }</b></p><p>  act.

44、set_Balance(money);//重新設置卡里的余額</p><p>  this.setVisible(false);</p><p>  /*取款后就再次進入選擇界面*/</p><p>  Selection s = new Selection("選擇服務",act);</p><p>  //dispose

45、();</p><p>  }else if(money>act.get_Money()){</p><p>  dispose();</p><p>  ErrorWarn5 ew5 = new ErrorWarn5("消息!",act);</p><p><b>  }</b></p&

46、gt;<p><b>  }</b></p><p>  4.3.4 修改密碼模塊設計</p><p>  在修改密碼模塊中,首先你必須要輸入你的舊密碼是否正確,否則就會報錯。再一個就是要兩次輸入你的新密碼,且兩次藥匹配,否則也會報錯,然后再重新回到修改密碼的界面。在修改密碼時用到的方法為:</p><p>  /*判斷舊密碼是

47、是否正確*/</p><p>  if(pwd2.equals(act.get_Password())){</p><p>  /*判斷兩次輸入的密碼是否匹配*/</p><p>  if(pwd3.equals(pwd4)){</p><p>  /*如果都正確的話就設置新密碼*/</p><p>  act.set

48、Password(pwd3);</p><p>  dispose();</p><p>  Selection s = new Selection("選擇",act);</p><p>  }else{ </p><p>  dispose();</p><p>  ErrorWarn

49、2 ew2 = new ErrorWarn2("消息",act);</p><p><b>  } </b></p><p><b>  }else{</b></p><p>  this.setVisible(false);</p><p>  ErrorWarn3 ew1

50、 = new ErrorWarn3("消息",act);</p><p>  dispose();</p><p><b>  }</b></p><p>  4.3.5 退卡模塊設計</p><p>  在退卡模塊設計中,這個方法就更加的簡單了,它只是用了if(e.getSource()==but

51、ton4){//退出</p><p>  System.exit(0);</p><p>  dispose();</p><p><b>  }</b></p><p>  這個方法就可以實現了,這里就不再多說了。</p><p>  4.4 異常處理情況說明</p><p

52、> ?。?)打開、保存文件時的異常處理</p><p>  需要處理的異常:IOException</p><p> ?。?)數據庫訪問時的異常處理</p><p>  需要處理的異常:SQLException</p><p> ?。?)加載類時的異常處理</p><p>  需要處理的異常:ClassNotFi

53、ndException,當應用程序試圖使用Class類中的forName方法通過字符串名加載類時,但是沒有找到具有指定名稱的類的定義。</p><p> ?。?)加載URL時的異常</p><p>  需要處理的異常:MalformedURLException,拋出這一異常指示出現了錯誤的 URL?;蛘咴谝幏蹲址姓也坏饺魏魏戏▍f議,或者無法分析字符串。</p><p

54、><b>  5 系統實現與測試</b></p><p> ?。?)打開DOS,編譯運行程序后,將會看到如下的界面,如圖2所示。如果輸入的密碼或卡號不正確的話就會報右下圖的錯誤。</p><p>  圖2 主界面—登陸頁面</p><p> ?。?)選擇服務界面效果</p><p>  當輸入的密碼和卡號正確,單

55、擊確定后就會進入到選擇服務的界面,如圖3所示。然后就可以選擇所需要的服務了。</p><p>  圖3 選擇服務界面</p><p> ?。?)取款界面,如圖4所示。</p><p><b>  圖4 取款界面</b></p><p>  當輸入的錢數不是100的倍數或每一次大于5000時就會報圖5的錯誤。</

56、p><p><b>  圖5 輸入錯誤1</b></p><p>  當取款時如果超過卡里的余額的話就會報圖6的錯誤。</p><p><b>  圖6 輸入錯誤2</b></p><p> ?。?)查詢余額界面,如圖7所示。</p><p>  圖7 查詢余額界面<

57、/p><p>  經過測試,所有的功能基本上都實現了,而且運行正常。</p><p><b>  6 課程設計總結</b></p><p>  6.1 遇到的問題及解決辦法</p><p>  在此次課程設計中,我遇到了一些問題,如:對于面向對象的方法了解不夠透徹,運用到實際的軟件開發中存在著困難;對于Java語言,只學習

58、到了一些最基本的知識,這導致編寫程序時經常出現一些語法錯誤,而且要在短時間內用Java語言來設計一個具體的系統是一個較大的挑戰;還有對于正規開發一個系統的流程不熟悉,適應起來比較慢,編寫各個模塊相對應的操作時,自己感覺難以動手,這表明所學的知識不能靈活運用到實際中。</p><p>  對于以上的問題,自己有清楚的認識,解決辦法是需要大量閱讀相關的書籍,對于書上以及網站上下載的資料中的Java實例必須有清楚的理解

59、,還有就是多跟精通此方面的老師和同學交流,取其精華。對于實際動手能力與系統開發的流程的適應,必須多進行實際的練習與操作,才能有大的進步。</p><p><b>  6.2 心得體會</b></p><p>  在這次的學年度課程設計中,我主要運用了Java語言的界面設計、異常處理、、Awt控件、Swing控件,輸入輸出流等,綜合運用了Java語言。我深刻感受到了面

60、向對象語言中類庫的強大功能,掌握了運用Java中的類實現某些基本功能,并學會了自己查詢使用類的方法,為以后的面向對象語言的自學奠定了基礎。</p><p>  通過這兩個禮拜的課程設計我真的學到了很多的東西,當然這也和我的同學的幫助是離不開的。好了,下面就談一下我在這些天的體會吧:</p><p>  在這次的課程設計中,主要是運用JAVA語言來編寫一個小的應用程序,當然還可以用其他的技術

61、來輔助了。在這個小應用程序當中,我用了Java外還用了Swing控件。輸入輸出流等技術。由于以前學的不是很扎實,而且還有些知識我們都是沒有學過的,這就要求我們去查相關的書籍,還有就是和同學之間的交流。正因為這樣,才鍛煉了我的自學的能力,還有就是加深了我對各個知識點的認識,并且提高了我對專業的學習的興趣,為我以后的學習打下了基礎。此外,我還感受到了面向對象語言的類庫的強大的功能,掌握了運用JAVA中的類實現某些基本功能,并學會了自己查詢使

62、用類的方法,也就是要會用API文檔,為以后更好的學習面向對象語言奠定了基礎。</p><p>  通過將近兩周的努力,這次課程設計終于結束了,在這個過程當中,我學到了很多的知識,同時也感謝我的同學的幫助和指導。在以后的學習當中,我會更加努力的學習好專業知識,并將所學的知識用于實踐當中去,以便牢固掌握知識。</p><p><b>  參考文獻</b></p>

63、;<p>  [1] 王萌,劉婧,來賓著.JAVA程序設計[M]北京 冶金工業出版社,2004</p><p>  [2] 黃聰明 精通 JAVA2程序設計[M]北京:清華大學出版社,2004.4</p><p>  [3] 王文濤,袁海燕 JAVA實用程序設計100例[M]北京:人民郵電出版社,2005.5</p><p>  [4] 雍俊海 JA

64、VA程序設計[M]北京:清華大學出版社,2006.8</p><p>  [5] 劉寶林 JAVA程序設計與案例[M]北京:高等教育出版社,2006.11</p><p><b>  附錄</b></p><p>  import javax.swing.*;</p><p>  import java.awt.*;&l

65、t;/p><p>  import javax.swing.border.*;</p><p>  import java.awt.event.*;</p><p>  import java.io.*;</p><p>  /*登陸頁面首窗口*/</p><p>  class WindowBox extends Fra

66、me implements ActionListener{</p><p>  Box baseBox,box1,box2;</p><p>  TextField tf1,tf2;</p><p>  Button button1;</p><p>  Button button2;</p><p>  Window

67、Box(String s){//構造方法</p><p><b>  super(s);</b></p><p>  tf1 = new TextField(6);</p><p>  tf2 = new TextField(6);</p><p>  box1= Box.createVerticalBox;</p

68、><p>  box1.add(new Label("請輸入你的卡號")); //輸入卡號</p><p>  box1.add(Box.createVerticalStrut(8));</p><p>  box1.add(new Label("請輸入你的密碼"));//輸入密碼</p><p>  bo

69、x2=Box.createVerticalBox();</p><p>  box2.add(tf1);</p><p>  //box2.add(new TextField(16));</p><p>  box2.add(Box.createVerticalStrut(8));</p><p>  box2.add(tf2);</p

70、><p>  //box2.add(new TextField(16));</p><p>  baseBox=Box.createHorizontalBox();</p><p>  baseBox.add(box1);</p><p>  baseBox.add(Box.createHorizontalStrut(10));</p>

71、;<p>  baseBox.add(box2);</p><p>  add(baseBox);</p><p>  button1= new Button("確定");//加入按鈕</p><p>  button1.addActionListener(this);</p><p>  add(butto

72、n1);</p><p>  button2 = new Button("退卡");//退卡按鈕</p><p>  button2.addActionListener(this);</p><p>  add(button2);</p><p>  setLayout(new FlowLayout());</p&g

73、t;<p><b>  /*監聽器*/</b></p><p>  this.addWindowListener(new WindowAdapter(){</p><p>  public void windowClosing(WindowEvent e){</p><p>  System.exit(0);</p>

74、<p><b>  }</b></p><p><b>  });</b></p><p>  setBounds(120,125,200,175);</p><p>  setVisible(true);</p><p><b>  }</b></p>

75、<p>  public void actionPerformed(ActionEvent e){</p><p>  Account act;</p><p>  String card;</p><p>  String pwd;</p><p>  act=new Account("000000",&q

76、uot;Devil","123456",50000);//初始化</p><p>  /*選擇各種服務*/</p><p>  if(e.getSource() == button1){</p><p>  String number1,number2;//輸入的兩個卡號和密碼的變量</p><p>  numb

77、er1=tf1.getText();</p><p>  number2=tf2.getText();</p><p>  /*判斷兩次輸入的卡號和密碼是否正確*/if((act.get_Code().equals(number1))&&(act.get_Password().equals(number2))){</p><p>  dispo

78、se();</p><p>  Selection s = new Selection("選擇服務",act);</p><p><b>  }else{</b></p><p>  dispose();</p><p>  ErrorWarn ew = new ErrorWarn("消息!

79、",act);//報輸入密碼或卡號不正確</p><p><b>  }</b></p><p>  }if(e.getSource()==button2){</p><p>  System.exit(0);</p><p>  dispose();//退出</p><p><

80、b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  /*主函數*/</b></p><p>  class ATM{</p><p>  public sta

81、tic void main(String [] args){</p><p>  new WindowBox("登錄頁面");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  /*選擇服務*/</b>

82、;</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  class Selection extends Frame implements ActionListener{</p><p>  Button button1,button2,button

83、3,button4,button5;</p><p>  Panel p1 = new Panel();</p><p>  Panel p2 = new Panel();</p><p>  Panel p3 = new Panel();</p><p>  Panel p4 = new Panel();</p><p&

84、gt;  Panel p5 = new Panel();</p><p>  Panel p = new Panel();</p><p>  Account act;</p><p>  public Selection(){}</p><p>  Selection(String s,Account act){</p>&l

85、t;p><b>  super(s);</b></p><p>  this.act=act;</p><p>  this.setLayout(null);</p><p>  this.setLayout(new GridLayout(6,1));</p><p>  p.add(new Label("

86、;請選擇你要的服務"));</p><p>  this.add(p);</p><p>  /*各種服務功能*/</p><p>  button1 = new Button("存款");</p><p>  p1.add(button1);</p><p>  this.add(p1)

87、;</p><p>  button2 = new Button("取款");</p><p>  p2.add(button2);</p><p>  this.add(p2);</p><p>  button3 = new Button("查詢余額");</p><p> 

88、 p3.add(button3);</p><p>  this.add(p3);</p><p>  button4 = new Button("退出");</p><p>  p4.add(button4);</p><p>  this.add(p4);</p><p>  button5 =

89、 new Button("修改密碼");</p><p>  p5.add(button5);</p><p>  this.add(p5);</p><p>  this.addWindowListener(new WindowAdapter(){</p><p>  public void windowClosing(

90、WindowEvent e){</p><p>  System.exit(0);</p><p><b>  }</b></p><p><b>  });</b></p><p>  button2.addActionListener(this);</p><p>  b

91、utton3.addActionListener(this);</p><p>  button4.addActionListener(this);</p><p>  button5.addActionListener(this);</p><p>  setBounds(150,150,200,200);</p><p>  setVis

92、ible(true);</p><p>  validate();</p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e){</p><p>  if(e.getSource()==button2){//取款</p>

93、<p>  dispose();</p><p>  GetBalance gb = new GetBalance("取款",act);</p><p><b>  }</b></p><p>  if(e.getSource()==button3){//查詢余額</p><p>  Que

94、ry q =new Query("查詢余額",act);</p><p>  dispose();</p><p><b>  }</b></p><p>  else if(e.getSource()==button4){//退出</p><p>  System.exit(0);</p>

95、;<p>  dispose();</p><p><b>  }</b></p><p>  else if(e.getSource()==button5){//修改密碼</p><p>  ChangePassword cp = new ChangePassword("修改密碼",act);</p&g

96、t;<p>  dispose();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /*class Test4{</p><p>  public

97、 static void main(String [] args){</p><p>  Selection s = new Selection("選擇");</p><p><b>  }</b></p><p><b>  }*/</b></p><p><b> 

98、 /*取款功能*/</b></p><p>  import javax.swing.*;</p><p>  import java.awt.*;</p><p>  import javax.swing.border.*;</p><p>  import java.awt.event.*;</p><p&

99、gt;  class GetBalance extends Frame implements ActionListener{</p><p>  Box baseBox, box1,box2;</p><p>  Button button;</p><p>  TextField tf;</p><p>  Account act;<

100、/p><p>  GetBalance(String s,Account act){//構造函數</p><p><b>  super(s);</b></p><p>  this.act=act;</p><p>  button=new Button("確定");</p><p&

101、gt;  Panel panel = new Panel();</p><p>  Panel panel1 = new Panel();</p><p>  tf = new TextField(6);</p><p>  this.setLayout(new GridLayout(2,1));</p><p>  panel1.add(n

102、ew Label("請輸入你想取錢的數目"));</p><p>  panel1.add(tf);</p><p>  panel.add(button);</p><p>  this.add(panel1);</p><p>  this.add(panel);</p><p>  butto

103、n.addActionListener(this);</p><p>  this.addWindowListener(new WindowAdapter(){</p><p>  public void windowClosing(WindowEvent e){</p><p>  System.exit(0);</p><p><b

104、>  }</b></p><p><b>  });</b></p><p>  setBounds(200,200,150,150);</p><p>  this.setVisible(true);</p><p><b>  }</b></p><p>

105、;  public void actionPerformed(ActionEvent e){</p><p>  //System.out.println(e.getActionCommand());</p><p>  double money;</p><p>  money = Double.parseDouble(tf.getText().trim());&

106、lt;/p><p>  if(e.getSource()==button){</p><p>  if(act.get_Money()<0){//判斷余額是否為負</p><p>  dispose();</p><p>  ErrorWarn4 ew4 = new ErrorWarn4("消息!",act);</

107、p><p><b>  }</b></p><p>  else if(money<=act.get_Money()){//取錢的數額不大于余額</p><p>  if((money%100!=0)||(money>=5000)){//取錢數為100的倍數或不大于5000</p><p>  dispose()

108、;</p><p>  ErrorWarn6 ew6 = new ErrorWarn6("消息!",act);</p><p><b>  }</b></p><p>  act.set_Balance(money);//重置余額</p><p>  this.setVisible(false);&l

109、t;/p><p>  Selection s = new Selection("選擇服務",act);//返回選擇服務窗口</p><p>  //dispose();</p><p>  }else if(money>act.get_Money()){判斷取款數額是否大于余額</p><p>  dispose();&

110、lt;/p><p>  ErrorWarn5 ew5 = new ErrorWarn5("消息!",act);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><

111、p><b>  }</b></p><p><b>  /*</b></p><p>  public static void main(String[] args){</p><p>  GetBalance test = new GetBalance("dfdf");</p>&

112、lt;p>  GetBalance gb = new GetBalance("取款");</p><p><b>  }</b></p><p><b>  }</b></p><p>  /*修改密碼功能*/</p><p>  import javax.swing.*;

113、</p><p>  import java.awt.*;</p><p>  import javax.swing.border.*;</p><p>  import java.awt.event.*;</p><p>  class ChangePassword extends Frame implements ActionListen

114、er{</p><p>  Panel panel1 = new Panel();</p><p>  Panel panel2 = new Panel();</p><p>  Panel panel3 = new Panel();</p><p>  Panel panel = new Panel();</p><p&

115、gt;  TextField tf4,tf5,tf6;</p><p>  Button button;</p><p>  Account act;</p><p>  ChangePassword(String s,Account act){</p><p><b>  super(s);</b></p>

116、<p>  this.act=act;</p><p>  tf4 = new TextField(6);</p><p>  tf5 = new TextField(6);</p><p>  tf6 = new TextField(6);</p><p>  button = new Button("確定&qu

117、ot;);</p><p>  button.addActionListener(this);</p><p><b>  /*建立新密碼*/</b></p><p>  panel1.add(new Label("請輸入你的舊密碼:"));</p><p>  panel1.add(tf4);<

118、;/p><p>  panel2.add(new Label("請輸入你的新密碼:"));</p><p>  panel2.add(tf5);</p><p>  panel3.add(new Label("請再次輸入你的新密碼"));</p><p>  panel3.add(tf6);</p&g

119、t;<p>  panel.add(button);</p><p>  this.add(panel1);</p><p>  this.add(panel2);</p><p>  this.add(panel3);</p><p>  this.add(panel);</p><p>  set

120、Layout(new GridLayout(4,1));</p><p>  setBounds(200,200,250,250);</p><p>  this.setVisible(true);</p><p><b>  /*窗口事件*/</b></p><p>  this.addWindowListener(n

121、ew WindowAdapter(){</p><p>  public void windowClosing(WindowEvent e){</p><p>  System.exit(0);</p><p><b>  }</b></p><p><b>  });</b></p>

122、<p><b>  }</b></p><p>  /*判斷事件源,看條件是否成立再修改密碼*/</p><p>  public void actionPerformed(ActionEvent e){</p><p>  if(e.getSource()==button){</p><p>  Strin

123、g pwd2,pwd3,pwd4;</p><p>  pwd2 = tf4.getText();</p><p>  pwd3 = tf5.getText();</p><p>  pwd4 = tf6.getText();</p><p>  if(pwd2.equals(act.get_Password())){//判斷舊密碼是否正確&

124、lt;/p><p>  if(pwd3.equals(pwd4)){//判斷兩次輸入的新密碼是個匹配</p><p>  act.setPassword(pwd3);//啟用新的密碼</p><p>  dispose();</p><p>  Selection s = new Selection("選擇",act);//返

125、回選擇服務窗口</p><p><b>  }else{</b></p><p>  //this.setVisible(true);</p><p>  //ErrorWarn2 ew = new ErrorWarn2("消息",act);</p><p>  dispose();</p&g

126、t;<p>  ErrorWarn2 ew2 = new ErrorWarn2("消息",act);</p><p><b>  } </b></p><p><b>  }else{</b></p><p>  this.setVisible(false);</p>&

127、lt;p>  ErrorWarn3 ew1 = new ErrorWarn3("消息",act);</p><p>  dispose();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b

128、></p><p><b>  }</b></p><p>  /*查詢余額功能*/</p><p>  import javax.swing.*;</p><p>  import java.awt.*;</p><p>  import javax.swing.border.*;<

129、/p><p>  import java.awt.event.*;</p><p>  class Query extends Frame implements ActionListener{</p><p>  //Account act;</p><p>  Button button;</p><p>  Accou

130、nt act;</p><p>  Query(String s,Account act){//構造函數</p><p><b>  super(s);</b></p><p>  this.act = act;</p><p>  button=new Button("確定");</p&g

131、t;<p>  //TextField tf = new TextField(6);</p><p>  Panel panel1 = new Panel();</p><p>  Panel panel = new Panel();</p><p>  panel1.add(new Label("你的余額為: " + act.ge

溫馨提示

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

評論

0/150

提交評論