C++ Library Management System Project

Related image

//***************************************************************
// HEADER FILE USED IN 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
HINT:- USE TURBO C++ TO RUN THIS PROGRAM.
TAG