模拟银行账户业务,bank添加带参方法实现存款和取款业务, 存款时帐户初始金额为0元,取款时如果余额不足给出提示。

Account类给卡号,密码和余额属性私有化 

//模拟银行账户业务,编写Account类,账户 密码 金额为 bank添加带参方法实现存款和取款业务,
//存款时帐户初始金额为0元,取款时如果余额不足给出提示。
 
public class Account {
	// 卡号
	private String cardNum;
	// 密码
	private String password;
	// 余额
	private double money;

	public String getCardNum() {
		return cardNum;
	}

	public void setCardNum(String cardNum) {
		this.cardNum = cardNum;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public double getMoney() {
		return money;
	}

	public void setMoney(double money) {
		this.money = money;
	}

	public Account() {
	}

	public Account(String cardNum, String password, double money) {
		super();
		this.cardNum = cardNum;
		this.password = password;
		this.money = money;
	}

	public Account(String cardNum, String password) {
		super();
		this.cardNum = cardNum;
		this.password = password;
	}

}

Bank类

import java.util.Scanner;
//模拟银行账户业务,bank添加带参方法实现存款和取款业务, 
//存款时帐户初始金额为0元,取款时如果余额不足给出提示。

public class Bank {
	// 5个银行账户信息
	Account[] accs = new Account[5];
	Scanner input = new Scanner(System.in);

//	 验证登陆信息,登陆成功返回,登陆用户信息,不成功返回null
	public Account login(String cardNum, String passwords) {
		for (int i = 0; i < accs.length; i++) {
			// 用户不为null
			if (accs[i] != null) {
				// 卡号和密码是否正确
				if (accs[i].getCardNum().equals(cardNum) && accs[i].getPassword().equals(passwords)) {
					// 找到账户,返回账户信息
					return accs[i];
				}
			}
		}
		// 没有找到直接返回null
		return null;
	}
	/**
	 * 展示菜单
	 */
	public void showMenu() {
		System.out.println("请输入卡号");
		String cardNum = input.next();
		System.out.println("请输入密码");
		String password = input.next();
		//登陆方法,返回登陆用户信息
		Account account = login(cardNum, password);
		// 判断用户是否登陆成功
		if (account == null) {
			System.out.println("登陆失败");
		} else {
			do {
				System.out.println("**********xx银行欢迎你:" + account.getCardNum() + "***********");
				System.out.println("1 取钱  2 存钱  0退出");
				System.out.println("***********************************");
				System.out.println("请选择要办理的业务:");
				String chose = input.next();
				switch (chose) {
				case "1":
					takeMoney(account);
					break;
				case "2":
					saveMoney(account);
					break;
				case "0":
				default:
					System.out.println("谢谢使用,8888888886");
					return;
				}
			} while (true);
		}

	}	
	/**
	 * 存钱
	 */
	public void saveMoney(Account account) {
		System.out.println("请问您要存多少钱");
		double money = input.nextDouble();
		double newMoney = account.getMoney()+money;
		account.setMoney(newMoney);
		System.out.println("共存钱"+money);
		System.out.println("现余额为:"+account.getMoney());
	}
	
	/**
	 * 取钱方法
	 */
	public void takeMoney(Account account) {
		System.out.println("请问您要取多少钱");
		double money = input.nextDouble();
		//取得钱 小于等于 存款
		if (money<=account.getMoney()) {
			//钱够了
			//account.setMoney(account.getMoney()-money);
			//余额-要取得钱=newMoney
			double newMoney = account.getMoney()-money;
			//把新的余额set到account对象,设置新的余额
			account.setMoney(newMoney);
			System.out.println("取款成功,共取款:"+money);
			System.out.println("您现有的余额是:"+account.getMoney());
		}else {
			System.out.println("余额不足,您现有的余额是:"+account.getMoney());
		}
	}
	
	// 设置构造方法,快速初始化数据
	public Bank() {
		accs[0] = new Account("1234", "1234", 1000);
		accs[1] = new Account("321", "321", 5000);
		accs[2] = new Account("2333", "2333", 0);
	}

}

Test 测试类

public class Test {

	public static void main(String[] args) {
		Bank bank = new Bank();	
		bank.showMenu();
	}

}

猜你喜欢

转载自blog.csdn.net/qwq1518346864/article/details/115023983