• 计算器


    计算器:

    public partial class Form1 : Form
    {
    private int prev = 0;//存储上次点击了什么按钮,0代表什么都没点击,
    //1代表点击了数字按钮,2代表点击了运算符
    private decimal zjjg = 0;//存储计算的中间结果
    private string prevysf = "+";//记录上次按的什么运算符
    private string btnow = "";
    private decimal sum = 0;
    public Form1()
    {
    InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
    Button btn= sender as Button;//将事件源转换为按钮
    //按数字按钮时,有三种情况
    //替换 (如果下面文本框内容为0或者上次点击了运算符)
    if (prev == 2 || txtbottom.Text == "0")//判断运算符
    {
    txtbottom.Text = btn.Text;//按钮里的数字拿到下面文本框里显示
    }
    //追加 (如果下面的文本框内容不为0并且上次没有点击运算符)
    else
    {
    txtbottom.Text += btn.Text;//+相当于拼接
    }
    //点击了数字按钮
    prev = 1;
    }

    private void button4_Click(object sender, EventArgs e)
    {//加减乘除
    //事件源转换为按钮
    Button btn= sender as Button;
    //上次按了数字 执行的是上一次运行结果显示 相当于一个中间变量
    //按了数字 按运算符时执行几部
    if (prev == 1)
    {
    txttop.Text += txtbottom.Text + btn.Text;
    switch (prevysf)
    {
    case "+":
    zjjg = zjjg + Convert.ToDecimal(txtbottom.Text);
    break;
    case "-":
    zjjg = zjjg - Convert.ToDecimal(txtbottom.Text);
    break;
    case "*":
    zjjg = zjjg * Convert.ToDecimal(txtbottom.Text);
    break;
    case "/":
    zjjg = zjjg / Convert.ToDecimal(txtbottom.Text);

    break;

    }

    txtbottom.Text = zjjg.ToString();
    }
    //上次按了运算符 修改上面的运算符
    else
    {
    string s= txttop.Text;//取出里面的字符串
    s.Substring(0,s.Length-1);//把最后一个截掉
    s = s + btn.Text;//再给它赋一个新的
    txttop.Text = s;
    }
    //点击了运算符
    prev = 2;
    //还要记录运算符
    prevysf = btn.Text;
    }

    private void button13_Click(object sender, EventArgs e)
    {//清除
    txttop.Text = "";
    txtbottom.Text = "0";
    prev = 0;
    zjjg = 0;
    prevysf = "+";

    }

    private void button15_Click(object sender, EventArgs e)
    {//等于

    //事件源转换为按钮
    Button btn = sender as Button;
    switch (prevysf)
    {
    case "+":
    zjjg = zjjg + Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果
    break;
    case "-":
    zjjg = zjjg - Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果
    break;
    case "*":
    zjjg = zjjg * Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果
    break;
    case "/":
    zjjg = zjjg / Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果
    break;
    }
    txtbottom.Text = zjjg.ToString();
    txttop.Text = "";
    prevysf = "";
    prev = 2;
    }

    }

    private void button17_Click(object sender, EventArgs e)
    {//退格

    int t = txtbottom.Text.ToString().Length;
    string str = txtbottom.Text.ToString();
    if (t > 1)
    {
    str = str.Remove(t - 1, 1);
    txtbottom.Text = str;
    }
    else
    {
    txtbottom.Text = "0";
    }
    }
    }
    }

  • 相关阅读:
    canvas实现文字分行
    二维码扫描添加闪光灯的功能
    修改二维码扫描框的大小位置
    Android中实现EditText圆角的方法
    利用FrameLayout实现遮罩层
    EditText中的灰色提示
    实现等待动画
    发送短信
    自定义EditText动态在EditText中添加图片
    xml解析
  • 原文地址:https://www.cnblogs.com/yp11/p/5805936.html
Copyright © 2020-2023  润新知