通过实现简单的银行接口实现账号密码验证码匹配

package com_5_9_bank;

public interface Union {

double saveMoney(double moneyCount);

void getMoney(double taste_money);

boolean checkPwdOrUser(String user, String pwd);

String Verification_Code();

}

package com_5_9_bank;

public interface CCB_Bank extends Union {

double saveMoney(double moneyCount);

void getMoney(double taste_money);

boolean checkPwdOrUser(String user, String pwd);

String Verification_Code();

}

package com_5_9_bank;

public class Card {

double money;
String user = "zhangsan";//定义了账号密码
String pwd = "1234";

}
package com_5_9_bank;

import java.util.Random;

public class ATM implements CCB_Bank {

Card c;

public boolean checkPwdOrUser(String user, String pwd) {

	if ((c.user.equals(user)) && (c.pwd.equals(pwd))) {
		return true;
	}
	return false;
}

public void insertCard(Card c) {
	this.c = c;
	System.out.println("插卡成功");
	System.out.println("欢迎使用本行信用卡");
}

public double saveMoney(double moneyCount) {
	c.money = moneyCount + c.money;
	System.out.println("本次存款:" + moneyCount + "  卡内余额:" + c.money);
	return c.money;
}

public void getMoney(double taste_money) {
	c.money = c.money - taste_money;
	System.out.println("取出:" + taste_money + "元");
	System.out.println("账户余额:" + c.money);
}

public String Verification_Code() {
	String str = getRandomString(7);
	System.out.println("验证码为:"+str);
	return str;
}

public static String getRandomString(int length) {
//生成随机字符串并返回作为其验证码
	String str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";// 含有字符和数字的字符串
	Random random = new Random();// 随机类初始化
	StringBuffer sb = new StringBuffer();// StringBuffer类生成,为了拼接字符串

	for (int i = 0; i < length; ++i) {
		int number = random.nextInt(62);// [0,62)
		sb.append(str.charAt(number));
	}
	return sb.toString();
}

}

package com_5_9_bank;

import java.util.Scanner;

public class Test {

public static void main(String[] args) throws InterruptedException {
	ATM atm = new ATM();
	Card c = new Card();
	atm.insertCard(c);
	Scanner sc = new Scanner(System.in);
	System.out.println("请依次输入账号密码:");
	for (int i = 0; i < 3; i++) {
	/*	这里只是实现了输入错误3次之后跳出循环不允许输入
		如果需要直到输入正确  直接将for循环改为死循环即可*/
		String user = sc.next();
		String pwd = sc.next();
		boolean bl = atm.checkPwdOrUser(user, pwd);
		String str1 = atm.Verification_Code();
		if (bl) {
			System.out.println("账号密码匹配正确-------");
			System.out.println("请输入验证码:");
			String v_code = sc.next();
			if (str1.equals(v_code)) {
				System.out.println("验证码正确");
				System.out.println("欢迎您");
			} else {
				System.out.println("验证码错误");
				continue;
			}
			atm.saveMoney(100);
			atm.getMoney(50);
			break;//如果上述条件满足跳出本次循环
		} else {
			System.out.println("账号或密码错误-----");
			continue;//如果上述条件不满足跳出当前循环执行下一次循环
		}

	}

}

}
通过实现简单的银行接口实现账号密码验证码匹配