gonzalob

Untitled

Apr 21st, 2020
673
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.18 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void cargarProducto(float * p_precio, int * p_cantidad);
  5. double getPrecioTotal(int cantidad, double precio_producto);
  6. double getDescuento(double precio_total,int cantidad);
  7. void mostrar(char nombre[],int cantidad, double precio, double sub_total, double descuento, double total);
  8. int realizarVenta();
  9. void menu();
  10. double totalVendido(double totales[100],int cantidadVentas);
  11. void mostrarTotalVendido(double totales[100],int cantidadVentas);
  12.  
  13. int main()
  14. {
  15.     int op = 0;
  16.     double totales[100] = {0};
  17.     double total = 0;
  18.     int cantidadVentas = 0;
  19.     do
  20.     {
  21.         menu();
  22.         fflush(stdin);
  23.         scanf("%d",&op);
  24.         switch (op)
  25.         {
  26.             case 1: cantidadVentas = realizarVenta(totales,cantidadVentas);
  27.                     break;
  28.             case 2: total = totalVendido(totales,cantidadVentas);
  29.                     if (total > 0)
  30.                         printf("Total ... $ %.2f \n",total);
  31.                     else
  32.                         printf("agarra la pala\n");
  33.                     break;
  34.             case 3: mostrarTotalVendido(totales,cantidadVentas);
  35.                     break;
  36.             default: printf("Op invalida\n");
  37.         }
  38.     }while (op!=4);
  39.     printf("Gracias por usarlo\n");
  40.     return 0;
  41. }
  42.  
  43. void menu()
  44. {
  45.     system("pause");
  46.     system("cls");
  47.     printf("1-Realizar venta\n");
  48.     printf("2-Mostrar total vendido\n");
  49.     printf("3-Mostrar cantidad total\n");
  50.     printf("4-Salir\n");
  51. }
  52.  
  53. double totalVendido(double totales[100],int cantidadVentas)
  54. {
  55.     double total = 0;
  56.     for (int i=0;i<cantidadVentas;i++)
  57.     {
  58.         total = total + totales[i];
  59.     }
  60.     return total;
  61. }
  62.  
  63. void mostrarTotalVendido(double totales[100],int cantidadVentas)
  64. {
  65.     for (int i=0;i<cantidadVentas;i++)
  66.     {
  67.         printf("Total i= %d ... $ %.2f \n",i+1,totales[i]);
  68.     }
  69. }
  70.  
  71.  
  72. /*
  73. Hacer una función que pida la cantidad de productos comprados por el
  74. cliente y el precio de por unidad y retorne ambos. (Ojo, solo puede haber un
  75. return y sólo puede retornar un valor, pensar bien).
  76. */
  77.  
  78. void cargarProducto(float * p_precio, int * p_cantidad)
  79. {
  80.     do
  81.     {
  82.         printf("Ingrese precio del producto\n");
  83.         fflush(stdin);
  84.         scanf("%f",p_precio);
  85.         printf("Precio ingresado %.2f\n",(*p_precio));
  86.  
  87.     }while ((*p_precio)<=0);
  88.  
  89.     do
  90.     {
  91.          printf("Ingrese cantidad comprada del producto\n");
  92.          fflush(stdin);
  93.          scanf("%d",p_cantidad);
  94.          printf("Cantidad ingresada %.2f\n",(*p_cantidad));
  95.     }while ((*p_cantidad)<=0);
  96.  
  97. }
  98.  
  99. /*
  100. Hacer una función que reciba como parámetro, la cantidad de productos y el
  101. precio y retorne el monto total de la venta.
  102. */
  103.  
  104. double getPrecioTotal(int cantidad, double precio_producto)
  105. {
  106.     return cantidad * precio_producto;
  107. }
  108.  
  109. /*
  110. Una función para determinar el descuento aplicado (si es que tiene). Por
  111. parámetro pasa, el monto total de la compra y la cantidad de producto
  112. comprado. Si el monto de la compra supera los 1000$ y son más de 10
  113. productos, tiene un descuento del 15%, si la compra supera los 2000$ y la
  114. cantidad de productos es 25 o más, tiene un descuento del 20%, si no
  115. cumple ninguno de los requisitos no se le aplica descuento alguno.
  116. */
  117.  
  118. double getDescuento(double precio_total,int cantidad)
  119. {
  120.     double descuento = 0;
  121.     int por_descuento = 0;
  122.  
  123.     if ((precio_total>1000)&&(cantidad>10))
  124.     {
  125.         por_descuento = 15;
  126.     }
  127.     else if ((precio_total>2000)&&(cantidad>25))
  128.     {
  129.         por_descuento = 20;
  130.     }
  131.  
  132.     if (por_descuento>0)
  133.     {
  134.         descuento =  (por_descuento*precio_total)/100;
  135.     }
  136.  
  137.     return descuento;
  138. }
  139.  
  140. /*
  141. Hacer una función que muestre por pantalla la factura de compra
  142. */
  143.  
  144. void mostrar(char nombre[],int cantidad, double precio, double sub_total, double descuento, double total)
  145. {
  146.     system("cls");
  147.     printf("%s\n",nombre);
  148.     printf("Cantidad de productos.... %d unidades.\n",cantidad);
  149.     printf("Precio x producto.... $ %.2f \n",precio);
  150.     printf("Total parcial.... $ %.2f \n",sub_total);
  151.  
  152.     if (descuento>0)
  153.         printf("Descuento aplicado.... -$ %.2f \n",descuento);
  154.  
  155.     printf("Monto a pagar.... $ %.2f \n",total);
  156. }
  157.  
  158. /*
  159.  El usuario puede realizar todas las ventas que desee, una vez que ya no
  160. tiene más ventas, el programa debe mostrar el monto total y la cantidad de
  161. producto vendido a lo largo del día.
  162. */
  163. int realizarVenta(double totales[100],int cantidadVentas)
  164. {
  165.     char mander = 's';
  166.     while (mander == 's')
  167.     {
  168.         system("cls");
  169.         int cantidadProducto = 0;
  170.         float precioProducto = 0;
  171.  
  172.         cargarProducto(&precioProducto,&cantidadProducto);
  173.  
  174.         double subtotal = getPrecioTotal(cantidadProducto,precioProducto);
  175.  
  176.         double descuento = getDescuento(subtotal,cantidadProducto);
  177.  
  178.         double total = subtotal - descuento;
  179.  
  180.         mostrar("Empresa Walrus",cantidadProducto,precioProducto,subtotal,descuento,total);
  181.  
  182.         totales[cantidadVentas] = total;
  183.  
  184.         cantidadVentas++;
  185.  
  186.         printf("Desea ingresa una nueva venta? s/n");
  187.         fflush(stdin);
  188.         scanf("%c",&mander);
  189.     }
  190.     return cantidadVentas;
  191. }
Advertisement
Add Comment
Please, Sign In to add comment