//function to store created product information void inputProductInfo(string productCode,string productDesc,int tDay,string strMth,int tYr,int tQty,int tPStatus,double tPrice,double tDiscount) { product pdt; fstream pFile;
pdt.pdtCode=productCode;
pdt.pdtDesc=productDesc;
pdt.pdtDate.day=tDay;
pdt.pdtDate.mth=strMth;
pdt.pdtDate.yr=tYr;
pdt.pdtQty=tQty;
pdt.pdtPrice=tPrice;
pdt.pdtDiscount=tDiscount;
switch(tPStatus)
{
case 1:pdt.stock=available;
break;
case 2:pdt.stock=noStock;
break;
case 3:pdt.stock=notForSale;
break;
}
pFile.open("pFile.dat",ios::out | ios::in | ios::binary);
pFile.seekp(0, ios::end);
pFile.write(reinterpret_cast<char*>(&pdt),sizeof(pdt));
pFile.close();
}
void queryProductInfo(int pFileSize) { string sPdtCode; int whileOk=0; fstream pFile; product pdt; int i=0;
pFile.open ("pFile.dat", ios :: in | ios :: binary);
cout<<"Enter product code: ";
cin.clear();
cin.ignore (INT_MAX, '\n');
cin>>sPdtCode;
//loops as long as productCode does not satisfy 4 numerical digits and reusing productCode
while(whileOk!=1)
{
if(sPdtCode.size()!=4 || cmpPCode(sPdtCode)==false)
{
whileOk=0;
cout<<"Product code is limited to 4 numerical digits, please try again"
<<"\nProduct code: ";
cin>>sPdtCode;
}
else
{
whileOk++;
}
}
pFile.seekg(0, ios::beg);
while(pFile.read(reinterpret_cast <char*>(&pdt), sizeof(pdt)))
{
if (sPdtCode==pdt.pdtCode)
{
pFile.close ();
}
}
// This if- else is used to print out the table if the subject exist
if (sPdtCode==pdt.pdtCode)
{
displayProduct(pdt);
}
else
{
cout << "product code not found" << endl;
}
}
void displayProduct(product& pdt) {
cout<<"Date created: "<<pdt.pdtDate.day<<" "<<pdt.pdtDate.mth<<" "<<pdt.pdtDate.yr
<<"\nProduct code: "<<pdt.pdtCode
<<"\nDescription: "<<pdt.pdtDesc
<<"\nQuantity available: "<<pdt.pdtQty
<<"\nUnit price: ";
cout<<setprecision(2)<<fixed<<pdt.pdtPrice;
cout<<"\nDiscount: ";
cout<<setprecision(1)<<fixed<<pdt.pdtDiscount;
switch(pdt.stock)
{
case 1:cout<<"Status: Avilable";
break;
case 2:cout<<"Status: No stock";
break;
case 3:cout<<"Status: Not for sale";
break;
}
}