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:
#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
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;
}
}
}