El primer cajero automático de pequeño proyecto

Prefacio: Terminado el primer pequeño proyecto escrito en orientado a objetos: ATM. El código de este artículo se basa en la escritura orientada a objetos.

Requerimientos del proyecto:

  1. Registro: nombre de usuario, número de teléfono móvil, número de identificación, número de tarjeta, contraseña.
  2. Consulta: Debe existir la cuenta y la contraseña (tres posibilidades, bloquear la tarjeta si es incorrecta).
  3. Retiro: Debe existir la cuenta, la contraseña (tres oportunidades, bloquear la tarjeta si es incorrecta), y el monto del retiro no puede ser mayor que el depósito.
  4. Depósito: La cuenta debe existir y el monto del depósito no puede ser menor a 0.
  5. Transferencia: Deben existir tanto su cuenta como la cuenta de transferencia, la contraseña (tres oportunidades, bloquear la tarjeta si es incorrecta) y el monto de la transferencia no puede exceder el saldo.
  6. Bloqueo de tarjeta: la cuenta debe existir, se puede congelar con una contraseña o se puede congelar con un número de identificación.
  7. Desbloqueo de tarjeta: la cuenta debe existir y solo se puede usar el número de identificación para desbloquearla.
  8. Renovación de la tarjeta: renueve la tarjeta verificando la tarjeta de identificación y la tarjeta anterior dejará de ser válida después de la renovación
  9. Cambiar contraseña: Me gustaría cambiar la contraseña o usar la tarjeta de identificación para cambiar la contraseña.
  10. Salir: guardar datos

El look terminado:

Después de ingresar, deje que el usuario se registre primero e ingrese el nombre de usuario, la tarjeta de identificación, el número de teléfono móvil y la contraseña una vez y luego confírmelo una vez. Después del registro exitoso, ingrese a la interfaz de operación del usuario. Hay funciones requeridas por el sujeto en la interfaz. Los usuarios pueden operar de acuerdo a sus necesidades para lograr las necesidades del usuario.

Interfaz de registro

void logon() {
    
    
//储存的身份证、用户名、手机号都存储在一个叫Card的类里面,体现面向对象
的思想。
		System.out.println("欢迎进入注册系统!");
		Scanner input = new Scanner(System.in);
		System.out.println("请输入你的账户:");
		super.setAccount(input.next());
		System.out.println("请输入你的手机号:");
		super.setPhone(input.nextInt());
		System.out.println("请输入你的身份证号:");
		super.setIdcard(input.nextInt());
		while (true) {
    
    
			System.out.println("请输入你的密码:");
			int passWord1 = input.nextInt();
			System.out.println("请再输入一次你的密码:");
			int passWord2 = input.nextInt();
			//判断两次的输入是否一致
			if(passWord1 == passWord2 ){
    
    
				super.setPassWord(passWord1);
				System.out.println(super.getPassWord());
				break;
			}
			System.out.println("两次输入的密码不相同,请重新开始!");
		}
		Random random = new Random();
		//随机生成卡号
		//因为要的是一个16位数的卡号,我分成了2个8位数的long类型的数
		long a;
		long b;
		while(true) {
    
    
			a = random.nextInt(99999999);
			if(a>10000000) {
    
    //判断一下随机生成的数,是否是一个8位数的
				while(true) {
    
    
					b = random.nextInt(99999999);
					if(b>10000000) {
    
    
					//让a*100000000+b,组成一个16位的数。
						super.setCardid(a*100000000+b);
						break;
					}
				}
			}
			break;
		}
		System.out.println("你的卡号是:"+super.getCardid());
	}

Interfaz de inicio de sesión

La interfaz de inicio de sesión debe hacer coincidir la cuenta y la contraseña ingresadas por el usuario con la cuenta y la contraseña almacenadas.

void regiser() {
    
    
		Scanner input = new Scanner(System.in);
		System.out.println("欢迎进入登录界面");
		//在登陆时判断卡是否被锁,用super()来调用父类的数据
		if (super.isIslock()==false) {
    
    
			System.out.println("你的卡已被锁,请解锁");
		}
		while(true) {
    
    
			int count = 0;
			System.out.println("请输入你的卡号:");
			long cardid2 = input.nextLong();
			if (cardid2==super.getCardid()) {
    
    
				System.out.println("请输入你的密码:");
				int passWord2 = input.nextInt();
				System.out.println(super.getPassWord());
				if (super.getPassWord()==passWord2) {
    
    
					System.out.println("登录成功");
					break;
				}else {
    
    
					System.out.println("密码错误,请重新输入");
					count++;
					if(count==3) {
    
    
						super.setIslock(false);
					}
				}
			}else {
    
    
				System.out.println("账号错误,请重新输入");
				count++;
				//用变量count来计数,当为3的时候锁卡下次登陆就要先去解卡
				if(count==3) {
    
    
					super.setIslock(false);
				}
			}
		}
	}

Interfaz de depósito

Debido a que no hay un cajero automático real para contar dinero, el depósito aquí es para que el usuario ingrese por sí mismo y tenga la adicción de los ricos (aunque solo por un corto tiempo)

void addMoney() {
    
    
		Scanner ipnut = new Scanner(System.in);
		System.out.println("欢迎进入存款界面");
		Scanner input = new Scanner(System.in);
		System.out.println("请先登录");
		this.regiser();
		if (super.isIslock()==false) {
    
    
			System.out.println("你的卡已被锁");
		}else {
    
    
			System.out.println("请输入你的存款的金额:");
			int add = input.nextInt();
			super.setMoney (super.getMoney() + add);
			System.out.println("你的账户有" + super.getMoney());
		}
	}

Interfaz de retiro

void gainMoney() {
    
    //取款
		System.out.println("欢迎进入取款界面");
		Scanner input = new Scanner(System.in);
		System.out.println("请先登录");
		this.regiser();
		if (super.isIslock()==false) {
    
    
			System.out.println("你的卡已被锁,请解锁");
		}else {
    
    
			System.out.println("请输入你的取款的金额:");
			int gain = input.nextInt();
			//判断取款的金额是否大于存款数
			if (gain>super.getMoney()) {
    
    
				System.out.println("账户余额不足");
			}else {
    
    
				super.setMoney (super.getMoney()-gain);
				System.out.println("你的账户有"+super.getMoney());
			}
		}
	}

Interfaz de consulta

void query() {
    
    
		System.out.println("欢迎进入查询界面");
		System.out.println("请先登录");
		this.regiser();
		if (super.isIslock()==false) {
    
    
		//判断是否锁卡
			System.out.println("你的卡已被锁,请解锁");
		}else {
    
    
			System.out.println("卡内余额:" + super.getMoney());
		}
	}

Interfaz de tarjeta de bloqueo

void lock() {
    
    
		System.out.println("欢迎进入锁卡界面");
		Scanner input = new Scanner(System.in);
		System.out.println("请先登录");
		this.regiser();
		if (super.isIslock()==false) {
    
    
			System.out.println("你的卡已被锁");
		}else {
    
    
			System.out.println("是否要执行锁卡操作  1.是  2.否");
			int choice3 = input.nextInt();
			if (choice3==1) {
    
    
				super.setIslock(false);
				System.out.println("锁卡成功");
			}else {
    
    
				super.setIslock(true);
				System.out.println("锁卡失败");
			}
		}
	}

Desbloquear interfaz

void unlock() {
    
    
		Scanner input = new Scanner(System.in);
		System.out.println("欢迎进入解锁界面");
		while(true) {
    
    
			System.out.println("请输入你解锁卡的身份证号");
			int idcard2 = input.nextInt();
			if(idcard2 == super.getIdcard()) {
    
    
				System.out.println("验证成功");
				System.out.println("你的卡已解锁");
				super.setIslock(true);
				break;
			}else {
    
    
				System.out.println("验证失败,请重新输入");
			}
		}
	}

Interfaz de reemplazo de tarjeta

void newCard() {
    
    
		System.out.println("欢迎进入补卡界面");
		Scanner input = new Scanner(System.in);
		Random random = new Random();
		while (true) {
    
    
		//调用数据对比身份证信息
			System.out.println("请输入你的身份证进行验证:");
			int idcard1 = input.nextInt();
			if (super.getIdcard() != idcard1) {
    
    
				System.out.println("请重新输入你的身份证进行验证:");
				idcard1 = input.nextInt();
			}
			break;
		}
		while(true) {
    
    
		//生成一个新的卡号
			int a = random.nextInt(99999999);
			int b = random.nextInt(99999999);
			if(a>10000000 && b>10000000) {
    
    
				super.setCardid(a*10000000+b);
				break;
			}
		System.out.println("请重新输入你的身份证进行验证:" + super.getCardid());
		}
	}

Modificar la interfaz de contraseña

void changePwd() {
    
    
		System.out.println("欢迎进入修改密码界面");
		Scanner input = new Scanner(System.in);
		while (true) {
    
    
			System.out.println("请输入你的身份证进行验证:");
			int idcard1 = input.nextInt();
			if (super.getIdcard() != idcard1) {
    
    
				System.out.println("请重新输入你的身份证进行验证:");
				idcard1 = input.nextInt();
			}
			break;
		}
		System.out.println("请输入你的新密码");
		super.setPassWord(input.nextInt());
		System.out.println("修改密码成功");
	}

Clase principal para almacenar datos

public class Card {
    
    //把数据都存放到这个里面
	static int money;
	static boolean islock = true;
	static int idcard;
	static int phone ;
	static String account;
	static long cardid;
	static int passWord;
	
	public Card(int money, boolean islock, int idcard, int phone, String account, long cardid, int passWord) {
    
    
		super();
		this.money = money;
		this.islock = islock;
		this.idcard = idcard;
		this.phone = phone;
		this.account = account;
		this.cardid = cardid;
		this.passWord = passWord;
	}
	public Card() {
    
    
		super();
	}
	public int getMoney() {
    
    
		return money;
	}
	public void setMoney(int money) {
    
    
		this.money = money;
	}
	public boolean isIslock() {
    
    
		return islock;
	}
	public void setIslock(boolean islock) {
    
    
		this.islock = islock;
	}
	public int getIdcard() {
    
    
		return idcard;
	}
	public void setIdcard(int idcard) {
    
    
		this.idcard = idcard;
	}
	public int getPhone() {
    
    
		return phone;
	}
	public void setPhone(int phone) {
    
    
		this.phone = phone;
	}
	public String getAccount() {
    
    
		return account;
	}
	public void setAccount(String account) {
    
    
		this.account = account;
	}
	public long getCardid() {
    
    
		return cardid;
	}
	public void setCardid(long cardid) {
    
    
		this.cardid = cardid;
	}
	public int getPassWord() {
    
    
		return passWord;
	}
	public void setPassWord(int passWord) {
    
    
		this.passWord = passWord;
	}
}

Supongo que te gusta

Origin blog.csdn.net/weixin_46687295/article/details/106006609
Recomendado
Clasificación