Questions:
Library Management System Project in C++
Explanation:
Code:
Output And Download:
Project Output is attached in Library Management System Project in C++.rar file..
Click to Download
Related Articles:
Library Management System Project in C++
Explanation:
This C++ menu driven programs on LIBRARY MANAGEMENT SYSTEM has book and student class with data members like book no, bookname, authorname. Books records is stored in a binary file. A student can issue book and deposit it within 15 days. Student is allowed to issue only one book. Student Records are stored in binary file. Administrator can add, modify or delete record.
In this project, We have not used graphics to keep program simple.
Code:
//***************************************************************
// HEADER FILE USED IN PROJECT
by cppexamples.blogpsot.com
//****************************************************************
#pragma warning (disable : 4305)
#pragma warning (disable : 4309)
#pragma warning (disable : 4307)
#pragma warning (disable : 3861)
#include<fstream>
#include<iostream>
#include<conio.h>
#include<stdio.h>
#include<process.h>
#include<string>
#include<iomanip>
using namespace std;
//***************************************************************
// CLASS USED IN PROJECT by cppexamples.blogpsot.com
//****************************************************************
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()
{
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 by cppexamples.blogpsot.com
//****************************************************************
fstream fp, fp1;
book bk;
student st;
//***************************************************************
//
function to write in file by
cppexamples.blogpsot.com
//****************************************************************
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 by cppexamples.blogpsot.com
//****************************************************************
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
by cppexamples.blogpsot.com
//****************************************************************
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
by cppexamples.blogpsot.com
//****************************************************************
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 by cppexamples.blogpsot.com
//****************************************************************
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 by
cppexamples.blogpsot.com
//****************************************************************
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 by
cppexamples.blogpsot.com
//****************************************************************
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 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();
fp.close();
fp1.close();
}
//***************************************************************
//
function to deposit book by
cppexamples.blogpsot.com
//****************************************************************
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 by
cppexamples.blogpsot.com
//****************************************************************
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 by
cppexamples.blogpsot.com
//****************************************************************
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 by
cppexamples.blogpsot.com
//****************************************************************
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 by
cppexamples.blogpsot.com
//***************************************************************
Output And Download:
Project Output is attached in Library Management System Project in C++.rar file..
Click to Download
Related Articles:
0 Questions:
Post a Comment