Sunday, February 26, 2017

Library management source code c++

//*************************************************************** //                   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' ); }

No comments:

Post a Comment