java - 如何在java中使用用户输入的每个所需帐户以及转账金额将资金从一个帐户转移到另一个帐户

标签 java methods

我正在尝试创建并执行一种方法,该方法允许用户选择用户想要从中转移金额的帐户以及用户也可以选择的帐户。但是,我不知道如何获取用户输入,询问他们想要将资金转移到哪个类别。

我尝试过使用扫描仪方法,但无法使其工作。

这是代码,它与下面的代码相同,但在我看来更容易查看:https://gist.github.com/KamronKelley/32d9a40c285e501f64cf73fa28bf87b5

package banking;

public class Account {
    String name;
    double balance;

    public Account() {
        name = "";
        balance = 0.0;
    }

    public void setName(String newName) {
        name = newName;
    }

    public String getName() {
        return name;
    }

    public double getBalance() {
        return balance;
    }

    public void addFunds(double addedAmount) {
        balance = balance + addedAmount;
    }

    public void withdraw(double withdrawnAmount) {
        balance = balance - withdrawnAmount;        
    }

    public void transfer(double amount, Account from, Account to) { //here is the transfer method, if i can improve this or alter it in order to make it easier to run using user input from the main file, let me know
        if(from.balance >= amount){
            from.balance = from.balance - amount;
            to.balance = to.balance + amount;
            System.out.println("Funds successfully transfered.");
        } else {
                System.out.println("Insufficient funds");
            }
        }
    }

package banking;
import java.util.Scanner;

public class BankSimulator {
    public static void main(String[] args) {

            System.out.println("Hello and welcome to the banking system. Please enter a name to create an account, no spaces: ");
            Scanner scan = new Scanner(System.in);
            Account a1 = new Account();
            a1.setName(scan.next());
            System.out.println("Account name: " + a1.getName());

        int count = 0;
        while(count == 0) {

                System.out.println("What would you like to do next?"  + "\n" +
                "Change account name: press 1"  + "\n" +
                "See account name: press 2"  + "\n" +
                "Check balance: press 3"  + "\n" + 
                "Add money to balance: press 4"  + "\n" +
                "Withdraw money from balance: press 5" + "\n" +
                "Exit program: press 7: " + "\n" +
                "To transfer funds between accounts: press 6");

                int toDo = scan.nextInt();

            if(toDo == 1) {

                    System.out.println("Enter new account name: ");
                    a1.setName(scan.next());
                    System.out.println("Account name: " + a1.getName());
            }
            else if(toDo == 2) {
                System.out.println("Account name: " + a1.getName());
            }
            else if(toDo == 3) {
                System.out.println("Current balance: $" + a1.getBalance());
            }
            else if(toDo == 4) {
                System.out.println("Desired amount to add: $");
                a1.addFunds(scan.nextDouble());
                System.out.println("Money successfully added to balance."); 
            }
            else if(toDo == 5) {
                System.out.println("Desired amount to withdraw: $");
                a1.withdraw(scan.nextDouble());
                System.out.println("Money successfully withdrawn from balance.");
            }
            else if(toDo == 6) {
                System.out.println("Enter the account you would like to transfer money from:");
                String fromAccount = scan.next();
                System.out.println("Enter the account you would like to transfer money to:");
                String toAccount = scan.next();
                System.out.println("Enter the amount of money you would like to transfer: $");
                double moneyToTransfer = scan.nextDouble();
        //this is what i need help with, I don't know what to do with these three things, and since the first two arent accounts, i cant run the transfer method on them


            }
            else if(toDo == 7) {
                System.out.println("Thank you for using our banking system. Until next time.");
                count = 1;

            }
        }
    }
}

我无法对用户输入执行任何操作,因为我需要所需的帐户才能使用它们运行转移方法。

最佳答案

您需要跟踪列表或 map 中的所有帐户。然后,您使用用户输入搜索并检索所需的帐户。另外,我认为您不需要 Account 对象中的转账方法,您可以只使用 main 中的withdraw 和 addFunds ,或者可能像静态方法一样使用它。另外,我认为您将需要一些额外的操作,例如创建新帐户,也许还需要登录才能更改 Activity 帐户。目前您只有 1 个帐户,即 a1,因此转移任何内容都没有意义。

关于java - 如何在java中使用用户输入的每个所需帐户以及转账金额将资金从一个帐户转移到另一个帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57001044/

相关文章:

java - 我可以将 javafx/openjfx 与 OpenJDK 8 一起使用吗?

java - JTextPane 中的 float DIV

javascript - 无法在 jquery 代码 ('#' + 添加上使用方法

ruby - Array.first 与 Ruby 中的 Array.shift

Java枚举反向查找最佳实践

java - 在 Java 中跟踪变量

java - 没有平方根的归一化空间 vector

Objective-C - iVar 作用域方法变量?

java - 如何在新方法中使用两种不同方法中的变量?

C# - 方法无重载(采用 0 个参数)