




已阅读5页,还剩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 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 = f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 回转窑球团焙烧工专项考核试卷及答案
- 国际刑事司法合作的现状与展望-洞察及研究
- 黑龙江省教育机构教师劳动合同履行监督办法
- 绿色能源项目合作保密与环境监测合同
- 铁合金高炉冶炼工作业指导书
- 青岛法官千里追击严惩拒执人破坏证据合同行为
- 2025年智慧物流园区智能化管理解决方案研究报告
- 2025年菜行业研究报告及未来行业发展趋势预测
- 2025年氟硅材料行业研究报告及未来行业发展趋势预测
- 2025年防静电材料行业研究报告及未来行业发展趋势预测
- 重庆中医药学院2025年第二季度考核招聘工作人员笔试备考题库及答案详解一套
- 资阳市安岳县县属国有企业招聘(33人)考前自测高频考点模拟试题附答案详解
- 2025北京平谷区初三二模数学试题及答案
- 边境巡逻无人机2025市场细分与增长潜力分析
- 2025年四川省资阳市中考真题化学试题(无答案)
- 生态农庄设计规划课件
- 《工程制图完整》课件
- 互换性与测量技术基础总复习题与答案
- 北京工业地产工业园区调研报告
- 脑室和脑池解剖
- 英国文学各个时期介绍超全
评论
0/150
提交评论