The following code uses two arrays, one to store products and another to store p
ID: 3768862 • Letter: T
Question
The following code uses two arrays, one to store products and another to store product IDs. The function getProductID takes as input the two arrays, the length of the arrays, and a target product to search for. It then loops through the product name array; if a match is found, it returns the corresponding product ID:
int getProductID(int ids[], string names [],
int numProducts, string target)
{
for (int i=0; i < numProducts; i++)
{
if (names[i] == target)
return ids[i];
}
return -1; // Not found
int main() // Sample code to test the getProductID function
{
int productIds[] = { 4, 5, 8, 10, 13 };
string products[] = { "computer", "flash drive",
"mouse", "printer", "camera" };
cout << getProductID(productIds, products, 5, "mouse") << endl;
cout << getProductID(productIds, products, 5, "camera") << endl;
cout << getProductID(productIds, products, 5, "laptop") << endl;
return 0;
}
One problem with the implementation of the getProductID function is that it returns the special error code of -1 if the traget name is not found. The caller might ignore the -1, or later we might actually want to have -1 as a valid product ID number. Rewrite the program so that it throws an appropriate exception when a product is not found instead of returning -1.
write in c++
Explanation / Answer
#include<iostream.h>
#include<exception.h>
class negative_val : public exception
{
public:
const char * what() const throw()
{
return "negative value";
}
};
int getProductID(int ids[], string names [],int numProducts, string target)
{
try{
for (int i=0; i < numProducts; i++)
{
if (names[i] == target)
return ids[i];
}
negative_val d;
throw d;
//return -1; // Not found
}
catch(exception& e)
{
cout << e.what();
}
}
int main() // Sample code to test the getProductID function
{
int productIds[] = { 4, 5, 8, 10, 13 };
string products[] = { "computer", "flash drive","mouse", "printer", "camera" };
cout << getProductID(productIds, products, 5, "mouse") << endl;
cout << getProductID(productIds, products, 5, "camera") << endl;
cout << getProductID(productIds, products, 5, "laptop") << endl;
return 0;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.