C++ Project LBMS
C++ Project LBMS
retrieve the details of books available in the library. You can issue the books to the
students and maintain their records. Late fine is charged for students who return the
issued books after the due date. Only one book is issued to students. New book is not
issued to students those not returned the last book.
//***************************************************************
//****************************************************************
#include<fstream.h>
#include<conio.h>
#include<stdio.h>
#include<process.h>
#include<string.h>
#include<iomanip.h>
//***************************************************************
//****************************************************************
class book
char bno[6];
char bname[50];
char aname[20];
public:
void create_book()
cin>>bno;
gets(bname);
gets(aname);
cout<<"\n\n\nBook Created..";
void show_book()
puts(bname);
puts(aname);
void modify_book()
gets(aname);
char* retbno()
return bno;
void report()
{cout<<bno<<setw(30)<<bname<<setw(30)<<aname<<endl;}
class student
char admno[6];
char name[20];
char stbno[6];
int token;
public:
void create_student()
clrscr();
cin>>admno;
gets(name);
token=0;
stbno[0]='/0';
void show_student()
puts(name);
if(token==1)
cout<<"\nBook No "<<stbno;
void modify_student()
{
gets(name);
char* retadmno()
return admno;
char* retstbno()
return stbno;
int rettoken()
return token;
void addtoken()
{token=1;}
void resettoken()
{token=0;}
strcpy(stbno,t);
void report()
{cout<<"\t"<<admno<<setw(20)<<name<<setw(10)<<token<<endl;}
//***************************************************************
//****************************************************************
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));
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));
cin>>ch;
}while(ch=='y'||ch=='Y');
fp.close();
//***************************************************************
//****************************************************************
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)
getch();
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)
//***************************************************************
//****************************************************************
void modify_book()
char n[6];
int found=0;
clrscr();
cin>>n;
fp.open("book.dat",ios::in|ios::out);
if(strcmpi(bk.retbno(),n)==0)
bk.show_book();
bk.modify_book();
int pos=-1*sizeof(bk);
fp.seekp(pos,ios::cur);
fp.write((char*)&bk,sizeof(book));
found=1;
fp.close();
if(found==0)
getch();
void modify_student()
char n[6];
int found=0;
clrscr();
cin>>n;
fp.open("student.dat",ios::in|ios::out);
if(strcmpi(st.retadmno(),n)==0)
st.show_student();
st.modify_student();
int pos=-1*sizeof(st);
fp.seekp(pos,ios::cur);
fp.write((char*)&st,sizeof(student));
found=1;
fp.close();
if(found==0)
getch();
//***************************************************************
//****************************************************************
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
getch();
void delete_book()
char n[6];
clrscr();
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");
getch();
//***************************************************************
//****************************************************************
void display_alls()
clrscr();
fp.open("student.dat",ios::in);
if(!fp)
getch();
return;
}
cout<<"\n\n\t\tSTUDENT LIST\n\n";
cout<<"==================================================================\n";
cout<<"==================================================================\n";
while(fp.read((char*)&st,sizeof(student)))
st.report();
fp.close();
getch();
//***************************************************************
//****************************************************************
void display_allb()
clrscr();
fp.open("book.dat",ios::in);
if(!fp)
{
getch();
return;
cout<<"\n\n\t\tBook LIST\n\n";
cout<<"========================================================================
=\n";
cout<<"========================================================================
=\n";
while(fp.read((char*)&bk,sizeof(book)))
bk.report();
fp.close();
getch();
//***************************************************************
void book_issue()
char sn[6],bn[6];
int found=0,flag=0;
clrscr();
cin>>sn;
fp.open("student.dat",ios::in|ios::out);
fp1.open("book.dat",ios::in|ios::out);
if(strcmpi(st.retadmno(),sn)==0)
found=1;
if(st.rettoken()==0)
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));
in backside of book and submit within 15 days fine Rs. 1 for each day
if(flag==0)
else
if(found==0)
getch();
fp.close();
fp1.close();
}
//***************************************************************
//****************************************************************
void book_deposit()
char sn[6],bn[6];
int found=0,flag=0,day,fine;
clrscr();
cin>>sn;
fp.open("student.dat",ios::in|ios::out);
fp1.open("book.dat",ios::in|ios::out);
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;
cin>>day;
if(day>15)
fine=(day-15)*1;
st.resettoken();
int pos=-1*sizeof(st);
fp.seekp(pos,ios::cur);
fp.write((char*)&st,sizeof(student));
if(flag==0)
else
}
if(found==0)
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";
//***************************************************************
//****************************************************************
void admin_menu()
clrscr();
int ch2;
cout<<"\n\n\n\tADMINISTRATOR MENU";
cin>>ch2;
switch(ch2)
case 1: clrscr();
write_student();break;
case 2: display_alls();break;
case 3:
char num[6];
clrscr();
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();
cin>>num;
display_spb(num);
break;
case 9: modify_book();break;
default:cout<<"\a";
admin_menu();
//***************************************************************
//****************************************************************
void main()
char ch;
intro();
do
clrscr();
cout<<"\n\n\n\tMAIN MENU";
cout<<"\n\n\t04. EXIT";
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
//***************************************************************