duda estructuras C.

sh31k
spoiler

Me dispongo a hacer un programita que me lleve el stocks de un almacen cualquiera, pues bien me creo lo que he puesto (que no se si esta bien por cierto) ahi arriba, y al ejecutarlo para probarlo se me abre la libreria stdio.h y me pone como error esto:
too many arguments to functions `char* gets(char*)'

el caso es que no se porque puede ser, me podeis hechar una mano?

pd: si la estructura esta mal pues decidlo tb ya que aun no piloto demasiado
un saludo :)

Soltrac

Creo q está muy claro.

tu función gets("%c", &salir); tiene 2 argumentos, cuando solo puede tener 1.

http://www.conclase.net/c/librerias/funcion.php?fun=gets

sh31k

vale gracias era eso, xDD

JuAn4k4

char = Caracter, pero solo 1. Por ejemplo 'c'
char* = Puntero a caracter, te permitiria tener mas de uno seguido, es decir una cadena. Por ejemplo : "Paco Jemez".
Te recomiendo usar punteros a estructuras.

Supongo que descripcion y proveedor seran cadenas :

typedef struct
{
int codigo;
char descripcion[200];
float precio;
char proveedor[200];
int baja; // ¿Que es esto ?
int stock; // stock >= 0
int stock_max;
int stock_min;
}stock, *pstock;

typedef struct
{
char pedidos_proveedor; // ¿ Que es esto ?
int idpedido;
int pedido; // ¿ Para que lo necesitas teniendo un id ?
} almacen,*palmacen;

Para manejar punteros :

pstock elStock;

elStock->precio = 3.0;

La mitad de las cosas no se para que las tienes, pero bueno, si lo que necesitas guardar es
1 - El estado del almacen y el listado de pedidos sobre piezas con precio hechos por proveedores:

/* Pedido tb puedes verlo como a quien haces el pedido. poniendo cantidades positivas al comprar y negativas al vender. */

typedef struct{
int idProveedor; // Quien te hace el pedido
int idPieza; // De que pieza
int cantidad; // Cuantas compra
}pedido, *ppedido;

/* Informacion de los proveedores */
typedef struct {
char nombreProveedor[200];
int vende[MAX_PIEZAS]; // Que piezas vende, podrias guardarlo en una lista dinamica si te parece mejor.
float precios[MAX_PIEZAS]; // Precios de las piezas que vende indexado por idpieza.
}proveedor, *pproveedor;

/* Informacion de una pieza /
typedef struct{
int codigoPieza; // Codigo de la pieza, puedes obviarlo y que sea el mismo idpieza.
char nombrePieza[50]; // Nombre de la pieza.
float pvp;
int stock_maximo; // Cuantas puede haber en el almacen
int cantidad; // Cuantas tenemos
} pieza,
ppieza;

/* Informacion del almacen */
typedef struct{
pieza piezas[MAX_PIEZAS]; // Cuantas unidades hay de cada pieza en el almacen.
int stock_de_seguridad;
} almacen, *palmacen;

Y luego necesitarias:

almacen elAlmacen;
proveedor misProveedores[MAX_PROVEEDORES];
Lista_Pedidos pedidos; // Puedes tener un vector pero vamos para esto ya seria demasiado.
// Este ultimo podrias tenerlo dentro del almacen.

Inicializas las piezas del almacen y proveedores.
Que puedan añadir piezas nuevas, y quitarlas... pues o le pones cantidad=0 , o reorganizas vectores, no he puesto listas ni arboles ni nada por el estilo porque imagino que sera demasiado no ?

sh31k

la verdad que está mas claro como me lo has puesto tu sinceramente, pero bueno, toy empezando xD, muchas gracias, y si puedes ponerme lo que dices con arboles y listas me serviría de ayuda, gracias de nuevo:)

JuAn4k4

Puedes buscarte una estructura de datos que no sea un vector , como listas, o arboles , si no sabes como hacerlos -> google y buscarse uno hecho. Las listas seguro que encuentras, arboles ya no lo se, alguno habra hecho. Si no tienes ni idea te recomiendo no usarlos, al menos de momento.

Usuarios habituales

  • JuAn4k4
  • sh31k
  • Soltrac