Advertisement
TH_Pallab

Customer Half

Mar 30th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 14.85 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <stdlib.h>
  4. #include <conio.h>
  5. #include <string>
  6. using namespace std;
  7.  
  8. int cnt, choice, quanchoice, totalcost;
  9.  
  10. bool passcheck()
  11. {
  12.     string password;
  13.     char takepass;
  14.     printf("\n\tPlease Enter The Password (Maximum Length 8): ");
  15.     takepass = _getch();
  16.     while (takepass != 13)
  17.     {
  18.         password.push_back(takepass);
  19.         printf("*");
  20.         takepass = _getch();
  21.     }
  22.     if (password == "1234")
  23.         return true;
  24.     else
  25.         return false;
  26. }
  27.  
  28. struct item
  29. {
  30.     string name;
  31.     int price;
  32.     int quantity;
  33.     struct item *nextsnacks;
  34.     struct item *nextmeals;
  35.     struct item *nextdrinks;
  36.     struct item *nextitem;
  37. }*snacksvariable, *mealsvariable, *drinksvariable, *snackstemp, *mealstemp, *drinkstemp, *itemvariable;
  38.  
  39. struct head
  40. {
  41.     int counter;
  42.     struct item *pointer;
  43. }*sheadvariable, *mheadvariable, *dheadvariable, *iheadvariable;
  44.  
  45. void creat(string putname, int putprice, int putcategory)
  46. {
  47.     if (putcategory == 1)
  48.     {
  49. //        cout << "Enter1-1\n";
  50.         snacksvariable = (struct item*) malloc(sizeof (struct item));
  51. //        cout << "Enter1-2\n";
  52.         snacksvariable -> name = putname;
  53.         snacksvariable -> price = putprice;
  54.         snacksvariable -> quantity = 10;
  55.         snacksvariable -> nextsnacks = NULL;
  56.         sheadvariable -> counter++;
  57.  
  58.         if (sheadvariable -> counter != 1)
  59.             snacksvariable -> nextsnacks = sheadvariable -> pointer;
  60.         sheadvariable -> pointer = snacksvariable;
  61.         printf("\n\t== Successfully Added a New Snacks Item ==\n");
  62.     }
  63.  
  64.     else if (putcategory == 2)
  65.     {
  66.         mealsvariable = (struct item*) malloc(sizeof (struct item));
  67. //        cout << "Enter2\n";
  68.         mealsvariable -> name = putname;
  69.         mealsvariable -> price = putprice;
  70.         mealsvariable -> quantity = 10;
  71.         mealsvariable -> nextmeals = NULL;
  72.         mheadvariable -> counter++;
  73.  
  74.         if (mheadvariable -> counter != 1)
  75.             mealsvariable -> nextmeals = mheadvariable -> pointer;
  76.         mheadvariable -> pointer = mealsvariable;
  77.         printf("\n\t== Successfully Added a New Meals Item ==\n");
  78.     }
  79.  
  80.     else if (putcategory == 3)
  81.     {
  82. //        cout << "Enter3\n";
  83.         drinksvariable = (struct item*) malloc(sizeof (struct item));
  84.         drinksvariable -> name = putname;
  85.         drinksvariable -> price = putprice;
  86.         drinksvariable -> quantity = 10;
  87.         drinksvariable -> nextdrinks = NULL;
  88.         dheadvariable -> counter++;
  89.  
  90.         if (dheadvariable -> counter != 1)
  91.             drinksvariable -> nextdrinks = dheadvariable -> pointer;
  92.         dheadvariable -> pointer = drinksvariable;
  93.         printf("\n\t== Successfully Added a New Drinks Item ==\n");
  94.     }
  95.  
  96.     else if (putcategory == 4)
  97.     {
  98.         itemvariable = (struct item*) malloc(sizeof(struct item));
  99.         itemvariable -> name = putname;
  100.         itemvariable -> price = putprice;
  101.         itemvariable -> quantity = quanchoice;
  102.         itemvariable -> nextitem = NULL;
  103.         iheadvariable -> counter++;
  104.  
  105.         if (iheadvariable -> counter != 1)
  106.             itemvariable -> nextitem = iheadvariable -> pointer;
  107.         iheadvariable -> pointer = itemvariable;
  108.     }
  109. }
  110.  
  111. void display()
  112. {
  113.     snacksvariable = (struct item*) malloc(sizeof (struct item));
  114.     printf("\nCategories:\n");
  115.     printf("\t1 = Snacks\n");
  116.     printf("\t2 = Meal\n");
  117.     printf("\t3 = Drinks\n");
  118.     printf("\n\tSelect a Category: ");
  119.     scanf("%d",&choice);
  120.     printf("\t-----------------------------------------------------------\n");
  121.     printf("\n\t No.\tName\t\t\tPrice\t\tQuantity\n");
  122.     printf("\t-----------------------------------------------------------\n");
  123.     int number = 0;
  124.     if (choice == 1)
  125.     {
  126.         snackstemp = sheadvariable -> pointer;
  127.         while (snackstemp != NULL)
  128.         {
  129.             number++;
  130.             printf("\t %d.",number);
  131.             cout << "\t" << snackstemp -> name;
  132.             printf("\t\t %d\t\t   %d\n",snackstemp -> price, snackstemp -> quantity);
  133.             snackstemp = snackstemp -> nextsnacks;
  134.         }
  135.     }
  136.  
  137.     else if (choice == 2)
  138.     {
  139.         mealstemp = mheadvariable -> pointer;
  140.         while (mealstemp != NULL)
  141.         {
  142.             number++;
  143.             printf("\t %d.",number);
  144.             cout << "\t" << mealstemp -> name;
  145.             printf("\t\t %d\t\t   %d\n",mealstemp -> price, mealstemp -> quantity);
  146.             mealstemp = mealstemp -> nextmeals;
  147.         }
  148.     }
  149.  
  150.     else if (choice == 3)
  151.     {
  152.         drinkstemp = dheadvariable -> pointer;
  153.         while (drinkstemp != NULL)
  154.         {
  155.             number++;
  156.             printf("\t %d.",number);
  157.             cout << "\t" << drinkstemp -> name;
  158.             printf("\t\t %d\t\t   %d\n",drinkstemp -> price, drinkstemp -> quantity);
  159.             drinkstemp = drinkstemp -> nextdrinks;
  160.         }
  161.     }
  162. }
  163.  
  164. traverse (struct item *temp, int take, int option, int catagory)
  165. {
  166.     if (temp != NULL)
  167.     {
  168.         cnt++;
  169.         if (cnt == take)
  170.         {
  171.             if (option == 1)
  172.             {
  173.                 int takequantity;
  174.                 printf("\n\tEnter Your Updated Quantity: ");
  175.                 scanf("%d",&takequantity);
  176.                 temp -> quantity = takequantity;
  177.                 printf("\n\t== Successfully Updated The Quantity ==\n");
  178.             }
  179.  
  180.             else if (option == -1)
  181.             {
  182.                 int newprice;
  183.                 printf("\n\tEnter The New Price: ");
  184.                 scanf("%d",&newprice);
  185.                 temp -> price = newprice;
  186.                 printf("\n\t== Successfully Revise The Price ==\n");
  187.             }
  188.  
  189.             else if (option == 2)
  190.             {
  191.                 if (catagory == 1)
  192.                 {
  193.                     snackstemp = temp -> nextsnacks;
  194.                     temp -> nextsnacks = snackstemp -> nextsnacks;
  195.                     free(snackstemp);
  196.                     sheadvariable -> counter --;
  197.                     printf("\n\t== Successfully Removed An Item ==\n");
  198.                 }
  199.  
  200.                 else if (catagory == 2)
  201.                 {
  202.                     mealstemp = temp -> nextmeals;
  203.                     temp -> nextmeals = mealstemp -> nextmeals;
  204.                     free(mealstemp);
  205.                     mheadvariable -> counter --;
  206.                     printf("\n\t== Successfully Removed An Item ==\n");
  207.                 }
  208.  
  209.                 else if (catagory == 3)
  210.                 {
  211.                     drinkstemp = temp -> nextdrinks;
  212.                     temp -> nextdrinks = drinkstemp -> nextdrinks;
  213.                     free(drinkstemp);
  214.                     dheadvariable -> counter --;
  215.                     printf("\n\t== Successfully Removed An Item ==\n");
  216.                 }
  217.             }
  218.  
  219.             else if (option == -2)
  220.             {
  221.                 totalcost = totalcost + ((temp -> price) * quanchoice);
  222.                 temp -> quantity -= quanchoice;
  223.                 creat(temp -> name, temp -> price, 4);
  224.             }
  225.         }
  226.         if (catagory == 1)
  227.             traverse (temp -> nextsnacks, take, option, catagory);
  228.         else if (catagory == 2)
  229.             traverse (temp -> nextmeals, take, option, catagory);
  230.         else if (catagory == 3)
  231.             traverse (temp -> nextdrinks, take, option, catagory);
  232.     }
  233. }
  234.  
  235. int main()
  236. {
  237.     sheadvariable = (struct head*) malloc(sizeof (struct head));
  238.     sheadvariable -> counter = 0;
  239.     sheadvariable -> pointer = NULL;
  240.  
  241.     mheadvariable = (struct head*) malloc(sizeof (struct head));
  242.     mheadvariable -> counter = 0;
  243.     mheadvariable -> pointer = NULL;
  244.  
  245.     dheadvariable = (struct head*) malloc(sizeof (struct head));
  246.     dheadvariable -> counter = 0;
  247.     dheadvariable -> pointer = NULL;
  248.  
  249.     iheadvariable = (struct head*) malloc(sizeof (struct head));
  250.     iheadvariable -> counter = 0;
  251.     iheadvariable -> pointer = NULL;
  252.  
  253.     printf("\n\t*************** WELCOME TO THE SUPER RESTURENT ***************\n");
  254.     printf("\t--------------------------------------------------------------\n");
  255.  
  256.     mainmenu:
  257.  
  258.     int user_choice;
  259.     string password;
  260.     char takepass;
  261.  
  262.     printf("\nUsers:\n");
  263.     printf("\t1 = Admin\n\t2 = Customer\n\t0 = Exit\n\n");
  264.     printf("\tYour Choice: ");
  265.     scanf("%d",&user_choice);
  266.  
  267.     if (user_choice == 1)
  268.     {
  269.         if (passcheck() == true)
  270.         {
  271.             printf("\n\n");
  272.             adminlevel:
  273.             int adminchoice, takecategory, takenumber;
  274.             printf("\t1 = Add a New Item.\n");
  275.             printf("\t2 = Update Some Quantity.\n");
  276.             printf("\t3 = Revise Some Price.\n");
  277.             printf("\t4 = Remove Some Item.\n");
  278.             printf("\t5 = Display The Menu.\n");
  279.             printf("\t6 = Return Main Menu.\n");
  280.             printf("\n\tEnter Your Choice: ");
  281.             scanf("%d",&adminchoice);
  282.  
  283.             if (adminchoice == 1)
  284.             {
  285.                 int take, tempprice;
  286.                 string tempname;
  287.                 printf("\nCategories:\n");
  288.                 printf("\t1 = Snacks\n");
  289.                 printf("\t2 = Meal\n");
  290.                 printf("\t3 = Drinks\n");
  291.                 printf("\n\tSelect a Category: ");
  292.                 scanf("%d",&take);
  293.                 cin.ignore();
  294.                 printf("\n\tPlease Enter The Name of This Item: ");
  295.                 getline(cin, tempname);
  296.                 printf("\n\tPlease Enter The Price: ");
  297.                 scanf("%d",&tempprice);
  298.                 creat(tempname, tempprice, take);
  299.             }
  300.  
  301.             else if (adminchoice == 2 || adminchoice == 3 || adminchoice == 4)
  302.             {
  303.                 display();
  304.                 printf("\n\tPlease Choose The Number of Your Required Item: ");
  305.                 scanf("%d",&takenumber);
  306.                 if (choice == 1)
  307.                 {
  308.                     cnt = 0;
  309.                     if (adminchoice == 2)
  310.                         traverse(sheadvariable -> pointer, takenumber, 1, choice);
  311.                     else if (adminchoice == 3)
  312.                         traverse(sheadvariable -> pointer, takenumber, -1, choice);
  313.                     else if (adminchoice == 4)
  314.                     {
  315.                         if (takenumber == 1)
  316.                         {
  317.                             snackstemp = sheadvariable -> pointer;
  318.                             sheadvariable -> pointer = sheadvariable -> pointer -> nextsnacks;
  319.                             free(snackstemp);
  320.                             sheadvariable -> counter --;
  321.                             printf("\n\t== Successfully Removed An Item ==\n");
  322.                         }
  323.                         else
  324.                             traverse(sheadvariable -> pointer, --takenumber, 2, choice);
  325.                     }
  326.                 }
  327.  
  328.                 else if (choice == 2)
  329.                 {
  330.                     cnt = 0;
  331.                     if (adminchoice == 2)
  332.                         traverse(mheadvariable -> pointer, takenumber, 1, choice);
  333.                     else if (adminchoice == 3)
  334.                         traverse(mheadvariable -> pointer, takenumber, -1, choice);
  335.                     else if (adminchoice == 4)
  336.                     {
  337.                         if (takenumber == 1)
  338.                         {
  339.                             mealstemp = mheadvariable -> pointer;
  340.                             mheadvariable -> pointer = mheadvariable -> pointer -> nextmeals;
  341.                             free(mealstemp);
  342.                             mheadvariable -> counter --;
  343.                             printf("\n\t== Successfully Removed An Item ==\n");
  344.                         }
  345.                         else
  346.                             traverse(mheadvariable -> pointer, --takenumber, 2, choice);
  347.                     }
  348.                 }
  349.  
  350.                 else if (choice == 3)
  351.                 {
  352.                     cnt = 0;
  353.                     if (adminchoice == 2)
  354.                         traverse(dheadvariable -> pointer, takenumber, 1, choice);
  355.                     else if (adminchoice == 3)
  356.                         traverse(dheadvariable -> pointer, takenumber, -1, choice);
  357.                     else if (adminchoice == 4)
  358.                     {
  359.                         if (takenumber == 1)
  360.                         {
  361.                             drinkstemp = dheadvariable -> pointer;
  362.                             dheadvariable -> pointer = dheadvariable -> pointer -> nextdrinks;
  363.                             free(drinkstemp);
  364.                             dheadvariable -> counter --;
  365.                             printf("\n\t== Successfully Removed An Item ==\n");
  366.                         }
  367.                         else
  368.                             traverse(dheadvariable -> pointer, --takenumber, 2, choice);
  369.                     }
  370.                 }
  371.             }
  372.  
  373.             else if (adminchoice == 5)
  374.                 display();
  375.  
  376.             else if (adminchoice == 6)
  377.                 goto mainmenu;
  378.  
  379.             printf("\n");
  380.             goto adminlevel;
  381.         }
  382.         else
  383.         {
  384.             printf("\tInvalid Password! You Cannot Access This Feature.\n");
  385.             goto mainmenu;
  386.         }
  387.     }
  388.  
  389.     else if (user_choice == 2)
  390.     {
  391.         int customer_choice;
  392.         printf("\n\t*************** WELCOME TO THE SUPER RESTURENT ***************\n");
  393.         printf("\t--------------------------------------------------------------\n\n");
  394.         customerlevel:
  395.         printf("\t1 = Make Your Choice.\n");
  396.         printf("\t0 = Leave.\n");
  397.         printf("\n\tPlease Enter Your Choice: ");
  398.         scanf("%d",&customer_choice);
  399.         totalcost = 0;
  400.         if (customer_choice == 1)
  401.         {
  402.             choicelevel:
  403.             int numchoice;
  404.             char morechoice;
  405.             display();
  406.             printf("\n\tEnter Your Choice: ");
  407.             scanf("%d",&numchoice);
  408.             printf("\tEnter Your Required Quantity: ");
  409.             scanf("%d",&quanchoice);
  410.             cnt = 0;
  411.             if (choice == 1)
  412.                 traverse(sheadvariable -> pointer, numchoice, -2, choice);
  413.             else if (choice == 2)
  414.                 traverse(mheadvariable -> pointer, numchoice, -2, choice);
  415.             else if (choice == 3)
  416.                 traverse(dheadvariable -> pointer, numchoice, -2, choice);
  417.             cin.ignore();
  418.             printf("\n\tDo You Want to Order Some Other Items? (Y = Yes)\t");
  419.             scanf("%c",&morechoice);
  420.             if (morechoice == 'y' || morechoice == 'Y')
  421.                 goto choicelevel;
  422.             else
  423.             {
  424.  
  425.             }
  426.         }
  427.  
  428.         goto customerlevel;
  429.     }
  430.  
  431.     else if (user_choice == 0)
  432.     {
  433.         printf("\n\tThank You.\n");
  434.         return 0;
  435.     }
  436.  
  437.     else
  438.     {
  439.         printf("\n\tUnknown Option. Please Try Again.\n");
  440.         goto mainmenu;
  441.     }
  442. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement