zoukankan      html  css  js  c++  java
  • 【贴吧】计算器代码注释

    界面布局如下:

    代码:

    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 计算器
    
    {
        public partial class jisuanqi : Form
        {
            public jisuanqi()
            {
             
                InitializeComponent();
            }
            private int opMain = 0;        // 运算类型,其中1(加法)  2(减法)  3(乘法)  4(除法) 
            private double mainNum1 = 0;    // 存储第一个数 
            private double mainNum2 = 0;    // 存储第二个数 
            private bool isSecond = false;  // 用来判断输入的是第一个还是第二个数 
            private bool isDone = false;    // 用来判断是否按了等于按钮 
            private bool isDecimal = false; // 用来判断是否有小数 
            private bool isNokeydown = false;// 用来判断是否没输入第二个数而按了"="号键 
            private bool isKeyupclear = true;//用来判断是否按了clear键,程序开始前默认按了; 
    
            public void setText(string textest)  //设置文本框的值 
            {
                if (textest.Equals("clear"))
                {
                    textBox1.Text = "0.";
                    isSecond = false;
                    isDone = false;
                    isDecimal = false;
                    isKeyupclear = true;
                }
                else
                {
                    if (isSecond)
                    {
                        textBox1.Text = textest;
                        isSecond = false;
                        isDecimal = false;
                    }
                    else
                    {
                        if (isDone)
                        {
                            textBox1.Text = textest;
                            isDone = false;
                        }
                        else
                        {
                            if (isKeyupclear)              //对是否按下clear键的判断 
                            {
                                textBox1.Text = textest;
                                isKeyupclear = false;
                            }
                            else
                                textBox1.Text += textest;
                        }
                    }
                }
                btnEqual.Select();  //设置"="号的焦点 
            }
    
    
            public void Calc(double num1, double num2, int op)
            {
                double answer = 0;
                switch (op)         //判断所进行的运算 
                {
                    case 1:
                        answer = num1 + num2;
                        break;
                    case 2:
                        answer = num1 - num2;
                        break;
                    case 3:
                        answer = num1 * num2;
                        break;
                    case 4:
                        answer = num1 / num2;
                        break;
                    case 5:
                        answer = num1 % num2;
                        break;
                }
                setText(answer.ToString());  //显示结果 
            }
    
            //执行运算 
            private void doEquals()
            {
                if (isNokeydown)            //判断已经输入第二个数后按了"="号键 
                {
                    mainNum2 = double.Parse(textBox1.Text);
                    setText("clear");
                    Calc(mainNum1, mainNum2, opMain);
                    isDone = true;
                    isNokeydown = false;
                }
    
            }
    
            //切换正负 
            private void changeSign()
            {
                double storNum;
                if (textBox1.Text.Length > 0)
                {
                    storNum = double.Parse(textBox1.Text);
                    storNum *= -1;
                    textBox1.Text = storNum.ToString();
                }
                btnEqual.Select();  //设置"="号的焦点 
            }
    
            //设置运算类型 
            private void setOperator(int operation)
            {
                if (textBox1.Text.Length > 0)
                {
                    opMain = operation;
                    mainNum1 = double.Parse(textBox1.Text);
                    isSecond = true;
                    isDone = false;
                    isNokeydown = true;
                    btnEqual.Select();  //设置"="号的焦点 
                }
            }
    
            //设置小数点 
            private void setDecimal()
            {
                if (!isDecimal)
                {
                    setText(".");
                    isDecimal = true;
                }
                btnEqual.Select();  //设置"="号的焦点 
            }
    
            //开平方
            private void doSquart()
            {
    
                double storNum;
                storNum = double.Parse(textBox1.Text);
                if (storNum > 0)
                {
                    storNum = Math.Sqrt(storNum);
                    textBox1.Text = storNum.ToString();
                }
                else
                    textBox1.Text = "亲,负数不能开平方。";
                btnEqual.Select();  //设置"="号的焦点 
            }
    
            //求倒数
            private void doreciprocal()
            {
                double storNum;
                storNum = double.Parse(textBox1.Text);
                if (storNum != 0)
                {
                    storNum = 1 / storNum;
                    textBox1.Text = storNum.ToString();
                }
                else
                    textBox1.Text = "亲,除数不能为零。";
    
                btnEqual.Select();
    
            }
    
    
            private void btn7_Click(object sender, EventArgs e)
            {
                setText("7");
            }
    
            private void btn8_Click(object sender, EventArgs e)
            {
                setText("8");
            }
    
            private void btn9_Click(object sender, EventArgs e)
            {
                setText("9");
            }
    
            private void btn4_Click(object sender, EventArgs e)
            {
                setText("4");
            }
    
            private void btn5_Click(object sender, EventArgs e)
            {
                setText("5");
            }
    
            private void btn6_Click(object sender, EventArgs e)
            {
                setText("6");
            }
    
            private void btn1_Click(object sender, EventArgs e)
            {
                setText("1");
            }
    
            private void btn2_Click(object sender, EventArgs e)
            {
                setText("2");
            }
    
            private void btn3_Click(object sender, EventArgs e)
            {
                setText("3");
            }
    
            private void btn0_Click(object sender, EventArgs e)
            {
                setText("0");
            }
    
            private void btnPoint_Click(object sender, EventArgs e)
            {
                setDecimal();
            }
    
            private void btnSubtract_Click(object sender, EventArgs e)//正负号交换
            {
                changeSign();
            }
    
            private void btnEqual_Click(object sender, EventArgs e)
            {
                doEquals();
            }
    
            private void btnAdd_Click(object sender, EventArgs e)
            {
                setOperator(1);
            }
    
            private void btnSub_Click(object sender, EventArgs e)
            {
                setOperator(2);
            }
    
            private void btnMulti_Click(object sender, EventArgs e)
            {
                setOperator(3);
            }
    
            private void btnDivide_Click(object sender, EventArgs e)
            {
                setOperator(4);
            }
    
            private void btnC_Click(object sender, EventArgs e)//清除键
            {
                isSecond = false;
                setText("clear");
            }
    
            private void btnSqrt_Click(object sender, EventArgs e)//开平方
            {
                doSquart();
            }
    
            private void btnPercentage_Click(object sender, EventArgs e)//求模
            {
                setOperator(5);
            }
    
            private void btnReciprocal_Click(object sender, EventArgs e)//求倒
            {
                doreciprocal();
            }
    
            private void btnCE_Click(object sender, EventArgs e)//CE
            {
                isSecond = false;
                setText("clear");
            }
    
            private void btnBackspace_Click(object sender, EventArgs e)//退格键
            {
                string old = textBox1.Text;
                if (old.Length > 1 && old != "0.")
                    textBox1.Text = old.Substring(0, old.Length - 1);
                else
                    textBox1.Text = "0.";
    
            }
    
       
         
    
           
          
      
      
           
    
          
         
     
    
        
    
         
    
        
    
         
    
        }
        
    }
    
  • 相关阅读:
    deepin linux手工更新系统
    redis使用redis-cli查看所有的keys及清空所有的数据
    使用浏览器地址栏调用CXF Webservice的写法
    windows 80端口被占用
    How to install 64-bit Google Chrome 28+ on 64-bit RHEL/CentOS 6 or 7
    CAS 单点登录流程
    Restful是什么,SOAP Webservice和RESTful Webservice
    SpringMVC中的@PathVariable
    VMWare安装苹果操作系统OS X
    eclipse(adt-bundle)的Android SDK Manager下载不了谷歌的东西怎么办?
  • 原文地址:https://www.cnblogs.com/mekor/p/3602746.html
Copyright © 2011-2022 走看看