⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bank.java

📁 ATM的实现,简单的操作具体应用于界面将其出来
💻 JAVA
字号:
package com.gaoying.util;

import javax.swing.JOptionPane;

import com.gaoying.model.Account;

public class Bank {
	private Account[] acc;
	private int index=-1;
	
	public Bank(){
		this.acc=FileInOut.readAllAcc();
	}
	//新建帐户
	public void creatAccount(){
		String name=JOptionPane.showInputDialog("输入姓名");
		String password=getPass();
		String num=FileInOut.getAccNum();
		double money=Double.parseDouble(
				JOptionPane.showInputDialog("请输入开户金额:"));
		Account acc=new Account(name,password,num,money);
		FileInOut.createAcc(acc);
		this.acc=FileInOut.readAllAcc();
	}
	//老账户操作
	//验证并或得老账户
	public void getOldAcc(){
		String num=JOptionPane.showInputDialog("输入账号:");
		int index=secanNum(num);
		if(index!=-1&&acc[index].isType()){
			if(getAccPass(index)){
				this.index=index;
				opOldAcc();
			}
		}else if(index==-1){
			JOptionPane.showMessageDialog(null, "无此账号");
		}else{
			JOptionPane.showMessageDialog(null,"账号已锁定,请与银行联系");
		}
	}
	public void opOldAcc(){
		while(true){
			String sel=JOptionPane.showInputDialog("" +
					"请选择操作:\n1-存款\n2-取款\n3-修改密码\n4-查询\n" +
					"5-转账\n6-退出");
			switch(sel.charAt(0)){
			case '1':
				inMoney();
				break;
			case '2':
				outMoney();
				break;
			case '3':
				chPassword();
				break;
			case '4':
				JOptionPane.showMessageDialog(null,acc[index].toString());
				break;
			case '5':
				reMoney();
				break;
			case '6':
				return;
			}
		}
	}
	//解锁帐户
	public void unlockAcc(){
		String num=JOptionPane.showInputDialog("请输入卡号:");
		int  index=secanNum(num);
		if(index!=-1){
			acc[index].setType(true);
			FileInOut.saveAllACC(acc);
		}else{
			JOptionPane.showMessageDialog(null, "此账号不存在");
		}
		
	}
	
	//***********************************************************************************************
	//建立密码
	public static String getPass(){
		String st=null;
		while(true){
			String pas=JOptionPane.showInputDialog("输入密码");
			String pa1=JOptionPane.showInputDialog("确认密码:");
			if(pas.equals(pa1)){
				st=pas;
				break;
			}
		}
		return st;
	}
	//按账号查询帐户位置
	public int secanNum(String num){
		int index=-1;
		for(int i=0;i<acc.length;i++){
			if(acc[i].getCardnum().equals(num)){
				index=i;
				break;
			}
		}
		return index;
	}
	//密码验证
	public boolean getAccPass(int index){
		boolean flag=false;
		for(int i=0;i<3;i++){
			String pas=JOptionPane.showInputDialog("输入密码:");
			if(acc[index].getPassword().equals(pas)){
				flag=true;
				break;
			}else if(i<3){
				JOptionPane.showMessageDialog(null,"密码错误,请重新输入:");
			}else{
				acc[index].setType(false);
				JOptionPane.showMessageDialog(null,"吞卡");
				break;
			}
		}
		return flag;
	}
	//存款
	public void inMoney(){
		double money=Double.parseDouble(JOptionPane.
				showInputDialog("请输入存款金额:"));
		   acc[index].setMoney(money+acc[index].getMoney());
		   FileInOut.saveAllACC(acc);
	}
	//取款
	public void outMoney(){
		double money=Double.parseDouble(JOptionPane.showInputDialog("请输入取款金额:"));
		if(money<acc[index].getMoney()){
			acc[index].setMoney(acc[index].getMoney()-money);
			FileInOut.saveAllACC(acc);
		}else{
			JOptionPane.showMessageDialog(null,"余额不足");
		}
	}
	//修改密码
	public void chPassword(){
		String pas=null;
		while(true){
			String pas1=JOptionPane.showInputDialog("请输入新密码:");
			String pas2=JOptionPane.showInputDialog("请再次输入新密码:");
			if(pas1.equals(pas2)){
				pas=pas1;
				acc[this.index].setCardnum(pas);
				FileInOut.saveAllACC(this.acc);
				JOptionPane.showMessageDialog(null,"修改密码成功");
				break;		
			}
		}
	}
	//转账
	public void reMoney(){
		String num=JOptionPane.showInputDialog("请输入转账账号:");
		int index=secanNum(num);
		if(index!=-1){
			double money=Double.parseDouble(JOptionPane.showInputDialog("请输入转账金额:"));
			if(money<acc[this.index].getMoney()){
				acc[this.index].setMoney(acc[this.index].getMoney()-money);
				acc[index].setMoney(acc[index].getMoney()+money);
				FileInOut.saveAllACC(acc);
			}else{
				JOptionPane.showMessageDialog(null,"余额不足");
			}
		}else{
			JOptionPane.showMessageDialog(null,"账号不存在");
		}
	}
    //后台操作
	public static void main(String[] args){
		Bank bank=new Bank();
		boolean flag=true;
	    while(flag){
	    	String sel=JOptionPane.showInputDialog("请选择操作\n1.-新建帐户\n" +
	    			"2.-解锁老账户\n3.-老账户操作\n4.-察看所有帐户\n5.-退出");
	        switch(sel.charAt(0)){
	        case '1':
	        	bank.creatAccount();
	        	break;
	        case '2':
	        	bank.unlockAcc();
	        	break;
	        case '3':
	        	bank.getOldAcc();
	        	break;
	        case '4':
	        	for(Account ac:bank.acc){
	        		System.out.println(ac.getInfo());
	        	}
	            break;
	        case '5':
	        	flag=false;
	        	break;
	        }
	    }
	    
	}
	//""""""""""""""""""""""""""""""""""""""""""""""""""""""''''
	public Account[] getAcc() {
		return acc;
	}
	public void setAcc(Account[] acc) {
		this.acc = acc;
	}
	public int getIndex() {
		return index;
	}
	public void setIndex(int index) {
		this.index = index;
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -