学完了Java的基础,自己动手做了一个基于控制台的自动取款机,不过还有很多不好的地方,望大家指正。
package cn.ambow.chen;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;
public class ATM {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("欢迎您使用中国邮政ATM全自动全款机:");
System.out.println("请输入您的账号");
int inputNumber = input.nextInt();
System.out.println("请输入您的密码");
String inputPassword = input.next();
ATM atm = new ATM();
if(atm.Login(inputNumber, inputPassword)){
atm.welcome();
}else{
System.exit(0);
}
int number = input.nextInt();
switch (number) {
case 1:
atm.QuKuan(inputNumber);
break;
case 2:
atm.Select(inputNumber);
break;
case 3:
atm.Transfer(inputNumber, inputPassword);
break;
case 4:
atm.ChangePwd(inputNumber, inputPassword);
break;
case 5:
atm.aboutInfo();
break;
}
}
public void welcome() {
System.out.println("登录成功");
System.out.println("1-取款,2-查询,3-转账,4-修改密码,5-关于");
System.out.println("请选择您要办理的业务:");
}
public boolean Login(int inputNumber, String inputPassword) {
String sql = "select * from users where number=" + inputNumber;
Connection conn = ATM.getConnection();
try {
Statement st = conn.createStatement();
ResultSet rs1 = st.executeQuery(sql);
if (rs1.next()) {
if (!rs1.getString(2).equals(inputPassword)) {
System.out.println("您输入的账号或密码有误!");
return false;
}
} else {
System.out.println("该账号不存在!");
return false;
}
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
public void QuKuan(int inputNumber) {
Scanner input = new Scanner(System.in);
Connection conn = ATM.getConnection();
try {
Statement st = conn.createStatement();
System.out.println("请输入取款金额:");
int money = input.nextInt();
String sql = "update users set money=money-" + money
+ " where number=" + inputNumber;
int rs2 = st.executeUpdate(sql);
System.out.println("恭喜你取款成功!");
} catch (Exception e) {
e.printStackTrace();
}
}
public void Select(int inputNumber) {
String sql3 = "select * from users where number=" + inputNumber;
Connection conn = ATM.getConnection();
try {
Statement st = conn.createStatement();
ResultSet rs1 = st.executeQuery(sql3);
System.out.println("您的信息如下:");
System.out.print("number");
System.out.print("-");
System.out.print("password");
System.out.print("-");
System.out.print("money");
System.out.println();
while (rs1.next()) {
System.out.print(rs1.getString(1));
System.out.print("----");
System.out.print(rs1.getString(2));
System.out.print("----");
System.out.print(rs1.getString(3));
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void Transfer(int inputNumber, String inputPassword) {
Scanner input = new Scanner(System.in);
String sql1 = "select * from users where number=" + inputNumber;
Connection conn = ATM.getConnection();
try {
Statement st = conn.createStatement();
ResultSet rs1 = st.executeQuery(sql1);
if (rs1.next()) {
if (!rs1.getString(2).equals(inputPassword)) {
System.out.println("您输入的账号或密码有误!");
} else {
System.out.println("请输入您要转账的对方账号:");
int transferNumber = input.nextInt();
System.out.println("请输入您要转账的金额:");
int money = input.nextInt();
String sql4 = "update users set money=money-" + money
+ " where number=" + inputNumber;
String sql5 = "update users set money=money+" + money
+ " where number=" + transferNumber;
int rs = st.executeUpdate(sql4);
int rs2 = st.executeUpdate(sql5);
System.out.println("恭喜你转账成功!");
}
} else {
System.out.println("你没有转账成功!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void ChangePwd(int inputNumber, String inputPassword) {
Scanner input = new Scanner(System.in);
String sql = "select * from users where number=" + inputNumber;
Connection conn = ATM.getConnection();
try {
Statement st = conn.createStatement();
ResultSet rs1 = st.executeQuery(sql);
if (rs1.next()) {
if (!rs1.getString(2).equals(inputPassword)) {
System.out.println("您输入的账号或密码有误!");
} else {
System.out.println("请输入您的新密码:");
String newPwd1 = input.next();
System.out.println("请再输入一次:");
String newPwd2 = input.next();
if (!newPwd1.equals(newPwd2)) {
System.out.println("两次输入的密码不一致:");
} else {
String sql6 = "update users set password=" + newPwd1
+ " where number=" + inputNumber;
int rs = st.executeUpdate(sql6);
System.out.println("修改密码成功!");
}
}
} else {
System.out.println("你没有修改成功!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void aboutInfo() {
System.out.println("中国邮政自动取款机是由XXX策划,YYY领导制作,ZZZ组员负责编写和调试");
}
public static Connection getConnection() {
Connection conn = null;
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/bank";
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, "root", "root");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
}