Как я могу обновить баланс после снятия средств и пополнения счета (вывод, депозит, запрос баланса) Java - PullRequest
0 голосов
/ 21 июня 2019

У меня есть домашняя работа в Java.Мне поручено создать банк, который сможет выводить, вносить и запрашивать баланс.Моя проблема в том, что я не мог обновить свой баланс после пополнений и снятий ... Я перепробовал все, что мог, но все еще не могу понять логику.Может кто-нибудь помочь добавить в мою программу ... спасибо

import java.util.Scanner;

public class bankJava 
{

    Scanner input = new Scanner(System.in);


    double balance;
    double amount;

    public void withdraw() 
    {

        System.out.println("Enter amount: ");
        amount = input.nextInt();

        balance = balance - amount;


    }

    public void deposit()
    {

        System.out.println("Enter amount: ");
        amount = input.nextInt();
        balance = balance + amount;

    }

    public void accBalance()
    {


    }



}

--------------------------------- ГЛАВНАЯ --------------------------------

import java.util.Scanner;

public class bankJavaTest {

    public static void main(String[] args){

        Scanner input = new Scanner(System.in);

        int action;

        bankJava wdraw = new bankJava();
        bankJava dposit = new bankJava();
        bankJava balanceInquiry = new bankJava();
        bankJava amount = new bankJava();

        do{

        System.out.println("Choose Action: ");
        System.out.println("(1) Withdraw");
        System.out.println("(2) Deposit");
        System.out.println("(3) Balance Inquiry");
        System.out.println("(4) Exit");
        action = input.nextInt();


        switch(action){



        //---------WITHDRAW------------//
        case 1 :

            System.out.println("******Withdraw******");
            wdraw.withdraw();
            System.out.println("***************************");


            break;

        //---------DEPOSIT------------//
        case 2 :

            System.out.println("******Deposit******");
            dposit.deposit();
            System.out.println("***************************");
            break;

        //-----------Balance Inquiry-------//
        case 3 :

            System.out.println("******Balance Inquiry******");
            balanceInquiry.accBalance();
            System.out.println("***************************");

            break;

        case 4 :

            System.out.println("Thank you for choosing our bank!");
            break;

        default :

            System.out.println("Invalid action.");
            break;

        } 
        }while(action != 4);

    }


}

Ответы [ 2 ]

0 голосов
/ 21 июня 2019
import java.util.Scanner;

public class BankJava {

    double balance = 0;
    double amount;

    public void withdraw(int amount) {

        balance = balance - amount;

    }

    public void deposit(int amount) {

        balance = balance + amount;
    }

    public double showBalance() {
        return balance;
    }


    public static void main(String[] args) {
        BankJava bank = new BankJava();
        Scanner input = new Scanner(System.in);
        int action;
        int amount;
         do{

                System.out.println("Choose Action: ");
                System.out.println("(1) Withdraw");
                System.out.println("(2) Deposit");
                System.out.println("(3) Balance Inquiry");
                System.out.println("(4) Exit");
                action = input.nextInt();
                switch(action){
                //---------WITHDRAW------------//
                case 1 :

                    System.out.println("******Withdraw******");
                    System.out.println("enter amount:");
                    amount = input.nextInt();
                    bank.withdraw(amount);
                    System.out.println("***************************");
                    System.out.println("Your balance is now: " + bank.showBalance());
                    break;

                //---------DEPOSIT------------//
                case 2 :

                    System.out.println("******Deposit******");
                    System.out.println("enter amount:");
                    amount = input.nextInt();
                    bank.deposit(amount);
                    System.out.println("***************************");
                    System.out.println("Your balance is now: " + bank.showBalance());
                    break;

                //-----------Balance Inquiry-------//
                case 3 :

                    System.out.println("******Balance Inquiry******");
                    System.out.println("Your balance is: " + bank.showBalance());
                    System.out.println("***************************");

                    break;

                case 4 :

                    System.out.println("Thank you for choosing our bank!");
                    break;

                default :

                    System.out.println("Invalid action.");
                    break;

                } 
                }while(action != 4);

            }
    }

Попробуйте этот код, сравните с вашим и выясните, что не так, также вы можете спросить меня, если вам нужна дополнительная помощь

0 голосов
/ 21 июня 2019

Почему вы устанавливаете 4 разных JavaBank?Делая это для каждой операции, вы будете выполнять каждый метод в отдельном объекте.Если я хорошо понимаю ваш вопрос, я думаю, что вы могли бы легко решить вашу проблему, работая в том же объекте.

import java.util.Scanner;

public class bankJavaTest {

    public static void main(String[] args){

        Scanner input = new Scanner(System.in);

        int action;

        bankJava myJavaBank = new bankJava(); //creating the bank


        do{

        System.out.println("Choose Action: ");
        System.out.println("(1) Withdraw");
        System.out.println("(2) Deposit");
        System.out.println("(3) Balance Inquiry");
        System.out.println("(4) Exit");
        action = input.nextInt();


        switch(action){



        //---------WITHDRAW------------//
        case 1 :

            System.out.println("******Withdraw******");
            myJavaBank.withdraw(); //withdrawing from it
            System.out.println("***************************");


            break;

        //---------DEPOSIT------------//
        case 2 :

            System.out.println("******Deposit******");
            myJavaBank.deposit(); //deposit from it
            System.out.println("***************************");
            break;

        //-----------Balance Inquiry-------//
        case 3 :

            System.out.println("******Balance Inquiry******");
            myJavaBank.accBalance();
            //You don't post this method but I suppose it will refer to the same bank
            System.out.println("***************************");

            break;

        case 4 :

            System.out.println("Thank you for choosing our bank!");
            break;

        default :

            System.out.println("Invalid action.");
            break;

        } 
        }while(action != 4);

    }


}

Теперь должно работать.С вашим кодом у вас было 4 разных банка, один только для депозита, один только для вывода и так далее.Таким образом, один банк будет продолжать увеличивать деньги, а другой - продолжать уменьшаться.Банк не определяет.

Что-то вроде

public class bankJava 
{

Scanner input = new Scanner(System.in);


double balance;

public void withdraw() 
{

    System.out.println("Enter amount: ");
    double amount = input.nextInt();

    balance = balance - amount;


}

public void deposit()
{

    System.out.println("Enter amount: ");
    double amount = input.nextInt();
    balance = balance + amount;

}

Я также предлагаю изменить input.nextInt() на input.nextDouble(), чтобы вы создали сумму какdouble.

Если вы не видите запрос баланса, очевидно, у вас пустой метод accBalance ().Отредактируйте это так:

public void accBalance(){
System.out.println("Your balance is: "+this.balance);
}
...