From 1eedb7b6e8c4986e8244e64438e0c7be65d39e45 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Sat, 13 Nov 2021 18:54:42 -0500 Subject: [PATCH 1/5] added new functions --- .../java/rocks/zipcode/atm/CashMachine.java | 18 ++- .../rocks/zipcode/atm/CashMachineApp.java | 111 ++++++++++++++---- .../java/rocks/zipcode/atm/bank/Account.java | 8 +- .../rocks/zipcode/atm/bank/AccountData.java | 6 +- .../java/rocks/zipcode/atm/bank/Bank.java | 14 ++- 5 files changed, 123 insertions(+), 34 deletions(-) diff --git a/src/main/java/rocks/zipcode/atm/CashMachine.java b/src/main/java/rocks/zipcode/atm/CashMachine.java index d6f8f74..f7c8f3a 100644 --- a/src/main/java/rocks/zipcode/atm/CashMachine.java +++ b/src/main/java/rocks/zipcode/atm/CashMachine.java @@ -13,6 +13,7 @@ public class CashMachine { private final Bank bank; private AccountData accountData = null; + private String msg; public CashMachine(Bank bank) { this.bank = bank; @@ -22,8 +23,13 @@ public CashMachine(Bank bank) { accountData = data; }; + public String getMsg(){ + return msg; + + } + public void login(int id) { - tryCall( + tryCall( () -> bank.getAccountById(id), update ); @@ -40,7 +46,7 @@ public void deposit(int amount) { public void withdraw(int amount) { if (accountData != null) { - tryCall( + tryCall( () -> bank.withdraw(accountData, amount), update ); @@ -51,14 +57,18 @@ public void exit() { if (accountData != null) { accountData = null; } + } @Override public String toString() { - return accountData != null ? accountData.toString() : "Try account 1000 or 2000 and click submit."; + return accountData != null ? accountData.toString() : "Log-in with your account ID."; } private void tryCall(Supplier > action, Consumer postAction) { + + msg = ""; + try { ActionResult result = action.get(); if (result.isSuccess()) { @@ -69,7 +79,7 @@ private void tryCall(Supplier > action, Consumer postActi throw new RuntimeException(errorMessage); } } catch (Exception e) { - System.out.println("Error: " + e.getMessage()); + msg = "Error: " + e.getMessage(); } } } diff --git a/src/main/java/rocks/zipcode/atm/CashMachineApp.java b/src/main/java/rocks/zipcode/atm/CashMachineApp.java index c0fada8..3dbfa23 100644 --- a/src/main/java/rocks/zipcode/atm/CashMachineApp.java +++ b/src/main/java/rocks/zipcode/atm/CashMachineApp.java @@ -1,5 +1,6 @@ package rocks.zipcode.atm; +import javafx.scene.Group; import rocks.zipcode.atm.bank.Bank; import javafx.application.Application; import javafx.scene.Parent; @@ -11,59 +12,121 @@ import javafx.stage.Stage; import javafx.scene.layout.FlowPane; +import javax.xml.soap.Text; + /** * @author ZipCodeWilmington */ public class CashMachineApp extends Application { private TextField field = new TextField(); + private TextField txtLogIn = new TextField(); + private TextField txtDeposit = new TextField(); + private TextField txtWithDraw = new TextField(); private CashMachine cashMachine = new CashMachine(new Bank()); + + + + + private Parent createContent() { - VBox vbox = new VBox(10); - vbox.setPrefSize(600, 600); + Button btnSubmit = new Button("Log-in"); + Button btnDeposit = new Button("Deposit"); + Button btnWithdraw = new Button("Withdraw"); + Button btnExit = new Button("Log-out"); + + btnWithdraw.setDisable(true); + btnDeposit.setDisable(true); + btnExit.setDisable(true); + + + VBox vbox = new VBox(20); //spacing between the buttons + vbox.setPrefSize(600, 600); //size of the display box TextArea areaInfo = new TextArea(); - Button btnSubmit = new Button("Set Account ID"); + + btnSubmit.setOnAction(e -> { - int id = Integer.parseInt(field.getText()); + int id = Integer.parseInt(txtLogIn.getText()); cashMachine.login(id); - areaInfo.setText(cashMachine.toString()); + btnExit.setDisable(false); + btnDeposit.setDisable(false); + btnWithdraw.setDisable(false); + btnSubmit.setDisable(true); + clearTxtBoxes(); + }); - Button btnDeposit = new Button("Deposit"); + + + btnDeposit.setOnAction(e -> { - int amount = Integer.parseInt(field.getText()); + int amount = Integer.parseInt(txtDeposit.getText()); cashMachine.deposit(amount); - areaInfo.setText(cashMachine.toString()); + clearTxtBoxes(); }); - Button btnWithdraw = new Button("Withdraw"); + + + btnWithdraw.setOnAction(e -> { - int amount = Integer.parseInt(field.getText()); + int amount = Integer.parseInt(txtWithDraw.getText()); cashMachine.withdraw(amount); - - areaInfo.setText(cashMachine.toString()); + if(cashMachine.getMsg() != "") { + areaInfo.setText(cashMachine.getMsg()); + } + else{ + areaInfo.setText(cashMachine.toString()); + } + + clearTxtBoxes(); }); - Button btnExit = new Button("Exit"); + + btnExit.setOnAction(e -> { cashMachine.exit(); - areaInfo.setText(cashMachine.toString()); + btnExit.setDisable(true); + btnDeposit.setDisable(true); + btnWithdraw.setDisable(true); + btnSubmit.setDisable(false); + clearTxtBoxes(); }); - FlowPane flowpane = new FlowPane(); - flowpane.getChildren().add(btnSubmit); - flowpane.getChildren().add(btnDeposit); - flowpane.getChildren().add(btnWithdraw); - flowpane.getChildren().add(btnExit); - vbox.getChildren().addAll(field, flowpane, areaInfo); + + +// FlowPane flowpane = new FlowPane(); +// flowpane.getChildren().add(btnSubmit); +// flowpane.getChildren().add(btnDeposit); +// flowpane.getChildren().add(btnWithdraw); +// flowpane.getChildren().add(btnExit); + + + FlowPane flowPaneAccountID = new FlowPane(); + flowPaneAccountID.getChildren().add(btnSubmit); + flowPaneAccountID.getChildren().add(txtLogIn); + + FlowPane flowPaneDeposit = new FlowPane(); + flowPaneDeposit.getChildren().add(btnDeposit); + flowPaneDeposit.getChildren().add(txtDeposit); + + FlowPane flowPaneWithDraw = new FlowPane(); + flowPaneWithDraw.getChildren().add(btnWithdraw); + flowPaneWithDraw.getChildren().add(txtWithDraw); + + FlowPane flowPaneLogOut = new FlowPane(); + flowPaneLogOut.getChildren().add(btnExit); + + + vbox.getChildren().addAll(flowPaneAccountID, flowPaneDeposit,flowPaneWithDraw, flowPaneLogOut, areaInfo); return vbox; + } @Override @@ -75,4 +138,12 @@ public void start(Stage stage) throws Exception { public static void main(String[] args) { launch(args); } + + public void clearTxtBoxes(){ + txtDeposit.clear(); + txtWithDraw.clear(); + txtLogIn.clear(); + + } + } diff --git a/src/main/java/rocks/zipcode/atm/bank/Account.java b/src/main/java/rocks/zipcode/atm/bank/Account.java index 53a0fa8..f6b07b9 100644 --- a/src/main/java/rocks/zipcode/atm/bank/Account.java +++ b/src/main/java/rocks/zipcode/atm/bank/Account.java @@ -16,12 +16,12 @@ public AccountData getAccountData() { } public void deposit(int amount) { - updateBalance(getBalance() + amount); + accountData = new AccountData (accountData.getId(), accountData.getName(), accountData.getEmail(), accountData.getBalance() + amount); } public boolean withdraw(int amount) { if (canWithdraw(amount)) { - updateBalance(getBalance() - amount); + updateBalance((int) (getBalance() - amount)); return true; } else { return false; @@ -29,11 +29,11 @@ public boolean withdraw(int amount) { } protected boolean canWithdraw(int amount) { - return getBalance() >= amount; + return accountData.getBalance() >= amount; } public int getBalance() { - return accountData.getBalance(); + return (int) accountData.getBalance(); } private void updateBalance(int newBalance) { diff --git a/src/main/java/rocks/zipcode/atm/bank/AccountData.java b/src/main/java/rocks/zipcode/atm/bank/AccountData.java index 0255385..2979c86 100644 --- a/src/main/java/rocks/zipcode/atm/bank/AccountData.java +++ b/src/main/java/rocks/zipcode/atm/bank/AccountData.java @@ -9,9 +9,9 @@ public final class AccountData { private final String name; private final String email; - private final int balance; + private final double balance; - AccountData(int id, String name, String email, int balance) { + AccountData(int id, String name, String email, double balance) { this.id = id; this.name = name; this.email = email; @@ -30,7 +30,7 @@ public String getEmail() { return email; } - public int getBalance() { + public double getBalance() { return balance; } diff --git a/src/main/java/rocks/zipcode/atm/bank/Bank.java b/src/main/java/rocks/zipcode/atm/bank/Bank.java index 5bd5bbf..0e0d12c 100644 --- a/src/main/java/rocks/zipcode/atm/bank/Bank.java +++ b/src/main/java/rocks/zipcode/atm/bank/Bank.java @@ -14,11 +14,19 @@ public class Bank { public Bank() { accounts.put(1000, new BasicAccount(new AccountData( - 1000, "Example 1", "example1@gmail.com", 500 + 1000, "Action Jackson", "blamblam1@gmail.com", 10 ))); accounts.put(2000, new PremiumAccount(new AccountData( - 2000, "Example 2", "example2@gmail.com", 200 + 2000, "Spawn", "spawny3@gmail.com", 20000 + ))); + + accounts.put(3000, new PremiumAccount(new AccountData( + 3000, "David", "Nice@gmail.com", 1000000 + ))); + + accounts.put(4000, new PremiumAccount(new AccountData( + 4000, "Simba", "woofwoof@gmail.com", 300000 ))); } @@ -28,7 +36,7 @@ public ActionResult getAccountById(int id) { if (account != null) { return ActionResult.success(account.getAccountData()); } else { - return ActionResult.fail("No account with id: " + id + "\nTry account 1000 or 2000"); + return ActionResult.fail("No account with id: " + id + "\nEnter your account ID and then click submit"); } } From 62aa76eda56c17f540686a5c67d06c07ebd43728 Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Sat, 13 Nov 2021 19:30:29 -0500 Subject: [PATCH 2/5] somesome --- src/main/java/rocks/zipcode/atm/bank/Account.java | 6 +++--- src/main/java/rocks/zipcode/atm/bank/AccountData.java | 6 +++--- src/main/java/rocks/zipcode/atm/bank/Bank.java | 2 +- src/main/java/rocks/zipcode/atm/bank/PremiumAccount.java | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/rocks/zipcode/atm/bank/Account.java b/src/main/java/rocks/zipcode/atm/bank/Account.java index f6b07b9..b46103e 100644 --- a/src/main/java/rocks/zipcode/atm/bank/Account.java +++ b/src/main/java/rocks/zipcode/atm/bank/Account.java @@ -19,7 +19,7 @@ public void deposit(int amount) { accountData = new AccountData (accountData.getId(), accountData.getName(), accountData.getEmail(), accountData.getBalance() + amount); } - public boolean withdraw(int amount) { + public boolean withdraw(float amount) { if (canWithdraw(amount)) { updateBalance((int) (getBalance() - amount)); return true; @@ -28,7 +28,7 @@ public boolean withdraw(int amount) { } } - protected boolean canWithdraw(int amount) { + protected boolean canWithdraw(float amount) { return accountData.getBalance() >= amount; } @@ -36,7 +36,7 @@ public int getBalance() { return (int) accountData.getBalance(); } - private void updateBalance(int newBalance) { + private void updateBalance(float newBalance) { accountData = new AccountData(accountData.getId(), accountData.getName(), accountData.getEmail(), newBalance); } diff --git a/src/main/java/rocks/zipcode/atm/bank/AccountData.java b/src/main/java/rocks/zipcode/atm/bank/AccountData.java index 2979c86..f5b973c 100644 --- a/src/main/java/rocks/zipcode/atm/bank/AccountData.java +++ b/src/main/java/rocks/zipcode/atm/bank/AccountData.java @@ -9,9 +9,9 @@ public final class AccountData { private final String name; private final String email; - private final double balance; + private final float balance; - AccountData(int id, String name, String email, double balance) { + AccountData(int id, String name, String email, float balance) { this.id = id; this.name = name; this.email = email; @@ -30,7 +30,7 @@ public String getEmail() { return email; } - public double getBalance() { + public float getBalance() { return balance; } diff --git a/src/main/java/rocks/zipcode/atm/bank/Bank.java b/src/main/java/rocks/zipcode/atm/bank/Bank.java index 0e0d12c..368b3c6 100644 --- a/src/main/java/rocks/zipcode/atm/bank/Bank.java +++ b/src/main/java/rocks/zipcode/atm/bank/Bank.java @@ -14,7 +14,7 @@ public class Bank { public Bank() { accounts.put(1000, new BasicAccount(new AccountData( - 1000, "Action Jackson", "blamblam1@gmail.com", 10 + 1000, "Action Jackson", "blamblam1@gmail.com", 300000 ))); accounts.put(2000, new PremiumAccount(new AccountData( diff --git a/src/main/java/rocks/zipcode/atm/bank/PremiumAccount.java b/src/main/java/rocks/zipcode/atm/bank/PremiumAccount.java index e4c9616..cfbe47c 100644 --- a/src/main/java/rocks/zipcode/atm/bank/PremiumAccount.java +++ b/src/main/java/rocks/zipcode/atm/bank/PremiumAccount.java @@ -12,7 +12,7 @@ public PremiumAccount(AccountData accountData) { } @Override - protected boolean canWithdraw(int amount) { + protected boolean canWithdraw(float amount) { return getBalance() + OVERDRAFT_LIMIT >= amount; } } From d8852ebd5a6b4121059f7f8bdb75489002456fcb Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Mon, 15 Nov 2021 00:00:43 -0500 Subject: [PATCH 3/5] floats, login, and negative inputs fixed --- .../java/rocks/zipcode/atm/CashMachine.java | 15 ++++++- .../rocks/zipcode/atm/CashMachineApp.java | 44 +++++++++++++------ .../java/rocks/zipcode/atm/bank/Account.java | 6 ++- .../java/rocks/zipcode/atm/bank/Bank.java | 17 +++---- .../zipcode/atm/bank/PremiumAccount.java | 2 +- 5 files changed, 58 insertions(+), 26 deletions(-) diff --git a/src/main/java/rocks/zipcode/atm/CashMachine.java b/src/main/java/rocks/zipcode/atm/CashMachine.java index f7c8f3a..03aecb9 100644 --- a/src/main/java/rocks/zipcode/atm/CashMachine.java +++ b/src/main/java/rocks/zipcode/atm/CashMachine.java @@ -35,7 +35,18 @@ public void login(int id) { ); } - public void deposit(int amount) { + public boolean userIsLoggedIn() { + //if account data is = null; means user is not logged in = false + //if account data is valid; true + if (accountData == null) { + return false; + } else { + return true; + } + } + + + public void deposit(float amount) { if (accountData != null) { tryCall( () -> bank.deposit(accountData, amount), @@ -44,7 +55,7 @@ public void deposit(int amount) { } } - public void withdraw(int amount) { + public void withdraw(float amount) { if (accountData != null) { tryCall( () -> bank.withdraw(accountData, amount), diff --git a/src/main/java/rocks/zipcode/atm/CashMachineApp.java b/src/main/java/rocks/zipcode/atm/CashMachineApp.java index 3dbfa23..2abb18c 100644 --- a/src/main/java/rocks/zipcode/atm/CashMachineApp.java +++ b/src/main/java/rocks/zipcode/atm/CashMachineApp.java @@ -17,22 +17,28 @@ /** * @author ZipCodeWilmington */ + +//TODO + //not be able to withdraw or deposit negative numbers + //create a menu that shows all accounts available + //Login screen separate from the main menu + + public class CashMachineApp extends Application { private TextField field = new TextField(); private TextField txtLogIn = new TextField(); private TextField txtDeposit = new TextField(); private TextField txtWithDraw = new TextField(); + private TextField txtSeeAccounts = new TextField(); private CashMachine cashMachine = new CashMachine(new Bank()); - - - private Parent createContent() { Button btnSubmit = new Button("Log-in"); + Button btnSeeAccounts = new Button("Get Accounts"); Button btnDeposit = new Button("Deposit"); Button btnWithdraw = new Button("Withdraw"); Button btnExit = new Button("Log-out"); @@ -40,6 +46,7 @@ private Parent createContent() { btnWithdraw.setDisable(true); btnDeposit.setDisable(true); btnExit.setDisable(true); + btnSeeAccounts.setDisable(true); VBox vbox = new VBox(20); //spacing between the buttons @@ -51,22 +58,29 @@ private Parent createContent() { btnSubmit.setOnAction(e -> { int id = Integer.parseInt(txtLogIn.getText()); cashMachine.login(id); + if(cashMachine.userIsLoggedIn()) { //reference the method in the cash machine app with the boolean condition + btnExit.setDisable(false); + btnDeposit.setDisable(false); + btnWithdraw.setDisable(false); + btnSubmit.setDisable(true); + } areaInfo.setText(cashMachine.toString()); - btnExit.setDisable(false); - btnDeposit.setDisable(false); - btnWithdraw.setDisable(false); - btnSubmit.setDisable(true); clearTxtBoxes(); }); - btnDeposit.setOnAction(e -> { - int amount = Integer.parseInt(txtDeposit.getText()); - cashMachine.deposit(amount); - areaInfo.setText(cashMachine.toString()); + Float amount = Float.parseFloat(txtDeposit.getText()); + + if(amount < 0){ + areaInfo.setText("This is not a valid number!"); + } + else { + cashMachine.deposit(amount); + areaInfo.setText(cashMachine.toString()); + } clearTxtBoxes(); }); @@ -74,11 +88,14 @@ private Parent createContent() { btnWithdraw.setOnAction(e -> { - int amount = Integer.parseInt(txtWithDraw.getText()); + Float amount = Float.parseFloat(txtWithDraw.getText()); //changed the Integer.parseInt -> Float cashMachine.withdraw(amount); if(cashMachine.getMsg() != "") { areaInfo.setText(cashMachine.getMsg()); } + if(amount < 0){ + areaInfo.setText("This is not a valid number!"); + } else{ areaInfo.setText(cashMachine.toString()); } @@ -100,7 +117,6 @@ private Parent createContent() { - // FlowPane flowpane = new FlowPane(); // flowpane.getChildren().add(btnSubmit); // flowpane.getChildren().add(btnDeposit); @@ -146,4 +162,6 @@ public void clearTxtBoxes(){ } + + } diff --git a/src/main/java/rocks/zipcode/atm/bank/Account.java b/src/main/java/rocks/zipcode/atm/bank/Account.java index b46103e..b2e08ae 100644 --- a/src/main/java/rocks/zipcode/atm/bank/Account.java +++ b/src/main/java/rocks/zipcode/atm/bank/Account.java @@ -3,6 +3,8 @@ /** * @author ZipCodeWilmington */ + + public abstract class Account { private AccountData accountData; @@ -15,13 +17,13 @@ public AccountData getAccountData() { return accountData; } - public void deposit(int amount) { + public void deposit(float amount) { accountData = new AccountData (accountData.getId(), accountData.getName(), accountData.getEmail(), accountData.getBalance() + amount); } public boolean withdraw(float amount) { if (canWithdraw(amount)) { - updateBalance((int) (getBalance() - amount)); + updateBalance(((getBalance() - amount))); return true; } else { return false; diff --git a/src/main/java/rocks/zipcode/atm/bank/Bank.java b/src/main/java/rocks/zipcode/atm/bank/Bank.java index 368b3c6..1dacd14 100644 --- a/src/main/java/rocks/zipcode/atm/bank/Bank.java +++ b/src/main/java/rocks/zipcode/atm/bank/Bank.java @@ -14,19 +14,19 @@ public class Bank { public Bank() { accounts.put(1000, new BasicAccount(new AccountData( - 1000, "Action Jackson", "blamblam1@gmail.com", 300000 + 1000, "Action Jackson", "blamblam1@gmail.com", 300000f ))); accounts.put(2000, new PremiumAccount(new AccountData( - 2000, "Spawn", "spawny3@gmail.com", 20000 + 2000, "Spawn", "spawny3@gmail.com", 200000f ))); accounts.put(3000, new PremiumAccount(new AccountData( - 3000, "David", "Nice@gmail.com", 1000000 + 3000, "David", "Nice@gmail.com", 1000000f ))); accounts.put(4000, new PremiumAccount(new AccountData( - 4000, "Simba", "woofwoof@gmail.com", 300000 + 4000, "Simba", "woofwoof@gmail.com", 300000f ))); } @@ -35,26 +35,27 @@ public ActionResult getAccountById(int id) { if (account != null) { return ActionResult.success(account.getAccountData()); - } else { + } + else { return ActionResult.fail("No account with id: " + id + "\nEnter your account ID and then click submit"); } } - public ActionResult deposit(AccountData accountData, int amount) { + public ActionResult deposit(AccountData accountData, float amount) { Account account = accounts.get(accountData.getId()); account.deposit(amount); return ActionResult.success(account.getAccountData()); } - public ActionResult withdraw(AccountData accountData, int amount) { + public ActionResult withdraw(AccountData accountData, float amount) { Account account = accounts.get(accountData.getId()); boolean ok = account.withdraw(amount); if (ok) { return ActionResult.success(account.getAccountData()); } else { - return ActionResult.fail("Withdraw failed: " + amount + ". Account has: " + account.getBalance()); + return ActionResult.fail("Cannot Withdraw Amount: " + amount + ". Account has: " + account.getBalance()); } } } diff --git a/src/main/java/rocks/zipcode/atm/bank/PremiumAccount.java b/src/main/java/rocks/zipcode/atm/bank/PremiumAccount.java index cfbe47c..b265d3c 100644 --- a/src/main/java/rocks/zipcode/atm/bank/PremiumAccount.java +++ b/src/main/java/rocks/zipcode/atm/bank/PremiumAccount.java @@ -5,7 +5,7 @@ */ public class PremiumAccount extends Account { - private static final int OVERDRAFT_LIMIT = 100; + private static final float OVERDRAFT_LIMIT = 100f; public PremiumAccount(AccountData accountData) { super(accountData); From c9dc1d73bf10c736303963abffbd686a630becbe Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Mon, 15 Nov 2021 08:56:16 -0500 Subject: [PATCH 4/5] changesmade --- src/main/java/rocks/zipcode/atm/CashMachine.java | 5 +++-- src/main/java/rocks/zipcode/atm/CashMachineApp.java | 12 +++++------- src/main/java/rocks/zipcode/atm/bank/Bank.java | 2 +- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/main/java/rocks/zipcode/atm/CashMachine.java b/src/main/java/rocks/zipcode/atm/CashMachine.java index 03aecb9..0f1de2c 100644 --- a/src/main/java/rocks/zipcode/atm/CashMachine.java +++ b/src/main/java/rocks/zipcode/atm/CashMachine.java @@ -23,7 +23,7 @@ public CashMachine(Bank bank) { accountData = data; }; - public String getMsg(){ + public String getMsg(){ //method to return the error msg on line 92 return msg; } @@ -35,7 +35,7 @@ public void login(int id) { ); } - public boolean userIsLoggedIn() { + public boolean userIsLoggedIn() { //method to validate if the log-in id is valid //if account data is = null; means user is not logged in = false //if account data is valid; true if (accountData == null) { @@ -76,6 +76,7 @@ public String toString() { return accountData != null ? accountData.toString() : "Log-in with your account ID."; } + private void tryCall(Supplier > action, Consumer postAction) { msg = ""; diff --git a/src/main/java/rocks/zipcode/atm/CashMachineApp.java b/src/main/java/rocks/zipcode/atm/CashMachineApp.java index 2abb18c..d49096a 100644 --- a/src/main/java/rocks/zipcode/atm/CashMachineApp.java +++ b/src/main/java/rocks/zipcode/atm/CashMachineApp.java @@ -19,7 +19,6 @@ */ //TODO - //not be able to withdraw or deposit negative numbers //create a menu that shows all accounts available //Login screen separate from the main menu @@ -30,7 +29,7 @@ public class CashMachineApp extends Application { private TextField txtLogIn = new TextField(); private TextField txtDeposit = new TextField(); private TextField txtWithDraw = new TextField(); - private TextField txtSeeAccounts = new TextField(); + private TextField txtSeeAccounts = new TextField(); //creation of a see all accounts? private CashMachine cashMachine = new CashMachine(new Bank()); @@ -70,11 +69,10 @@ private Parent createContent() { }); - btnDeposit.setOnAction(e -> { - Float amount = Float.parseFloat(txtDeposit.getText()); + Float amount = Float.parseFloat(txtDeposit.getText()); //changed the Integer.parseInt -> Float.parseFloat - if(amount < 0){ + if(amount < 0){ //if statement to validate negative numbers input areaInfo.setText("This is not a valid number!"); } else { @@ -88,12 +86,12 @@ private Parent createContent() { btnWithdraw.setOnAction(e -> { - Float amount = Float.parseFloat(txtWithDraw.getText()); //changed the Integer.parseInt -> Float + Float amount = Float.parseFloat(txtWithDraw.getText()); //changed the Integer.parseInt -> Float.parseFloat; to change the deposit cashMachine.withdraw(amount); if(cashMachine.getMsg() != "") { areaInfo.setText(cashMachine.getMsg()); } - if(amount < 0){ + if(amount < 0){ //added this to show invalid number for negatives - but it stopped showing error when trying to overdraft??! areaInfo.setText("This is not a valid number!"); } else{ diff --git a/src/main/java/rocks/zipcode/atm/bank/Bank.java b/src/main/java/rocks/zipcode/atm/bank/Bank.java index 1dacd14..5538963 100644 --- a/src/main/java/rocks/zipcode/atm/bank/Bank.java +++ b/src/main/java/rocks/zipcode/atm/bank/Bank.java @@ -10,7 +10,7 @@ */ public class Bank { - private Map accounts = new HashMap<>(); + private Map accounts = new HashMap<>(); //use to create a collection to show all the accounts public Bank() { accounts.put(1000, new BasicAccount(new AccountData( From c67b20e601b7c9c80e528bd7273022960cb2dbde Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Tue, 16 Nov 2021 20:30:32 -0500 Subject: [PATCH 5/5] fixed the -negative input message' --- src/main/java/rocks/zipcode/atm/CashMachine.java | 4 ++-- src/main/java/rocks/zipcode/atm/CashMachineApp.java | 10 +++++++--- src/main/java/rocks/zipcode/atm/bank/Account.java | 4 ++-- src/main/java/rocks/zipcode/atm/bank/Bank.java | 4 ++-- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main/java/rocks/zipcode/atm/CashMachine.java b/src/main/java/rocks/zipcode/atm/CashMachine.java index f7c8f3a..ea8e88f 100644 --- a/src/main/java/rocks/zipcode/atm/CashMachine.java +++ b/src/main/java/rocks/zipcode/atm/CashMachine.java @@ -35,7 +35,7 @@ public void login(int id) { ); } - public void deposit(int amount) { + public void deposit(Float amount) { if (accountData != null) { tryCall( () -> bank.deposit(accountData, amount), @@ -44,7 +44,7 @@ public void deposit(int amount) { } } - public void withdraw(int amount) { + public void withdraw(Float amount) { if (accountData != null) { tryCall( () -> bank.withdraw(accountData, amount), diff --git a/src/main/java/rocks/zipcode/atm/CashMachineApp.java b/src/main/java/rocks/zipcode/atm/CashMachineApp.java index 3dbfa23..a73e9f5 100644 --- a/src/main/java/rocks/zipcode/atm/CashMachineApp.java +++ b/src/main/java/rocks/zipcode/atm/CashMachineApp.java @@ -64,9 +64,12 @@ private Parent createContent() { btnDeposit.setOnAction(e -> { - int amount = Integer.parseInt(txtDeposit.getText()); + Float amount = Float.parseFloat(txtDeposit.getText()); cashMachine.deposit(amount); areaInfo.setText(cashMachine.toString()); + if(amount < 0) { + areaInfo.setText("this is not a valid number!"); + } clearTxtBoxes(); }); @@ -74,13 +77,14 @@ private Parent createContent() { btnWithdraw.setOnAction(e -> { - int amount = Integer.parseInt(txtWithDraw.getText()); + Float amount = Float.parseFloat(txtWithDraw.getText()); cashMachine.withdraw(amount); if(cashMachine.getMsg() != "") { areaInfo.setText(cashMachine.getMsg()); + } else{ - areaInfo.setText(cashMachine.toString()); + areaInfo.setText( "This is not a valid number!"); } clearTxtBoxes(); diff --git a/src/main/java/rocks/zipcode/atm/bank/Account.java b/src/main/java/rocks/zipcode/atm/bank/Account.java index b46103e..d3de7b7 100644 --- a/src/main/java/rocks/zipcode/atm/bank/Account.java +++ b/src/main/java/rocks/zipcode/atm/bank/Account.java @@ -15,11 +15,11 @@ public AccountData getAccountData() { return accountData; } - public void deposit(int amount) { + public void deposit(Float amount) { accountData = new AccountData (accountData.getId(), accountData.getName(), accountData.getEmail(), accountData.getBalance() + amount); } - public boolean withdraw(float amount) { + public boolean withdraw(Float amount) { if (canWithdraw(amount)) { updateBalance((int) (getBalance() - amount)); return true; diff --git a/src/main/java/rocks/zipcode/atm/bank/Bank.java b/src/main/java/rocks/zipcode/atm/bank/Bank.java index 368b3c6..93a12b2 100644 --- a/src/main/java/rocks/zipcode/atm/bank/Bank.java +++ b/src/main/java/rocks/zipcode/atm/bank/Bank.java @@ -40,14 +40,14 @@ public ActionResult getAccountById(int id) { } } - public ActionResult deposit(AccountData accountData, int amount) { + public ActionResult deposit(AccountData accountData, Float amount) { Account account = accounts.get(accountData.getId()); account.deposit(amount); return ActionResult.success(account.getAccountData()); } - public ActionResult withdraw(AccountData accountData, int amount) { + public ActionResult withdraw(AccountData accountData, Float amount) { Account account = accounts.get(accountData.getId()); boolean ok = account.withdraw(amount);