Autor Tema: Simulando Cajero de Supermercado [C++]  (Leído 1835 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Alexis Aldana

  • Administrador
  • Usuario Avanzado
  • *
  • Mensajes: 613
    • Interconectado
Simulando Cajero de Supermercado [C++]
« : 19 de Mayo de 2012, 06:16:17 pm »
Lo que hace el programa basicamente es pedirte la cantidad de efectivo con que cuentas, luego te pregunta lo que vas a pagar, muestra el vuelto o cambio (si lo hay) y ordena el mismo de mayor a menor. Dudas y demás como siempre aqui mismo, Saludos!  :drink:

Código: [Seleccionar]
#include<iostream>
using namespace std;
int main()//Inicio del programa.
{a:
system("CLS");
cout << "Este programa pretende simular un cajero de supermercado" <<endl;
cout << "te da el cambio ordenado de mayor a menor...Pruebalo no?" <<endl;
cout << endl;
char reiniciar; //Declaro variable reiniciar, tipo caracter.
double efectivo,gasto,vuelto; //Declaro variables de tipo double.
/*Existen billetes de $1.00,$5.00,$10.00,$20.00,$50.00 y $100.00
este programa te dira cuanto necesitas dar de cambio al comprador*/
cout << "Efectivo:" << endl;    //Imprime texto en pantalla.
cin >> efectivo; //Recibimos el valor de la variable efectivo.
cout << "Total a Pagar:" << endl; //Imprime texto en pantalla.
cin >> gasto; //Recibimos el valor de la variable gasto.
/////////////////////////////////////////////////////////////////////
if (efectivo>0) //Si efectivo es mayor a cero inicia...
{
/////////////////////////////////////////////////////////////////////                                   
if (efectivo==gasto)//Si efectivo y gasto poseen el mismo valor.
{
system("CLS");
cout<<"Gracias por su compra! |"<<endl;
cout << "------------------------" <<endl;cout <<endl;
}             
/////////////////////////////////////////////////////////////////////   
else if (efectivo<gasto) //Si efectivo es menor a gasto.
{
system("CLS");
cout<<"Su efectivo no es suficiente.  |" << endl;
cout<<"--------------------------------"<<endl;cout<<endl;     
}
/////////////////////////////////////////////////////////////////////
else if (efectivo>gasto) //Sino entonces efectivo es mayor que gasto.
{
int cont[6]={0,0,0,0,0,0}; //Matriz "cont" tipo entero, la usare con while.
system("CLS");//Limpia todos los datos en pantalla.   
////////////////////////////////////////////////////////////////////                     
vuelto=efectivo-gasto; //Vuelto sera igual, a la resta de efectivo con gasto.
cout <<"--------------------------"<<endl;
cout<<"Su cambio es de: $"<<vuelto <<"\t |"<<endl; //Imprime valor de vuelto.
cout <<"--------------------------";
cout<<endl;
while (vuelto>=1.00) //Inicio del ciclo while.
{
if (vuelto>=100.00) //Si vuelto es igual o mayor a 100.
{
vuelto=vuelto-100.00;
cont[0]++;                                           
}               
else if (vuelto>=50.00) //Sino entonces ver si vuelto es mayor o igual a 50.
{
vuelto=vuelto-50.00;
cont[1]++;                                           
}
else if (vuelto>=20.00)//Sino entonces ver si vuelto es mayor o igual a 20.
{
vuelto=vuelto-20.00;
cont[2]++;                                           
}
else if (vuelto>=10.00)//Sino entonces ver si vuelto es mayor o igual a 10.
{
vuelto=vuelto-10.00;
cont[3]++;                                           
}           
else if (vuelto>=5.00)//Sino entonces ver si vuelto es mayor o igual a 5.
{
vuelto=vuelto-5.00;
cont[4]++;                                           
}
else if (vuelto>=1.00)//Sino entonces ver si vuelto es mayor o igual a 1.
{
vuelto=vuelto-1.00;
cont[5]++;                                           
}
}            // Final del bloque while.
///////////////////////////////////////////////////////////////////////
if((cont[0]>0)or(cont[1]>0)or(cont[2]>0)or(cont[3]>0)or(cont[4]>0)or(cont[5]>0))
{
cout << "--------------------------"<<endl;
}
if (cont[0]>0)   
{
cout << cont[0] << " Billetes de $100.00\t |"<<endl;
}
if (cont[1]>0)
{
cout << cont[1] << " Billetes de $50.00\t |"<<endl;
}
if (cont[2]>0)
{
cout << cont[2] << " Billetes de $20.00\t |"<<endl;
}
if (cont[3]>0)
{
cout << cont[3] << " Billetes de $10.00\t |"<<endl;
}
if (cont[4]>0)
{
cout << cont[4] << " Billetes de $5.00\t |"<<endl;
}
if (cont[5]>0)
{
cout << cont[5] << " Billetes de $1.00\t |"<<endl;
}
if((cont[0]>0)or(cont[1]>0)or(cont[2]>0)or(cont[3]>0)or(cont[4]>0)or(cont[5]>0))
{
cout << "--------------------------"<<endl;
}
///////////////////////////////////////////////////////////////////
/*Existen monedas de distintas denominaciones tanto de $0.01,$0.05,
$0.10 y $0.25 centavos de dolar.*/
//////////////////////////////////////////////////////////////////
int cent[4]={0,0,0,0};
while (vuelto>=0.01) //Inicio del ciclo while
{
if (vuelto>=0.25)
{
vuelto=vuelto-0.25;
cent[0]++;               
}     
else if (vuelto>=0.10)
{
vuelto=vuelto-0.10;     
cent[1]++;
}
else if (vuelto>=0.05)
{
vuelto=vuelto-0.05;   
cent[2]++;
}
else if (vuelto>=0.01)
{
vuelto=vuelto-0.01;
cent[3]++;
}
} //Final de ciclo while.
///////////////////////////////////////////////////////////////////
if ((cent[0]>0)or(cent[1]>0)or(cent[2]>0)or(cent[3]>0))
//Si alguno de los contadores es mayor a cero...
{
cout << "--------------------------" << endl;
}
if(cent[0]>0){ //Si cent[0] es mayor a cero.
cout << cent[0] << " Monedas de $0.25.\t |" << endl;
} if(cent[1]>0){//Si cent[1] es mayor a cero.
cout << cent[1] << " Monedas de $0.10.\t |" << endl;
} if(cent[2]>0){//Si cent[2] es mayor a cero.
cout << cent[2] << " Monedas de $0.05.\t |" << endl;
} if(cent[3]>0){//Si cent[3] es mayor a cero.
cout << cent[3] << " Monedas de $0.01.\t |" << endl;
}
if ((cent[0]>0)or(cent[1]>0)or(cent[2]>0)or(cent[3]>0))
{
//Si alguno de los contadores es mayor a cero...                                                       
cout << "--------------------------" <<endl;
}
//////////////////////////////////////////////////////////////////
} //Final del bloque else if (efectivo>gasto)
} //Final del primer bloque IF.
///////////////////////////////////////////////////////////////////
else //Si el primer IF no se cumple (efectivo es menor a cero)
{
system("CLS"); //Limpio datos de pantalla.
cout<<"El valor que has ingresado es invalido!"<<endl;cout<<endl;cout<< endl;
}
cout << "Queres probar de nuevo?" << endl; //Imprime texto y salta una linea.
cout << "Ingresa el numero 1!:\t";  //Imprime texto en pantalla.
cin >> reiniciar; //Recibo la variable reiniciar que declare en un principio.
if (reiniciar=='1') //Si reiniciar es igual a 1
{
goto a;                   //Si se cumple entonces ir para a: (Inicio)
}
else                     //Sino, es decir ingreso cualquier otro valor y no 1.
{
return 0;               //El programa finaliza correctamente.
}
}