Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

The system must show the projected value of all accounts after a given number. w

ID: 3771724 • Letter: T

Question

The system must show the projected value of all accounts after a given number. with the option 6 , user can see the what would be the total balance including interest

Now, option 6 show the date but not the balance after interest included !!

---------------------------------------------------------------

package bankapp;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.InputMismatchException;
import java.util.Scanner;
import java.util.Calendar;

public class BankApp {


   public static void main(String[] args)

   {

       //To maintain history
       HashMap> history= new HashMap>();
    
    
       Scanner s = new Scanner(System.in);

       // create a calendar
       Calendar cal = Calendar.getInstance();

       Bank myBank = new Bank();

       int month = 0, day = 0;

       int user_choice = 2;
       String hstr = null;

       do {
           // display menu to user

           // ask user for his chice and validate it ( make sure it is between
           // 1 and 7)

           System.out.println("         WELCOME TO YOUR BANK");
           System.out.println(" LET'S START WITH OPENING NEW ACCOUNT, ");
           System.out.println(" Today is " + cal.getTime());
           System.out.println(" --------------------------------------");
           System.out.println();
           System.out.println("1) Open a new bank account");
           System.out.println("2) Deposit to a bank account");
           System.out.println("3) Withdraw bank account");
           System.out.println("4) Print short account information");
           System.out
                   .println("5) Print the detailed account information including last transaction");
           System.out.println("6) To see your Balance after 60 days ");
           System.out.println("7) Quit");
           System.out.println();
           System.out.println(" Enter choice [1-7]: ");

           user_choice = s.nextInt();
           try {

               switch (user_choice)

               {

               case 1:

                   System.out.println("Enter a customer name");

                   ;
                   String cn = s.next();

                   System.out.println(" Enter an opening balance");

                   double d = s.nextDouble();

                   System.out
                           .println(" (1)Saving account. (2) Checking account.(3) Extended Saving account.");

                   int t = s.nextInt();

                   System.out
                           .println(" Congragulation !!   You have created a New account ");
                
                   int accNo = myBank.openNewAccount(cn, d, t);
                   System.out.println("     YOUR NEW ACCOUNT NUMBER IS : "
                           +accNo );
                
                   Date time = cal.getTime();
                   System.out
                           .println("The day of Opening new account is today : "
                                   + time);
                   System.out.println("");
                   System.out.println("");
                
                   //Adding history
                   hstr = time.toString()+" # New Account Created for "+cn+", Account type: "+(t == 1 ?
                           "Saving account" : (t == 2 ? "Checking account" : "Extended Saving account") );
                   BankApp.add(history, accNo, hstr);
                   break;
                
                

               case 2:

                   System.out.println(" Enter an ACCOUNT number");

                   int an = s.nextInt();

                   System.out.println(" Enter a DEPOSIT amount ");

                   double da = s.nextDouble();

                   myBank.depositTo(an, da);

                   System.out.println("Today : " + cal.getTime());

                   System.out
                           .println("------------------------------------------------");
                
                   //Adding history
                   hstr = cal.getTime().toString()+" # Amount Depoistied: "+da;
                   BankApp.add(history, an, hstr);
                

                   break;

               case 3:

                   System.out.println(" Enter an ACCOUNT number");

                   int acn = s.nextInt();

                   System.out.println(" Enter a WITHDRAW amount ");

                   double wa = s.nextDouble();

                   myBank.withdrawFrom(acn, wa);
                   System.out.println("Today : " + cal.getTime());

                   System.out
                           .println("------------------------------------------------");
                   //Adding history
                   hstr = cal.getTime().toString()+" # Amount Withdrawn: "+wa;
                   BankApp.add(history, acn, hstr);
                

                   break;

               case 4:

                   System.out.println(" Enter an ACCOUNT number");

                   int anum = s.nextInt();

                   myBank.printTransactionInfo(anum);
                   System.out.println("Today : " + cal.getTime());

                   System.out
                           .println("------------------------------------------------");

                   //Adding history
                   hstr = cal.getTime().toString()+" # Printed short account information ";
                   BankApp.add(history, anum, hstr);
                   break;

               case 5:

                   System.out.println(" Enter an ACCOUNT number");

                   anum = s.nextInt();

                   myBank.printTransactionInfo(anum);
                   //detail information
                   BankApp.printHistory(history, anum);
                
                   System.out.println("Today : " + cal.getTime());

                   System.out.println("------------------------------------------------");

                   hstr = cal.getTime().toString()+" # Printed detailed account information ";
                   BankApp.add(history, anum, hstr);
                
                
                   break;
               case 6:
                   System.out.println(" Enter an ACCOUNT number");
                   anum = s.nextInt();
                   myBank.printTransactionInfo(anum);
                   System.out.println(" Your money after 60 days ");
                   cal.add(Calendar.DATE, 60);
                  BankApp.printHistory(history, anum);

                   System.out.println(" 60 days later " + cal.getTime());

                   hstr = cal.getTime().toString()+" # Checked balance after 60 days ";
                   BankApp.add(history, anum, hstr);
                
                
                   break;
               default:
                   System.out.println(" Good bye.");
                   System.out.println(" Come back again.");

                   return;
               }
           } catch (Exception exc) {
               System.out.println(" Error: " + exc.getMessage());
           }
       } while (user_choice != '6');

   }

   public static void add(HashMap> history, int accNo, String log)
   {
       ArrayList data = history.get(accNo);
       if(data == null)
            {
                data = new ArrayList();
            }
       data.add(log);
       history.put(accNo, data);
   }

   public static void printHistory(HashMap> history, int accNo)
   {
       ArrayList data = history.get(accNo);
       if(data != null) {
           for(int i = data.size()-1; i > 0; i--)
                {
                    System.out.println(data.get(i));
                }
                     } else
                            {
                                System.out.println("No history found");
                            }
   }
}

-------------------------------------------------

package bankapp;

import java.util.Date;

/**

* super class

*/

public class BankAccount extends Bank

{

  

   

   protected Date dayCreated;

   protected Date dateCreated;

   protected int accountNum;

protected String customerName;

   protected double balance;

   protected double[] transactions;

   protected String[] transactionsSummary;

   protected int numOfTransactions;

   protected static int noOfAccount = 0;

   protected String accountType;

   protected double projectAmount;

   int days;

   public BankAccount ()

   {

      dateCreated = new Date();

   }

   public String getAccountInfo() {

       return "Account number: " + accountNum + " Customer Name: "

               + customerName + " Balance:" + balance + " "+" Date"+ dateCreated;

   }

   public String getTransactionInfo(int n) {

       String transaction = transactionsSummary[n];

     if (transaction == null) {

           return "No transaction exists with that number. ";

       } else {

           return transaction;

       }   }

   public BankAccount(String abc, double xyz)

   {

       dayCreated = new Date();

       dateCreated= new Date();      

       customerName = abc;

       balance = xyz;

       noOfAccount++;

       accountNum = noOfAccount;

       transactions = new double[100];

       transactions[0] = balance;

       transactionsSummary = new String[100];

       transactionsSummary[0] = " Your amount : " + balance

              + " was deposited. ";

       numOfTransactions = 1;

   }

   public int getAccountNum() {

       return accountNum;

   }

   public int getDays()

   {

     return days;

   }

   public void setDays(int d)

   {

       this.days = d;

   }

   public double getProjectAmount()

   {

     return projectAmount;

   }

  

     

     public void projectAmount(double amount)

     {

          

        if(balance < 1000)

       {

         balance = balance*0.01f;

       } else if( balance <10000)

       {

          balance = balance*0.02f;

       } else if ( balance > 10000)

       {

           balance = balance*0.03f;

        }

     }

   public int getNumberOfTransactions() {

       return numOfTransactions;

}

   public void deposit(double amount) {

       if (amount <= 0) {

           System.err.println(" Amount to be depsited should be positive");

       } else {

           balance = balance + amount;

           transactions[numOfTransactions] = amount;

           transactionsSummary[numOfTransactions] = "$"

                   + Double.toString(amount) + "was deposited.";

           numOfTransactions++;

       }

      

   }

   public void withdraw(double amount)

   {

       if (amount <= 0) {

           System.out.println(" Amount to be withdrawn should be positive");

       } else if (numOfTransactions <=3)

               {

                 balance = balance - amount;

           transactions[numOfTransactions] = amount;

           transactionsSummary[numOfTransactions] = "$"

                   + Double.toString(amount) + " was withdrawn.";

           numOfTransactions++;

               }

                        else

                        {

                            balance = balance- 0.02;

                        }   } }

------------------------------------------------------------------------------------------

package bankapp;

import java.util.Date;

public class Bank {

   protected BankAccount[] accounts;

   protected int numOfAccounts;

   public Bank() {

       accounts = new BankAccount[100];

       numOfAccounts = 0;

   }

   public int openNewAccount(String customerName, double openingBalance, int type) {

       BankAccount b;

       if (type == 1)

               {

                   b = new SavingAccount(customerName, openingBalance, type);

               }

                    else

               {

                   b = new CheckingAccount(customerName, openingBalance, type);

               }

       accounts[numOfAccounts] = b;

       numOfAccounts++;

       return b.getAccountNum();

   }

   public void withdrawFrom(int accountNum, double amount) {

       for (int i = 0; i < numOfAccounts; i++) {

           if (accountNum == accounts[i].getAccountNum()) {

               accounts[i].withdraw(amount);

               System.out.println("Amount withdrawn successfully");

               return;

           }

       }

       System.out.println("Account number not found.");

   }

   public void depositTo(int accountNum, double amount) {

       for (int i = 0; i < accounts.length; i++) {

           if (accountNum == accounts[i].getAccountNum()) {

               accounts[i].deposit(amount);

               System.out.println("Amount deposited successfully");

               return;

           }

       }

       System.out.println("Account number not found.");

   }

   public void printAccountInfo(int accountNum) {

       for (int i = 0; i < accounts.length; i++) {

           if (accountNum == accounts[i].getAccountNum()) {

               System.out.println(accounts[i].getAccountInfo());

               return;

           }

       }

       System.out.println("Account number no found.");

   }

   public void printTransactionInfo(int accountNum) {

       for (int i = 0; i < accounts.length; i++) {

           if (accountNum == accounts[i].getAccountNum()) {

               System.out.println(accounts[i].getAccountInfo());

               System.out.println("Last transaction: "

                       + accounts[i].getTransactionInfo(accounts[i]

                               .getNumberOfTransactions() - 1));

               return;

           }

       }

       System.out.println("Account number not found. ");

   }

   public void printAccountInfo(int accountNum, int n) {

       for (int i = 100; i < numOfAccounts; i++) {

           if (accountNum == accounts[i].getAccountNum()) {

               System.out.println(accounts[i].getAccountInfo());

               System.out.println(accounts[i].getTransactionInfo(n));

               return;

           }

       }

       System.out.println(" Account number not found, Please try again ");

   }

}

Explanation / Answer

import java.util.Scanner;
public class BankApp {
public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    Bank myBank = new Bank();

    int user_choice = 2;

    do {
        //display menu to user
        //ask user for his choice and validate it (make sure it is between 1 and 6)
        System.out.println();
        System.out.println("1) Open a new bank account");
        System.out.println("2) Deposit to a bank account");
        System.out.println("3) Withdraw to bank account");
        System.out.println("4) Print short account information");
        System.out.println("5) Print the detailed account information including last transactions");
        System.out.println("6) To see your Balance after 60 days");
        System.out.println("6) Quit");
        System.out.println();
        System.out.print("Enter choice [1-7]: ");
        user_choice = s.nextInt();
        switch (user_choice) {
            case 1: System.out.println("Enter a customer name");
                    String cn = s.next();
                    System.out.println("Enter a opening balance");
                    double d = s.nextDouble();
                    System.out.println("Account was created and it has the following number: " + myBank.openNewAccount(cn, d));
                    break;
            case 2: System.out.println("Enter a account number");
                    int an = s.nextInt();
                    System.out.println("Enter a deposit amount");
                    double da = s.nextDouble();
                    myBank.depositTo(an, da);
                    break;
            case 3: System.out.println("Enter a account number");
                    int acn = s.nextInt();
                    System.out.println("Enter a withdraw amount");
                    double wa = s.nextDouble();
                    myBank.withdrawFrom(acn, wa);
                    break;
            case 4: System.out.println("Enter a account number");
                    int anum = s.nextInt();
                    myBank.printAccountInfo(anum);
                    break;
           case 5: System.out.println("Enter a account number");
                    anum = s.nextInt();
                    myBank.printTransactionInfo(anum);
                    break;
           case 6: System.out.println("Enter a account number");
                           anum = s.nextInt();
                           myBank.printTransactionInfo(anum);
                           System.out.println(" Your money after 60 days ");
                     cal.add(Calendar.DATE, 60);
                     BankApp.printHistory(history, anum);
                   System.out.println(" 60 days later " + cal.getTime());
                    hstr = cal.getTime().toString()+" # Checked balance after 60 days ";
                               BankApp.add(history, anum, hstr);
                                break;
          default: System.out.println("Invalid option.");

        }
}
while (user_choice != '7');
}

static class Bank {
private BankAccount[] accounts;  
private int numOfAccounts;   

  
public Bank()
{
    accounts = new BankAccount[100];
    numOfAccounts = 0;
    }


public int openNewAccount(String customerName, double openingBalance)
{

    BankAccount b = new BankAccount(customerName, openingBalance);
    accounts[numOfAccounts] = b;
    numOfAccounts++;
    return b.getAccountNum();
}

public void withdrawFrom(int accountNum, double amount)
{
    for (int i =0; i<numOfAccounts; i++)
    {
        if (accountNum == accounts[i].getAccountNum() )
        {
            accounts[i].withdraw(amount);
            System.out.println("Amount withdrawn successfully");
            return;
        }
    }
    System.out.println("Account number not found.");
    }

public void depositTo(int accountNum, double amount)
{
    for (int i =0; i<numOfAccounts; i++)
    {
        if (accountNum == accounts[i].getAccountNum())
        {
            accounts[i].deposit(amount);
            System.out.println("Amount deposited successfully");
            return;
        }
    }
    System.out.println("Account number not found.");
}


public void printAccountInfo(int accountNum)
{
    for (int i =0; i<numOfAccounts; i++)
    {
                if (accountNum == accounts[i].getAccountNum() )
                {
                    System.out.println(accounts[i].getAccountInfo());
                    return;
                }
            }
    System.out.println("Account number not found.");
}

public void printTransactionInfo(int accountNum) {
    for (int i =0; i<numOfAccounts; i++) {
                if (accountNum == accounts[i].getAccountNum() ) {
                    System.out.println(accounts[i].getAccountInfo());
                    System.out.println("Last transaction: " + accounts[i].getTransactionInfo(accounts[i].getNumberOfTransactions()-1));
                    return;
                }
            }
    System.out.println("Account number not found.");
}

public void printAccountInfo(int accountNum, int n) {
    for (int i =0; i<numOfAccounts; i++) {
                        if (accountNum == accounts[i].getAccountNum() ) {
                            System.out.println(accounts[i].getAccountInfo());
                            System.out.println(accounts[i].getTransactionInfo(n));
                            return;
                        }
                    }
    System.out.println("Account number not found.");
    }

}
    static class BankAccount{

       private int accountNum;
       private String customerName;
       private double balance;
       private double[] transactions;
       private String[] transactionsSummary;
       private int numOfTransactions;
       private static int noOfAccounts=0;

       public String getAccountInfo(){
           return "Account number: " + accountNum + " Customer Name: " + customerName + " Balance:" + balance +" ";
       }

       public String getTransactionInfo(int n)
       {
            String transaction = transactionsSummary[n];
            if (transaction == null) {
                return "No transaction exists with that number.";
            }
            else {
                return transaction;
            }
        }

       public BankAccount(String abc, double xyz){
         customerName = abc;
         balance = xyz;
         noOfAccounts ++;
         accountNum = noOfAccounts;
         transactions = new double[100];
         transactionsSummary = new String[100];
         transactions[0] = balance;
         transactionsSummary[0] = "A balance of : $" + Double.toString(balance) + " was deposited.";
         numOfTransactions = 1;
       }

    public int getAccountNum(){
        return accountNum;
    }

    public int getNumberOfTransactions() {
        return numOfTransactions;
    }

    public void deposit(double amount){

        if (amount<=0) {
            System.out.println("Amount to be deposited should be positive");
        } else {
            balance = balance + amount;
            transactions[numOfTransactions] = amount;
            transactionsSummary[numOfTransactions] = "$" + Double.toString(amount) + " was deposited.";
            numOfTransactions++;
        }
    }
    public void withdraw(double amount)
    {
        if (amount<=0){
             System.out.println("Amount to be withdrawn should be positive");
         }
        else
        {
            if (balance < amount) {
                System.out.println("Insufficient balance");
            } else {
                balance = balance - amount;
                transactions[numOfTransactions] = amount;
                transactionsSummary[numOfTransactions] = "$" + Double.toString(amount) + " was withdrawn.";
                numOfTransactions++;
            }
        }
    }

    }//end of class
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote