Un examen anterior https://sites.google.com/site/programacionparaingeneria/es-progra-2013-1.pdf
Solucion
#include<iostream>
using namespace std;
float precioUnitario(int codProd){
// devuelve el precio del producto dado el codigo
float prec;
switch (codProd){
// 5 PUNTOS
case 1: prec=150;break;
case 2: prec=250;break;
case 3: prec=500;break;
case 4: prec=750;break;
default : prec=0;
}
return prec;
}
float obtenerDescuento(int codProd, int cant){
// devuelve el descuento de acuerdo al codigo y
// la contidad de product
float desc;
switch (codProd){
// 5 PUNTOS
case 1: if (cant>=50)
desc=0.20;
else if (cant>15)
desc=0.15;
else if (cant>=5)
desc=0.10;
else
desc=0;
break;
case 2: if (cant>=30)
desc=0.20;
else if (cant>15)
desc=0.15;
else if (cant>=10)
desc=0.10;
else
desc=0;
break;
case 3: if (cant>=50)
desc=0.20;
else if (cant>25)
desc=0.15;
else if (cant>=15)
desc=0.10;
else
desc=0;
break;
case 4: if (cant>=100)
desc=0.20;
else if (cant>70)
desc=0.15;
else if (cant>=35)
desc=0.10;
else
desc=0;
break;
default : desc=0;
}
return desc;
}
int validarCodigo(int codProd){
// si codigo esta entre 0 y 4 devuelve 1
// en caso contrario devuelve 0
// 5 PUNTOS
return (codProd>=0 & codProd<=4)?1:0;
}
void obtenerDatosProducto(int& codProd, int& cantProd){
//pide al usuario los datos del producto, los valida y almacena
int result;
// 5 PUNTOS
do {
cout<<"Ingrese codigo del producto: ";
cin>>codProd;
result=validarCodigo(codProd);
if (!result)
cout<<"Error: Intente de nuevo."<<endl;
} while (!result);
cout<<"Ingrese cantidad del producto: ";
cin>>cantProd;
}
int main(){
int codProd, cantProd;
float totalVentas,desc;
codProd=1;
totalVentas=0;
while(codProd){
obtenerDatosProducto( codProd, cantProd);
if (codProd>0){
desc=obtenerDescuento(codProd, cantProd);
totalVentas+=cantProd*precioUnitario(codProd)*(1-desc);
}
}
cout<<"Venta total: "<<totalVentas<<endl;
cin.get();cin.get();
}
No hay comentarios:
Publicar un comentario