In this article, we will discuss the approach to creating an E-Library Management System where the user has the following options:
- Add book information.
- Display book information.
- To list all books of a given author.
- To list the count of books in the library.

Functionalities Required:
- If the user tries to add a book then the user must have to provide the below specific Information about the book:
- Enter Book Name:
- Enter Author Name:
- Enter Pages:
- Enter Price:
- When the user tries to display all books of a particular author then the user must have to enter the name of the author:
- Enter the author's name:
- The E-Library Management System must be also capable of counting all the books available in the library.
Note: Follow given link to build a Web application on Library Management System.
Below is the program to implement the E-Library Management System:
// C++ code addition
#include <iostream>
#include <string>
using namespace std;
// Create Structure of Library
struct library {
string book_name;
string author;
int pages;
float price;
};
// Driver Code
int main()
{
// Create an array of structs
library lib[100];
string ar_nm, bk_nm;
// Keep the track of the number of
// of books available in the library
int i, input, count;
i = input = count = 0;
// Iterate the loop
while (input != 5) {
cout << "\n\n********######"
<< "WELCOME TO E-LIBRARY "
<< "#####********\n";
cout << "\n\n1. Add book information\n2. Display book information\n";
cout << "3. List all books of given author\n";
cout << "4. List the count of books in the library\n";
cout << "5. Exit\n";
// Enter the book details
cout << "\n\nEnter one of the above: ";
cin >> input;
// Process the input
switch (input) {
// Add book
case 1:
cout << "Enter book name = ";
cin >> lib[i].book_name;
cout << "Enter author name = ";
cin >> lib[i].author;
cout << "Enter pages = ";
cin >> lib[i].pages;
cout << "Enter price = ";
cin >> lib[i].price;
count++;
break;
// Print book information
case 2:
cout << "you have entered the following information\n";
for (i = 0; i < count; i++) {
cout << "book name = " << lib[i].book_name;
cout << "\t author name = " << lib[i].author;
cout << "\t pages = " << lib[i].pages;
cout << "\t price = " << lib[i].price << endl;
}
break;
// Take the author name as input
case 3:
cout << "Enter author name : ";
cin >> ar_nm;
for (i = 0; i < count; i++) {
if (ar_nm == lib[i].author)
cout << lib[i].book_name << " " << lib[i].author << " " << lib[i].pages << " " << lib[i].price << endl;
}
break;
// Print total count
case 4:
cout << "\n No of books in library : " << count << endl;
break;
case 5:
exit(0);
}
}
return 0;
}
// The code is contributed by Nidhi goel.
// C program for the E-library
// Management System
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// Create Structure of Library
struct library {
char book_name[20];
char author[20];
int pages;
float price;
};
// Driver Code
int main()
{
// Create a instance
struct library lib[100];
char ar_nm[30], bk_nm[30];
// Keep the track of the number of
// of books available in the library
int i, input, count;
i = input = count = 0;
// Iterate the loop
while (input != 5) {
printf("\n\n********######"
"WELCOME TO E-LIBRARY "
"#####********\n");
printf("\n\n1. Add book infor"
"mation\n2. Display "
"book information\n");
printf("3. List all books of "
"given author\n");
printf(
"4. List the count of book"
"s in the library\n");
printf("5. Exit");
// Enter the book details
printf("\n\nEnter one of "
"the above: ");
scanf("%d", &input);
// Process the input
switch (input) {
// Add book
case 1:
printf("Enter book name = ");
scanf("%s", lib[i].book_name);
printf("Enter author name = ");
scanf("%s", lib[i].author);
printf("Enter pages = ");
scanf("%d", &lib[i].pages);
printf("Enter price = ");
scanf("%f", &lib[i].price);
count++;
break;
// Print book information
case 2:
printf("you have entered"
" the following "
"information\n");
for (i = 0; i < count; i++) {
printf("book name = %s",
lib[i].book_name);
printf("\t author name = %s",
lib[i].author);
printf("\t pages = %d",
lib[i].pages);
printf("\t price = %f",
lib[i].price);
}
break;
// Take the author name as input
case 3:
printf("Enter author name : ");
scanf("%s", ar_nm);
for (i = 0; i < count; i++) {
if (strcmp(ar_nm,
lib[i].author)
== 0)
printf("%s %s %d %f",
lib[i].book_name,
lib[i].author,
lib[i].pages,
lib[i].price);
}
break;
// Print total count
case 4:
printf("\n No of books in "
"brary : %d",
count);
break;
case 5:
exit(0);
}
}
return 0;
}
import java.util.Scanner;
// Create a class for the Library
class Library {
String bookName;
String author;
int pages;
float price;
}
// Main class for the driver code
public class ELibrary {
public static void main(String[] args) {
// Create an array of Library objects
Library[] library = new Library[100];
String arNm;
// Keep track of the number of books available in the library
int i, input, count;
i = input = count = 0;
// Initialize the array with Library objects
for (int j = 0; j < library.length; j++) {
library[j] = new Library();
}
// Scanner to take input from the user
Scanner scanner = new Scanner(System.in);
// Iterate the loop
while (input != 5) {
System.out.println("\n\n********###### WELCOME TO E-LIBRARY #####********");
System.out.println("1. Add book information\n2. Display book information");
System.out.println("3. List all books of given author\n4. List the count of books in the library");
System.out.println("5. Exit");
// Enter the book details
System.out.print("\n\nEnter one of the above: ");
input = scanner.nextInt();
// Process the input
switch (input) {
// Add book
case 1:
System.out.print("Enter book name = ");
library[i].bookName = scanner.next();
System.out.print("Enter author name = ");
library[i].author = scanner.next();
System.out.print("Enter pages = ");
library[i].pages = scanner.nextInt();
System.out.print("Enter price = ");
library[i].price = scanner.nextFloat();
count++;
i++;
break;
// Print book information
case 2:
System.out.println("You have entered the following information");
for (int j = 0; j < count; j++) {
System.out.println("Book name = " + library[j].bookName +
"\t Author name = " + library[j].author +
"\t Pages = " + library[j].pages +
"\t Price = " + library[j].price);
}
break;
// Take the author name as input
case 3:
System.out.print("Enter author name: ");
arNm = scanner.next();
for (int j = 0; j < count; j++) {
if (arNm.equals(library[j].author)) {
System.out.println(library[j].bookName + " " +
library[j].author + " " +
library[j].pages + " " +
library[j].price);
}
}
break;
// Print total count
case 4:
System.out.println("\nNo of books in library: " + count);
break;
case 5:
System.exit(0);
}
}
}
}
# Python code equivalent of the C++ code
class Library:
def __init__(self, book_name, author, pages, price):
self.book_name = book_name
self.author = author
self.pages = pages
self.price = price
def __str__(self):
return f"{self.book_name}\t {self.author}\t {self.pages}\t {self.price}"
# Driver Code
if __name__ == "__main__":
# Create an array of Library objects
lib = []
# Keep the track of the number of
# of books available in the library
count = 0
# Iterate the loop
while True:
print("\n\n********######WELCOME TO E-LIBRARY #####********\n")
print("1. Add book information\n2. Display book information\n",
"3. List all books of given author\n4. List the count of books in the library\n5. Exit\n")
# Enter the book details
input_choice = input("Enter one of the above: ")
# Process the input
if input_choice == '1':
book_name = input("Enter book name = ")
author = input("Enter author name = ")
pages = int(input("Enter pages = "))
price = float(input("Enter price = "))
lib.append(Library(book_name, author, pages, price))
count += 1
elif input_choice == '2':
print("you have entered the following information")
for book in lib:
print(book)
elif input_choice == '3':
ar_nm = input("Enter author name : ")
for book in lib:
if book.author == ar_nm:
print(book)
elif input_choice == '4':
print(f"\nNo of books in library : {count}\n")
elif input_choice == '5':
exit(0)
using System;
// Create Structure of Library
struct Library
{
public string BookName;
public string Author;
public int Pages;
public float Price;
}
// Driver Code
class Program
{
static void Main()
{
// Create an array of structs
Library[] library = new Library[100];
string authorName;
// Keep track of the number of books available in the library
int i, input, count;
i = input = count = 0;
// Iterate the loop
while (input != 5)
{
Console.WriteLine("\n\n********######" +
"WELCOME TO E-LIBRARY " +
"#####********\n");
Console.WriteLine("\n\n1. Add book information\n2. Display book information\n" +
"3. List all books of given author\n" +
"4. List the count of books in the library\n" +
"5. Exit\n");
// Enter the book details
Console.Write("\n\nEnter one of the above: ");
input = int.Parse(Console.ReadLine());
// Process the input
switch (input)
{
// Add book
case 1:
Console.Write("Enter book name = ");
library[i].BookName = Console.ReadLine();
Console.Write("Enter author name = ");
library[i].Author = Console.ReadLine();
Console.Write("Enter pages = ");
library[i].Pages = int.Parse(Console.ReadLine());
Console.Write("Enter price = ");
library[i].Price = float.Parse(Console.ReadLine());
count++;
break;
// Print book information
case 2:
Console.WriteLine("You have entered the following information");
for (i = 0; i < count; i++)
{
Console.WriteLine($"Book name = {library[i].BookName}" +
$"\t Author name = {library[i].Author}" +
$"\t Pages = {library[i].Pages}" +
$"\t Price = {library[i].Price}");
}
break;
// Take the author name as input
case 3:
Console.Write("Enter author name : ");
authorName = Console.ReadLine();
for (i = 0; i < count; i++)
{
if (authorName == library[i].Author)
Console.WriteLine($"{library[i].BookName} {library[i].Author} {library[i].Pages} {library[i].Price}");
}
break;
// Print total count
case 4:
Console.WriteLine($"\nNo of books in library: {count}\n");
break;
case 5:
Environment.Exit(0);
break;
}
}
}
}
const readline = require('readline');
// Create a class for the Library
class Library {
constructor() {
this.bookName = "";
this.author = "";
this.pages = 0;
this.price = 0.0;
}
}
// Main function for the driver code
function main() {
// Create an array of Library objects
let library = new Array(100).fill(null).map(() => new Library());
let arNm;
// Keep track of the number of books available in the library
let i = 0, input = 0, count = 0;
// Initialize the array with Library objects
// Iterate the loop
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.setPrompt("\n\nEnter one of the above: ");
rl.prompt();
// Enter the book details
rl.on('line', (line) => {
input = parseInt(line.trim());
// Process the input
switch (input) {
// Add book
case 1:
rl.question("Enter book name = ", (bookName) => {
library[i].bookName = bookName;
rl.question("Enter author name = ", (author) => {
library[i].author = author;
rl.question("Enter pages = ", (pages) => {
library[i].pages = parseInt(pages);
rl.question("Enter price = ", (price) => {
library[i].price = parseFloat(price);
count++;
i++;
rl.prompt();
});
});
});
});
break;
// Print book information
case 2:
console.log("You have entered the following information");
for (let j = 0; j < count; j++) {
console.log("Book name = " + library[j].bookName +
"\t Author name = " + library[j].author +
"\t Pages = " + library[j].pages +
"\t Price = " + library[j].price);
}
rl.prompt();
break;
// Take the author name as input
case 3:
rl.question("Enter author name: ", (author) => {
arNm = author;
for (let j = 0; j < count; j++) {
if (arNm === library[j].author) {
console.log(library[j].bookName + " " +
library[j].author + " " +
library[j].pages + " " +
library[j].price);
}
}
rl.prompt();
});
break;
// Print total count
case 4:
console.log("\nNo of books in library: " + count);
rl.prompt();
break;
case 5:
rl.close();
break;
default:
rl.prompt();
}
}).on('close', () => {
process.exit(0);
});
}
// Call the main function to start the program
main();
Output:
Displaying the functionalities and input for option 1: 
For Choice 2 and 3:

For choice 4 and 5:

Please refer to the complete article of Library Management System Project.