版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《C/S項(xiàng)目實(shí)訓(xùn)》課程設(shè)計(jì)報(bào)告</p><p> 年 月 日</p><p><b> 摘 要</b></p><p> 本ATM系統(tǒng)的目的就是建立一個(gè)客戶(hù)平臺(tái),用戶(hù)使用此平臺(tái)除了可以進(jìn)行查詢(xún)余額、存款、取款、轉(zhuǎn)賬、修改密碼等基本業(yè)務(wù)辦理,還可以進(jìn)行查詢(xún)明細(xì),定期存款等ATM取款系統(tǒng)的針對(duì)的用戶(hù)群是使用此軟
2、件系統(tǒng)的用戶(hù),用戶(hù)做為系統(tǒng)的服務(wù)群體,可以使用數(shù)據(jù)庫(kù)已有的賬號(hào)與密碼,登陸ATM系統(tǒng)。當(dāng)用戶(hù)成功登陸后就可以根據(jù)用戶(hù)的需求進(jìn)行各項(xiàng)業(yè)務(wù)的辦理,辦理完所有的手續(xù)后,用戶(hù)的輸入的新資料以及辦理的業(yè)務(wù)處理后的信息都會(huì)反饋到數(shù)據(jù)庫(kù)并且都會(huì)存入到數(shù)據(jù)庫(kù)中。這樣用戶(hù)就完成了辦理業(yè)務(wù)。 </p><p> 關(guān)鍵詞: ATM 數(shù)據(jù)庫(kù) 客戶(hù)端 服務(wù)器端</p><p><b
3、> 目錄</b></p><p><b> 第一章 引言1</b></p><p> 選題背景及意義 1</p><p> 第二章 系統(tǒng)分析2</p><p><b> 2.1需求分析2</b></p><p> 2.1.1
4、總體需求2</p><p> 2.1.2 具體事務(wù) 2</p><p><b> 2.2功能分析2</b></p><p><b> 2.3主要難點(diǎn)3</b></p><p> 2.4開(kāi)發(fā)工具與環(huán)境3</p><p> 2.4.1開(kāi)發(fā)工
5、具3</p><p> 2.4.2開(kāi)發(fā)環(huán)境3</p><p> 第三章 概要設(shè)計(jì)4</p><p><b> 3.1設(shè)計(jì)思想4</b></p><p> 3.2數(shù)據(jù)庫(kù)設(shè)計(jì)4</p><p> 3.2.1管理員表4</p><p> 3.2.2用戶(hù)表
6、5</p><p> 3.2.3用戶(hù)信息表5</p><p> 3.2.4定期存款表5</p><p> 第四章 詳細(xì)設(shè)計(jì)6</p><p> 4.1總設(shè)計(jì)流圖6</p><p><b> 4.2登錄設(shè)計(jì)6</b></p><p> 4.3開(kāi)戶(hù)設(shè)計(jì)
7、11</p><p> 4.4主界面設(shè)計(jì)14</p><p> 4.5存款設(shè)計(jì)16</p><p> 4.6取款設(shè)計(jì)19</p><p> 4.7轉(zhuǎn)賬設(shè)計(jì)23</p><p> 4.8解除掛失密碼26</p><p> 4.9銷(xiāo)戶(hù)設(shè)計(jì)29</p><
8、p> 4.10查詢(xún)余額30</p><p> 4.11查詢(xún)交易明細(xì)33</p><p> 4.12修改密碼36</p><p> 4.13掛失設(shè)計(jì)38</p><p> 4.14服務(wù)器端設(shè)計(jì)40</p><p> 第五章 總結(jié)43</p><p> 參 考 文
9、獻(xiàn)44</p><p><b> 附錄45</b></p><p> 附錄1 文件清單45</p><p> 附錄2 用戶(hù)使用說(shuō)明45</p><p><b> 第一章 引言</b></p><p><b> 選題背景及意義 <
10、;/b></p><p> 隨著信息時(shí)代科技的飛速發(fā)展,使用ATM取款機(jī)、計(jì)算機(jī)等技術(shù)的發(fā)展,不僅提高了工作效率,而且大大的提高了其安全性。對(duì)于一些復(fù)雜的信息,就能夠充分的發(fā)揮它們的優(yōu)越性。本系統(tǒng)就是為了更方便人們的生活而設(shè)計(jì)的。 </p><p> ATM系統(tǒng)作為一款數(shù)據(jù)傳輸?shù)募夹g(shù),用戶(hù)信息和資金信息的繁雜,包含很多的數(shù)據(jù)的管理,以前的都是由一些柜員進(jìn)行操作,而且手續(xù)
11、很多。對(duì)于ATM取款系統(tǒng)數(shù)據(jù)的統(tǒng)計(jì)和核實(shí)等都是采用卡號(hào)進(jìn)行核對(duì)的,對(duì)于用戶(hù)的信息資料、以及等用人工辦理。數(shù)據(jù)信息處理工作量大,繁瑣。數(shù)據(jù)處理手工操作,工作量大,工作時(shí)需實(shí)時(shí)認(rèn)真辦理,一但出現(xiàn)錯(cuò)誤將帶來(lái)很大的損失。由于信息一定要準(zhǔn)確真實(shí),認(rèn)真的進(jìn)行各項(xiàng)核對(duì)工作,工作人員和管理員也只是當(dāng)時(shí)對(duì)它比較清楚,時(shí)間一長(zhǎng),如再要進(jìn)行查詢(xún),就得在眾多的資料中翻閱、查找了,造成查詢(xún)費(fèi)時(shí)、費(fèi)力。 </p><p> 針對(duì)
12、這一系列問(wèn)題,我們?cè)O(shè)計(jì)了這一個(gè)系統(tǒng),使得用戶(hù)可以安全的進(jìn)行操作,可以便捷、快速的進(jìn)行取款、存款、修改密碼、查詢(xún)余額、查詢(xún)交易明細(xì)、掛失、開(kāi)戶(hù)以及完成一些商業(yè)上的交易,如轉(zhuǎn)賬,大大地提高了辦公效率,能夠及時(shí)、準(zhǔn)確、有效的幫用戶(hù)辦理各種繁瑣的手續(xù)。</p><p><b> 第二章 系統(tǒng)分析</b></p><p><b> 2.1需求分析</b&g
13、t;</p><p><b> 2.1.1總體需求</b></p><p> 開(kāi)發(fā)一款系統(tǒng)軟件,此軟件運(yùn)行于銀行的ATM機(jī)器上,可以供用戶(hù)使用,完成用戶(hù)的經(jīng)濟(jì)交易,使得用戶(hù)不需要專(zhuān)門(mén)到銀行去辦理業(yè)務(wù),只需要到相關(guān)銀行的ATM機(jī)器上操作即可。銀行可以節(jié)約人力資源,不需要為每個(gè)客戶(hù)人工服務(wù)。 </p><p> 2.1.2
14、;具體事務(wù) </p><p> 用戶(hù):用戶(hù)存錢(qián),用戶(hù)取錢(qián),用戶(hù)轉(zhuǎn)賬,用戶(hù)查詢(xún)賬戶(hù)信息,用戶(hù)修改個(gè)人設(shè)置,用戶(hù)查看個(gè)人交易記錄。 </p><p> ATM機(jī)器:與用戶(hù)交互界面,幫助提示信息,用戶(hù)需要操作實(shí)現(xiàn),用戶(hù)操作紀(jì)錄記錄,與數(shù)據(jù)庫(kù)實(shí)時(shí)同步。</p><p><b> 2.2功能分析</b></p>&
15、lt;p> 實(shí)現(xiàn)ATM的基本功能,包括:查詢(xún)余額、取款、存款、改密碼、轉(zhuǎn)賬 等基本功能 ;查詢(xún)余額:連接數(shù)據(jù)庫(kù),根據(jù)正確的用戶(hù)名與密碼登陸查詢(xún)對(duì)應(yīng)的余額; 取款、存款: 存款與取款的金額必需為100的整數(shù)倍,且每次操作不大于3000元,成功修改后,更新對(duì)應(yīng)數(shù)據(jù)庫(kù)的內(nèi)容;修改密碼:只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼;轉(zhuǎn)賬:每次轉(zhuǎn)賬的金額必需小于余額,只有輸入的轉(zhuǎn)賬賬號(hào)兩次都相同的情況下,才可以
16、成功轉(zhuǎn)賬; 用數(shù)據(jù)庫(kù)(或文件)保存當(dāng)前用戶(hù)的用戶(hù)卡號(hào)、密碼、姓名、余額</p><p><b> 2.3主要難點(diǎn)</b></p><p> ATM取款系統(tǒng)是面向特定對(duì)象群是在此軟件系統(tǒng)開(kāi)戶(hù)辦理的用戶(hù),所以用戶(hù)進(jìn)入開(kāi)戶(hù)辦理時(shí)的資料都需要嚴(yán)格核查,用戶(hù)登陸系統(tǒng)后,應(yīng)該能根據(jù)自己的需要進(jìn)行各項(xiàng)業(yè)務(wù)的辦理。 </p><p>
17、 鑒于軟件系統(tǒng)使用環(huán)境一般在網(wǎng)絡(luò)上或銀行門(mén)口裝置機(jī)械,為了考慮到軟件的安全性,對(duì)于每個(gè)用戶(hù)來(lái)說(shuō),系統(tǒng)的安全性直接影響著自身的利益,同時(shí)也有可能也使用此軟件的銀行帶來(lái)很的損失。特別是網(wǎng)絡(luò)環(huán)境,到處伴隨著危險(xiǎn),ATM取款系統(tǒng)針對(duì)這一用戶(hù)群,采取一些有效的措施,登陸后用戶(hù)辦理完的業(yè)務(wù)信息反饋到客戶(hù)端數(shù)據(jù)庫(kù)里,做好防止信息被攔截工作。</p><p> 2.4開(kāi)發(fā)工具與環(huán)境</p><p>
18、2.4.1開(kāi)發(fā)工具 </p><p> ? 開(kāi)發(fā)語(yǔ)言:Java、SQL</p><p> ? 數(shù)據(jù)庫(kù):MySql5.5</p><p> ? 操作系統(tǒng):Windows 8.0</p><p> 2.4.2開(kāi)發(fā)環(huán)境 </p><p> ? 硬件方面: 個(gè)人計(jì)算機(jī) </p><p>
19、 ? 軟件方面: Myeclipse7.0</p><p><b> 第三章 概要設(shè)計(jì)</b></p><p> 3.1設(shè)計(jì)思想 </p><p> 本ATM系統(tǒng)需要滿(mǎn)足用戶(hù)的需求,即可以進(jìn)行各項(xiàng)業(yè)務(wù)的辦理。用戶(hù)可以根 據(jù)數(shù)據(jù)庫(kù)中正確的卡號(hào)和密碼登錄到系統(tǒng),登錄成功后可進(jìn)行操作,所有的數(shù)據(jù)都要從數(shù)據(jù)庫(kù)中獲取,當(dāng)數(shù)據(jù)被
20、修改后,則必須改變數(shù)據(jù)庫(kù)中,相應(yīng)賬號(hào)中的數(shù)據(jù),如存款后,則要更新相應(yīng)賬號(hào)中的余額;而修改密碼后,則要更新相應(yīng)賬號(hào)中的密碼信息,原來(lái)的密碼就不能使用</p><p> 3.2數(shù)據(jù)庫(kù)設(shè)計(jì) </p><p> 數(shù)據(jù)庫(kù)選擇了Access2003的數(shù)據(jù)庫(kù)作為后臺(tái),創(chuàng)建了客戶(hù)的信息表,然后通過(guò)配置ODBC數(shù)據(jù)源,加載JDBC驅(qū)動(dòng)程序,引用java.sql包來(lái)創(chuàng)建數(shù)據(jù)庫(kù)連接,然后在程序中執(zhí)行SQL
21、語(yǔ)句來(lái)對(duì)數(shù)據(jù)進(jìn)行讀取和修改。</p><p><b> 數(shù)據(jù)庫(kù)表如下圖:</b></p><p><b> 3.2.1管理員表</b></p><p><b> 3.2.2用戶(hù)表</b></p><p> 3.2.3用戶(hù)信息表</p><p>
22、 3.2.4定期存款表</p><p> 3.3功能模塊劃分 </p><p> 本系統(tǒng)可以劃分為如下功能模塊:登錄、開(kāi)戶(hù)、銷(xiāo)戶(hù)、掛失、解掛、修改密碼、查詢(xún)、取款、存款、轉(zhuǎn)賬等模塊。 </p><p><b> 第四章詳細(xì)設(shè)計(jì)</b></p><p><
23、b> 4.1總設(shè)計(jì)流圖</b></p><p><b> 4.2登錄設(shè)計(jì)</b></p><p><b> ?。?)實(shí)現(xiàn)效果:</b></p><p> ?。?)關(guān)鍵代碼如下:</p><p> public void actionPerformed(ActionEvent
24、e) {</p><p> // TODO Auto-generated method stub</p><p> if(e.getSource()==btOk){</p><p><b> //提取賬號(hào)和密碼</b></p><p> String account=tfAccount.getText();<
25、;/p><p> String pwd=new String(pfPwd.getPassword());</p><p><b> //發(fā)送連接請(qǐng)求</b></p><p><b> Socket s;</b></p><p><b> try {</b></p>
26、;<p> s = new Socket(InetAddress.getByName("127.0.0.1"),8090);</p><p> InputStream ips=s.getInputStream();</p><p> OutputStream ops=s.getOutputStream();</p><p>
27、 BufferedReader br=new BufferedReader(new InputStreamReader(ips));</p><p> PrintWriter pw=new PrintWriter(ops);</p><p><b> //發(fā)送消息頭</b></p><p> pw.write("Login\r\
28、n");</p><p> pw.flush();</p><p><b> //發(fā)送賬號(hào)密碼</b></p><p> pw.write(account+"\r\n");</p><p> pw.write(pwd+"\r\n");</p><
29、;p> pw.flush();</p><p><b> //接收服務(wù)器響應(yīng)</b></p><p> String echo=br.readLine();</p><p> if(echo.equals("1")){//賬號(hào)有誤</p><p> JOptionPane.showMe
30、ssageDialog(Login.this,"賬號(hào)有誤!");</p><p> tfAccount.setText("");</p><p> pfPwd.setText("");</p><p><b> }</b></p><p> if(ech
31、o.equals("2")){//賬號(hào)和密碼都正確</p><p> //接收卡的基本信息,并且創(chuàng)建一個(gè)card類(lèi)</p><p> float money=Float.parseFloat(br.readLine());</p><p> boolean bool=Boolean.parseBoolean(br.readLine());&
32、lt;/p><p> String name=br.readLine();</p><p> String sex=br.readLine();</p><p> int age=Integer.parseInt(br.readLine());</p><p> String id=br.readLine();</p>&l
33、t;p> String phone=br.readLine();</p><p> //并且創(chuàng)建一個(gè)card類(lèi)</p><p> currCard=new Card(account,name,sex,age,id,pwd,phone,money,bool);</p><p> //接收判斷卡號(hào)是不是可以用的bool變量</p><p
34、> String str=br.readLine();</p><p> if(str.equals("ok")){//用戶(hù)處于正常狀態(tài)</p><p> new Basic(br,pw,currCard).init();</p><p> Login.this.dispose();</p><p> }e
35、lse if(str.equals("error")){//密碼錯(cuò)誤三次</p><p> int i=JOptionPane.showConfirmDialog(null, "該賬戶(hù)已被凍結(jié),是否解凍?","提示!",</p><p> JOptionPane.YES_NO_OPTION);</p><p
36、> if(i==JOptionPane.OK_OPTION){</p><p> new JieGua(br,pw,currCard).init();</p><p> Login.this.dispose();</p><p><b> }else{</b></p><p> tfAccount.set
37、Text("");</p><p> pfPwd.setText("");</p><p><b> }</b></p><p><b> }</b></p><p> }else if(echo.equals("3")){//密碼
38、錯(cuò)誤</p><p> JOptionPane.showMessageDialog(Login.this,"您輸入的密碼有誤!");</p><p> tfAccount.setText("");</p><p> pfPwd.setText("");</p><p> }e
39、lse if(echo.equals("4")){//密碼錯(cuò)誤三次</p><p> JOptionPane.showMessageDialog(Login.this,"您輸入的密碼已錯(cuò)誤3次,即將吞卡!");</p><p> System.exit(0);</p><p><b> }</b>&
40、lt;/p><p> }catch(IOException e1){</p><p> e1.printStackTrace();</p><p><b> }</b></p><p> }else if(e.getSource()==btCancel){</p><p> tfAccoun
41、t.setText("");</p><p> pfPwd.setText("");</p><p> }else if(e.getSource()==a){</p><p> //new togerther().init();</p><p> this.dispose();</p&g
42、t;<p> }else if(e.getSource()==adduser){</p><p><b> Socket s;</b></p><p><b> try {</b></p><p> s = new Socket(InetAddress.getByName("127.0.0.
43、1"),8090);</p><p> InputStream ips=s.getInputStream();</p><p> OutputStream ops=s.getOutputStream();</p><p> BufferedReader br=new BufferedReader(new InputStreamReader(ips))
44、;</p><p> PrintWriter pw=new PrintWriter(ops);</p><p> new AddUser(br,pw).init();</p><p> this.setVisible(false);</p><p> } catch (UnknownHostException e1) {</p&
45、gt;<p> // TODO Auto-generated catch block</p><p> e1.printStackTrace();</p><p> } catch (IOException e1) {</p><p> // TODO Auto-generated catch block</p><p>
46、; e1.printStackTrace();}</p><p><b> }</b></p><p><b> 4.3開(kāi)戶(hù)設(shè)計(jì)</b></p><p><b> (1)實(shí)現(xiàn)效果:</b></p><p> ?。?)關(guān)鍵代碼如下:</p><p>
47、; public void actionPerformed(ActionEvent arg0) {</p><p> // TODO Auto-generated method stub</p><p> boolean flag2=true;</p><p> String name=new String(tfname.getText());</p&
48、gt;<p> String account=new String(tfaccount.getText());</p><p> String onepwd=new String(pffirstpwd.getPassword());</p><p> String twopwd=new String(pfsecondpwd.getPassword());</p&g
49、t;<p> String idcard=new String(tfidcard.getText());</p><p> String phone=new String (tfphone.getText());</p><p> jb.addItemListener(new ItemListener(){</p><p><b>
50、@Override</b></p><p> public void itemStateChanged(ItemEvent arg0) {</p><p> // TODO Auto-generated method stub</p><p><b> }</b></p><p><b>
51、});</b></p><p> if(onepwd.equals("")&&idcard.equals("")&&name.equals("")</p><p> &&phone.equals("")){</p><p>
52、 JOptionPane.showMessageDialog(AddUser.this, "請(qǐng)認(rèn)真填寫(xiě)個(gè)人信息!");</p><p><b> }else{</b></p><p> if(!onepwd.equals(twopwd)){</p><p> JOptionPane.showMessageDialog
53、(AddUser.this, "兩次輸入的密碼不一致!");</p><p><b> }else{</b></p><p> JOptionPane.showMessageDialog(AddUser.this,sex);</p><p> //new Login().init();</p><p
54、> //AddUser.this .dispose();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> try {</b></p>
55、<p> pstmt=conn.prepareStatement(sql);</p><p> pstmt.setString(1,transAccount);</p><p> rs=pstmt.executeQuery();</p><p> if(rs.next()){</p><p> transCard=new
56、Card();</p><p> transCard.setName(rs.getString("name"));</p><p> transCard.setSex(rs.getString("sex"));</p><p> transCard.setAge(rs.getInt("age"));&
57、lt;/p><p> transCard.setID(rs.getString("id"));</p><p> transCard.setPhone(rs.getString("phone")); </p><p><b> }</b></p><p> return tra
58、nsCard;</p><p> } catch (SQLException e) {</p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p><b> }</b></p><p>
59、<b> 4.4主界面設(shè)計(jì)</b></p><p><b> 實(shí)現(xiàn)效果: </b></p><p><b> 關(guān)鍵代碼如下:</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // T
60、ODO Auto-generated method stub</p><p> if(e.getSource()==SaveM){</p><p> new SaveM(br,pw,currCard).init();}</p><p> if(e.getSource()==TakeM){</p><p> new TakeM2(br,
61、pw,currCard).init();}</p><p> if(e.getSource()==TransM){</p><p> new TranM(br,pw,currCard).init();}</p><p> if(e.getSource()==QueryM){</p><p> new ChaXun(br,pw,curr
62、Card).init();}</p><p> if(e.getSource()==a1){</p><p> new Mima(br,pw,currCard).init();</p><p> this.dispose();}</p><p> if(e.getSource()==a2){</p><p>
63、 JOptionPane.showMessageDialog(Basic.this, "請(qǐng)?jiān)?0秒內(nèi)取走你的卡片,否則將會(huì)被吞卡");</p><p> new Login().init();</p><p> this.setVisible(false);</p><p><b> }</b></p>
64、<p> if(e.getSource()==DelUser){</p><p> new DelUser(br,pw,currCard).init();</p><p> this.setVisible(false);}</p><p> if(e.getSource()==GuaShi){</p><p> new G
65、uaShi(br,pw,currCard).init();</p><p> this.setVisible(false);</p><p><b> }</b></p><p><b> }</b></p><p><b> 4.5存款設(shè)計(jì)</b></p>
66、<p><b> ?。?)實(shí)現(xiàn)效果:</b></p><p> ?。?)關(guān)鍵代碼如下:</p><p> this.addWindowListener(new WindowAdapter(){</p><p> public void windowClosing(WindowEvent e){</p><p
67、> pw.write("Logoff\r\n");</p><p> pw.flush();</p><p> SaveM.this.dispose();</p><p><b> }</b></p><p><b> });</b></p><
68、;p> Images images=new Images();</p><p> images.AddImage(this,("image\\3.jpg"));</p><p> for(int i=0;i<10;i++){</p><p> btNum[i].addActionListener(new ActionListe
69、ner(){</p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO Auto-generated method stub</p><p> String str=e.get
70、ActionCommand();</p><p> if(!isNum){</p><p> text.setText(str);</p><p> isNum=true;</p><p><b> }</b></p><p><b> else{</b></
71、p><p> text.setText(text.getText()+str);</p><p><b> }</b></p><p><b> }</b></p><p><b> });</b></p><p><b> }</
72、b></p><p> btOk.addActionListener(new ActionListener(){</p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO
73、 Auto-generated method stub</p><p> //把text里的數(shù)據(jù)取出來(lái)強(qiáng)制轉(zhuǎn)換成int,用k來(lái)接受</p><p> int k=Integer.parseInt(text.getText());</p><p> if(k%100==0){</p><p> if(k>3000){<
74、;/p><p> JOptionPane.showMessageDialog(SaveM.this, "對(duì)不起,你一次最多只能存入3000元現(xiàn)金!");</p><p> text.setText("");</p><p><b> }else{</b></p><p> pw
75、.write("save\r\n");</p><p> pw.write(k+"\r\n");</p><p> pw.flush();</p><p> String str;</p><p><b> try {</b></p><p> s
76、tr=br.readLine();</p><p> if(str.equals("saveSuccess")){</p><p> //更新當(dāng)前集合數(shù)據(jù)</p><p> currCard.setMoney(currCard.getMoney()+k);</p><p> text.setText("&
77、quot;);</p><p> JOptionPane.showMessageDialog(SaveM.this, "存款成功!");</p><p><b> }else{</b></p><p> JOptionPane.showMessageDialog(SaveM.this, "存款失??!"
78、;);</p><p><b> }</b></p><p> } catch (IOException e1) {</p><p> // TODO Auto-generated catch block</p><p> e1.printStackTrace();</p><p><
79、;b> }</b></p><p><b> }</b></p><p><b> }else{</b></p><p> JOptionPane.showMessageDialog(SaveM.this, "你輸入的金額不對(duì)!");</p><p&
80、gt;<b> }</b></p><p><b> }</b></p><p><b> });</b></p><p> btCancel.addActionListener(new ActionListener(){</p><p><b> @Ove
81、rride</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO Auto-generated method stub</p><p> SaveM.this.dispose();</p><p><b> }<
82、/b></p><p><b> });</b></p><p><b> 4.6取款設(shè)計(jì)</b></p><p><b> 實(shí)現(xiàn)界面:</b></p><p><b> 關(guān)鍵代碼如下:</b></p><p> p
83、ublic void actionPerformed(ActionEvent e) {</p><p> // TODO Auto-generated method stub</p><p> //把text里的數(shù)據(jù)取出來(lái)強(qiáng)制轉(zhuǎn)換成int,用k來(lái)接受</p><p> int k=Integer.parseInt(text.getText());</p&
84、gt;<p><b> if(k==0){</b></p><p> JOptionPane.showMessageDialog(TakeM.this, "警告:請(qǐng)不要隨意操作!!");</p><p><b> }</b></p><p> if(currCard.getMone
85、y()>=k){</p><p> if(k%100==0){</p><p> if(k>3000){</p><p> JOptionPane.showMessageDialog(TakeM.this, "對(duì)不起,你一次最多只能提取3000元現(xiàn)金!");</p><p> text.setText(
86、"");</p><p><b> }else{</b></p><p> pw.write("take\r\n");</p><p> pw.write(k+"\r\n");</p><p> pw.flush();</p><p&
87、gt; String str;</p><p><b> try {</b></p><p> str=br.readLine();</p><p> if(str.equals("takeSuccess")){</p><p> //更新當(dāng)前集合數(shù)據(jù)</p><p>
88、; currCard.setMoney(currCard.getMoney()-k);</p><p> JOptionPane.showMessageDialog(TakeM.this, "恭喜你,取款成功!");</p><p> text.setText("");</p><p><b> }else{
89、</b></p><p> JOptionPane.showMessageDialog(TakeM.this, "取款失敗?。?quot;);</p><p><b> }</b></p><p> } catch (IOException e1) {</p><p> // TODO Au
90、to-generated catch block</p><p> e1.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p><b> }else{</b></p><p&
91、gt; JOptionPane.showMessageDialog(TakeM.this, "你輸入的金額不對(duì)!");</p><p><b> }</b></p><p><b> }else{</b></p><p> JOptionPane.showMessageDialog(TakeM.
92、this, "你的賬戶(hù)余額不足!");</p><p><b> }</b></p><p><b> }</b></p><p><b> try {</b></p><p> pstmt=conn.prepareStatement(sql);&l
93、t;/p><p> pstmt.setString(1,transAccount);</p><p> rs=pstmt.executeQuery();</p><p> if(rs.next()){</p><p> transCard=new Card();</p><p> transCard.setNam
94、e(rs.getString("name"));</p><p> transCard.setSex(rs.getString("sex"));</p><p> transCard.setAge(rs.getInt("age"));</p><p> transCard.setID(rs.getSt
95、ring("id"));</p><p> transCard.setPhone(rs.getString("phone")); </p><p><b> }</b></p><p> return transCard;</p><p> } catch (SQLExce
96、ption e) {</p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> 4.7轉(zhuǎn)賬設(shè)計(jì)</b></p><p&
97、gt;<b> 實(shí)現(xiàn)效果:</b></p><p><b> 關(guān)鍵代碼如下:</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO Auto-generated method stub</p><p&
98、gt; if(e.getSource()==btOk){</p><p> String transAccount=b.getText();</p><p> //只有當(dāng)輸入的轉(zhuǎn)賬卡號(hào)不是自己的卡號(hào)才向服務(wù)器端發(fā)送數(shù)據(jù)</p><p> if(!transAccount.equals(currCard.getAccount())){</p>&
99、lt;p> pw.write("transmoney\r\n");</p><p> pw.write(transAccount+"\r\n");</p><p> pw.flush();</p><p><b> try {</b></p><p> String
100、 str=br.readLine();</p><p> if(str.equals("1")){</p><p> new TranM2(br,pw,currCard).init();</p><p> TranM.this.dispose();</p><p><b> }else{<
101、/b></p><p> JOptionPane.showMessageDialog(TranM.this, "您輸入的卡號(hào)不正確");</p><p><b> }</b></p><p> } catch (IOException e1) {</p><p> // TODO Aut
102、o-generated catch block</p><p> e1.printStackTrace();</p><p><b> }</b></p><p><b> }else{</b></p><p> JOptionPane.showMessageDialog(TranM.thi
103、s, "您輸入的卡號(hào)不正確");</p><p><b> }</b></p><p> }else if(e.getSource()==btCancel){</p><p> TranM.this.dispose();</p><p><b> }</b></p&
104、gt;<p><b> }</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO Auto-generated method stub</p><p> int k=Integer.parseInt(text.getText()
105、);</p><p> if(currCard.getMoney()>=k){</p><p> pw.write(k+"\r\n");</p><p> pw.flush();</p><p><b> try {</b></p><p> String st
106、r=br.readLine();</p><p> if(str.equals("Success")){</p><p> currCard.setMoney(currCard.getMoney()-k);</p><p> JOptionPane.showMessageDialog(TranM2.this, "恭喜你,轉(zhuǎn)賬成功!
107、你當(dāng)前的余額是:"+currCard.getMoney());</p><p> TranM2.this.dispose();</p><p><b> }else{</b></p><p> JOptionPane.showMessageDialog(TranM2.this, "轉(zhuǎn)賬失敗!");</p
108、><p><b> }</b></p><p> } catch (IOException e1) {</p><p> // TODO Auto-generated catch block</p><p> e1.printStackTrace();}</p><p><b>
109、}else{</b></p><p> JOptionPane.showMessageDialog(TranM2.this, "余額不足 !");</p><p><b> }</b></p><p><b> }</b></p><p><b>
110、4.8解除掛失密碼</b></p><p><b> 實(shí)現(xiàn)效果:</b></p><p><b> 關(guān)鍵代碼如下:</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO Auto-ge
111、nerated method stub</p><p> String pwd1=new String(b2.getPassword());</p><p> String id1=b5.getText();</p><p> boolean flag=true;</p><p> if(!pwd1.equals(currCard.g
112、etPwd())){</p><p> JOptionPane.showMessageDialog(JieGua.this,"密碼有誤!");</p><p> b2.setText("");</p><p> flag=false;</p><p><b> }</b>&
113、lt;/p><p> if(!id1.equals(currCard.getId())){</p><p> JOptionPane.showMessageDialog(JieGua.this,"身份證號(hào)有誤!");</p><p> b5.setText("");</p><p> flag=fa
114、lse;</p><p><b> }</b></p><p> if(flag==true){</p><p> pw.write("removeLoss\r\n");</p><p> pw.flush();</p><p><b> try {<
115、/b></p><p> String string=br.readLine();</p><p> if(string.equals("lossSuccess")){</p><p> JOptionPane.showMessageDialog(JieGua.this, "解掛成功,請(qǐng)重新登錄!");</p
116、><p> new Login().init();</p><p> JieGua.this.dispose();</p><p><b> }else{</b></p><p> JOptionPane.showMessageDialog(JieGua.this, "掛失失敗!");</p
117、><p> new Login().init();</p><p> JieGua.this.dispose();</p><p><b> }</b></p><p> } catch (IOException e1) {</p><p> // TODO Auto-generated c
118、atch block</p><p> e1.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 4.9銷(xiāo)戶(hù)
119、設(shè)計(jì)</b></p><p><b> 實(shí)現(xiàn)效果:</b></p><p><b> 關(guān)鍵代碼如下:</b></p><p> public void actionPerformed(ActionEvent arg0) {</p><p> // TODO Auto-genera
120、ted method stub</p><p> if(currCard.getMoney()!=0){</p><p> JOptionPane.showMessageDialog(DelUser2.this, "你的卡上還有"+currCard.getMoney()+"元,請(qǐng)做處理余額!");</p><p> ne
121、w Basic(br,pw,currCard).init();</p><p> DelUser2.this.dispose();</p><p><b> }else{</b></p><p> pw.write("delUser\r\n");</p><p> pw.flush();<
122、;/p><p><b> try {</b></p><p> String str=br.readLine();</p><p> if(str.equals("Success")){</p><p> JOptionPane.showMessageDialog(DelUser2.this, &
123、quot;銷(xiāo)戶(hù)成功!");</p><p> new Login().init();</p><p> DelUser2.this.dispose();</p><p><b> }else{</b></p><p> JOptionPane.showMessageDialog(DelUser2.thi
124、s, "銷(xiāo)戶(hù)成功!");</p><p> DelUser2.this.dispose();</p><p><b> }</b></p><p> } catch (IOException e) {</p><p> // TODO Auto-generated catch block<
125、;/p><p> e.printStackTrace();</p><p><b> }</b></p><p> JOptionPane.showMessageDialog(DelUser2.this, "銷(xiāo)戶(hù)成功!");</p><p> new Login().init();</p&g
126、t;<p> DelUser2.this.dispose();</p><p><b> }</b></p><p><b> }</b></p><p><b> 4.10查詢(xún)余額</b></p><p><b> 效果實(shí)現(xiàn):</b&g
127、t;</p><p><b> 關(guān)鍵代碼如下:</b></p><p> pw.write("chaxun\r\n");</p><p> pw.flush();</p><p><b> int i=0;</b></p><p> while(
128、i<5){</p><p><b> try {</b></p><p> String type=br.readLine();</p><p> String time=br.readLine();</p><p> float money=Float.parseFloat(br.readLine());
129、</p><p> rowDate[i][0]=currCard.getAccount();</p><p> rowDate[i][1]=currCard.getName();</p><p> rowDate[i][2]=time;</p><p> rowDate[i][3]=type;</p><p>
130、 rowDate[i][4]=money;</p><p><b> i++;</b></p><p> } catch (IOException e) {</p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace();<
131、/p><p><b> }try {</b></p><p> st=conn.createStatement();</p><p><b> //執(zhí)行SQL語(yǔ)句</b></p><p> rs=st.executeQuery(sql);</p><p> if(rs.
132、next()){</p><p> currCard=new Card();</p><p> currCard.setMoney(rs.getFloat("money"));</p><p> currCard.setBool(rs.getBoolean("bool"));</p><p>
133、currCard.setName(rs.getString("name"));</p><p> currCard.setSex(rs.getString("sex"));</p><p> currCard.setAge(rs.getInt("age"));</p><p> currCard.se
134、tID(rs.getString("id"));</p><p> currCard.setPhone(rs.getString("phone")); </p><p> currCard.setAccount(rs.getString("account"));</p><p> currCard.s
135、etPwd(rs.getString("pwd")); </p><p><b> }</b></p><p> } catch (SQLException e) {</p><p> // TODO Auto-generated catch block</p><p> e.printSta
136、ckTrace();</p><p><b> }</b></p><p> 4.11查詢(xún)交易明細(xì)</p><p><b> 實(shí)現(xiàn)效果:</b></p><p><b> 關(guān)鍵代碼如下:</b></p><p> public void ini
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計(jì)--atm機(jī)模擬系統(tǒng)
- atm課程設(shè)計(jì)報(bào)告---簡(jiǎn)易atm機(jī)系統(tǒng)
- atm機(jī)課程設(shè)計(jì)--atm自動(dòng)粗取款系統(tǒng)
- java課程設(shè)計(jì)atm機(jī)
- atm課程設(shè)計(jì)報(bào)告--atm管理系統(tǒng)
- 網(wǎng)絡(luò)編程課程設(shè)計(jì)---網(wǎng)絡(luò)聊天室
- java課程設(shè)計(jì)--- atm柜員機(jī)
- 網(wǎng)絡(luò)協(xié)議編程應(yīng)用課程設(shè)計(jì)
- atm課程設(shè)計(jì)報(bào)告---atm交易管理系統(tǒng)
- 網(wǎng)絡(luò)編程課程設(shè)計(jì)報(bào)告--模擬火車(chē)售票退票系統(tǒng)
- java課程設(shè)計(jì)-atm柜員機(jī)模擬程序資料
- 課程設(shè)計(jì)報(bào)告--atm取款機(jī)程序
- java課程設(shè)計(jì)報(bào)告---atm柜員機(jī)
- java課程設(shè)計(jì)報(bào)告--銀行atm機(jī)系統(tǒng)
- 網(wǎng)絡(luò)編程課程設(shè)計(jì)-網(wǎng)路嗅探器
- 網(wǎng)絡(luò)編程課程設(shè)計(jì)-java聊天室
- java課程設(shè)計(jì)---atm柜臺(tái)模擬說(shuō)明書(shū)
- 銀行atm自動(dòng)取款機(jī)系統(tǒng)課程設(shè)計(jì)
- web課程設(shè)計(jì) 《web網(wǎng)絡(luò)編程技術(shù)》課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)---atm柜臺(tái)模擬說(shuō)明書(shū)
評(píng)論
0/150
提交評(píng)論