Dev - C++ - Ayuda programa para medir el tiempo de estadia de un coche en un estacionamiento

   
Vista:
Imágen de perfil de Jose

Ayuda programa para medir el tiempo de estadia de un coche en un estacionamiento

Publicado por Jose josegvelazcop@gmail.com (3 intervenciones) el 04/11/2013 18:38:22
Saludos desde Venezuela
Soy estudiante de informática y me mandaron a hacer un programa en C++ de estacionamiento donde registre hora de entrada y salida del vehículo y como salida muestre el tiempo transcurrido en horas y minutos y el importe a pagar. Mi problema es que no logro trabajar correctamente con las librerias de tiempo de C++ ya que pensé que seria mas fácil hacerlo desde ahi, así que estoy trabajando con horas y minutos por separado como valores enteros. Esto es lo que he hecho:

#include <iostream>
using namespace std;
int main (void)
{
float tiempoH, tiempoM,tiempoT,Pago; int HH,MM,hh,mm; char T,t;
cout<<"\t PAGO DE ESTACIONAMIENTO\n";
cout<<"\tTRABAJAMOS PARA UD. LAS 24 HORAS\n\n";
cout<<"\nHora de entrada y el turno (am/pm): ";
cin>>HH >>MM >>T;
cout<<HH <<':' <<MM <<T <<".m.";
cout<<"\nHora de salida y el turno (am/pm): ";
cin>>hh >>mm >>t;

if (t=='a' && T=='p') hh=hh+12;
tiempoH=(hh-HH);
if (tiempoH<0) tiempoH=tiempoH*(-1);
tiempoM=(mm-MM);
if (tiempoM>60) tiempoM=tiempoM-60;
if (tiempoM<0) {tiempoM=tiempoM+60; tiempoH=tiempoH-1;}
tiempoT=tiempoH+(tiempoM/60);
Pago=tiempoT*1.2;
if (tiempoM==0) Pago=Pago+0.5;

cout<<"\n\nEl tiempo transcurrido fue: " <<tiempoH <<":" <<tiempoM <<".";
cout<<"\n\nSu pago es de Bs.:" <<Pago;
cout<<"\n\n\n\n\tGRACIAS POR SU VISITA\n\n";
return 0;
}

Mando la imagen como archivo aparte. Si alguien POR FAVOR me puede ayudar a trabajar con el tiempo porque además debo trabajar con formato de 12 horas.

Gracias de Antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaac Daniel

Ayuda programa para medir el tiempo de estadia de un coche en un estacionamiento

Publicado por Isaac Daniel (3 intervenciones) el 07/11/2013 04:25:59
Hola jose, apenas vi el mensaje.

Le he empezado ha hacer, el codigo que te paso aun le falta por ejemplo si la hora es de 09:20 am á 12:30 pm, ó si en las operaciones el decimal del minuto queda en solo un digito, ademas de la operacion de el importe que no da decimales pero pro lo demas esta perfecto las horas te las calcula bien y el precio te lo da cerrado checalo y nos escribes.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
	Se registra la entrada y salida del veiculo
	se muestra el tiempo transcurrido en HH-MM y el importa a pagar 
	Por Isaac Daniel.

	para introducir la hora se escribe de la siguiente manera 02 25 pm 
	notese que entre cada caracter hay un espacio.
*/
 
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
	int hr1=0, hr2=0, min1=0, min2=0, thora=0, tmin=0, pago1=0;
	char est1[5], est2[5];
	float pago2=0.0, hrdec;
 
	system("clear"); //para windows seria system("cls")
	cout<<"\t\t====Pago de estacionamiento===="<<endl;
	cout<<"\t********Trabajamos para Ud. las 24 horas********"<<endl;
	cout<<"\tTarifa actual $10 hr"<<endl;
	cout<<"\n\n"; cout<<"Introdusca la hora de entrada en el siguiente formato hh mm (am/pm):";
	cin>>hr1>>min1>>est1;
	cout<<"Hora de salida hh mm (am/pm):";
	cin>>hr2>>min2>>est2;
 
	if (est1[0] == est2[0] and min2 >= min1)
	{
		tmin=min2-min1;
		thora=hr2-hr1;
	}
	if (est1[0] == est2[0] and min2 < min1)
	{
		hr2 -= 1;
		min2 += 60;
		tmin=min2-min1;
		thora=hr2-hr1;
	}
	if (est1[0] == 'a' and est2[0] == 'p' and min2 >= min1)
	{
		hr2 += 12;
		tmin=min2-min1;
		thora=hr2-hr1;
	}
	if (est1[0] == 'a' and est2[0] == 'p' and min2 < min1)
	{
		hr2 += 11;
		min2 += 60;
		tmin=min2-min1;
		thora=hr2-hr1;
	}
 
	pago1=thora*10;
	pago2=(tmin*10)/60;
 
	cout<<"\n\nEntrada: "<<hr1<<":"<<min1<<est1<<"\t\t";
	cout<<"Salida: "<<hr2<<":"<<min2<<est2<<endl;
	cout<<"Su tiempo: "<<thora<<":"<<tmin<<" hrs."<<"\tSu pago: $"<<pago1+pago2<<".";
	cout<<"\n\nGracias por su preferencia\n"<<endl;
 
	return 0;
}

Te dejo una imagen para que veas que si funciona

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jose

Ayuda programa para medir el tiempo de estadia de un coche en un estacionamiento

Publicado por Jose (3 intervenciones) el 08/11/2013 03:59:50
De verdad que muchísimas gracias, me sirvió bastante, le hece las modificaciones que faltaban para que de los decimales del importe a pagar y trabajé enla diferencia de horaios. Gracias nuevamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaac Daniel

Ayuda programa para medir el tiempo de estadia de un coche en un estacionamiento

Publicado por Isaac Daniel (3 intervenciones) el 09/11/2013 19:49:49
Que bueno que si te sirvio

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda programa para medir el tiempo de estadia de un coche en un estacionamiento

Publicado por sebastian sebastianr_0425@hotmail.com (1 intervención) el 09/09/2014 19:20:00
Alguien lo hizo en el lenguaje c#?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar