Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

IN C++ add Inheritance, Class and Pointers to program This is a library management program, users can borrow books and return books. Just incorporate the

IN C++ add Inheritance, Class and Pointers to program

This is a library management program, users can borrow books and return books.

Just incorporate the use of Inheritance, Class and Pointers into this program. The program should work the same after your edits.

#include

using namespace std;

//structure to store library data

struct library

{

int code;

char title[20];

int status;

};

//structure to store user data

struct users

{

int id;

char name[20];

int booksNumber;

};

int main()

{

int tempId, i, flag = 0, j;

char tempName[20];

int tempCode;

struct users user_details[100]; //variable to hold 100 userdetails

struct library book_details[100]; //variable to hold 100 book details

int user_count = 0, books_count = 0;

int choice;

//this loop runs until 7 is entered

do

{

cout << "MENU ";

cout << "1. Add a new book ";

cout << "2. Add a new user ";

cout << "3. Borrow a book ";

cout << "4. Return a book ";

cout << "5. Search a book ";

cout << "6. Displays users and number of books they have ";

cout << "7. Exit ";

cout << "Enter your choice : ";

cin >> choice;

switch (choice)

{

//Adds a new book in to the database and increase book count by 1

case 1:

cout << "Bookname : ";

//cin.ignore() is used to clean the buffer to take input

cin.ignore();

//cin.getline is used to take input with space. Enter key is used to finish taking input. 100 is size of input character

cin.getline(book_details[books_count].title, 100);

cout << "Bookcode : ";

cin >> book_details[books_count].code;

book_details[books_count].status = 1;

books_count++;

break;

case 2:

//adds a new user details in to database

cout << "Enter UserId : ";

cin >> tempId;

//flag variable to check whether user exists or not

flag = 1;

for (i = 0; i < 100; i++)

{

if (tempId == user_details[i].id)

{

cout << "UserId already taken ";

flag = 0;

break;

}

}

//if user is not taken creating user id and increase user_count by 1

if (flag)

{

user_details[user_count].id = tempId;

cout << "Enter Username : ";

cin.ignore();

cin.getline(user_details[user_count].name, 100);

user_details[user_count].booksNumber = 0;

user_count++;

}

break;

case 3:

cout << "Please enter your userId : ";

cin >> tempId;

flag = 0;

//check whether user exists or not using flag variable

for (i = 0; i < 100; i++)

{

if (user_details[i].id == tempId)

{

flag = 1;

break;

}

}

//if user exists then print his name and check fof the requested book

if (flag)

{

cout << "Welcome " << user_details[i].name << " ";

//if user has taken less than 5 books

if (user_details[i].booksNumber <= 5)

{

cout << "Please enter book code you want to borrow : ";

cin >> tempCode;

for (j = 0; j < 100; j++)

{

if (book_details[j].code == tempCode && book_details[j].status != 0)

{

book_details[j].status = 0;

user_details[i].booksNumber++;

flag = 0;

break;

}

}

if (flag)

{

cout << "Book not found or it has been currently borrowed ";

}

else

{

cout << "thank you for borrowing a book ";

}

}

else

{

cout << "Username incorrect ;";

}

}

break;

case 4:

// to return the book issued to a user

cout << "Please enter book code :";

cin >> tempCode;

flag = 0;

for (i = 0; i < 100; i++)

{

if (book_details[i].code == tempCode)

{

flag = 1;

break;

}

}

//once book is found then check for user id

if (flag)

{

if (book_details[i].status == 0)

{

cout << "Enter user id ";

cin >> tempId;

flag = 0;

for (j = 0; j < 100; j++)

if (user_details[j].id == tempId)

{

flag = 1;

break;

}

//if user and book details are found

if (flag)

{

user_details[j].booksNumber--;

book_details[i].status = 1;

}

else

{

cout << "User not found ";

}

}

else

{

cout << "Book hasn't been borrowed ";

}

}

else

{

cout << "Invalid code ";

}

break;

case 5:

//Searching a book using bookcode

cout << "Enter book code : ";

cin >> tempCode;

cout << " Book ID Book Name Availability ";

for (i = 0; i < 100; i++)

{

if (book_details[i].code == tempCode)

{

cout << book_details[i].code << "\t" << book_details[i].title << "\t" << book_details[i].status << " ";

break;

}

}

break;

case 6:

//printing details of user using user_details structure

cout << "UserID UserName Books borrowed ";

for (i = 0; i < user_count; i++)

{

cout << user_details[i].id << "\t" << user_details[i].name << "\t" << user_details[i].booksNumber << " ";

}

cout << " ";

break;

case 7:

cout << "ThankYou";

break;

//if user input doesnot match with any of the case then ask him to enter data again

default:

cout << "Please enter valid input ";

}

} while (choice != 7);

return 0;

}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

New Trends In Databases And Information Systems Adbis 2019 Short Papers Workshops Bbigap Qauca Sembdm Simpda M2p Madeisd And Doctoral Consortium Bled Slovenia September 8 11 2019 Proceedings

Authors: Tatjana Welzer ,Johann Eder ,Vili Podgorelec ,Robert Wrembel ,Mirjana Ivanovic ,Johann Gamper ,Mikolaj Morzy ,Theodoros Tzouramanis ,Jerome Darmont

1st Edition

3030302776, 978-3030302771

More Books

Students also viewed these Databases questions