Question: I need help solving the simple coding TODO suggestions. I have attached a picture of the output after the changes are made.( This is for
I need help solving the simple coding TODO suggestions. I have attached a picture of the output after the changes are made.( This is for main.java import banks.BankOfAmerica; import banks.PNC; import cards.MasterCard; import cards.Visa; import lionpay.LionPay; import java.util.Scanner; public class Main { private static final Scanner keyboard = new Scanner(System.in); public static void main(String[] args) { // TODO 05 - Declare as CreditCard type Visa visa = new Visa(); // TODO 06 - Call the right method visa.chargeCreditCard(123.45); // TODO 07 - Declare as CreditCard type MasterCard masterCard = new MasterCard(); // TODO 08 - Call the right method masterCard.chargeCard(135.79); // TODO 09 - Declare as IBank type PNC pnc = new PNC(); // TODO 10 - Call the right method pnc.deposit(100); // TODO 11 - Declare as IBank type BankOfAmerica bankOfAmerica = new BankOfAmerica(); // TODO 12 - Call the right method bankOfAmerica.putMoneyIn(200); LionPay lionPay = new LionPay(); System.out.println("Choose card"); System.out.println("1) Visa"); System.out.println("2) MasterCard"); System.out.print("Enter choice: "); String userInput = keyboard.nextLine(); int cardChoice = Integer.parseInt(userInput); System.out.println("Choose bank"); System.out.println("1) PNC"); System.out.println("2) Bank Of America"); System.out.print("Enter choice: "); userInput = keyboard.nextLine(); int bankChoice = Integer.parseInt(userInput); System.out.print("Card Balance: "); // TODO 13 - Delete this switch statement switch (cardChoice) { case 1: System.out.println(visa.getBal()); break; case 2: System.out.println(masterCard.balance()); break; } // TODO 14 - Uncomment this code // CreditCard chosenCard = null; // switch (cardChoice) { // case 1: // chosenCard = visa; // break; // case 2: // chosenCard = masterCard; // break; // } // System.out.println(chosenCard.getBalance()); System.out.print("Bank Balance: "); // TODO 15 - Delete this switch statement switch (bankChoice) { case 1: System.out.println(pnc.getBal()); break; case 2: System.out.println(bankOfAmerica.getCurrentBalance()); break; } //TODO 16 - Uncomment this code // IBank chosenBank = null; // switch (bankChoice) { // case 1: // chosenBank = pnc; // break; // case 2: // chosenBank = bankOfAmerica; // break; // } // System.out.println(chosenBank.getBalance()); System.out.print("Enter amount to pay to card: "); userInput = keyboard.nextLine(); double payment = Double.parseDouble(userInput); // TODO 17 - Remove all 9 lines of this entire if-else block if (cardChoice == 1 && bankChoice == 1) { lionPay.payVisaFromPnc(visa, pnc, payment); } else if (cardChoice == 1 && bankChoice == 2) { lionPay.payVisaFromBankOfAmerica(visa, bankOfAmerica, payment); } else if (cardChoice == 2 && bankChoice == 1) { lionPay.payMasterCardFromPnc(masterCard, pnc, payment); } else if (cardChoice == 2 && bankChoice == 2) { lionPay.payMasterCardFromBankOfAmerica(masterCard, bankOfAmerica, payment); } // TODO 22 - Uncomment this code // lionPay.payCardFromBank(chosenCard, chosenBank, payment); System.out.print("New Card Balance: "); // TODO 23 - Delete this switch statement switch (cardChoice) { case 1: System.out.println(visa.getBal()); break; case 2: System.out.println(masterCard.balance()); break; } // TODO 24 - Uncomment this line // System.out.println(chosenCard.getBalance()); System.out.print("New Bank Balance: "); // TODO 25 - Delete this switch statement switch (bankChoice) { case 1: System.out.println(pnc.getBal()); break; case 2: System.out.println(bankOfAmerica.getCurrentBalance()); break; } // TODO 26 - Uncomment this line // System.out.println(chosenBank.getBalance()); } }This is for BankOfAmerica.java
package banks; // TODO 01 - Modify this class to implement IBank interface // - MODIFY THE EXISTING METHODS TO FULFILL THE INTERFACE CONTRACT // - DO NOT ADD NEW METHODS // - Remember to use @Override when appropriate public class BankOfAmerica { private double balance; public String putMoneyIn(double amount) { balance += amount; return "success"; } public String withdraw(double amount) { if (amount > balance) { return "err"; // insufficient funds } balance -= amount; return "success"; } public double getCurrentBalance() { return balance; } } This is for PNC.java
package banks; // TODO 02 - Modify this class to implement IBank interface // - MODIFY THE EXISTING METHODS TO FULFILL THE INTERFACE CONTRACT // - DO NOT ADD NEW METHODS // - Remember to use @Override when appropriate public class PNC { private double remainingBalance; public int deposit(double amount) { if (amount remainingBalance) { return -1; // not enough funds } remainingBalance -= amount; return 0; // success } public double getBal() { return remainingBalance; } }
This is for MasterCard.java
package cards; // TODO 03 - Modify this class to extend the CreditCard abstract class // - MODIFY THE EXISTING METHODS TO FULFILL THE INTERFACE CONTRACT // - DO NOT ADD NEW METHODS // - REMOVE ANY METHODS THAT DO NOT NEED TO BE OVERRIDDEN // - REMOVE ANY FIELDS THAT ARE IN THE PARENT CLASS // - Remember to use @Override when appropriate public class MasterCard { private double limit = 1000; private double balance; public String chargeCard(double chargeAmount) { // Allow to go over limit by 20% if ((balance + chargeAmount) > (limit * 1.2)) { return "fail"; // limit exceeded } else { balance += chargeAmount; } return "good"; // Successful transaction } public double balance() { return balance; } public void makePayment(double payment) { balance -= payment; } }
This is for Visa.java
package cards; // TODO 04 - Modify this class to extend the CreditCard abstract class // - MODIFY THE EXISTING METHODS TO FULFILL THE INTERFACE CONTRACT // - DO NOT ADD NEW METHODS // - REMOVE ANY METHODS THAT DO NOT NEED TO BE OVERRIDDEN // - REMOVE ANY FIELDS THAT ARE IN THE PARENT CLASS // - Remember to use @Override when appropriate public class Visa { private double creditLimit = 1000; private double bal; public int chargeCreditCard(double chargeAmount) { if ((getBal() + chargeAmount) > creditLimit) { return -1; // insufficient funds } else { bal = bal + chargeAmount; } return 0; // Successful transaction } public double getBal() { return bal; } public void payTowardsBalance(double payment) { bal = bal - payment; } }
This is for LionPay.java
package lionpay; import banks.BankOfAmerica; import banks.PNC; import cards.MasterCard; import cards.Visa; public class LionPay { // TODO 18 - Delete this method public void payMasterCardFromPnc(MasterCard card, PNC bank, double payment) { int status; if ((status = bank.takeMoneyOut(payment)) == 0) { card.makePayment(payment); } else { System.out.println("Error: " + status); } } // TODO 19 - Delete this method public void payMasterCardFromBankOfAmerica(MasterCard card, BankOfAmerica bank, double payment) { String status; if ((status = bank.withdraw(payment)) == "success") { card.makePayment(payment); } else { System.out.println("Error: " + status); } } // TODO 20 - Delete this method public void payVisaFromPnc(Visa card, PNC bank, double payment) { int status; if ((status = bank.takeMoneyOut(payment)) == 0) { card.payTowardsBalance(payment); } else { System.out.println("Error: " + status); } } // TODO 21 - Delete this method public void payVisaFromBankOfAmerica(Visa card, BankOfAmerica bank, double payment) { String status; if ((status = bank.withdraw(payment)) == "success") { card.payTowardsBalance(payment); } else { System.out.println("Error: " + status); } } public void payCardFromBank(CreditCard card, IBank bank, double payment) { BankActionStatus status; if ((status = bank.withdraw(payment)) == BankActionStatus.SUCCESS) { card.payBill(payment); } else { System.out.println("Error: " + status); } } } 
The output will be a little more descriptive with the error messages given to the user Choose card 1) Visa 2) MasterCard Enter choice: 1 Choose bank 1) PNC 2) Bank Of America Enter choice: 1 Card Balance: 123.45 Bank Balance: 100.0 Enter amount to pay: 101 Error: INSUFFICIENT_FUNDS New Card Balance: 123.45 New Bank Balance: 100.0 Process finished with exit code 0 Choose card 1) Visa 2) MasterCard Enter choice: 1 Choose bank 1) PNC 2) Bank Of America Enter choice: 1 Card Balance: 123.45 Bank Balance: 100.0 Enter amount to pay: 99 New Card Balance: 24.450000000000003 New Bank Balance: 1.0 Process finished with exit code 0 Choose card 1) Visa 2) MasterCard Enter choice: 2 Choose bank 1) PNC 2) Bank Of America Enter choice: 2 Card Balance: 135.79 Bank Balance: 200.0 Enter amount to pay: 200 New Card Balance: -64.21000000000001 New Bank Balance: 0.0 Process finished with exit code 0 The output will be a little more descriptive with the error messages given to the user Choose card 1) Visa 2) MasterCard Enter choice: 1 Choose bank 1) PNC 2) Bank Of America Enter choice: 1 Card Balance: 123.45 Bank Balance: 100.0 Enter amount to pay: 101 Error: INSUFFICIENT_FUNDS New Card Balance: 123.45 New Bank Balance: 100.0 Process finished with exit code 0 Choose card 1) Visa 2) MasterCard Enter choice: 1 Choose bank 1) PNC 2) Bank Of America Enter choice: 1 Card Balance: 123.45 Bank Balance: 100.0 Enter amount to pay: 99 New Card Balance: 24.450000000000003 New Bank Balance: 1.0 Process finished with exit code 0 Choose card 1) Visa 2) MasterCard Enter choice: 2 Choose bank 1) PNC 2) Bank Of America Enter choice: 2 Card Balance: 135.79 Bank Balance: 200.0 Enter amount to pay: 200 New Card Balance: -64.21000000000001 New Bank Balance: 0.0 Process finished with exit code 0
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
