C#编写计算器:C# 基本计算器(simple calculator in c# visual studio 2019)

IM 新的 C #,我需要这方面的帮助。

我做一个基本的计算器,我不能做倍数操作数计算。

例如:1 + 1 + 1 = 3。

如果我尝试这个,我得到 2 作为结果导致其添加最后 2 个值。

这是密码。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace calculadora
{
 public partial class Form1 : Form
  {
    double operador1 = 0;
    double operador2 = 0;
    char operando;
    double  resultado = 0;
    double extra;
    public Form1()
    {
        InitializeComponent();
    }
    private void on1_Click(object sender, EventArgs e)
    {
        lblpantalla.Text += "1";
    }
    private void on2_Click(object sender, EventArgs e)
    {
        lblpantalla.Text += "2";
    }
    private void on3_Click(object sender, EventArgs e)
    {
        lblpantalla.Text += "3";
    }
    private void on4_Click(object sender, EventArgs e)
    {
        lblpantalla.Text += "4";
    }
    private void on5_Click(object sender, EventArgs e)
    {
        lblpantalla.Text += "5";
    }
    private void on6_Click(object sender, EventArgs e)
    {
        lblpantalla.Text += "6";
    }
    private void on7_Click(object sender, EventArgs e)
    {
        lblpantalla.Text += "7";
    }
    private void on8_Click(object sender, EventArgs e)
    {
        lblpantalla.Text += "8";
    }
    private void on9_Click(object sender, EventArgs e)
    {
        lblpantalla.Text += "9";
    }
    private void on0_Click(object sender, EventArgs e)
    {
        lblpantalla.Text += "0";
    }
    private void on_clear_Click(object sender, EventArgs e)
    {
        lblpantalla.Text = string.Empty;
        operador1 = 0;
        operador2 = 0;
    }
    private void on_plus_Click(object sender, EventArgs e)
    {
        operador1 = Convert.ToDouble(lblpantalla.Text);
        operando = '+';
        lblpantalla.Text = string.Empty;
    }
    private void on_minus_Click(object sender, EventArgs e)
    {
        operador1 = Convert.ToDouble(lblpantalla.Text);
        operando = '-';
        lblpantalla.Text = string.Empty; 
    }
    private void on_multy_Click(object sender, EventArgs e)
    {
        operador1 = Convert.ToDouble(lblpantalla.Text);
        operando = '*';
        lblpantalla.Text = string.Empty; 
    }
    private void on_divide_Click(object sender, EventArgs e)
    {
        operador1 = Convert.ToDouble(lblpantalla.Text);
        operando = '/';
        lblpantalla.Text = string.Empty; 
    }
    private void on_equal_Click(object sender, EventArgs e)
    {
        try
        {
            operador2 = Convert.ToDouble(lblpantalla.Text);
            double ug;
            switch (operando)
            {
                case '+': //suma
                    resultado = (operador1 + operador2);
                    break;
                case '-': //resta
                    resultado = (operador1 - operador2);
                    break;
                case '*': //multiply
                    resultado = (operador1 * operador2);
                    break;
                case '/': //division
                    if (operador2 != 0)
                    {
                       resultado = (operador1 / operador2);
                    }
                    else
                    {
                        lblpantalla.Text = "Can't divide by 0";
                    }
                    break;
            }
            lblpantalla.Text = resultado.ToString();
        }
        catch (Exception ex)
        {
            MessageBox.Show("Unexpected error occured. Details: " +
                ex.Message);
        } 
    }
    private void on_dot_Click(object sender, EventArgs e)
    {
        if (lblpantalla.Text.Contains("."))
        {
            return;
        }
            lblpantalla.Text += ".";
    }
    private void on_reciproco_Click(object sender, EventArgs e)
    {
        double opera1;
        if (double.TryP(lblpantalla.Text, out opera1))
        {
            lblpantalla.Text = (-opera1).ToString();
        } 
    }
    private void on_recipro_Click(object sender, EventArgs e)
    {
        double opera1;
        if (double.TryP(lblpantalla.Text, out opera1))
        {
            lblpantalla.Text = (1/opera1).ToString();
        } 
    }
}

}

提前谢谢。

1

你应该做这样的事情:

on_plus_Click{
    //code from your method that need to be refactored
    on_equal_Click(){
        if(there is operando 1, and lblpantalla and operando)
        switch (operando)
            {
                case '+': //suma
                    operador1 = (operador1 + lblpantalla);
    }
}

你得到了太多的负面观点,因为这不是技术问题,它几乎是你要求别人为你做编程。

想想你的计算器可以在的状态:https://www.clear.rice.edu/comp212/06-spring/labs/13/

这应该是编程的乐趣的一部分,试图解决你自己的东西:) 祝你好运

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(122)
Ek mtc:获取TPM的公共EK:前导/尾随位的含义
上一篇
Cdr轮廓转换为对象:将 PDF文本转换为轮廓(convert pdf text)
下一篇

相关推荐

  • 弱受by:弱参考理解(weak reference c#)

    关于弱受by的问题,在weak reference c#中经常遇到,我想创建所有的 ViewModels 的字典。…

    2024-04-21 12:45:52
    0 29 84
  • 乘法表c语言编程:C# 乘法表(10x10 times table chart)

    关于乘法表c语言编程的问题,在10x10 times table chart中经常遇到,所以我试图在 C # 中打印一个乘法表,但我不能完全弄清楚如何得到我需要的。…

    2024-05-22 09:42:01
    0 17 33
  • 电脑只有c盘怎么分区:C#列出所有分区 包括 Microsoft保留分区

    关于电脑只有c盘怎么分区的问题,在partition msr reserved中经常遇到,关于C#列出所有分区 包括 Microsoft保留分区的编程代码示例如下。…

    2024-01-22 11:55:52
    0 88 65
  • C盘分区工具:C#列出所有分区 包括 Microsoft保留分区

    关于C盘分区工具的问题,在partition msr reserved中经常遇到,关于C#列出所有分区 包括 Microsoft保留分区的编程代码示例如下。…

    2024-06-05 16:19:27
    0 14 52
  • C13和c14的区别是什么:C#和Java之间的主要区别是什么 (difference between c# and java)

    关于C13和c14的区别是什么的问题,在difference between c# and java中经常遇到,我只想澄清一件事。这不是关于哪一个更好的问题,那是我留给别人讨论的部分。我不在乎。我在求职面试中被问到这个问题,我认为多学一点可能会有用。…

    2024-05-14 05:19:38
    0 23 31
  • C语言编写简单计算器代码:使用 C# 构建简单的计算器(simple calculator code in c#)

    关于C语言编写简单计算器代码的问题,在simple calculator code in c#中经常遇到,我试图在 C # 上构建一个非常简单的计算器,我想将结果存储在变量“result”上,并通过 Console.WriteLine(result)显示它。由于某种原因,Console.WriteLine(result)是不允许的。…

    2024-02-14 08:59:39
    0 33 48
  • Friends:在Friendsof FriendsC# 中搜索

    关于Friends的问题,在searching for friends中经常遇到,我正在开发一个工具来搜索朋友,以查找其城市与该成员相同且尚未成为该成员的朋友的成员。因此,例如,如果 Mark 住在新泽西州,Nancy 也是,但 Mark 和 Nancy 目前不是朋友,但 Mark 是 Paul 的朋友,Paul 是 Alex 的朋友,Alex 是 Nancy 的朋友,因此我的搜索应该从 Mark 返回到 Nancy 的路径为“Mark-Paul-Alex-Nancy(…

    2024-04-09 07:33:44
    0 48 27
  • Cai中文意思:c#winformtravandoquadoa redecai

    关于Cai中文意思的问题,在invokar中经常遇到,Tenho um sistema em windows form que necessita de uma verifica ç ã oem loop o tempo todo.O problema que ta acontecendo é que quando a rede cai e este loop tenta conectar na base de dados a tela fica travada,e as vezes o usu á rio ate que fech…

    2024-04-20 07:20:12
    0 83 12

发表评论

登录 后才能评论

评论列表(9条)