您的位置:首页 > 编程语言 > C#

VS2010(c#)-实现数字计算器

2014-06-29 22:31 369 查看
先看看代码:

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;

namespace Calculator
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text += btn.Text;
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + " " + btn.Text + " ";

        }

        private void btnSub_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + " " + btn.Text + " ";
        }

        private void btnMul_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + " " + btn.Text + " ";
        }

        private void btnDiv_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + " " + btn.Text + " ";
        }

        private void button16_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
        }

        private void button14_Click(object sender, EventArgs e)
        {
            Single r;
            string t = textBox1.Text;
            int space = t.IndexOf(' ');
            string s1=t.Substring (0,space);
            char op=Convert.ToChar (t.Substring (space+1,1));
            string s2=t.Substring (space+3);
            Single arg1=Convert.ToSingle(s1);
            Single arg2=Convert.ToSingle(s2);
            switch(op)
            {
                case '+':
                    r=arg1+arg2;
                    break;
                    case '-':
                    r=arg1-arg2;
                    break;
                    case '*':
                    r=arg1*arg2;
                    break;
                    case '/':
                    if(arg2==0)
                    {throw new ApplicationException();}
                    
                    else
                    {
                        r=arg1/arg2;
                    break;}
                    break;
                default:throw new ApplicationException();

            }
            textBox1.Text=r.ToString();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text += btn.Text;
        }

        private void button3_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text += btn.Text;
        }

        private void button5_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text += btn.Text;
        }

        private void button6_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text += btn.Text;
        }

        private void button7_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text += btn.Text;
        }

        private void button8_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text += btn.Text;
        }

        private void button10_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text += btn.Text;
        }

        private void button11_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text += btn.Text;
        }
    }
}
界面如图所示:



关键代码:

<strong>      </strong> private void btnAdd_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + " " + btn.Text + " ";

        }

        private void btnSub_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + " " + btn.Text + " ";
        }

        private void btnMul_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + " " + btn.Text + " ";
        }

        private void btnDiv_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            textBox1.Text = textBox1.Text + " " + btn.Text + " ";
        }
以上程序再处理显示时都事先加了“ ”(空格),方面下面的数据分割提取计算。这种思想方法值得借鉴。

int space = t.IndexOf(' ');
            string s1=t.Substring (0,space);
            char op=Convert.ToChar (t.Substring (space+1,1));
            string s2=t.Substring (space+3);
确定不同数字用空格隔开,用Substring()方法获得,本程序的重要思想方法。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: