简易计算器C界面设计与代码
简易计算器C#界面设计与代码
简易计算器是用vs2008编译的c#程序,仅供参考,存在不足之处,望大家见谅!windows界面设计
using System;
using System.Collections.Generic;
using https://www.360docs.net/doc/681535140.html,ponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace简易计算器
{
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 changeSign()
double storNum;
if (textBox1.Text.Length > 0)
{
storNum = double.Parse(textBox1.Text);
storNum *= -1;
textBox1.Text = storNum.ToString();
}
btnEqual.Select(); //设置"="号的焦点
}
//执行运算
private void doEquals()
{
if (isNokeydown) //判断已经输入第二个数后按了"="号键
{
mainNum2 = double.Parse(textBox1.Text);
setText("clear");
Calc(mainNum1, mainNum2, opMain);
isDone = true;
isNokeydown = false;
}
}
//设置运算类型
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 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 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 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 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 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.";
}
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 btnπ_Click(object sender, EventArgs e)
{
setText("3.1415926");
}
private void btnPercentage_Click(object sender, EventArgs e) {
setOperator(5);
}
private void btnReciprocal_Click(object sender, EventArgs e) {
doreciprocal();
}
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 btnsquare_Click(object sender, EventArgs e)