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

9. MinMaxAccount. A company has written a large class BankAccount with many meth

ID: 3875479 • Letter: 9

Question

9. MinMaxAccount. A company has written a large class BankAccount with many methods including: public BankAccount (Startup s) public void debit(Debit d) public void credit(Credit c) public int getBalance() Constructs a BankAccount object using information in s Records the given de Records the given credit Returns the current balance in pennies bit Design a new class MinMaxAccount whose instances can be used in place of a bank account but include new behavion of remembering the minimum and maximum balances ever recorded for the account. The class should have a constnuc at accepts a Startup parameter. The bank account's constructor sets the initial balance on the basis of the statup information. Assume that only debits and credits change an account's balance. Include these new methods in your public int getMin) public int getMax() Returns the minimum balance in pennies Returns the maximum balance in pennies

Explanation / Answer

Solution:

code:

/**Ticket abstact class*/
//Ticket.java
public abstract class Ticket
{
  
   //private members of class
   private int number;
   private double price;
      
   //constructor that sets the number and price to 50
   public Ticket(int number)
   {
       this.number=number;
       //set price to 50
       price=50;
   }
  
   //Constructor to set the number and price
   public Ticket(int number, double price)
   {
       setNumber(number);
       setPrice(price);
   }
  
   //Set number
   public void setNumber(int number)
   {
       this.number=number;
   }
   //Set price
   public void setPrice(double price)
   {
       this.price=price;
   }
      
   //Return number
   public int getNumber()
   {
       return number;
   }
  
   //Return price
   public double getPrice()
   {
       return price;
   }
  
   //Returns the string description of the Ticket class object
   @Override
   public String toString()
   {      
       return "Number : "+number+", Price :"+price;  
   }  
}
--------------------------------------------------------------------------------------------
//WalkupTicket.java
//The class AdvanceTicket that extends the abstract class Ticket
public class WalkupTicket extends Ticket
{

   //Constructor to set number
   public WalkupTicket(int number)
   {
       //set number and price =50
       super(number, 50);      
   }  
   //Constructor to set number and price
   public WalkupTicket(int number, double price)
   {
       super(number, price);      
   }  
}
--------------------------------------------------------------------------------------------

//StudentAdvanceTicket.java
public class StudentAdvanceTicket extends Ticket
{
   private int days;

   public StudentAdvanceTicket(int number,int days)
   {      
       super(number);
       this.days=days;
      
      
       //set price of days<10
       if(days<10)
           setPrice(20);
       //set price of days>=10
       else if(days>=10)
           setPrice(15);
   }
  
   //Returns the string description of the Ticket class object
   @Override
   public String toString()
   {      
       return super.toString()+" (ID required)";
   }
  
}

--------------------------------------------------------------------------------------------
//AdvanceTicket.java
//The class AdvanceTicket that extends the abstract class Ticket
public class AdvanceTicket extends Ticket
{
   private int days;
  
   //Constructor that takes number and days as input arguments
   public AdvanceTicket(int number, int days)
   {
       super(number);
       this.days=days;
      
      
       //set price if days <10
       if(days<10)
           setPrice(40);
       //set price if days >=10
       else if(days>=10)
           setPrice(30);      
   }  
  
   @Override
   public String toString() {      
       return "Number : A"+getNumber()+", Price :"+getPrice()
               +", Days :"+days;
   }
}
--------------------------------------------------------------------------------------------
/**The java program TicketTester that tests the classes
* AdvancedTicket and WalkupTicket calling constructors
* and print the object desriptions.*/
//TicketTester.java
public class TicketTester {
    public static void main(String[] args) {
       // constructor overloaded
        AdvanceTicket AdvanceTicket(10, 20);

        System.out.println(one);   // output should be Number: A10, Price: 30.0, Days: 20
             
        WalkupTicket two = new WalkupTicket(2);
        // Create a field modifier to change the ticket number
        // modifies protected field, note overloaded
        two.setNumber(17);
        // methods and constructors are all overloaded
        System.out.println(two);
        // output should be Number: 17, Price: 50.0
    }
}
--------------------------------------------------------------------------------------------
Sample Output:
Number : A10, Price :30.0, Days :20
Number : 17, Price :50.0