浏览 2790 次
锁定老帖子 主题:手机多功能计算器源码
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-05
最后修改:2010-03-02
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 WindowsCalculator { public partial class Form1 : Form { //构造器 public Form1() { InitializeComponent(); this.initializeValues(); } //定义缓存变量 public int resultValue; public int currentValue; private Operation cachedOperation; // 做初始化工作 public void initializeValues() { this.resultValue = 0; this.currentValue = 0; this.cachedOperation = Operation.None; } // 显示当前正在输入的值 public void DisplayCurrentValue() { this.textBox1.Text = this.currentValue.ToString(); } // 显示已有结果 public void DisplayResultValue() { this.textBox1.Text = this.resultValue.ToString(); } // 数字键点击事件处理器 private void NumberButton_Click(object sender, EventArgs e) { Button btn = sender as Button; if (!btn.Text.ToString().Equals(".")) { this.currentValue = this.currentValue * 10 + int.Parse(btn.Text); } else { this.currentValue = this.currentValue + int.Parse(btn.Text.ToString()); } this.DisplayCurrentValue(); } //操作符 private void OperatorButton_Click(object sender, EventArgs e) { this.CalculateCore(); if (sender == buttonAdd) { this.cachedOperation = Operation.Add; } if (sender == buttonSub) { this.cachedOperation = Operation.Sub; } if (sender == buttonMul) { this.cachedOperation = Operation.Mul; } if (sender == buttonDiv) { this.cachedOperation = Operation.Div; } } //result private void buttonResult_Click(object sender, EventArgs e) { CalculateCore(); } // 运算核心 private void CalculateCore() { switch (this.cachedOperation) { case Operation.Add: this.resultValue += this.currentValue; break; case Operation.Sub: this.resultValue -= this.currentValue; break; case Operation.Mul: this.resultValue *= this.currentValue; break; case Operation.Div: if (this.currentValue != 0) { this.resultValue /= this.currentValue; } else { MessageBox.Show("Zero Error!"); } break; case Operation.None: default: this.resultValue = this.currentValue; break; } this.currentValue = 0; this.DisplayResultValue(); } // 运算类型 enum Operation { Add, Sub, Mul, Div, None } private void buttonClear_Click(object sender, EventArgs e) { this.initializeValues(); this.DisplayResultValue(); } } } 程序说明: 1.将0-9数字键名称改为:NumberButton; 2.将+、-、*、/运算符键名称改为:OperatorButton; 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |