java程序模拟atm机_Java第一课——模拟ATM机代码

//信1705_2班20173640刘世朝

package Accunt;

import java.text.SimpleDateFormat;

import java.util.Date;

public class Account

{

private String accountID,accountname,operatedate,accontpassword;

private int operatetype,accountbalance,amount;//“1”表示存款,“2”表示取款,“3”表示转账汇款,“4”表示修改账户密码,“5”表示查询余额。

public Account() {}

public Account(String accountID,String accountname,String accontpassword,int accountbalance)

{

this.accountID = accountID;

this.accountname = accountname;

this.accontpassword = accontpassword;

this.accountbalance = accountbalance;

}

public int getAccountbalance()

{

return accountbalance;

}

public void setAccountbalance(int accountbalance)

{

this.accountbalance = accountbalance;

}

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()

{

Date now = new Date( );

SimpleDateFormat ft = new SimpleDateFormat ("yyyy.MM.dd");

this.operatedate = ft.format(now);

}

public String getAccontpassword()

{

return accontpassword;

}

public void setAccontpassword(String accontpassword)

{

this.accontpassword = accontpassword;

}

public int getOperatetype()

{

return operatetype;

}

public void setOperatetype(int operatetype)

{

this.operatetype = operatetype;

}

public int getAmount()

{

return amount;

}

public void setAmount(int amount)

{

this.amount = amount;

}

}

//信1705_2班20173640刘世朝

package Accunt;

import java.io.*;

import java.util.ArrayList;

import java.util.Scanner;

public class AccountManager

{

public static void main(String[] args)

{

Scanner input=new Scanner(System.in);

ArrayList ac=new ArrayList();

int select1=1,flag1=0,flag2=0,flagq=0,flag4=0,k;

String q="q";

getInformation(ac);

for(;;)

{

do

{

face(1);//账户对比

flag1=id(input.next(),ac);

if(flag1==-2) {face(0,12,ac);}

if(flag1==-1) {face(0,13,ac);}

}while(flag1<0);

for(k=0;k<3;k++)

{

face(2);//密码对比

flag2=login(flag1,input.next(),ac);

if(flag2<0) {face(flag1,14,ac);}

if(flag2>0) {break;}

}

if(flag2>0&&k<3)

{

do

{

face(flag1,3,ac);//主界面

try

{

select1=input.nextInt();

if(select1<=0) throw new Exception ();

}

catch(Exception e)

{

face(flag1,15,ac);

}

switch(select1)

{

case 1://存款

{

cunkuan(flag1,ac);

if(q.equals(input.next()))

{

q="";

flagq=1;

}

}break;

case 2://取款

{

flag4=qukuan(flag1,ac);

if(flag4==2)continue;

if(flag4==1)flagq=1;

}break;

case 3://转账

{

zhuanzhang(flag1,ac);

if(q.equals(input.next()))

{

q="";

flagq=1;

}

}break;

case 4://修改密码

{

resetpassward(flag1, ac);

if(q.equals(input.next()))

{

q="";

flagq=1;

}

}break;

case 5://查看

{

face(flag1,10,ac);

if(q.equals(input.next()))

{

q="";

flagq=1;

}

}break;

}

}while(flagq!=1);

}

else

{

face(flag1,11,ac);

}

}

}

public static void getInformation(ArrayList ac)//获得信息

{

try

{

FileReader fr=new FileReader("AccountInformation");

Scanner r=new Scanner(fr);

while(r.hasNext())

{

Account a=new Account();

a.setAccountID(r.next());

a.setAccontpassword(r.next());

a.setAccountname(r.next());

a.setAccountbalance(r.nextInt());

ac.add(a);

}

fr.close();

r.close();

}

catch(Exception e)

{

System.out.println("文件写入失败");

}

}

public static void setInformation(ArrayList ac)//写入信息

{

try

{

int i=0;

FileWriter fw=new FileWriter("AccountInformation");

PrintWriter pw=new PrintWriter(fw);

for(i=0;i

{

pw.println(ac.get(i).getAccountID()+" "+ac.get(i).getAccontpassword()+" "+ ac.get(i).getAccountname()+" "+ac.get(i).getAccountbalance());

}

pw.flush();

pw.close();

fw.close();

}

catch(Exception e)

{

System.out.println("文件写入失败");

}

}

public static String getList(int i,ArrayList ac)//读取流水

{

try

{

FileReader fr=new FileReader("AccountList");

Scanner in=new Scanner(fr);

String iid=ac.get(i).getAccountID();

String id=new String();

String s=new String();

String sum="";

int z=1;

while(in.hasNextLine())

{

id=in.next();

if(iid.equals(id))

{

s=id+" "+in.nextLine()+"\n";

sum=sum+"( "+z+" )\t"+s;

z++;

}

}

fr.close();

in.close();

return sum;

}

catch(Exception e)

{

System.out.println("文件读取失败");

return "";

}

}

public static void setList(int i,ArrayList ac)//写入流水

{

try

{

Account a=ac.get(i);

FileWriter fw=new FileWriter("AccountList",true);

PrintWriter pw=new PrintWriter(fw);

pw.println(a.getAccountID()+" "+a.getAccountname()+" "+ a.getOperatedate()+" "+a.getOperatetype()+" "+a.getAmount());

pw.flush();

pw.close();

fw.close();

}

catch(Exception e)

{

System.out.println("文件写入失败");

}

}

public static void zhuanzhang(int i,ArrayList ac)

{

Account a=new Account();

Account b=new Account();

Scanner input=new Scanner(System.in);

String z="",x="";

int t=0,m=0,f1=0;

while(f1==0)

{

face(i,6,ac);

z=input.next();

if((t=id(z,ac))>=0)//判断

{

try

{

face(i,7,ac);

m=input.nextInt();

if(m<=0)throw new Exception();

}

catch(Exception e)

{

face(i,13,ac);

f1=1;

continue;

}

if(f1==0)//输入正确 开始转账

{

a=ac.get(i);

b=ac.get(t);

a.setAmount(-m);

b.setAmount(m);

ac.set(i, a);

face(i,t,1,ac);

x=input.next();

if(x.equals("Y")==true)

{

a.setOperatedate();

a.setOperatetype(3);

b.setOperatedate();

b.setOperatetype(3);

if(ac.get(i).getAccountbalance()>=m)

{

a.setAccountbalance(a.getAccountbalance()-m);//取款

ac.set(i, a);

setList(i, ac);

b.setAccountbalance(b.getAccountbalance()+m);//存款

ac.set(t, b);

setList(t, ac);

setInformation(ac);

face(i,t,2,ac);

break;

}

else

{

face(i,19,ac);

break;

}

}

else if(x.equals("N")==true)

{

break;

}

else

{

face(i,20,ac);

}

}

}

}

}

public static void resetpassward(int i,ArrayList ac)

{

Account a=new Account();

Scanner input=new Scanner(System.in);

String s1="",s2="",s3="";

int f1=0,f2=0,t=0;

face(i,8,ac);

s1=input.next();

f1=login(i,s1,ac);//密码正确

if(f1==1)

{

s2=input.next();

s3=input.next();

if(s2.equals(s3))//相等

{

if(s2.length()!=6)//格式

{

f2= -1;

face(i,16,ac);

}

for(t=0;t

{

if(s2.charAt(t)'9')

{

f2= -1;

face(i,16,ac);

}

}

if(f2==0)

{

a=ac.get(i);

a.setAmount(0);

a.setOperatetype(4);

a.setOperatedate();

a.setAccontpassword(s2);

ac.set(i, a);

setList(i, ac);

setInformation(ac);

face(i,9,ac);

}

}

else

{

face(i,17,ac);

}

}

else

{

face(i,18,ac);

}

}

public static int qukuan(int i,ArrayList ac)

{

Account a=new Account();

Scanner input=new Scanner(System.in);

int f=0,m=0;

face(i,5,ac);

do

{

try

{

f=input.nextInt();

if(f<=0)throw new Exception();

}

catch(Exception e)

{

face(i,15,ac);

continue;

}

switch(f)

{

case 1:m=100;break;

case 2:m=500;break;

case 3:m=1000;break;

case 4:m=1500;break;

case 5:m=2000;break;

case 6:m=5000;break;

case 7:

{

try

{

m=input.nextInt();

if(m<=0)throw new Exception();

}

catch(Exception e)

{

face(i,15,ac);

continue;

}

};break;

case 8:return 1;

case 9:return 2;

}

}while(f>8);

if(ac.get(i).getAccountbalance()>=m)

{

a=ac.get(i);

a.setAccountbalance(a.getAccountbalance()-m);

a.setAmount(m*-1);

a.setOperatetype(2);

a.setOperatedate();

ac.set(i, a);

setList(i, ac);

setInformation(ac);

face(i,22,ac);

}

else

{

face(i,19,ac);

}

return 0;

}

//@SuppressWarnings("resource")

public static void cunkuan(int i,ArrayList ac)

{

Account a=new Account();

Scanner input=new Scanner(System.in);

int m=0,f=0;

face(i,4,ac);

try

{

m=input.nextInt();

if(m<=0) throw new Exception();

}

catch(Exception e)

{

face(i,15,ac);

f= -1;

}

a=ac.get(i);

a.setAccountbalance(a.getAccountbalance()+m);

a.setAmount(m);

a.setOperatetype(1);

a.setOperatedate();

ac.set(i, a);

setList(i, ac);

setInformation(ac);

if(f==0)

{

face(i,21,ac);

}

}

public static int id(String accountID,ArrayList ac)

{

int i=0,t=0;

if(accountID.length()!=8)//格式

{

return -2;

}

for(t=0;t

{

if(accountID.charAt(t)'9')

{

return -2;

}

}

for(i=0;i

{

if(ac.get(i).getAccountID().equals(accountID)==true)

{

return i;

}

}

return -1;

}

public static int login(int i,String accountpassword,ArrayList ac)

{

int t=0;

if(accountpassword.length()!=6)//格式

{

return -1;

}

for(t=0;t

{

if(accountpassword.charAt(t)'9')

{

return -1;

}

}

if(ac.get(i).getAccontpassword().equals(accountpassword)==true)//正误

{

return 1;

}

else

{

return -1;

}

}

public static void face(int select)

{

System.out.println("**********************************************");

System.out.println("\t欢迎使用中国工商银行自助柜台系统");

System.out.println("**********************************************");

switch(select)

{

case 1://输入账号

{

System.out.println("\t\t请输入你的账号");

}break;

case 2://输入密码

{

System.out.println("\t\t请输入你的密码");

}break;

}

}

public static void face(int i,int select,ArrayList ac)

{

System.out.println("**********************************************");

System.out.println(" 欢迎"+ac.get(i).getAccountname()+"使用中国工商银行自助柜台系统");

System.out.println("**********************************************");

switch(select)

{

case 3://主界面

{

System.out.println("\t\t1、 存款");

System.out.println("\t\t2、 取款");

System.out.println("\t\t3、 转账汇款");

System.out.println("\t\t4、 修改密码");

System.out.println("\t\t5、 查询余额");

}break;

case 4://存款

{

System.out.println("\t\t请输入存款金额");

}break;

case 5://取款

{

System.out.println("\t"+ac.get(i).getAccountname()+"账户当前账户每日可以支取2万元。");

System.out.println("\t\t1、100元");

System.out.println("\t\t2、500元");

System.out.println("\t\t3、1000元");

System.out.println("\t\t4、1500元");

System.out.println("\t\t5、2000元");

System.out.println("\t\t6、5000元");

System.out.println("\t\t7、其他金额");

System.out.println("\t\t8、退卡");

System.out.println("\t\t9、返回");

}break;

case 6://输入转账账户

{

System.out.println("\t\t请输入转账账户:");

}break;

case 7://输入转账金额

{

System.out.println("\t\t请输入转账金额:");

}break;

case 8://修改密码

{

System.out.println("\t\t请输入当前密码:");

System.out.println("\t\t请输入修改密码:");

System.out.println("\t\t请输入确认密码:");

}break;

case 9://修改密码成功

{

System.out.println("\t\t当前账户修改密码成功");

}break;

case 10://显示余额和操作流程

{

System.out.println("\t\t当前账户余额为 "+ac.get(i).getAccountbalance()+" 元。");

System.out.println("\t\t当前账户清单信息为:");

System.out.print(getList(i, ac));

Account a=ac.get(i);

a.setAmount(0);

a.setOperatetype(5);

a.setOperatedate();

setList(i, ac);

}break;

case 11:

{

System.out.println("\t该账号三次录入密码错误,该卡已被系统没收,请与工商银行及时联系。");

}break;

case 12:

{

System.out.println("\t\t该卡不是工商卡");

}break;

case 13:

{

System.out.println("\t\t该账号不存在");

}break;

case 14:

{

System.out.println("\t\t密码录入错误");

}break;

case 15:

{

System.out.println("\t\t请输入正整数");

}break;

case 16:

{

System.out.println("\t\t密码格式错误");

}break;

case 17:

{

System.out.println("\t修改密码与确认密码不一致");

}break;

case 18:

{

System.out.println("\t\t当前密码录入错误");

}break;

case 19:

{

System.out.println("\t\t账户余额不足");

}break;

case 20:

{

System.out.println("\t\t请输入\"Y\"或\"N\"");

}break;

case 21:

{

System.out.println("\t当前账户存款款"+ac.get(i).getAmount()+"成功。");

System.out.println("\t当前账户余额为 "+ac.get(i).getAccountbalance()+" 元。");

}break;

case 22:

{

System.out.println("\t当前账户取款"+ac.get(i).getAmount()+"成功。");

System.out.println("\t当前账户余额为 "+ac.get(i).getAccountbalance()+" 元。");

}break;

}

}

public static void face(int i,int t,int select,ArrayList ac)

{

String s=ac.get(t).getAccountname();

String star=s.substring(1);

star="*"+star;

System.out.println("*********************************************");

System.out.println(" 欢迎"+ac.get(i).getAccountname()+"使用中国工商银行自助柜台系统");

System.out.println("**********************************************");

switch(select)

{

case 1://确认

{

System.out.println("\t请确认是否向"+star+"转账"+ac.get(i).getAmount()*-1+"元");

}break;

case 2:

{

System.out.println("\t当前账户成功向"+star+"转账"+ac.get(i).getAmount()*-1+"元");

System.out.println("\t当前账户余额为 "+ac.get(i).getAccountbalance()+" 元。");

}break;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值