1
2// Aim: Program to perform Abstract Class operations (Movie Ticket Booking).
3import java.util.*;
4
5abstract class MovieTicketBookingTask {
6 protected int totalTickets;
7 protected int soldTickets;
8
9 public MovieTicketBookingTask(int totalTickets) {
10 this.totalTickets = totalTickets;
11 this.soldTickets = 0;
12 }
13
14 public void booking(int numberOfTickets) {
15 if (numberOfTickets <= (totalTickets - soldTickets)) {
16 soldTickets += numberOfTickets;
17 System.out.println(numberOfTickets + " MovieTicketBookingTask booked successfully.");
18 } else {
19 System.out.println("Not enough MovieTicketBookingTask available.");
20 }
21 }
22
23 public void cancellation(int numberOfTickets) {
24 if (numberOfTickets <= soldTickets) {
25 soldTickets -= numberOfTickets;
26 System.out.println(numberOfTickets + " MovieTicketBookingTask cancelled successfully.");
27 } else {
28 System.out.println("Not enough MovieTicketBookingTask to cancel.");
29 }
30 }
31
32 public abstract void total_collection();
33}
34
35public class MovieTicketBooking extends MovieTicketBookingTask {
36
37 private String filmName;
38
39 public MovieTicketBooking(String filmName, int totalTickets) {
40 super(totalTickets);
41 this.filmName = filmName;
42 }
43
44 public void total_collection() {
45 int totalCollection = soldTickets * 150;
46 System.out.println("Total collection for the film " + filmName + " is: Rs. " + totalCollection);
47 }
48
49 public static void main(String[] args) {
50 Scanner sc = new Scanner(System.in);
51
52 System.out.println("Enter the film name:");
53 String filmName = sc.nextLine();
54
55 System.out.println("Enter the total number of MovieTicketBookingTask available:");
56 int totalTickets = sc.nextInt();
57
58 MovieTicketBooking movie = new MovieTicketBooking(filmName, totalTickets);
59
60 while (true) {
61 System.out.println("Choose an option: 1. Book Tickets 2. Cancel Tickets 3. Show Total Collection 4. Exit");
62 int choice = sc.nextInt();
63
64 switch (choice) {
65 case 1:
66 System.out.println("Enter the number of MovieTicketBookingTask to book:");
67 int bookTickets = sc.nextInt();
68 movie.booking(bookTickets);
69 break;
70 case 2:
71 System.out.println("Enter the number of MovieTicketBookingTask to cancel:");
72 int cancelTickets = sc.nextInt();
73 movie.cancellation(cancelTickets);
74 break;
75 case 3:
76 movie.total_collection();
77 break;
78 case 4:
79 System.exit(0);
80 sc.close();
81 break;
82 default:
83 System.out.println("Invalid choice. Please try again.");
84 }
85 }
86 }
87}