Arreglos con estructuras – ordenamientos

Se pide realizar un ordenamiento de artículos, para ello se debe ingresar n artículos y ordenarlos por su monto de inversión.

struct articulo
{char codigo[10];
 char producto[20];
 float preciocompra;
 float monto;
 int cantidad;
 }

#include<iostream.h>
#include<string.h>
#include<conio.h>
#define MAX 50
struct articulo
{char codigo[10];
 char producto[20];
 float preciocompra;
 float monto;
 int cantidad;
 };
 void leer(int, struct articulo[]);
 void montodeinversion(int, struct articulo[]);
 void ordenmonto(int, struct articulo[]);
 void listado(int, struct articulo[]);
 void main()
 {int n;
  struct articulo Art[MAX];
  cout<<"Cantidad de articulos que desea poner:";
  cin>>n;
  leer(n,Art);
  montodeinversion(n,Art);
  ordenmonto(n,Art);
  cout<<"productos ordenados por su cantidad de monto mayor:"<<endl;
  listado(n,Art);
  getch();
  }
  void leer(int n, struct articulo x[])
  {int i;
   for(i=0;i<n;i++)
   {cout<<"codigo:"; cin>>x[i].codigo;
    cout<<"producto:"; cin>>x[i].producto;
    cout<<"precio:"; cin>>x[i].preciocompra;
    cout<<"cantidad:"; cin>>x[i].cantidad;
    }
    getch();
  }
  void montodeinversion(int n, struct articulo x[])
  {int i;
  for(i=0;i<n;i++)
  x[i].monto=x[i].preciocompra*x[i].cantidad;
  getch();
  }

  void ordenmonto(int n, struct articulo x[])
  {int i,j;
   struct articulo temp;
   for(i=0;i<n;i++)
    for(j=n-1;j>i;j--)
     if((x[j-1].monto,x[j].monto)>0)
     {temp=x[j-1];
      x[j-1]=x[j];
      x[j]=temp;
      }
      getch();
  }

  void listado(int n, struct articulo x[])
  {int i;
   for(i=0;i<n;i++)
   {cout<<x[i].codigo<<"t";
    cout<<x[i].producto<<"t";
    cout<<x[i].monto<<endl;
    }
    getch();
  }
  • Define MAX 50, permite que el máximo de productos a ingresar será 50
  • Char codigo[10], el código no debe exceder de más de 10 caracteres
  • char producto[20], el nombre del productos no debe exceder los 20 caracteres.
  • loat preciocompra, el precio de la compra del productos debe contener decimales.
  • float monto, el monto calculado tiene un monto decimal.
  • int cantidad, sólo permite ingresar valores enteros para la cnatidad de los productos.

Como se puede observar en la codificación, hemos creado cuatro funciones: La función leer nos permite ingresar los datos que tendrá el artículo, la función montodeinversión, permite calcular el monto de inversión de cada producto ingresado, la función ordenmonto, permite ordenar el monto de inversión de cada producto de menor a mayor y la función listado, mostrará todos los datos de los productos ingresados.

Espero te haya gustado la primera parte de este tutorial, si te gustó, dale me gusta y compártelo!!

Continuando con Arreglos con estructuras, les comparto el siguiente post: Arreglos con estructuras usando IF

NOTA: Arreglos con estructuras – ordenamientos, el ejercicio desarrollado en este post es a través del programa Borland C++. Para obtener el programa, clic en el siguiente enlace: Descargar Borland



-->