08/01/2013, 08:49
|
| | Fecha de Ingreso: diciembre-2010 Ubicación: catamarca
Mensajes: 22
Antigüedad: 14 años, 1 mes Puntos: 0 | |
ejercicio bueno acá un ejercicio de libro...y no se donde esta la falla Cita: un estacionamiento cobra una cuota mínima de $2,00 por estacionarse hasta tres horas. El estacionamiento cobra $0.5 adicionales por cada hora o fracción que se pase de tres horas. El cargo máximo para cualquier periodo dado de 24Hs.es de $10,00 Suponga que ningún auto se estaciona durante mas de 24hs. a la vez. Escriba un programa que calcule y muestre los cargos por estacionamiento para cada uno de tres clientes que estacionaron su auto . Debe introducir las horas de estacionamiento para cada cliente acá mi código uso la logica de que entran y salen el mismo dia...o sea 00:00:00 hasta 24:00:00
Código:
#include <iostream>
using namespace std;
int diferencia;
int hora_segundo(int h, int m,int s)
{
return (h*3600)+(m*60)+s;
}
void diferencia_hora()
{
int h_e,h_s,m_e,m_s,s_e,s_s;
int hora_ingreso, hora_egreso, diferencia;
cout<<"ingrese la hora de entrada en formato 24hs."<<endl;
cout<<"ejemplo 15:30:25 un dato a la vez"<<endl;
cout<<"ingrese la hora de entrada"<<endl;
cin>>h_e;
cout<<"ingrese los minutos"<<endl;
cin>>m_e;
cout<<"ingrese los segundos"<<endl;
cin>>s_e;
hora_ingreso=hora_segundo(h_e, m_e, s_e);
cout<<"ingrese la hora de salida en formato 24hs."<<endl;
cout<<"ejemplo 20:35:42 un dato a la vez"<<endl;
cout<<"ingrese la hora de entrada"<<endl;
cin>>h_s;
cout<<"ingrese los minutos"<<endl;
cin>>m_s;
cout<<"ingrese los segundos"<<endl;
cin>>s_s;
hora_egreso=hora_segundo(h_s, m_s,s_s);
diferencia=hora_egreso-hora_ingreso;
}
void horas()
{
int sec, hr, min;
sec=diferencia;
hr = sec / (60*60);
sec %= 60*60;
min = sec / 60;
sec %= 60;
cout << hr << " hora";
if(hr != 1) cout << "s";
cout << ":" << min << " minuto";
if(min != 1) cout << "s";
cout << ":" << sec << " segundo";
if(sec != 1) cout << "s";
}
int calcularCargo()
{
int dif, rdo, rdo1;
dif=diferencia;
if (dif<=10800)
{
rdo=2;
}
else
{
if ((dif<10800)&&(dif>=86400))
{
rdo=(dif-10800)/3600;
rdo1 %= 60*60;
if (rdo1>=1)
{
rdo=rdo+1;
}
rdo=2+(rdo*0.5);
}
}
return rdo;
}
int main()
{
diferencia_hora();
horas();
calcularCargo();
system("PAUSE");
cin.get();
return 0;
}
lo peor es que es un error logico, porque compila y todo |