typedef struct {
char nombre[50];
char cuit[20];
char cp[20];
}Tipo_Cliente;
typedef struct {
int id;
char coment[255];
float precio;
}Tipo_Articulo;
typedef struct {
int id;
char cuit[20];
char fecha[20];
}Tipo_Compra;
/*FUNCIONES*/
int alta_opc() //Opciones de alta
{
int opc;
printf("\n\nALTAS:\n------\n");
printf("1-Cliente\n");
printf("2-Articulo\n");
printf("3-Compra\n");
printf("0-Salir\n>");
fflush(stdin);
scanf("%d",&opc);
return opc;
}
int informes_opc() //Opciones de informes
{
printf("\n\nINFORMES:\n---------\n");
printf("1-Clientes ordenados por monto total\n");
printf("2-Articulos ordenados por ventas\n");
printf("3-Codigos postales ordenados por cantidad de envios\n");
printf("4-Ver todos los Clientes\n");
printf("5-Ver todos los Articulos\n");
printf("6-Ver todas las Compras\n");
printf("0-Salir\n>");
int opc;
fflush(stdin);
scanf("%d",&opc);
return opc;
}
int main()
{
int cant_cli=0,cant_art=0,cant_com=0;
Tipo_Cliente* clientes;
Tipo_Articulo* articulos;
Tipo_Compra* compras;
int opc=alta_opc();
int auxcli=TAM;
int auxart=TAM;
int auxcom=TAM;
while (opc)
{
switch (opc)
{
case 1:
{
printf ("\n\nALTA DE CLIENTE\n");
if (cant_cli==0)
clientes=(Tipo_Cliente*)malloc(auxcli*sizeof(Tipo_Cliente));
else
if (cant_cli==auxcli)
{
auxcli+=5;
clientes=(Tipo_Cliente*)realloc(clientes,auxcli*sizeof(Tipo_Cliente));
}
printf("\n\nIngrese Nombre del cliente:\n >");
fflush(stdin);
gets(clientes[cant_cli].nombre);
printf("\n\nIngrese CUIT del cliente:\n >");
fflush(stdin);
gets(clientes[cant_cli].cuit);
printf("\n\nIngrese CP del cliente:\n >");
fflush(stdin);
gets(clientes[cant_cli].cp);
cant_cli++;
opc=alta_opc();
}
break;
case 2:
{
printf ("\n\nALTA DE ARTICULO\n");
if (cant_art==0)
articulos=(Tipo_Articulo*)malloc(auxart*sizeof(Tipo_Articulo));
else
if (cant_art==auxart)
{
auxart+=5;
articulos=(Tipo_Articulo*)realloc(articulos,auxart*sizeof(Tipo_Articulo));
}
printf("\n\nIngrese ID:\n >");
fflush(stdin);
scanf("%d",&(articulos[cant_art].id));
printf("\n\nIngrese Comentario:\n >");
fflush(stdin);
gets(articulos[cant_art].coment);
printf("\n\nIngrese precio:\n >");
fflush(stdin);
scanf("%f",&(articulos[cant_art].precio));
cant_art++;
opc=alta_opc();
}
break;
case 3:
{
printf ("\n\nALTA DE COMPRA\n");
if (cant_com==0)
compras=(Tipo_Compra*)malloc(auxcom*sizeof(Tipo_Compra));
else
if (cant_com==auxcom)
{
auxcom+=5;
compras=(Tipo_Compra*)realloc(compras,auxcom*sizeof(Tipo_Compra));
}
printf("\n\nIngrese ID:\n >");
fflush(stdin);
scanf("%d",&(compras[cant_com].id));
printf("\n\nIngrese Cuit:\n >");
fflush(stdin);
gets(compras[cant_com].cuit);
printf("\n\nIngrese fecha:\n >");
fflush(stdin);
gets(compras[cant_com].fecha);
cant_com++;
opc=alta_opc();
}
default:break;
}/*end switch*/
} /*end while*/
int informe=informes_opc();
while (informe)
{
switch (informe)
{
case 1:
{
}
break;
case 2:{
}
break;
case 3:{
}
break;
case 4:{
int i;
printf("CLIENTES EN LA BASE\n");
for (i=0;i<cant_cli;i++)
{
printf("Nombre: %s\n",clientes[i].nombre);
printf("CUIT: %s\n",clientes[i].cuit);
printf("CP: %s\n",clientes[i].cp);
printf("-------------\n");
}
}
break;
case 5:{
int i;
printf("ARTICULOS EN LA BASE\n");
for (i=0;i<cant_art;i++)
{
printf("ID: %d\n",articulos[i].id);
printf("Comentario: %s\n",articulos[i].coment);
printf("Precio: %f\n",articulos[i].precio);
printf("-------------\n");
}
}
break;
case 6:{
int i;
printf("COMPRAS EN LA BASE\n");
for (i=0;i<cant_com;i++)
{
printf("ID: %d\n",compras[i].id);
printf("Comentario: %s\n",compras[i].cuit);
printf("Fecha: %s\n",compras[i].fecha);
printf("-------------\n");
}
}
break;
default:break;
}/*end switch*/
informe=informes_opc();
} /*end whie*/
free(clientes);
free(articulos);
free(compras);
getch();
return 0;
}