Apellido y Nombre:__________________________________
Se quiere realizar un control sobre los productos de un supermercado. Para esto se cuenta con dos estructuras:
- struct s_producto, que representa un producto a la venta (nombre, marca, cantidad, fecha de elaboración, fecha de vencimiento)
- struct s_fecha, que representa una fecha calendario (dia,mes,año)
Realizar un programa que, utilizando las estructuras mencionadas, permita registrar por teclado 3 productos (con todos sus datos completos) e informe cuantos ya superaron su fecha de vencimiento.
Aclaraciones: las fechas de la estructura struct s_producto deben ser de tipo struct s_fecha, y los productos ingresados deben ser almacenados en un arreglo de 3 posiciones de tipo struct s_producto.
Resuelto:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define N 30
struct s_fecha
{
int dia,mes,ano;
};
struct s_producto
{
char nombre[30];
char marca [30];
int cantidad;
struct s_fecha elaboracion;
struct s_fecha vencimiento;
};
int main()
{
struct s_fecha hoy= {24,9,2014};
struct s_producto producto[3];
int i=0,r=0,vencidos;
char l='a', aux;
for(r=0; r<3; r++)
{
printf("Ingrese el nombre del producto %d:\n", r+1);
aux='a';
while(aux!='\r')
{
aux=getche();
if(aux!='\r')
{
l=aux;
producto[r].nombre[i]=l;
i++;
}
}
producto[r].nombre[i]='\0';
aux='a';
printf("\nIngrese la marca del producto:\n");
while(aux!='\r')
{
aux=getche();
if(aux!='\r')
{
l=aux;
producto[r].marca[i]=l;
i++;
}
}
producto[r].marca[i]='\0';
printf("\nIngrese la cantidad:\n");
scanf("%d", &producto[r].cantidad);
printf("\nIngrese la fecha de elaboracion: \nDia:");
scanf("%d", &producto[r].elaboracion.dia);
printf("\nMes:");
scanf("%d", &producto[r].elaboracion.mes);
printf("\nAño:");
scanf("%d", &producto[r].elaboracion.ano);
printf("\nIngrese la fecha de vencimiento: \nDia:");
scanf("%d", &producto[r].vencimiento.dia);
printf("\nMes:");
scanf("%d", &producto[r].vencimiento.mes);
printf("\nAño:");
scanf("%d", &producto[r].vencimiento.ano);
printf("\n____________________ ______________________________ ____\n");
}
vencidos=contar_vencidos( producto);
printf("De los 3 productos ingresados, %d estan vencidos a la fecha. (%d/%d/%d)",vencidos,hoy.dia, hoy.mes,hoy.ano);
return 0;
}
int contar_vencidos(struct s_producto producto[])
{
int i, cont=0;
struct s_fecha hoy= {24,9,2014};
for(i=0; i<3; i++)
{
if(producto[i].vencimiento. ano<hoy.ano)
{
cont++;
}
else
{
if(producto[i].vencimiento. ano==hoy.ano)
{
if(producto[i].vencimiento. mes<hoy.mes)
cont++;
else
{
if(producto[i].vencimiento. mes==hoy.mes)
{
if(producto[i].vencimiento. dia<hoy.dia)
cont++;
}
}
}
}
}
return cont;
}
#include <stdlib.h>
#include <conio.h>
#define N 30
struct s_fecha
{
int dia,mes,ano;
};
struct s_producto
{
char nombre[30];
char marca [30];
int cantidad;
struct s_fecha elaboracion;
struct s_fecha vencimiento;
};
int main()
{
struct s_fecha hoy= {24,9,2014};
struct s_producto producto[3];
int i=0,r=0,vencidos;
char l='a', aux;
for(r=0; r<3; r++)
{
printf("Ingrese el nombre del producto %d:\n", r+1);
aux='a';
while(aux!='\r')
{
aux=getche();
if(aux!='\r')
{
l=aux;
producto[r].nombre[i]=l;
i++;
}
}
producto[r].nombre[i]='\0';
aux='a';
printf("\nIngrese la marca del producto:\n");
while(aux!='\r')
{
aux=getche();
if(aux!='\r')
{
l=aux;
producto[r].marca[i]=l;
i++;
}
}
producto[r].marca[i]='\0';
printf("\nIngrese la cantidad:\n");
scanf("%d", &producto[r].cantidad);
printf("\nIngrese la fecha de elaboracion: \nDia:");
scanf("%d", &producto[r].elaboracion.dia);
printf("\nMes:");
scanf("%d", &producto[r].elaboracion.mes);
printf("\nAño:");
scanf("%d", &producto[r].elaboracion.ano);
printf("\nIngrese la fecha de vencimiento: \nDia:");
scanf("%d", &producto[r].vencimiento.dia);
printf("\nMes:");
scanf("%d", &producto[r].vencimiento.mes);
printf("\nAño:");
scanf("%d", &producto[r].vencimiento.ano);
printf("\n____________________
}
vencidos=contar_vencidos(
printf("De los 3 productos ingresados, %d estan vencidos a la fecha. (%d/%d/%d)",vencidos,hoy.dia,
return 0;
}
int contar_vencidos(struct s_producto producto[])
{
int i, cont=0;
struct s_fecha hoy= {24,9,2014};
for(i=0; i<3; i++)
{
if(producto[i].vencimiento.
{
cont++;
}
else
{
if(producto[i].vencimiento.
{
if(producto[i].vencimiento.
cont++;
else
{
if(producto[i].vencimiento.
{
if(producto[i].vencimiento.
cont++;
}
}
}
}
}
return cont;
}
No comments:
Post a Comment