java模擬ATM功能(控制臺連接Mysql數(shù)據(jù)庫)
本文實(shí)例為大家分享了java模擬ATM功能的具體代碼,供大家參考,具體內(nèi)容如下
有三個(gè)類:Test.java、Customer.java、CustomerDAO.java、ATMSystem.java
ATMSystem.java實(shí)現(xiàn)模擬ATM的功能
Customer.java創(chuàng)建一個(gè)用戶對象
CustomerDAO.java實(shí)現(xiàn)連接數(shù)據(jù)庫
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("注冊卡號:"); int myid=input.nextInt(); System.out.println("注冊用戶名:"); String myname=input.next(); System.out.println("注冊密碼:"); String mypwd=input.next(); System.out.println("輸入存入金額:"); int mymoney=input.nextInt(); dao.Regist(myid, mypwd, myname, mymoney); } public boolean login() { System.out.println("請輸入密碼:"); 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("卡號:"+cust.getid()); System.out.println("余額:"+cust.getmoney()); System.out.println("用戶名:"+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("請輸入轉(zhuǎn)賬卡號:"); int inid=input.nextInt(); System.out.println("請輸入轉(zhuǎn)賬金額:"); int money=input.nextInt(); dao.change(id, inid, money); } public void begin() { int num=-1; int Num=0; System.out.println("請選擇功能:"); System.out.println("1.注冊 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("請選擇功能:"); System.out.println("1.存款 2.取款 3.查詢 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("登錄失敗,賬號、密碼錯(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("卡號錯(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("此卡已注冊,請勿重復(fù)注冊?。。?!"); 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("注冊成功!"); } 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(); } } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java編寫簡單的ATM存取系統(tǒng)
- Java實(shí)現(xiàn)ATM取款機(jī)程序
- Java 8 Stream Api 中的 map和 flatMap 操作方法
- java實(shí)現(xiàn)ATM取款項(xiàng)目
- java 使用線程做的一個(gè)簡單的ATM存取款實(shí)例代碼
- Java實(shí)現(xiàn)銀行ATM系統(tǒng)
- Java項(xiàng)目實(shí)現(xiàn)模擬ATM機(jī)
- 淺談java8 stream flatMap流的扁平化操作
- Java實(shí)現(xiàn)簡單銀行ATM功能
- Java基于控制臺界面實(shí)現(xiàn)ATM系統(tǒng)
相關(guān)文章
快速解決commons-fileupload組件無法處理自定義head信息的bug
問題在于fileupload組件解析完自定義的head節(jié)點(diǎn)后,卻忘記傳遞到FileItemStreamImpl中了,稍作修訂,即可修正該bug2013-08-08詳解SpringBoot開發(fā)使用@ImportResource注解影響攔截器
這篇文章主要介紹了詳解SpringBoot開發(fā)使用@ImportResource注解影響攔截器,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11JavaWeb使用Session和Cookie實(shí)現(xiàn)登錄認(rèn)證
本篇文章主要介紹了JavaWeb使用Session和Cookie實(shí)現(xiàn)登錄認(rèn)證,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03System.currentTimeMillis()計(jì)算方式與時(shí)間的單位轉(zhuǎn)換詳解
這篇文章主要介紹了System.currentTimeMillis()計(jì)算方式與時(shí)間的單位轉(zhuǎn)換詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05Java如何正確處理下載文件時(shí)HTTP頭的編碼問題
這篇文章主要介紹了Java如何正確處理下載文件時(shí)HTTP頭的編碼問題,2023-07-07
通常HTTP消息包括客戶機(jī)向服務(wù)器的請求消息和服務(wù)器向客戶機(jī)的響應(yīng)消息,今天來講解下正確處理下載文件時(shí)HTTP頭的編碼問題,需要的朋友可以參考下