使用c++代码完成下述问题某商城仓库中各种商品信息用如下结构体表示: struct Goods { char name[20]; //名称 char grade; //等级(用A/B/C等大写字母表示) double price; //单价 int storage; //存储量 }; 请补充完成函数: char *findGoods(Goods goodsList[], int num, char g); 其中goodsList为所有商品信息构成的数组,num为商品种类数量, g为商品等级。要求实现功能:找到仓库中等级为g的总价值最大 的商品,并返回其名称。 说明:仓库中所有商品的总价值都不相同,且至少存在一种等级为g的商品。
时间: 2024-04-09 19:28:28 浏览: 25
以下是使用C++完成的代码,实现了函数`findGoods`的功能:
```cpp
#include <iostream>
#include <cstring>
struct Goods {
char name[20]; //名称
char grade; //等级(用A/B/C等大写字母表示)
double price; //单价
int storage; //存储量
};
char* findGoods(Goods goodsList[], int num, char g) {
double maxTotalValue = 0.0;
char* maxTotalValueName = nullptr;
for (int i = 0; i < num; i++) {
if (goodsList[i].grade == g) {
double totalValue = goodsList[i].price * goodsList[i].storage;
if (totalValue > maxTotalValue) {
maxTotalValue = totalValue;
maxTotalValueName = goodsList[i].name;
}
}
}
return maxTotalValueName;
}
int main() {
// 创建商品数组
Goods goodsList[5];
// 填充商品信息
strcpy(goodsList[0].name, "商品1");
goodsList[0].grade = 'A';
goodsList[0].price = 10.0;
goodsList[0].storage = 100;
strcpy(goodsList[1].name, "商品2");
goodsList[1].grade = 'B';
goodsList[1].price = 15.0;
goodsList[1].storage = 200;
strcpy(goodsList[2].name, "商品3");
goodsList[2].grade = 'A';
goodsList[2].price = 20.0;
goodsList[2].storage = 150;
strcpy(goodsList[3].name, "商品4");
goodsList[3].grade = 'C';
goodsList[3].price = 12.5;
goodsList[3].storage = 120;
strcpy(goodsList[4].name, "商品5");
goodsList[4].grade = 'A';
goodsList[4].price = 18.0;
goodsList[4].storage = 180;
// 调用函数查找等级为'A'的总价值最大的商品
char* result = findGoods(goodsList, 5, 'A');
// 打印结果
std::cout << "等级为'A'的总价值最大的商品名称:" << result << std::endl;
return 0;
}
```
在该代码中,我们定义了一个`Goods`结构体来表示商品的信息。然后,实现了函数`findGoods`来找到仓库中等级为g的总价值最大的商品,并返回其名称。
在`main`函数中,我们创建了一个包含5种商品的数组,并填充了商品的信息。然后,调用`findGoods`函数查找等级为'A'的总价值最大的商品,并打印结果。
注意:在实际使用中,应该根据具体需求进行适当的修改和错误处理。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)