Está en la página 1de 6

/* Escribir un algoritmo que defina una tabla de proveedores teniendo cada proveedor los

siguientes datos: nombre, cantidad vendida, precio unitario (introducidos por teclado) e
importe (calculado). Visualizar los datos de cada proveedor, el importe total de compra así
como el nombre del proveedor Más barato y el del Más caro.

*/ #include <iostream>

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <string.h>

#include <iomanip>

#define dim 20

using namespace std ; struct proveedor { int cod;

char nom[20];

int can;

float pu,imp;

}; void ingresar(proveedor p[dim], int &c); void mostrar(proveedor p[dim], int c); float
imptotal(proveedor p[dim], int c); int mayor(proveedor p[], int c); int menor(proveedor p[], int
c); int menu(); int busxcod(proveedor p[], int c, int codigo);

int main() { int n,j,op; n=0; proveedor p[dim]; float total;

do

{ system ("cls"); op=menu();

switch (op){

case 1: ingresar(p,n);

break ;

case 2: mostrar(p,n);
break ;

case 3: total=imptotal(p,n);

cout<<setw (55)<<" El Importe Total Es : "<<setw (10)<<total<<endl ; getche();

break ;

case 4: j=mayor(p,n);

cout<<"Proveedor mas caro : "<<p[j].nom<<endl ; getche();

break ;

case 5: j=menor(p,n);

cout<<"Proveedor mas barato : "<<p[j].nom<<endl ; getche();

break ;

case 6: system ("cls");

cout<<" fin proceso ";

getch(); break ; } } while (op!=6);

getch();

return 0;

} int busxcod(proveedor p[], int c, int codigo) { int i,pos; pos=-1;

for (i=0;i<c;i++)

if (p[i].cod==codigo) pos=i;
return pos;

void ingresar(proveedor p[dim], int &c) { system("cls");

int i,pos;

cout<< "Ingreso de datos de los proveedore : "<<endl ;

cout<<"codigo : ";

cin>>p[c].cod;

pos=busxcod(p,c,p[c].cod);

if (pos==-1) { cout<<"nombre : "; fflush(stdin); gets(p[c].nom);

cout<<"Cantidad Vendida : ";

cin>>p[c].can;

do {

cout<<"Precio Unitario ";

cin>>p[c].pu; } while (p[c].pu<=0); p[c].imp=p[c].can * p[c].pu;

cout<<endl <<endl ; c=c+1; }

else

cout<<"El codigo ya esta registrado "<<endl ; getche(); }


void mostrar(proveedor p[dim], int c) { system("cls");

int i;

cout<<setw (20)<<"Nombre "<<setw (15)<<"Cantidad Vendida"<<setw (20)<<"Precio Unitario


"<<setw (10)<<"Importe"<<endl ;

cout<<endl ;

for (i=0;i<c;i++){

cout<<setw (20)<<p[i].nom<<setw (15)<<p[i].can<<setw (20)<<p[i].pu<<setw (10)<<p[i].imp;

cout<<endl ;

} getch(); }

float imptotal(proveedor p[dim], int c) { system("cls");

int i;

float tot=0;

for (i=0;i<c;i++) tot=tot + p[i].imp;

return tot;

} int mayor(proveedor p[], int c)

{ system("cls");

int i,indma;

float ma; ma=p[0].imp; indma=0;


for (i=1;i<c;i++) { if (p[i].imp>ma) {ma=p[i].imp; indma=i; } }

return indma;

int menor(proveedor p[], int c) { system("cls");

int i,indme;

float me; me=p[0].imp; indme=0;

for (i=1;i<c;i++)

if (p[i].imp<me) { me=p[i].imp; indme=i; }

return indme;

int menu() {

int op;

do { system ("cls");

cout<<"\t\tMENU"<<endl ;

cout<<"\t\t****"<<endl ;

cout<<"\t[1].Ingresar proveedores"<<endl ;

cout<<"\t[2].Mostrar proveedores"<<endl ;

cout<<"\t[3].Calcula Importe total de compra"<<endl ;


cout<<"\t[4].Proveedor mas caro"<<endl ;

cout<<"\t[5].Proveedor mas barato"<<endl ;

cout<<"\t[6]Salir"<<endl ;

cout<<"\tIngrese su opcion [ ]"<<"\b\b";

cin >>op; } while (op<1 || op>6);

return op;