package ATMtest;
public class Account {
	private String accountID;
	private String accountname;
	private String operatedate;
	private int operateype;
	private String accountpassword;
	private int accountbalance;
	private int amount;
	public String getAccountID() {
		return accountID;
	}
	public void setAccountID(String accountID) {
		this.accountID = accountID;
	}
	public String getAccountname() {
		return accountname;
	}
	public void setAccountname(String accountname) {
		this.accountname = accountname;
	}
	public String getOperatedate() {
		return operatedate;
	}
	public void setOperatedate(String operatedate) {
		this.operatedate = operatedate;
	}
	public int getOperateype() {
		return operateype;
	}
	public void setOperateype(int operateype) {
		this.operateype = operateype;
	}
	public String getAccountpassword() {
		return accountpassword;
	}
	public void setAccountpassword(String accountpassword) {
		this.accountpassword = accountpassword;
	}
	public int getAccountbalance() {
		return accountbalance;
	}
	public void setAccountbalance(int accountbalance) {
		this.accountbalance = accountbalance;
	}
	public int getAmount() {
		return amount;
	}
	public void setAmount(int amount) {
		this.amount = amount;
	}
}
//信1905-1班20194073李楠石家庄铁道大学
package ATMtest;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class AccountManager {
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		Account[] acc=new Account[30];//存储数据
		int x=0;
		File file=new File("accountinformation.txt");
		BufferedReader br=new BufferedReader(new FileReader(file));
		String str;
		while((str=br.readLine())!=null)
		{
			acc[x]=new Account();
			String[] Str=str.split(" ");
			acc[x].setAccountID(Str[0]);
			acc[x].setAccountname(Str[1]);
			acc[x].setAccountpassword(Str[2]);
			acc[x].setAccountbalance(Integer.parseInt(Str[3]));
			x++;
		}
		br.close();
		int X=x;
		x=0;
		String[] Jilu=new String[100];//存储记录
		int[] i=new int[2];
		int j=0;//记录指针
		Account Acc=new Account();
		Account Acc2=new Account();
		int flag1=0,flag2=0,flag3=0;//控制界面跳转
		for(;flag1!=1;)
		{
			flag1=firstJM(Acc);
		}
		int I;
		if(flag1==1)
		{
			for(I=0;flag2==0&&I<=3;I++)
			{
				flag2=mimaInput(Acc);
			}
		}
		else
		{
			System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理");
		}
		if(flag2==1)
		{
			for(;;)
			{
				flag3=zhujieMian(Acc);
				int Flag3=0;
				switch(flag3)
				{
				case 1:
					Flag3=cunKuan(Acc,i,Jilu);break;
				case 2:
					Flag3=quKuan(Acc,Jilu,i);break;
				case 3:
					Flag3=zhuanZhang(Acc,Acc2,i,Jilu);break;
				case 4:
					Flag3=xiuMima(Acc);break;
				case 5:
					chaYue(Acc);break;
				case 6:
					break;
				}
				if(flag3==6||Flag3==8)
				{
					for(int l=0;l<30;l++)
					{
						if(acc[l].getAccountID().equals(Acc.getAccountID()))
					    {
							acc[l].setAccountID(Acc.getAccountID());
							acc[l].setAccountname(Acc.getAccountname());
							acc[l].setAccountpassword(Acc.getAccountpassword());
							acc[l].setAccountbalance(Acc.getAccountbalance());
							break;
					    }
					}
					x=0;
					for(int L=0;L<100;L++)
					{
						if(Acc2.getAccountID()!=null)
					    {
							if(acc[L].getAccountID().equals(Acc2.getAccountID()))
							{
								acc[L].setAccountID(Acc2.getAccountID());
					     		acc[L].setAccountname(Acc2.getAccountname());
						    	acc[L].setAccountpassword(Acc2.getAccountpassword());
							    acc[L].setAccountbalance(Acc2.getAccountbalance());
							    break;
							}
					    }
					}
					File file2=new File("accountlist.txt");
					BufferedWriter bw1=new BufferedWriter(new FileWriter(file));
					BufferedWriter bw2=new BufferedWriter(new FileWriter(file2,true));
					for(int Y=0;Y<X;Y++)
					{
						String str1=acc[Y].getAccountbalance()+"";
						String Str1=acc[Y].getAccountID()+" "+acc[Y].getAccountname()+" "+
						acc[Y].getAccountpassword()+" "+str1;
						bw1.write(Str1);
						bw1.newLine();
						bw1.flush();
					}
					bw1.close();
					for(int Y=0;Jilu[Y]!=null;Y++)
					{
						bw2.write(Jilu[Y]);
						bw2.newLine();
						bw2.flush();
					}
					bw2.close();
				  break;
				}
			}
		}
	}
	public static void jiemian() {
		System.out.println("\n********************"
				+ "*************************");
		System.out.println("              "
				+ "欢迎使用中国工商银行自动柜员系统");
		System.out.println("********************"
				+ "*************************");
	}
	public static int firstJM(Account Acc) throws IOException
	{
		jiemian();
		System.out.println("                  "+ 
				"请输入您的账号:");
		String accountID;
		Scanner sc=new Scanner(System.in);
		accountID=sc.nextLine();
		if(accountID.length()!=8) {
			System.out.println("该卡不是工行卡");
			return 0;
		}
		else
		{
			File file=new File("accountinformation.txt");
			BufferedReader br=new BufferedReader(new FileReader(file));
			String str;
			int flag=0;
			while((str=br.readLine())!=null)
			{
				String[] Str=str.split(" ");
				if(Str[0].equals(accountID))
				{
					flag=1;
					Acc.setAccountID(accountID);
					Acc.setAccountname(Str[1]);
					Acc.setAccountpassword(Str[2]);
					Acc.setAccountbalance(Integer.parseInt(Str[3]));
				}
			}
			br.close();
			if(flag==1)
			{
				return 1;
			}
			else
			{
				System.out.println("该账号不存在");
				return 0;
			}
		}
	}
	public static int  mimaInput(Account Acc)
	{
		Scanner sc=new Scanner(System.in);
		jiemian();
		System.out.println("请输入您的密码:");
		String str;
		str=sc.nextLine();
		if(str.equals(Acc.getAccountpassword()))
		{
			System.out.println("密码输入成功,系统跳转到主界面。");
			return 1;
		}
		else
		{
			System.out.println("密码错误!");
			return 0;
		}
	}
	public static int zhujieMian(Account Acc)
	{
		jiemian();
		System.out.println("1.存款");
		System.out.println("2.取款");
		System.out.println("3.转账汇款");
		System.out.println("4.修改密码");
		System.out.println("5.查询余额");
		System.out.println("6.退卡");
		int n=0;
		Scanner sc=new Scanner(System.in);
		n=sc.nextInt();
		return n;
	}
	public static int cunKuan(Account Acc,int[] i,String[] jilu)
	{
		jiemian();
		System.out.println("请输入存款金额;");
		int n;
		Scanner sc=new Scanner(System.in);
		n=sc.nextInt();
		if(n<=0)
		{
			System.out.println("输入金额有误,返回系统界面;输入字母“q”");
			String str;
			str=sc.next();
			if(str.equals("q"))
			{
				return 0;
			}
			else
			{
				return -1;
			}
		}
		else
		{
			jiemian();
			System.out.println("当前账户存款操作成功。");
			Acc.setAccountbalance(Acc.getAccountbalance()+n);
			System.out.println("当前账户余额为:"+Acc.getAccountbalance()+"元");
			String str2=n+"";
			jilu[i[0]]=Acc.getAccountname()+" "+"+"+" "+str2;
			i[0]++;
			return 1;
		}
	}
	public static int quKuan(Account Acc,String[] jilu,int[] i)
	{
		jiemian();
		System.out.println("当前账户每日可以支取"+Acc.getAccountbalance()+"万元");
		System.out.println("1.100元\n"+"2.500元\n"+"3.1000元\n"+"4.1500元\n"+
		"5.2000元\n"+"6.5000元\n"+"7.其他金额\n"+"8.退卡\n"+"9.返回");
		int n;
		Scanner sc=new Scanner(System.in);
		n=sc.nextInt();
		int flag=0;
		if(n>=1&&n<=6)
		{
			switch(n)
			{
			case 1:
				if(Acc.getAccountbalance()>=100) flag=100;break;
			case 2:
				if(Acc.getAccountbalance()>=500) flag=500;break;
			case 3:
				if(Acc.getAccountbalance()>=1000) flag=1000;break;
			case 4:
				if(Acc.getAccountbalance()>=1500) flag=1500;break;
			case 5:
				if(Acc.getAccountbalance()>=2000) flag=2000;break;
			case 6:
				if(Acc.getAccountbalance()>=5000) flag=5000;break;
			}
			if(flag==0)
			{
				System.out.println("余额不足,请输入9返回");
				int N;
				N=sc.nextInt();
				return 9;
			}
			else
			{
				jiemian();
				System.out.println("当前账户取款操作"+flag+"元成功");
				Acc.setAccountbalance(Acc.getAccountbalance()-flag);
				System.out.println("当前账户余额为:"+Acc.getAccountbalance()+"元");
				String str2=flag+"";
				jilu[i[0]]=Acc.getAccountname()+" "+"-"+" "+str2;
				i[0]++;return 1;
			}
		}
		else
		{
			if(n==7)
			{
				jiemian();
				System.out.println("请输入取款金额:");
				int N;
				N=sc.nextInt();
				if(Acc.getAccountbalance()>=N)
				{
					jiemian();
					System.out.println("当前账户取款操作"+N+"元成功");
					Acc.setAccountbalance(Acc.getAccountbalance()-N);
					System.out.println("当前账户余额为:"+Acc.getAccountbalance()+"元");
					String str2=N+"";
					jilu[i[0]]=Acc.getAccountname()+" "+"-"+" "+str2;
					i[0]++;return 1;
				}
				else
				{
					System.out.println("余额不足,已返回系统主页面");
					return 9;
				}
			}
			else
			{
				if(n==8)
				{
					return 8;
				}
				else
				{
						return 9;
				}
			}
		}
	}
	public static int zhuanZhang(Account Acc,Account Acc2,int[] i,String[] jilu) throws IOException
	{
		Scanner sc=new Scanner(System.in);
		jiemian();
		System.out.println("请输入转账账户:");
		String accountID;
		accountID=sc.nextLine();
		File file=new File("accountinformation.txt");
		BufferedReader br=new BufferedReader(new FileReader(file));
		String str;
		int flag=0;
		while((str=br.readLine())!=null)
		{
			String[] Str=str.split(" ");
			if(Str[0].equals(accountID))
			{
				flag=1;
				Acc2.setAccountID(accountID);
				Acc2.setAccountname(Str[1]);
				Acc2.setAccountpassword(Str[2]);
				Acc2.setAccountbalance(Integer.parseInt(Str[3]));
			}
		}
		br.close();
		if(flag==1)
		{
			jiemian();
			System.out.println("请输入转账金额:");
			int n;
			n=sc.nextInt();
			if(Acc.getAccountbalance()>=n)
			{
				jiemian();
				System.out.println("请确认是否向"+Acc2.getAccountname()+"转账"+n+"元。");
				String str2;
				str2=sc.next();
				if(str2.equals("N"))
				{
					return 0;
				}
				else
				{
					String Str1=n+"";
					jilu[i[0]]=Acc.getAccountname()+" "+"-"+" "+Str1;
					i[0]++;
					jilu[i[0]]=Acc2.getAccountname()+" "+"+"+" "+Str1;
					i[0]++;
					jiemian();
					Acc.setAccountbalance(Acc.getAccountbalance()-n);
					Acc2.setAccountbalance(Acc2.getAccountbalance()+n);
					System.out.println("当前账户向"+Acc2.getAccountname()+"成功转账"+n+"元。");
					System.out.println("当前账户余额为:"+Acc.getAccountbalance()+"元");
					return 1;
				}
			}
			else
			{
				System.out.println("余额不足");
				return 0;
			}
		}
		else
		{
			System.out.println("该账户不存在");
			return 0;
		}
	}
	public static int xiuMima(Account Acc)
	{
		jiemian();
		System.out.println("请输入当前密码:");
		String str1;
		Scanner sc=new Scanner(System.in);
		str1=sc.nextLine();
		if(str1.equals(Acc.getAccountpassword()))
		{
			System.out.println("请输入修改密码:");
			String str2;
			str2=sc.nextLine();
			System.out.println("请输入确定密码:");
			String str3;
			str3=sc.nextLine();
			if(str3.equals(str2))
			{
				System.out.println("密码修改成功");
				return 1;
			}
			else
			{
				return 0;
			}
		}
		else
		{
			return 0;
		}
	}
	public static void chaYue(Account Acc) throws IOException
	{
		jiemian();
		System.out.println("当前账户余额为:"+Acc.getAccountbalance()+"元");
		File file3=new File("accountlist.txt");
		BufferedReader br=new BufferedReader(new FileReader(file3));
		String str;
		while((str=br.readLine())!=null)
		{
			String[] Str=str.split(" ");
			if(Str[0].equals(Acc.getAccountname()))
			{
				System.out.println(str);
			}
		}
		br.close();
     }
}
原文:https://www.cnblogs.com/fengchuiguobanxia/p/13717574.html