Adsence

martes, 7 de junio de 2011

Struct-de-una-Multinacional-para-el-manejor-de-N-clientes

Leave a Comment
[caption id="attachment_1021" align="aligncenter" width="683"]Struct de una multinacional para el manejo de n clientes Struct de una multinacional para el manejo de n clientes[/caption]

Una multinacional quiere que usted cree un programa para llevar el control de todos sus N clientes (N dado por teclado), de cada uno de ellos se conoce:

  • Código del Cliente,

  • Nombre,

  • Cedula del cliente,

  • tipo de cliente (1. Minorista, 2. Normal, 3. Mayorista)

  • número de productos.


Cada uno de estos clientes tiene un número X de productos que maneja con la multinacional (X dado por teclado) de cada producto se maneja la siguiente información:


  • Código del Producto,

  • Nombre,

  • Cantidad Pedida,

  • Valor Unitario,

  • Descuento.




Cree:


  1. Main

  2. Función Llenado

  3. Función Cuanto debe pagar cada cliente por sus productos.

  4. Función Valor total pagado por cada tipo de cliente (1. Minorista, 2. Normal, 3. Mayorista).

  5. Función Cliente que más Paga por tipo de Cliente.




[cpp]

/*
Una multinacional quiere que usted cree un programa para llevar el control de todos sus N clientes (N dado por teclado), de
cada uno de ellos se conoce: Código del Cliente, Nombre, Cedula del cliente, tipo de cliente (1. Minorista, 2. Normal, 3.
Mayorista) y número de productos. Cada uno de estos clientes tiene un número X de productos que maneja con la multinacional (X
dado por teclado) de cada producto se maneja la siguiente información: Código del Producto, Nombre, Cantidad Pedida, Valor
Unitario, Descuento. Cree:
Main
Función Llenado
Función Cuanto debe pagar cada cliente por sus productos.
Función Valor total pagado por cada tipo de cliente (1. Minorista, 2. Normal, 3. Mayorista).
Función Cliente que más Paga por tipo de Cliente.

*/
#include<conio.h>
#include<stdio.h>
struct producto
{
int cod,can;
char nom[50];
float val,des;
};
struct Cliente
{
int cod,tip,nuP,ced;
char nom[50];
struct producto p[100];
};
void portada(){
printf("...............................................................................\a\n");
printf("................******.*****.** **.*****.****.*****.*****..**................\a\n");
printf("................ ** .** **.*** ***.** **.** .** **.**.**.***................\a\n");
printf("................ ** .*****.*******.*****.****.*****.*****..**................\a\n");
printf("................ ** .** **.** * **.** .** .*** ....**..**................\a\n");
printf("................**** .** **.** **.** .****.** **....**.****...............\a\n");
printf("...............................jamper91.hostei.com.............................\a\n");
printf("\n");
};
void final(){
printf("-------------------------------------------------------------------------------\a\n");
printf ("******************************************************************************\a\n");
printf (" Creado por jamper91@hotmail.com\n");
printf (" Cucuta Campeon\n");
printf ("******************************************************************************\a\n");
printf("-------------------------------------------------------------------------------\a\n");
};
//Función Cuanto debe pagar cada cliente por sus productos.
float cuantodebePagar(struct Cliente c)
{
//Variable que retornara el total a pagar
float total=0;
float aux=0;
//Recorro todos los productos de ese cliente
for(int i=0;i<c.nuP;i++)
{
//multiplico la cantidad de productos i por el precio i
aux=(c.p[i].can*c.p[i].val);
//le resto el descuento, recuerda si el descuento es el 20%, puedo restarlo de 2 manera:
/*
1. val=val-(val*0.20)
2. val=val*(1-0.20)
En el primero, hayo cuanto es el descuento (val*0.20) y lo resto al total, el 2 hace lo mismo pero mas rapido
*/
aux=aux*(1-c.p[i].des);
total=total+aux;
}
return total;

}
void llenado(struct Cliente c[],int t)
{
for(int i=0;i<t;i++)
{
printf("\tDigite nombre %d:",i+1);
scanf("%s",&c[i].nom);
//printf("\tDigite codigo %d:",i+1);
//scanf("%d",&c[i].cod);
printf("\tDigite tipo %d:",i+1);
scanf("%d",&c[i].tip);
printf("\tDigite numero de productos %d:",i+1);
scanf("%d",&c[i].nuP);
for(int j=0;j<c[i].nuP;j++)
{
printf("\n\t\tDigite nombre del producto %d:",j+1);
scanf("%s",&c[i].p[j].nom);
//printf("\t\tDigite codigo del producto %d:",j+1);
//scanf("%d",&c[i].p[j].cod);
printf("\t\tDigite cantidad del producto %d:",j+1);
scanf("%d",&c[i].p[j].can);
printf("\t\tDigite valor del producto %d:",j+1);
scanf("%f",&c[i].p[j].val);
printf("\t\tDigite descuento del producto %d:",j+1);
scanf("%f",&c[i].p[j].des);

}
printf("\tEste cliente debe pagar:%.2f\n",cuantodebePagar(c[i]));

}
}

/*
Función Valor total pagado por cada tipo de cliente (1. Minorista, 2. Normal, 3. Mayorista).
*/
void valorTotal(struct Cliente c[],int t)
{
//variables donde guarde el total a pagar por cada tipo de cliente(3)
float tp1=0,tp2=0,tp3=0;
for(int i=0;i<t;i++)
{
//Si es un cliente del tipo 1
if(c[i].tip==1)
tp1=tp1+cuantodebePagar(c[i]);
else if(c[i].tip==2)
tp2=tp2+cuantodebePagar(c[i]);
else
tp3=tp3+cuantodebePagar(c[i]);


}
printf("El total que deben pagar los Minorista es: %.2f",tp1);
printf("El total que deben pagar los Normales es: %.2f",tp2);
printf("El total que deben pagar los Mayorista es: %.2f",tp3);
}
/*
Función Cliente que más Paga por tipo de Cliente.

*/
void masPaga(struct Cliente c[],int t)
{
//variables donde el valor mayor que se encuentre de cada tipo
float tp1=0,tp2=0,tp3=0;
//variables que guardaran las posiciones de los valores mayores hayados, suponemos para empesar que todos los mayores estan en la posicion
// 0
int p1=0,p2=0,p3=0;
for(int i=0;i<t;i++)
{
//Guardo en una var lo que debe pagar este cliente
float aux=cuantodebePagar(c[i]);
//Si es un cliente del tipo 1
if(c[i].tip==1)
{
//Si el valor que paga este cliente, es mayor a los anteriores, entonces actualizo
if(aux>tp1)
{
tp1=aux;
p1=i;
}
}else if(c[i].tip==2){
//Si el valor que paga este cliente, es mayor a los anteriores, entonces actualizo
if(aux>tp2)
{
tp2=aux;
p2=i;
}
}else{
//Si el valor que paga este cliente, es mayor a los anteriores, entonces actualizo
if(aux>tp3)
{
tp3=aux;
p3=i;
}

}
}
printf("El Minorista que mas paga es %s ",c[p1].nom);
printf("El Normal que mas paga es %s ",c[p2].nom);
printf("El Mayorista que mas paga es %s ",c[p2].nom);
}
main()
{
int t=2;
portada();
printf("Digite N:");
scanf("%d",&t);
struct Cliente c[t];
llenado(c,t);
valorTotal(c,t);
masPaga(c,t);
final();
getch();
return 0;

}

[/cpp]

0 comentarios :