1
+ class TicketReservationSystem {
2
+ private class TicketNode {
3
+ int ticketId ;
4
+ String customerName ;
5
+ String movieName ;
6
+ int seatNumber ;
7
+ String bookingTime ;
8
+ TicketNode next ;
9
+
10
+ TicketNode (int ticketId , String customerName , String movieName , int seatNumber , String bookingTime ) {
11
+ this .ticketId = ticketId ;
12
+ this .customerName = customerName ;
13
+ this .movieName = movieName ;
14
+ this .seatNumber = seatNumber ;
15
+ this .bookingTime = bookingTime ;
16
+ this .next = null ;
17
+ }
18
+ }
19
+
20
+ private TicketNode head = null ;
21
+ private TicketNode tail = null ;
22
+ private int totalTickets = 0 ;
23
+
24
+ public void addTicket (int ticketId , String customerName , String movieName , int seatNumber , String bookingTime ) {
25
+ TicketNode newNode = new TicketNode (ticketId , customerName , movieName , seatNumber , bookingTime );
26
+ if (head == null ) {
27
+ head = newNode ;
28
+ tail = newNode ;
29
+ newNode .next = head ;
30
+ } else {
31
+ tail .next = newNode ;
32
+ tail = newNode ;
33
+ tail .next = head ;
34
+ }
35
+ totalTickets ++;
36
+ }
37
+
38
+ public void removeTicket (int ticketId ) {
39
+ if (head == null ) return ;
40
+ if (head .ticketId == ticketId ) {
41
+ if (head == tail ) {
42
+ head = null ;
43
+ tail = null ;
44
+ } else {
45
+ head = head .next ;
46
+ tail .next = head ;
47
+ }
48
+ totalTickets --;
49
+ return ;
50
+ }
51
+ TicketNode temp = head ;
52
+ while (temp .next != head ) {
53
+ if (temp .next .ticketId == ticketId ) {
54
+ temp .next = temp .next .next ;
55
+ if (temp .next == head ) {
56
+ tail = temp ;
57
+ }
58
+ totalTickets --;
59
+ return ;
60
+ }
61
+ temp = temp .next ;
62
+ }
63
+ }
64
+
65
+ public void displayTickets () {
66
+ if (head == null ) {
67
+ System .out .println ("No tickets available." );
68
+ return ;
69
+ }
70
+ TicketNode temp = head ;
71
+ while (true ) {
72
+ System .out .println ("Ticket ID: " + temp .ticketId + ", Customer: " + temp .customerName + ", Movie: " + temp .movieName + ", Seat: " + temp .seatNumber + ", Time: " + temp .bookingTime );
73
+ temp = temp .next ;
74
+ if (temp == head ) break ;
75
+ }
76
+ }
77
+
78
+ public void searchTicketByCustomer (String customerName ) {
79
+ if (head == null ) return ;
80
+ TicketNode temp = head ;
81
+ while (true ) {
82
+ if (temp .customerName .equalsIgnoreCase (customerName )) {
83
+ System .out .println ("Ticket Details - ID: " + temp .ticketId + ", Movie: " + temp .movieName + ", Seat: " + temp .seatNumber + ", Time: " + temp .bookingTime );
84
+ }
85
+ temp = temp .next ;
86
+ if (temp == head ) break ;
87
+ }
88
+ }
89
+
90
+ public void searchTicketByMovie (String movieName ) {
91
+ if (head == null ) return ;
92
+ TicketNode temp = head ;
93
+ while (true ) {
94
+ if (temp .movieName .equalsIgnoreCase (movieName )) {
95
+ System .out .println ("Ticket Details - ID: " + temp .ticketId + ", Customer: " + temp .customerName + ", Seat: " + temp .seatNumber + ", Time: " + temp .bookingTime );
96
+ }
97
+ temp = temp .next ;
98
+ if (temp == head ) break ;
99
+ }
100
+ }
101
+
102
+ public int getTotalTickets () {
103
+ return totalTickets ;
104
+ }
105
+
106
+ public static void main (String [] args ) {
107
+ TicketReservationSystem system = new TicketReservationSystem ();
108
+ system .addTicket (1 , "Aman" , "PK" , 12 , "10:00 AM" );
109
+ system .addTicket (2 , "Samir" , "3 Idiots" , 15 , "12:00 PM" );
110
+ system .addTicket (3 , "Arjun" , "Barfi" , 20 , "2:00 PM" );
111
+
112
+ System .out .println ("Current Reservations:" );
113
+ system .displayTickets ();
114
+
115
+ System .out .println ("Searching for tickets booked by Arjun" );
116
+ system .searchTicketByCustomer ("Arjun" );
117
+
118
+ System .out .println ("Searching for tickets for PK:" );
119
+ system .searchTicketByMovie ("PK" );
120
+
121
+ System .out .println ("Total Tickets Booked: " + system .getTotalTickets ());
122
+ }
123
+ }
124
+
125
+ //SampleOutput
126
+ //Current Reservations:
127
+ //Ticket ID: 1, Customer: Aman, Movie: PK, Seat: 12, Time: 10:00 AM
128
+ //Ticket ID: 2, Customer: Samir, Movie: 3 Idiots, Seat: 15, Time: 12:00 PM
129
+ //Ticket ID: 3, Customer: Arjun, Movie: Barfi, Seat: 20, Time: 2:00 PM
130
+ //Searching for tickets booked by Arjun
131
+ //Ticket Details - ID: 3, Movie: Barfi, Seat: 20, Time: 2:00 PM
132
+ //Searching for tickets for PK:
133
+ //Ticket Details - ID: 1, Customer: Aman, Seat: 12, Time: 10:00 AM
134
+ //Total Tickets Booked: 3
0 commit comments