

{"id":145738,"date":"2025-07-04T18:26:43","date_gmt":"2025-07-04T12:56:43","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=145738"},"modified":"2025-07-04T18:26:43","modified_gmt":"2025-07-04T12:56:43","slug":"restaurant-order-processing-system-using-dsa-java","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-using-dsa-java\/","title":{"rendered":"DSA Java Project &#8211; Restaurant Order Processing System"},"content":{"rendered":"<h3>Program 1<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">\/\/ Project: Restaurant Order Processing System(Based on Doubly linked list and DQUEUE)\r\n\/*   \r\n Features:\r\n1. Add order at the end of the queue (new order)\r\n2. Serve the first order (remove from front)\r\n3. Cancel the last order (remove from end)\r\n4. View all pending orders (from first to last)\r\n5. Search order according to order ID\r\n6. Total Count of pending orders\r\n*\/\r\n\r\nimport java.util.Scanner;\r\n\r\nclass Order                 \/\/ Node \r\n{\r\n    Order prev;\r\n    int orderId;\r\n    String customerName;\r\n    String foodItem;\r\n    Order next;\r\n\r\n    public Order(int orderId, String customerName, String foodItem) \r\n    {\r\n        this.orderId = orderId;\r\n        this.customerName = customerName;\r\n        this.foodItem = foodItem;\r\n        this.prev=null;\r\n        this.next=null;\r\n    }\r\n}\r\n\r\npublic class RestaurantOrderSystem \r\n{\r\n\r\n    private static Order head = null;\r\n    private static Order tail = null;\r\n    private static int nextOrderId = 1;\r\n    private static final Scanner sc = new Scanner(System.in);\r\n\r\n    \/\/ Create new order node and add at end\r\n    public static void addOrder(String customerName, String foodItem) \r\n    {\r\n        Order newOrder = new Order(nextOrderId++, customerName, foodItem);\r\n        if (head == null) \r\n        {\r\n            head = tail = newOrder;\r\n        } else \r\n        {\r\n            tail.next = newOrder;\r\n            newOrder.prev = tail;\r\n            tail = newOrder;\r\n        }\r\n        System.out.println(\"Order #\" + newOrder.orderId + \" added for \" + customerName + \": \" + foodItem);\r\n    }\r\n\r\n    \/\/ Serve the first order\r\n    public static void serveOrder() \r\n    {\r\n        if (head == null) {\r\n            System.out.println(\" No orders to serve.\");\r\n            return;\r\n        }\r\n        System.out.println(\"Serving Order #\" + head.orderId + \": \" + head.customerName + \" - \" + head.foodItem);\r\n        head = head.next;\r\n        if (head != null) \r\n        head.prev = null;\r\n        else \r\n        tail = null;\r\n    }\r\n\r\n    \/\/ Cancel the last order\r\n    public static void cancelLastOrder() \r\n    {\r\n        if (tail == null) {\r\n            System.out.println(\" No orders to cancel.\");\r\n            return;\r\n        }\r\n        System.out.println(\" Cancelling Order #\" + tail.orderId + \": \" + tail.customerName + \" - \" + tail.foodItem);\r\n        tail = tail.prev;\r\n        if (tail != null) tail.next = null;\r\n        else head = null;\r\n    }\r\n\r\n    \/\/ View all pending orders\r\n    public static void viewOrders() \r\n    {\r\n        if (head == null) \r\n        {\r\n            System.out.println(\" No pending orders.\");\r\n            return;\r\n        }\r\n\r\n        System.out.println(\"\\n--- ---- Pending Orders ---------\");\r\n        Order temp = head;\r\n        while (temp != null) \r\n        {\r\n            System.out.printf(\"Order #%3d | Customer: %-15s | Item: %s\\n\", temp.orderId, temp.customerName, temp.foodItem);\r\n            temp = temp.next;\r\n        }\r\n    }\r\n\r\n    \/\/ Search order by ID\r\n    public static void searchById(int id) \r\n    {\r\n        Order temp = head;\r\n        while (temp != null) \r\n        {\r\n            if (temp.orderId == id) \r\n            {\r\n                System.out.println(\" Found Order #\" + temp.orderId + \": \" + temp.customerName + \" - \" + temp.foodItem);\r\n                return;\r\n            }\r\n            temp = temp.next;\r\n        }\r\n        System.out.println(\" Order ID not found.\");\r\n    }\r\n\r\n    \/\/ Search order by Customer Name\r\n    public static void searchByName(String name) \r\n    {\r\n        Order temp = head;\r\n        boolean found = false;\r\n        while (temp != null) {\r\n            if (temp.customerName.equalsIgnoreCase(name)) \r\n            {\r\n                System.out.println(\" Order #\" + temp.orderId + \": \" + temp.foodItem);\r\n                found = true;\r\n            }\r\n            temp = temp.next;\r\n        }\r\n        if (!found) {\r\n            System.out.println(\" No orders found for \" + name);\r\n        }\r\n    }\r\n\r\n    \/\/ Count total pending orders\r\n    public static void countOrders() \r\n    {\r\n        int count = 0;\r\n        Order temp = head;\r\n        while (temp != null) {\r\n            count++;\r\n            temp = temp.next;\r\n        }\r\n        System.out.println(\" Total pending orders: \" + count);\r\n    }\r\n\r\n    \/\/ Main menu\r\n    public static void menu() \r\n    {\r\n        while (true) {\r\n            System.out.println(\"\\n==========  Restaurant Order System ==========\");\r\n            System.out.println(\"1. Add New Order\");\r\n            System.out.println(\"2. Serve First Order\");\r\n            System.out.println(\"3. Cancel Last Order\");\r\n            System.out.println(\"4. View All Orders\");\r\n            System.out.println(\"5. Search Order by ID\");\r\n            System.out.println(\"6. Search Order by Customer Name\");\r\n            System.out.println(\"7. Count Pending Orders\");\r\n            System.out.println(\"8. Exit\");\r\n            System.out.println(\"\\n======================================\\n\");\r\n            System.out.print(\"Enter Your Choice: \");\r\n\r\n            int choice;\r\n            try {\r\n                choice = Integer.parseInt(sc.nextLine());\r\n            } catch (Exception e) {\r\n                System.out.println(\"Invalid input. Please enter a number.\");\r\n                continue;\r\n            }\r\n\r\n            switch (choice) {\r\n                case 1:\r\n                    System.out.print(\"Enter customer name: \");\r\n                    String name = sc.nextLine();\r\n                    System.out.print(\"Enter food item: \");\r\n                    String item = sc.nextLine();\r\n                    addOrder(name, item);\r\n                    break;\r\n\r\n                case 2:\r\n                    serveOrder();\r\n                    break;\r\n\r\n                case 3:\r\n                    cancelLastOrder();\r\n                    break;\r\n\r\n                case 4:\r\n                    viewOrders();\r\n                    break;\r\n\r\n                case 5:\r\n                    System.out.print(\"Enter Order ID: \");\r\n                    int id = Integer.parseInt(sc.nextLine());\r\n                    searchById(id);\r\n                    break;\r\n\r\n                case 6:\r\n                    System.out.print(\"Enter customer name: \");\r\n                    String searchName = sc.nextLine();\r\n                    searchByName(searchName);\r\n                    break;\r\n\r\n                case 7:\r\n                    countOrders();\r\n                    break;\r\n\r\n                case 8:\r\n                    System.out.println(\" Exiting system. Goodbye!\");\r\n                    return;\r\n\r\n                default:\r\n                    System.out.println(\" Invalid option. Try again.\");\r\n            }\r\n        }\r\n    }\r\n\r\n    public static void main(String[] args) {\r\n        menu();\r\n    }\r\n}<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Program 1 \/\/ Project: Restaurant Order Processing System(Based on Doubly linked list and DQUEUE) \/* Features: 1. Add order at the end of the queue (new order) 2. Serve the first order (remove from&#46;&#46;&#46;<\/p>\n","protected":false},"author":581,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31451],"tags":[32318,34811,34810,32290,32293,34806,34807,34809,34808],"class_list":["post-145738","post","type-post","status-publish","format-standard","hentry","category-dsa-java-tutorials","tag-dsa-java","tag-dsa-java-program-on-restaurant-order-processing-system","tag-dsa-java-restaurant-order-processing-system-project","tag-dsa-using-java","tag-dsa-using-java-program","tag-dsa-using-java-project","tag-restaurant-order-processing-system","tag-restaurant-order-processing-system-in-dsa-java","tag-restaurant-order-processing-system-using-dsa-java"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>DSA Java Project - Restaurant Order Processing System - DataFlair<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-using-dsa-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DSA Java Project - Restaurant Order Processing System - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Program 1 \/\/ Project: Restaurant Order Processing System(Based on Doubly linked list and DQUEUE) \/* Features: 1. Add order at the end of the queue (new order) 2. Serve the first order (remove from&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-using-dsa-java\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-04T12:56:43+00:00\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"DSA Java Project - Restaurant Order Processing System - DataFlair","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-using-dsa-java\/","og_locale":"en_US","og_type":"article","og_title":"DSA Java Project - Restaurant Order Processing System - DataFlair","og_description":"Program 1 \/\/ Project: Restaurant Order Processing System(Based on Doubly linked list and DQUEUE) \/* Features: 1. Add order at the end of the queue (new order) 2. Serve the first order (remove from&#46;&#46;&#46;","og_url":"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-using-dsa-java\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2025-07-04T12:56:43+00:00","author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-using-dsa-java\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-using-dsa-java\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445"},"headline":"DSA Java Project &#8211; Restaurant Order Processing System","datePublished":"2025-07-04T12:56:43+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-using-dsa-java\/"},"wordCount":10,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"keywords":["dsa java","dsa java program on restaurant order processing system","dsa java restaurant order processing system project","dsa using java","dsa using java program","dsa using java project","restaurant order processing system","restaurant order processing system in dsa java","restaurant order processing system using dsa java"],"articleSection":["DSA using Java Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-using-dsa-java\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-using-dsa-java\/","url":"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-using-dsa-java\/","name":"DSA Java Project - Restaurant Order Processing System - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"datePublished":"2025-07-04T12:56:43+00:00","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-using-dsa-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-using-dsa-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-using-dsa-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"DSA using Java Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/dsa-java-tutorials\/"},{"@type":"ListItem","position":3,"name":"DSA Java Project &#8211; Restaurant Order Processing System"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team provides high-impact content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. We make complex concepts easy to grasp, helping learners of all levels succeed in their tech careers.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam6\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/145738","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/581"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=145738"}],"version-history":[{"count":2,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/145738\/revisions"}],"predecessor-version":[{"id":145748,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/145738\/revisions\/145748"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=145738"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=145738"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=145738"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}