Ejercicios de explicación de programación
# incluir ltstdlib.h gt
# incluir ltstring gt
Complejo de clases
{public:
complex(){ real = 0; imag = 0;//Constructor predeterminado, tanto la parte real como la imaginaria se inicializan a 0.
Número complejo (float r, float I) { real = r; imag = I }//Constructor con parámetros, la parte real y la parte imaginaria se asignan mediante parámetros reales externos.
Complejo (const complejo ampc) { real = c real; imag = c.imag}///(copia) constructor de copias.
~ Complejo(){ cout lt"* * * * * * * * * * * * * * * * * * * * * * *" ltendl}//Destructor , solo genera una serie de asteriscos y no hace nada más.
Operador plural (plural ampC2); //Declara la función sobrecargada de " ", los parámetros se utilizan como referencias a la clase compleja y se devuelve el objeto de la clase compleja. Similares a continuación.
Operador plural-(plural ampC2);
Operador plural*(plural ampC2);
Operador plural/(plural ampC2);
p>
friend bool operator==(plural ampc1, complex ampC2); //La función sobrecargada declarada en "==" es una función amiga de la clase compleja.
¡Operador booleano amigable! =(complex ampc1, complex ampC2); //La función sobrecargada declarada "!= ' es una función amiga de la clase compleja.
Oyster friend amp operator lt lt(ostream amp, complex amp);/ /Declarar "
Amigos equipo amp operador gt gt(istream amp, complex amp); //Declarar la función sobrecargada de ">gt".
visualización vacía();
Privado:
real flotante
imagen flotante
};
Plural::operator(plural ampC2) //Definir una función sobrecargada para " ".
{Complejo c;
c real = real C2
c imag = imag C2 . Return c;}
Plural plural::operator-(plural ampC2) //Definir una función sobrecargada para "-".
{Complejo c;
c. real = real-C2.
c. p>Return c;}
Plural plural::operator*(plural ampC2) //Definir una función sobrecargada para "*".
{Complejo c;
c .imag = real * C2 . real * C2 imag;
Return c;}
Plural plural::operator/(plural ampC2) //Definir una función sobrecargada para "/".
{Complejo c;
c . real =(real * C2 . real imag * C2 . imag)/(C2 . real * C2 . real C2 . imag * C2 . imag );
c . imag =(imag * C2 . real-real * C2 . imag)/(C2 . real * C2 . real C2 . imag * C2 . imag
Return c;}
Operador booleano==(plural ampc1, complex ampC2) //Defina una función sobrecargada para "==".
{
if((c 1 . real = = C2 . real) amp; amp(c1.imag==c2.imag))
Regresar verdadero
Otro
Devuelve falso
}
¡Operador booleano! =(complex ampc1,complex ampC2) //Definir pares de funciones sobrecargadas "!=".
{
if((c1.real!=c2.real)||(c1.imag!=c2.imag))
Devuelve verdadero
Otro
Devuelve falso
}
Oyster; operador lt lt(salida de amplificador ostream, ampc complejo)
{Salida lt lt"(" lt ltc . true;
if(c . imag gt;=0) salida lt lt" ";
Salida lt ltc.imag lt lt "i)";
//Un detalle es que si la parte imaginaria del número complejo no es negativa, se muestra un "" implícito; de lo contrario, no es necesario procesar números negativos que contengan "; -".
Salida de retorno;
}
Operador de amplificador istream gt gt(entrada de amplificador istream, ampc complejo)
{
Entrada gt gtc.real gt gtc imag;
Devolver entrada;
}
void Complex::display()
{ cout lt lt"(" lt ltreal lt lt"," lt ltimag lt lt "I)" lt ltendl}
//Declarar algunas funciones por adelantado
void Plus ();
void Minus();
void multiple();
void Divide()
void Comparar(); ;
void return();
//función principal
int main()
{
return();
Retorno 0;
}
//Definición de suma
void Plus (no válido)
{
Números complejos I, j, k;
cout lt lt"Ingrese dos números complejos (la parte real y la parte imaginaria están separadas por espacios):"
CIN gt; gt i gt gtj;
k = I j
cout lt ltk lt ltendl
}
//Definición de resta
resta nula ()
{
Números complejos I, j, k;
cout lt lt"Ingrese dos números complejos (partes reales e imaginarias separadas por espacios): "
CIN gt; gti gt gtj
k = I-j; p>cout lt ltk lt ltendl
}
//Definición de multiplicación
Múltiple no válido()
{
Números complejos I, j, k;
cout lt lt"Por favor ingrese dos números complejos (parte real y parte imaginaria separados por espacios):"
CIN gt; gt gtj;
k = I * j;
cout lt ltk lt ltendl
}
//Definición de división p>
División no válida()
{
Números complejos I, j, k;
cout lt lt"Ingrese dos números complejos (reales parte y parte imaginaria Separadas por espacios, las partes real e imaginaria del segundo número complejo no son ambas 0): "
CIN gt; gtI gt gtj;
k = I/ j;
cout lt ltk lt ltendl
}
// Creo que la definición de comparación es similar a la definición de igualdad y desigualdad, por lo que las dos no es necesario verificarlo.
Comparación no válida()
{
Complejo I, j;
cout lt lt"Ingrese dos números complejos (real El parte y parte imaginaria están separadas por espacios): "
CIN gt; gti gt gtj;
if(I = = j)cout lt; lt" Estos dos números complejos son iguales ! " lt ltendl
else cout lt "Estos dos números complejos no son iguales " lt ltendl
}
// ¡Regrese a la interfaz principal, realice! funcionan los cálculos, etc.
Retorno no válido()
{
cout lt lt" Operación de datos básicos: "
cout lt lt" 1-suma "
cout lt lt" 2-resta" < ltendl
cout lt "tres multiplicaciones" endl
cout lt lt"cuatro divisiones" endl
cout lt lt" 5-Compara dos números complejos para obtener igualdad"
cout lt lt" 6-Cierra la calculadora"
cout lt lt"Por favor ingresa tu selección: "
selección int;
char ch
for(;;)
{
CIN gt; elección;
if(elección = = 6)romper;
cambiar (elección)
{
Caso 1: sistema(" cls "); //Borrar pantalla
for(;;)
{ Plus();
cout lt lt "Presione 'n ' o 'n ' para salir, presione 'm' o 'm' para regresar al directorio principal y continuar calculando adiciones: " CIN gt; gtch; if. (ch= ='M'||ch=='m ') { system(" cls "); return();} if(ch =='N'||ch=='n ') Salir (1); } Pausa; Caso 2: System("cls"); for(;;) { Minus(); cout lt lt"Presione ' n' o 'n' para salir, presione 'm' o 'm' para regresar al directorio principal y continuar contando las restas: " CIN gt; gtch; if(ch =='M'||ch=='m ') { system(" cls "); return();} if( ch=='N'||ch=='n ') Salir(1); } Interrupción; Caso tres: system("cls"); for(;;) { multiple(); cout lt lt" presione 'n' o 'n' para salir, presione 'm' o 'm' para regresar al directorio de inicio y continuar calculando la multiplicación. Presione otros caracteres: " CIN gt; gtch; if(ch=='M'||ch=='m ') { sistema(" cls "); return();} if(ch=='N'||ch=='n ') Salir(1); } Pausa; Caso 4: Sistema("cls"); for(; ;) { Divide(); cout lt "Presione 'n' o 'n' para salir, presione 'm' o 'm' para regresar al directorio de inicio, presione otros caracteres Continuar dividiendo: " < ltendl CIN gt; gtch; if(ch=='M'||ch=='m ') { sistema(" cls "); return();} if(ch=='N'||ch=='n ') Salir(1); } Pausa; Caso 5: System("cls"); //Borrar la pantalla for(;;) { Compare(); cout lt lt"Presione 'n' o 'n' para salir, presione 'm' o ' m' para regresar al directorio de inicio, continuar la comparación con otros caracteres: " < ltendl CIN gt; gtch; if(ch=='M'||ch== 'm ') { system(" cls "); return();} if(ch=='N'||ch= ='n ') Salir(1); } Pausa; Valor predeterminado: cout lt lt "Número incorrecto ¡aporte! Vuelva a ingresar: " } } }