

{"id":146076,"date":"2025-07-23T11:20:31","date_gmt":"2025-07-23T05:50:31","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=146076"},"modified":"2025-07-23T11:20:31","modified_gmt":"2025-07-23T05:50:31","slug":"restaurant-order-processing-system-in-dsa-cpp","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-in-dsa-cpp\/","title":{"rendered":"DSA C++ 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\n\r\n#include &lt;iostream&gt;\r\n#include &lt;string&gt;\r\n#include &lt;iomanip&gt;\r\nusing namespace std;\r\n\r\nstruct 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};\r\n\r\nOrder* head = nullptr;\r\nOrder* tail = nullptr;\r\nint nextOrderId = 1;\r\n\r\n\/\/ Create new order node\r\nOrder* createOrder(const string&amp; customerName, const string&amp; foodItem) \r\n{\r\n    Order* newOrder = new Order{nullptr,nextOrderId++, customerName, foodItem,  nullptr };\r\n    return newOrder;\r\n}\r\n\r\n\/\/ Add order at the end\r\nvoid addOrder(const string&amp; customerName, const string&amp; foodItem) \r\n{\r\n    Order* newOrder = createOrder(customerName, foodItem);\r\n    if (head==nullptr) \r\n    {\r\n        head = tail = newOrder;\r\n    } else {\r\n        tail-&gt;next = newOrder;\r\n        newOrder-&gt;prev = tail;\r\n        tail = newOrder;\r\n    }\r\n    cout &lt;&lt; \"Order #\" &lt;&lt; newOrder-&gt;orderId &lt;&lt; \" added for \" &lt;&lt; customerName &lt;&lt; \": \" &lt;&lt; foodItem &lt;&lt; endl;\r\n}\r\n\r\n\/\/ Serve the first order\r\nvoid serveOrder() \r\n{\r\n    if (head==nullptr) \r\n    {\r\n        cout &lt;&lt; \"No orders to serve.\\n\";\r\n        return;\r\n    }\r\n    Order* temp = head;\r\n    cout &lt;&lt; \"Serving Order #\" &lt;&lt; temp-&gt;orderId &lt;&lt; \": \" &lt;&lt; temp-&gt;customerName &lt;&lt; \" - \" &lt;&lt; temp-&gt;foodItem &lt;&lt; endl;\r\n    head = head-&gt;next;\r\n    if (head) \r\n    head-&gt;prev = nullptr;\r\n    else \r\n    tail = nullptr;\r\n    delete temp;\r\n}\r\n\r\n\/\/ Cancel the last order\r\nvoid cancelLastOrder() \r\n{\r\n    if (tail==nullptr) \r\n    {\r\n        cout &lt;&lt; \" No orders to cancel.\\n\";\r\n        return;\r\n    }\r\n    Order* temp = tail;\r\n    cout &lt;&lt; \"Cancelling Order #\" &lt;&lt; temp-&gt;orderId &lt;&lt; \": \" &lt;&lt; temp-&gt;customerName &lt;&lt; \" - \" &lt;&lt; temp-&gt;foodItem &lt;&lt; endl;\r\n    tail = tail-&gt;prev;\r\n    if (tail) \r\n    tail-&gt;next = nullptr;\r\n    else\r\n     head = nullptr;\r\n    delete temp;\r\n}\r\n\r\n\/\/ View all pending orders\r\nvoid viewOrders() \r\n{\r\n    if (head==nullptr) \r\n    {\r\n        cout &lt;&lt; \"No pending orders.\\n\";\r\n        return;\r\n    }\r\n    cout &lt;&lt; \"\\n--- Pending Orders ---\\n\";\r\n    Order* temp = head;\r\n    while (temp!=nullptr)\r\n     {\r\n        cout &lt;&lt; \"Order #\" &lt;&lt; setw(3) &lt;&lt; temp-&gt;orderId\r\n             &lt;&lt; \" | Customer: \" &lt;&lt; setw(15) &lt;&lt; temp-&gt;customerName\r\n             &lt;&lt; \" | Item: \" &lt;&lt; temp-&gt;foodItem &lt;&lt; endl;\r\n        temp = temp-&gt;next;\r\n    }\r\n}\r\n\r\n\/\/ Search by Order ID\r\nvoid searchById(int id) \r\n{\r\n    Order* temp = head;\r\n    while (temp!=nullptr) \r\n    {\r\n        if (temp-&gt;orderId == id) \r\n        {\r\n            cout &lt;&lt; \" Found Order #\" &lt;&lt; temp-&gt;orderId &lt;&lt; \": \" &lt;&lt; temp-&gt;customerName &lt;&lt; \" - \" &lt;&lt; temp-&gt;foodItem &lt;&lt; endl;\r\n            return;\r\n        }\r\n        temp = temp-&gt;next;\r\n    }\r\n    cout &lt;&lt; \"Order ID not found.\\n\";\r\n}\r\n\r\n\/\/ Search by Customer Name\r\nvoid searchByName(const string&amp; name)\r\n {\r\n    Order* temp = head;\r\n    bool found = false;\r\n    while (temp)\r\n     {\r\n        if (temp-&gt;customerName == name) \r\n        {\r\n            cout &lt;&lt; \"Order #\" &lt;&lt; temp-&gt;orderId &lt;&lt; \": \" &lt;&lt; temp-&gt;foodItem &lt;&lt; endl;\r\n            found = true;\r\n        }\r\n        temp = temp-&gt;next;\r\n    }\r\n    if (!found)\r\n        cout &lt;&lt; \" No orders found for \" &lt;&lt; name &lt;&lt; endl;\r\n}\r\n\r\n\/\/ Count total pending orders\r\nvoid countOrders() \r\n{\r\n    Order* temp = head;\r\n    int count = 0;\r\n    while (temp!=nullptr) \r\n    {\r\n        count++;\r\n        temp = temp-&gt;next;\r\n    }\r\n    cout &lt;&lt; \"Total pending orders: \" &lt;&lt; count &lt;&lt; endl;\r\n}\r\n\r\n\/\/ Menu\r\nvoid menu() \r\n{\r\n    int choice;\r\n    string name, item;\r\n    int id;\r\n\r\n    while (true) {\r\n        cout &lt;&lt; \"\\n========== Restaurant Order System ==========\\n\";\r\n        cout &lt;&lt; \"1. Add New Order\\n\";\r\n        cout &lt;&lt; \"2. Serve First Order\\n\";\r\n        cout &lt;&lt; \"3. Cancel Last Order\\n\";\r\n        cout &lt;&lt; \"4. View All Orders\\n\";\r\n        cout &lt;&lt; \"5. Search Order by ID\\n\";\r\n        cout &lt;&lt; \"6. Search Order by Customer Name\\n\";\r\n        cout &lt;&lt; \"7. Count Pending Orders\\n\";\r\n        cout &lt;&lt; \"8. Exit\\n\";\r\n        cout&lt;&lt;\"\\n========================================\\n\";\r\n        cout &lt;&lt; \"Choose an option: \";\r\n        cin &gt;&gt; choice;\r\n        cin.ignore(); \/\/ Clear newline\r\n\r\n        switch (choice) {\r\n            case 1:\r\n                cout &lt;&lt; \"Enter customer name: \";\r\n                getline(cin, name);\r\n                cout &lt;&lt; \"Enter food item: \";\r\n                getline(cin, item);\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                cout &lt;&lt; \"Enter Order ID: \";\r\n                cin &gt;&gt; id;\r\n                cin.ignore();\r\n                searchById(id);\r\n                break;\r\n\r\n            case 6:\r\n                cout &lt;&lt; \"Enter customer name: \";\r\n                getline(cin, name);\r\n                searchByName(name);\r\n                break;\r\n\r\n            case 7:\r\n                countOrders();\r\n                break;\r\n\r\n            case 8:\r\n                cout &lt;&lt; \" Exiting system. Goodbye!\\n\";\r\n                return;\r\n\r\n            default:\r\n                cout &lt;&lt; \"Invalid option. Try again.\\n\";\r\n        }\r\n    }\r\n}\r\n\r\nint main() {\r\n    menu();\r\n    return 0;\r\n}<\/pre>\n<p>&nbsp;<\/p>\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":[31449],"tags":[32874,32869,32870,34887,34946,34807,34944,34859,34945],"class_list":["post-146076","post","type-post","status-publish","format-standard","hentry","category-dsa-cpp-tutorials","tag-dsa-c","tag-dsa-c-practical","tag-dsa-c-program","tag-dsa-c-project","tag-dsa-c-restaurant-order-processing-system-project","tag-restaurant-order-processing-system","tag-restaurant-order-processing-system-in-dsa-c","tag-restaurant-order-processing-system-project","tag-restaurant-order-processing-system-using-dsa-c"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>DSA C++ 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-in-dsa-cpp\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DSA C++ 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-in-dsa-cpp\/\" \/>\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-23T05:50:31+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 C++ 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-in-dsa-cpp\/","og_locale":"en_US","og_type":"article","og_title":"DSA C++ 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-in-dsa-cpp\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2025-07-23T05:50:31+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-in-dsa-cpp\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-in-dsa-cpp\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445"},"headline":"DSA C++ Project &#8211; Restaurant Order Processing System","datePublished":"2025-07-23T05:50:31+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-in-dsa-cpp\/"},"wordCount":11,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"keywords":["dsa c++","dsa c++ practical","dsa c++ program","dsa c++ project","dsa c++ restaurant order processing system project","restaurant order processing system","restaurant order processing system in dsa c++","restaurant order processing system project","restaurant order processing system using dsa c++"],"articleSection":["DSA using C++ Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-in-dsa-cpp\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-in-dsa-cpp\/","url":"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-in-dsa-cpp\/","name":"DSA C++ Project - Restaurant Order Processing System - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"datePublished":"2025-07-23T05:50:31+00:00","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-in-dsa-cpp\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-in-dsa-cpp\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/restaurant-order-processing-system-in-dsa-cpp\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"DSA using C++ Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/dsa-cpp-tutorials\/"},{"@type":"ListItem","position":3,"name":"DSA C++ 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\/146076","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=146076"}],"version-history":[{"count":2,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/146076\/revisions"}],"predecessor-version":[{"id":146086,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/146076\/revisions\/146086"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=146076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=146076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=146076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}