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.