Pages

Sunday, June 7, 2015

Library Management System

#include <iostream.h>
#include <conio.h>
#include <iomanip.h>

struct library
{
char author[20],title[20],pub[20];
int price;
library *next;
}; 
int sum=0;

void main()
{
clrscr();
library *head=NULL;
library *initial(void);
library *purchase(library *);
//library *sale(library *);void display(library *);
void stock(library *);
void search(library *); 
int choice;
while(1)
{
cout<<"Choose your Choice\n";
cout<<"1)    Initial Data Entry\n";
cout<<"2)    Purchase of Book\n";
cout<<"3)    Sales of Book\n";
cout<<"4)    Stock of Book\n";
cout<<"5)    Search of Book\n";
cout<<"6)    Display Books\n";
cout<<"7)    Exit\n";
cout<<"Enter Your Choice:-";
cin>>choice;
    switch(choice)
   {
   case 1 : head=initial();
               getch();
               break;
   case 2 : head=purchase(head);
               getch();
               break;
  // case 3 : head=sale(head);//             break;case 4 : stock(head);
               getch();
               break;
   case 5 : search(head);
               getch();
               break;
   case 6 : display(head);
               getch();
            break;
   case 7 : gotoout;
   default: cout<<"\nInvalid Choice\nTRY AGAIN\n";
   }
clrscr();
}
out:
}

library *initial(void)
{
clrscr();
library *newl=NULL,*start=NULL,*end=newl;
char ch;
    while(1)
   {
   cout<<"\n\nType y or Y for yes\n";
   cout<<"Are you Interested in Entering Entry:-";
   cin>>ch;
   if(ch=='y' || ch=='Y')
   {
         newl=new library;
      cout<<"\n\nEnter Author of Book:-";
      cin>>newl->author;
      cout<<"Enter Title of Book:-";
      cin>>newl->title;
      cout<<"Enter Publication of Book:-";
      cin>>newl->pub;
      cout<<"Enter Price of Book:-";
      cin>>newl->price;
        sum=sum+newl->price;
      if(start==NULL)
          start=newl;
      else
          end->next=newl;
      end=newl;
      end->next=NULL;
   }
   elsebreak;
    }
return(start);
library *purchase(library *start)
{
clrscr();
int pos,count=1,choice;
library *newl,*cnt=start,*head=start;
if(start==NULL)
    cout<<"\n\nLIST IS EMPTY\n";

cout<<"\n\nChoose your Choice\n";
cout<<"1)    Inserting At FIRST POSITION\n";
cout<<"2)    Inserting In BETWEEN\n";
cout<<"3)    Inserting At LAST POSITION \n";
cout<<"4)    Exit\n";
cout<<"Enter your choice:-";
cin>>choice;

if(choice >=1 && choice <=3)
{
    newl=new library;
   cout<<"Enter Author Name :-";
   cin>>newl->author;
   cout<<"Enter Book Title :-";
   cin>>newl->title;
   cout<<"Enter Publication :-";
   cin>>newl->pub;
   cout<<"Enter Price of Book:-";
   cin>>newl->price;
   sum=sum+newl->price;
}

switch(choice)
{
    case 1 :          //for First position
                       newl->next=head;
                          head=newl;
                          break;

   case 2 :          //for Middle position
                       read:
                       cout<<"\n\nAt which position you want to insert Record:-";
                        cin>>pos;
                        while(cnt!=NULL)
                        {
                        count++;                   //cnt for counting variable of type node
                        cnt=cnt->next;
                        }
                        if(pos<1 || pos>count+1)
                       {
                        cout<<"\n\nEntered position is Invalid\nTRY AGAIN\n";
                        goto read;
                  }

                  {              //Extra Braces are used as case bypasses intialization of a local variableint 
                    c=1;
                        while(c<pos-1)
                        {
                            c++;
                            start=start->next;
                        }
                  }
                        newl->next=start->next;
                        start->next=newl;
                       break;

   case 3 :        //for Last positionwhile(start->next!=NULL)
                            start=start->next;

                       start->next=newl;
                       newl->next=NULL;
                  break;

   case 4 :         gotoout;

   default:       cout<<"\nEntered Choice is Invalid Try again\n";
                       break;

}
out:
return(head);
}


void stock(library *start)
{
clrscr();
int count=0;
    while(start!=NULL)
   {
        count++;
      start=start->next;
   }
cout<<"\n\n\n\tTotal Number of Books in Stock is  "<<count<<endl;
cout<<"\tPurchase Price of Total Stock is  "<<sum;
}


void search(library *start)
{
clrscr();
char author[20],title[20];
cout<<"Enter Book title and its Author name respectively to Search in stock\n";
cin>>title>>author;
    while(start!=NULL)
   {
        if(title==start->title)
      {
          if(author==start->author)
         {
             cout<<"\n\nBook is In Stock\n";
            cout<<"It Cost Rs"<<start->price;
            return;
         }
      }
    }
cout<<"\n\nSEARCH IS NOT IN STOCK\n";
}


void display(library *start)
{
clrscr();
cout<<setw(10)<<"Book Title"<<setw(25)<<"Author of Book"<<setw(25)<<"Publication"<<setw(20)<<"Price"<<endl<<endl;

for(int i=0;i<40;i++)
    cout<<"=*";
cout<<endl;
while(start!=NULL)
{
cout<<setw(10)<<start->title<<setw(25)<<start->author<<setw(25)<<start->pub<<setw(20)<<start->price<<endl;
start=start->next;
}

}

No comments:

Post a Comment