elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  problemas para pasar una estructura a una funcion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problemas para pasar una estructura a una funcion  (Leído 2,582 veces)
mbolivar94

Desconectado Desconectado

Mensajes: 1



Ver Perfil
problemas para pasar una estructura a una funcion
« en: 29 Diciembre 2012, 03:35 am »

hola soy nuevo en este foro pero quisiera que me ayudaran con un ejercicio que me trae los pelos de punta. el problema BASICAMENTE es que cuando cuando introduzco los datos y mando a pedir el reporte el programa me da un numero totalmente erroneo debido a que no esta inicializando mis estructuras... agradecería la ayuda

/*desarrolle un programa el cual registre la entrada de 5 elementos a un almacen, guardando la cantidad y la fecha en la que este entro.tambien debe registrar los egresos de los mismos productos con su fecha correspondiante. finalmente el programa debe tener la opcion para emitir un reporta donde este registrado, LA ULTIMA FECHA DE INGRESO, LA ULTIMA FECHA DE DESPACHO Y LA CANTIDAD ACTUAL DEL PRODUCTO SOLICITADO... UTILIZE ESTRUCTURAS Y FUNCIONES */


#include<stdio.h>
#include<string.h>

struct lapiz {
int cantidad;
int diae;
int mese;
int anioe;
int dias;
int mess;
int años;
} l={0};

struct borra {
int cantidad;
int diae;
int mese;
int anioe;
int dias;
int mess;
int años;

} b={0};

struct sacapunta {
int cantidad;
int diae;
int mese;
int anioe;
int dias;
int mess;
int años;
} s={0};

struct papel {
int cantidad;
/*int diae;
int mese;
int anioe;
int dias;
int mess;
int años;*/

} p={0};

struct libro {
int cantidad;
int diae;
int mese;
int anioe;
int dias;
int mess;
int años;
} lb={0};

int cant;
int z=0;
int r=0;


int ingreso (struct lapiz l,struct borra b, struct sacapunta s, struct papel p, struct libro lb, int cant){
int a;
printf("selecciones el producto que este ingresando: 1.lapiz 2.borrador 3.saca puntas 4.papel 5.libros\n\n");
scanf("%d",&a);

printf("introduzca la cantidad a ingresar:\n");
scanf("%d",&cant);

switch (a)
{

case 1:
printf("introduzca la fecha de ingreso dd mm aa:\n");
scanf("%d %d %d",&l.diae,&l.mese,&l.anioe);
l.cantidad=l.cantidad + cant;

break;

case 2:
printf("introduzca la fecha de ingreso dd/mm/aa:\n");
scanf("%d %d %d",&b.diae, &b.mese, &b.anioe);
b.cantidad=b.cantidad + cant;
break;

case 3:
printf("introduzca la fecha de ingreso dd/mm/aa:\n");
scanf("%d %d %d",&s.diae, &s.mese, &s.anioe);
s.cantidad=s.cantidad + cant;
break;

case 4:
printf("introduzca la fecha de ingreso dd/mm/aa:\n");
scanf("%d %d %d",&p.diae, &p.mese, &p.anioe);
p.cantidad=p.cantidad + cant;
break;

case 5:
printf("introduzca la fecha de ingreso dd/mm/aa:\n");
scanf("%d %d %d",&lb.diae, &lb.mese, &lb.anioe);
lb.cantidad=lb.cantidad + cant;
break;
};
z=0;
return (z);
};

salida (struct lapiz l, struct borra b, struct sacapunta s, struct papel p, struct libro lb, int cant){
int g;
printf("selecciones el producto que este despachando: 1.lapiz 2.borrador 3.saca puntas 4.papel 5.libros\n");
scanf("%d",&g);

printf("introduzca la cantidad a ingresar;\n");
scanf("%d",&cant);

switch (g)
{

case 1:
printf("introduzca la fecha de ingreso dd mm aa:\n");
scanf("%d %d %d",&l.dias, &l.mess, &l.años);
l.cantidad=l.cantidad - cant;
break;

case 2:
printf("introduzca la fecha de ingreso dd mm aa:\n");
scanf("%d %d %d",&b.dias, &b.mess, &b.años);
b.cantidad=b.cantidad - cant;
break;

case 3:
printf("introduzca la fecha de ingreso dd mm aa:\n");
scanf("%d %d %d",&s.dias, &s.mess, &s.años);
s.cantidad=s.cantidad - cant;
break;

case 4:
printf("introduzca la fecha de ingreso dd/mm/aa:\n");
scanf("%d/%d/%d",&p.dias, &p.mess, &p.años);
p.cantidad=p.cantidad - cant;
break;

case 5:
printf("introduzca la fecha de ingreso dd mm aa:\n");
scanf("%d %d %d",&lb.dias, &lb.mess, &lb.años);
lb.cantidad=lb.cantidad - cant;
break;
};
};

consulta(struct lapiz l, struct borra b, struct sacapunta s, struct papel p, struct libro lb, int cant){
int c;
printf("selecciones el producto a consultar: 1.lapiz 2.borrador 3.saca puntas 4.papel 5.libros\n");
scanf("%d",&c);


switch (c)
{
case 1:
printf("la ultima fecha de entrada es: %d %d %d \n",l.diae,l.mese,l.anioe);
printf("la ultima fecha de salida es: %d %d %d \n",l.dias,l.mess,l.años);
printf("la cantidad actual del producto es %d \n:",l.cantidad);
break;

case 2:
printf("la ultima fecha de entrada es: %d %d %d \n",b.diae,b.mese,b.anioe);
printf("la ultima fecha de salida es: %d %d %d \n",b.dias,b.mess,b.años);
printf("la cantidad actual del producto es: %d\n",b.cantidad);
break;

case 3:

printf("la ultima fecha de entrada es: %d %d %d \n",s.diae,s.mese,s.anioe);
printf("la ultima fecha de salida es: %d %d %d \n",s.dias,s.mess,s.años);
printf("la cantidad actual del producto es %d\n:",s.cantidad);
break;

case 4:
printf("la ultima fecha de entrada es: %d %d %d \n",p.diae,p.mese,p.anioe);
printf("la ultima fecha de salida es: %d %d %d \n",p.dias,p.mess,p.años);
printf("la cantidad actual del producto es: %d\n",p.cantidad);
break;

case 5:
printf("la ultima fecha de entrada es: %d %d %d \n",lb.diae,lb.mese,lb.anioe);
printf("la ultima fecha de salida es: %d %d %d \n",lb.dias,lb.mess,lb.años);
printf("la cantidad actual del producto es:%d\n",lb.cantidad);
break;
};
};

main(){
int d;
struct lapiz l;
struct borra b;
struct sacapunta s;
struct papel p;
struct libro lb;
while (z==0){

printf("escoja la operacion a realizar 1. ingresar 2. despachar 3. consultar producto\n");
scanf("%d",&d);

switch (d){

case 1:
ingreso(l,b,s,p,lb,cant);
break;

case 2:
salida(l,b,s,p,lb,cant);
break;

case 3:
consulta(l,b,s,p,lb,cant);
break;
};
};
}

pude ver haciendo las mil marañas que mi problema es cuando paso mis estructuras dentro de las funciones...


En línea

zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Re: problemas para pasar una estructura a una funcion
« Respuesta #1 en: 29 Diciembre 2012, 16:16 pm »

Si todas tus estructuras presentan los mismos campos (mismos datos miembro), sería bueno que uses una estructura en general llamada eAlmacen.
Luego existirían arreglos para cada tipo de elementos, un array lapiz, borra, sacapta, papel, libro.


En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: problemas para pasar una estructura a una funcion
« Respuesta #2 en: 29 Diciembre 2012, 23:27 pm »

Hola! tus problemas mas que nada son de conceptos:

1° toma en cuenta lo que dijo zonahurbana, ya que el codigo se va a reducir bastante

2° Creando las estructuras de esa manera estas declarando variables globales
Código
  1. struct lapiz {
  2. int cantidad;
  3. int diae;
  4. int mese;
  5. int anioe;
  6. int dias;
  7. int mess;
  8. int años;
  9. } l={0}; /*<---- variable global */
  10.  
  11. struct borra {
  12. int cantidad;
  13. int diae;
  14. int mese;
  15. int anioe;
  16. int dias;
  17. int mess;
  18. int años;
  19.  
  20. } b={0}; /* <--- variable global */
  21.  
  22. /*...................*/
En el main volves a crear esas variables(con el mismo nombre) pero locales...
Si usas variables globales no es necesario pasarselo a funciones como argumentos(de echo estaria mal). Si usas variables locales tenes que revisar el concepto de: "pasaje de variables por valor o por referencia"


Saludos

PD: usa la etiqueta GeSHi para colocar codigo
En línea

Ahorrate una pregunta, lee el man
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines