欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#实现简单的计算器功能完整实例

程序员文章站 2023-12-15 21:13:34
本文实例讲述了c#实现简单的计算器功能。分享给大家供大家参考,具体如下: using system; using system.collections.gene...

本文实例讲述了c#实现简单的计算器功能。分享给大家供大家参考,具体如下:

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;
using system.collections;
using system.threading;
using system.diagnostics;
namespace calculator
{
  public partial class form1 : form
  {
    public form1()
    {
      initializecomponent();
    }
    private string _sign;
    private double _first = 10241024;
    private double _second = 10241024;
    private string _number;
    private void button1_click(object sender, eventargs e)
    {
      _number += "1";
      this.textbox1.text += "1";
    }
    private void button2_click(object sender, eventargs e)
    {
      _number += "2";
      this.textbox1.text += "2";
    }
    private void button3_click(object sender, eventargs e)
    {
      _number += "3";
      this.textbox1.text += "3";
    }
    private void button4_click(object sender, eventargs e)
    {
      _number += "4";
      this.textbox1.text += "4";
    }
    private void button8_click(object sender, eventargs e)
    {
      _number += "5";
      this.textbox1.text += "5";
    }
    private void button7_click(object sender, eventargs e)
    {
      _number += "6";
      this.textbox1.text += "6";
    }
    private void button6_click(object sender, eventargs e)
    {
      _number += "7";
      this.textbox1.text += "7";
    }
    private void button5_click(object sender, eventargs e)
    {
      _number += "8";
      this.textbox1.text += "8";
    }
    private void button9_click(object sender, eventargs e)
    {
      _number += "9";
      this.textbox1.text += "9";
    }
    private void button10_click(object sender, eventargs e)
    {
      _number += "0";
      this.textbox1.text += "0";
    }
    private void button16_click(object sender, eventargs e)
    {
      //设置加号计算数
      setnumber(convert.todouble(_number));
      if (_sign == null || _second == 10241024)
      {
        _sign = "+";
        this.textbox1.text += "+";
        return;
      }
      if (_second != 10241024)
      {
        //开始进行计算
        computer compro = new computer(_sign, _first, _second);
        this.textbox1.text = compro.comt(out _first).tostring();
        //验证除数为零的情况
        if (_first == 10241024.10241023)
        {
          this.textbox1.text = "0";
          messagebox.show("除数不能为零!");
          _number = null;
          _first = 10241024;
          _second = 10241024;
          this.textbox1.text = null;
          _sign = null;
          this.textbox1.text = null;
        }
        //开始初始化数据
        _sign = "+";
        this.textbox1.text += "+";
        _second = 10241024;
        _number = null;
        return;
      }
    }
    private void button15_click(object sender, eventargs e)
    {
      //设置减号计算数
      setnumber(convert.todouble(_number));
      if (_sign == null || _second == 10241024)
      {
        _sign = "-";
        this.textbox1.text += "-";
        return;
      }
      if (_second != 10241024)
      {
        //开始进行计算
        computer compro = new computer(_sign, _first, _second);
        this.textbox1.text = compro.comt(out _first).tostring();
        //验证除数为零的情况
        if (_first == 10241024.10241023)
        {
          this.textbox1.text = "0";
          messagebox.show("除数不能为零!");
          _number = null;
          _first = 10241024;
          _second = 10241024;
          this.textbox1.text = null;
          _sign = null;
          this.textbox1.text = null;
        }
        //开始初始化数据
        _sign = "-";
        this.textbox1.text += "-";
        _second = 10241024;
        _number = null;
        return;
      }
    }
    private void button14_click(object sender, eventargs e)
    {
      //设置乘号计算数
      setnumber(convert.todouble(_number));
      if (_sign == null || _second == 10241024)
      {
        _sign = "*";
        this.textbox1.text += "*";
        return;
      }
      if (_second != 10241024)
      {
        //开始进行计算
        computer compro = new computer(_sign, _first, _second);
        this.textbox1.text = compro.comt(out _first).tostring();
        //验证除数为零的情况
        if (_first == 10241024.10241023)
        {
          this.textbox1.text = "0";
          messagebox.show("除数不能为零!");
          _number = null;
          _first = 10241024;
          _second = 10241024;
          this.textbox1.text = null;
          _sign = null;
          this.textbox1.text = null;
        }
        //开始初始化数据
        _sign = "*";
        this.textbox1.text += "*";
        _second = 10241024;
        _number = null;
        return;
      }
    }
      /// <summary>
      /// 设置除号计算数
      /// </summary>
      /// <param name="sender"></param>
      /// <param name="e"></param>
    private void button11_click(object sender, eventargs e)
    {
      setnumber(convert.todouble(_number));
      if (_sign == null || _second == 10241024)
      {
        _sign = "/";
        this.textbox1.text += "/";
        return;
      }
      if (_second != 10241024)
      {
        //开始进行计算
        computer compro = new computer(_sign, _first, _second);
        this.textbox1.text = compro.comt(out _first).tostring();
        //验证除数为零的情况
        if (_first == 10241024.10241023)
        {
          this.textbox1.text = "0";
          this.textbox1.text = "除数不能为零!";
          _number = null;
          _first = 10241024;
          _second = 10241024;
          this.textbox1.text = null;
          _sign = null;
          this.textbox1.text = null;
        }
        //开始初始化数据
        _sign = "/";
        this.textbox1.text += "/";
        _second = 10241024;
        _number = null;
        return;
      }
    }
    /// <summary>
    /// 清空输入框
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void button12_click(object sender, eventargs e)
    {
      _number = null;
      _first = 10241024;
      _second = 10241024;
      this.textbox1.text = null;
      _sign = null;
      this.textbox1.text = null;
    }
    private void button13_click(object sender, eventargs e)
    {
      setnumber(convert.todouble(_number));
      //判断是否设置了_second的值
      if (_second == 10241024)
      {
        _second = convert.todouble(_number);
        _number = null;
      }
      //判断是否设置了_first的值
      if (_first == 10241024)
      {
        _first = convert.todouble(_number);
        _number = null;
      }
      //判断是否有_sign的值
      if (_sign == null)
      {
        _sign = "+";
      }
      //开始进行计算
      computer compro = new computer(_sign, _first, _second);
      this.textbox1.text = compro.comt(out _first).tostring();
      //验证除数为零的情况
      if (_first == 10241024.10241023)
      {
        this.textbox1.text = "0";
        messagebox.show("除数不能为零!");
        _number = null;
        _first = 10241024;
        _second = 10241024;
        this.textbox1.text = null;
        _sign = null;
        this.textbox1.text = null;
      }
      //开始初始化数据
      _sign = null;
      _second = 10241024;
      _number = null;
    }
    public class computer
    {
      private string _sign;
      private double _first;
      private double _second;
      public computer(string str, double first, double second)
      {
        _sign = str;
        _first = first;
        _second = second;
      }
      //选择相应的运算符进行运算
      public double comt(out double first)
      {
        if (_sign == "+")
        {
          first = _first + _second;
          return _first + _second;
        }
        else if (_sign == "-")
        {
          first = _first - _second;
          return _first - _second;
        }
        else if (_sign == "*")
        {
          first = _first * _second;
          return _first * _second;
        }
        else if (_sign == "/")
        {
          if (_second == 0)
          {
            first = 10241024.10241023;
            return 10241024.10241023;
          }
          else
          {
            first = _first / _second;
            return _first / _second;
          }
        }
        else
        {
          first = 10241024.10241024;
          return 10241024.10241024;
        }
      }
    }
    //设置数字函数
    public void setnumber(double number)
    {
      if (_first == 10241024 && _number != null)
      {
        _first = convert.todouble(_number);
        _number = null;
      }
      else if (_second == 10241024 && _number != null)
      {
        _second = convert.todouble(_number);
        _number = null;
      }
    }
    private void timer1_tick(object sender, eventargs e)
    {
      this.label2.text = datetime.now.tostring();
    }
    private void button24_click(object sender, eventargs e)
    {
      if (this.textbox1.text == " ")
      {
        messagebox.show("请输入数据");
        this.textbox1.text = convert.toint64(textbox1.text.tostring(), 2).tostring();
      }
      else
      {
        this.textbox1.text = convert.toint64(textbox1.text.tostring(), 2).tostring();
      }
    }
    private void button22_click(object sender, eventargs e)
    {
      if (this.textbox1.text == " ")
      {
        messagebox.show("请输入数据");
        int64 int64 = convert.toint64(textbox1.text.tostring(), 2);
        this.textbox1.text = convert.tostring(int64,16);
      }
      else
      {
        int64 int64 = convert.toint64(textbox1.text.tostring(), 2);
        this.textbox1.text = convert.tostring(int64, 16);
      }
    }
    private void button23_click(object sender, eventargs e)
    {
      if (this.textbox1.text == " ")
      {
        messagebox.show("请输入数据");
        int64 int64 = convert.toint64(textbox1.text.tostring(), 2);
        this.textbox1.text = convert.tostring(int64, 8);
      }
      else
      {
        int64 int64 = convert.toint64(textbox1.text.tostring(), 2);
        this.textbox1.text = convert.tostring(int64, 8);
      }
    }
    private void button21_click(object sender, eventargs e)
    {
      if (this.textbox1.text == " ")
      {
        messagebox.show("请输入数据");
        int64 int64 = convert.toint64(textbox1.text);
        this.textbox1.text = convert.tostring(int64, 2);
      }
      else
      {
        int64 int64 = convert.toint64(textbox1.text);
        this.textbox1.text = convert.tostring(int64, 2);
      }
    }
    private void button27_click(object sender, eventargs e)
    {
      double buffer1= convert.todouble(textbox1.text);
        buffer1 = 1 / buffer1;
      this.textbox1.text = buffer1.tostring();
    }
    private void button17_click(object sender, eventargs e)
    {
      _number += ".";
      this.textbox1.text += ".";
    }
    private void button25_click(object sender, eventargs e)
    {
      double buffer1 = convert.todouble(textbox1.text);
      buffer1 = buffer1 * buffer1;
      this.textbox1.text = buffer1.tostring();
    }
    private void button26_click(object sender, eventargs e)
    {
      if (this.textbox1.text == " ")
      {
        messagebox.show("请输入数据");
        int64 int64 = convert.toint64(this.textbox1.text);
        int64 temp1 = 1;
        while (int64 > 1)
        {
          temp1 = temp1*int64 ;
          int64--;
        }
        this.textbox1.text = temp1.tostring();
      }
      else
      {
        int64 int64 = convert.toint64(this.textbox1.text);
        int64 temp1 = 1;
        while (int64 > 1)
        {
          temp1 = temp1 * int64;
          int64--;
        }
        this.textbox1.text = temp1.tostring();
      }
    }
    private void button28_click(object sender, eventargs e)
    {
      //int64 int64 = convert.toint64(this.textbox1.text);
      //double temp=math.log10(int64);
      //this.textbox1.text = temp.tostring();
      double temp1, temp2;
      string[] strarry = new string[2];
      strarry = this.textbox1.text.split('.');
      temp1 = convert.todouble(strarry[0]);
      temp2 = convert.todouble(strarry[1]);
      // double temp1 = convert.todouble(this.textbox1.text);
      temp2 = math.log(temp2,temp1 );
      this.textbox1.text = temp2.tostring();
    }
    private void button18_click(object sender, eventargs e)
    {
      double temp1 = convert.todouble(this.textbox1.text);
      double temp2 = math.sin(temp1);
      this.textbox1.text = temp2.tostring();
    }
    private void button19_click(object sender, eventargs e)
    {
      double temp1 = convert.todouble(this.textbox1.text);
      double temp2 = math.cos(temp1);
      this.textbox1.text = temp2.tostring();
    }
    private void button20_click(object sender, eventargs e)
    {
      double temp1 = convert.todouble(this.textbox1.text);
      double temp2 = math.tan(temp1);
      this.textbox1.text = temp2.tostring();
    }
    private void button33_click(object sender, eventargs e)
    {
      double temp1, temp2;
      string[] strarry=new string[2];
      strarry=this.textbox1.text.split('.');
      temp1 = convert.todouble(strarry[0]);
      temp2 = convert.todouble(strarry[1]);
      // double temp1 = convert.todouble(this.textbox1.text);
      temp2 = math.pow(temp1,temp2);
      this.textbox1.text = temp2.tostring();
    }
    /// <summary>
    /// 计算e的temp1次幂
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void button31_click(object sender, eventargs e)
    {
      double temp1 = convert.todouble(this.textbox1.text);
      double temp2 = math.exp(temp1);
      this.textbox1.text = temp2.tostring();
    }
    private void button34_click(object sender, eventargs e)
    {
       double temp1 = convert.todouble(this.textbox1.text);
      double temp2 = math.sqrt(temp1);
      this.textbox1.text = temp2.tostring();
    }
    private void button32_click(object sender, eventargs e)
    {
      double temp1, temp2;
      string[] strarry = new string[2];
      strarry = this.textbox1.text.split('.');
      temp1 = convert.todouble(strarry[0]);
      temp2 = convert.todouble(strarry[1]);
      // double temp1 = convert.todouble(this.textbox1.text);
      temp2 = math.ieeeremainder(temp1, temp2);
      this.textbox1.text = temp2.tostring();
    }
    /// <summary>
    /// 圆的面积
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void button30_click(object sender, eventargs e)
    {
      double buffer1 = convert.todouble(textbox1.text);
      buffer1 =3.1415926*buffer1*buffer1;
      this.textbox1.text = buffer1.tostring();
    }
    /// <summary>
    /// 三角形面积
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void button29_click(object sender, eventargs e)
    {
      double temp1, temp2,temp3,p,area;
      string[] strarry = new string[3];
      strarry = this.textbox1.text.split('.');
      temp1 = convert.todouble(strarry[0]);
      temp2 = convert.todouble(strarry[1]);
      temp3 = convert.todouble(strarry[2]);
      // double temp1 = convert.todouble(this.textbox1.text);
      p = (temp1 + temp2 + temp3) / 2;
      area= p * (p - temp1) * (p - temp2) * (p - temp3);
      area = math.sqrt(area);
      this.textbox1.text = area.tostring();
    }
    private void linklabel1_linkclicked(object sender, linklabellinkclickedeventargs e)
    {
      string str = e.link.tostring();
      process.start(str);
    }
    private void form1_load(object sender, eventargs e)
    {
    }
  }
}

运行效果:

C#实现简单的计算器功能完整实例

C#实现简单的计算器功能完整实例

ps:这里再为大家推荐几款计算工具供大家进一步参考借鉴:

在线一元函数(方程)求解计算工具:

科学计算器在线使用_高级计算器在线计算:

在线计算器_标准计算器:

更多关于c#相关内容感兴趣的读者可查看本站专题:《c#数据结构与算法教程》、《c#程序设计之线程使用技巧总结》、《c#常见控件用法教程》、《winform控件用法总结》、《c#数组操作技巧总结》及《c#面向对象程序设计入门教程

希望本文所述对大家c#程序设计有所帮助。

上一篇:

下一篇: