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

Ticket Master Can you please help me with the JAVA program? Here is the requirem

ID: 3782008 • Letter: T

Question

Ticket Master

Can you please help me with the JAVA program? Here is the requirement:

The purpose of this exercise is to model the types of tickets that might be sold for campus events. All tickets will have Strings for the venue, event name, and date. Each ticket will also have a base price.

Create an abstract class Ticket with the following constructor:

public Ticket(String venue, String event, String date, double basePrice)

provide getters for the venue, event, date and basePrice

provide a method
int getNumberOfHolders()
that returns 1.

provide a toString method

provide an abstract method to return the actual cost of this transaction
double getPrice()


Create a subclass AdvanceTicket for tickets bought in advance at a discount.
The constructor for AdvanceTicket should be
public AdvanceTicket(String venue, String event, String date, double basePrice, double discount)


Create a subclass ComplementaryTicket for tickets given away for free.
The constructor for ComplementaryTicket should be
public ComplementaryTicket(String venue, String event, String date)


Create a subclass DayOfTicket for tickets purchased the day of the event for full price.
The constructor for DayOfTicket should be
public DayOfTicket(String venue, String event, String date, double basePrice)


Create a subclass GroupTicket for a group of tickets purchased together at a discount.
The constructor for GroupTicket should be
public GroupTicket(String venue, String event, String date, double basePrice, double discount, int quantity)


You will need to supply additional instance variables, methods and overridden methods as appropriate. Do as much of this as necessary, but no more. (And don't forget toString.)

Hint: For some classes, you may be able to save some work by extending a class other than Ticket.

Write a tester class that tests each method for objects of each class. The following is an example:

public class TicketTester {

    public static void main(String[] args) {
        Ticket t;
        
        t = new AdvanceTicket("venue1", "party", "1/1/16", 10, .1);
        System.out.print(evalTicket(t));
        System.out.println(t.toString());
        System.out.println();
        
        t = new ComplementaryTicket("venue2", "show", "1/2/16");
        System.out.print(evalTicket(t));
        System.out.println(t.toString());
        System.out.println();
        
        t = new DayOfTicket("venue3", "club", "1/3/16", 11.0);
        System.out.print(evalTicket(t));
        System.out.println(t.toString());
        System.out.println();
        
        t = new GroupTicket("venue4", "reunion", "1/4/16", 12, .15, 8);
        System.out.print(evalTicket(t));
        System.out.println(t.toString());
        System.out.println();
    }
    
    public static String evalTicket(Ticket t) {
        String s = "event: " + t.getEvent() + " ";
        s += "venue: " + t.getVenue() + " ";
        s += "date: " + t.getDate() + " ";
        s += "number of holders: " + t.getNumberOfHolders() + " ";
        s += "base price: " + t.getBasePrice() + " ";
        s += "price: " + t.getPrice() + " ";
        return s;
    }

}

Explanation / Answer

Ticket.java


public abstract class Ticket {
   String venue, event, date;
   double basePrice;
   public Ticket(String venue, String event, String date, double basePrice){
       this.venue = venue;
       this.event = event;
       this.date = date;
       this.basePrice = basePrice;
   }
   public String getVenue() {
       return venue;
   }
   public String getEvent() {
       return event;
   }
   public String getDate() {
       return date;
   }

   public String toString(){
       return "Ticket Type: "+getClass().getName();
   }
   public double getBasePrice() {
       return basePrice;
   }
   public abstract double getPrice();
   int getNumberOfHolders() {
       return 1;
   }

}

AdvanceTicket.java


public class AdvanceTicket extends Ticket{
   double discount;
   public AdvanceTicket(String venue, String event, String date, double basePrice, double discount){
       super(venue, event, date, basePrice);
       this.discount = discount;
   }
   public double getPrice(){
       return super.getBasePrice() - (super.getBasePrice() * discount)/100;
   }
}

ComplementaryTicket.java


public class ComplementaryTicket extends Ticket{
   public ComplementaryTicket(String venue, String event, String date){
       super(venue, event, date, 0);
   }
   public double getPrice(){
       return super.getBasePrice() ;
   }
}

DayOfTicket.java


public class DayOfTicket extends Ticket{
   public DayOfTicket(String venue, String event, String date, double basePrice){
       super(venue, event, date, basePrice);
   }
   public double getPrice(){
       return super.getBasePrice() ;
   }
}

GroupTicket.java


public class GroupTicket extends Ticket{
   double discount;
   int quantity;
   public GroupTicket(String venue, String event, String date, double basePrice, double discount, int quantity){
       super(venue, event, date, basePrice);
       this.discount = discount;
       this.quantity = quantity;
   }
   public double getPrice(){
       return (super.getBasePrice() - (super.getBasePrice() * discount)/100) * quantity;
   }
}

TicketTester.java

public class TicketTester {

public static void main(String[] args) {
Ticket t;
  
t = new AdvanceTicket("venue1", "party", "1/1/16", 10, .1);
System.out.print(evalTicket(t));
System.out.println(t.toString());
System.out.println();
  
t = new ComplementaryTicket("venue2", "show", "1/2/16");
System.out.print(evalTicket(t));
System.out.println(t.toString());
System.out.println();
  
t = new DayOfTicket("venue3", "club", "1/3/16", 11.0);
System.out.print(evalTicket(t));
System.out.println(t.toString());
System.out.println();
  
t = new GroupTicket("venue4", "reunion", "1/4/16", 12, .15, 8);
System.out.print(evalTicket(t));
System.out.println(t.toString());
System.out.println();
}
  
public static String evalTicket(Ticket t) {
String s = "event: " + t.getEvent() + " ";
s += "venue: " + t.getVenue() + " ";
s += "date: " + t.getDate() + " ";
s += "number of holders: " + t.getNumberOfHolders() + " ";
s += "base price: " + t.getBasePrice() + " ";
s += "price: " + t.getPrice() + " ";
return s;
}
}

Output:

event: party
venue: venue1
date: 1/1/16
number of holders: 1
base price: 10.0
price: 9.99
Ticket Type: AdvanceTicket

event: show
venue: venue2
date: 1/2/16
number of holders: 1
base price: 0.0
price: 0.0
Ticket Type: ComplementaryTicket

event: club
venue: venue3
date: 1/3/16
number of holders: 1
base price: 11.0
price: 11.0
Ticket Type: DayOfTicket

event: reunion
venue: venue4
date: 1/4/16
number of holders: 1
base price: 12.0
price: 95.856
Ticket Type: GroupTicket

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