Autor Tema: Como aceptar solo numeros en c++ validar entrada del usuario es numérica  (Leído 19351 veces)

5378453

  • Principiante
  • **
  • Mensajes: 56
    • Ver Perfil
    • Mugiwara no Fansub
quisiera saber como hacer para que al teclar datos solo reciba numeros, que no permita que introduzcan otra cosa

Es un programa que trabaja con números complejos

mi código:

.h:
Código: [Seleccionar]
#include <conio.h>
#include <math.h>
#include <iostream>
#include <stdlib.h>
using namespace std;

class complejo{

private:

double r,i;

public:

complejo(){
r=0.0;
i=0.0;
}

complejo(double real, double imaginario){
r=real;
i=imaginario;
}

void setRealImaginario(double real,double imaginario){
r=real;
i=imaginario;
}

double getReal(){
return r;
}
double getImaginario(){
return i;
}

void imprime(){
if(r!=0&&i!=0){
cout <<"\nResultado: " << r << "," << i << "i";
}
else if(r==0&&i!=0){
cout <<"\nResultado: " << i <<"i";
}
else if(r!=0&&i==0){
cout <<"\nResultado: " << r;
}
else{
cout <<"\nResultado: 0";
}
}

double sumaComplejos(double real1, double imaginario1, double real2, double imaginario2){
r= real1 + real2;
i= imaginario1 + imaginario2;
return r,1;
}

double restaComplejos(double real1, double imaginario1, double real2, double imaginario2){
r= real1-real2;
i= imaginario1-imaginario2;
return r,i;
}

double multiplicacionComplejos(double real1, double imaginario1, double real2, double imaginario2){
r=(real1*real2)-(imaginario1*imaginario2);
i=(real1*imaginario2)+(imaginario1*real2);
return r,1;
}

double dividirComplejos(double real1, double imaginario1, double real2, double imaginario2){
r=((real1*real2)+(imaginario1*imaginario2))/(pow(real2,2)+pow(imaginario2,2));
i=((imaginario1*real2)-(real1*imaginario2))/(pow(real2,2)+pow(imaginario2,2));
return r,i;
}

void polar(double real, double imaginario){
double magnitud, angulo;
if((real>0)&&(imaginario>0)){
magnitud=sqrt((pow(real,2))+(pow(imaginario,2)));
angulo=((atan(imaginario/real))*57.29);
angulo=sqrt(pow(angulo,2));
}

if((real<0)&&(imaginario>0)){
magnitud=sqrt((pow(real,2))+(pow(imaginario,2)));
angulo=((atan(real/imaginario))*57.29);
angulo=(sqrt(pow(angulo,2)))+90;
}

if((real>0)&&(imaginario<0)){
magnitud=sqrt((pow(real,2))+(pow(imaginario,2)));
angulo=((atan(imaginario/real))*57.29);
angulo=-(sqrt(pow(angulo,2)));
}

if((real<0)&&(imaginario<0)){
magnitud=sqrt((pow(real,2))+(pow(imaginario,2)));
angulo=((atan(real/imaginario))*57.29);
angulo=-(sqrt(pow(angulo,2)))-90;
}

cout<< magnitud<< ","<< angulo<< "\xF8";
}

double rectangular(double real, double imaginario){
r=real*(cos(imaginario*.017453));
i=real*(sin(imaginario*.017453));
return r,1;
}
};

.cpp
Código: [Seleccionar]
using namespace std;
#include "complejo.h"

void main(){
double a,b,c,d,e=1,continuar,real,imag,conti;
complejo resultado;
while(1){
system("cls");
if(e==1){
cout << "Elige la operacion que quieras realizar:\n\n1-Suma\n2-Resta\n3-Multiplicacion\n4-Division\n5-Transformar a Polar\n6-Transformar a Rectangular\n7-Salir\n\n";
e=_getch();
}

else if(e==49){
conti=1;
system("cls");
cout << "Suma:\n\nIngresa El Primer Numero Complejo: ";
cin >> a >> b;
cout << "\nIngresa El Segundo Numero Complejo: ";
cin >> c >> d;
resultado.sumaComplejos(a,b,c,d);
resultado.imprime();
cout << "\n\n1-Continuar\n2-Realizar otra Operacion\n3-Salir\n";
continuar=_getch();
if(continuar == 49){
e=49;
}

else if(continuar == 51){
break;
}
else{
e=1;
}
}

else if(e==50){
system("cls");
cout << "Resta:\n\nIngresa El Primer Numero Complejo: ";
cin >> a >> b;
cout << "\nIngresa El Segundo Numero Complejo: ";
cin >> c >> d;
resultado.restaComplejos(a,b,c,d);
resultado.imprime();
cout << "\n\n1-Continuar\n2-Realizar otra Operacion\n3-Salir\n";
continuar=_getch();
if(continuar == 49){
e=49;
}

else if(continuar == 51){
break;
}
else{
e=1;
}
}

else if(e==51){
system("cls");
cout << "Multiplicacion:\n\nIngresa El Primer Numero Complejo: ";
cin >> a >> b;
cout << "\nIngresa El Segundo Numero Complejo: ";
cin >> c >> d;
resultado.multiplicacionComplejos(a,b,c,d);
resultado.imprime();
cout << "\n\n1-Continuar\n2-Realizar otra Operacion\n3-Salir\n";
continuar=_getch();
if(continuar == 49){
e=49;
}

else if(continuar == 51){
break;
}
else{
e=1;
}
}

else if(e==52){
system("cls");
cout << "Division:\n\nIngresa El Primer Numero Complejo: ";
cin >> a >> b;
cout << "\nIngresa El Segundo Numero Complejo: ";
cin >> c >> d;
resultado.dividirComplejos(a,b,c,d);
resultado.imprime();
cout << "\n\n1-Continuar\n2-Realizar otra Operacion\n3-Salir\n";
continuar=_getch();
if(continuar == 49){
e=49;
}

else if(continuar == 51){
break;
}
else{
e=1;
}
}

else if(e==53){
system("cls");
cout << "Transformar a Polar:\n\n Introduce el Numero Rectangular: ";
cin >> a >> b;
resultado.polar(a,b);
cout << "\n\n1-Continuar\n2-Realizar otra Operacion\n3-Salir\n";
continuar=_getch();
if(continuar == 49){
e=49;
}

else if(continuar == 51){
break;
}
else{
e=1;
}
}

else if(e==54){
system("cls");
cout <<"Transformar a Rectangular:\n\nIntroduce el Numero Polar: ";
cin >> a >> b;
resultado.rectangular(a,b);
resultado.imprime();
cout << "\n\n1-Continuar\n2-Realizar otra Operacion\n3-Salir\n";
continuar=_getch();
if(continuar == 49){
e=49;
}

else if(continuar == 51){
break;
}
else{
e=1;
}
}

else if(e==55){
break;
}

else{
e=1;
}
}

}
« Última modificación: 23 de Septiembre 2015, 09:11 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2628
    • Ver Perfil
Re:Como aceptar solo numeros en c++ validar entrada del usuario es numérica
« Respuesta #1 en: 23 de Septiembre 2015, 09:11 »
Hola para validar que el usuario introduce un número y que es entero

Código: [Seleccionar]
int n;
cin >> n;
if(!cin) // o también if(cin.fail())
{
    // El usuario no introdujo un número
    cin.clear(); // Borrar la entrada fallida
    cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); //Saltar la entrada no válida
    // Aquí poner código para volver a pedirle al usuario que introduzca un número
}

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".