Skip to content

Commit bddcca6

Browse files
committed
[Manan] ADD:Ticket Reservation System using a Circular Linked List
1 parent 756579b commit bddcca6

File tree

1 file changed

+134
-0
lines changed

1 file changed

+134
-0
lines changed

TicketReservationSystem.java

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
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

Comments
 (0)