Can you kindly help me with the assignmentC attached below r

Can you kindly help me with the assignment(C++) attached below regarding java programming?
My task is to write a program that sells different types of tickets (e.g., student, child, adult, senior citizen) for a theater by using inheritance, abstract class and java interfaces. I have completed for the most part but am lost at \"TicketService\" class
I really appreciate your time and effort.

Write a program that sells different types of tickets (e.g., student, child, adult, senior citizen) for a theater. (utilize the concepts of : inheritance, abstract class and java interfaces. )

- Create an abstract class Ticket that has:

variable id: a unique identify for each ticket and has type int

variable price: price per one ticket, has type float

Constructor Ticket(int id, float price) for assigning values to 2 variables id and price

- Create 4 classes: SeniorTicket, AdultTicket, ChildTicket and StudentTicket which extends abstract class Ticket and implement constructor and toString method for each class.

- Prices: $20 for adult, $10 for senior and children and $15 for student ticket.

- Create class TheaterTicketService which implements TicketService interface ( file TicketService.java) and sellTicket method. sellTicket method should return an object that is instance of one of 4 class: SeniorTicket, AdultTicket, ChildTicket and StudentTicket depend on ticketType.

- Class TheaterTicketService should:

-Instance variable int capacity : total number of tickets

-Instance variable int soldTicket : total number of sold tickets

-Instance variable float revenue which is the total money of selling tickets; also implement a getter for this variable .

- constructor TheaterTicketService(int capacity)

For example:

TheaterTicketService tts = new TheaterTicketService(20);

Ticket adultTicket = tts.sellTicket(TicketService.Type.ADULT);

System.out.println(\"Sold \" + adultTicket.toString());

Ticket childTicket = tts.sellTicket(TicketService.Type.CHILD);

System.out.println(\"Sold \" + childTicket.toString());

System.out.println(\"Total tickets: \" + tts.getCapacity() + \" ;Ticket Sold: \" + tts.getTicketLeft());

System.out.println(\"Revenue until now: \" + tts.getRevenue());

should have output:

Sold Adult ticket, id: 1, price: $20.0

Sold Child ticket, id: 2, price: $10.0

Total tickets: 20 ;Ticket Sold: 18

Revenue until now: $30.0

- Please document your code internally with comments

so far this is what i have:

//class1

public class ChildTicket extends Ticket{
  
   public ChildTicket(int id, float price) {
       super(id, price);
       price = 15;
   }

public String toString(){
   String s = \"Sold child ticket, id: \" + id + \", price: $\" + price;
   return s;
}

}


//class2


public class SeniorTicket extends Ticket{

public SeniorTicket(int id, float price) {
       super(id, price);
       price = 10;
   }

public String toString(){
   String s = \"Sold senior ticket, id: \" + id + \", price: $\" + price;
   return s;
}
}

//class3


public class StudentTicket extends Ticket{

   public StudentTicket(int id, float price) {
       super(id, price);
       price = 15;
   }

public String toString(){
   String s = \"Sold student ticket, id: \" + id + \", price: $\" + price;
   return s;
}
}

//class4
public class TheaterTicketService implements TicketService{

   int capacity, soldTicket; private float revenue;
  
   public TheaterTicketService(int capacity){
       this.capacity = capacity;
   }

   int ticketLeft = capacity - soldTicket;
  
   public float getRevenue(){
       return revenue;
   }
  
   public int getCapacity(){
       return capacity;
   }
  
   public int getTicketLeft(){
       return ticketLeft;
   }
  
   public float sellTicket(String s){
       if(s == \"Adult\"){
          
       }
       return revenue;           //this is wrong
   }
}


//class5

abstract class Ticket{ // abstract class for general tickets

int id;
float price;

public Ticket(int id, float price){       // constructor for Ticket
   this.id = id;
   this.price = price;
}
}

//class6
public interface TicketService {

   public float sellTicket();
}

Solution

Please Check this code for refrence:

abstract class Ticket{ // abstract class for general tickets
static int id=0; //To auto-incremenet the id
float price;
public Ticket(float price){ // Since id is unique should not be passed by constructor
this.id++;
this.price = price;
}
}

public class StudentTicket extends Ticket{
   public StudentTicket() {
       super(15); //Hardcoding price value as 15 for Student Ticket
   }
   public String toString(){
       String s = \"Sold student ticket, id: \" + id + \", price: $\" + price;
       return s;
   }
}


public class ChildTicket extends Ticket{

   public ChildTicket() {
       super(15); //Setting price of ticket as 15
   }
   public String toString(){
       String s = \"Sold child ticket, id: \" + id + \", price: $\" + price;
       return s;
   }
}

public class SeniorTicket extends Ticket{
   public SeniorTicket() {
       super(10);
   }
   public String toString(){
       String s = \"Sold senior ticket, id: \" + id + \", price: $\" + price;
       return s;
   }
}

public class AdultTicket extends Ticket{
   public AdultTicket() {
       super(20);
   }
   public String toString(){
       String s = \"Sold adult ticket, id: \" + id + \", price: $\" + price;
       return s;
   }
}

public interface TicketService {
public Ticket sellTicket(String type); //It should return as type Ticket
}

public class TheaterTicketService implements TicketService{
   int capacity, soldTicket; private float revenue;

   public TheaterTicketService(int capacity){
       this.capacity = capacity;
   }

   public float getRevenue(){
       return revenue;
   }

   public int getCapacity(){
       return capacity;
   }

   @Override
   public Ticket sellTicket(String type) {
       Ticket sTicket=null;
       if(type.equals(\"ADULT\")){
           sTicket=new AdultTicket();
       }else if(type.equals(\"CHILD\")){
           sTicket=new ChildTicket();
       }else if(type.equals(\"STUDENT\")){
           sTicket=new StudentTicket();
       }else if(type.equals(\"SENIOR\")){
           sTicket=new SeniorTicket();
       }
       if(sTicket!=null){
           soldTicket++; // for each call to this method the sold tickets are incremented
           revenue+=sTicket.price; //For each sold ticket, the revenue is incremented
       }
       return sTicket;
   }
}

TESTING CLASS:

public class TestTicket {

   public static void main(String[] args) {
       TheaterTicketService tts=new TheaterTicketService(20);
       Ticket adultTicket = tts.sellTicket(\"ADULT\");
       System.out.println(\"Sold \" + adultTicket.toString());
       Ticket childTicket = tts.sellTicket(\"CHILD\");
       System.out.println(\"Sold \" + childTicket.toString());
       System.out.println(\"Total tickets: \" + tts.getCapacity() + \" ;Ticket Sold: \" + tts.soldTicket);
       System.out.println(\"Revenue until now: \" + tts.getRevenue());

   }

}

OUTPUT:

Sold Sold adult ticket, id: 1, price: $20.0
Sold Sold child ticket, id: 2, price: $15.0
Total tickets: 20 ;Ticket Sold: 2
Revenue until now: 35.0

Can you kindly help me with the assignment(C++) attached below regarding java programming? My task is to write a program that sells different types of tickets (
Can you kindly help me with the assignment(C++) attached below regarding java programming? My task is to write a program that sells different types of tickets (
Can you kindly help me with the assignment(C++) attached below regarding java programming? My task is to write a program that sells different types of tickets (
Can you kindly help me with the assignment(C++) attached below regarding java programming? My task is to write a program that sells different types of tickets (
Can you kindly help me with the assignment(C++) attached below regarding java programming? My task is to write a program that sells different types of tickets (

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site