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);
    }
}

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

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

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

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

(631)
Ek mtc:获取TPM的公共EK:前导/尾随位的含义
上一篇
C 4 h 9 oh:如何将VP9webm h264MP4和h265MP4嵌入到单个视频标签中
下一篇

相关推荐

  • Cree n:在 C#visualstudio中创建档案

    关于Cree n的问题,在creedos中经常遇到,Quisiera saber como poder crear las clases y dos archivos a su vez,que el usuario pueda elegir a cual entrar o ver:…

    2023-10-17 08:22:18
    0 30 85
  • C#decimal:Cómoidentificarunnumerodecimal

    关于C#decimal的问题,在numeros decimal中经常遇到,埃斯塔卡 · 哈西恩多是我的梦想。…

    2023-10-24 14:16:39
    0 52 69
  • comeandgetyourlove音乐爱就在你身边

    Come and Get Your Love是一首热门的歌曲,由美国摇滚乐队Redbone演唱。这首歌曲于1974年发行,被收录在他们的专辑《Wovoka》中。歌曲以放克曲风为主,旋律活泼,曲调悠扬,歌词朗朗上口,深受歌迷喜爱。…

    2023-06-29 07:47:31
    0 88 54
  • css预编译器: center;}

    CSS预编译器是一种用于构建CSS的工具,它可以将CSS代码转换为更易于管理和维护的格式。它们可以使CSS代码更加灵活,更易于重用,并且可以帮助开发人员更轻松地组织和管理CSS代码。…

    2023-04-30 05:19:08
    0 47 12
  • python中predict函数参数:如何使用Python的predict函数进行机器学习预测

    示例示例predict函数是scikit-learn中的一个函数,用于预测新样本的输出结果。参数:…

    2023-03-30 08:03:12
    0 23 81
  • codeblocks无法编译运行:Codeblocks无法编译运行的解决方案

    codeblocks无法编译运行的原因可能有很多,下面以一段简单的C语言代码为例,来说明codeblocks无法编译运行的情况。…

    2023-07-11 08:01:55
    0 18 51
  • gitlab ci 自动化部署:使用 Gitlab CI 自动化部署提升开发效率

    GitLab CI 自动化部署是一种基于 GitLab CI/CD 的自动化部署方案,可以实现快速、可靠的部署流程。它将代码提交、构建、测试、部署等步骤集成在一起,使得开发者可以更加轻松地完成部署工作。下面是一个示例 .gitlab-ci.yml 文件,可以帮助你实现 GitLab CI 自动化部署:…

    2023-05-20 05:45:38
    0 76 35
  • xl和xe汽车cvt:探索XL和XE汽车的CVT技术优势

    XL和XE汽车CVT是一种变速器,它使用液力变矩器代替传统的机械变速器,以达到更高的效率。它的工作原理是,当发动机输出功率时,液力变矩器就会将这些功率转换为液压能量,然后将能量传递到变速器的输出轴上,从而实现变速。…

    2023-05-16 07:36:03
    0 59 35

发表评论

登录 后才能评论

评论列表(68条)