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++ 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...
Today assignment , find the errors in this code and fixed them. Please I need help with find the errors and how ro fixed them. #include <iostream> #include <cstring> #include <iomanip> using namespace std; const int MAX_CHAR = 100; const int MIN_A = 90; const int MIN_B = 80; const int MIN_C = 70; double getAvg(); char determineGrade(double); void printMsg(char grade); int main() { double score; char grade; char msg[MAX_CHAR]; strcpy(msg, "Excellent!"); strcpy(msg, "Good job!"); strcpy(msg, "You've passed!"); strcpy(msg, "Need...