package Bank;
public class Client {
private static Bank newbank = new Bank();
public static java.util.Scanner in = new java.util.Scanner(System.in);
public static void applyaccount(){
System.out.println("请输入姓名:");
String name = in.next();
String password;
System.out.println("请设置密码:(六位数字)");
password = in.next();
while(true){
System.out.println("请输入确认密码:(六位数字)");
String confirm = in.next();
if(password.equals(confirm))
break;
else{
System.out.println("重新设置密码");
System.out.println("请设置密码:(六位数字)");
password = in.next();
}
}
System.out.println("请选择账号类型:\n1.信用卡账号\n2.储蓄卡账号\n");
int kind = in.nextInt();
boolean kinds = false;
if(kind==1)
kinds=true;
if(kind==2)
kinds=false;
newbank.establish(name, kinds,password);
}
public static void random(){
int[] randint = new int[10];
for(int i=0;i<10;i++)
{
randint[i] = i;
}
java.util.Random rand = new java.util.Random();
int temp;
for(int i=0;i<=52;i++){
int r1 = rand.nextInt(10);
int r2 = rand.nextInt(10);
while(r1==r2){
r2=rand.nextInt(10);
}
temp =randint[r2];
randint[r2]= randint[r1];
randint[r1]= temp;
}
newbank.createrandom(randint);
}
public static void close(){
boolean contin=true;
while(contin){
System.out.println("请输入账号:");
char[] number = in.next().toCharArray();
String password;
System.out.println("请输入密码:(六位数字)");
password = in.next();
if(number.length!=16){
System.out.println("账号错误!\n重新输入账号请输入 1,否则输入 0 :");
int choose = in.nextInt();
if(choose!=1){
contin=false;
}
}else{
if(!newbank.closeaccount(number,password)){
System.out.println("账号或密码错误!\n重新输入请输入 1,否则输入 0 :");
int choose = in.nextInt();
if(choose!=1){
contin=false;
}
}
else{
System.out.println("成功删除账号:"+String.valueOf(number));
contin=false;
}
}
}
}
public static int search(){
int result=-1;
boolean contin=true;
while(contin){
System.out.println("请输入账号:");
String n = in.next();
char[] number = n.toCharArray();
if(number.length!=16){
System.out.println("账号错误!重新输入账号请输入 1,否则输入 0 :");
int choose = in.nextInt();
if(choose!=1){
result=-1;
contin=false;
}
}else{
result=newbank.searchaccount(number);
if(result==-1){
System.out.println("找不到账号:"+String.valueOf(number));
System.out.println("重新输入账号请输入 1,否则输入 0 :");
int choose = in.nextInt();
if(choose!=1){
result=-1;
contin=false;
}
}else{
System.out.println("账号存在");
contin=false;
}
}
}
return result ;
}
public static void withdraw(){
int index=-1;
index=search();
String password;
int i;
for(i=0;i<3;i++){
System.out.println("输入密码:(六位数字)");
password = in.next();
if(newbank.passwordconfirm(index, password))
break;
else
System.out.println("请重新输入密码\n");
}
if(i>=3){
System.out.println("密码错误3次!\n");
return;
}
if(index!=-1)
{
boolean contin = true;
while(contin){
System.out.println("请输入取款金额:");
double amount = in.nextDouble();
if((newbank.account.get(index)).withdraw(amount)){
System.out.println("成功取款:"+amount);
System.out.println("继续取款请输入1,否则输入0");
int order = in.nextInt();
if(order!=1){
contin=false;
}
}
else{
System.out.println("超出可取范围!\n 修改取款金额请输入1,退出输入0");
int order = in.nextInt();
if(order!=1){
contin=false;
}
}
}
}
}
public static void check(){
int target = search();
if(target!=-1){
if((newbank.account.get(target))instanceof CriditAccount){
((CriditAccount)newbank.account.get(target)).information();
}
if((newbank.account.get(target))instanceof SavingAccount){
((SavingAccount)newbank.account.get(target)).information();
}
}
}
public static void deposit(){
int index = search();
if(index!=-1)
{
boolean contin = true;
while(contin){
System.out.println("请输入存款金额:");
double amount = in.nextDouble();
(newbank.account.get(index)).deposit(amount);
System.out.println("成功存款:"+amount+"\n继续存款请输入1,退出输入0");
int order = in.nextInt();
if(order!=1){
contin=false;
}
}
}
}
public static void main(String[] args) {
random();
boolean contine=true;
while(contine){
System.out.println("1.申请账号\n2.删除帐号\n3.查找账号\n4.取款\n5.存款\n6.查询银行信息\n7.账号信息查询\n0.退出\nTips:随机账号密码为:123456");
System.out.println("请选择操作:");
int chosen =in.nextInt();
switch(chosen){
case 1:applyaccount();break;
case 2: close();break;
case 3:search();break;
case 4:withdraw();break;
case 5:deposit();break;
case 6:newbank.displayinform();break;
case 7:check();break;
case 0:contine=false;break;
default:break;
}
}
}
}