right now I am making a hands on project on bookshop inventory by using C++ program in Visual Studio Code.
PROBLEM STATEMENT OF THE PROJECT: A book shop maintains the inventory of books that are being sold at the shop. The list includes details such as author, title, price, publisher and stock position. Whenever a customer wants a book, the sales person inputs the title and author and the system searches the list and displays whether it is available or not. If it is not, an appropriate message is displayed. If it is, then the system displays the book details and requests for the number of copies required.
#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;
class book
{
private:
char *author, *title, *publisher;
float *price;
int *stock;
public:
book()
{
author = new char[20];
title = new char[20];
publisher = new char[20];
price = new float;
stock = new int;
}
void feeddata();
void editdata();
void showdata();
int search(char[], char[]);
void buybook();
};
void book::feeddata()
{
cin.ignore();
cout << "\nEnter Author Name: ";
cin.getline(author, 20);
cout << "Enter Title Name: ";
cin.getline(title, 20);
cout << "Enter Publisher Name: ";
cin.getline(publisher, 20);
cout << "Enter Price: ";
cin >> *price;
cout << "Enter Stock Position: ";
cin >> *stock;
}
void book::editdata()
{
cout << "\nEnter Author Name: ";
cin.getline(author, 20);
cout << "Enter Title Name: ";
cin.getline(title, 20);
cout << "Enter Publisher Name: ";
cin.getline(publisher, 20);
cout << "Enter Price: ";
cin >> *price;
cout << "Enter Stock Position: ";
cin >> *stock;
}
void book::showdata()
{
cout << "\nAuthor Name: " << author;
cout << "\nTitle Name: " << title;
cout << "\nPublisher Name: " << publisher;
cout << "\nPrice: " << *price;
cout << "\nStock Position: " << *stock;
}
int book::search(char tbuy[20], char abuy[20])
{
if (strcmp(tbuy, title) == 0 && strcmp(abuy, author) == 0)
return 1;
else
return 0;
}
void book::buybook()
{
int count;
cout << "\nEnter Number Of Books to buy: ";
cin >> count;
if (count <= *stock)
{
*stock = *stock - count;
cout << "\nBooks Bought Sucessfully";
cout << "\nAmount: Rs. " << (*price) * count;
}
else
cout << "\nRequired Copies not in Stock";
}
int main()
{
book *B[20];
int i = 0, r, t, choice;
char titlebuy[20], authorbuy[20];
while (1)
{
cout << "\n\n\t\tMENU"
<< "\n1. Entry of New Book"
<< "\n2. Buy Book"
<< "\n3. Search For Book"
<< "\n4. Edit Details Of Book"
<< "\n5. Exit"
<< "\n\nEnter your Choice: ";
cin >> choice;
switch (choice)
{
case 1:
B[i] = new book;
B[i]->feeddata();
i++;
break;
case 2:
cin.ignore();
cout << "\nEnter Title Of Book: ";
cin.getline(titlebuy, 20);
cout << "Enter Author Of Book: ";
cin.getline(authorbuy, 20);
for (t = 0; t < i; t++)
{
if (B[t]->search(titlebuy, authorbuy))
{
B[t]->buybook();
break;
}
}
if (t == 1)
cout << "\nThis Book is Not in Stock";
break;
case 3:
cin.ignore();
cout << "\nEnter Title Of Book: ";
cin.getline(titlebuy, 20);
cout << "Enter Author Of Book: ";
cin.getline(authorbuy, 20);
for (t = 0; t < i; t++)
{
if (B[t]->search(titlebuy, authorbuy))
{
cout << "\nBook Found Successfully";
B[t]->showdata();
break;
}
}
if (t == i)
cout << "\nThis Book is Not in Stock";
break;
case 4:
cin.ignore();
cout << "\nEnter Title Of Book: ";
cin.getline(titlebuy, 20);
cout << "Enter Author Of Book: ";
cin.getline(authorbuy, 20);
for (t = 0; t < i; t++)
{
if (B[t]->search(titlebuy, authorbuy))
{
cout << "\nBook Found Successfully";
B[t]->editdata();
break;
}
}
if (t == i)
cout << "\nThis Book is Not in Stock";
break;
case 5:
exit(0);
default:
cout << "\nInvalid Choice Entered";
}
}
return 0;
}
It is a really important project to me...
In this project when When I am running this code following lines are coming on the terminal..
PS D:\C_C++ PROJECTS> cd "d:\C_C++ PROJECTS\" ; if ($?) { g++ b_i.cpp -o b_i } ; if ($?) { .\b_i }
C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/lib/../lib/libmingw32.a(lib32_libmingw32_a-crt0_c.o):crt0_c.c:(.text.startup+0x39):
undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
If anyone know how to fix it, it is helpful to me....