Dev - C++ - Necesito ayuda con un programa

 
Vista:
sin imagen de perfil
Val: 7
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Necesito ayuda con un programa

Publicado por Juan (4 intervenciones) el 08/02/2019 13:12:36
Buenos días comunidad, estoy empezando en C++ y haciendo distintas pruebas con programas simples, hace un par de días empece a hacer uno muy básico que consta en pedir cierto tipo de datos y luego arrojar un resumen de los datos ingresados. El problema que tengo es que quiero que al ingresar de manera errónea un dato, me pida nuevamente el dato, por ejemplo que tenga más números de los que indico que debe tener o contiene caracteres que no corresponden. Y lo otro, quiero que al final salga la hora (o fecha completa en que se hizo el registro), con el código que tengo ahora solo yo puedo ingresar la hora, me gustaría que lo hiciera automáticamente.

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
#include "iostream"
#include "string"
#include <math.h>
#include <conio.h>
using namespace std;
 
#include <string.h>
#include <iostream>
 
using namespace std;
int main()
{
	cout <<("Ingrese hora del registro (HH:MM) ... \n");
	string hora;
	cin >> hora;
	cout <<("Hola! Por favor ingrese su nombre ....\n");
	string cadena = "Hola";//Se le da un valor inicial al string
	string nombre;//Esta cadena contendra el nombre
	cin >> nombre;//Se lee el nombre
	cadena = cadena + " " + nombre;//Se juntan el saludo con el nombre usando "+"
	//cout <<(cadena) << endl;//Se muestra el resultado final
	cout <<("Ingresa tu apellido ...\n");
	string apellido;
	cin >> apellido;
	cadena = cadena + " " + apellido;
	cadena = cadena + "," + " " + "sus datos ingresados son los siguiente:";
	//cout <<(cadena) << endl;//Se muestra el resultado final
	cout <<("Ingresa su RUT, sin puntos ni digito verificador ...\n");
	int rut;
	cin >> rut;
	if ((rut < 1000000) | (rut > 25000000))
	{
		cout <<("El valor ingresado no es valido, intente nuevamente ...\n");
		cin >> rut;
	}
	//cout <<(rut) << endl;//Se muestra el resultado final
	cout <<("Ingresa su Numero de Telefono, de 9 digitos ...\n");
	int telefono;
	cin >> telefono;
	if ((telefono < 900000000) | (telefono > 999999999))
	{
		cout <<("El valor ingresado no es valido, intente nuevamente ...\n");
		cin >> telefono;
	}
	//cout <<(cadena) << endl <<"Su rut es... " <<(rut) << endl <<"Su telefono es... " <<(telefono);//Se muestra el resultado final
	cout <<("Ingresa el lugar a donde te diriges ...\n");
	string lugar;
	cin >> lugar;
	//cout <<(cadena) << endl <<"Su rut es... " <<(rut) << endl <<"Su telefono es... " <<(telefono) << endl <<"Se dirige a... " <<(lugar);//Se muestra el resultado final
	cout <<("Se transporta en vehiculo particular? ...\n");
	string vehiculo;
	cin >> vehiculo;
	//cout <<(cadena) << endl <<"Su rut es... " <<(rut) << endl <<"Su telefono es... " <<(telefono) << endl <<"Se dirige a... " <<(lugar) << endl <<"Se transporta en vehiculo particular?... " <<(vehiculo);//Se muestra el resultado final
	if ((vehiculo == "SI") | (vehiculo == "Si") | (vehiculo == "si"))
	{
		cout <<("Ingrese la patente de su vehiculo ...\n");
		string patente;
		cin >> patente;
		cout <<(cadena) << endl <<"Su rut es... " <<(rut) << endl <<"Su telefono es... " <<(telefono) << endl <<"Se dirige a... " <<(lugar) << endl <<"Se transporta en vehiculo particular?... " <<(vehiculo) << endl <<"La patente del vehiculo es... " << (patente) << endl << "Hora del registro: " << hora << " hrs.";//Se muestra el resultado final
	}
	else
		cout <<(cadena) << endl <<"Su rut es... " <<(rut) << endl <<"Su telefono es... " <<(telefono) << endl <<"Se dirige a... " <<(lugar) << endl <<"Se transporta en vehiculo particular?... " <<(vehiculo) << endl << "Hora del registro: " << hora << " hrs.";//Se muestra el resultado final
 
	return 0;
}

De antemano, muchas gracias por sus sugerencias.
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 Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Necesito ayuda con un programa

Publicado por Alfil (1444 intervenciones) el 08/02/2019 20:12:19
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <iostream>
#include <string>
#include <sstream>
#include <ctime>
#include <algorithm>
 
using namespace std;
 
int main() {
 
	//! Hora actual
	time_t now;
        struct tm *now_tm;
        int hour, minute;
        now = time(NULL);
        now_tm = localtime(&now);
        hour = now_tm->tm_hour;
   	minute = now_tm->tm_min;
	stringstream hm;
	hm << ( hour < 10 ? "0" : "" ) << hour << ":"
           << ( minute < 10 ? "0" : "" ) << minute;
	string hora = hm.str();     //! almacena la hora actual.
 
	cout << "Hola! Por favor ingrese su nombre ....\n";
	string cadena = "Hola";     // Se le da un valor inicial al string
	string nombre;              // Esta cadena contendra el nombre
	cin >> nombre;              //Se lee el nombre
	cadena = cadena + " " + nombre; //Se juntan el saludo con el nombre usando "+"
	cout << cadena << endl;         //Se muestra el resultado final
 
	cout << "Ingresa tu apellido ...\n";
	string apellido;
	cin >> apellido;
	cadena += " " + apellido;
	cout << cadena << endl;         //Se muestra el resultado final
 
	long int rut;
	do {
        cout << "Ingresa su RUT, sin puntos ni digito verificador ...\n";
        cin >> rut;
        if( cin.fail() || cin.bad() ){
            rut = 0;
            cin.clear();
            cin.ignore(80, '\n');
        }
        if ( rut < 1000000 || rut > 25000000 )
            cout << "El valor ingresado no es valido, intente nuevamente ...\n";
 
    } while( rut < 1000000 || rut > 25000000 );
 
    long int telefono;
    do {
        cout << "Ingresa su Numero de Telefono, de 9 digitos ...\n";
        cin >> telefono;
        if( cin.fail() || cin.bad() ){
            telefono = 0;
            cin.clear();
            cin.ignore(80, '\n');
        }
        if ( telefono < 900000000 || telefono > 999999999 )
            cout << "El valor ingresado no es valido, intente nuevamente ...\n";
 
    } while( telefono < 900000000 || telefono > 999999999 );
 
	cout << "Ingresa el lugar a donde te diriges ...\n";
	string lugar;
	cin >> lugar;
 
	string vehiculo;
	do {
             cout << "Se transporta en vehiculo particular (Si/No)?\n";
             cin >> vehiculo;
             transform( vehiculo.begin(), vehiculo.end(), vehiculo.begin(), ::toupper);
 
             if ( vehiculo != "SI" && vehiculo != "NO" )
                 cout << "El valor ingresado no es valido, intente nuevamente ...\n";
 
	} while( vehiculo != "SI" && vehiculo != "NO" );
 
	if ( vehiculo == "SI" ) {
		cout << "Ingrese la patente de su vehiculo ...\n";
		string patente;
		cin >> patente;
 
		cout << "\n" << cadena
                     << "\nSu rut es... " << rut
                     << "\nSu telefono es... " << telefono
                     << "\nSe dirige a... " << lugar
                     << "\nSe transporta en vehiculo particular?... " << vehiculo
                     << "\nLa patente del vehiculo es... " << patente
                     << "\nHora del registro: " << hora << " hrs." << endl;
 
	} else {
	    cout << "\n" << cadena
                 << "\nSu rut es... " << rut
                 << "\nSu telefono es... " << telefono
                 << "\nSe dirige a... " << lugar
                 << "\nSe transporta en vehiculo particular?... " << vehiculo
                 << "\nHora del registro: " << hora << " hrs." << endl;
	}
 
	return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 7
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Necesito ayuda con un programa

Publicado por Juan (4 intervenciones) el 08/02/2019 20:22:42
Muchas gracias!!
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
sin imagen de perfil
Val: 22
Ha disminuido su posición en 2 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Necesito ayuda con un programa

Publicado por Bryan Jeronimo (13 intervenciones) el 17/02/2019 04:59:17
Yo también necesito ayuda con este programa, espero puedan responderme:
Solamente necesito de este programa poder calcular la suma de todas las áreas de las habitaciones.
Este es el codigo, es de Dev C++:


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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include <iostream>
using namespace std;
class tipoHab{
	private:
		double largo;
		double ancho;
	public:
		tipoHab(double=0.0 , double=0.0);
		void mostrarValHab();
		void estValNueHab(double, double);
		void calcularAreaHab();
 
};
 
tipoHab::tipoHab(double l, double a)
{
	largo=l;
	ancho=a;
	cout<<"Se ha creado un objeto habitacion nuevo usando el constructor por omision.\n\n";
}
 
void tipoHab::mostrarValHab()
{
	cout<< "largo ="<<largo
	    <<"\n ancho =  " <<ancho<<endl;
 
}
 
void tipoHab::estValNueHab(double l, double a)
{
	largo= l;
	ancho= a;
 
}
 
void tipoHab::calcularAreaHab()
{
 
	cout<<(largo*ancho);
 
}
 
 
 
 
int main(){
	tipoHab habUno(12.5, 18.2);
	tipoHab habDos(9,12);
	tipoHab habVest(12.40, 3.5);
	tipoHab habCoc(14, 14);
	tipoHab habSala(12.4,20);
	tipoHab habCom(14, 9.5);
 
 
	cout<<"Los valores para esta habitacion son \n ";
	habUno.mostrarValHab();
	cout<< "\nEl area del piso de esta habitacion es: ";
	habUno.calcularAreaHab();
	habUno.estValNueHab(5.5, 9.3);
	cout<<"\n\nLosvalores para esta habitacion han sido cambiados a: \n";
	habUno.mostrarValHab();
	cout<<"\nEl area del piso de esta habitacion es: ";
	habUno.calcularAreaHab();
	cout<<endl;
 
	cout<<"Los valores para esta habitacion 2 son \n ";
	habDos.mostrarValHab();
	cout<< "\nEl area del piso de esta habitacion 2 es: ";
	habDos.calcularAreaHab();
	cout<<endl;
 
	cout<<"Los valores para el vestibulo son \n ";
	habVest.mostrarValHab();
	cout<< "\nEl area del piso del vestibulo es: ";
	habVest.calcularAreaHab();
	cout<<endl;
 
	cout<<"Los valores para la cocina son\n ";
	habCoc.mostrarValHab();
	cout<< "\nEl area del piso de la cocina es : ";
	habCoc.calcularAreaHab();
	cout<<endl;
 
	cout<<"Los valores para la sala son \n ";
	habSala.mostrarValHab();
	cout<< "\nEl area del piso de la sala es: ";
	habSala.calcularAreaHab();
	cout<<endl;
 
	cout<<"Los valores para el comedor son \n ";
	habCom.mostrarValHab();
	cout<< "\nEl area del piso del comedor es: ";
	habCom.calcularAreaHab();
	cout<<endl;
 
	return 0;
}
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 Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Necesito ayuda con un programa

Publicado por Alfil (1444 intervenciones) el 17/02/2019 06:37:43
En el futuro abre un nuevo hilo, así queda más claro cada problema individual

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include <iostream>
 
using namespace std;
 
class tipoHab{
private:
    double largo;
    double ancho;
    static double totalAreas;
public:
    tipoHab( double = 0.0 , double = 0.0);
    void mostrarValHab();
    void estValNueHab(double, double);
    void calcularAreaHab();
    static double obtenerTotalAreas() { return totalAreas; }
    static void establecerTotalArea( double );
};
 
double tipoHab::totalAreas = 0;
 
void tipoHab::establecerTotalArea( double area )
{
    totalAreas -= area;
}
 
tipoHab::tipoHab(double l, double a)
{
    largo = l;
    ancho = a;
    cout << "Se ha creado un objeto habitacion nuevo usando el constructor por omision.\n\n";
}
 
void tipoHab::mostrarValHab()
{
cout << "largo = " << largo
     << "\n ancho = " << ancho << endl;
 
}
 
void tipoHab::estValNueHab(double l, double a)
{
    largo = l;
    ancho = a;
 
}
 
void tipoHab::calcularAreaHab()
{
 
    cout << ( largo * ancho );
    totalAreas += largo * ancho;
 
}
 
int main(){
    tipoHab habUno(12.5, 18.2);
    tipoHab habDos(9,12);
    tipoHab habVest(12.40, 3.5);
    tipoHab habCoc(14, 14);
    tipoHab habSala(12.4,20);
    tipoHab habCom(14, 9.5);
 
 
    cout << "Los valores para esta habitacion son \n ";
    habUno.mostrarValHab();
    cout << "\nEl area del piso de esta habitacion es: ";
    habUno.calcularAreaHab();
    tipoHab::establecerTotalArea(12.5 * 18.2); // resta el area que se va a modificar
    habUno.estValNueHab(5.5, 9.3);
    cout << "\n\nLos valores para esta habitacion han sido cambiados a: \n";
    habUno.mostrarValHab();
    cout << "\nEl area del piso de esta habitacion es: ";
    habUno.calcularAreaHab();
    cout << endl;
 
    cout << "Los valores para esta habitacion 2 son \n ";
    habDos.mostrarValHab();
    cout << "\nEl area del piso de esta habitacion 2 es: ";
    habDos.calcularAreaHab();
    cout << endl;
 
    cout << "Los valores para el vestibulo son \n ";
    habVest.mostrarValHab();
    cout << "\nEl area del piso del vestibulo es: ";
    habVest.calcularAreaHab();
    cout << endl;
 
    cout << "Los valores para la cocina son\n ";
    habCoc.mostrarValHab();
    cout << "\nEl area del piso de la cocina es : ";
    habCoc.calcularAreaHab();
    cout << endl;
 
    cout << "Los valores para la sala son \n ";
    habSala.mostrarValHab();
    cout << "\nEl area del piso de la sala es: ";
    habSala.calcularAreaHab();
    cout << endl;
 
    cout << "Los valores para el comedor son \n ";
    habCom.mostrarValHab();
    cout << "\nEl area del piso del comedor es: ";
    habCom.calcularAreaHab();
    cout << endl;
 
    cout << "\nEl area total es "
         << tipoHab::obtenerTotalAreas() << endl;
 
    return 0;
}
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