首页 用c_编写计算器

用c_编写计算器

举报
开通vip

用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 Study { public partial class Form1 : Form { ...

用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 Study { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private int opMain = 0; // 运算类型,其中1(加法) 2(减法) 3(乘法) 4(除法) private double mainNum1 = 0; // 存储第一个数 private double mainNum2 = 0; // 存储第二个数 private bool isSecond = false; // 用来判断输入的是第一个还是第二个数 private bool isDone = false; // 用来判断是否按了等于按钮 private bool isDecimal = false; // 用来判断是否有小数 private bool isNokeydown = false;// 用来判断是否没输入第二个数而按了"="号键 private bool isKeyupclear = true;//用来判断是否按了clear键,程序开始前默认按了; public void setText(string textest) //设置文本框的值 { if (textest.Equals("clear")) { textBox1.Text = "0."; isSecond = false; isDone = false; isDecimal = false; isKeyupclear = true; } else { if (isSecond) { textBox1.Text = textest; isSecond = false; isDecimal = false; } else { if (isDone) { textBox1.Text = textest; isDone = false; } else { if (isKeyupclear) //对是否按下clear键的判断 { textBox1.Text = textest; isKeyupclear = false; } else textBox1.Text += textest; } } } btnEqual.Select(); //设置"="号的焦点 } public void Calc(double num1, double num2, int op) { double answer = 0; switch (op) //判断所进行的运算 { case 1: answer = num1 + num2; break; case 2: answer = num1 - num2; break; case 3: answer = num1 * num2; break; case 4: answer = num1 / num2; break; case 5: answer = num1 % num2; break; } setText(answer.ToString()); //显示结果 } //执行运算 private void doEquals() { if (isNokeydown) //判断已经输入第二个数后按了"="号键 { mainNum2 = double.Parse(textBox1.Text); setText("clear"); Calc(mainNum1, mainNum2, opMain); isDone = true; isNokeydown = false; } } //切换正负 private void changeSign() { double storNum; if (textBox1.Text.Length > 0) { storNum = double.Parse(textBox1.Text); storNum *= -1; textBox1.Text = storNum.ToString(); } btnEqual.Select(); //设置"="号的焦点 } //设置运算类型 private void setOperator(int operation) { if (textBox1.Text.Length > 0) { opMain = operation; mainNum1 = double.Parse(textBox1.Text); isSecond = true; isDone = false; isNokeydown = true; btnEqual.Select(); //设置"="号的焦点 } } //设置小数点 private void setDecimal() { if (!isDecimal) { setText("."); isDecimal = true; } btnEqual.Select(); //设置"="号的焦点 } //开平方 private void doSquart() { double storNum; storNum = double.Parse(textBox1.Text); if (storNum > 0) { storNum = Math.Sqrt(storNum); textBox1.Text = storNum.ToString(); } else textBox1.Text = "负数不能开平方。"; btnEqual.Select(); //设置"="号的焦点 } //求倒数 private void doreciprocal() { double storNum; storNum = double.Parse(textBox1.Text); if (storNum != 0) { storNum = 1 / storNum; textBox1.Text = storNum.ToString(); } else textBox1.Text = "除数不能为零。"; btnEqual.Select(); } private void btn7_Click(object sender, EventArgs e) { setText("7"); } private void btn8_Click(object sender, EventArgs e) { setText("8"); } private void btn9_Click(object sender, EventArgs e) { setText("9"); } private void btn4_Click(object sender, EventArgs e) { setText("4"); } private void btn5_Click(object sender, EventArgs e) { setText("5"); } private void btn6_Click(object sender, EventArgs e) { setText("6"); } private void btn1_Click(object sender, EventArgs e) { setText("1"); } private void btn2_Click(object sender, EventArgs e) { setText("2"); } private void btn3_Click(object sender, EventArgs e) { setText("3"); } private void btn0_Click(object sender, EventArgs e) { setText("0"); } private void btnPoint_Click(object sender, EventArgs e) { setDecimal(); } private void btnSubtract_Click(object sender, EventArgs e)//正负号交换 { changeSign(); } private void btnEqual_Click(object sender, EventArgs e) { doEquals(); } private void btnAdd_Click(object sender, EventArgs e) { setOperator(1); } private void btnSub_Click(object sender, EventArgs e) { setOperator(2); } private void btnMulti_Click(object sender, EventArgs e) { setOperator(3); } private void btnDivide_Click(object sender, EventArgs e) { setOperator(4); } private void btnC_Click(object sender, EventArgs e)//清除键 { isSecond = false; setText("clear"); } private void btnSqrt_Click(object sender, EventArgs e)//开平方 { doSquart(); } private void btnPercentage_Click(object sender, EventArgs e)//求模 { setOperator(5); } private void btnReciprocal_Click(object sender, EventArgs e)//求倒 { doreciprocal(); } private void btnCE_Click(object sender, EventArgs e)//CE { isSecond = false; setText("clear"); } private void btnBackspace_Click(object sender, EventArgs e)//退格键 { string old = textBox1.Text; if (old.Length >1&&old!="0.") textBox1.Text = old.Substring(0, old.Length - 1); else textBox1.Text = "0."; } } }
本文档为【用c_编写计算器】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_655467
暂无简介~
格式:doc
大小:42KB
软件:Word
页数:7
分类:
上传时间:2012-07-06
浏览量:94