Library Management System Project

#include<fstream.h>
#include<conio.h>
#include<stdio.h>
#include<process.h>
#include<string.h>
#include<iomanip.h>

//***************************************************************
//                   CLASS USED IN PROJECT
//****************************************************************



class book
{
 char bno[6];
 char bname[50];
 char aname[20];
  public:
 void create_book()
 {
  cout<<"\nNEW BOOK ENTRY...\n";
  cout<<"\nEnter The book no.";
  cin>>bno;
  cout<<"\n\nEnter The Name of The Book ";
  gets(bname);
  cout<<"\n\nEnter The Author's Name ";
  gets(aname);
  cout<<"\n\n\nBook Created..";
 }

 void show_book()
 {
  cout<<"\nBook no. : "<<bno;
  cout<<"\nBook Name : ";
  puts(bname);
  cout<<"Author Name : ";
  puts(aname);
 }

 void modify_book()
 {
  cout<<"\nBook no. : "<<bno;
  cout<<"\nModify Book Name : ";
  gets(bname);
  cout<<"\nModify Author's Name of Book : ";
  gets(aname);
 }

 char* retbno()
 {
  return bno;
 }

 void report()
 {cout<<bno<<setw(30)<<bname<<setw(30)<<aname<<endl;}


};         //class ends here




class student
{
 char admno[6];
 char name[20];
 char stbno[6];
 int token;
public:
 void create_student()
 {
  clrscr();
   cout<<"\nNEW STUDENT ENTRY...\n";
  cout<<"\nEnter The admission no. ";
  cin>>admno;
  cout<<"\n\nEnter The Name of The Student ";
  gets(name);
  token=0;
  stbno[0]='/0';
  cout<<"\n\nStudent Record Created..";
 }

 void show_student()
 {
  cout<<"\nAdmission no. : "<<admno;
  cout<<"\nStudent Name : ";
  puts(name);
  cout<<"\nNo of Book issued : "<<token;
  if(token==1)
   cout<<"\nBook No "<<stbno;
 }

 void modify_student()
 {
  cout<<"\nAdmission no. : "<<admno;
  cout<<"\nModify Student Name : ";
  gets(name);
 }

 char* retadmno()
 {
  return admno;
 }

 char* retstbno()
 {
  return stbno;
 }

 int rettoken()
 {
  return token;
 }

 void addtoken()
 {token=1;}

 void resettoken()
 {token=0;}

 void getstbno(char t[])
 {
  strcpy(stbno,t);
 }

 void report()
 {cout<<"\t"<<admno<<setw(20)<<name<<setw(10)<<token<<endl;}

};         //class ends here




//***************************************************************
//     global declaration for stream object, object
//****************************************************************

fstream fp,fp1;
book bk;
student st;


//***************************************************************
//     function to write in file
//****************************************************************

void write_book()
{
 char ch;
 fp.open("book.dat",ios::out|ios::app);
 do
 {
  clrscr();
  bk.create_book();
  fp.write((char*)&bk,sizeof(book));
  cout<<"\n\nDo you want to add more record..(y/n?)";
  cin>>ch;
 }while(ch=='y'||ch=='Y');
 fp.close();
}

void write_student()
{
 char ch;
 fp.open("student.dat",ios::out|ios::app);
 do
 {
  st.create_student();
  fp.write((char*)&st,sizeof(student));
  cout<<"\n\ndo you want to add more record..(y/n?)";
  cin>>ch;
 }while(ch=='y'||ch=='Y');
 fp.close();
}


//***************************************************************
//     function to read specific record from file
//****************************************************************


void display_spb(char n[])
{
 cout<<"\nBOOK DETAILS\n";
 int flag=0;
 fp.open("book.dat",ios::in);
 while(fp.read((char*)&bk,sizeof(book)))
 {
  if(strcmpi(bk.retbno(),n)==0)
  {
   bk.show_book();
    flag=1;
  }
 }
 
 fp.close();
 if(flag==0)
  cout<<"\n\nBook does not exist";
 getch();
}

void display_sps(char n[])
{
 cout<<"\nSTUDENT DETAILS\n";
 int flag=0;
 fp.open("student.dat",ios::in);
 while(fp.read((char*)&st,sizeof(student)))
 {
  if((strcmpi(st.retadmno(),n)==0))
  {
   st.show_student();
   flag=1;
  }
 }
 
 fp.close();
 if(flag==0)
      cout<<"\n\nStudent does not exist";
  getch();
}


//***************************************************************
//     function to modify record of file
//****************************************************************


void modify_book()
{
 char n[6];
 int found=0;
 clrscr();
 cout<<"\n\n\tMODIFY BOOK REOCORD.... ";
 cout<<"\n\n\tEnter The book no. of The book";
 cin>>n;
 fp.open("book.dat",ios::in|ios::out);
 while(fp.read((char*)&bk,sizeof(book)) && found==0)
 {
  if(strcmpi(bk.retbno(),n)==0)
  {
   bk.show_book();
   cout<<"\nEnter The New Details of book"<<endl;
   bk.modify_book();
   int pos=-1*sizeof(bk);
       fp.seekp(pos,ios::cur);
       fp.write((char*)&bk,sizeof(book));
       cout<<"\n\n\t Record Updated";
       found=1;
  }
 }

     fp.close();
     if(found==0)
      cout<<"\n\n Record Not Found ";
     getch();
}


void modify_student()
{
 char n[6];
 int found=0;
 clrscr();
 cout<<"\n\n\tMODIFY STUDENT RECORD... ";
 cout<<"\n\n\tEnter The admission no. of The student";
 cin>>n;
 fp.open("student.dat",ios::in|ios::out);
 while(fp.read((char*)&st,sizeof(student)) && found==0)
 {
  if(strcmpi(st.retadmno(),n)==0)
  {
   st.show_student();
   cout<<"\nEnter The New Details of student"<<endl;
   st.modify_student();
   int pos=-1*sizeof(st);
   fp.seekp(pos,ios::cur);
   fp.write((char*)&st,sizeof(student));
   cout<<"\n\n\t Record Updated";
   found=1;
  }
 }
 
 fp.close();
 if(found==0)
  cout<<"\n\n Record Not Found ";
 getch();
}

//***************************************************************
//     function to delete record of file
//****************************************************************


void delete_student()
{
 char n[6];
 int flag=0; 
 clrscr();
     cout<<"\n\n\n\tDELETE STUDENT...";
     cout<<"\n\nEnter The admission no. of the Student You Want To Delete : ";
     cin>>n;
     fp.open("student.dat",ios::in|ios::out);
     fstream fp2;
     fp2.open("Temp.dat",ios::out);
     fp.seekg(0,ios::beg);
     while(fp.read((char*)&st,sizeof(student)))
 {
  if(strcmpi(st.retadmno(),n)!=0)
        fp2.write((char*)&st,sizeof(student));
  else
      flag=1;
 }
     
 fp2.close();
     fp.close();
     remove("student.dat");
     rename("Temp.dat","student.dat");
     if(flag==1)
       cout<<"\n\n\tRecord Deleted ..";
     else
       cout<<"\n\nRecord not found";
     getch();
}


void delete_book()
{
 char n[6];
 clrscr();
 cout<<"\n\n\n\tDELETE BOOK ...";
 cout<<"\n\nEnter The Book no. of the Book You Want To Delete : ";
 cin>>n;
 fp.open("book.dat",ios::in|ios::out);
 fstream fp2;
 fp2.open("Temp.dat",ios::out);
 fp.seekg(0,ios::beg);
 while(fp.read((char*)&bk,sizeof(book)))
 {
  if(strcmpi(bk.retbno(),n)!=0)  
  {
   fp2.write((char*)&bk,sizeof(book));
  }
 }
     
 fp2.close();
     fp.close();
     remove("book.dat");
     rename("Temp.dat","book.dat");
     cout<<"\n\n\tRecord Deleted ..";
     getch();
}



//***************************************************************
//     function to display all students list
//****************************************************************

void display_alls()
{
 clrscr();
      fp.open("student.dat",ios::in);
      if(!fp)
      {
         cout<<"ERROR!!! FILE COULD NOT BE OPEN ";
         getch();
         return;
      }

 cout<<"\n\n\t\tSTUDENT LIST\n\n";
 cout<<"==================================================================\n";
 cout<<"\tAdmission No."<<setw(10)<<"Name"<<setw(20)<<"Book Issued\n";
 cout<<"==================================================================\n";

 while(fp.read((char*)&st,sizeof(student)))
 {
  st.report();
 }
      
 fp.close();
 getch();
}


//***************************************************************
//     function to display Books list
//****************************************************************

void display_allb()
{
 clrscr();
 fp.open("book.dat",ios::in);
 if(!fp)
 {
  cout<<"ERROR!!! FILE COULD NOT BE OPEN ";
         getch();
         return;
      }

 cout<<"\n\n\t\tBook LIST\n\n";
 cout<<"=========================================================================\n";
 cout<<"Book Number"<<setw(20)<<"Book Name"<<setw(25)<<"Author\n";
 cout<<"=========================================================================\n";

 while(fp.read((char*)&bk,sizeof(book)))
 {
  bk.report();
 }
      fp.close();
      getch();
}



//***************************************************************
//     function to issue book
//****************************************************************

void book_issue()
{
 char sn[6],bn[6];
 int found=0,flag=0;
 clrscr();
 cout<<"\n\nBOOK ISSUE ...";
 cout<<"\n\n\tEnter The student's admission no.";
 cin>>sn;
 fp.open("student.dat",ios::in|ios::out);
     fp1.open("book.dat",ios::in|ios::out);
     while(fp.read((char*)&st,sizeof(student)) && found==0)
        {
  if(strcmpi(st.retadmno(),sn)==0)
  {
   found=1;
   if(st.rettoken()==0)
   {
          cout<<"\n\n\tEnter the book no. ";
    cin>>bn;
    while(fp1.read((char*)&bk,sizeof(book))&& flag==0)
    {
        if(strcmpi(bk.retbno(),bn)==0)
     {
      bk.show_book();
      flag=1;
      st.addtoken();
      st.getstbno(bk.retbno());
             int pos=-1*sizeof(st);
      fp.seekp(pos,ios::cur);
      fp.write((char*)&st,sizeof(student));
      cout<<"\n\n\t Book issued successfully\n\nPlease Note: Write current date 
      in backside of book and submit within 15 days fine Rs. 1 for each day  
      after 15 days period";
     }
        }
      if(flag==0)
         cout<<"Book no does not exist";
   }
       else
      cout<<"You have not returned the last book ";

  }
 }
       if(found==0)
  cout<<"Student record not exist...";
 getch();
   fp.close();
   fp1.close();
}

//***************************************************************
//     function to deposit book
//****************************************************************

void book_deposit()
{
    char sn[6],bn[6];
    int found=0,flag=0,day,fine;
    clrscr();
    cout<<"\n\nBOOK DEPOSIT ...";
    cout<<"\n\n\tEnter The student̢۪s admission no.";
    cin>>sn;
    fp.open("student.dat",ios::in|ios::out);
    fp1.open("book.dat",ios::in|ios::out);
    while(fp.read((char*)&st,sizeof(student)) && found==0)
       {
     if(strcmpi(st.retadmno(),sn)==0)
     {
      found=1;
      if(st.rettoken()==1)
      {
   while(fp1.read((char*)&bk,sizeof(book))&& flag==0)
   {
      if(strcmpi(bk.retbno(),st.retstbno())==0)
   {
    bk.show_book();
    flag=1;
    cout<<"\n\nBook deposited in no. of days";
    cin>>day;
    if(day>15)
    {
       fine=(day-15)*1;
       cout<<"\n\nFine has to deposited Rs. "<<fine;
    }
     st.resettoken();
     int pos=-1*sizeof(st);
     fp.seekp(pos,ios::cur);
     fp.write((char*)&st,sizeof(student));
     cout<<"\n\n\t Book deposited successfully";
   }
      }
    if(flag==0)
      cout<<"Book no does not exist";
        }
   else
   cout<<"No book is issued..please check!!";
  }
    }
      if(found==0)
 cout<<"Student record not exist...";
 getch();
  fp.close();
  fp1.close();
  }




//***************************************************************
//     INTRODUCTION FUNCTION
//****************************************************************

void intro()
{
 clrscr();
 gotoxy(35,11);
 cout<<"LIBRARY";
 gotoxy(35,14);
 cout<<"MANAGEMENT";
 gotoxy(35,17);
 cout<<"SYSTEM";
 cout<<"\n\nMADE BY : YOUR NAME";
 cout<<"\n\nSCHOOL : SCHOOL NAME";
 getch();
}



//***************************************************************
//     ADMINISTRATOR MENU FUNCTION
//****************************************************************

void admin_menu()
{
 clrscr();
 int ch2;
 cout<<"\n\n\n\tADMINISTRATOR MENU";
 cout<<"\n\n\t1.CREATE STUDENT RECORD";
 cout<<"\n\n\t2.DISPLAY ALL STUDENTS RECORD";
 cout<<"\n\n\t3.DISPLAY SPECIFIC STUDENT RECORD ";
 cout<<"\n\n\t4.MODIFY STUDENT RECORD";
 cout<<"\n\n\t5.DELETE STUDENT RECORD";
 cout<<"\n\n\t6.CREATE BOOK ";
 cout<<"\n\n\t7.DISPLAY ALL BOOKS ";
 cout<<"\n\n\t8.DISPLAY SPECIFIC BOOK ";
 cout<<"\n\n\t9.MODIFY BOOK ";
 cout<<"\n\n\t10.DELETE BOOK ";
 cout<<"\n\n\t11.BACK TO MAIN MENU";
 cout<<"\n\n\tPlease Enter Your Choice (1-11) ";
 cin>>ch2;
 switch(ch2)
 {
      case 1: clrscr();
       write_student();break;
      case 2: display_alls();break;
      case 3:
          char num[6];
          clrscr();
          cout<<"\n\n\tPlease Enter The Admission No. ";
          cin>>num;
          display_sps(num);
          break;
        case 4: modify_student();break;
        case 5: delete_student();break;
  case 6: clrscr();
   write_book();break;
  case 7: display_allb();break;
  case 8: {
          char num[6];
          clrscr();
          cout<<"\n\n\tPlease Enter The book No. ";
          cin>>num;
          display_spb(num);
          break;
   }
        case 9: modify_book();break;
        case 10: delete_book();break;
       case 11: return;
        default:cout<<"\a";
    }
    admin_menu();
}


//***************************************************************
//     THE MAIN FUNCTION OF PROGRAM
//****************************************************************


void main()
{
 char ch;
 intro();
 do
 {
  clrscr();
  cout<<"\n\n\n\tMAIN MENU";
  cout<<"\n\n\t01. BOOK ISSUE";
  cout<<"\n\n\t02. BOOK DEPOSIT";
    cout<<"\n\n\t03. ADMINISTRATOR MENU";
    cout<<"\n\n\t04. EXIT";
    cout<<"\n\n\tPlease Select Your Option (1-4) ";
    ch=getche();
    switch(ch)
    {
   case '1':clrscr();
     book_issue();
        break;
     case '2':book_deposit();
         break;
     case '3':admin_menu();
     break;
     case '4':exit(0);
     default :cout<<"\a";
  }
     }while(ch!='4');
}

//***************************************************************
//       END OF PROJECT
//***************************************************************

0 comments: