import java.util.*;
class Account{
private String str;
private String name;
private String date;
private int caozuo;
private String passwd;
private double money;
public Account(String str,String name,String passwd){
this.str=str;
this.name=name;
this.passwd=passwd;
money=0;
}
public String get_str(){
return str;
}
public String get_name(){
return name;
}
public String get_date(){
return date;
}
public int get_caozuo(){
return caozuo;
}
public boolean in_passwd(String passwd){
if(this.passwd.equals(passwd)){
return true;
}
else
return false;
}
public double get_money(){
return money;
}
public void set_money(double money){
this.money=money;
}
public void set_date(String date){
this.date=date;
}
public void set_caozuo(int caozuo){
this.caozuo=caozuo;
}
public void set_passwd(String passwd){
this.passwd=passwd;
}
public void add_money(double money){
this.money+=money;
}
public void jian_money(int n){
if(n==1){
money-=100;
}
else if(n==2){
money-=500;
}
else if(n==3){
money-=1000;
}
else if(n==4){
money-=1500;
}
else if(n==5){
money-=2000;
}
else if(n==6){
money-=5000;
}
}
}
//错误定义
class ATMException extends Exception{
public ATMException(String pad){
super(pad);
}
}
public class ttt {
public static void main(String[] args) {
// TODO Auto-generated method stub
String p1="000000";String p2="111111";
Account a1=new Account("12345678901","Tom",p1);
Account a2=new Account("12345678902","Tom",p2);
Scanner input =new Scanner(System.in);
String p;
char pc;
int pot=0;
while(true){
System.out.println("输入密码:");
p=input.next();
try{
for(int i=0;i<p.length();i++){
pc=p.charAt(i);
if(pc<'0'||pc>'9'){
ATMException e=new ATMException("密码出现数字以外的错误字符,输入失败。");
throw e;
}
}
}
catch(ATMException e){
System.out.println(e);
}
if(a1.in_passwd(p)){
break;
}
System.out.println("密码出错");
try{
if(++pot>=3){
ATMException e=new ATMException("密码错误超过三次。");
throw e;
};
}
catch(ATMException e){
System.out.println(e);
return ;
}
}
while(true){
System.out.println("1.存款"+"\n"+"2.取款"+"\n"+"3.转账汇款"+"\n"+"4.修改密码"+"\n"+"5.查询余额"+"\n"+"6.退卡");
//选项出现字符(“这个使用的是非自定义错误”)
try{
int m=input.nextInt();
if(m==1){
System.out.println("输入存款金额:");
double money=input.nextDouble();
try{
if(money%100!=0){
ATMException e=new ATMException("存款金额不是100整数倍,存款出错。");
throw e;
}
a1.add_money(money);
System.out.println(a1.get_str()+" "+a1.get_name()+" 存款"+money+" 现金"+a1.get_money());
}
catch(ATMException e){
System.out.println(e);
}
}
else if(m==2){
System.out.println("1.100 2.500 3.1000 4.1500 5.2000 6.5000");
try{
int mon=input.nextInt();
try{
if(a1.get_money()<mon){
ATMException e=new ATMException("余额不足,取钱失败。");
throw e;
}
a1.jian_money(mon);
System.out.println(a1.get_str()+" "+a1.get_name()+" 取款"+" 现金"+a1.get_money());
}
catch(ATMException e){
System.out.println(e);
}
}
catch(InputMismatchException e){
System.out.println("输入有错,不是数字");
}
//余额不足
}
else if(m==3){
System.out.println("输入转账卡号:");
String id=input.next();
if(id.equals(a2.get_str())){
System.out.println("输入转账金额:");
double money=input.nextDouble();
//余额不足,转账失败
try{
if(a1.get_money()<money){
ATMException e=new ATMException("余额不足,转账失败。");
throw e;
}
a2.add_money(money);
a1.add_money(-money);
System.out.println(a1.get_str()+" "+a1.get_name()+" 取款"+money+" 现金"+a1.get_money());
System.out.println(a2.get_str()+" "+a2.get_name()+" 存款"+money+" 现金"+a2.get_money());
}
catch(ATMException e){
System.out.println(e);
}
}
else{
System.out.println("转账失败。");
}
}
else if(m==4){
System.out.println("输入密码:");
p=input.next();
//密码出现字符
try{
for(int i=0;i<p.length();i++){
pc=p.charAt(i);
if(pc<'0'||pc>'9'){
ATMException e=new ATMException("密码出现数字以外的错误字符,输入失败。");
throw e;
}
}
a1.set_passwd(p);
System.out.println(a1.get_str()+" "+a1.get_name()+" 修改密码");
}
catch(ATMException e){
System.out.println(e);
}
}
else if(m==5){
System.out.println(a1.get_str()+" "+a1.get_name()+" 查询金额 "+" 现金"+a1.get_money());
}
else if(m==6){
break;
}
else{
System.out.println("输入有误");
}
}
catch(InputMismatchException e){
System.out.println("输入有错,不是数字");
}
}
input.close();
}
}