java模擬ATM功能(控制臺(tái)連接Mysql數(shù)據(jù)庫(kù))
本文實(shí)例為大家分享了java模擬ATM功能的具體代碼,供大家參考,具體內(nèi)容如下
有三個(gè)類(lèi):Test.java、Customer.java、CustomerDAO.java、ATMSystem.java
ATMSystem.java實(shí)現(xiàn)模擬ATM的功能
Customer.java創(chuàng)建一個(gè)用戶(hù)對(duì)象
CustomerDAO.java實(shí)現(xiàn)連接數(shù)據(jù)庫(kù)
Test為主程序
ATMSystem.java:
package ATM; import java.util.Scanner; public class ATMSystem { CustomerDAO dao=new CustomerDAO(); Scanner input=new Scanner(System.in); private int id; public ATMSystem() { } public void Regist() { System.out.println('注冊(cè)卡號(hào):'); int myid=input.nextInt(); System.out.println('注冊(cè)用戶(hù)名:'); String myname=input.next(); System.out.println('注冊(cè)密碼:'); String mypwd=input.next(); System.out.println('輸入存入金額:'); int mymoney=input.nextInt(); dao.Regist(myid, mypwd, myname, mymoney); } public boolean login() { System.out.println('請(qǐng)輸入密碼:'); String mypwd=input.next(); id=dao.login(mypwd); if(id==-1) { System.out.println('登錄失敗!'); return false; } else { System.out.println('登陸成功!'); return true; } } public void query(int id) { Customer cust=dao.query(id); System.out.println('********************'); System.out.println('卡號(hào):'+cust.getid()); System.out.println('余額:'+cust.getmoney()); System.out.println('用戶(hù)名:'+cust.getname()); System.out.println('********************'); } public void save() { System.out.println('輸入存款金額:'); int money=input.nextInt(); dao.update_save(id, money); } public void get() { System.out.println('********************'); System.out.println('輸入取款金額:'); int money=input.nextInt(); dao.update_get(id, money); System.out.println('********************'); } public void change() { System.out.println('請(qǐng)輸入轉(zhuǎn)賬卡號(hào):'); int inid=input.nextInt(); System.out.println('請(qǐng)輸入轉(zhuǎn)賬金額:'); int money=input.nextInt(); dao.change(id, inid, money); } public void begin() { int num=-1; int Num=0; System.out.println('請(qǐng)選擇功能:'); System.out.println('1.注冊(cè) 2.登錄'); Num=input.nextInt(); switch(Num) { case 1: Regist(); break; case 2: if(login()) { while(num!=0) { System.out.println('********************'); System.out.println('歡迎歡迎,熱烈歡迎'); System.out.println('請(qǐng)選擇功能:'); System.out.println('1.存款 2.取款 3.查詢(xún) 4.轉(zhuǎn)賬 0.退出'); System.out.println('********************'); num=input.nextInt(); switch(num) { case 1: save(); break; case 2: get(); break; case 3: query(id); break; case 4: change(); break; case 0: System.out.println('謝謝使用!'); break; } } } else { System.out.println('登錄失敗,賬號(hào)、密碼錯(cuò)誤!'); } break; default: break; } }}
Customer.java
package ATM; public class Customer { private int id; private String pwd; private int money; private String name; public int getid() { return id; } public void setid(int newid) { id=newid; } public String getpwd() { return pwd; } public void setpwd(String newpwd) { pwd=newpwd; } public String getname() { return name; } public void setname(String newname) { name=newname; } public int getmoney() { return money; } public void setmoney(int newmoney) { money=newmoney; }}
CustomerDAO.java:
package ATM; import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException; public class CustomerDAO{ private Connection conn=null; private java.sql.PreparedStatement p=null; public CustomerDAO() { try { Class.forName('org.gjt.mm.mysql.Driver'); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { conn=DriverManager.getConnection('jdbc:mysql://localhost:3306/mysql', 'root', ''); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public int login(String mypwd) { String sql='select * from mysql where pwd = ?'; try { p=conn.prepareStatement(sql); p.setString(1, mypwd); ResultSet rs=p.executeQuery(); if(rs.next()) { return rs.getInt('id'); } rs.close(); p.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } return -1; } public Customer query(int id) { Customer cust=new Customer(); try { String sql='select * from mysql where id = ?'; p=conn.prepareStatement(sql); p.setInt(1, id); ResultSet rs=p.executeQuery(); if(rs.next()) { cust.setid(rs.getInt('id')); cust.setmoney(rs.getInt('money')); cust.setname(rs.getString('name')); cust.setpwd(rs.getString('pwd')); } } catch (Exception e) { // TODO: handle exception } return cust; } public void update_get(int id,int money) { String sql='select * from mysql where id = ?'; try { p=conn.prepareStatement(sql); p.setInt(1, id); ResultSet rs=p.executeQuery(); if(rs.next()) { if(rs.getInt('money')<money) { System.out.println('余額不足!'); } else { sql='update mysql set money = money - ? where id = ?'; p=conn.prepareStatement(sql); p.setInt(1, money); p.setInt(2, id); p.executeUpdate(); System.out.println('取款成功!'); } } } catch (Exception e) { // TODO: handle exception } } public void update_save(int id,int money) { String sql='update mysql set money = money + ? where id = ?'; try { p=conn.prepareStatement(sql); p.setInt(1, money); p.setInt(2, id); p.executeUpdate(); System.out.println('存款成功!'); } catch (Exception e) { // TODO: handle exception } } public void change(int myid,int inid,int money) { try { String sql='select * from mysql where id = ?'; p=conn.prepareStatement(sql); p.setInt(1, inid); ResultSet rs=p.executeQuery(); if(rs.next()) { sql='select * from mysql where id = ?'; p=conn.prepareStatement(sql); p.setInt(1, myid); rs=p.executeQuery(); if(rs.next()) { if(rs.getInt('money')<money) { System.out.println('余額不足!'); return; } else { sql='update mysql set money = money - ? where id = ?'; p=conn.prepareStatement(sql); p.setInt(1, money); p.setInt(2, myid); p.executeUpdate(); sql='update mysql set money = money + ? where id = ?'; p=conn.prepareStatement(sql); p.setInt(1, money); p.setInt(2, inid); p.executeUpdate(); } } } else { System.out.println('卡號(hào)錯(cuò)誤!'); } } catch (Exception e) { // TODO: handle exception } } public void Regist(int myid,String mypwd,String myname,int mymoney) { String sql; try { sql='select * from mysql where id = ?'; p=conn.prepareStatement(sql); p.setInt(1, myid); ResultSet rs=p.executeQuery(); if(rs.next()) { System.out.println('此卡已注冊(cè),請(qǐng)勿重復(fù)注冊(cè)!!!!'); return; } } catch (Exception e) { // TODO: handle exception } try { sql='insert into mysql(id,pwd,money,name) values(?,?,?,?)'; p=conn.prepareStatement(sql); p.setInt(1, myid); p.setString(2, mypwd); p.setInt(3, mymoney); p.setString(4, myname); p.executeUpdate(); System.out.println('注冊(cè)成功!'); } catch (Exception e) { // TODO: handle exception } }}
Test.java:
package ATM; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub ATMSystem ATM=new ATMSystem(); while(true) { ATM.begin(); } } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. JavaEE SpringMyBatis是什么? 它和Hibernate的區(qū)別及如何配置MyBatis2. Python 忽略文件名編碼的方法3. Java Media Framework 基礎(chǔ)教程4. android studio實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器(無(wú)bug)5. 解決vue頁(yè)面刷新,數(shù)據(jù)丟失的問(wèn)題6. python 讀txt文件,按‘,’分割每行數(shù)據(jù)操作7. 在Mac中配置Python虛擬環(huán)境過(guò)程解析8. 利用單元測(cè)試對(duì)PHP代碼進(jìn)行檢查9. python excel和yaml文件的讀取封裝10. python如何實(shí)現(xiàn)word批量轉(zhuǎn)HTML
