IN C++ Help to fix code
Library management program. Error is when i type a letter into options menu the code breaks.
after your edits, the code should still run as normal.
CODE:
#include<iostream>
using namespace std;
//structure to store library data
class BookDetails{
public:
struct library
{
int code;
char title[20];
int status;
};
library book_details[100];
};
//structure to store user data
class UserDetails:public BookDetails{
public:
struct users
{
int id;
char name[20];
int booksNumber;
};
users user_details[100];
};
int main()
{
UserDetails ob1;
UserDetails *ob;
ob=&ob1;
int tempId, i, flag = 0, j;
char tempName[20];
int tempCode;
//variable to hold 100 userdetails
//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 \n";
cout << "1. Add a new book\n";
cout << "2. Add a new user\n";
cout << "3. Borrow a book\n";
cout << "4. Return a book\n";
cout << "5. Search a book\n";
cout << "6. Displays users and number of books they have\n";
cout << "7. Exit\n";
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(ob->book_details[books_count].title,100);
cout << "Bookcode : ";
cin >> ob->book_details[books_count].code;
ob->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 == ob->user_details[i].id)
{
cout << "UserId already taken\n";
flag = 0;
break;
}
}
//if user is not taken creating user id and increase user_count by 1
if (flag)
{
ob->user_details[user_count].id = tempId;
cout << "Enter Username : ";
cin.ignore();
cin.getline(ob->user_details[user_count].name, 100);
ob->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 (ob->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 " << ob->user_details[i].name << "\n";
//if user has taken less than 5 books
if (ob->user_details[i].booksNumber <= 5)
{
cout << "Please enter book code you want to borrow : ";
cin >> tempCode;
for (j = 0; j < 100; j++)
{
if (ob->book_details[j].code == tempCode && ob->book_details[j].status != 0)
{
ob->book_details[j].status = 0;
ob->user_details[i].booksNumber++;
flag = 0;
break;
}
}
if (flag)
{
cout << "Book not found or it has been currently borrowed\n";
}
else
{
cout << "thank you for borrowing a book\n";
}
}
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 (ob->book_details[i].code == tempCode)
{
flag = 1;
break;
}
}
//once book is found then check for user id
if (flag)
{
if (ob->book_details[i].status == 0)
{
cout << "Enter user id: ";
cin >> tempId;
flag = 0;
for (j = 0; j < 100; j++)
if (ob->user_details[j].id == tempId)
{
flag = 1;
break;
}
//if user and book details are found
if (flag)
{
ob->user_details[j].booksNumber--;
ob->book_details[i].status = 1;
}
else
{
cout << "User not found\n";
}
}
else
{
cout << "Book hasn't been borrowed\n";
}
}
else
{
cout << "Invalid code\n";
}
break;
case 5:
//Searching a book using bookcode
cout << "Enter book code : ";
cin >> tempCode;
cout << " Book ID Book Name Availability \n";
for (i = 0; i < 100; i++)
{
if (ob->book_details[i].code == tempCode)
{
cout << ob->book_details[i].code << "\t" << ob->book_details[i].title << "\t" << ob->book_details[i].status << "\n";
break;
}
}
break;
case 6:
//printing details of user using user_details structure
cout << "UserID UserName Books borrowed\n";
for (i = 0; i < user_count; i++)
{
cout << ob->user_details[i].id << "\t" << ob->user_details[i].name << "\t" << ob->user_details[i].booksNumber << "\n";
}
cout << "\n";
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 \n";
}
} while (choice != 7);
return 0;
}
//Modified Code
#include<iostream>
#include<limits>
using namespace std;
//structure to store library data
class BookDetails{
public:
struct library
{
int code;
char title[20];
int status;
};
library book_details[100];
};
//structure to store user data
class UserDetails:public BookDetails{
public:
struct users
{
int id;
char name[20];
int booksNumber;
};
users user_details[100];
};
int main()
{
UserDetails ob1;
UserDetails *ob;
ob=&ob1;
int tempId, i, flag = 0, j;
char tempName[20];
int tempCode;
//variable to hold 100 userdetails
//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 \n";
cout << "1. Add a new book\n";
cout << "2. Add a new user\n";
cout << "3. Borrow a book\n";
cout << "4. Return a book\n";
cout << "5. Search a book\n";
cout << "6. Displays users and number of books they have\n";
cout << "7. Exit\n";
while(1){
cout << "Enter your choice : ";
cin>>choice;
if(cin.fail()){
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
cout<<"You have entered wrong
input.Please enter a valid Integer\n";
}
else break;
}
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(ob->book_details[books_count].title,100);
cout << "Bookcode : ";
cin >> ob->book_details[books_count].code;
ob->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 == ob->user_details[i].id)
{
cout << "UserId already taken\n";
flag = 0;
break;
}
}
//if user is not taken creating user id and increase user_count by 1
if (flag)
{
ob->user_details[user_count].id = tempId;
cout << "Enter Username : ";
cin.ignore();
cin.getline(ob->user_details[user_count].name, 100);
ob->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 (ob->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 " << ob->user_details[i].name << "\n";
//if user has taken less than 5 books
if (ob->user_details[i].booksNumber <= 5)
{
cout << "Please enter book code you want to borrow : ";
cin >> tempCode;
for (j = 0; j < 100; j++)
{
if (ob->book_details[j].code == tempCode && ob->book_details[j].status != 0)
{
ob->book_details[j].status = 0;
ob->user_details[i].booksNumber++;
flag = 0;
break;
}
}
if (flag)
{
cout << "Book not found or it has been currently borrowed\n";
}
else
{
cout << "thank you for borrowing a book\n";
}
}
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 (ob->book_details[i].code == tempCode)
{
flag = 1;
break;
}
}
//once book is found then check for user id
if (flag)
{
if (ob->book_details[i].status == 0)
{
cout << "Enter user id: ";
cin >> tempId;
flag = 0;
for (j = 0; j < 100; j++)
if (ob->user_details[j].id == tempId)
{
flag = 1;
break;
}
//if user and book details are found
if (flag)
{
ob->user_details[j].booksNumber--;
ob->book_details[i].status = 1;
}
else
{
cout << "User not found\n";
}
}
else
{
cout << "Book hasn't been borrowed\n";
}
}
else
{
cout << "Invalid code\n";
}
break;
case 5:
//Searching a book using bookcode
cout << "Enter book code : ";
cin >> tempCode;
cout << " Book ID Book Name Availability \n";
for (i = 0; i < 100; i++)
{
if (ob->book_details[i].code == tempCode)
{
cout << ob->book_details[i].code << "\t" << ob->book_details[i].title << "\t" << ob->book_details[i].status << "\n";
break;
}
}
break;
case 6:
//printing details of user using user_details structure
cout << "UserID UserName Books borrowed\n";
for (i = 0; i < user_count; i++)
{
cout << ob->user_details[i].id << "\t" << ob->user_details[i].name << "\t" << ob->user_details[i].booksNumber << "\n";
}
cout << "\n";
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 \n";
}
} while (choice != 7);
return 0;
}
//sample output

:
IN C++ Help to fix code Library management program. Error is when i type a letter...
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() {...
IN C++ My project will be a library management system. It will have seven functions. It HAS to contain: classes, structures, pointers and inheritance. fix code according to below 1. Add a new book allows the user to enter in book name and book code Book code has to be in # “Invalid book code” “book name has been added to library” book code will be used to borrow books 2. Add a new user must use first user must...
Code in C++: Please help me fix the error in function: void write_account(); //function to write record in binary file (NOTE: I able to store data to a txt file but however the data get error when I try to add on data the second time) void display_all(); //function to display all account details (NOTE: This function is to display all the info that save account.txt which is ID, Name, and Type) void modify_account(int); //function to modify record of file...
I'm just a beginner in programming,how to make this program more simple without using #include<iostream> and #include<redex> here is the question Terms to know: If-else statement,for..while..do while,loops,pointer,address,continue,return,break. Create a C++ program which contain a function to ask user to enter user ID and password. The passwordmust contain at least 6 alphanumeric characters, 1 of the symbols !.@,#,$,%,^,&,* and 1 capital letter.The maximum allowable password is 20. Save the information. Test the program by entering the User ID and password. The...
Program is in C++, program is called airplane reservation. It is suppose to display a screen of seating chart in the format 1 A B C D E F through 10. I had a hard time giving the seats a letter value. It displays a correct screen but when I reserve a new seat the string seats[][] doesn't update to having a X for that seat. Also there is a file for the struct called systemUser.txt it has 4 users...
C++ code do while loop issue. The code I posted works but when it prompts the user if they want to try against with another sentence, it only takes the Y and goes straight into another loop, without letting me enter a new sentence. I need it to be able to take the Y response from a user and then let me enter another sentence. do { cout<<"Enter a sentence:"; //user input sentence cin.getline(str,80); int wordsCount = 0; for (int...
The following C++ code include 3 files: Patient.h, Patient.cpp and Main.cpp. The program basically creates and stores patient records. The original code has everything in a single .cpp file. I tried to divide the code in 3 parts (Patient.h, Patient.cpp and Main.cpp), but it is giving me errors. Patient.h #ifndef PATIENT_H #define PATIENT_H #include <string> #include "Patient.cpp" using namespace std; class Patient{ private : string firstname; string lastname; string location; static int cnt; int id; public : Patient(string, string, string);...
CAN YU HELP ME CONSTRUCT A FLOW CHART FOR THE FOLLOW PROGRAM ? C++ CODE: #include<iostream> using namespace std; int main() { //declaring variable num int num; //prompting user to enter a number cout<<"Input a number to check prime or not:"; //reading input from user cin>>num; //loop to check user input for positive number while(num<0) { cout<<"Error! Positive Integers Only.\n"; cout<<"Input a number to check prime or not:"; cin>>num; } //initializing isPrime variable with false bool isPrime = true; //loop...
C++ Code error help. I am getting the error: "expression must have a constant value, the value of parameter 'n' ( declared at line 7) cannot be used as a constant" I am also getting this error at lines 65 and 66 with m and n. I do not know how to fix this. Here is my code and ive marked where the errors were with lines: #include<iostream> using namespace std; // Function to allocate memory to blocks as per...
im writing a c++ code and getting stuck on two parts. The first part, when I go to write the customer order out to the file, it writes everything but the price out right. I'll get a weird number like 5.95828e-039 or nan. When I printout to the console it works fine so not sure what's wrong. Second After I write the order out to the file, I then have to go in and read the file and calculate the...