C#/利用WPF窗口程序设计简单计算器

WPF设计简单计算器

本文中设计的计算器仅支持单次双目运算,可连续计算。


实验要求、
1、在wpf项目中编程实现一个简单计算器,具体要求如下:
1)实现+,-,*,/运算
2)可以连续进行计算。
效果如图:
在这里插入图片描述

*该程序中数字通过点击对应按钮输入,运算符包含四种常用运算,除此之外还有退格以及清空操作,输入以及运算结果在上方文本框内显示


1.首先,该程序中只涉及单次运算,所以我们可以在隐藏文件里声明两个全局变量来相应的保存operation前后两个数(字符串)。

 		string num1 = null;   //运算符之前的数
        string num2 = null;   //运算符之后的数
        string ope = null;    //运算符

2.每次键入一个位数要判断放在num1里还是num2里。

private void button1_Click(object sender, RoutedEventArgs e)
        {
   
            if (ope == null)
            {
   
                num1 += button1.Content;
                textBox.Text = num1;
            }
            else
            {
   
                num2 += button1.Content;
                textBox.Text = num2;
            }
        }

3.键入运算符是对变量ope赋值(因为是单次计算,所以运算符没必要在文本框里显示)

 private void buttonADD_Click(object sender, RoutedEventArgs e)
        {
   
            ope = "+";
        }

4.CE清空操作,将textbox中的内容以及所有变量清空

 private void buttonCE_Click(object sender, RoutedEventArgs e)
        {
   
            //if (ope == null)
            //{
   
            //    num1 = textBox.Text;
            //}
            //else
            //{
   
            //    num2 = textBox.Text;
            //}
            this.textBox.Text = "";
            num1 = null;
            num2 = null;
            ope = null;
        }

5.退格操作

 private void buttonBK_Click(object sender, RoutedEventArgs e)
        {
   
            string s = textBox.Text;
            int len = s.Length;
            if (textBox.Text != null && len >= 1)
                textBox.Text = s.Remove(len - 1);
            if (ope == null)
            {
   
                num1 = textBox.Text;
            }
            else
            {
   
                num2 = textBox.Text;
            }
        }

6.计算结果(利用switch case )

private void buttonEQ_Click(object sender, RoutedEventArgs e)
        {
   
            switch (ope)
            {
   
                case "+":
                    textBox.Text = Convert.ToString(Convert.ToDouble(num1) + Convert.ToDouble(num2));
                    break;
                case "-":
                    textBox.Text = Convert.ToString(Convert.ToDouble(num1) - Convert.ToDouble(num2));
                    break;
                case "*":
                    textBox.Text = Convert.ToString(Convert.ToDouble(num1) * Convert.ToDouble(num2));
                    break;
                case "/":
                    textBox.Text = Convert.ToString(Convert.ToDouble(num1) / Convert.ToDouble(num2));
                    break;
            }
            num1 = textBox.Text;   
            num2 = null;
            ope = null;
        }

将结果值赋给num1来实现连续计算.


效果如如下:
在这里插入图片描述


完整代码如下:
*xaml

Window x:Class="小小计算器.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="计算器" Height="382" Width="362">
    <Grid Height="335">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="48*" />
            <ColumnDefinition Width="23*" />
        </Grid.ColumnDefinitions>
        <Button Content="CE" Height="30" HorizontalAlignment="Left" Margin="62,87,0,0" Name="buttonCE" VerticalAlignment="Top" Width="41" Click="buttonCE_Click" />
        
  • 12
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值