import java.sql.*;
import java.util.*;
public class ATM1 {
String code;
int pass;
double money;
int i=1;
//检查登录
public void checkLogin(){
int i=1;
while(i<=3){
System.out.print("请输入您的卡号:");
Scanner sc=new Scanner(System.in);
String code_=sc.nextLine();
System.out.print("请输入您的密码:");
int pass_=sc.nextInt();
try{
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//建立连接
java.sql.Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/atmdb","root","root");
//创建sql传送对象
Statement stmt = conn.createStatement();
//将sql语句通过sql传送对象传送到数据库并执行,返还结果集
String sql = "select * from account where code='"+code_+"'and pass="+pass_;
ResultSet rs = stmt.executeQuery(sql);
//当账号、密码与sql中的账号与密码相对应的时候
//把sql中的相关数据传送到目前变量以便进行数据操作
if(rs.next()){
code = rs.getString(1);
pass = rs.getInt(2);
money = rs.getDouble(3);
loadSys();
}
rs.close();
stmt.close();
conn.close();
}
//捕获异常
catch (Exception e){
System.out.println(e);
}
//出现三次错误之后提示
i++;
if( i == 3){
System.out.print("您已经输错三次密码,该卡已经被锁,请及时到相关网点咨询!");
}
}
}
//保存数据
//注意;下面的关键字( "pass、code、money")要与数据库中的名字一样,避免出现错误
public void saveDb(){
try{
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/atmdb","root","root");
Statement stmt = conn.createStatement();
String sql="update account set pass ="+pass+" where code='"+code+"'";
//dode为String型,所以要用‘’括起来
String sql1="update account set money="+money+" where code='"+code+"'";
stmt.executeUpdate(sql); //update操作进行数据更新
stmt.executeUpdate(sql1);
stmt.close();
conn.close();
}
catch (Exception e){
System.out.println(e);
}
}
//欢迎界面
public static void welcome(){
System.out.println("!*****************************************!");
System.out.println("!*************欢迎使用华夏银行*************!");
System.out.println("!*****************************************!");
}
//系统主界面
public void loadSys(){
System.out.println(".------------------------------------.");
System.out.println("1 查询余额 存款 2");
System.out.println("3 取款 修改密码 4");
System.out.println("5 退出 ");
System.out.println(".------------------------------------.");
System.out.print("请输入相应的功能选项数字:");
Scanner sz=new Scanner(System.in);
int num=sz.nextInt();
switch(num){
case 1:
chaxun();
break;
case 2:
cunkuan();
break;
case 3:
qukuan();
break;
case 4:
xiugai();
break;
case 5:
quit();
break;
default:
System.out.println("您输入的数字有误!");
loadSys();
}
}
//查询余额
public void chaxun(){
System.out.println("您卡上的余额为:" +money);
loadSys();
}
//存款
public void cunkuan(){
System.out.print("请输入存款金额:");
Scanner ck=new Scanner(System.in);
double money1=ck.nextDouble();
money=money+money1;
saveDb();
System.out.println("您卡上的余额为:" +money);
System.out.println("请收好您的卡!");
loadSys();
}
//取款
public void qukuan(){
System.out.print("请输入取款金额:");
Scanner qk=new Scanner(System.in);
double money2=qk.nextDouble();
if(money2>money){
System.out.println("您的余额不足!");
qukuan();
}else{
money=money-money2;
saveDb();
System.out.println("您卡上的余额为:" +money);
System.out.println("请收好您的现金!");
loadSys();
}
}
//修改密码
public void xiugai(){
int cs = 0;
System.out.print("请输入原密码:");
Scanner mm=new Scanner(System.in);
int pass1=mm.nextInt();
System.out.print("请输入新密码:");
int pass2=mm.nextInt();
System.out.print("请再次输入新密码:");
int pass3=mm.nextInt();
if(pass==pass1&& pass2==pass3){
System.out.println("修改密码成功!");
pass=pass2;
saveDb();
loadSys();
}else{
if(cs<2){
System.out.print("您输入的密码有误!");
cs++;
xiugai();
}else{
quit();
}
}
}
//退出
public void quit(){
System.exit(1);
}
//主函数
public static void main(String args[]){
ATM1 atm = new ATM1();
atm.welcome();
atm.checkLogin();
}
}