Páginas

NIMADRES

Como hacer tu Propio Gotoxy en C++

Me eh dado cuenta de que el editor y compilador turboC es uno de los mas anti-multiplataforma, por lo mismo
esta estrictamente basado para compilar en Windows, bueno si se fijan el Dev-cpp no tiene las mismas herramientas que el turboC, bueno pues una de ellas es el famoso gotoxy!!, aqui les mostrare como hacer tu propio gotoxy.
Para empezar ncesitamos hacer un Proyecto en el Dev-cpp, en ves de guardarlo como console aplication, lo guardas como Static library o simplemente abres un archivo nuevo , despues ingresas este codigo:
#ifndef GOTOXY_H
#define GOTOXY_H
#include <windows.h>

void gotoxy(int x, int y) 
{ 
    HANDLE hCon; 
    COORD dwPos; 
    //Esto es para no tener que compilar en el pinche borlandc o el turboc
    dwPos.X = x; 
    dwPos.Y = y; 
    hCon = GetStdHandle(STD_OUTPUT_HANDLE); 
    SetConsoleCursorPosition(hCon,dwPos); 
}
#endif

Despues lo guardas con la extencion "Gotoxy.h" en la carpeta 
C:\Dev-cpp\include
y ya tienes tu propia libreria para tu maquina!!, como les decia este codigo es meramente para Windows
ya que en Linux si esta mas dificil, bueno si es que se puede porque aun no me ah tocado ver a alguien que lo haga!!.
Para finalizar Les dejo un ejemplo de como pueden empezar a divertirse con su nueva libreria:
#include <iostream>
#include <gotoxy.h>

int main()
{     
    do{
        int x = 0;
        int y = 0;
        
        for(int i = 0; i < 24;++i){
            gotoxy(x++,y++);
            std::cout<<"*";
            system("cls");
            //Sleep(50);
            system("color 0c");
        }
        for(int i = 0; i < 24;++i){
            gotoxy(x++,y--);
            std::cout<<"*";
            system("cls");
            //Sleep(50);
            system("color 0a");
        }
        for(int i = 0; i < 24;++i){
            gotoxy(x++,y++);
            std::cout<<"*";
            system("cls");
            //Sleep(50);
            system("color 0e");
        }
        for(int i = 0; i < 24;++i){
            gotoxy(x--,y--);
            std::cout<<"*";
            system("cls");
            //Sleep(50);
            system("color 0f");
        }
        for(int i = 0; i < 24;++i){
            gotoxy(x--,y++);
            std::cout<<"*";
            system("cls");
            //Sleep(50);
            system("color 0d");
        }
        for(int i = 0; i < 24;++i){
            gotoxy(x--,y--);
            std::cout<<"*";
            system("cls");
            //Sleep(50);
            system("color 0c");
        }
    }
    while(true);
    std::cin.get();
    return 0;
}

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;

}