虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > C#编程 > C#实现简单的计算器功能完整实例

C#实现简单的计算器功能完整实例
类别:C#编程   作者:码皇   来源:互联网   点击:

这篇文章主要介绍了C 实现简单的计算器功能,结合完整实例形式分析了C 实现常见的数学运算、进制转换等相关操作技巧与界面布局方法,需要的朋友可以参考下

本文实例讲述了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) {
    }
    }
    }

运行效果:

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

在线一元函数(方程)求解计算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi

科学计算器在线使用_高级计算器在线计算:
http://tools.jb51.net/jisuanqi/jsqkexue

在线计算器_标准计算器:
http://tools.jb51.net/jisuanqi/jsq

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

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

相关热词搜索: C 计算器