Foros del Web » Programación para mayores de 30 ;) » C/C++ »

calculadora en borland C++

Estas en el tema de calculadora en borland C++ en el foro de C/C++ en Foros del Web. buenas tardesillas, estoy tratando de hacer una calculadora en c++ con entorno grafico borland. y no se como poner funciones ni nada de eso. les ...
  #1 (permalink)  
Antiguo 31/08/2012, 14:05
Avatar de W_NEMESIS  
Fecha de Ingreso: mayo-2012
Ubicación: pasto
Mensajes: 25
Antigüedad: 12 años, 5 meses
Puntos: 1
Exclamación calculadora en borland C++

buenas tardesillas, estoy tratando de hacer una calculadora en c++ con entorno grafico borland. y no se como poner funciones ni nada de eso. les dejo lo que tengo. por favor ayudenme.

main

Código C++:
Ver original
  1. #include <winbgim.h>
  2. #include <math.h>
  3. #include <ctype.h>
  4. #include "captura_numeros.h"
  5.  
  6. //Aplicacion de la rutina de captura de datos numericos en modo grafico
  7.  
  8. double captura_numeros(int, int);
  9. void dibujar_pantalla(double, double, char);
  10. void basicas();
  11.  
  12.  
  13.  main()
  14. {
  15.     initwindow(1100,700);
  16.     basicas();
  17.     closegraph();
  18.     return 0;
  19. }
  20.        void dibujar_pantalla(double acumulado,double numero, char operacion){
  21.             char subcadena[30];
  22.             gcvt(acumulado,11,subcadena);
  23.             settextstyle(0,0,3);
  24.             outtextxy(10,25,"                ");
  25.             settextstyle(0,4,3);
  26.             setcolor(COLOR(254,254,0));
  27.             outtextxy(475,55,subcadena);
  28.            
  29.             setcolor(COLOR(254,254,254));
  30.             rectangle(20,20,480,60);
  31.             settextstyle(0,0,1);
  32.             setcolor(COLOR(254,0,0));
  33.             outtextxy(25,25,"Resultado");
  34.            
  35.             settextstyle(0,4,3);
  36.             setcolor(COLOR(254,0,0));
  37.             outtextxy(479,115,"           ");
  38.             setcolor(COLOR(254,254,254));
  39.             rectangle(90,80,480,120);
  40.            
  41.             subcadena[0]=operacion;
  42.             subcadena[1]='\0';
  43.             settextstyle(0,0,2);
  44.             outtextxy(150,90,subcadena);
  45.             settextstyle(0,6,2);
  46.             }
  47.        
  48.        void basicas(){
  49.            
  50.             char subcadena[30], operacion='c';
  51.             int posx, posy, primeraoperacion=0;
  52.             double acumulado=0.0, numero=0.0;
  53.            
  54.             cleardevice();
  55.             operacion=toupper(operacion);
  56.            
  57.             while (operacion != 'S')
  58.             {
  59.                   dibujar_pantalla(acumulado,numero,' ');
  60.                   if (primeraoperacion!=0)
  61.                   {
  62.                      setcolor(COLOR(0,254,0));
  63.                      settextstyle(0,0,2);
  64.                      outtextxy(10,150,"+ suma");
  65.                      outtextxy(10,170,"- resta");
  66.                      outtextxy(10,190,"* multiplicacion");
  67.                      outtextxy(10,210,"/ division");
  68.                      setcolor(COLOR(250,150,0));
  69.                      outtextxy(10,240,"C borrar");
  70.                      outtextxy(10,260,"S Salir");
  71.                      operacion=getch();
  72.                      operacion=toupper(operacion);
  73.                   }
  74.                   dibujar_pantalla(acumulado,numero,operacion);
  75.                   {
  76.                      posx=470;
  77.                      posy=110;
  78.                                                                          
  79.                      if(primeraoperacion==0)
  80.                      {
  81.                             numero=captura_numeros(posx,posy);
  82.                             acumulado=numero;
  83.                             primeraoperacion=1;
  84.                      }
  85.                                                                          
  86.                      else
  87.                      {
  88.                           switch(operacion)
  89.                           {
  90.                               case '+' : numero=captura_numeros(posx,posy);
  91.                               acumulado=acumulado+numero;
  92.                               break;
  93.                                                                                                  
  94.                               case '-' : numero=captura_numeros(posx,posy);
  95.                               acumulado=acumulado-numero;
  96.                               break;
  97.                                          
  98.                               case '*' : numero=captura_numeros(posx,posy);
  99.                               acumulado=acumulado*numero;
  100.                               break;
  101.                              
  102.                               case '/' : numero=captura_numeros(posx,posy);
  103.                               acumulado=acumulado/numero;
  104.                               break;
  105.                              
  106.                               case 'i' : numero=captura_numeros(posx,posy);
  107.                               acumulado=sin(acumulado);
  108.                               break;
  109.                                                                                          
  110.                               case 'C' : acumulado=0;
  111.                               primeraoperacion=0;
  112.                               break;
  113.                                                                                                  
  114.                               case 'S' : break;
  115.                                                                                                  
  116.                               default : setcolor(COLOR(254,0,254));
  117.                               settextstyle(0,0,2);
  118.                               outtextxy(110,90,"Error, Opcion no Valida");
  119.                               getch();
  120.                               break;
  121.                           }
  122.                        }
  123.                        numero=0;
  124.                        strcpy(subcadena,"                ");
  125.                   }
  126.             }                                                                                                                                                                                                                                                                                        
  127. }
  128.  
  129. void waitForLeftMouseClick()
  130. {
  131.     clearmouseclick(WM_LBUTTONDOWN);
  132.     const int DELAY = 50; // Milliseconds of delay between checks
  133.     int x, y;
  134.     while (!ismouseclick(WM_LBUTTONDOWN))
  135.         delay(DELAY);
  136.     getmouseclick(WM_LBUTTONDOWN, x, y);
  137. }

archivo adjunto .h

Código C++:
Ver original
  1. double captura_numeros(int x, int y)
  2. {
  3.     char digito,cadena[30];
  4.     int i,punto,negativo;
  5.     double numero;
  6.    
  7.     digito='0';
  8.     i=0;
  9.     punto=0;
  10.     negativo=0;
  11.    
  12.     while (digito!=13)//valor de control Enter o sig linea
  13.     {
  14.           setcolor(RED);
  15.           settextstyle(0,4,2);
  16.           setcolor(RED);
  17.          
  18.           digito=getch();//Getch: captura el valor de una tecla
  19.           if (digito==8)//valor de control BackSpace
  20.           {
  21.              cadena[i]='\0';
  22.              i--;
  23.           }      
  24.           if(isdigit(digito) || digito=='.' || digito=='-')
  25.           {
  26.              if (digito=='.')
  27.              {
  28.                  if(punto==0)
  29.                  {
  30.                      cadena[i]=digito;
  31.                      i++;
  32.                      punto=1;
  33.                  }
  34.              }
  35.              else{
  36.                   if(digito=='-')
  37.                   {
  38.                      if (i==0)
  39.                      {
  40.                               cadena[i]=digito;
  41.                               i++;
  42.                      }
  43.                   }
  44.                   else
  45.                   {
  46.                       cadena[i]=digito;
  47.                       i++;
  48.                   }
  49.              }
  50.           }
  51.           cadena[i]='\0';
  52.           numero=atof(cadena);
  53.           settextstyle(0,4,2);
  54.           setcolor(COLOR(254,0,0));
  55.           outtextxy(x,y,"                ");
  56.           outtextxy(x,y,cadena);
  57.     }      
  58. return (numero);
  59. }

muchas gracias
  #2 (permalink)  
Antiguo 04/09/2012, 16:51
 
Fecha de Ingreso: agosto-2012
Mensajes: 94
Antigüedad: 12 años, 3 meses
Puntos: 7
Respuesta: calculadora en borland C++

Hola!!!

En entorno grafico borland? Yo programo en Graphics h y en Winbgim (que son lo mismo),, que es lo que no sabes? Como hacer la calcu o como hacer los graficos?

Saludos!

Etiquetas: borland, calculadora, cosecante, coseno, cotangente, funciones, secante, seno, tangente, graficos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:18.