Resultados 1 al 6 de 6

Tema: [Calculadora]hecha en C#

  1. #1 [Calculadora]hecha en C# 
    Medio
    Fecha de ingreso
    Jul 2007
    Mensajes
    111
    Descargas
    0
    Uploads
    0
    bueno dejo el codigo de la calculadora no me critiquen mucho :

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    namespace WindowsApplication1
    {
    public partial class Form1 : Form
    {
    private double cal1=0;
    private double cal2 = 0;
    private double cal3 = 0;
    private double cal4 = 0;
    private double total = 0;
    private int suma = 0;
    private int resta = 0;
    private int multiplicacion = 0;
    private int division = 0;
    private int dec = 0;
    private int men = 0;

    public Form1()
    {
    InitializeComponent();
    txtpatalla2.Visible = false;
    txtpatalla2.Enabled = false;
    txtpatalla.Enabled = false;
    lblcalc.Visible = false;
    }

    private void button3_Click(object sender, EventArgs e)
    {

    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void button3_Click_1(object sender, EventArgs e)
    {

    if (dec == 1)
    {
    total = Convert.ToDouble(txtpatalla.Text += ",0");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else if (men == 1)
    {
    total = Convert.ToDouble(txtpatalla.Text += "-0");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else
    {
    total = Convert.ToDouble(txtpatalla.Text += "0");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }

    dec = 0;
    men = 0;
    }

    private void btnuno_Click(object sender, EventArgs e)
    {

    if (dec == 1)
    {
    total =Convert.ToDouble(txtpatalla.Text += ",1");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else if (men == 1)
    {
    total = Convert.ToDouble(txtpatalla.Text += "-1");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else
    {
    total = Convert.ToDouble(txtpatalla.Text += "1");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    dec = 0;
    men = 0;

    }

    private void btndos_Click(object sender, EventArgs e)
    {

    if (dec == 1)
    {
    total =Convert.ToDouble(txtpatalla.Text += ",2");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else if (men == 1)
    {
    total = Convert.ToDouble(txtpatalla.Text += "-2");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else
    {
    total = Convert.ToDouble(txtpatalla.Text += "2");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    dec = 0;
    men = 0;
    }

    private void btntres_Click(object sender, EventArgs e)
    {

    if (dec == 1)
    {
    total =Convert.ToDouble(txtpatalla.Text += ",3");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else if (men == 1)
    {
    total = Convert.ToDouble(txtpatalla.Text += "-3");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else
    {
    total = Convert.ToDouble(txtpatalla.Text += "3");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    dec = 0;
    men = 0;
    }

    private void btncuatro_Click(object sender, EventArgs e)
    {

    if (dec == 1)
    {
    total =Convert.ToDouble(txtpatalla.Text += ",4");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else if (men == 1)
    {
    total = Convert.ToDouble(txtpatalla.Text += "-4");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else
    {
    total = Convert.ToDouble(txtpatalla.Text += "4");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    dec = 0;
    men = 0;
    }

    private void btncinco_Click(object sender, EventArgs e)
    {

    if (dec == 1)
    {
    total =Convert.ToDouble(txtpatalla.Text += ",5");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else if (men == 1)
    {
    total = Convert.ToDouble(txtpatalla.Text += "-5");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else
    {
    total = Convert.ToDouble(txtpatalla.Text += "5");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    dec = 0;
    men = 0;
    }

    private void btnseis_Click(object sender, EventArgs e)
    {

    if (dec == 1)
    {
    total =Convert.ToDouble(txtpatalla.Text += ",6");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else if (men == 1)
    {
    total = Convert.ToDouble(txtpatalla.Text += "-6");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else
    {
    total = Convert.ToDouble(txtpatalla.Text += "6");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    dec = 0;
    men = 0;
    }

    private void btnsiete_Click(object sender, EventArgs e)
    {

    if (dec == 1)
    {
    total =Convert.ToDouble(txtpatalla.Text += ",7");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else if (men == 1)
    {
    total = Convert.ToDouble(txtpatalla.Text += "-7");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else
    {
    total = Convert.ToDouble(txtpatalla.Text += "7");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    dec = 0;
    men = 0;
    }

    private void btnocho_Click(object sender, EventArgs e)
    {

    if (dec == 1)
    {
    total = Convert.ToDouble(txtpatalla.Text += ",8");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else if (men == 1)
    {
    total = Convert.ToDouble(txtpatalla.Text += "-8");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else
    {
    total = Convert.ToDouble(txtpatalla.Text += "8");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    dec = 0;
    men = 0;
    }

    private void btnnueve_Click(object sender, EventArgs e)
    {

    if (dec == 1)
    {
    total = Convert.ToDouble(txtpatalla.Text += ",9");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else if (men == 1)
    {
    total = Convert.ToDouble(txtpatalla.Text += "-9");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else
    {
    total = Convert.ToDouble(txtpatalla.Text += "9");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    dec = 0;
    men = 0;
    }

    private void btnsuma_Click(object sender, EventArgs e)
    {
    if (resta >= 1)
    {
    total = cal2 - total;
    resta = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);

    }



    else if (suma >= 1)
    {
    total = cal1 + total;
    suma = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);
    }


    else if (multiplicacion >= 1)
    {
    total = cal3 * total;
    multiplicacion = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);
    }

    else if (division >= 1)
    {
    total = cal4 / total;
    division = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);
    }

    txtpatalla.Text = "";

    if (suma == 0)
    { }
    else if (suma > 0)
    {
    total = cal1 + total;
    }
    lblcalc.Text = Convert.ToString(total);
    txtpatalla.Visible = false;
    txtpatalla2.Visible = true;
    txtpatalla2.Text = Convert.ToString(total);



    cal1 = total;




    total = 0;
    suma++;
    dec = 0;

    }

    private void btnigual_Click(object sender, EventArgs e)
    {
    if (resta >= 1)
    {
    total = cal2-total;
    resta = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);

    }



    else if (suma >= 1)
    {
    total = cal1 + total;
    suma = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);
    }


    else if (multiplicacion >= 1)
    {
    total = cal3 * total;
    multiplicacion = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);
    }

    else if (division >= 1)
    {
    total = cal4 / total;
    division = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);
    }
    dec = 0;


    }

    private void btnresta_Click(object sender, EventArgs e)
    {
    if (resta >= 1)

    {
    total = cal2 - total;
    resta = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);

    }



    else if (suma >= 1)

    {
    total = cal1 + total;
    suma = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);
    }


    else if (multiplicacion >= 1)
    {
    total = cal3 * total;
    multiplicacion = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);

    }
    else if (division >= 1)
    {
    total = cal4 / total;
    division = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);

    }

    txtpatalla.Text = "";
    if (resta == 0)
    { }
    else if (resta > 0)
    {
    total = cal2-total;
    }
    lblcalc.Text = Convert.ToString(total);
    txtpatalla.Visible = false;
    txtpatalla2.Visible = true;
    txtpatalla2.Text = Convert.ToString(total);


    cal2 = total;



    total = 0;
    resta++;
    dec = 0;

    }

    private void btnmultiplica_Click(object sender, EventArgs e)
    {
    if (resta >= 1)
    {
    total = cal2 - total;
    resta = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);

    }
    else if (suma >= 1)
    {
    total = cal1 + total;
    suma = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);

    }
    else if (multiplicacion >= 1)
    {
    total = cal3 * total;
    multiplicacion = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);

    }
    else if (division >= 1)
    {
    total = cal4 / total;
    division = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);

    }
    txtpatalla.Text = "";
    if (multiplicacion == 0)
    { }
    else if (multiplicacion > 0)
    {
    total = cal3 * total;
    }
    lblcalc.Text = Convert.ToString(total);
    txtpatalla.Visible = false;
    txtpatalla2.Visible = true;
    txtpatalla2.Text = Convert.ToString(total);


    cal3 = total;

    total = 0;
    multiplicacion++;
    dec = 0;
    }

    private void btndibide_Click(object sender, EventArgs e)
    {
    if (resta >= 1)
    {
    total = cal2 - total;
    resta = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);

    }
    else if (suma >= 1)
    {
    total = cal1 + total;
    suma = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);


    }
    else if (multiplicacion >= 1)
    {
    total = cal3 * total;
    multiplicacion = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);

    }
    else if (division >= 1)
    {
    total = cal4 / total;
    division = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);

    }
    txtpatalla.Text = "";
    if (division == 0)
    { }
    else if (division > 0)
    {
    total = cal4 / total;
    }
    lblcalc.Text = Convert.ToString(total);
    txtpatalla.Visible = false;
    txtpatalla2.Visible = true;
    txtpatalla2.Text = Convert.ToString(total);


    cal4 = total;

    total = 0;
    division++;
    dec = 0;

    }

    private void button2_Click(object sender, EventArgs e)
    {
    dec++;

    }

    private void btnc_Click(object sender, EventArgs e)
    {

    cal1=0;
    cal2 = 0;
    cal3 = 0;
    cal4 = 0;
    total = 0;
    suma = 0;
    resta = 0;
    multiplicacion = 0;
    division = 0;
    dec = 0;
    txtpatalla.Text = "";
    txtpatalla2.Text = "";
    txtpatalla2.Visible = false;
    }

    private void button10_Click(object sender, EventArgs e)
    {
    men++;
    }

    private void copiarCtrlCToolStripMenuItem_Click(object sender, EventArgs e)
    {

    }

    private void cerrarToolStripMenuItem1_Click(object sender, EventArgs e)
    {
    Application.Exit();
    }

    private void msgToolStripMenuItem_Click(object sender, EventArgs e)
    {
    MessageBox.Show("No me hago responsable por el mal funcionamiento XD!!!");
    }
    private void btnuno_ASCII10100001(object sender, EventArgs e)
    {
    if (dec == 0)
    {
    total = Convert.ToDouble(txtpatalla.Text += "1");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else
    {
    total = Convert.ToDouble(txtpatalla.Text += ",1");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    dec = 0;
    }
    }


    }
    a y una fotito :

    Bueno no e programado aun los botones de on off, wl boton % y el 1/x estan porque copie la interfas grafica de la calculadora de windows pero no los programe, pero funcionan todos los numeros y los botones + - * / . +/- y el C que vuleve atras todo.Bueno lo que quiero hacer ahora es que al apretar las teclas del teclado numerico cada tecla tenga asignado un boton Ej.: apreto el "1" y se aprete el boton en el form que corresponda al 1. Para resumir como hace la calculadora de windows, si alguno sabe algun forma de hacerlo creo que e llegado a algo pero no estoy seguro, por el form tiene todo Ej: "private void btnuno_Click" yo creo que si en vez de decir que todo lo que esta abajo de eso pase cuando se haga click pase cuando se aprete la tecla haria lo que yo quiero, pero no se el nombre de las teclas en C# supongo que es en ASCII pero no se . Agradesco toda ayuda.

    Saludos y suerte.
    Citar  
     

  2. #2  
    Avanzado
    Fecha de ingreso
    Jun 2006
    Ubicación
    Donde vivo
    Mensajes
    338
    Descargas
    0
    Uploads
    0
    Pues esta bien, yo nunca he programado en C#, pero viendo la sintaxis no parece que tenga ningun fallo.
    Escrito por McLik:
    lo hice sin ayuda
    lo hice de cero
    no vi nunca el codigo ya hecho de una calculadora
    copie la interfas grafica de la calculadora de windows
    ¿Que ocurre? ¡¡COPION!!

    Salu2.
    Ojo por ojo y el mundo se quedará ciego.
    Citar  
     

  3. #3  
    Medio
    Fecha de ingreso
    Jul 2007
    Mensajes
    111
    Descargas
    0
    Uploads
    0
    bueno copie solo la la interfas , es como si en ves de sacarlo de la calculadora de windows lo sacara de una calculadora domestica, solo eso, tampoco es que le e robado la interfas grafica a windows. Lo importante que toda la logica la e hecho solo .
    Gracias por aportar comentarios al respecto,me caen bien ya que la calculadora la hice para el foro y bueno para practicar tambien .

    Saludos y suerte
    Citar  
     

  4. #4  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    Hola buenas! antes de nada decirte que buen trabajo jejeje, se ve que le has dedicado tiempo, aunque personalmente no lo hubiera implementado asi... jejeje. Y para ser la versión 1.0 esta bastante bien

    Podrias hacer mas legible el código, y ahorrarte algunas lineas, por ejemplo:

    private void btnuno_Click(object sender, EventArgs e)
    {

    if (dec == 1)
    {
    total =Convert.ToDouble(txtpatalla.Text += ",1");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else if (men == 1)
    {
    total = Convert.ToDouble(txtpatalla.Text += "-1");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    else
    {
    total = Convert.ToDouble(txtpatalla.Text += "1");
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;
    }
    dec = 0;
    men = 0;

    }
    Lo cambiaría por:

    private void btnuno_Click(object sender, EventArgs e)
    {

    if (dec == 1)
    {
    total =Convert.ToDouble(txtpatalla.Text += ",1");
    }
    else if (men == 1)
    {
    total = Convert.ToDouble(txtpatalla.Text += "-1");
    }
    else
    {
    total = Convert.ToDouble(txtpatalla.Text += "1");
    }
    dec = 0;
    men = 0;
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;

    }

    ya que estas dos ultimas lineas se van a ejecutar siempre, sea cual sea la guarda del IF por la que se entre

    En cuanto a lo de pulsar una tecla numerica del teclado, y que simule lo mismo que si pulsara el botón correspondiente de tu calculadora, puedes hacerlo de muchas maneras. Bien pasando el foco al cuadro de texto y éste automaticamente escribe el valor, o mas elegante (la que yo usaria), sería usando un evento del control (del tipo "OnKeyDown" o "OnKeyPress").

    Puedes hacerlo como quieras, de todas formas, para lo de obtener el código de una tecla tienes una funcion de la API de Windows, llamada VkKeyScan, que le pasas el caracter en cuestión y devuelve el valor correspondiente a su Virtual Key. Por ejemplo:

    VkKeyScan('a') ---> devuelve 65
    VkKeyScan('z') ---> devuelve 90
    VkKeyScan('1') ---> devuelve 49
    VkKeyScan('2') ---> devuelve 50

    Un saludo y suerte.
    Citar  
     

  5. #5  
    Medio
    Fecha de ingreso
    Jul 2007
    Mensajes
    111
    Descargas
    0
    Uploads
    0
    Siiiii eso es lo que queria muchas gracias por el dato, lo que paso es que como fue algo que lo hice medio rapido se me paso, eso esta mas claro que el agua, como vos lo decis, la verdad muchas gracias

    Saludos y suerte
    Citar  
     

  6. #6  
    Medio
    Fecha de ingreso
    Jul 2007
    Mensajes
    111
    Descargas
    0
    Uploads
    0
    es sacado eso que me has dicho:

    private void btnuno_Click(object sender, EventArgs e)
    {

    if (dec == 1)
    {
    total =Convert.ToDouble(txtpatalla.Text += ",1");
    }
    else if (men == 1)
    {
    total = Convert.ToDouble(txtpatalla.Text += "-1");
    }
    else
    {
    total = Convert.ToDouble(txtpatalla.Text += "1");
    }
    dec = 0;
    men = 0;
    txtpatalla.Visible = true;
    txtpatalla2.Visible = false;

    }
    y ademas :
    if (resta >= 1)
    {
    total = cal2 - total;
    resta = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);

    }



    else if (suma >= 1)
    {
    total = cal1 + total;
    suma = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);
    }


    else if (multiplicacion >= 1)
    {
    total = cal3 * total;
    multiplicacion = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);
    }

    else if (division >= 1)
    {
    total = cal4 / total;
    division = 0;
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);
    }
    por esto:
    if (resta >= 1)
    {
    total = cal2-total;
    resta = 0;


    }



    else if (suma >= 1)
    {
    total = cal1 + total;
    suma = 0;

    }


    else if (multiplicacion >= 1)
    {
    total = cal3 * total;
    multiplicacion = 0;

    }

    else if (division >= 1)
    {
    total = cal4 / total;
    division = 0;

    }
    txtpatalla.Text = Convert.ToString(total);
    lblcalc.Text = Convert.ToString(total);
    en todas las partes donde se usa, ya voy a ver mas para sacar mas cosas, peor no lo voy a publicar porque sino este post va a durar hasta el 2008
    Citar  
     

Temas similares

  1. Hackear Calculadora CASIO fx-82MS
    Por 4v7n42 en el foro OFF-TOPIC
    Respuestas: 5
    Último mensaje: 17-09-2009, 05:59
  2. Sobre Calculadora Bb5
    Por CHARLI55 en el foro TELEFONÍA MOVIL
    Respuestas: 16
    Último mensaje: 03-03-2008, 22:53
  3. Excel 2007, humillado por la calculadora
    Por ABODUJANA en el foro OFF-TOPIC
    Respuestas: 4
    Último mensaje: 19-11-2007, 18:14
  4. Calculadora de Fuente de alimentacion
    Por Ktorce en el foro HARDWARE
    Respuestas: 0
    Último mensaje: 13-03-2007, 19:49
  5. kien me hecha una manito con aviplay?
    Por L3go en el foro LINUX - MAC - OTROS
    Respuestas: 9
    Último mensaje: 20-05-2002, 20:58

Marcadores

Marcadores

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •