C#实现简单计算器功能

作者:彬菌 时间:2023-02-13 19:26:44 

实现效果:

C#实现简单计算器功能

Form1.cs代码:


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 Cal
{
 public partial class Form1 : Form
 {
   public double num1;
   public int temp = 0;//记录存储计算方式
   public Form1()
   {
     InitializeComponent();
   }

private void eq_Click(object sender, EventArgs e)
   {
     switch (temp)
     {
       //加法运算
       case 1:
         try
         {
           result.Text = (num1 + double.Parse(result.Text)).ToString();
         }
         catch (Exception)
         {
           MessageBox.Show("还没输入数字呢", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
         finally
         {
           temp = 0;
         }
         break;
       //减法运算
       case 2:
         try
         {
           result.Text = (num1 - double.Parse(result.Text)).ToString();
         }
         catch (Exception)
         {
           MessageBox.Show("还没输入数字呢", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
         finally
         {
           temp = 0;
         }
         break;
       //乘法运算
       case 3:
         try
         {
           result.Text = (num1 * double.Parse(result.Text)).ToString();
         }
         catch (Exception)
         {
           MessageBox.Show("还没输入数字呢", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
         finally
         {
           temp = 0;
         }
         break;
       //除法运算,讨论分母为零的情况
       case 4:
         if (double.Parse(result.Text)==0)
         {
           MessageBox.Show("除数不能为零", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
           result.ResetText();
         }
         else
         {
           result.Text = (num1 / double.Parse(result.Text)).ToString(); temp = 0;
         }
         break;
       case 5:
         try
         {
           result.Text = (num1 % double.Parse(result.Text)).ToString();
         }
         catch (Exception)
         {
           MessageBox.Show("还没输入数字呢", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
         finally
         {
           temp = 0;
         }
         break;
     }
   }

private void empty_Click(object sender, EventArgs e)
   {
     result.Text = "0";
     num1 = 0;
     temp = 0;
     //清除
     //if (result.Text.Length > 0)
     //{
     //  result.Text = result.Text.Substring(0, result.Text.Length - 1);
     //}
   }

private void Zero_Click(object sender, EventArgs e)
   {
     if (result.Text == "0")
     {
       result.Text = "0";
     }
     else
     {
       //前边有数字时,则直接在后边加上.
       result.Text = result.Text + "0";
     }
   }

private void one_Click(object sender, EventArgs e)
   {
     if (result.Text == "0")
     {
       result.Text = "1";
     }
     else
     {
       //前边有数字时,则直接在后边加上.
       result.Text = result.Text + "1";
     }
   }

private void two_Click(object sender, EventArgs e)
   {
     if (result.Text == "0")
     {
       result.Text = "2";
     }
     else
     {
       //前边有数字时,则直接在后边加上.
       result.Text = result.Text + "2";
     }
   }
   private void three_Click(object sender, EventArgs e)
   {
     if (result.Text == "0")
     {
       result.Text = "3";
     }
     else
     {
       //前边有数字时,则直接在后边加上.
       result.Text = result.Text + "3";
     }
   }

private void four_Click(object sender, EventArgs e)
   {
     if (result.Text == "0")
     {
       result.Text = "4";
     }
     else
     {
       //前边有数字时,则直接在后边加上.
       result.Text = result.Text + "4";
     }
   }

private void five_Click(object sender, EventArgs e)
   {
     if (result.Text == "0")
     {
       result.Text = "5";
     }
     else
     {
       //前边有数字时,则直接在后边加上.
       result.Text = result.Text + "5";
     }
   }

private void six_Click(object sender, EventArgs e)
   {
     if (result.Text == "0")
     {
       result.Text = "6";
     }
     else
     {
       //前边有数字时,则直接在后边加上.
       result.Text = result.Text + "6";
     }
   }

private void seven_Click(object sender, EventArgs e)
   {
     if (result.Text == "0")
     {
       result.Text = "7";
     }
     else
     {
       //前边有数字时,则直接在后边加上.
       result.Text = result.Text + "7";
     }
   }

private void eight_Click(object sender, EventArgs e)
   {
     if (result.Text == "0")
     {
       result.Text = "8";
     }
     else
     {
       //前边有数字时,则直接在后边加上.
       result.Text = result.Text + "8";
     }
   }

private void nine_Click(object sender, EventArgs e)
   {
     if (result.Text == "0")
     {
       result.Text = "9";
     }
     else
     {
       //前边有数字时,则直接在后边加上.
       result.Text = result.Text + "9";
     }
   }

private void point_Click(object sender, EventArgs e)
   {
     //小数点按键,初始为空,直接按 . 键则显示为0.多少
     if (result.Text == "")
     {
       result.Text = "0.";
     }
     //如果再次输入.则返回都输入的字符后边并提示信息
     else if (result.Text.IndexOf(".") >= 0)
     {
       MessageBox.Show("已经输入小数点,无须再次输入", "提示");
     }
     else
     {
       //前边有数字时,则直接在后边加上.
       result.Text = result.Text + ".";
     }
   }

private void add_Click(object sender, EventArgs e)
   {
     temp = 1;
     try
     {
       num1 = double.Parse(result.Text);
     }
     catch (Exception)
     {
       MessageBox.Show("还没输入数字呢", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
     finally
     {
       result.Text = "";//随后让文本框归空
     }
   }

private void mul_Click(object sender, EventArgs e)
   {
     temp = 3;
     try
     {
       num1 = double.Parse(result.Text);
     }
     catch (Exception)
     {
       MessageBox.Show("还没输入数字呢", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
     finally
     {
       result.Text = "";//随后让文本框归空
     }
   }

private void sub_Click(object sender, EventArgs e)
   {
     temp = 2;
     try
     {
       num1 = double.Parse(result.Text);
     }
     catch(Exception)
     {
       MessageBox.Show("还没输入数字呢", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
     finally
     {
     result.Text = "";//随后让文本框归空
     }
   }

private void Button1_Click(object sender, EventArgs e)
   {
     temp = 4;
     try
     {
       num1 = double.Parse(result.Text);
     }
     catch (Exception)
     {
       MessageBox.Show("还没输入数字呢", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
     finally
     {
       result.Text = "";//随后让文本框归空
     }
   }

private void per_Click(object sender, EventArgs e)
   {
     temp = 5;
     try
     {
       num1 = double.Parse(result.Text);
     }
     catch (Exception)
     {
       MessageBox.Show("还没输入数字呢", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
     finally
     {
       result.Text = "";//随后让文本框归空
     }
   }

private void opp_Click(object sender, EventArgs e)
   {
     //temp = 6;
     try
       {
        result.Text = (-double.Parse(result.Text)).ToString();
       }
     catch (Exception)
       {
         MessageBox.Show("还没输入数字呢", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
       }
     finally
         {
       temp = 0;
         }
   }

private void Form1_Load(object sender, EventArgs e)
   {
     result.Text = "0";
   }

private void result_TextChanged(object sender, EventArgs e)
   {
     if (result.Text.Length > 18&& result.Text.Length<36)
     {
       result.Font = new Font(result.Font.FontFamily, 15, result.Font.Style);
     }
     if (result.Text.Length > 36&&result.Text.Length<45)
     {
       result.Font = new Font(result.Font.FontFamily, 10, result.Font.Style);
     }
     if (result.Text.Length > 45)
     {
       MessageBox.Show("超出范围,将要清空了!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
       result.ResetText();
       result.Font = new Font(result.Font.FontFamily, 20, result.Font.Style);
     }
   }
 }
}

小编已经测试了代码,大家可以跟着做一下看看,感谢大家对脚本之家的支持。

来源:https://www.idaobin.com/archives/982.html

标签:C#,计算器
0
投稿

猜你喜欢

  • C# 通过反射获取类型的字段值及给字段赋值的操作

    2021-11-14 13:30:23
  • Android开发中Activity属性设置小结

    2023-10-24 05:27:57
  • Android Java try catch 失效问题及解决

    2023-06-17 17:07:33
  • C#中的自动类型转换和强制类型转换

    2023-08-10 07:11:14
  • MyBatis中动态sql的实现方法示例

    2022-08-26 06:02:31
  • Apache Commons fileUpload文件上传多个示例分享

    2021-11-13 07:23:51
  • Android开发之使用150行代码实现滑动返回效果

    2023-03-20 11:08:50
  • Opencv实现读取摄像头和视频数据

    2023-07-16 15:19:58
  • Cors实现java后端完全跨域实例

    2022-01-04 15:03:33
  • Java Servlet请求重定向的方法

    2022-05-23 16:56:02
  • java的package和import机制原理解析

    2021-07-20 08:19:05
  • C# Winform实现圆角无锯齿按钮

    2022-08-30 01:11:56
  • C#实现AddRange为数组添加多个元素的方法

    2023-06-26 13:34:25
  • Java编程中字节流与字符流IO操作示例

    2022-02-23 20:35:40
  • 详解Android Handler的使用

    2022-11-17 12:59:18
  • Android自定义控件EditText使用详解

    2023-11-06 12:52:15
  • Android下保存简单网页到本地(包括简单图片链接转换)实现代码

    2021-05-27 03:45:52
  • Java用freemarker导出word实用示例

    2022-06-05 17:16:32
  • C#迷你猜数实例分析

    2023-11-02 16:10:49
  • Java动态规划之硬币找零问题实现代码

    2023-01-23 20:37:38
  • asp之家 软件编程 m.aspxhome.com