#include<fstream>
#include<conio.h>
#include<stdio.h>
#include<process.h>
#include<string.h>
#include<iomanip>
#include<iostream>
using namespace std;
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<<"\nEnter The Name of The Book ";
gets(bname);
cout<<"\nEnter The Author's Name ";
gets(aname);
cout<<"\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()
{
system("cls");
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;
[Link]("[Link]",ios::out|ios::app);
do
{
system("cls");
bk.create_book();
[Link]((char*)&bk,sizeof(book));
cout<<"\n\nDo you want to add more record..(y/n?)";
cin>>ch;
}while(ch=='y'||ch=='Y');
[Link]();
}
void write_student()
{
char ch;
[Link]("[Link]",ios::out|ios::app);
do
{
st.create_student();
[Link]((char*)&st,sizeof(student));
cout<<"\n\ndo you want to add more record..(y/n?)";
cin>>ch;
}while(ch=='y'||ch=='Y');
[Link]();
}
//***************************************************************
// function to read specific record from file
//****************************************************************
void display_spb(char n[])
{
cout<<"\nBOOK DETAILS\n";
int flag=0;
[Link]("[Link]",ios::in);
while([Link]((char*)&bk,sizeof(book)))
{
if(strcmpi([Link](),n)==0)
{
bk.show_book();
flag=1;
}
}
[Link]();
if(flag==0)
cout<<"\n\nBook does not exist";
getch();
}
void display_sps(char n[])
{
cout<<"\nSTUDENT DETAILS\n";
int flag=0;
[Link]("[Link]",ios::in);
while([Link]((char*)&st,sizeof(student)))
{
if((strcmpi([Link](),n)==0))
{
st.show_student();
flag=1;
}
}
[Link]();
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;
system("cls");
cout<<"\n\n\tMODIFY BOOK REOCORD.... ";
cout<<"\n\n\tEnter The book no. of The book";
cin>>n;
[Link]("[Link]",ios::in|ios::out);
while([Link]((char*)&bk,sizeof(book)) && found==0)
{
if(strcmpi([Link](),n)==0)
{
bk.show_book();
cout<<"\nEnter The New Details of book"<<endl;
bk.modify_book();
int pos=-1*sizeof(bk);
[Link](pos,ios::cur);
[Link]((char*)&bk,sizeof(book));
cout<<"\n\n\t Record Updated";
found=1;
}
}
[Link]();
if(found==0)
cout<<"\n\n Record Not Found ";
getch();
}
void modify_student()
{
char n[6];
int found=0;
system("cls");
cout<<"\n\n\tMODIFY STUDENT RECORD... ";
cout<<"\n\n\tEnter The admission no. of The student";
cin>>n;
[Link]("[Link]",ios::in|ios::out);
while([Link]((char*)&st,sizeof(student)) && found==0)
{
if(strcmpi([Link](),n)==0)
{
st.show_student();
cout<<"\nEnter The New Details of student"<<endl;
st.modify_student();
int pos=-1*sizeof(st);
[Link](pos,ios::cur);
[Link]((char*)&st,sizeof(student));
cout<<"\n\n\t Record Updated";
found=1;
}
}
[Link]();
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;
system("cls");
cout<<"\n\n\n\tDELETE STUDENT...";
cout<<"\n\nEnter The admission no. of the Student You Want To Delete : ";
cin>>n;
[Link]("[Link]",ios::in|ios::out);
fstream fp2;
[Link]("[Link]",ios::out);
[Link](0,ios::beg);
while([Link]((char*)&st,sizeof(student)))
{
if(strcmpi([Link](),n)!=0)
[Link]((char*)&st,sizeof(student));
else
flag=1;
}
[Link]();
[Link]();
remove("[Link]");
rename("[Link]","[Link]");
if(flag==1)
cout<<"\n\n\tRecord Deleted ..";
else
cout<<"\n\nRecord not found";
getch();
}
void delete_book()
{
char n[6];
system("cls");
cout<<"\n\n\n\tDELETE BOOK ...";
cout<<"\n\nEnter The Book no. of the Book You Want To Delete : ";
cin>>n;
[Link]("[Link]",ios::in|ios::out);
fstream fp2;
[Link]("[Link]",ios::out);
[Link](0,ios::beg);
while([Link]((char*)&bk,sizeof(book)))
{
if(strcmpi([Link](),n)!=0)
{
[Link]((char*)&bk,sizeof(book));
}
}
[Link]();
[Link]();
remove("[Link]");
rename("[Link]","[Link]");
cout<<"\n\n\tRecord Deleted ..";
getch();
}
//***************************************************************
// function to display all students list
//****************************************************************
void display_alls()
{
system("cls");
[Link]("[Link]",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([Link]((char*)&st,sizeof(student)))
{
[Link]();
}
[Link]();
getch();
}
//***************************************************************
// function to display Books list
//****************************************************************
void display_allb()
{
system("cls");
[Link]("[Link]",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([Link]((char*)&bk,sizeof(book)))
{
[Link]();
}
[Link]();
getch();
}
//***************************************************************
// function to issue book
//****************************************************************
void book_issue()
{
char sn[6],bn[6];
int found=0,flag=0;
system("cls");
cout<<"\n\nBOOK ISSUE ...";
cout<<"\n\n\tEnter The student's admission no.";
cin>>sn;
[Link]("[Link]",ios::in|ios::out);
[Link]("[Link]",ios::in|ios::out);
while([Link]((char*)&st,sizeof(student)) && found==0)
{
if(strcmpi([Link](),sn)==0)
{
found=1;
if([Link]()==0)
{
cout<<"\n\n\tEnter the book no. ";
cin>>bn;
while([Link]((char*)&bk,sizeof(book))&& flag==0)
{
if(strcmpi([Link](),bn)==0)
{
bk.show_book();
flag=1;
[Link]();
[Link]([Link]());
int pos=-1*sizeof(st);
[Link](pos,ios::cur);
[Link]((char*)&st,sizeof(student));
cout<<"\n\n\t Book issued successfully\n\nPlease Note:
Write the current date in backside of your 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();
[Link]();
[Link]();
}
//***************************************************************
// function to deposit book
//****************************************************************
void book_deposit()
{
char sn[6],bn[6];
int found=0,flag=0,day,fine;
system("cls");
cout<<"\n\nBOOK DEPOSIT ...";
cout<<"\n\n\tEnter The student’s admission no.";
cin>>sn;
[Link]("[Link]",ios::in|ios::out);
[Link]("[Link]",ios::in|ios::out);
while([Link]((char*)&st,sizeof(student)) && found==0)
{
if(strcmpi([Link](),sn)==0)
{
found=1;
if([Link]()==1)
{
while([Link]((char*)&bk,sizeof(book))&& flag==0)
{
if(strcmpi([Link](),[Link]())==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;
}
[Link]();
int pos=-1*sizeof(st);
[Link](pos,ios::cur);
[Link]((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();
[Link]();
[Link]();
}
//***************************************************************
// INTRODUCTION FUNCTION
//****************************************************************
void intro()
{
system("cls");
cout<<"LIBRARY MANAGEMENT SYSTEM";
}
//***************************************************************
// ADMINISTRATOR MENU FUNCTION
//****************************************************************
void admin_menu()
{
system("cls");
int ch2;
cout<<"\n\n\tADMINISTRATOR MENU";
cout<<"\n\[Link] STUDENT RECORD";
cout<<"\n\[Link] ALL STUDENTS RECORD";
cout<<"\n\[Link] SPECIFIC STUDENT RECORD ";
cout<<"\n\[Link] STUDENT RECORD";
cout<<"\n\[Link] STUDENT RECORD";
cout<<"\n\[Link] BOOK ";
cout<<"\n\[Link] ALL BOOKS ";
cout<<"\n\[Link] SPECIFIC BOOK ";
cout<<"\n\[Link] BOOK ";
cout<<"\n\[Link] BOOK ";
cout<<"\n\[Link] TO MAIN MENU";
cout<<"\n\tPlease Enter Your Choice (1-11) ";
cin>>ch2;
switch(ch2)
{
case 1:
system("cls");
write_student();
break;
case 2:
display_alls();
break;
case 3:
char num[6];
system("cls");
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:
system("cls");
write_book();
break;
case 7:
display_allb();
break;
case 8:
{
char num[6];
system("cls");
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
//****************************************************************
int main()
{
char ch;
intro();
do
{
system("cls");
cout<<"\n\n\tMAIN MENU";
cout<<"\n\t01. BOOK ISSUE";
cout<<"\n\t02. BOOK DEPOSIT";
cout<<"\n\t03. ADMINISTRATOR MENU";
cout<<"\n\t04. EXIT";
cout<<"\n\tPlease Select Your Option (1-4) ";
ch=getche();
switch(ch)
{
case '1':
system("cls");
book_issue();
break;
case '2':
book_deposit();
break;
case '3':
admin_menu();
break;
case '4':
exit(0);
default :
cout<<"\a";
}
}while(ch!='4');
return 0;
}