Páginas

NIMADRES

Calculadora En C++ Orientada A Objetos

Creo que esta entrada si necesita una pequeña explicación a excepción de las demás.
Primeramente esto lo hice y compile en Dev-cpp. Se necesita hacer un proyecto con tres archivos.
Antes del #endif se hace un archivo "calculadora.h" seguido se crea otro llamado
"calculadora.cpp" todo esto antes del #include "calculadora.h" despues de esto
sigue el archivo main.cpp. Al final se compila todo el proyecto y listo
#ifndef CALCULADORA_H
#define CALCULADORA_H
#include <windows.h>
#include <iostream>
#include <cmath>

class Calculadora{
      private:
              int numero;
              double numero1;
              double numero2;
              double numero3;
              double resultado;
              void insertar();//para los demas
              void imprimir();//para mandar a llmar el resultado
              void Insertar();//para sqrt y para factorial
              void ingresar();//para chicharronera
      public:
              Calculadora();
              void suma();
              void resta();
              void multiplicacion();
              void division();
              void raizCuadrada();
              void chicharronera();
              void factorial();
              void Menu();
              void gotoxy(int x, int y);
              void primos();
              void tabla();
              void IMC();
              void Exit(int x, int y);
};
#endif

#include "calculadora.h"

Calculadora::Calculadora()
{
    numero1 = 0.0;
    numero2 = 0.0;
    resultado = 0.0;
}


void Calculadora::suma()
{
     insertar();
     resultado = numero1 + numero2;
     imprimir();
}

void Calculadora::resta()
{
     insertar();
     resultado = numero1 - numero2;
     imprimir();
}

void Calculadora::multiplicacion()
{
     insertar();
     resultado = numero1 * numero2;
     imprimir();
}

void Calculadora::division()
{
     insertar();
     if(numero2 != 0){
         resultado = numero1 / numero2;
         imprimir();
     }
     else
         std::cerr<<"Imposible dividir entre 'Cero'";
     
}

void Calculadora::raizCuadrada()
{
     Insertar();
     if(numero1 >= 0){
         resultado = sqrt(numero1);
         imprimir();
     }
     else
        std::cerr<<"No existen raices negativas no sea pendejo";
}

void Calculadora::chicharronera()
{
     double x1;
     double x2;
     ingresar();
     resultado = ((numero2*numero2)-(4*(numero1*numero3)));
     resultado = sqrt (resultado);
     x1 = ((-numero2)- resultado)/(2*numero1);
     x2 = ((-numero2)+ resultado)/(2*numero1);
     std::cout<<"\nX = "<<x1<<"\t";
     std::cout<<"X'= "<<x2;
}

void Calculadora::factorial()
{
     Insertar();
     resultado = 1;
     if(numero1 >= 0){
         for(numero1;numero1 != 0;--numero1)
             resultado *= numero1;
         imprimir();
     }
     else
         std::cerr<<"Error No sea Pendejo";
}

void Calculadora::insertar()
{
    std::cout<<"Ingresa el primer valor: ";
    std::cin>>numero1;
    std::cout<<"Ingresa el segundo valor: ";
    std::cin>>numero2;
}

void Calculadora::Insertar()
{
    std::cout<<"Ingresa el valor: ";
    std::cin>>numero1;  
}

void Calculadora::ingresar()
{
    std::cout<<"Ingresa el primer valor: ";
    std::cin>>numero1;
    std::cout<<"Ingresa el segundo valor: ";
    std::cin>>numero2;
    std::cout<<"Ingresa el tercer valor: ";
    std::cin>>numero3;
}

void Calculadora::imprimir()
{
    std::cout<<"\nEl resultado es: "<<resultado;
}
void Calculadora::primos()
{
    std::cout<<"Introduce el Numero: ";
    std::cin>>numero;
    if((numero != 2 & numero%2 == 0)||(numero != 3 & numero%3 == 0)||
     (numero != 5 & numero%5 == 0)||(numero != 7 & numero%7 == 0)||
     (numero != 7 & numero%7 == 0)||(numero != 11 & numero%11 == 0)||
     (numero != 13 & numero%13 == 0)||(numero != 17 & numero%17 == 0)||
     (numero != 23 & numero%23 == 0)||(numero != 29 & numero%29 == 0)||
     (numero != 31 & numero%31 == 0)||(numero != 37 & numero%37 == 0))      
        std::cout<<"Es Par";
    else
        std::cout<<"Es Primo";
}
void Calculadora::tabla()
{
    system("cls");
    system("color 0c");
        
    std::cout<<"\t\t
    Tabla De multiplicar\n\t_____________________________________"<<
    std::endl<<std::endl;
    std::cout<<"\n Introduce un numero: ";
    std::cin>>numero;
    int numeroMultiplicado = 1;
        
    std::cout<<"\t******************************\n";
        
    while (numeroMultiplicado < 11)
    {
            
        std::cout<<"\t*\t"<<numero<<" x "<<numeroMultiplicado<<" = "<<
        (numero * numeroMultiplicado)<<"       "<<std::endl;
        numeroMultiplicado++;
    }
    std::cout<<"\t******************************\n";
}
void Calculadora::IMC()
{   
    system("cls");
    std::cout<<"\t\t==========INDICE DE MASA CORPORAL=========="<<std::endl;
    std::cout<<"\tIntroduce tu peso: ";
    std::cin>>numero1;
    std::cout<<"\tIntroduce tu altura en Metros: ";
    std::cin>>numero2;
    
    resultado = numero1 / (numero2 * numero2);
    
    std::cout<<"Tu Indice De Masa Corporal Es: "<<resultado;
}
void Calculadora::Menu()
{
    system("color 0e");
    std::cout<<"\t\t==============================================\n";
    std::cout<<"\t\t||******************************************||\n";
    std::cout<<"\t\t||*\tFunciones para una calculadora     *||\n";
    std::cout<<"\t\t||*\t                                   *||\n";
    std::cout<<"\t\t||*\t0)SUMAR                            *||\n";
    std::cout<<"\t\t||*\t1)RESTAR                           *||\n";
    std::cout<<"\t\t||*\t2)MULTIPLICAR                      *||\n";
    std::cout<<"\t\t||*\t3)DIVIDIR                          *||\n";
    std::cout<<"\t\t||*\t4)RAIZ CUADRADA                    *||\n";
    std::cout<<"\t\t||*\t5)CHICHARRONERA                    *||\n";
    std::cout<<"\t\t||*\t6)FACTORIAL                        *||\n";
    std::cout<<"\t\t||*\t7)PRIMOS                           *||\n";
    std::cout<<"\t\t||*\t8)TABLAS                           *||\n";
    std::cout<<"\t\t||*\t9)IMC                              *||\n";
  //std::cout<<"\t\t||*\t[exit])SALIR                       *||\n";
    std::cout<<"\t\t||******************************************||\n";
    std::cout<<"\t\t==============================================\n";
    std::cout<<"\n OPCION: ";
}

void Calculadora::Exit(int x, int y)
{
    Calculadora calc;

    std::cout<<"please wait...\n";
    for(int i = 0; i <= 79;++i)
        std::cout<<"_";
    x = 2;
    y = 2;
    system("color 0c");
    for(int i = 0; i <= 75;++i){
        calc.gotoxy(x++,y); 
        std::cout<<"_";
        Sleep(3 * 1000 / 80);
    }
    system("color 0e");
    x = 77;
    y = 20;
    for(int i = 77; i >= 2;--i){
        calc.gotoxy(x--,y); 
        std::cout<<"_";
        Sleep(3 * 1000 / 80);
    }
    system("color 0a");
    x = 2;
    y = 3;
    for(int i = 2; i <= 19;++i){
        calc.gotoxy(x,y++); 
        std::cout<<"|";
        Sleep(3 * 1000 / 80);
    }
    system("color 09");
    x = 77;
    y = 20;
    for(int i = 21; i >= 4;--i){
        calc.gotoxy(x,y--); 
        std::cout<<"|";
        Sleep(3 * 1000 / 80);
    }
    system("color 0f");      
    x = 60;
    y = 21;    
    for(int i = 20; i <=60;++i){
        calc.gotoxy(x--,y);
        std::cout<<"=";
        Sleep(4 * 1000 / 80);
        calc.gotoxy(i,22);
        std::cout<<"=";
        Sleep(4 * 1000 / 80);
    }
    system("color 06");
    x =32;
    y =7;
    calc.gotoxy(x,y++);
    std::cout<<"-------------";
    calc.gotoxy(x,y++);
    std::cout<<"|Ð*-------*Ð|";
    calc.gotoxy(x,y++);    
    std::cout<<"| *-------* |";
    calc.gotoxy(x,y++);
    std::cout<<"| | ADIOS | |";
    calc.gotoxy(x,y++);
    std::cout<<"| *-------* |";
    calc.gotoxy(x,y++);
    std::cout<<"|Ð*-------*Ð|";
    calc.gotoxy(x,y++);
    std::cout<<"-------------";
    std::cin.get();
}
void Calculadora::gotoxy(int x, int y) 
{ 
    HANDLE hCon; 
    COORD dwPos; 

    dwPos.X = x; 
    dwPos.Y = y; 
    hCon = GetStdHandle(STD_OUTPUT_HANDLE); //Esto es para 
    SetConsoleCursorPosition(hCon,dwPos); //no tener que compilar 
    //en el pinche borlandc o el turboc
}


#include "calculadora.h"

int main(int argc, char *argv[])
{
    Calculadora calc;
    char respuesta[10] = "";
    std::string otraRespuesta = "exit";
    int largo;
    char opcion;
    int x =0;
    int y =0;
    system("title NIMADRES");
    do
    {
        calc.Menu();
        std::cin>>opcion;    

        switch (opcion)
        {
            case 48:
                calc.suma();
                std::cout<<std::endl;
                break;
            case 49:
                calc.resta();
                std::cout<<std::endl;
                break;
            case 50:
                calc.multiplicacion();
                std::cout<<std::endl;
                break;
            case 51:
                calc.division();
                std::cout<<std::endl;
                break;
            case 52:
                calc.raizCuadrada();
                std::cout<<std::endl;
                break;
            case 53:
                calc.chicharronera();
                break;
            case 54:
                 calc.factorial();
                 break;
            case 55:
                 calc.primos();
                 break;
            case 56:
                 calc.tabla();
                 break;
            case 57:
                 calc.IMC();
                 break;
            default:
                std::cerr<<"ERROR VUELA A INTENTARLO IDIOTA";
                break;
        }
        std::cin.get();
        std::cout<<"\n\n\tSi deseas salir escriba exit en otro caso Enter: ";
        std::cin.getline(respuesta,10);
        system("cls");
    }
    while(respuesta != otraRespuesta);
    system("cls");
    calc.Exit(x,y);
    return 0;

}


1 comentario: