基本信息
源码名称:C# 各种计算器例子
源码大小:0.25M
文件格式:.zip
开发语言:C#
更新时间:2015-06-10
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
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 Calcu { public partial class Form1 : Form { private double _num1 = 0, _num2 = 0, _result = 0; //第一个运算数,第二个运算数,结果 private string _operator = ""; //运算符号 private int _operatorCount = 0; //运算符数量 private bool _firstNumFlag = false; //首数字标志位 private int radix = 10; Button[] btns; public Form1() { InitializeComponent(); btns = new Button[]{ button0,button1, button2,button3,button4,button5,button6,button7, button8,button9 }; } //数字按钮的click响应方法 private void button0_Click(object sender, EventArgs e) { if (_operator == "=")//如果前一运算符为等号且编辑框不空则清空编辑框 { textBoxResult.Text = ""; _operator = ","; } if (_firstNumFlag == true) //判断是否为首数字,是则替换,否则追加 { textBoxResult.Text = "0"; _firstNumFlag = false; } else textBoxResult.Text = textBoxResult.Text "0"; textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } private void button1_Click(object sender, EventArgs e) { if (_operator == "=")//如果前一运算符为等号且编辑框不空则清空编辑框 { textBoxResult.Text = ""; _operator = ","; } if (_firstNumFlag == true) { textBoxResult.Text = "1"; _firstNumFlag = false; } else textBoxResult.Text = textBoxResult.Text "1"; textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } private void button2_Click(object sender, EventArgs e) { if (_operator == "=")//如果前一运算符为等号且编辑框不空则清空编辑框 { textBoxResult.Text = ""; _operator = ","; } if (_firstNumFlag == true) { textBoxResult.Text = "2"; _firstNumFlag = false; } else textBoxResult.Text = textBoxResult.Text "2"; textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } private void button3_Click(object sender, EventArgs e) { if (_operator == "=")//如果前一运算符为等号且编辑框不空则清空编辑框 { textBoxResult.Text = ""; _operator = ","; } if (_firstNumFlag == true) { textBoxResult.Text = "3"; _firstNumFlag = false; } else textBoxResult.Text = textBoxResult.Text "3"; textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } private void button4_Click(object sender, EventArgs e) { if (_operator == "=")//如果前一运算符为等号且编辑框不空则清空编辑框 { textBoxResult.Text = ""; _operator = ","; } if (_firstNumFlag == true) { textBoxResult.Text = "4"; _firstNumFlag = false; } else textBoxResult.Text = textBoxResult.Text "4"; textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } private void button5_Click(object sender, EventArgs e) { if (_operator == "=")//如果前一运算符为等号且编辑框不空则清空编辑框 { textBoxResult.Text = ""; _operator = ","; } if (_firstNumFlag == true) { textBoxResult.Text = "5"; _firstNumFlag = false; } else textBoxResult.Text = textBoxResult.Text "5"; textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } private void button6_Click(object sender, EventArgs e) { if (_operator == "=")//如果前一运算符为等号且编辑框不空则清空编辑框 { textBoxResult.Text = ""; _operator = ","; } if (_firstNumFlag == true) { textBoxResult.Text = "6"; _firstNumFlag = false; } else textBoxResult.Text = textBoxResult.Text "6"; textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } private void button7_Click(object sender, EventArgs e) { if (_operator == "=")//如果前一运算符为等号且编辑框不空则清空编辑框 { textBoxResult.Text = ""; _operator = ","; } if (_firstNumFlag == true) { textBoxResult.Text = "7"; _firstNumFlag = false; } else textBoxResult.Text = textBoxResult.Text "7"; textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } private void button8_Click(object sender, EventArgs e) { if (_operator == "=")//如果前一运算符为等号且编辑框不空则清空编辑框 { textBoxResult.Text = ""; _operator = ","; } if (_firstNumFlag == true) { textBoxResult.Text = "8"; _firstNumFlag = false; } else textBoxResult.Text = textBoxResult.Text "8"; textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } private void button9_Click(object sender, EventArgs e) { if (_operator == "=")//如果前一运算符为等号且编辑框不空则清空编辑框 { textBoxResult.Text = ""; _operator = ","; } if (_firstNumFlag == true) { textBoxResult.Text = "9"; _firstNumFlag = false; } else textBoxResult.Text = textBoxResult.Text "9"; textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } private void buttonDot_Click(object sender, EventArgs e) { if (_operator == "=")//如果前一运算符为等号且编辑框不空则清空编辑框 { textBoxResult.Text = ""; _operator = ","; } if (_firstNumFlag == true) { textBoxResult.Text = "."; _firstNumFlag = false; } else { if (textBoxResult.Text.IndexOf('.') == -1) textBoxResult.Text = textBoxResult.Text "."; } textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } // .-.*./的响应方法 private void buttonAdd_Click(object sender, EventArgs e) { _firstNumFlag = true; _operatorCount = _operatorCount 1; if (_operatorCount == 1) //判断是否为第一个运算符 { if (radix == 10) { _num1 = Convert.ToDouble(textBoxResult.Text); //保存第一个运算数 } else { _num1 = Convert.ToInt32(textBoxResult.Text, radix); } _operator = " "; //保存符号 textBoxResult.Text = ""; //清空 } else { if (radix == 10) { _num2 = Convert.ToDouble(textBoxResult.Text); } else { _num2 = Convert.ToInt32(textBoxResult.Text, radix); } if (_operator == " ") _num1 = _num1 _num2; else if (_operator == "-") _num1 = _num1 - _num2; else if (_operator == "*") _num1 = _num1 * _num2; else if (_operator == "/") _num1 = _num1 / _num2; _operator = " "; int q = radix; string s = Convert.ToString((int)_num1, q); textBoxResult.Text = s; } textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } private void buttonSub_Click(object sender, EventArgs e) { _firstNumFlag = true; _operatorCount = _operatorCount 1; if (_operatorCount == 1) //判断是否为第一个运算符 { if (radix == 10) { _num1 = Convert.ToDouble(textBoxResult.Text); //保存第一个运算数 } else { _num1 = Convert.ToInt32(textBoxResult.Text, radix); } _operator = "-"; //保存符号 textBoxResult.Text = ""; //清空 } else { if (radix == 10) { _num2 = Convert.ToDouble(textBoxResult.Text); } else { _num2 = Convert.ToInt32(textBoxResult.Text, radix); } if (_operator == " ") _num1 = _num1 _num2; else if (_operator == "-") _num1 = _num1 - _num2; else if (_operator == "*") _num1 = _num1 * _num2; else if (_operator == "/") _num1 = _num1 / _num2; _operator = "-"; int q = radix; string s = Convert.ToString((int)_num1, q); textBoxResult.Text = s; } textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } private void buttonMul_Click(object sender, EventArgs e) { _firstNumFlag = true; _operatorCount = _operatorCount 1; if (_operatorCount == 1) //判断是否为第一个运算符 { if (radix == 10) { _num1 = Convert.ToDouble(textBoxResult.Text); //保存第一个运算数 } else { _num1 = Convert.ToInt32(textBoxResult.Text, radix); } _operator = "*"; //保存符号 textBoxResult.Text = ""; //清空 } else { if (radix == 10) { _num2 = Convert.ToDouble(textBoxResult.Text); } else { _num2 = Convert.ToInt32(textBoxResult.Text, radix); } if (_operator == " ") _num1 = _num1 _num2; else if (_operator == "-") _num1 = _num1 - _num2; else if (_operator == "*") _num1 = _num1 * _num2; else if (_operator == "/") _num1 = _num1 / _num2; _operator = "*"; int q = radix; string s = Convert.ToString((int)_num1, q); textBoxResult.Text = s; } textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } private void buttonDiv_Click(object sender, EventArgs e) { _firstNumFlag = true; _operatorCount = _operatorCount 1; if (_operatorCount == 1) //判断是否为第一个运算符 { if (radix == 10) { _num1 = Convert.ToDouble(textBoxResult.Text); //保存第一个运算数 } else { _num1 = Convert.ToInt32(textBoxResult.Text, radix); } _operator = "/"; //保存符号 textBoxResult.Text = ""; //清空 } else { if (radix == 10) { _num2 = Convert.ToDouble(textBoxResult.Text); } else { _num2 = Convert.ToInt32(textBoxResult.Text, radix); } if (_operator == " ") _num1 = _num1 _num2; else if (_operator == "-") _num1 = _num1 - _num2; else if (_operator == "*") _num1 = _num1 * _num2; else if (_operator == "/") _num1 = _num1 / _num2; _operator = "/"; int q = radix; string s = Convert.ToString((int)_num1, q); textBoxResult.Text = s; } textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } private void buttonEqu_Click(object sender, EventArgs e) { if (radix == 10) { _num2 = Convert.ToDouble(textBoxResult.Text); } else { _num2 = Convert.ToInt32(textBoxResult.Text, radix); } if (_operator == " ") _result = _num1 _num2; else if (_operator == "-") _result = _num1 - _num2; else if (_operator == "*") _result = _num1 * _num2; else if (_operator == "/") _result = _num1 / _num2; //进行运算 int q = radix; string s = Convert.ToString((int)_result, q); textBoxResult.Text = s; //显示结果 _operator = "="; _operatorCount = 0; //运算符号数清零 textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } private void buttonBackSpace_Click(object sender, EventArgs e) { //如果不为空 if (textBoxResult.Text.Length > 0) textBoxResult.Text = textBoxResult.Text.Substring(0, textBoxResult.Text.Length - 1); //去除最后一个字符 textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } private void buttonClear_Click(object sender, EventArgs e) { _num1 = 0; _num2 = 0; _result = 0; _operator = ""; _firstNumFlag = false; textBoxResult.Text = ""; textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } private void buttonSign_Click(object sender, EventArgs e) { //如果非空 if (textBoxResult.Text.Length >= 1) { string firstChar = textBoxResult.Text.Substring(0, 1);//获取第一个字符 //判断第一个字符正负 if (firstChar == "-") textBoxResult.Text = " " textBoxResult.Text.Substring(1, textBoxResult.Text.Length - 1); else if (firstChar == " ") textBoxResult.Text = "-" textBoxResult.Text.Substring(1, textBoxResult.Text.Length - 1); else textBoxResult.Text = "-" textBoxResult.Text; } textBoxResult.Focus(); //使焦点落到编辑框中 textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } //编辑框键盘下压事件响应方法 private void textBoxResult_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == '0') button0_Click(sender, e); else if (e.KeyChar == '1') button1_Click(sender, e); else if (e.KeyChar == '2') button2_Click(sender, e); else if (e.KeyChar == '3') button3_Click(sender, e); else if (e.KeyChar == '4') button4_Click(sender, e); else if (e.KeyChar == '5') button5_Click(sender, e); else if (e.KeyChar == '6') button6_Click(sender, e); else if (e.KeyChar == '7') button7_Click(sender, e); else if (e.KeyChar == '8') button8_Click(sender, e); else if (e.KeyChar == '9') button9_Click(sender, e); else if (e.KeyChar == '.') buttonDot_Click(sender, e); else if (e.KeyChar == ' ') buttonAdd_Click(sender, e); else if (e.KeyChar == '-') buttonSub_Click(sender, e); else if (e.KeyChar == '*') buttonMul_Click(sender, e); else if (e.KeyChar == '/') buttonDiv_Click(sender, e); else if (e.KeyChar == '=') buttonEqu_Click(sender, e); else if (e.KeyChar == 'c') buttonClear_Click(sender, e); else if (e.KeyChar == '\b') buttonBackSpace_Click(sender, e); textBoxResult.Select(textBoxResult.Text.Length, 0);//使光标落在编辑框最后面 } private void SetInputFocus() { textBoxResult.Focus(); textBoxResult.SelectionStart = textBoxResult.TextLength; textBoxResult.SelectionLength = 0; } //设置进制。 private void SetInputRadix(int newRadix) { if (textBoxResult.TextLength == 0) { radix = newRadix; return; } else { if (newRadix == 10) { int a = Convert.ToInt32(textBoxResult.Text, radix); textBoxResult.Text = Convert.ToString(a); radix = newRadix; } else { int a = Convert.ToInt32(textBoxResult.Text,radix); radix = newRadix; int q = radix; string s = Convert.ToString((int)a, q); textBoxResult.Text = s; //显示结果 } } } //设置显示的按钮 private void SetButtonEnabled(int radix) { for (int i = 0; i < radix; i ) btns[i].Enabled = true; for (int i = radix; i < btns.Length; i ) btns[i].Enabled = false; if (radix == 10) { buttonDot.Enabled = true; buttonSign.Enabled = true; } else { buttonDot.Enabled = false; buttonSign.Enabled = false; } } private void radioButton2_Click(object sender, EventArgs e) { _operatorCount = 0; //运算符号数清零 SetInputRadix(2); SetButtonEnabled(2); SetInputFocus(); } private void radioButton8_Click(object sender, EventArgs e) { _operatorCount = 0; //运算符号数清零 SetInputRadix(8); SetButtonEnabled(8); SetInputFocus(); } private void radioButton10_Click(object sender, EventArgs e) { _operatorCount = 0; //运算符号数清零 SetInputRadix(10); SetButtonEnabled(10); SetInputFocus(); } private void Form1_Load(object sender, EventArgs e) { radix = 10; radioButton10.Checked = true; SetButtonEnabled(radix); SetInputFocus(); } } }