Wednesday, September 24, 2014

Segundo Parcialito (2º Cuatrimestre 2014)

Parcialito II Informática II
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;
}

No comments:

Post a Comment