C++ Programming Blog

 
 
 

Image

//Library Database

#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 : goto out;
   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;
   }
   else
       break;
    }
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 variable
                        int c=1;
                        while(c<pos-1)
                        {
                            c++;
                            start=start->next;
                        }
                  }
                        newl->next=start->next;
                        start->next=newl;
                       break;

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

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

   case 4 :         goto out;

   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;
}
}

 
 
Didn't find what you were looking for? Find more on Library Management System