You are on page 1of 10

#include<iostream.

h>
#include<conio.h>
#include<fstream.h>
#include<string.h>
#include<stdio.h>
#include<process.h>
#include<iomanip.h>
void menu();
class book
{
int bno;
char bname[25],aname[25];
public:
void insbook()
{
clrscr();
cout<<"enter book no:";
cin>>bno;
cout<<"\n enter book name:";
gets(bname);
cout<<"\n enter author name:";
gets(aname);
cout<<"\n book inserted";
}
void showbook()
{
clrscr();
cout<<"\n bookno:"<<bno;
cout<<endl<<"bookname:"<<bname;
cout<<endl<<"authorname:"<<aname;
}
void modifybook()
{
char x[25],y[25];
cout<<"bookno:"<<bno;
cout<<"\n enter new bookname: or press space for retain first one:";
gets(x);
cout<<"\n enter new authorname or press space for retain first one:";
gets(y);
if(x!=" ")
strcpy(bname,x);
if(y!=" ")
strcpy(aname,y);
cout<<endl<<"book modified successfully";
}
int getbno()
{
return bno;
}
void report()
{
cout<<bno<<setw(30)<<bname<<setw(30)<<aname;
}
};
book b;
class student
{
int admno,token;
char sname[25];
int cls;
public:
void insstudent()
{
clrscr();
cout<<"enter student admission no:";
cin>>admno;
cout<<"\nenter student name:";
gets(sname);
cout<<"\nenter student class:";
cin>>cls;
token=0;
}
void showstudent()
{
cout<<"\nadmission no:"<<admno;
cout<<"\nstudent name:"<<sname;
cout<<"\nno. of book issued:"<<token;
cout<<"\nclass:"<<cls;
}
void modifystudent()
{
clrscr();
char x[25];
cout<<"\nadmission no:"<<admno;
cout<<"\nenter student class:";
cin>>cls;
cout<<"\nenter new student name or press space to retain first one:";
gets(x);
if(x!=" ")
strcpy(sname,x);
}
int retadmno()
{
return admno;
}
int rettoken()
{
return token;
}
void addtoken()
{
token=1;
}
void resettoken()
{
token=0;
}
void report()
{
cout<<admno<<setw(30)<<sname<<setw(30)<<cls<<setw(30)<<token<<endl;
}
};
fstream fp,fp1;
student s;
void writebook()
{
clrscr();
char ch;
fstream fp1("book.dat",ios::out,ios::app);
x:
clrscr();
b.insbook();
fp1.write((char*)&b,sizeof(book));
cout<<"\ndo you want to add more book(y/n):";
cin>>ch;
if(ch=='y'|| ch=='Y')
goto x;
else
{
fp1.close();
menu();
}
}
void writestudent()
{
char ch;
fp.open("student.dat",ios::out,ios::app);
s.insstudent();
fp.write((char*)&s,sizeof(student));
cout<<"\ndo you want to add more student(y/n):";
cin>>ch;
if(ch=='y' || ch=='Y')
{
s.insstudent();
fp.write((char*)&s,sizeof(student));
}
fp.close();
}
void searchb(int x)
{
int flag=0;
cout<<setw(50)<<"book details"<<endl;
fp.open("book.dat",ios::in);
while(fp.read((char*)&b,sizeof(book)))
{
if(b.getbno()==x)
{
b.showbook();
flag=1;
}
}
fp.close();
if(flag==0)
cout<<"\nbook not found \n try again later";
}
void searchs(int x)
{
int flag=0;
cout<<setw(50)<<"student details"<<endl;
fp.open("student.dat",ios::in);
while(fp.read((char*)&s,sizeof(student)))
{
if(s.retadmno()==x)
{
s.showstudent();
flag=1;
}
}
fp.close();
if(flag==0)
cout<<"\nstudent not found \n and try again later";
}
void modifybook()
{
int found=0,x;
clrscr();
cout<<setw(50)<<"modify book detail"<<endl;
cout<<"\nenter book no of book to be modified:";
cin>>x;
fp.open("book.dat",ios::in);
while(fp.read((char*)&b,sizeof(book)) && found==0)
{
if(b.getbno()==x)
{
b.showbook();
cout<<"\nenter new book details \n";
b.modifybook();
int pos=-1*sizeof(b);
fp.seekp(pos,ios::cur);
fp.write((char*)&b,sizeof(book));
cout<<"\nrecord updated";
found=1;
}
}
fp.close();
if(found==0)
cout<<"\nrecord not found";
getch();
}
void modifystudent()
{
int x,found=0;
clrscr();
cout<<setw(50)<<"modify student detail";
cout<<"\nenter admission of student to modify:";
cin>>x;
fp.open("student.dat",ios::in);
while(fp.read((char*)&s,sizeof(student)) && found==0)
{
if(s.retadmno()==x)
{
s.showstudent();
cout<<"\nenter the new details of student"<<endl;
s.modifystudent();
int pos=-1*sizeof(s);
fp.seekp(pos,ios::cur);
fp.write((char*)&s,sizeof(student));
cout<<"\n record updated"<<endl;
found=1;
}
}
fp.close();
if(found==0)
cout<<"\nstudent not found";
getch();
}
void delstudent()
{
int x,flag=0;
clrscr();
cout<<setw(50)<<"DELETE STUDENT"<<endl;
cout<<"\nenter admission no of student to be deleted:";
cin>>x;
fp.open("student.dat",ios::in,ios::out);
fstream fp2("temp.dat",ios::out);
fp.seekp(0,ios::beg);
while(fp.read((char*)&s,sizeof(student)))
{
if(s.retadmno()!=x)
fp2.write((char*)&s,sizeof(student));
else
flag=1;
}
fp.close();
fp2.close();
remove("student.dat");
rename("temp.dat","student.dat");
if(flag==1)
cout<<"\nstudent record deleted";
else
cout<<"\nstudent record not found";
getch();
}
void delbook()
{
int x,flag=0;
clrscr();
cout<<setw(30)<<"DELETE BOOK"<<endl;
cout<<"\nenter book no to be deleted:";
cin>>x;
fp.open("book.dat",ios::in,ios::out);
fstream fp2("temp.dat",ios::out);
fp.seekp(0,ios::beg);
while(fp.read((char*)&b,sizeof(book)))
{
if(b.getbno()!=x)
fp2.write((char*)&b,sizeof(book));
else
flag=1;
}
fp.close();
fp2.close();
remove("book.dat");
rename("temp.dat","book.dat");
if(flag==1)
cout<<"\nbook has been deleted successfully!!!";
else
cout<<"\nbook not found";
getch();
}
void blist()
{
clrscr();
fstream fp1("book.dat",ios::in,ios::out);
if(!fp1)
{
cout<<"\nERROR!! FILE NOT OPEN";
getch();
}
else
cout<<endl<<setw(50)<<"BOOK LIST"<<endl;
cout<<"================================================================";
cout<<endl<<"book number"<<setw(30)<<"book name"<<setw(30)<<"author name"<<endl;
cout<<"================================================================";
while(fp1.read((char*)&b,sizeof(book)))
b.report();
fp1.close();
getch();
}
void slist()
{
clrscr();
fp.open("student.dat",ios::in);
if(!fp)
{
cout<<"\nERROR!! FILE NOT FOUND";
getch();
}
cout<<setw(50)<<"STUDENT LIST"<<endl;
cout<<"============================================================================
==============";
cout<<"admission no"<<setw(30)<<"student name"<<setw(30)<<"class"<<setw(30)<<"book
issued"<<endl;
while(fp.read((char*)&s,sizeof(student)))
s.report();
fp.close();
getch();
}
void delb1(int x)
{
clrscr();
cout<<setw(30)<<"DELETE BOOK"<<endl;
fp.open("book.dat",ios::in,ios::out);
fstream fp2("temp.dat",ios::out);
fp.seekp(0,ios::beg);
while(fp.read((char*)&b,sizeof(book)))
{
if(b.getbno()!=x)
fp2.write((char*)&b,sizeof(book));
}
fp.close();
fp2.close();
remove("book.dat");
rename("temp.dat","book.dat");
getch();
}
void delb2(int x)
{
clrscr();
fstream fp2("issue.dat",ios::in,ios::out);
fstream fp3("temp.dat",ios::out);
fp2.seekp(0,ios::beg);
while(!fp.eof())
{
if(b.getbno()!=x)
fp3.write((char*)&b,sizeof(book));
}
fp2.close();
fp3.close();
remove("issue.dat");
rename("temp.dat","issue.dat");
getch();
}
/*void issuebook()
{
clrscr();
int sn,bn;
int found=0,flag=0;
cout<<setw(50)<<"BOOK ISSUE..."<<endl;
cout<<"enter admission no of student to whom book is issued:";
cin>>sn;
fp.open("student.dat",ios::out,ios::in);
fp1.open("book.dat",ios::out,ios::in);
while(fp.read((char*)&s,sizeof(student)) && found==0)
{
if(s.retadmno()==sn)
{
found=1;
if(s.rettoken()==0)
{
cout<<endl<<"enter the book no.";
cin>>bn;
while(fp1.read((char*)&b,sizeof(book) && flag==0)
{
if(b.getbno()==bn)
{
flag=1;
b.showbook();
s.addtoken();
delb1(bn);
issuedbook(bn)
int pos=-1*sizeof(s);
fp.seekp(pos,ios::cur);
fp.write((char*)&s,sizeof(student));
cout<<"\n\n book issued successfully";
}
}
if(flag==0)
cout<<"book does not exist";
}
else
cout<<"you have not returned the last book\n";
}
}
if(found==0)
cout<<"\n student does not exist";
getch();
fp.close();
fp1.close();
}*/
void issuedbook(int x)
{
clrscr();
cout<<setw(50)<<"ISSUED BOOKS"<<endl;
cout<<"============================================================================
===============";
cout<<endl<<"book number"<<setw(30)<<"book name"<<setw(30)<<"author name \n";
cout<<"============================================================================
===============";
fstream fp("book.dat",ios::in);
fstream fp1("issue.dat",ios::in,ios::out);
while(fp.read((char*)&b,sizeof(book)))
{
if(b.getbno()==x)
{
fp1.write((char*)&b,sizeof(book));
b.report();
}
}
fp.close();
fp1.close();
}
void deposit()
{
int sn,bn,flag=0,found=0,day,fine;
clrscr();
cout<<"\n\n BOOK DEPOSIT \n";
cout<<"\nenter student admission no.:";
cin>>sn;
cout<<endl<<"\nenter book no.:";
cin>>bn;
fp.open("student.dat",ios::in,ios::out);
fp1.open("book.dat",ios::in,ios::out);
while(fp.read((char*)&s,sizeof(student)) && flag==0)
{
if(s.retadmno()==sn)
{
found=1;
if(s.rettoken()==1)
{
while(fp1.read((char*)&b,sizeof(book)) && flag==0)
{
if(b.getbno()==bn)
{
b.showbook();
flag=1;
cout<<"\nbook deposited in no.of days:";
cin>>day;
delb2(bn);
if(day>15)
{
fine=(day-15)*3;
cout<<"\nfine has to be deposited rs."<<fine;
}
s.resettoken();
int pos=-1*sizeof(s);
fp.seekp(pos,ios::cur);
fp.write((char*)&s,sizeof(student));
cout<<"\n\nbook deposited successfully!!!";
}
}
if(flag==0)
cout<<"\nbook does not exist\n";
}
else
cout<<"\nno book is issued please check!!!\n";
}
}
if(found==0)
cout<<"\nstudent record not exist...\n";
getch();
fp.close();
fp1.close();
}
void menu()
{
clrscr();
int x;
cout<<"\n =================================================================";
cout<<"WELCOME TO LIBRARY MANAGEMENT";
cout<<"\n =================================================================";
cout<<endl;
cout<<"ADMIN MENU";
cout<<"\n =================================================================";
cout<<"\n1.add book\n2.book issue \n3.deposit book\n4.display all books\n";
cout<<"5.add student\n6.display all student list\n7.search for a student\n";
cout<<"8.search for a book\n9.delete book\n10.delete student\n11.modify book\n";
cout<<"12.modify student\n13.exit\n";
cin>>x;
switch(x)
{
case 1:
writebook();
break;
/*case 2:
issuebook();
break;*/
case 3:
deposit();
break;
case 4:
blist();
break;
case 5:
writestudent();
break;
case 6:
slist();
break;
case 7:
int num;
clrscr();
cout<<"enter admission number of student to be display:";
cin>>num;
searchs(num);
break;
case 8:
int num1;
clrscr();
cout<<"enter book no to be display:";
cin>>num1;
searchb(num1);
break;
case 9:
delbook();
break;
case 10:
delstudent();
break;
case 11:
modifybook();
break;
case 12:
modifystudent();
break;
case 13:
exit(0);
default:
cout<<"enter valid choice!!!";
menu();
}
}
void main()
{
clrscr();
char x[10];
int attempt=3;
fstream f1("book.dat",ios::in,ios::out);
fstream f2("student.dat",ios::in,ios::out);
fstream f3("issue.dat",ios::in,ios::out);
cout<<"\n ==================================================================";
cout<<"\n WELCOME TO LIBRARY MANAGEMENT- -K.M.P.S.\n";
cout<<"\n ==================================================================";
p:
cout<<"\n enter admin password:";
gets(x);
if(strcmpi(x,"libman112")==0)
{
menu();
}
else
{
cout<<"\nyou enter wrong password!!!! please try again \n"<<attempt<<" attempts
left";
attempt--;
}
if(attempt==0)
{
cout<<"\nyou are out of attempts";
getch();
}
else
goto p;
getch();
}

You might also like