繁体   English   中英

Visual Studio C ++数据结构错误,“ link1120”

[英]Visual Studio C++ data structure errors, “link1120”

我是数据结构的新手,现在我正在做作业,不知道此结构有什么问题。 请帮忙。 我将发布这些错误的图片。

在此处输入图片说明

我不知道这些错误是什么意思。 我该怎么办?

#include <iostream>
#include <string>
#include <iomanip>
using namespace std;

// Estructura para tipos de persona.
struct persona {
string nombre;
string direccion;
int numero;
};
persona proveedores[];
persona clientes[];
persona empleados[];

// Estructura para producto.
struct producto {
string nombre;
int numero;
};
producto product[];

// Indice para variables de estructura... para referencia
int NUM_Proveedores,
NUM_Clientes,
NUM_Empleados,
NUM_Producto;

void menuPrincipal() {
cout << "Bienvenido a Apple Inc.\n"
    << "MENU: Que deseas hacer?\n"
    << "1. Entrar Data.\n"
    << "2. Ver data.\n"
    << "3. Salir del programa.\n";
}

void menuData() {
cout << "Bienvenido a Apple Inc.\n"
    << "MENU: Entrada de datos.\n"
    << "1. Entrar Proveedores.\n"
    << "2. Entrar Clientes.\n"
    << "3. Entrar Empleados."
    << "4. Entrar Productos.\n"
    << "5. Salir del programa.\n";
}

int main(){
int choise_MenuPrincipal;
int choise_MenuData;

menuPrincipal();  // call menuPrincipal function
cin >> choise_MenuPrincipal;

if (choise_MenuPrincipal == 1) {
    menuData();
    cin >> choise_MenuData;

    if (choise_MenuData == 1) {
        // Proveedores code here
        cout << "Cuantidad de proveedores a ingresar: ";
        cin >> NUM_Proveedores;
        // loop de proveedores
        for (int i = 0; i < NUM_Proveedores; i++) {
            cout << "Nombre del proveedor " << i++ << ": ";
            cin >> proveedores[i].nombre;

            cout << "Direccion del proveedor " << i++ << ": ";
            cin >> proveedores[i].direccion;

            cout << "Numero del proveedor " << i++ << ": ";
            cin >> proveedores[i].numero;
        }
    }
    else if (choise_MenuData == 2) {
        // Clientes code here
        cout << "Cuantidad de clientes a ingresar: ";
        cin >> NUM_Clientes;
        // loop de clientes
        for (int i = 0; i < NUM_Clientes; i++) {
            cout << "Nombre del cliente " << i++ << ": ";
            cin >> clientes[i].nombre;

            cout << "Direccion del cliente " << i++ << ": ";
            cin >> clientes[i].direccion;

            cout << "Numero del cliente " << i++ << ": ";
            cin >> clientes[i].numero;
        }
    }
    else if (choise_MenuData == 3) {
        // Empleados code here
        cout << "Cantidad de empleados a ingresar: ";
        cin >> NUM_Empleados;
        // loop de clientes
        for (int i = 0; i < NUM_Empleados; i++) {
            cout << "Nombre del empleado " << i++ << ": ";
            cin >> empleados[i].nombre;

            cout << "Direccion del empleado " << i++ << ": ";
            cin >> empleados[i].direccion;

            cout << "Numero del empleado " << i++ << ": ";
            cin >> empleados[i].numero;
        }
    }
    else if (choise_MenuData == 4) {
        // Producto code here
        cout << "Cantidad de productos a ingresar: ";
        cin >> NUM_Producto;
        // loop de producto
        for (int i = 0; i < NUM_Producto; i++) {
            cout << "Nombre del producto " << i++ << ": ";
            cin >> product[i].nombre;

            cout << "Numero del producto " << i++ << ": ";
            cin >> product[i].numero;
        }
    }
    else {
        cout << "End Program." << endl;
    }

}
else if (choise_MenuPrincipal == 2){
    // ver data code here
}
else {
    cout << "End Program." << endl;
}


system("Pause");
return 0;

}

问题是你不能像这样定义数组

persona proveedores[];

编译器需要事先知道数组的大小。 一种解决方案是将该行更改为

const size_t MAX_SIZE = 100;
persona proveedores[MAX_SIZE];

...然后对clientesempleadosproduct等进行相同操作

如果需要动态大小数组,请改用std::vector

问题是您尚未为结构分配内存。

persona proveedores[];
persona clientes[];
persona empleados[];

稍后,您尝试访问的内容实际上不是cin >> provedores [i] .nombre;。

请像分配数组

persona proveedores[10];
persona clientes[10];
persona empleados[10];

并且至少会摆脱编译问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM