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

下載本文檔

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

文檔簡介

1、<p>  課 程 設(shè) 計</p><p>  設(shè)計課程名稱: JAVA 課程設(shè)計 </p><p>  題 目: APM柜員機(jī) </p><p>  學(xué) 生 姓

2、 名: </p><p>  學(xué) 院: 信息科學(xué)與工程 專 業(yè) 班 級:計算機(jī)102 </p><p>  指 導(dǎo) 教 師: 成 績: </p><p>  設(shè)計時

3、間: 2011 年 12 月 27 日 2012 年 1 月 7 日</p><p>  面向?qū)ο蟪绦蛟O(shè)計(JAVA) 課程設(shè)計任務(wù)書</p><p><b>  目 錄</b></p><p>  1 課程設(shè)計過程概述4</p><p>  2 課程設(shè)計題目描述和基本設(shè)計要求4</p>

4、<p>  3 系統(tǒng)需求分析4</p><p>  3.1 功能需求分析4</p><p>  3.2 系統(tǒng)運行環(huán)境5</p><p><b>  4 系統(tǒng)設(shè)計5</b></p><p>  4.1 系統(tǒng)設(shè)計原理5</p><p>  4.1.1 系統(tǒng)流程圖5<

5、;/p><p>  4.1.2 數(shù)據(jù)流程圖6</p><p>  4.1.3 功能模塊圖6</p><p>  4.1.4 系統(tǒng)模塊結(jié)構(gòu)圖7</p><p>  4.2 數(shù)據(jù)庫設(shè)計7</p><p>  4.2.1 ATM E-R圖7</p><p>  4.2.2 系統(tǒng) E-

6、R圖8</p><p>  4.2.3 MySQL數(shù)據(jù)庫表8</p><p>  4.3 各功能模塊設(shè)計8</p><p>  4.3.1 ATM柜員機(jī)界面設(shè)計8</p><p>  4.3.2 登陸頁面模塊設(shè)計8</p><p>  4.3.3 選擇服務(wù)模塊設(shè)計9</p><

7、p>  4.3.4 取款模塊設(shè)計9</p><p>  4.3.5 修改密碼模塊設(shè)計10</p><p>  4.3.6 記錄查詢模塊設(shè)計11</p><p>  4.3.7 實時轉(zhuǎn)賬模塊設(shè)計11</p><p>  4.4 異常處理情況說明12</p><p>  5 系統(tǒng)實現(xiàn)與測試12&

8、lt;/p><p>  6 課程設(shè)計總結(jié)14</p><p><b>  ATM柜員機(jī)</b></p><p>  1 課程設(shè)計過程概述</p><p>  這學(xué)期的最后一周,學(xué)院對我們進(jìn)行了為期一周的JAVA課程課題研究,要求我們在文約樓二樓進(jìn)行了課程設(shè)計。這次課程設(shè)計的主要目的是結(jié)合面向?qū)ο蟪绦蛟O(shè)計課程,培養(yǎng)我們面向?qū)?/p>

9、象軟件開發(fā)的思維,初步了解軟件開發(fā)的一般流程,提高用JAVA編程的實際動手能力并增強(qiáng)大家對面向?qū)ο蟮牧私狻_@次課程設(shè)計的主要內(nèi)容是獨立用JAVA語言開發(fā)一個小的應(yīng)用程序。我開發(fā)了一個ATM柜員機(jī)。</p><p>  2 課程設(shè)計題目描述和基本設(shè)計要求</p><p>  我設(shè)計的ATM柜員機(jī)主要是由各個Windows窗口組成,它是由登錄頁面、選擇服務(wù)、取款、查詢余額、修改密碼和退卡等功能

10、。它的各種按鈕的事件和功能可以簡單的模擬ATM柜員機(jī)的要求。</p><p><b>  3 系統(tǒng)需求分析</b></p><p>  3.1 功能需求分析</p><p>  本ATM柜員機(jī)的主要功能如下所述:</p><p>  要求使用圖形用戶界面。當(dāng)輸入給定的卡號和密碼(初始卡號和密碼為123456)時,系統(tǒng)能

11、登錄ATM柜員機(jī)系統(tǒng),用戶可以按照以下規(guī)則進(jìn)行:</p><p>  查詢余額:初始余額為10000元</p><p>  ATM取款:每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支。</p><p>  ATM存款:不能出現(xiàn)負(fù)存款。</p><p>  修改密碼:只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才

12、可以成功修改密碼。</p><p><b>  存取款明細(xì)查詢。</b></p><p>  3.2 系統(tǒng)運行環(huán)境</p><p><b>  4 系統(tǒng)設(shè)計</b></p><p>  4.1 系統(tǒng)設(shè)計原理</p><p>  a. 先建立數(shù)據(jù)庫且追建數(shù)據(jù)庫的驅(qū)動程序。

13、</p><p>  b. 在使用時,分為后臺管理和前臺操作。</p><p>  c. 用戶輸入賬戶基本信息進(jìn)行登錄,然后方能進(jìn)行下一步操作 。</p><p>  4.1.1 系統(tǒng)流程圖</p><p>  4. 1.2 數(shù)據(jù)流程圖</p><p>  4. 1.3 功能模塊圖</p><

14、p>  4. 1.4 系統(tǒng)模塊結(jié)構(gòu)圖</p><p>  4.2 數(shù)據(jù)庫設(shè)計</p><p>  4. 2.1 ATM E-R圖</p><p>  4. 2.2 系統(tǒng) E-R圖</p><p>  4. 2.3 MySQL 數(shù)據(jù)庫表</p><p>  本系統(tǒng)共設(shè)計了2個數(shù)據(jù)表,分別為atmuer表和

15、action_log表.</p><p><b>  atmuer表:</b></p><p>  此表是用來保存用戶信息。ID是這個表的唯一標(biāo)識, ID是卡號,PASSWORD是用戶賬戶的密碼,NAME是用戶名,BALANCE使用戶賬戶余額。</p><p>  action_log表:</p><p>  此表是用來

16、保存交易記錄。ACT_ID是這個表格的唯一標(biāo)識,ACTION是操作類型,ACT_DATE用來記錄交易時間,VALUE是交易數(shù)額,BALANCE是余額。</p><p>  4.3 各功能模塊設(shè)計</p><p>  4.3.1 ATM柜員機(jī)界面設(shè)計</p><p>  窗體整個框架使用Frame類構(gòu)造,F(xiàn)rame有自己的外邊框和自己的標(biāo)題,創(chuàng)建Frame時可以指

17、定其窗口標(biāo)題,我創(chuàng)建的窗口標(biāo)題是各個不同功能的模塊的名字,比如說查詢余額,還有取款等。 </p><p>  向Frame窗口中添加組件使用add()。</p><p>  例如:button1 = new Button("存款");</p><p>  p1.add(button1);</p><p>  我所設(shè)計的窗口

18、的主要結(jié)構(gòu)的特點就是每個窗口都對應(yīng)著一個特定的功能。比如說報各種各樣的錯,還有各種查詢余額、取款、選擇服務(wù)等,所以它們都是由各種按鈕和文本框,標(biāo)簽組成的,而聯(lián)系各個窗體成為一個整體的就是各個按鈕的監(jiān)聽事件。所以整個設(shè)計就趨向簡單化了。</p><p>  為了定義各個按鈕所對應(yīng)的命令和操作,首先需要將各個按鈕注冊給實現(xiàn)了動作事件的監(jiān)聽接口ActionListener的監(jiān)聽者,然后為監(jiān)聽者定義actionPerfo

19、rmed(ActionEvent e)方法,在這個方法中調(diào)用e.getSource() 來判斷用戶點擊的菜單子項,并完成這個菜單子項定義的操作。</p><p>  4.3.2 登陸頁面模塊設(shè)計</p><p>  與ATM柜員機(jī)打交道比較多的,也是大家對安全比較關(guān)心的問題:密碼。所以第一個界面就是要輸入密碼和卡號才能繼續(xù)服務(wù)。</p><p>  文本區(qū)調(diào)用pu

20、blic String getText()方法,獲取用戶想要的字符串。用來判斷輸入的密碼和卡號是否正確,如果不正確的話,則彈出密碼或卡號錯誤的警告框,并用dispose()關(guān)掉窗口。</p><p>  登錄模塊依然采用的是用戶名和密碼驗證的方式,首先需要用戶輸入用戶名和密碼然后點擊確認(rèn)進(jìn)行驗證,這里涉及到一組輸入位數(shù)的問題,系統(tǒng)規(guī)定用戶需要輸入卡號和密碼。</p><p>  4.3.3

21、 選擇服務(wù)模塊設(shè)計</p><p>  選擇服務(wù)界面共有取款、存款、轉(zhuǎn)賬、查詢余額、修改密碼和查看交易記錄的6項功能,用戶登陸后出現(xiàn)此界面,可以由用戶根據(jù)自己的需要選擇相應(yīng)的功能。部分代碼如下:</p><p>  private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jBu

22、tton1MouseClicked</p><p>  new Manager(this).setVisible(true);</p><p>  this.dispose();</p><p><b>  } </b></p><p>  4.3.4 取存款模塊設(shè)計</p><p>  此模塊

23、一個功能是用戶登錄成功后需要存款時的操作界面,在這個界面中輸入存款金額,點擊確定按鈕后進(jìn)行存款操作。</p><p>  另一功能是用戶登錄成功后需要取款時的操作界面,因為ATM機(jī)就要的功能就是取款業(yè)務(wù),因此在算法以及界面設(shè)計上花的功夫也是最多的,要根據(jù)功能需要中的要求做到用戶順利地取款,用戶選擇取款金額,然后點擊確定進(jìn)行取款操作,數(shù)字按鈕的個數(shù)設(shè)計比較大,方便用戶操作。</p><p>

24、  4.3.5 修改密碼模塊設(shè)計</p><p>  只有當(dāng)舊密碼正確且兩次新密碼輸入相同時能進(jìn)行密碼修改,信息正確后系統(tǒng)會給出成功的提示信息。</p><p>  4.3.6 記錄查詢模塊設(shè)計</p><p>  此模塊調(diào)用數(shù)據(jù)庫ACTION_LOG表的數(shù)據(jù),然后通過可視化將數(shù)據(jù)顯示給用戶,完成查詢用戶最近交易的功能。 </p><p>

25、;  4.3.7 實時轉(zhuǎn)帳模塊設(shè)計</p><p>  此模塊實現(xiàn)兩個用戶轉(zhuǎn)賬功能,登錄帳號,實時轉(zhuǎn)賬,輸入轉(zhuǎn)入帳號,輸入轉(zhuǎn)入數(shù)額,便可實現(xiàn)轉(zhuǎn)賬。</p><p>  4.4 異常處理情況說明</p><p>  (1)打開、保存文件時的異常處理</p><p>  需要處理的異常:IOException</p><p

26、> ?。?)數(shù)據(jù)庫訪問時的異常處理</p><p>  需要處理的異常:SQLException</p><p>  (3)加載類時的異常處理</p><p>  需要處理的異常:ClassNotFindException,當(dāng)應(yīng)用程序試圖使用Class類中的forName方法通過字符串名加載類時,但是沒有找到具有指定名稱的類的定義。</p>&l

27、t;p>  (4)加載URL時的異常</p><p>  需要處理的異常:MalformedURLException,拋出這一異常指示出現(xiàn)了錯誤的 URL?;蛘咴谝?guī)范字符串中找不到任何合法協(xié)議,或者無法分析字符串。</p><p><b>  5 系統(tǒng)實現(xiàn)與測試</b></p><p>  運行程序,彈出登錄界面</p>&

28、lt;p>  輸入正確卡號和密碼(卡號123111密碼123456),進(jìn)入功能選擇界面</p><p><b>  實時查詢余額</b></p><p><b>  實時存款2500元</b></p><p><b>  實時取款1800元</b></p><p><

29、;b>  查詢信息</b></p><p>  修改密碼,將原密碼123456改為123999</p><p><b>  實時轉(zhuǎn)賬</b></p><p><b>  6 課程設(shè)計總結(jié)</b></p><p>  6.1 遇到的問題及解決辦法</p><p&

30、gt;  在此次課程設(shè)計中,我遇到了一些問題,如:對于面向?qū)ο蟮姆椒私獠粔蛲笍?,運用到實際的軟件開發(fā)中存在著困難;對于Java語言,只學(xué)習(xí)到了一些最基本的知識,這導(dǎo)致編寫程序時經(jīng)常出現(xiàn)一些語法錯誤,而且要在短時間內(nèi)用Java語言來設(shè)計一個具體的系統(tǒng)是一個較大的挑戰(zhàn);還有對于正規(guī)開發(fā)一個系統(tǒng)的流程不熟悉,適應(yīng)起來比較慢,編寫各個模塊相對應(yīng)的操作時,自己感覺難以動手,這表明所學(xué)的知識不能靈活運用到實際中。</p><p

31、>  對于以上的問題,自己有清楚的認(rèn)識,解決辦法是需要大量閱讀相關(guān)的書籍,對于書上以及網(wǎng)站上下載的資料中的Java實例必須有清楚的理解,還有就是多跟精通此方面的老師和同學(xué)交流,取其精華。對于實際動手能力與系統(tǒng)開發(fā)的流程的適應(yīng),必須多進(jìn)行實際的練習(xí)與操作,才能有大的進(jìn)步。</p><p><b>  6.2 心得體會</b></p><p>  在這次的學(xué)年度課

32、程設(shè)計中,我主要運用了Java語言的界面設(shè)計、異常處理、Swing控件等,綜合運用了Java語言。我深刻感受到了面向?qū)ο笳Z言中類庫的強(qiáng)大功能,掌握了運用Java中的類實現(xiàn)某些基本功能,并學(xué)會了自己查詢使用類的方法,為以后的面向?qū)ο笳Z言的自學(xué)奠定了基礎(chǔ)。</p><p>  通過這一個禮拜的課程設(shè)計我真的學(xué)到了很多的東西,當(dāng)然這也和我的同學(xué)的幫助是離不開的。好了,下面就談一下我在這些天的體會吧:</p>

33、<p>  在這次的課程設(shè)計中,主要是運用JAVA語言來編寫一個小的應(yīng)用程序,當(dāng)然還可以用其他的技術(shù)來輔助了。在這個小應(yīng)用程序當(dāng)中,我用了Java外還用了Swing控件。輸入輸出流等技術(shù)。由于以前學(xué)的不是很扎實,而且還有些知識我們都是沒有學(xué)過的,這就要求我們?nèi)ゲ橄嚓P(guān)的書籍,還有就是和同學(xué)之間的交流。正因為這樣,才鍛煉了我的自學(xué)的能力,還有就是加深了我對各個知識點的認(rèn)識,并且提高了我對專業(yè)的學(xué)習(xí)的興趣,為我以后的學(xué)習(xí)打下了基

34、礎(chǔ)。此外,我還感受到了面向?qū)ο笳Z言的類庫的強(qiáng)大的功能,掌握了運用JAVA中的類實現(xiàn)某些基本功能,并學(xué)會了自己查詢使用類的方法,也就是要會用API文檔,為以后更好的學(xué)習(xí)面向?qū)ο笳Z言奠定了基礎(chǔ)。</p><p>  通過將近一周的努力,這次課程設(shè)計終于結(jié)束了,在這個過程當(dāng)中,我學(xué)到了很多的知識,同時也感謝我的同學(xué)的幫助和指導(dǎo)。在以后的學(xué)習(xí)當(dāng)中,我會更加努力的學(xué)習(xí)好專業(yè)知識,并將所學(xué)的知識用于實踐當(dāng)中去,以便牢固掌握知

35、識。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 王萌,劉婧,來賓著.JAVA程序設(shè)計[M]北京 冶金工業(yè)出版社,2004</p><p>  [2] 黃聰明 精通 JAVA2程序設(shè)計[M]北京:清華大學(xué)出版社,2004.4</p><p>  [3] 王文濤,袁海燕 JAVA實用程序設(shè)計

36、100例[M]北京:人民郵電出版社,2005.5</p><p>  [4] 雍俊海 JAVA程序設(shè)計[M]北京:清華大學(xué)出版社,2006.8</p><p>  [5] 劉寶林 JAVA程序設(shè)計與案例[M]北京:高等教育出版社,2006.11</p><p><b>  附錄</b></p><p><b>

37、  主要代碼</b></p><p>  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {</p><p>  int id = Integer.valueOf(jTextField1.getText());</p><p>  String pawo = Str

38、ing.valueOf(jPasswordField1.getPassword());</p><p>  Manager m = new Manager();</p><p><b>  try {</b></p><p>  stat = conn.createStatement();</p><p>  rs =

39、stat.executeQuery("select * from atmuser");</p><p>  counter++;</p><p>  if (counter <= 3) {</p><p>  while (rs.next()) {</p><p>  if (rs.getInt(1) == id &

40、amp;& rs.getString(2).equals(pawo)) {</p><p>  m.id = id;</p><p>  m.pawo = pawo;</p><p>  m.setVisible(true);</p><p>  conn.close();</p><p>  this.dis

41、pose();</p><p><b>  break;</b></p><p><b>  } else {</b></p><p>  jLabel1.setText("登錄失敗");</p><p><b>  }</b></p><

42、;p><b>  }</b></p><p><b>  } else {</b></p><p>  counter++;</p><p>  if (counter > 3)</p><p>  System.exit(-1);</p><p><b&g

43、t;  }</b></p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p>  } finally {</p><p><b>  try {</b></p><p>  if (rs !=

44、 null) {</p><p>  rs.close();</p><p><b>  }</b></p><p>  if (stat != null) {</p><p>  stat.close();</p><p><b>  }</b></p>&l

45、t;p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p>&

46、lt;p>  public static void main(String args[]) {</p><p>  java.awt.EventQueue.invokeLater(new Runnable() {</p><p>  public void run() {</p><p>  new Login().setVisible(true);</

47、p><p><b>  }</b></p><p><b>  });</b></p><p><b>  }</b></p><p><b>  //轉(zhuǎn)賬</b></p><p>  private void jButton7Acti

48、onPerformed(java.awt.event.ActionEvent evt) {</p><p>  jLabel2.setVisible(false); //余額顯示的取消</p><p>  Tran_Accounts tran_accounts = new Tran_Accounts();</p><p>  tran_accounts.id = i

49、d;</p><p>  tran_accounts.pawo = pawo;</p><p>  //tran_accounts.isdeposit = true;</p><p>  tran_accounts.setVisible(true);</p><p>  this.dispose();</p><p>

50、<b>  }</b></p><p><b>  //修改密碼</b></p><p>  private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {</p><p><b>  //余額顯示的取消</b></p

51、><p>  EdPassword edpassword = new EdPassword();</p><p>  edpassword.id = id;</p><p>  edpassword.pawo = pawo;</p><p>  edpassword.setVisible(true);</p><p>  

52、this.dispose();</p><p><b>  }</b></p><p><b>  //取款按鈕</b></p><p>  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {</p><p>

53、  jLabel2.setVisible(false);</p><p>  Deposit deposit = new Deposit();</p><p>  deposit.id = id;</p><p>  deposit.pawo = pawo;</p><p>  deposit.isdeposit = true;</p&

54、gt;<p>  deposit.setVisible(true);</p><p>  this.dispose();</p><p><b>  }</b></p><p><b>  //存款按鈕</b></p><p>  private void jButton6Action

55、Performed(java.awt.event.ActionEvent evt) {</p><p>  jLabel2.setVisible(false);</p><p>  Deposit deposit = new Deposit();</p><p>  deposit.id = id;</p><p>  deposit.paw

56、o = pawo;</p><p>  deposit.isdeposit = false;</p><p>  deposit.setVisible(true);</p><p>  this.dispose();</p><p><b>  }</b></p><p>  private vo

57、id formComponentShown(java.awt.event.ComponentEvent evt) {</p><p>  String sql = "select * from atmuser where id = ? ";</p><p><b>  try {</b></p><p>  pstat =

58、conn.prepareStatement(sql);</p><p>  pstat.setInt(1, id);</p><p>  //pstat.setString(2, pawo);</p><p>  rs = pstat.executeQuery();</p><p>  rs.next();</p><p&

59、gt;  jLabel1.setText(rs.getString(3));</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p>  } finally {</p><p><b>  }</b></p>&

60、lt;p><b>  }</b></p><p><b>  //按鈕余額查詢</b></p><p>  private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {</p><p><b>  try {</b>

61、</p><p>  jLabel2.setText("余額:" + rs.getString(4));</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p>

62、<p>  jLabel2.setVisible(true);</p><p><b>  }</b></p><p><b>  //確定轉(zhuǎn)賬</b></p><p>  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)

63、{</p><p>  int i = 0;</p><p>  if (jTextField1.getText().equals(jTextField2.getText())) {</p><p><b>  try {</b></p><p>  stat = conn.createStatement();</

64、p><p>  rs = stat.executeQuery("select * from atmuser");</p><p>  System.out.println(i++);</p><p>  while (rs.next()) {</p><p>  if (rs.getInt(1) == id &&

65、; rs.getString(2).equals(pawo)) {</p><p>  if (JOptionPane.showConfirmDialog(null, "確實轉(zhuǎn)賬?", "確認(rèn)",</p><p>  JOptionPane.YES_NO_OPTION,</p><p>  JOptionPane.QUESTI

66、ON_MESSAGE) == 0) {</p><p>  Deposit deposit = new Deposit();</p><p>  deposit.id = id;</p><p>  deposit.tran_id = Integer.valueOf(jTextField1</p><p>  .getText());<

67、/p><p>  deposit.pawo = pawo;</p><p>  System.out.println(i++);</p><p>  deposit.isdeposit = true;</p><p>  deposit.is_tran = false;</p><p>  deposit.setVisib

68、le(true);</p><p>  this.dispose();</p><p>  conn.close();</p><p><b>  break;</b></p><p><b>  } else {</b></p><p><b>  break;&

69、lt;/b></p><p><b>  }</b></p><p><b>  } else {</b></p><p>  jLabel1.setText("查詢不到該用戶");//修改</p><p><b>  }</b></p>

70、<p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p>  } finally {</p><p><b>  try {</b></p><

71、;p>  if (rs != null) {</p><p>  rs.close();</p><p><b>  }</b></p><p>  if (pstat != null) {</p><p>  pstat.close();</p><p><b>  }</

72、b></p><p>  if (stat != null) {</p><p>  stat.close();</p><p><b>  }</b></p><p>  if (conn != null) {</p><p>  conn.close();</p><

73、p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><

74、;p><b>  } else {</b></p><p>  jLabel3.setText("請輸入相同輸入賬號");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //執(zhí)行取

75、款</b></p><p>  conn.setAutoCommit(true);</p><p>  sub_sql = "update atmuser set balance = balance - ? where id = ? ";</p><p>  add_sql = "update atmuser set bal

76、ance = balance + ? where id = ? ";</p><p>  if (isdeposit) {</p><p>  pstat = conn.prepareStatement(sub_sql);</p><p><b>  } else {</b></p><p>  pstat =

77、 conn.prepareStatement(add_sql);</p><p><b>  }</b></p><p>  pstat.setInt(1, Integer.valueOf(jLabel1.getText()));</p><p>  pstat.setInt(2, id);</p><p>  psta

78、t.execute();//取款完畢</p><p><b>  //執(zhí)行記錄</b></p><p>  add_sql = "insert into action_log values(?, '存款', ?, ?, ?)";</p><p>  if (is_tran) {</p><

79、p>  sub_sql = "insert into action_log values(?, '轉(zhuǎn)出', ?, ?, ?)";</p><p><b>  } else {</b></p><p>  sub_sql = "insert into action_log values(?, '取款',

80、 ?, ?, ?)";</p><p><b>  }</b></p><p>  if (isdeposit) {</p><p>  pstat = conn.prepareStatement(sub_sql);</p><p><b>  } else {</b></p>

81、<p>  pstat = conn.prepareStatement(add_sql);</p><p><b>  }</b></p><p>  pstat.setInt(1, id);</p><p>  pstat.setInt(2, Integer.valueOf(jLabel1.getText()));</p&

82、gt;<p>  if (isdeposit) {</p><p>  pstat.setInt(3, n_balance</p><p>  - Integer.valueOf(jLabel1.getText()));</p><p><b>  } else {</b></p><p>  pstat.

83、setInt(3, n_balance</p><p>  + Integer.valueOf(jLabel1.getText()));</p><p><b>  }</b></p><p>  //pstat.setDate(4, new Date(System.currentTimeMillis()));</p><p

84、>  pstat.setTimestamp(4, new Timestamp(System</p><p>  .currentTimeMillis()));</p><p>  pstat.execute();</p><p><b>  //執(zhí)行完畢</b></p><p><b>  //開始轉(zhuǎn)賬部

85、分</b></p><p>  if (is_tran == true) {</p><p>  //取到轉(zhuǎn)賬用戶的余額</p><p>  sql = "select * from atmuser where id = ? ";</p><p>  pstat = conn.prepareStatement(

86、sql);</p><p>  pstat.setInt(1, tran_id);</p><p>  rs = pstat.executeQuery();</p><p>  rs.next();</p><p>  tran_balance = rs.getInt("balance");</p><

87、p><b>  //執(zhí)行轉(zhuǎn)賬</b></p><p>  sql = "update atmuser set balance = ? + ? where id = ? ";</p><p>  pstat = conn.prepareStatement(sql);</p><p>  pstat.setInt(1, t

88、ran_balance);</p><p>  pstat.setInt(2, Integer.valueOf(jLabel1.getText()));</p><p>  pstat.setInt(3, tran_id);</p><p>  pstat.execute();</p><p><b>  //執(zhí)行記錄</b&

89、gt;</p><p>  sql = "insert into action_log values(?, '轉(zhuǎn)入', ?, ?, ?)";</p><p>  pstat = conn.prepareStatement(sql);</p><p>  pstat.setInt(1, tran_id);</p>&l

90、t;p>  pstat.setInt(2, Integer.valueOf(jLabel1.getText()));</p><p>  pstat.setInt(3, tran_balance</p><p>  + Integer.valueOf(jLabel1.getText()));</p><p>  //pstat.setDate(4, new D

91、ate(System.currentTimeMillis()));</p><p>  pstat.setTimestamp(4, new Timestamp(System</p><p>  .currentTimeMillis()));</p><p>  pstat.execute();</p><p>  conn.commit();

92、</p><p>  conn.setAutoCommit(true);</p><p><b>  //執(zhí)行完畢</b></p><p>  is_tran = false;</p><p><b>  }</b></p><p>  Manager m = new Man

93、ager();</p><p>  m.id = id;</p><p>  m.pawo = pawo;</p><p>  m.setVisible(true);</p><p>  this.setVisible(false);</p><p><b>  // break;</b><

94、/p><p>  } catch (NumberFormatException e) {</p><p>  e.printStackTrace();</p><p>  } catch (SQLException e) {</p><p><b>  try {</b></p><p>  conn

95、.rollback();</p><p>  conn.setAutoCommit(true);</p><p>  } catch (SQLException e1) {</p><p>  e1.printStackTrace();</p><p><b>  }</b></p><p>  

96、e.printStackTrace();</p><p>  } finally {</p><p><b>  try {</b></p><p>  if (rs != null) {</p><p>  rs.close();</p><p><b>  }</b>&l

97、t;/p><p>  if (pstat != null) {</p><p>  pstat.close();</p><p><b>  }</b></p><p>  if (stat != null) {</p><p>  stat.close();</p><p>

98、<b>  }</b></p><p>  if (conn != null) {</p><p>  conn.close();</p><p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.pri

99、ntStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  } else {</b></p><p><b>  num = "";</b></p&g

100、t;<p>  jLabel1.setText("余額不足");</p><p><b>  }</b></p><p><b>  } else {</b></p><p><b>  num = "";</b></p><p

溫馨提示

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

評論

0/150

提交評論