c#写的小型计算器 缺少一个功能 大家帮帮忙看看!我是新手
不多说先上代码:
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 WindowsFormsApplication7
{
public partial class Form1 : Form
{
public enum CalcuType
{
None,
/// <summary>
/// 加法
/// </summary>
Addition,
/// <summary>
/// 减法
/// </summary>
Substraction,
/// <summary>
/// 乘法
/// </summary>
Multiplication,
/// <summary>
/// 除法
/// </summary>
Division,
/// <summary>
/// 乘方
/// </summary>
Involution,
/// <summary>
/// 开方
/// </summary>
Square,
}
private double? _ValueF =null;//表示可为数字或者null
private double? _ValueL =null;
private CalcuType _CalulateType = CalcuType.None;
private bool _isNew = false;
string numberStr;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)//动态注册btnVal的click事件
{
btnVal0.Click += new EventHandler(btnVal_Click);
btnVal1.Click += new EventHandler(btnVal_Click);
btnVal2.Click += new EventHandler(btnVal_Click);
btnVal3.Click += new EventHandler(btnVal_Click);
btnVal4.Click += new EventHandler(btnVal_Click);
btnVal5.Click += new EventHandler(btnVal_Click);
btnVal6.Click += new EventHandler(btnVal_Click);
btnVal7.Click += new EventHandler(btnVal_Click);
btnVal8.Click += new EventHandler(btnVal_Click);
btnVal9.Click += new EventHandler(btnVal_Click);
}
private void btnVal_Click(object sender, EventArgs e)//判断输入的是btnval
{
Button btn = (Button)sender;
numberStr = this.txtValue.Text;
if (this._isNew)
{
numberStr += btn.Text;
this._ValueL = double.Parse(numberStr);
}
else
{
numberStr += btn.Text;
this._ValueF = double.Parse(numberStr);
}
this.txtValue.Text = numberStr;
}
private void btnResult_Click(object sender, EventArgs e)
{
switch (_CalulateType)
{
case CalcuType.Addition:
this.txtValue.Text = (_ValueF + _ValueL).ToString();
break;
case CalcuType.Substraction:
this.txtValue.Text = (_ValueF - _ValueL).ToString();
break;
case CalcuType.Multiplication:
this.txtValue.Text = (_ValueF * _ValueL).ToString();
break;
case CalcuType.Division:
this.txtValue.Text = (_ValueF / _ValueL).ToString();
break;
case CalcuType.Involution:
this.txtValue.Text = Math.Pow((double)_ValueF, (double)_ValueL).ToString();
break;
case CalcuType.Square:
this.txtValue.Text = Math.Pow((double)_ValueF, 1 / (double)_ValueL).ToString();
break;
}
this._ValueF = double.Parse(this.txtValue.Text);
_isNew = false;
}
private void btnAddition_Click(object sender, EventArgs e)//按下+键
{
this.btnResult_Click(sender, e);
this._CalulateType = CalcuType.Addition;
_isNew = true;
numberStr = "";
txtValue.Text = "";
}
private void btnclear_Click(object sender, EventArgs e)
{
this._ValueL = null;
this._ValueF = null;
this._CalulateType = CalcuType.None;
txtValue.Text ="";
}
private void btnSubstraction_Click(object sender, EventArgs e)
{
this.btnResult_Click(sender, e);
this._CalulateType = CalcuType.Substraction;
_isNew = true;
numberStr = "";
txtValue.Text = "";
}
private void btnMultiplication_Click(object sender, EventArgs e)
{
this.btnResult_Click(sender, e);
this._CalulateType = CalcuType.Multiplication;
_isNew = true;
numberStr = "";
txtValue.Text = "";
}
private void btnDivision_Click(object sender, EventArgs e)
{
this.btnResult_Click(sender, e);
this._CalulateType = CalcuType.Division;
_isNew = true;
numberStr = "";
txtValue.Text = "";
}
private void btnSquare_Click(object sender, EventArgs e)
{
this.btnResult_Click(sender, e);
this._CalulateType = CalcuType.Square;
_isNew = true;
numberStr = "";
txtValue.Text = "";
}
private void btnInvolution_Click(object sender, EventArgs e)
{
this.btnResult_Click(sender, e);
this._CalulateType = CalcuType.Involution;
_isNew = true;
numberStr = "";
txtValue.Text = "";
}
private void btnBackspace_Click(object sender, EventArgs e)
{
if (this.txtValue.Text.Length == 1)
{
this.txtValue.Text = "0";
}
else
{
this.txtValue.Text = txtValue.Text.Substring(0, txtValue.Text.Length - 1);//从0开始返回length-1个字符
}
}
private void btnPI_Click(object sender, EventArgs e)
{
if (_isNew)
{
_ValueL = Math.PI;
}
else
{
_ValueF = Math.PI;
}
this.txtValue.Text = Math.PI.ToString();
}
}
}
this.btnResult_Click(sender, e);
this._CalulateType = CalcuType.Addition;
_isNew = true;
numberStr = "";
txtValue.Text = "";
}
private void btnclear_Click(object sender, EventArgs e)
{
this._ValueL = null;
this._ValueF = null;
this._CalulateType = CalcuType.None;
txtValue.Text ="";
}
private void btnSubstraction_Click(object sender, EventArgs e)
{
this.btnResult_Click(sender, e);
this._CalulateType = CalcuType.Substraction;
_isNew = true;
numberStr = "";
txtValue.Text = "";
}
这里最后都是“”?
[解决办法]
说真的打开这个帖子看到一坨没有注释的代码我就…… 分数拿走
[解决办法]