Train Ticket Application Working Code
Train Ticket Application Working Code
import java.util.ArrayList;
import java.util.List;
System.out.println("-------------------------");
System.out.println("-------------------------");
Ticket ticket2 = train.bookticket(user2);
System.out.println(ticket2);
System.out.println("-------------------------");
System.out.println("-------------------------");
System.out.println("-------------------------");
System.out.println("-------------------------");
train.totalBookingInfo();
System.out.println("-------------------------");
System.out.println("-------------------------");
train.totalBookingInfo();
System.out.println("-------------------------");
System.out.println("-------------------------");
System.out.println("-------------------------");
}
package TrainTicketBookingApp;
import java.util.List;
@Override
public String toString() {
return "Ticket [pnr=" + pnr + ", source=" +
source + ", destination=" + destination + ",
noOfTickets="
+ noOfTickets + ", isConfirmed=" +
isConfirmed + ", isWaitinglist=" + isWaitinglist + ",
seatNums="
+ seatNums + "]";
}
package TrainTicketBookingApp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map.Entry;
import java.util.Queue;
}
tickettodifferentdestinations.put(stoppages.get(i),
NumOfTickets);
}
for (int i = 0; i < MAX_SEATS; i++) {
seatnumber.add(i);
}
}
if (destination.toCharArray()[0] <
source.toCharArray()[0]) {
System.out.println("Not allowed");
return 0;
}
if (source.equals(destination)) {
System.out.println("Source and Destination
should not be same");
return 0;
}
ArrayList<Integer> noOfSeatAvailableList =
(ArrayList<Integer>)
tickettodifferentdestinations.get(source);
int numOfSeats = 0;
switch (destination) {
case "A":
numOfSeats = noOfSeatAvailableList.get(0);
break;
case "B":
numOfSeats = noOfSeatAvailableList.get(1);
break;
case "C":
numOfSeats = noOfSeatAvailableList.get(2);
break;
case "D":
numOfSeats = noOfSeatAvailableList.get(3);
break;
case "E":
numOfSeats = noOfSeatAvailableList.get(4);
break;
default:
break;
}
System.out.println(
" Available Seats are : Between
" + source + " and " + destination + " Is :" +
numOfSeats);
}
return numOfSeats;
} else if (!iSCheckingfromBooking) {
System.out.println("No tickets available ,
only Waiting list ");
}
return 0;
boolean isWaitingListAvailable =
this.getTrainWaitingListStatus();
this.updateTicketAvailability(ticket.getSource(),
ticket.getDestination(), noOfSeats, from);
if (isWaitingListAvailable) {
confirmWaitingList(pnrQueue);
}
return ticket;
}
}
ticket.setSeatNums(seats);
ticket.setConfirmed(true);
ticket.setWaitinglist(false);
totalTicketInfo.put(pnr, ticket);
this.iSCheckingfromBooking = false;
}
}
return null;
}
if (getAvailability(ticketSource,
ticketDestination) < this.ticketCount
&& this.currentWaitingList >
this.ticketCount) {
System.out.println("No tickets available");
return null;
} else if (this.currentWaitingList
<this.ticketCount
&& getAvailability(ticketSource,
ticketDestination) < this.ticketCount) {
System.out.println("You have been given to
waiting list");
int pnrGenetedNum = this.generatePnr();
List<Integer> seats = new ArrayList<>();
this.istrainWaitingLisrtAvailable = true;
currentWaitingList = currentWaitingList +
this.ticketCount;
}
Ticket ticket = new Ticket(pnrGenetedNum,
this.ticketSource, this.ticketDestination,
this.ticketCount, true,
false, seats);
totalTicketInfo.put(pnrGenetedNum, ticket);
this.iSCheckingfromBooking = false;
return ticket;
}
numOfSeats =
noOfSeatAvailableList.get(j);
if
("FromTicketCancellation".equals(callingFrom)) {
numOfSeats = numOfSeats +
count;
} else if
("TicketBooking".equals(callingFrom)) {
numOfSeats = numOfSeats -
count;
}
if (numOfSeats <= 0) {
numOfSeats = 0;
}
noOfSeatAvailableList.remove(j);
noOfSeatAvailableList.add(j,
numOfSeats);
numOfSeats =
noOfSeatAvailableList.get(j);
if
("FromTicketCancellation".equals(callingFrom)) {
numOfSeats = numOfSeats +
count;
} else if
("TicketBooking".equals(callingFrom)) {
numOfSeats = numOfSeats -
count;
}
if (numOfSeats <= 0) {
numOfSeats = 0;
}
noOfSeatAvailableList.remove(j);
noOfSeatAvailableList.add(j,
numOfSeats);
}
this.iSCheckingfromBooking = false;
tickettodifferentdestinations.put(key,
noOfSeatAvailableList);
}
}
package TrainTicketBookingApp;
this.name = name;
this.userSource = source;
this.userDestination = destination;
this.noOfTickets = noOfTickets;
}