Java ATM Programme

Je suis en train de faire un programme acm et je vais avoir un moment difficile essayer de comprendre comment obtenir vraiment des dépôts et des retraits. La balance commence automatiquement de 0$, mais je ne peux pas obtenir quoi que ce soit de type I dans pour ajouter ou soustraire à ce que je fais mal?

public class ATM {
static Scanner keyboard = new Scanner(System.in);
static String acctNum, pwd, result;
static double oldBalance, newBalance, deposit, withdraw;
static int choose;
public static void main(String[] args) {
for (int run = 0; run < 3; run++) {
System.out.println("Enter your account number");
acctNum = keyboard.nextLine();
System.out.println("Enter your account password");
pwd = keyboard.nextLine();
result = checkID(acctNum, pwd);
if (!result.equals("ERROR")) {
break;
} else if (run == 2) {//you cannot try to log in anymore than 3
//times
System.out.println("MAXIMUM TRIES EXCEEDED");
return;
}
}
menu();
}
public static String checkID(String acctNum, Object pwd) {
String result = "ERROR";
String a = "44567-5 mypassword 520.36";
String b = "1234567-6 anotherpassword 48.20";
String c = "4321-0 betterpassword 96.74";
if (acctNum.equals("44567-5") && pwd.equals("mypassword")) {
result = "520.36";
} else if (acctNum.equals("1234567-6") && pwd.equals("anotherpassword")) {
result = "48.20";
} else if (acctNum.equals("4321-0") && pwd.equals("betterpassword")) {
result = "96.74";
}
System.out.println(result);
return result;
}
public static int menu() {
System.out
.println("Choose one of the following: \n1.Display Balance\n2.Deposit\n3.Withdraw\n4.Log Out");
choose = keyboard.nextInt();
if (choose == 1) {//1. Display Balance
displayBalance();
menu();
return 1;
}
if (choose == 2) {//2. Deposit
deposit();
menu();
return 2;
}
if (choose == 3) {//3. Withdraw
withdraw();
menu();
return 3;
}
if (choose == 4) {//4. Log out
System.out.println("You are logged out.");
return 4;
}
if (choose <= 5) {//type in anything greater than 4 and you will get a
//system error
System.out.println("System Error");
menu();
return 5;
}
if (choose >= 1) {//type in anything less than 1 and you will get a
//system error
System.out.println("System Error");
menu();
return 6;
}
return choose;
}
public static double deposit() {
System.out.println("How much would you like to deposit?");
deposit = keyboard.nextInt();
System.out.println((deposit + oldBalance)==newBalance);//deposit money into balance
return 2;
}
public static double displayBalance() {
System.out.println("Total balance is: $" + oldBalance);
oldBalance = 0.00;
return 1;
}
public static double withdraw() {
System.out.println("How much would you like to withdraw?");
withdraw = keyboard.nextInt();
System.out.println(newBalance + withdraw);//withdraw money from balance
return 3;
}

}

  • Vous n'êtes pas à modifier les valeurs de l'équilibre...aussi, n'utilisez pas de méthode récursive appels pour cela, utilisez une do-while boucle à la place (au sein de votre menu méthode)
InformationsquelleAutor tcd9 | 2014-11-03