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, 2018

Program 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.

Related


Tools/Apps





© Nepal Exchange Rates