// Author: Mohammed Ali Akbani

// E-mail: duke@samwonline.com

// Level : beginner

// Please do not repost it in you name,

//     and vote for me.

#include 

#include 

struct order

    {

     char code[7];

     int qnty;

     order *next;

};

order *first, *view, *previous, *neworder; //pointers to keep track of the nodes in the list

void new_order( int &order_no ) //adds a new node in the list

    {

     if( order_no > 0 )

         {

         neworder = new order;//if a order already exists in the list

         previous -> next = neworder;//previous node now points to the new node 

         neworder -> next = NULL;//the new order now points to NULL meaning

         previous = neworder;//its the last node

         order_no++;

         }

         else

             {

             neworder = new order;

             neworder -> next = NULL;

             previous = first = neworder;

             order_no++;

             }

        }

        void delete_bill( int &order_no) // all the nodes are deleted

            {

             previous = first;

             for( int j=0; j

                 {

                 previous = previous -> next;

                 delete first;

                 first = previous;

                 }

            }

            void main()

                {

                 int order_no = 0;

                 char choice = 'n';

                 first = view = previous = neworder = NULL;

                 while( choice == 'n' )

                     {

                     clrscr(); // comment this line if error generated

                     new_order( order_no );

                     gotoxy(30,9);

                     cout << "Enter item code: ";

                     cin >> neworder -> code;

                     gotoxy(30,11);

                     cout << "Enter number of items: ";

                     cin >> neworder -> qnty;

                     gotoxy(30,13);

                     cout << "Enter choice : ";

                     choice = getch();

                     }

                     view = first;

                     clrscr(); // comment this line if error generated

                     for( int i=0; i

                         {

                         gotoxy(30,i+2);

                         cout << view -> code;

                         gotoxy(40,i+2);

                         cout << view -> qnty;

                         view = view -> next;

                         }

                         getch();

                         delete_bill( order_no );

                    }