Red de conocimiento informático - Conocimientos de programación - Ejercicios de explicación de programación

Ejercicios de explicación de programación

# incluir ltiostream.h gt

# 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

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

p>

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: "

}

}

}