Write a program to enter the id and price of a number of products, store them all in a user defined file, and search the product when particular id is entered.
Sep 22, 2018Program Source Code:
#include<iostream>
// for file operations
#include<fstream>
// defining macro for global file name
// though better to make member of class Product
// and initialize using constructor
#define file_name "products.txt"
using namespace std;
class Product{
private:
int id;
float price;
public:
void read_data(){
cout<<"Enter ID:"<<endl;
cin>>id;
cout<<"Enter Price:"<<endl;
cin>>price;
}
void write_to_file(){
Product prod;
ofstream file(file_name,ios::app);
prod.read_data();
file.write(reinterpret_cast(&prod), sizeof(prod));
}
void read_from_file(){
Product prod;
ifstream file(file_name);
while(!file.eof()){
if (file.read(reinterpret_cast<char*>(&prod), sizeof(prod))){
prod.show_data();
}
}
}
void show_data(){
cout<<"ID : "<<id<<endl;
cout<<"Price : "<<price<<endl;
}
void search_record(){
Product prod;
int search_id;
cout<<"Enter the ID to search :"<<endl;
cin>>search_id;
ifstream file(file_name);
for (int i = 0; !file.eof(); i++)
{
file.seekg(i * sizeof(prod));
file.read(reinterpret_cast(&prod), sizeof(prod));
if (prod.id == search_id )
{
cout<<"#### Your search information ####"<<endl;
prod.show_data();
break;
}
}
}
};
int main(){
int record_number;
cout<<"Enter Record Number :"<<endl;
cin>>record_number;
Product product;
for (int i = 0; i < record_number; i++)
{
product.write_to_file();
}
product.search_record();
return 0;
}
Sample Run:
Enter Record Number : 7 Enter ID: 123 Enter Price: 2000 Enter ID: 124 Enter Price: 3000 Enter ID: 4444 Enter Price: 200000 Enter ID: 6767 Enter Price: 900000 Enter ID: 4545 Enter Price: 64646 Enter ID: 67777 Enter Price: 464646 Enter ID: 787878 Enter Price: 353535 Enter the ID to search : 6767 #### Your search information #### ID : 6767 Price : 900000
Note: file name can be made as entered by the user; to do so make file name, a data member of the class and initialize it through constructor. Please refer previous programs on file handling to achieve the mechanism.