Primero te paso el enunciado de todo el ejercicio:
Código HTML:
Un supermercado quiere gestionar la información acerca de sus productos y sus proveedores. De cada producto le interesa conservar los siguientes datos: código, nombre, proveedor, precio, stock actual, stock mínimo y stock máximo. En el caso de los proveedores, le interesa almacenar la siguiente información: CIF, nombre, teléfono, dirección y sector (cárnico, frutas y verduras, pescadería y droguería). Los proveedores suministran diversos tipos de productos.
a) Diseña las estructuras de datos necesarias para almacenar toda la información teniendo en cuenta que el supermercado gestiona 500 tipos de productos y trabaja con 30 proveedores.
b) Diseña un módulo que muestre un listado de pedidos. En dicho listado deben aparecer los productos cuyo stock actual sea menor que el stock mínimo. El listado debe mostrar la siguiente información: código del producto, nombre del proveedor y cantidad a pedir. La cantidad a pedir será la suficiente como para que el stock del producto sea igual al stock máximo.
c) Diseña una función que calcule el producto más demandado de acuerdo a sus ventas habituales. Para ello el supermercado utiliza el siguiente método: hay que revisar todos los productos cuyo stock actual es menor que el mínimo. Se calcula la diferencia entre ambas cantidades y se devuelve como resultado el producto cuya diferencia sea máxima.
Aquí tienes el ćodigo de todo el programa:
Código:
#include <iostream>
#include <cstring>
using namespace std;
const int Knom=120;
const int Kprov=120;
const int Kdir=60;
const int Ksector=30;
const int cant_prod=500;
const int cant_prov=30;
typedef struct
{
int cod;
char nom [Knom];
char prov [Kprov];
float pre;
int sto_ac;
int sto_min;
int sto_max;
int exito;
} TProducto;
typedef TProducto produc[cant_prod];
produc prod;
typedef struct
{
int cif;
char nom [Knom];
int telf;
char dir [Kdir];
char sector [Ksector];
} TProveedor;
typedef TProveedor provee[cant_prov];
provee prov;
void lista_pedidos (produc prod, provee prov, int p_prod, int p_prov)
{
for (int i=0; i< p_prod; i++)
if (prod[i].sto_ac < prod[i].sto_min)
{
cout << "Codigo: " << prod[i].cod << endl;
cout << "Pedido: " << prod[i].sto_max - prod[i].sto_ac << endl;
for (int j=0; j<p_prov; j++)
{
if (strcmp (prod[i].prov, prov[j].nom) == 0)
cout << "Proveedor: " << prov[j].nom << endl;
}
cout << "________________________________" << endl;
}
}
void exito (produc prod, provee prov, int p_prod, int p_prov)
{
cout << endl << "Exito: " << endl;
for (int i=0; i< p_prod-1; i++)
{
if (prod[i].sto_ac < prod[i].sto_min)
if ((prod[i].sto_ac - prod[i].sto_min) < (prod[i+1].sto_ac - prod[i+1].sto_min))
cout << prod[i].cod;
}
}
void inseret_prod (produc &prod, int p_prod)
{
for (int i=0; i<p_prod; i++)
{
cout << "_______________" << i << "_____________" << endl;
cout << "Cod: ";
cin >> prod[i].cod;
cout << "Nom: ";
cin >> prod[i].nom;
cout << "Prov: ";
cin >> prod[i].prov;
cout << "Pre: ";
cin >> prod[i].pre;
cout << "Sto_ac: ";
cin >> prod[i].sto_ac;
cout << "Sto_min: ";
cin >> prod[i].sto_min;
cout << "Sto_max: ";
cin >> prod[i].sto_max;
}
}
void insert_prov (provee prov, int p_prov)
{
for (int i=0; i<p_prov; i++)
{
cout << "_______________" << i << "_____________" << endl;
cout << "Cif: ";
cin >> prov[i].cif;
cout << "Nom: ";
cin >> prov[i].nom;
cout << "Telf: ";
cin >> prov[i].telf;
cout << "dir: ";
cin >> prov[i].dir;
cout << "Sector: ";
cin >> prov[i].sector;
}
}
main()
{
int no;
do
{
int p_prod;
cout << "cantidad de productos: ";
cin >> p_prod;
inseret_prod (prod, p_prod);
int p_prov;
cout << endl << endl << "cantidad de proveedores: ";
cin >> p_prov;
insert_prov (prov, p_prov);
cout << "-_-_-_-_-_- LISTA PEDIDOS -_-_-_-_-_-_-" << endl;
lista_pedidos(prod, prov, p_prod, p_prov);
exito(prod, prov, p_prod, p_prov);
cout << "Salir?? 1- SI ; 2- NO";
cin >> no;
}while (no != 1);
}
Compila, no tiene errores y funciona perfectamente a falta de lo que te comentaba antes.
Muchas gracias por adelantado por las molestias que te estas tomando!!