• 计算器


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace Calculator
    {
        public partial class FormMain : Form
        {
            private string prev_num = "";  // 存储运算符前的值
            private string oper_str = "";  // 运算符
            private string end_num = "";  // 存储运算符后的值
            public FormMain()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
            }
    
            private void btn1_Click(object sender, EventArgs e)
            {
                textBox1.AppendText("1");
            }
    
            private void btn2_Click(object sender, EventArgs e)
            {
                textBox1.AppendText("2");
            }
    
            private void btn3_Click(object sender, EventArgs e)
            {
                textBox1.AppendText("3");
            }
    
            private void btn4_Click(object sender, EventArgs e)
            {
                textBox1.AppendText("4");
            }
    
            private void btn5_Click(object sender, EventArgs e)
            {
                textBox1.AppendText("5");
            }
    
            private void btn6_Click(object sender, EventArgs e)
            {
                textBox1.AppendText("6");
            }
    
            private void btn7_Click(object sender, EventArgs e)
            {
                textBox1.AppendText("7");
            }
    
            private void btn8_Click(object sender, EventArgs e)
            {
                textBox1.AppendText("8");
            }
    
            private void btn9_Click(object sender, EventArgs e)
            {
                textBox1.AppendText("9");
            }
    
            private void btnPoint_Click(object sender, EventArgs e)
            {
                textBox1.AppendText(".");
            }
            // 退格按钮
            private void btnBack_Click(object sender, EventArgs e)
            {
                string str = textBox1.Text;
                // 如果大于0就执行该操作
                if (str.Length > 0)
                {
                    textBox1.Text = str.Substring(0, str.Length - 1);
                }
            }
    
            private void btn0_Click(object sender, EventArgs e)
            {
                textBox1.AppendText("0");
            }
            // 取反操作
            private void btnSign_Click(object sender, EventArgs e)
            {
                string str = textBox1.Text;
                // 判断字符串是否包含某字符的方法有:
                // string.Contains、sring.IndexOf
                if (str.Contains("-"))
                {
                    textBox1.Text = str.Substring(1,str.Length-1);
                    btnSqrt.Enabled = true;  // 正数才能够开平方
                }
                else
                {
                    btnSqrt.Enabled = false;  // 负数不能够开平方
                    textBox1.Text = "-" + textBox1.Text;
                }
                /*
                if (str.IndexOf(".") >= 0)
                {
                    //
                }
                else
                {
                    //
                }*/
            }
            // 取倒数
            private void btnInve_Click(object sender, EventArgs e)
            {
                string str = textBox1.Text;
                // 区分有无负号
                if (str.Contains("-"))
                {
                    str = str.Substring(1, str.Length - 1);
                    double dou_num = Convert.ToDouble(str);
                    dou_num  = str_double_replace(dou_num);
                    str = "-" + dou_num.ToString();
                }
                else
                {
                    double dou_num = Convert.ToDouble(str);
                    dou_num = str_double_replace(dou_num);
                    str = dou_num.ToString();
                }
                textBox1.Text = str;
            }
            // 这个是取倒数操作
            private double str_double_replace(double num)
            {
                if (num != 0.00)
                {
                    double dou_num = 1.00 / num;
                    return dou_num;
                }
                else
                {
                    return 0.00;
                }
            }
            // 开平方操作
            private void btnSqrt_Click(object sender, EventArgs e)
            {
                double dou_num = Convert.ToDouble(textBox1.Text);
                dou_num = System.Math.Sqrt(dou_num);
                textBox1.Text = dou_num.ToString();
            }
            // 清空这一次输入的值
            private void btnClear_Click(object sender, EventArgs e)
            {
                textBox1.Text = "";
            }
            // 等于操作
            private void btnEq_Click(object sender, EventArgs e)
            {
                double prev_double;
                double end_double;
                if (prev_num.Length != 0)
                {
                    end_num = textBox1.Text;
                    // 计算前一项,区分有无负号
                    if (prev_num.Contains("-"))
                    {
                        prev_num = prev_num.Substring(1, prev_num.Length - 1);
                        prev_double = 0.00 - Convert.ToDouble(prev_num);
                    }
                    else
                    {
                        prev_double = Convert.ToDouble(prev_num);
                    }
                    // 计算后一项
                    if (end_num.Contains("-"))
                    {
                        end_num = end_num.Substring(1, end_num.Length - 1);
                        end_double = 0.00 - Convert.ToDouble(end_num);
                    }
                    else
                    {
                        end_double = Convert.ToDouble(end_num);
                    }
                    switch (oper_str)
                    {
                        case "+":
                            end_double = prev_double + end_double;
                            break;
                        case "-":
                            end_double = prev_double - end_double;
                            break;
                        case "*":
                            end_double = prev_double * end_double;
                            break;
                        case "/":
                            end_double = prev_double / end_double;
                            break;
                        case "%":
                            end_double = prev_double % end_double;
                            break;
                        default:
                            end_double = 0.0;
                            break;
                    }
                    textBox1.Text = end_double.ToString();
                }
            }
            // 加 操作
            private void btnAdd_Click(object sender, EventArgs e)
            {
                // 可能是按错符号
                if ((textBox1.Text).Length != 0)
                {
                    prev_num = textBox1.Text;  // 获取前一项
                }
                oper_str = "+";
                textBox1.Text = "";
            }
            // 减 操作
            private void btnSub_Click(object sender, EventArgs e)
            {
                // 可能是按错符号
                if ((textBox1.Text).Length != 0)
                {
                    prev_num = textBox1.Text;  // 获取前一项
                }
                oper_str = "-";
                textBox1.Text = "";
            }
            // 乘 操作
            private void btnMult_Click(object sender, EventArgs e)
            {
                // 可能是按错符号
                if ((textBox1.Text).Length != 0)
                {
                    prev_num = textBox1.Text;  // 获取前一项
                }
                oper_str = "*";
                textBox1.Text = "";
            }
            // 清空
            private void btnReset_Click(object sender, EventArgs e)
            {
                if (prev_num.Length != 0)
                {
                    prev_num = "";
                }
                if (oper_str.Length != 0)
                {
                    oper_str = "";
                }
                if (end_num.Length != 0)
                {
                    end_num = "";
                }
                textBox1.Text = "";
            }
            // 除 操作
            private void btnDivi_Click(object sender, EventArgs e)
            {
                // 可能是按错符号
                if ((textBox1.Text).Length != 0)
                {
                    prev_num = textBox1.Text;  // 获取前一项
                }
                oper_str = "/";
                textBox1.Text = "";
            }
            // 取余 操作
            private void btnPerc_Click(object sender, EventArgs e)
            {
                // 可能是按错符号
                if ((textBox1.Text).Length != 0)
                {
                    prev_num = textBox1.Text;  // 获取前一项
                }
                oper_str = "%";
                textBox1.Text = "";
            }
        }
    }
  • 相关阅读:
    20191003 尚硅谷Spring Cloud教学视频
    20190928 On Java8 第二十三章 注解
    C# 输出结果有System.Byte[]
    linux 命令
    用go run命令启动main package中的多个文件
    Docker使用入门
    Go实现mqtt服务
    MongoDB的Go语言驱动注意点
    Go实现发送解析GET与POST请求
    用Go实现RabbitMQ消息收发
  • 原文地址:https://www.cnblogs.com/namejr/p/10329691.html
Copyright © 2020-2023  润新知