使用C# WPF写的一个简单计算器

8 篇文章 0 订阅

计算器示例
功能介绍:
功能很简单,只有计算加减乘除的功能,以及归零。
因为最近一直再写WPF,所以用WPF来具体实现。
页面画的较为潦草,但也还能过眼一瞧。
代码很简单,具体注释我就不写了,功能实现写了两种实现代码,一种使用的较为多的事件,另外一种单事件使用的Switch来实现的,属于看一眼就能明白的代码,我就不过多讲解了。
事件:Button (按钮)Click event(单击事件)

示例图1
在这里插入图片描述
示例图2
在这里插入图片描述

废话不多说,以下为具体实现代码:
xaml 代码 (window1.xaml)

      <Grid>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <WrapPanel Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="5">
            <TextBox x:Name="textbox1"  Width="400" FontSize="50"/>
        </WrapPanel>
        <WrapPanel Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3">
            <Button Width="100" x:Name="str1" Height="100" Content="1" FontSize="40" Click="Button_Click"/>
            <Button Width="100" x:Name="str2" Height="100" Content="2" FontSize="40" Click="Button_Click"/>
            <Button Width="100" x:Name="str3" Height="100" Content="3" FontSize="40" Click="Button_Click"/>
            <Button Width="100" x:Name="strjia" Height="100" Content="+" FontSize="40" Click="Button_Click"/>
        </WrapPanel>
        <WrapPanel Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3">
            <Button Width="100" x:Name="str4" Height="100" Content="4" FontSize="40" Click="Button_Click"/>
            <Button Width="100" x:Name="str5" Height="100" Content="5" FontSize="40" Click="Button_Click"/>
            <Button Width="100" x:Name="str6" Height="100" Content="6" FontSize="40" Click="Button_Click"/>
            <Button Width="100" x:Name="strjian" Height="100" Content="-" FontSize="40" Click="Button_Click"/>
        </WrapPanel>
        <WrapPanel Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="3">
            <Button Width="100" x:Name="str7" Height="100" Content="7" FontSize="40" Click="Button_Click"/>
            <Button Width="100" x:Name="str8" Height="100" Content="8" FontSize="40" Click="Button_Click"/>
            <Button Width="100" x:Name="str9" Height="100" Content="9" FontSize="40" Click="Button_Click"/>
            <Button Width="100" x:Name="strcheng" Height="100" Content="x" FontSize="40" Click="Button_Click"/>
        </WrapPanel>
        <WrapPanel Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="3">
            <Button Width="100" x:Name="strc" Height="100" Content="C" FontSize="40" Click="Button_Click"/>
            <Button Width="100" x:Name="str0" Height="100" Content="0" FontSize="40" Click="Button_Click"/>
            <Button Width="100" x:Name="str" Height="100" Content="=" FontSize="40" Click="Button_Click"/>
            <Button Width="100" x:Name="strchu" Height="100" Content="÷" FontSize="40" Click="Button_Click"/>
        </WrapPanel>
    </Grid>

C# 代码(window1.xaml.cs)

   public string one;
   private void Button_Click(object sender, RoutedEventArgs e)
        {
            var v = sender as Button;
            if (textbox1.Text=="0")
            {
                textbox1.Text = " ";
            }
            one =textbox1.Text;
            switch (v.Content.ToString())
            {
                case "1":
                    textbox1.Text += "1";
                    break;
                case "2":
                    textbox1.Text += "2";
                    break;
                case "3":
                    textbox1.Text += "3";
                    break;
                case "4":
                    textbox1.Text += "4";
                    break;
                case "5":
                    textbox1.Text += "5";
                    break;
                case "6":
                    textbox1.Text += "6";
                    break;
                case "7":
                    textbox1.Text += "7";
                    break;
                case "8":
                    textbox1.Text += "8";
                    break;
                case "9":
                    textbox1.Text += "9";
                    break;
                case "0":
                    if (textbox1.Text!="0")
                    {
                        textbox1.Text += "0";
                    }
                    else
                    {
                        textbox1.Text = "0";
                    }
                    break;
                case "+":
                    textbox1.Text += "+";
                    break;
                case "-":
                    textbox1.Text += "-";
                    break;
                case "x":
                    textbox1.Text += "x";
                    break;
                case "÷":
                    textbox1.Text += "÷";
                    break;
                case "C":
                    textbox1.Text = " ";
                    break;
                case "=":
                 textbox1.Text= one+"="+ query(textbox1.Text).ToString();
                    break;
            }
        }
        public int query(string str)
        {
            if (str.Contains("+"))
            {
                char[] st = { '+', '-', 'x', '÷' };
                string[] name = str.Split(st, StringSplitOptions.RemoveEmptyEntries);
                return Convert.ToInt32(name[0]) + Convert.ToInt32(name[1]);
            }
            if (str.Contains("-"))
            {
                char[] st = { '+', '-', 'x', '÷' };
                string[] name = str.Split(st, StringSplitOptions.RemoveEmptyEntries);
                return Convert.ToInt32(name[0]) - Convert.ToInt32(name[1]);
            }
            if (str.Contains("x"))
            {
                char[] st = { '+', '-', 'x', '÷' };
                string[] name = str.Split(st, StringSplitOptions.RemoveEmptyEntries);
                return Convert.ToInt32(name[0]) * Convert.ToInt32(name[1]);
            }
            if (str.Contains("÷"))
            {
                char[] st = { '+', '-', 'x', '÷' };
                string[] name = str.Split(st, StringSplitOptions.RemoveEmptyEntries);
                return Convert.ToInt32(name[0]) / Convert.ToInt32(name[1]);
            }
            return 0;
        }

示例2

 <Grid>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <WrapPanel Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="5">
            <TextBox x:Name="textbox1"  Width="400" FontSize="50"/>
            <TextBox x:Name="textbox2" Width="270" FontSize="30"/>
            
        </WrapPanel>
        <WrapPanel Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3">
            <Button Width="100" Height="100" Content="1" FontSize="40" Click="Button_Click"/>
            <Button Width="100" Height="100" Content="2" FontSize="40" Click="Button_Click_1"/>
            <Button Width="100" Height="100" Content="3" FontSize="40" Click="Button_Click_2"/>
            <Button Width="100" Height="100" Content="+" FontSize="40" Click="Button_Click_10"/>
        </WrapPanel>
        <WrapPanel Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3">
            <Button Width="100" Height="100" Content="4" FontSize="40" Click="Button_Click_3"/>
            <Button Width="100" Height="100" Content="5" FontSize="40" Click="Button_Click_4"/>
            <Button Width="100" Height="100" Content="6" FontSize="40" Click="Button_Click_5"/>
            <Button Width="100" Height="100" Content="-" FontSize="40" Click="Button_Click_13"/>
        </WrapPanel>
        <WrapPanel Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="3">
            <Button Width="100" Height="100" Content="7" FontSize="40" Click="Button_Click_6"/>
            <Button Width="100" Height="100" Content="8" FontSize="40" Click="Button_Click_7"/>
            <Button Width="100" Height="100" Content="9" FontSize="40" Click="Button_Click_8"/>
            <Button Width="100" Height="100" Content="x" FontSize="40" Click="Button_Click_14"/>
        </WrapPanel>
        <WrapPanel Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="3">
            <Button Width="100" Height="100" Content="C" FontSize="40" Click="Button_Click_12"/>
            <Button Width="100" Height="100" Content="0" FontSize="40" Click="Button_Click_9"/>
            <Button Width="100" Height="100" Content="=" FontSize="40" Click="Button_Click_11"/>
            <Button Width="100" Height="100" Content="÷" FontSize="40" Click="Button_Click_15"/>
        </WrapPanel>
    </Grid>

代码虽然很low,但是功能有的,以下代码仅供参考,不建议模仿。

 public string number;
        public string  jia ;
        public bool jiatrue =false;
        public bool jianfa = false;
        public bool chengfa = false;
        public bool chufa = false;
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (number=="0")
            {
                number ="1";
                textbox1.Text = number;
            }
            else
            {
                number += 1;
                textbox1.Text = number;
            }
         
            
         
        }

        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            if (number == "0")
            {
                number = "2";
                textbox1.Text = number;
            }
            else
            {
                number += 2;
                textbox1.Text = number;
            }
        }

        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            if (number == "0")
            {
                number = "3";
                textbox1.Text = number;
            }
            else
            {
                number += 3;
                textbox1.Text = number;
            }
        }

        private void Button_Click_3(object sender, RoutedEventArgs e)
        {
            if (number == "0")
            {
                number = "4";
                textbox1.Text = number;
            }
            else
            {
                number += 4;
                textbox1.Text = number;
            }
        }

        private void Button_Click_4(object sender, RoutedEventArgs e)
        {
            if (number == "0")
            {
                number = "5";
                textbox1.Text = number;
            }
            else
            {
                number += 5;
                textbox1.Text = number;
            }
        }

        private void Button_Click_5(object sender, RoutedEventArgs e)
        {
            if (number == "0")
            {
                number = "6";
                textbox1.Text = number;
            }
            else
            {
                number += 6;
                textbox1.Text = number;
            }
        }

        private void Button_Click_6(object sender, RoutedEventArgs e)
        {
            if (number == "0")
            {
                number = "7";
                textbox1.Text = number;
            }
            else
            {
                number += 7;
                textbox1.Text = number;
            }
        }

        private void Button_Click_7(object sender, RoutedEventArgs e)
        {
            if (number == "0")
            {
                number = "8";
                textbox1.Text = number;
            }
            else
            {
                number += 8;
                textbox1.Text = number;
            }
        }

        private void Button_Click_8(object sender, RoutedEventArgs e)
        {
            if (number == "0")
            {
                number = "9";
                textbox1.Text = number;
            }
            else
            {
                number += 9;
                textbox1.Text = number;
            }
        }

        private void Button_Click_9(object sender, RoutedEventArgs e)
        {
            if (number == "0")
            {
                number = "0";
                textbox1.Text = number;
            }
            else
            {
                number += 0;
                textbox1.Text = number;
            }
        }
        //加法计算
        private void Button_Click_10(object sender, RoutedEventArgs e)
        {
            textbox2.Text = " ";
            jia = number;
            number = " ";
            textbox1.Text = number;
            textbox2.Text = jia + "+";
            jiatrue = true;
            jianfa = false;
            chengfa = false;
            chufa = false;

        }
        // 减法计算
        private void Button_Click_13(object sender, RoutedEventArgs e)
        {
            textbox2.Text = " ";
            jia = number;
            number = " ";
            textbox1.Text = number;
            textbox2.Text = jia + "-";
            jiatrue = false;
            jianfa = true;
            chengfa = false;
            chufa = false;

        }
        //乘法计算
        private void Button_Click_14(object sender, RoutedEventArgs e)
        {

             
            textbox2.Text = " ";
            jia = number;
            number = " ";
            textbox1.Text = number;
            textbox2.Text = jia + "x";

            jiatrue = false;
            jianfa = false;
            chengfa = true;
            chufa = false;
        }
        // 除法计算
        private void Button_Click_15(object sender, RoutedEventArgs e)
        {
            textbox2.Text = " ";
            jia = number;
            number = " ";
            textbox1.Text = number;
            textbox2.Text = jia + "÷";
            jiatrue = false;
            jianfa = false;
            chengfa = false;
            chufa = true;
        }
        //换算结果
        private void Button_Click_11(object sender, RoutedEventArgs e)
        {
            if (jia==" ")
            {
                MessageBox.Show("输入有误");
                return;
            }
            
            if (jiatrue==true)
            {
                int a= Convert.ToInt32(jia);
                int b= Convert.ToInt32(number);
                var num = Convert.ToInt32(a + b);
                textbox1.Text = num.ToString();
                textbox2.Text = a + "+"+b+"="+Convert.ToInt32(a+b).ToString();
                number = num.ToString();
            }
            if (jianfa==true)
            {
                int a = Convert.ToInt32(jia);
                int b = Convert.ToInt32(number);
                var num = Convert.ToInt32(a - b);
                textbox1.Text = num.ToString();
                textbox2.Text = a + "-" + b + "=" + Convert.ToInt32(a - b).ToString();
               
            }
            if (chengfa==true)
            {
                int a = Convert.ToInt32(jia);
                int b = Convert.ToInt32(number);
                var num = Convert.ToInt32(a * b);
                textbox1.Text = num.ToString();
                textbox2.Text = a + "x" + b + "=" + Convert.ToInt32(a * b).ToString();
            }
            if (chufa==true)
            {
                int a = Convert.ToInt32(jia);
                int b = Convert.ToInt32(number);
                var num = Convert.ToInt32(a / b);
                textbox1.Text = num.ToString();
                textbox2.Text = a + "÷" + b + "=" + Convert.ToInt32(a / b).ToString(); 
            }
        }

        private void Button_Click_12(object sender, RoutedEventArgs e)
        {
            textbox1.Text = "0";
            jia = "0";
            number = "0";
            textbox2.Text = " ";

        }
  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值