struct Goods{ string name; int num; double prices; goods(string a,int b,double c){ name=a;num=b;prices=c; } void shows(){ cout <<"序号"<<num<<"名称"<<name<<"价格"<<prices<<"\n"; } }; Goods g[10];帮我找错
时间: 2024-03-24 16:39:42 浏览: 33
在上述代码中,有一个错误是构造函数的函数名应该与结构体名相同,但是这里将构造函数的函数名写成了 "goods",而不是 "Goods"。所以,正确的代码应该是:
```c++
#include <iostream>
using namespace std;
struct Goods {
string name;
int num;
double prices;
Goods(string a, int b, double c) {
name = a;
num = b;
prices = c;
}
void shows() {
cout << "序号" << num << "名称" << name << "价格" << prices << "\n";
}
};
Goods g[10];
int main() {
// do something
return 0;
}
```
在上面的代码中,我们将构造函数的函数名修改为 "Goods",并在 main 函数中声明了一个名为 g 的 Goods 数组。
相关问题
using namespace std; struct Goods{ string name; int num; double prices; Goods(string a,int b,double c){ name=a;num=b;prices=c; } void shows(){ cout <<"序号"<<num<<"名称"<<name<<"价格"<<prices<<"\n"; } }; Goods g[10];
这段代码定义了一个结构体 Goods,该结构体包含三个成员变量:name(名称)、num(序号)和 prices(价格)。此外,该结构体还定义了一个构造函数 Goods(string a,int b,double c),用于初始化结构体的成员变量。在构造函数中,传入三个参数分别为名称、序号和价格,然后将它们赋值给结构体的成员变量。结构体还定义了一个成员函数 shows(),用于输出结构体的成员变量值。最后,声明了一个名为 g 的 Goods 类型的数组,该数组可以存储最多 10 个 Goods 类型的元素。
需要注意的是,在结构体内部定义的成员函数 shows() 中使用了标准输出流对象 cout,而 cout 对象所在的命名空间是 std,所以需要使用 using namespace std; 语句或者使用 std::cout。
此外,在构造函数中,成员变量的赋值可以直接使用成员初始化列表(member initialization list),如下所示:
```c++
Goods(string a, int b, double c) : name(a), num(b), prices(c) {}
```
使用成员初始化列表可以提高代码的效率。
struct Goods{ string name; int num; double prices; }; struct Goods g[100]; void jie(){ printf("1 登录 \n"); printf("2 商品信息管理 \n"); printf("3 权限管理 \n"); printf("4 退出 \n"); } void jie2(){ printf("1 增加商品 \n"); printf("2 修改商品 \n"); printf("3 删除商品 \n"); printf("4 查看 \n"); printf("5 退出 \n"); } void jie3(){ printf("1 价格排序 \n"); printf("2 序号排序 \n"); printf("3 退出 \n"); } int a=0; int sum=0; void add(){ cout<<"请输入增加商品数量 \n"; string q;int w;double e; cin>>a; sum=sum+a; for(int i=0;i<a;i++){ cout <<"请输入商品名字,序号,价格 \n"; cin >>q>>w>>e; g[i+sum-a].name=q; g[i+sum-a].num=w; g[i+sum-a].prices=e; } } void show(){ for(int i=0;i<sum;i++){ cout<<"序号"<<g[i].num<<"名字"<<g[i].name<<"价格"<<g[i].prices<<"\n"; } }
这段代码定义了一个Goods结构体,包含了商品的名称、数量和价格信息。同时定义了一个名为g的结构体数组,数组长度为100,用于存储商品信息。
代码中,jie()函数用于输出主菜单选项,jie2()函数用于输出商品信息管理菜单选项,jie3()函数用于输出权限管理菜单选项。
add()函数用于增加商品信息,先要输入要增加的商品数量,然后根据输入的商品名字、序号和价格信息,将商品信息添加到g数组中。
show()函数用于显示所有商品信息,将g数组中的所有商品信息依次输出。
需要注意的是,代码中存在一些问题,比如add()函数中的循环条件不应该是i<a,而应该是i<a+sum,因为要将新增加的商品信息添加到g数组中已有的商品信息后面。此外,由于g数组长度为100,当商品数量超过100时,会导致数组越界。
阅读全文