C#编写的windows计算器时间:2024/7/2作者:未知来源:争怎路由网人气: using System; using System.Drawing; using System.Windows; using System.Windows.Forms; using System.Collections; using System.ComponentModel; using System.Data;
namespace comput { /// <summary> /// 这是一个计算器的简单实现。 /// </summary>
public class Form1 : System.Windows.Forms.Form { #region 控件声明 private System.Windows.Forms.TextBox txtShow; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.Button btn_rev; private System.Windows.Forms.Button btn_dot; private System.Windows.Forms.Button btn_add; private System.Windows.Forms.Button btn_equ; private System.Windows.Forms.Button btn_sign; private System.Windows.Forms.Button btn_sub; private System.Windows.Forms.Button btn_mul; private System.Windows.Forms.Button btn_0; private System.Windows.Forms.Button btn_3; private System.Windows.Forms.Button btn_2; private System.Windows.Forms.Button btn_1; private System.Windows.Forms.Button btn_6; private System.Windows.Forms.Button btn_5; private System.Windows.Forms.Button btn_4; private System.Windows.Forms.Button btn_sqrt; private System.Windows.Forms.Button btn_div; private System.Windows.Forms.Button btn_7; private System.Windows.Forms.Button btn_8; private System.Windows.Forms.Button btn_9; private System.Windows.Forms.MainMenu mainMenu1; private System.Windows.Forms.MenuItem menuItem1; private System.Windows.Forms.Button btn_sqr; private System.Windows.Forms.MenuItem menuItem2; private System.Windows.Forms.MenuItem menuItem3; private System.Windows.Forms.MenuItem menuItem4; private System.Windows.Forms.MenuItem menuItem5; private System.Windows.Forms.MenuItem menuItem6; private System.Windows.Forms.Button c; private System.Windows.Forms.Button ce; private System.Windows.Forms.MenuItem menuItem8; private System.Windows.Forms.MenuItem menuItem9; private System.Windows.Forms.MenuItem menuItem10; /// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.Container components = null; public Form1() { // // Windows 窗体设计器支持所必需的 // InitializeComponent();
// // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 // }
/// <summary> /// 清理所有正在使用的资源。 /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #endregion
#region 各控件的属性的方法Windows Form Designer generated code /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1)); this.txtShow = new System.Windows.Forms.TextBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.c = new System.Windows.Forms.Button(); this.ce = new System.Windows.Forms.Button(); this.btn_rev = new System.Windows.Forms.Button(); this.btn_dot = new System.Windows.Forms.Button(); this.btn_add = new System.Windows.Forms.Button(); this.btn_equ = new System.Windows.Forms.Button(); this.btn_sign = new System.Windows.Forms.Button(); this.btn_sub = new System.Windows.Forms.Button(); this.btn_mul = new System.Windows.Forms.Button(); this.btn_0 = new System.Windows.Forms.Button(); this.btn_3 = new System.Windows.Forms.Button(); this.btn_2 = new System.Windows.Forms.Button(); this.btn_1 = new System.Windows.Forms.Button(); this.btn_6 = new System.Windows.Forms.Button(); this.btn_5 = new System.Windows.Forms.Button(); this.btn_4 = new System.Windows.Forms.Button(); this.btn_sqrt = new System.Windows.Forms.Button(); this.btn_div = new System.Windows.Forms.Button(); this.btn_7 = new System.Windows.Forms.Button(); this.btn_8 = new System.Windows.Forms.Button(); this.btn_9 = new System.Windows.Forms.Button(); this.btn_sqr = new System.Windows.Forms.Button(); this.mainMenu1 = new System.Windows.Forms.MainMenu(); this.menuItem1 = new System.Windows.Forms.MenuItem(); this.menuItem2 = new System.Windows.Forms.MenuItem(); this.menuItem3 = new System.Windows.Forms.MenuItem(); this.menuItem4 = new System.Windows.Forms.MenuItem(); this.menuItem5 = new System.Windows.Forms.MenuItem(); this.menuItem6 = new System.Windows.Forms.MenuItem(); this.menuItem8 = new System.Windows.Forms.MenuItem(); this.menuItem9 = new System.Windows.Forms.MenuItem(); this.menuItem10 = new System.Windows.Forms.MenuItem(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // txtShow // this.txtShow.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(192)), ((System.Byte)(192)), ((System.Byte)(255))); this.txtShow.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.txtShow.ForeColor = System.Drawing.Color.Purple; this.txtShow.Location = new System.Drawing.Point(25, 8); this.txtShow.Name = "txtShow"; this.txtShow.Size = new System.Drawing.Size(228, 23); this.txtShow.TabIndex = 1; this.txtShow.Text = "0."; this.txtShow.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; // // groupBox1 // this.groupBox1.Controls.Add(this.c); this.groupBox1.Controls.Add(this.ce); this.groupBox1.Controls.Add(this.btn_rev); this.groupBox1.Controls.Add(this.btn_dot); this.groupBox1.Controls.Add(this.btn_add); this.groupBox1.Controls.Add(this.btn_equ); this.groupBox1.Controls.Add(this.btn_sign); this.groupBox1.Controls.Add(this.btn_sub); this.groupBox1.Controls.Add(this.btn_mul); this.groupBox1.Controls.Add(this.btn_0); this.groupBox1.Controls.Add(this.btn_3); this.groupBox1.Controls.Add(this.btn_2); this.groupBox1.Controls.Add(this.btn_1); this.groupBox1.Controls.Add(this.btn_6); this.groupBox1.Controls.Add(this.btn_5); this.groupBox1.Controls.Add(this.btn_4); this.groupBox1.Controls.Add(this.btn_sqrt); this.groupBox1.Controls.Add(this.btn_div); this.groupBox1.Controls.Add(this.btn_7); this.groupBox1.Controls.Add(this.btn_8); this.groupBox1.Controls.Add(this.btn_9); this.groupBox1.Controls.Add(this.btn_sqr); this.groupBox1.Location = new System.Drawing.Point(24, 40); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(232, 184); this.groupBox1.TabIndex = 21; this.groupBox1.TabStop = false; this.groupBox1.Text = "计算机区"; // // c // this.c.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.c.ForeColor = System.Drawing.Color.Red; this.c.Location = new System.Drawing.Point(178, 48); this.c.Name = "c"; this.c.Size = new System.Drawing.Size(36, 61); this.c.TabIndex = 41; this.c.Text = "C"; this.c.Click += new System.EventHandler(this.btn_Oper); // // ce // this.ce.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.ce.ForeColor = System.Drawing.Color.Red; this.ce.Location = new System.Drawing.Point(138, 16); this.ce.Name = "ce"; this.ce.Size = new System.Drawing.Size(76, 29); this.ce.TabIndex = 40; this.ce.Text = "CE"; this.ce.Click += new System.EventHandler(this.btn_Oper); // // btn_rev // this.btn_rev.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_rev.ForeColor = System.Drawing.Color.Blue; this.btn_rev.Location = new System.Drawing.Point(178, 112); this.btn_rev.Name = "btn_rev"; this.btn_rev.Size = new System.Drawing.Size(36, 29); this.btn_rev.TabIndex = 39; this.btn_rev.Text = "1/x"; this.btn_rev.Click += new System.EventHandler(this.btn_Oper); // // btn_dot // this.btn_dot.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_dot.Location = new System.Drawing.Point(98, 144); this.btn_dot.Name = "btn_dot"; this.btn_dot.Size = new System.Drawing.Size(36, 29); this.btn_dot.TabIndex = 38; this.btn_dot.Tag = "0"; this.btn_dot.Text = "."; this.btn_dot.Click += new System.EventHandler(this.btn_Oper); // // btn_add // this.btn_add.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_add.ForeColor = System.Drawing.Color.Red; this.btn_add.Location = new System.Drawing.Point(138, 144); this.btn_add.Name = "btn_add"; this.btn_add.Size = new System.Drawing.Size(36, 29); this.btn_add.TabIndex = 37; this.btn_add.Text = "+"; this.btn_add.Click += new System.EventHandler(this.btn_Oper); // // btn_equ // this.btn_equ.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_equ.ForeColor = System.Drawing.Color.Red; this.btn_equ.Location = new System.Drawing.Point(178, 144); this.btn_equ.Name = "btn_equ"; this.btn_equ.Size = new System.Drawing.Size(36, 29); this.btn_equ.TabIndex = 36; this.btn_equ.Text = "="; this.btn_equ.Click += new System.EventHandler(this.btn_equ_Click); // // btn_sign // this.btn_sign.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_sign.ForeColor = System.Drawing.Color.Blue; this.btn_sign.Location = new System.Drawing.Point(58, 144); this.btn_sign.Name = "btn_sign"; this.btn_sign.Size = new System.Drawing.Size(36, 29); this.btn_sign.TabIndex = 35; this.btn_sign.Text = "+/-"; this.btn_sign.Click += new System.EventHandler(this.btn_Oper); // // btn_sub // this.btn_sub.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_sub.ForeColor = System.Drawing.Color.Red; this.btn_sub.Location = new System.Drawing.Point(138, 112); this.btn_sub.Name = "btn_sub"; this.btn_sub.Size = new System.Drawing.Size(36, 29); this.btn_sub.TabIndex = 34; this.btn_sub.Text = "-"; this.btn_sub.Click += new System.EventHandler(this.btn_Oper); // // btn_mul // this.btn_mul.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_mul.ForeColor = System.Drawing.Color.Red; this.btn_mul.Location = new System.Drawing.Point(138, 80); this.btn_mul.Name = "btn_mul"; this.btn_mul.Size = new System.Drawing.Size(36, 29); this.btn_mul.TabIndex = 33; this.btn_mul.Text = "*"; this.btn_mul.Click += new System.EventHandler(this.btn_Oper); // // btn_0 // this.btn_0.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_0.ForeColor = System.Drawing.Color.Blue; this.btn_0.Location = new System.Drawing.Point(18, 144); this.btn_0.Name = "btn_0"; this.btn_0.Size = new System.Drawing.Size(36, 29); this.btn_0.TabIndex = 32; this.btn_0.Tag = "0"; this.btn_0.Text = "0"; this.btn_0.Click += new System.EventHandler(this.btn_0_Click); // // btn_3 // this.btn_3.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_3.ForeColor = System.Drawing.Color.Blue; this.btn_3.Location = new System.Drawing.Point(98, 112); this.btn_3.Name = "btn_3"; this.btn_3.Size = new System.Drawing.Size(36, 29); this.btn_3.TabIndex = 31; this.btn_3.Tag = "3"; this.btn_3.Text = "3"; this.btn_3.Click += new System.EventHandler(this.btn_0_Click); // // btn_2 // this.btn_2.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_2.ForeColor = System.Drawing.Color.Blue; this.btn_2.Location = new System.Drawing.Point(58, 112); this.btn_2.Name = "btn_2"; this.btn_2.Size = new System.Drawing.Size(36, 29); this.btn_2.TabIndex = 30; this.btn_2.Tag = "2"; this.btn_2.Text = "2"; this.btn_2.Click += new System.EventHandler(this.btn_0_Click); // // btn_1 // this.btn_1.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_1.ForeColor = System.Drawing.Color.Blue; this.btn_1.Location = new System.Drawing.Point(18, 112); this.btn_1.Name = "btn_1"; this.btn_1.Size = new System.Drawing.Size(36, 29); this.btn_1.TabIndex = 29; this.btn_1.Tag = "1"; this.btn_1.Text = "1"; this.btn_1.Click += new System.EventHandler(this.btn_0_Click); // // btn_6 // this.btn_6.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_6.ForeColor = System.Drawing.Color.Blue; this.btn_6.Location = new System.Drawing.Point(98, 80); this.btn_6.Name = "btn_6"; this.btn_6.Size = new System.Drawing.Size(36, 29); this.btn_6.TabIndex = 28; this.btn_6.Tag = "6"; this.btn_6.Text = "6"; this.btn_6.Click += new System.EventHandler(this.btn_0_Click); // // btn_5 // this.btn_5.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_5.ForeColor = System.Drawing.Color.Blue; this.btn_5.Location = new System.Drawing.Point(58, 80); this.btn_5.Name = "btn_5"; this.btn_5.Size = new System.Drawing.Size(36, 29); this.btn_5.TabIndex = 27; this.btn_5.Tag = "5"; this.btn_5.Text = "5"; this.btn_5.Click += new System.EventHandler(this.btn_0_Click); // // btn_4 // this.btn_4.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_4.ForeColor = System.Drawing.Color.Blue; this.btn_4.Location = new System.Drawing.Point(18, 80); this.btn_4.Name = "btn_4"; this.btn_4.Size = new System.Drawing.Size(36, 29); this.btn_4.TabIndex = 26; this.btn_4.Tag = "4"; this.btn_4.Text = "4"; this.btn_4.Click += new System.EventHandler(this.btn_0_Click); // // btn_sqrt // this.btn_sqrt.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_sqrt.ForeColor = System.Drawing.Color.Blue; this.btn_sqrt.Location = new System.Drawing.Point(18, 16); this.btn_sqrt.Name = "btn_sqrt"; this.btn_sqrt.Size = new System.Drawing.Size(76, 29); this.btn_sqrt.TabIndex = 25; this.btn_sqrt.Text = "sqrt"; this.btn_sqrt.Click += new System.EventHandler(this.btn_Oper); // // btn_div // this.btn_div.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_div.ForeColor = System.Drawing.Color.Red; this.btn_div.Location = new System.Drawing.Point(138, 48); this.btn_div.Name = "btn_div"; this.btn_div.Size = new System.Drawing.Size(36, 29); this.btn_div.TabIndex = 24; this.btn_div.Text = "/"; this.btn_div.Click += new System.EventHandler(this.btn_Oper); // // btn_7 // this.btn_7.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_7.ForeColor = System.Drawing.Color.Blue; this.btn_7.Location = new System.Drawing.Point(18, 48); this.btn_7.Name = "btn_7"; this.btn_7.Size = new System.Drawing.Size(36, 29); this.btn_7.TabIndex = 23; this.btn_7.Tag = "7"; this.btn_7.Text = "7"; this.btn_7.Click += new System.EventHandler(this.btn_0_Click); // // btn_8 // this.btn_8.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_8.ForeColor = System.Drawing.Color.Blue; this.btn_8.Location = new System.Drawing.Point(58, 48); this.btn_8.Name = "btn_8"; this.btn_8.Size = new System.Drawing.Size(36, 29); this.btn_8.TabIndex = 22; this.btn_8.Tag = "8"; this.btn_8.Text = "8"; this.btn_8.Click += new System.EventHandler(this.btn_0_Click); // // btn_9 // this.btn_9.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_9.ForeColor = System.Drawing.Color.Blue; this.btn_9.Location = new System.Drawing.Point(98, 48); this.btn_9.Name = "btn_9"; this.btn_9.Size = new System.Drawing.Size(36, 29); this.btn_9.TabIndex = 21; this.btn_9.Tag = "9"; this.btn_9.Text = "9"; this.btn_9.Click += new System.EventHandler(this.btn_0_Click); // // btn_sqr // this.btn_sqr.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))); this.btn_sqr.ForeColor = System.Drawing.Color.Blue; this.btn_sqr.Location = new System.Drawing.Point(98, 16); this.btn_sqr.Name = "btn_sqr"; this.btn_sqr.Size = new System.Drawing.Size(36, 29); this.btn_sqr.TabIndex = 19; this.btn_sqr.Text = "sqr"; this.btn_sqr.Click += new System.EventHandler(this.btn_Oper); // // mainMenu1 // this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.menuItem8, this.menuItem1, this.menuItem4}); // // menuItem1 // this.menuItem1.Index = 1; this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.menuItem2, this.menuItem3}); this.menuItem1.Text = "编辑(&E)"; // // menuItem2 // this.menuItem2.Index = 0; this.menuItem2.Text = "复制(&C)"; this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click); // // menuItem3 // this.menuItem3.Index = 1; this.menuItem3.Text = "粘贴(&P)"; this.menuItem3.Click += new System.EventHandler(this.menuItem3_Click); // // menuItem4 // this.menuItem4.Index = 2; this.menuItem4.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.menuItem5, this.menuItem6}); this.menuItem4.Text = "帮助(&H)"; // // menuItem5 // this.menuItem5.Index = 0; this.menuItem5.Text = "帮助主题(&H)"; this.menuItem5.Click += new System.EventHandler(this.menuItem5_Click); // // menuItem6 // this.menuItem6.Index = 1; this.menuItem6.Text = "关于(&A)"; this.menuItem6.Click += new System.EventHandler(this.menuItem6_Click); // // menuItem8 // this.menuItem8.Index = 0; this.menuItem8.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.menuItem9, this.menuItem10}); this.menuItem8.Text = "文件(&F)"; // // menuItem9 // this.menuItem9.Index = 0; this.menuItem9.Text = "打开windows计算器(&O)"; this.menuItem9.Click += new System.EventHandler(this.menuItem9_Click); // // menuItem10 // this.menuItem10.Index = 1; this.menuItem10.Text = "退出(&Q)"; this.menuItem10.Click += new System.EventHandler(this.menuItem10_Click); // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(278, 239); this.Controls.Add(this.groupBox1); this.Controls.Add(this.txtShow); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.Menu = this.mainMenu1; this.Name = "Form1"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "计算器"; this.groupBox1.ResumeLayout(false); this.ResumeLayout(false);
} #endregion
#region 各变量和常数的声明 public const int NULL = 0; // 定义操作码 public const int ADD = 1; //表示加 public const int SUB = 2; //减 public const int MUL = 3; //乘 public const int DIV = 4; //除 public const int SQR = 5; //求平方 public const int SQRT = 6; //求平方根 public const int NODOT = 0; // 定义是否点击了小数点,0 为没点 public const int HASDOT = 1; private double res = 0; // 记录结果数 private double tmp = 0; // 当前输入的操作数 private int opt = NULL; // 记录操作码 private int dot = NODOT; // 记录是否点击了小数点,0为没有点 private int num = 0; // 记录输入操作数的个数 private int dotnum = 0; // 记录小数点部分的个数 string strOper; //获取操作符 #endregion /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.Run(new Form1()); }
/// <summary> #region 获取操作数事件 //获取操作数事件 private void btn_0_Click(object sender, System.EventArgs e) { System.Windows.Forms.Button btnTmp; double i;
btnTmp = sender as System.Windows.Forms.Button; if (btnTmp != null) { if (dot == NODOT) { // 没有点击小数点 i = double.Parse(btnTmp.Tag.ToString()); //取用户自定义的控件关联数,并转换成double型 tmp = tmp * 10 + i; txtShow.Text = tmp.ToString(); //将其放入文本显示屏啊 } else // 点击了小数点 { dotnum++; //记录小数点部分的个数 // 生成小数部分的新的数值 i = double.Parse(btnTmp.Tag.ToString()) / System.Math.Pow(10,dotnum); tmp = tmp + i; //将小数点后的值加到当前操做数 txtShow.Text = tmp.ToString(); } } } #endregion
#region 等于事件和等于运算方法 //等于事件 private void btn_equ_Click(object sender, System.EventArgs e) { calc(); }
//等于运算方法 private void calc() { // 生成结果 if (num == 0 ) //是否有操作数,没有就返回0 { res = 0; tmp = 0; txtShow.Text = res.ToString(); return; }
switch (opt) //找到对应的运算符进行计算 { // 加法 case ADD: res = res + tmp; break; // 减法 case SUB: res = res - tmp; break; // 乘法 case MUL: res = res * tmp; break; // 除法 case DIV: res = res / tmp; break; // 平方 case SQR: res = tmp * tmp; break; // 平方根 case SQRT: res = System.Math.Sqrt(tmp); break; default: return; } txtShow.Text = res.ToString(); //结果输出到文本显示屏 opt = NULL; //运算符清空 tmp=0; dot = NODOT; //res = 0; //num = 0; } #endregion
#region 获取操作符运事件 //获取操作符运事件 private void btn_Oper(object obj,EventArgs ea) { Button tmp1=(Button)obj; strOper=tmp1.Text; switch (strOper) { case "/": //除法运算 if(opt!=NULL&&opt!=DIV) { calc(); } opt = DIV; if (num != 0) //判断操作数的个数,如果两个就做二元运算 { if (tmp != 0) res = res / tmp; } else res = tmp; num++; tmp = 0; txtShow.Text = res.ToString(); dot = NODOT; break; case "*": // 乘法运算 if(opt!=NULL&&opt!=MUL) { calc(); }
opt = MUL; if (num!= 0 ) //判断操作数的个数,如果两个就做二元运算 { if(tmp!=0) res = res * tmp; } else res = tmp; num++; tmp = 0; txtShow.Text = res.ToString(); dot = NODOT; break; case "+": //加法运算 if(opt!=NULL&&opt!=ADD) { calc(); } opt = ADD; if (num != 0) //判断操作数的个数,如果两个就做二元运算 res = res + tmp; else res = tmp; num++; tmp = 0; txtShow.Text = res.ToString(); dot = NODOT; break; case "-": //减法运算 if(opt!=NULL&&opt!=SUB) { calc(); } /*if(opt==ADD) { res=res+tmp; tmp=0; }*/ opt = SUB; if (num != 0) //判断操作数的个数,如果两个就做二元运算 res = res - tmp; else res = tmp; num++; tmp = 0; txtShow.Text = res.ToString(); dot = NODOT; break; case "sqrt": //平方根运算 if(opt!=NULL) { calc(); }
//opt=SQRT; if (tmp > 0) //要求操作数大于0 { res = Math.Sqrt(tmp); //res=tmp; } else if(res>0) res= Math.Sqrt(res); txtShow.Text =res.ToString(); num++; tmp=0; dot = NODOT; break; case "sqr": // 平方运算 if(opt!=NULL) { calc(); } //opt=SQR; if (tmp != 0) { res = tmp * tmp; //res=tmp; } else res=res*res; txtShow.Text = res.ToString(); num++; tmp=0; dot = NODOT; break; case "1/x": //倒数运算 if(opt!=NULL) { calc(); } if (tmp != 0) { res = 1 / tmp; //res=tmp; } else res=1/res; txtShow.Text = res.ToString(); tmp=0; dot = NODOT; break; case ".": // 点击了小数点 if(dot==HASDOT) return; else { dot = HASDOT; dotnum = 0; } break; case "+/-": // 点击了符号运算 if(tmp!=0) { tmp = -tmp; txtShow.Text = tmp.ToString(); } else { res=-res; //res=tmp; txtShow.Text = res.ToString(); } dot = NODOT; break; case "CE": //清除运算 res = 0; // 记录结果数 tmp = 0; // 当前输入的操作数 opt = NULL; // 记录操作码 dot = NODOT; // 记录是否点击了小数点 num = 0; // 记录输入操作数的个数 dotnum = 0; // 记录小数点部分的个数 txtShow.Text=""; break; case "C": //清除运算 res = 0; // 记录结果数 tmp = 0; // 当前输入的操作数 opt = NULL; // 记录操作码 dot = NODOT; // 记录是否点击了小数点 num = 0; // 记录输入操作数的个数 dotnum = 0; // 记录小数点部分的个数 txtShow.Text=""; break;
} }
#endregion
#region 主菜单事件 //打开关于主题---调用windows xp中计算器的帮助 private void menuItem5_Click(object sender, System.EventArgs e) { Help.ShowHelp(this,"C:\\WINDOWS\\Help\\calc.chm"); }
//打开于我们 private void menuItem6_Click(object sender, System.EventArgs e) { Form2 fm=new Form2(); fm.Show(); }
//复制 private void menuItem2_Click(object sender, System.EventArgs e) { if(txtShow.SelectionLength>0) { txtShow.Copy(); } } // //粘贴 private void menuItem3_Click(object sender, System.EventArgs e) { txtShow.Paste(); } //调用windows xp中的计算器 private void menuItem9_Click(object sender, System.EventArgs e) { Help.ShowHelp(this,"C:\\WINDOWS\\system32\\calc.exe"); } //退出 private void menuItem10_Click(object sender, System.EventArgs e) { Application.Exit(); }
#endregion
} } 关键词:C#编写的windows计算器 | |