Question

In: Computer Science

please, solve this problem.: implementing with java language create a bank account management system according to...

please, solve this problem.:

implementing with java language

create a bank account management system according to the following specifications:

BankAccount Abstract Class contains the following constructors and methods:

BankAccount(name, balance): a constructor that creates a new account with a name and starting balance.

getBalance(): a method that returns the balance of a specific account.

abstract deposit(amount): abstract method to be implemented in both Checking and SavingAccount classes.

abstract withdraw(amount): abstract method to be implemented in both Checking and SavingAccount classes.

messageTo Client (message): used to print a specific message to a client.

toString(): a method for printing accounts information.

CheckingAccount Class: A class that inherits from the Abstract Class BankAccount and implements both deposit () and withdraw ().

Deposit process in checking account has some constrains. Client can deposit any amount using checks and limit of $10,000.00 of cash deposit.

Client can withdraw any amount he wants.

SavingAccount Class: A class that inherits from the Abstract Class BankAccount and implements both deposit () and withdraw ().

A client can deposit any amount using checks and a limit of $5,000.00 of cash deposit. A 5% interest should be calculated on the total.

Client can only withdraw 20% of the total balance every 3 months.

Use interfaces for both checkingAccount and savingAccount classes.

BankAccountDriver class: this class is to test your code. The test should be done by creating an array of type BankAccount that stores different bank accounts types for different clients and perform some processing by calling the implemented methods on these accounts.

Solutions

Expert Solution

/*********************************BankAccount.java*********************************/

package bankaccount;

public abstract class BankAccount {

   /*
   * private data field
   */
   private String name;
   private double balance;

   /**
   *
   * @param name
   * @param balance
   */
   public BankAccount(String name, double balance) {
       super();
       this.name = name;
       this.balance = balance;
   }

   // getter and setter for balance
   public double getBalance() {
       return balance;
   }

   public void setBalance(double balance) {
       this.balance = balance;
   }

   public abstract void deposit(double amount);

   public abstract void withdraw(double amount);

   public void messageToClient() {

   }

   @Override
   public String toString() {
       return "BankAccount [name=" + name + ", balance=" + balance + "]";
   }

}
/****************************CheckingAccount.java****************************/

package bankaccount;

public class CheckingAccount extends BankAccount {

   /**
   *
   * @param name
   * @param balance
   */
   public CheckingAccount(String name, double balance) {
       super(name, balance);
   }

   @Override
   public void deposit(double amount) {

       if (amount <= 10000) {

           setBalance(getBalance() + amount);
       }
       else {
          
           System.out.println("You can only deposit 1000");
       }
   }

   @Override
   public void withdraw(double amount) {

       if (getBalance() > amount) {

           setBalance(getBalance() - amount);
       } else {

           System.out.println("Insufficient funds!");
       }
   }

}
/******************************SavingAccount.java**************************/

package bankaccount;

public class SavingAccount extends BankAccount {

   public SavingAccount(String name, double balance) {
       super(name, balance);

   }

   @Override
   public void deposit(double amount) {

       if (amount <= 5000) {

           setBalance(getBalance() + amount);
           double interest = getBalance() * .05;
           setBalance(getBalance() + interest);
       } else {

           System.out.println("Limit reached!");
       }

   }

   @Override
   public void withdraw(double amount) {

       if (amount < getBalance() * .2) {

           setBalance(getBalance() - amount);
       } else {

           System.out.println("You can't withdraw due to limit of saving account!");
       }
   }

}
/******************************BankAccountDriver.java***************************/

package bankaccount;

public class BankAccountDriver {

   public static void main(String[] args) {

       BankAccount[] bankAccounts = new BankAccount[3];
       // fill array with different accounts
       bankAccounts[0] = new CheckingAccount("Virat", 1000);
       bankAccounts[1] = new SavingAccount("Kohli", 2000);
       bankAccounts[2] = new CheckingAccount("MS", 3000);

       // do some operation on all account
       for (BankAccount bankAccount : bankAccounts) {

           bankAccount.deposit(5000);
           bankAccount.withdraw(1000);

       }

       // print information
       for (BankAccount bankAccount : bankAccounts) {

           System.out.println(bankAccount.toString());
       }
   }
}
/***************************output*******************************/

BankAccount [name=Virat, balance=5000.0]
BankAccount [name=Kohli, balance=6350.0]
BankAccount [name=MS, balance=7000.0]

Please let me know if you have any doubt or modify the answer, Thanks :)


Related Solutions

PROGRAMMING LANGUAGE : JAVA Problem specification. In this assignment, you will create a simulation for a...
PROGRAMMING LANGUAGE : JAVA Problem specification. In this assignment, you will create a simulation for a CPU scheduler. The number of CPU’s and the list of processes and their info will be read from a text file. The output, of your simulator will display the execution of the processes on the different available CPU’s. The simulator should also display: -   The given info of each process -   CPU utilization - The average wait time - Turnaround time for each process...
Please create a Hangman game in Java language. For this game a random word will be...
Please create a Hangman game in Java language. For this game a random word will be selected from the following list (abstract, cemetery, nurse, pharmacy, climbing). You should keep a running tab of the user’s score and display it on screen; the user begins with 100 points possible if they correctly guess the word without any mistakes. For every incorrect letter which is guessed, 10 points should be taken away from what is left of their total possible points. For...
In Java, please create a new Java application called "CheckString" (without the quotation marks) according to...
In Java, please create a new Java application called "CheckString" (without the quotation marks) according to the following guidelines. ** Each method below, including main, should handle (catch) any Exceptions that are thrown. ** ** If an Exception is thrown and caught, print the Exception's message to the command line. ** Write a complete Java method called checkWord that takes a String parameter called word, returns nothing, and is declared to throw an Exception of type Exception. In the method,...
Please use Java language in an easy way with comments! Thanks! Create a calculator that uses...
Please use Java language in an easy way with comments! Thanks! Create a calculator that uses an array of buttons for numbers from 0-9, the . for decimals, and for operators +, -, * ,/ and = as well as a JTextfield that displays the current value or the result. Use ActionListeners and LayoutManagers appropriately. The example below shows how to determine which button has been clicked. ActionListener actionListener = new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { System.out.println(actionEvent.getActionCommand()); }...
solve the follwing problem. Bank reconciliation and entries The cash account for Pala Medical Co. at...
solve the follwing problem. Bank reconciliation and entries The cash account for Pala Medical Co. at June 30, 20Y1, indicated a balance of $146,035. The bank statement indicated a balance of $181,965 on June 30, 20Y1. Comparing the bank statement and the accompanying canceled checks and memos with the records revealed the following reconciling items: A. Checks outstanding totaled $16,445. B. A deposit of $9,900, representing receipts of June 30, had been made too late to appear on the bank...
solve the follwing problem. Bank reconciliation and entries The cash account for Pala Medical Co. at...
solve the follwing problem. Bank reconciliation and entries The cash account for Pala Medical Co. at June 30, 20Y1, indicated a balance of $146,035. The bank statement indicated a balance of $181,965 on June 30, 20Y1. Comparing the bank statement and the accompanying canceled checks and memos with the records revealed the following reconciling items: A. Checks outstanding totaled $16,445. B. A deposit of $9,900, representing receipts of June 30, had been made too late to appear on the bank...
Please solve this problem with Python Language. P#2. A Pythagorean triplet is a set of three...
Please solve this problem with Python Language. P#2. A Pythagorean triplet is a set of three natural numbers, a < b < c, for which a2 + b2 = c2 . For example, 32 + 42 = 52. And a + b + c = 3 + 4 + 5 = 12. There exists exactly two Pythagorean triplet for which a + b + c = 300. Find a, b, c. Hints: Level-0 Algorithm: 1. Find the possible ranges of...
Using Java (Swing) language(please hard code)... Create a program that has a textfield for the user...
Using Java (Swing) language(please hard code)... Create a program that has a textfield for the user to type in a set of input. Below that textfield have the following controls to show string manipulations: (1) A button that will change the entire textfield’s current text to uppercase. (2) A button with its own textfield for a search value, that will tell the position the search value appears in the textfield above. (3) A button that reports the current number of...
JAVA LANGUAGE Required Tasks: In Eclipse, create a Java Project as CS-176L-Assign5. Create 3 Java Classes...
JAVA LANGUAGE Required Tasks: In Eclipse, create a Java Project as CS-176L-Assign5. Create 3 Java Classes each in its own file Student.java, StudentList.java, and Assign5Test.java. Copy your code from Assignment 4 into the Student.java and StudentList.java Classes. Assign5Test.java should contain the main method. Modify StudentList.java to use an ArrayList instead of an array. You can find the basics of ArrayList here: https://www.w3schools.com/java/java_arraylist.asp In StudentList.java, create two new public methods: The addStudent method should have one parameter of type Student and...
JAVA LANGUAGE Required Tasks: In Eclipse, create a Java Project as CS-176L-Assign4. Create 3 Java Classes...
JAVA LANGUAGE Required Tasks: In Eclipse, create a Java Project as CS-176L-Assign4. Create 3 Java Classes each in its own file Student.java, StudentList.java, and Assign4Test.java. Copy your code from Assignment 3 into the Student.java and StudentList.java. Assign4Test.java should contain the main method. In Student.java, add a new private variable of type Integer called graduationYear. In Student.java, create a new public setter method setGraduationYear to set the graduationYear. The method will have one parameter of type Integer. The method will set...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT