版權(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編程的實際動手能力并增強大家對面向?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> ?。?)打開、保存文件時的異常處理</p><p> 需要處理的異常:IOException</p><p
26、> ?。?)數(shù)據(jù)庫訪問時的異常處理</p><p> 需要處理的異常:SQLException</p><p> ?。?)加載類時的異常處理</p><p> 需要處理的異常:ClassNotFindException,當(dāng)應(yīng)用程序試圖使用Class類中的forName方法通過字符串名加載類時,但是沒有找到具有指定名稱的類的定義。</p>&l
27、t;p> ?。?)加載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言中類庫的強大功能,掌握了運用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言的類庫的強大的功能,掌握了運用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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計--- atm柜員機(jī)
- java課程設(shè)計-atm柜員機(jī)模擬程序資料
- java課程設(shè)計atm機(jī)
- java課程設(shè)計報告--銀行atm機(jī)系統(tǒng)
- atm機(jī)畢業(yè)論文(c++)--模擬atm柜員機(jī)程序
- java課程設(shè)計--atm機(jī)模擬系統(tǒng)
- ATM柜員機(jī)模擬任務(wù)書.doc
- atm課程設(shè)計報告---簡易atm機(jī)系統(tǒng)
- java課程設(shè)計報告--atm存取款系統(tǒng)
- 基于ANSYS的ATM自動柜員機(jī)結(jié)構(gòu)的研究.pdf
- 國內(nèi)銀行ATM(自動柜員機(jī))業(yè)務(wù)外包運營管理研究.pdf
- 自動柜員機(jī)(ATM)產(chǎn)品可用性評估及改進(jìn).pdf
- 基于Windows開放體系架構(gòu)的ATM(自動柜員機(jī))軟件系統(tǒng)設(shè)計.pdf
- 課程設(shè)計報告--atm取款機(jī)程序
- 中國郵政儲蓄自動柜員機(jī)(atm)管理辦法
- atm課程設(shè)計報告--atm管理系統(tǒng)
- atm機(jī)課程設(shè)計--atm自動粗取款系統(tǒng)
- 課程設(shè)計報告---atm自動提款機(jī)系統(tǒng)
- atm課程設(shè)計報告---atm交易管理系統(tǒng)
- java課程設(shè)計---atm柜臺模擬說明書
評論
0/150
提交評論