using namespace std;
//queueu struct
struct queue
{
//to store each order data
string ord_name;
string ord_dsc;
float ord_total;
float ord_tip;
string ord_date;
//next and previouse order record
queue *next;
queue *prev;
};
//to hold first node address of linklist
queue *root;
//function to check is queu empty or not
bool is_Empty()
{
if (root == NULL)
return true;
else
return false;
}
//function to add order
void addOrder()
{
queue *order = new queue();
cout < "\nname="" on="" order:="">
cin.ignore();
getline(cin, order->ord_name);
cout < "\norder="" description:="">
getline(cin, order->ord_dsc);
cout < "\norder="" total="" (integer):="">
cin >> order->ord_total;
cout < "\norder="" tip="" (integer):="">
cin >> order->ord_tip;
cout < "\ndate="" of="" order:="">
cin.ignore();
getline(cin, order->ord_date);
order->prev = NULL;
order->next = NULL;
if (is_Empty())
root = order;
else
{
queue *temp = root;
while (temp->next != NULL)
temp = temp->next;
temp->next = order;
order->prev = temp;
}
cout < "\norder="" placed="">
}
//function to delete order
void delOrder()
{
if (is_Empty())
cout < "\nplease="" add="" a="" order="">
else
{
queue *temp = root->next;
cout < "\nfoloowing="" order="" is="" being="">
cout < "\nname="" on="" order:="">
coutord_name;
cout < "\norder="" description:="">
cout < root-="">ord_dsc;
cout < "\norder="" total:="">
coutord_total;
cout < "\norder="" tip:="">
coutord_tip;
cout < "\ndate="" of="" order:="">
cout < root-="">ord_date;
delete root;
root = temp;
}
}
//function to view next ordre
void nextOrder()
{
if (root->next == NULL)
cout < "\nnext="" order="" not="" placed="">
else
{
cout < "\nnext="" order="">
cout < "\n\nname="" on="" order:="">
cout < root-="">next->ord_name;
cout < "\norder="" description:="">
cout < root-="">next->ord_dsc;
cout < "\norder="" total:="">
cout < root-="">next->ord_total;
cout < "\norder="" tip:="">
cout < root-="">next->ord_tip;
cout < "\ndate="" of="" order:="">
cout < root-="">next->ord_date;
}
}
//function to view previouse ordre
void prevOrder()
{
if (root->prev == NULL)
cout < "\npreviouse="" order="" not="">
else
{
cout < "\npreviouse="" order="">
cout < "\n\nname="" on="" order:="">
cout < root-="">next->prev->ord_name;
cout < "\norder="" description:="">
cout < root-="">next->prev->ord_dsc;
cout < "\norder="" total:="">
cout < root-="">next->prev->ord_total;
cout < "\norder="" tip:="">
cout < root-="">next->prev->ord_tip;
cout < "\ndate="" of="" order:="">
cout < root-="">next->prev->ord_date;
}
}
//functi9on to view current ordre
void displayCurrentOrder()
{
if (is_Empty())
cout < "\norder="" queue="" is="">
else
{
cout < "\ncurrent="">
cout < "\n\nname="" on="" order:="">
cout < root-="">ord_name;
cout < "\norder="" description:="">
cout < root-="">ord_dsc;
cout < "\norder="" total:="">
cout < root-="">ord_total;
cout < "\norder="" tip:="">
cout < root-="">ord_tip;
cout < "\ndate="" of="" order:="">
cout < root-="">ord_date;
}
}
//get number of ordres
int getOrderSize()
{
int size = 0;
queue *temp = root;
while (temp != NULL)
{
size++;
temp = temp->next;
}
return size;
}
//main dricver function
int main()
{
root = NULL;
int option = 0;
while (true){
cout < "\n\n1)="" -="" add="" order="" \n2)="" -="" next="" order="" \n3)="" -="" previous="">
< "\n4)="" -="" delete="" order\n5)="" -="" order="" size\n6)="" -="" view="" current="">
cout < "\n\nenter="" your="" choice:="">
cin >> option;
switch (option)
{
case 1:
addOrder();
break;
case 2:
nextOrder();
break;
case 3:
prevOrder();
break;
case 4:
delOrder();
break;
case 5:
getOrderSize();
break;
case 6:
displayCurrentOrder();
break;
default:
cout < "\nwrong="" input="">
break;
}
}
return 0;
}
HOWEVER, I NEED IT TO VIEW ORDER LIST. PLEASE HELP