Note - Double Click to Copy Code Contact Us!

Airline reservation systemAirline reservation system

Tech Doubility
Airline reservation systemAirline reservation system

Java Code
  1. import java.io.File;
  2. import java.io.FileWriter;
  3. import java.io.IOException;
  4. import java.util.Scanner;
  5. import javax.xml.parsers.DocumentBuilder;
  6. import javax.xml.parsers.DocumentBuilderFactory;
  7. import javax.xml.parsers.ParserConfigurationException;
  8. import org.w3c.dom.Document;
  9. import org.w3c.dom.Element;
  10. import org.w3c.dom.Node;
  11. import org.w3c.dom.NodeList;
  12. import org.xml.sax.SAXException;
  13.  
  14. public class AirlineReservationSystem {
  15. private static final String DATABASE_FILE = "database.xml";
  16. private static final Scanner scanner = new Scanner(System.in);
  17.  
  18. public static void main(String[] args) {
  19. try {
  20. loadDatabase();
  21.  
  22. while (true) {
  23. System.out.println("Airline Reservation System");
  24. System.out.println("1. Make a reservation");
  25. System.out.println("2. Cancel a reservation");
  26. System.out.println("3. Display reservations");
  27. System.out.println("4. Exit");
  28. System.out.print("Enter your choice: ");
  29. int choice = scanner.nextInt();
  30. scanner.nextLine(); // Consume newline
  31.  
  32. switch (choice) {
  33. case 1:
  34. makeReservation();
  35. break;
  36. case 2:
  37. cancelReservation();
  38. break;
  39. case 3:
  40. displayReservations();
  41. break;
  42. case 4:
  43. saveDatabase();
  44. System.exit(0);
  45. break;
  46. default:
  47. System.out.println("Invalid choice. Please try again.");
  48. }
  49. }
  50. } catch (ParserConfigurationException | SAXException | IOException e) {
  51. e.printStackTrace();
  52. }
  53. }
  54.  
  55. private static void makeReservation() throws IOException {
  56. System.out.print("Enter passenger name: ");
  57. String passengerName = scanner.nextLine();
  58.  
  59. System.out.print("Enter flight number: ");
  60. String flightNumber = scanner.nextLine();
  61.  
  62. System.out.print("Enter date of travel: ");
  63. String dateOfTravel = scanner.nextLine();
  64.  
  65. System.out.print("Enter seat number: ");
  66. String seatNumber = scanner.nextLine();
  67.  
  68. Element reservation = createReservationElement(passengerName, flightNumber, dateOfTravel, seatNumber);
  69. appendReservationToDatabase(reservation);
  70.  
  71. System.out.println("Reservation created successfully.");
  72. }
  73.  
  74. private static Element createReservationElement(String passengerName, String flightNumber,
  75. String dateOfTravel, String seatNumber) {
  76. Document doc = getDocument();
  77. Element reservation = doc.createElement("Reservation");
  78.  
  79. Element passengerNameElement = doc.createElement("PassengerName");
  80. passengerNameElement.appendChild(doc.createTextNode(passengerName));
  81. reservation.appendChild(passengerNameElement);
  82.  
  83. Element flightNumberElement = doc.createElement("FlightNumber");
  84. flightNumberElement.appendChild(doc.createTextNode(flightNumber));
  85. reservation.appendChild(flightNumberElement);
  86.  
  87. Element dateOfTravelElement = doc.createElement("DateOfTravel");
  88. dateOfTravelElement.appendChild(doc.createTextNode(dateOfTravel));
  89. reservation.appendChild(dateOfTravelElement);
  90.  
  91. Element seatNumberElement = doc.createElement("SeatNumber");
  92. seatNumberElement.appendChild(doc.createTextNode(seatNumber));
  93. reservation.appendChild(seatNumberElement);
  94.  
  95. return reservation;
  96. }
  97.  
  98. private static void appendReservationToDatabase(Element reservation) throws IOException {
  99. Document doc = getDocument();
  100. Node root = doc.getDocumentElement();
  101. root.appendChild(reservation);
  102. saveDatabase();
  103. }
  104.  
  105. private static void cancelReservation() throws IOException {
  106. System.out.print("Enter flight number: ");
  107. String flightNumber = scanner.nextLine();
  108.  
  109. System.out.print("Enter seat number: ");
  110. String seatNumber = scanner.nextLine();
  111.  
  112. boolean reservationCancelled = removeReservationFromDatabase(flightNumber, seatNumber);
  113.  
  114. if (reservationCancelled) {
  115. System.out.println("Reservation cancelled successfully.");
  116. } else {
  117. System.out.println("No matching reservation found.");
  118. }
  119. }
  120.  
  121. private static boolean removeReservationFromDatabase(String flightNumber, String seatNumber) throws IOException {
  122. Document doc = getDocument();
  123. Node root = doc.getDocumentElement();
  124. NodeList reservationList = root.getChildNodes();
  125.  
  126. for (int i = 0; i < reservationList.getLength(); i++) {
  127. Node reservationNode = reservationList.item(i);
  128.  
  129. if (reservationNode.getNodeType() == Node.ELEMENT_NODE) {
  130. Element reservation = (Element) reservationNode;
  131.  
  132. String savedFlightNumber = reservation.getElementsByTagName("FlightNumber").item(0).getTextContent();
  133. String savedSeatNumber = reservation.getElementsByTagName("SeatNumber").item(0).getTextContent();
  134.  
  135. if (savedFlightNumber.equals(flightNumber) && savedSeatNumber.equals(seatNumber)) {
  136. root.removeChild(reservation);
  137. saveDatabase();
  138. return true;
  139. }
  140. }
  141. }
  142.  
  143. return false;
  144. }
  145.  
  146. private static void displayReservations() throws IOException {
  147. Document doc = getDocument();
  148. Node root = doc.getDocumentElement();
  149. NodeList reservationList = root.getChildNodes();
  150.  
  151. System.out.println("Reservations:");
  152. for (int i = 0; i < reservationList.getLength(); i++) {
  153. Node reservationNode = reservationList.item(i);
  154.  
  155. if (reservationNode.getNodeType() == Node.ELEMENT_NODE) {
  156. Element reservation = (Element) reservationNode;
  157.  
  158. String passengerName = reservation.getElementsByTagName("PassengerName").item(0).getTextContent();
  159. String flightNumber = reservation.getElementsByTagName("FlightNumber").item(0).getTextContent();
  160. String dateOfTravel = reservation.getElementsByTagName("DateOfTravel").item(0).getTextContent();
  161. String seatNumber = reservation.getElementsByTagName("SeatNumber").item(0).getTextContent();
  162.  
  163. System.out.println("Passenger: " + passengerName);
  164. System.out.println("Flight: " + flightNumber);
  165. System.out.println("Date of Travel: " + dateOfTravel);
  166. System.out.println("Seat Number: " + seatNumber);
  167. System.out.println("---------------------");
  168. }
  169. }
  170. }
  171.  
  172. private static Document getDocument() throws ParserConfigurationException {
  173. DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  174. DocumentBuilder builder = factory.newDocumentBuilder();
  175. Document doc = builder.newDocument();
  176.  
  177. try {
  178. doc = builder.parse(DATABASE_FILE);
  179. doc.getDocumentElement().normalize();
  180. } catch (SAXException | IOException e) {
  181. // Database file does not exist, create a new document with root element
  182. Element rootElement = doc.createElement("Reservations");
  183. doc.appendChild(rootElement);
  184. }
  185.  
  186. return doc;
  187. }
  188.  
  189. private static void loadDatabase() throws ParserConfigurationException, SAXException, IOException {
  190. File file = new File(DATABASE_FILE);
  191.  
  192. if (!file.exists()) {
  193. // Database file does not exist, create a new document with root element
  194. DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  195. DocumentBuilder builder = factory.newDocumentBuilder();
  196. Document doc = builder.newDocument();
  197. Element rootElement = doc.createElement("Reservations");
  198. doc.appendChild(rootElement);
  199. saveDatabase();
  200. }
  201. }
  202.  
  203. private static void saveDatabase() throws IOException {
  204. Document doc = getDocument();
  205. FileWriter writer = new FileWriter(DATABASE_FILE);
  206. XmlUtils.writeDocument(doc, writer);
  207. writer.close();
  208. }
  209. }
  210.  
fgbDBD

Post a Comment

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.