Java简易ATM(未运行可能有逻辑错误)

该博客展示了如何使用Java实现一个简单的ATM系统,包括用户注册、登录、存款、取款、转账和注销等功能。Methods类封装了与数据库的交互,如JDBCUtils用于执行SQL操作。UI类提供了用户界面,处理用户输入并调用Methods类的方法执行相应操作。
摘要由CSDN通过智能技术生成

说明

省略了Java与数据库的链接,JDBCUtils类已封装数据库的select、update、delete、insert方法

Users类

package yaoyanru;

public class Users {
	long id;
	String name;
	long password;
	float money;
	
	public long getId() {
		return id;
	}
	public void setId(long id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public long getPassword() {
		return password;
	}
	public void setPassword(long password) {
		this.password = password;
	}
	public float getMoney() {
		return money;
	}
	public void setMoney(float money) {
		this.money = money;
	}
	@Override
	public String toString() {
		return "Users [id=" + id + ", name=" + name + ", password=" + password + ", money=" + money + "]";
	}
	
	
}

Methods类

package yaoyanru;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

public class Methods {
	Users users = new Users();

	// 注册账户
	public void addUser(Users users) {
		Connection conn = JDBCUtils.getConnection();
		String sql = "insert into users(nama,id,password)" + "values(?,?,?)";
		Object[] params = { users.getName(), users.getId(), users.getPassword() };
		int num = JDBCUtils.executeUpdate(sql, params);
		if (num == 1) {
			System.err.println("注册成功");
		} else {
			System.out.println("注册失败");
		}
		sql = null;
		JDBCUtils.closeAll(conn, null, null);
	}

	// 注销账户
	public void delUser(Users users) {
		Connection conn = JDBCUtils.getConnection();
		String sql = "delete form users where id=?";
		Object[] params = { users.getId() };
		int num = JDBCUtils.executeUpdate(sql, params);
		if (num == 1) {
			System.err.println("注销成功");
		} else {
			System.out.println("注销失败");
		}
		sql = null;
		JDBCUtils.closeAll(conn, null, null);
	}

	// 登录
	public void login(long id, long password) {
		Connection conn = JDBCUtils.getConnection();
		String sql = "select name form users where id=? and password=?";
		Object[] params = { id, password };
		ResultSet res = JDBCUtils.executeQuery(sql, params);
		if (res != null) {
			System.out.println("登录成功");
		} else {
			System.out.println("登录失败");
		}
		sql = null;
		JDBCUtils.closeAll(conn, null, null);
	}

	// 存款
	public void sava(float money) {
		Connection conn = JDBCUtils.getConnection();
		String sql = "update users set money+? where id=?";
		Object[] params = { money, users.getId() };
		int rs = JDBCUtils.executeUpdate(sql, params);
		if (rs == 1) {
			System.out.println("存款成功");
		} else {
			System.out.println("存款失败");
		}
		sql = null;
		JDBCUtils.closeAll(conn, null, null);
	}

	// 取款
	public void draw(float money) throws SQLException {
		Connection conn = JDBCUtils.getConnection();
		if (query() < money) {
			System.out.println("余额不足");
		} else {
			String sql1 = "update users set money-? where id=?";
			Object[] params1 = { money, users.getId() };
			int rs1 = JDBCUtils.executeUpdate(sql1, params1);
			if (rs1 == 1) {
				System.out.println("取款成功");
			} else {
				System.out.println("取款失败");
			}
			sql1 = null;
		}
		JDBCUtils.closeAll(conn, null, null);
	}

	// 查询余额
	public float query() throws SQLException {
		Connection conn = JDBCUtils.getConnection();
		String sql = "select money form users where id=?";
		Object[] params = { users.getId() };
		ResultSet rs = JDBCUtils.executeQuery(sql, params);
		users.setMoney(rs.getFloat("money"));
		sql = null;
		JDBCUtils.closeAll(conn, null, null);
		return users.getMoney();
	}

	// 转账
	public void transfer(long id) throws SQLException {
		Connection conn = JDBCUtils.getConnection();
		String sql = "select name form users where id=?";
		Object[] params = { id };
		ResultSet rs = JDBCUtils.executeQuery(sql, params);
		System.out.println("转账人姓名:" + rs.getString("name"));
		System.out.println("1.确认  2.返回");
		Scanner scan = new Scanner(System.in);
		if (scan.nextInt() == 1) {
			System.out.println("请输入转账金额:");
			float money = scan.nextFloat();
			if (money > query()) {
				System.out.println("余额不足");
			} else {
				String sql1 = "update users set money+? where id=?";
				String sql2 = "update users set money-? where id=?";
				Object[] params1 = { money, id };
				Object[] params2 = { money, users.getId() };
				int rs1 = JDBCUtils.executeUpdate(sql1, params1);
				int rs2 = JDBCUtils.executeUpdate(sql2, params2);
				if (rs1 == 1 || rs2 == 1) {
					System.out.println("转账成功");
				} else {
					System.out.println("转账失败");
				}
				sql1 = null;
				sql2 = null;
			}
		}
		sql = null;
		JDBCUtils.closeAll(conn, null, null);
	}
}

UI类 

package yaoyanru;

import java.sql.SQLException;
import java.util.Scanner;

public class UI {

	public static void main(String[] args) throws SQLException {
		Scanner scan = new Scanner(System.in);
		Methods methods = new Methods();
		Users users = new Users();
		while (true) {
			System.out.println("——欢迎使用ATM系统——");
			System.out.println("请选择您的操作:");
			System.out.println("1.注册账户");
			System.out.println("2.登录");
			int flag = scan.nextInt();
			if (flag == 1) {
				System.out.println("请输入姓名、身份证号、密码");
				users.setName(scan.next());
				users.setId(scan.nextLong());
				users.setPassword(scan.nextLong());
				methods.addUser(users);
				break;
			}
			if (flag == 2) {
				System.out.println("请输入身份证号、密码");
				users.setId(scan.nextLong());
				users.setPassword(scan.nextLong());
				methods.login(users.getId(), users.getPassword());
				System.out.println("请选择您的操作:");
				System.out.println("1.查询余额");
				System.out.println("2.存款");
				System.out.println("3.取款");
				System.out.println("4.转账");
				System.out.println("5.注销账户");
				System.out.println("6.退出");
				switch (scan.nextInt()) {
				case 1: {
					methods.query();
					System.out.println("余额:" + users.getMoney() + "元");
					break;
				}
				case 2: {
					System.out.println("请输入存款金额:");
					methods.sava(scan.nextFloat());
					break;
				}
				case 3: {
					System.out.println("请输入取款金额:");
					methods.draw(scan.nextFloat());
					break;
				}
				case 4: {
					System.out.println("请输入转账对象id:");
					methods.transfer(scan.nextLong());
					break;
				}
				case 5: {
					methods.delUser(users);
					break;
				}
				case 6: {
					break;
				}
				default: {
					System.out.println("非法操作!");
					break;
				}
				}
			} else {
				System.out.println("非法操作!");
				break;
			}
		}
	}

}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值