📄 form1.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace jsq
{
public partial class Form1 : Form
{
double num1 = 0, num2 = 0, result = 0;
int type = 0;
int dot_num = 1;
bool is_num1 = false;
bool is_dot = false;
bool doted = false;
int countAdd = 0, countSub = 0, countMul = 0, countDiv = 0;
public void sc(int numb)
{
if (is_num1 == false)
{
if (is_dot == true)
{
double tempNum = 1;
for (int i = 0; i < dot_num; i++)
tempNum = 10 * tempNum;
num1 = num1 + (double)numb / (double)(tempNum);
dot_num++;
}
else
{
num1 = num1 * 10 + numb;
}
textResualt.Text = num1.ToString();
}
else
{
if (is_dot == true)
{
double tempNum = 1;
for (int i = 0; i < dot_num; i++)
{
tempNum = 10 * tempNum;
}
num2 = num2 + (double)numb / (double)(tempNum);
dot_num++;
}
else
{
num2 = num2 * 10 + numb;
}
textResualt.Text = num2.ToString();
}
}
public void calType()
{
is_num1 = true;
dot_num = 1;
is_dot = false;
doted = false;
countAdd = 0;
countSub = 0;
countMul = 0;
countDiv = 0;
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.Text = "计算器";
}
private void buttonNum1_Click(object sender, EventArgs e)
{
sc(1);
}
private void buttonNum0_Click(object sender, EventArgs e)
{
sc(0);
}
private void buttonNum2_Click(object sender, EventArgs e)
{
sc(2);
}
private void buttonNum3_Click(object sender, EventArgs e)
{
sc(3);
}
private void buttonNum4_Click(object sender, EventArgs e)
{
sc(4);
}
private void buttonNum5_Click(object sender, EventArgs e)
{
sc(5);
}
private void buttonNum6_Click(object sender, EventArgs e)
{
sc(6);
}
private void buttonNum7_Click(object sender, EventArgs e)
{
sc(7);
}
private void buttonNum8_Click(object sender, EventArgs e)
{
sc(8);
}
private void buttonNum9_Click(object sender, EventArgs e)
{
sc(9);
}
private void buttonDecimal_Click(object sender, EventArgs e)
{
is_dot = true;
if (doted == false)
{
doted = true;
dot_num = 1;
}
}
private void buttonAddition_Click_1(object sender, EventArgs e)
{
type = 1;
if (countAdd < countSub)
num1 = num1 - num2;
else
{
if (countAdd < countMul)
num1 = num1 * num2;
else
{
if (countAdd < countDiv)
num1 = num1 / num2;
else
num1 = num1 + num2;
}
}
result = num1;
textResualt.Text = num1.ToString();
calType();
num2 = 0;
countAdd++;
}
private void buttonSubtration_Click(object sender, EventArgs e)
{
type = 2;
if (countSub < countAdd)
num1 = num1 + num2;
else
{
if (countSub < countMul)
num1 = num1 * num2;
else
{
if (countSub < countDiv)
num1 = num1 / num2;
else
num1 = num1 - num2;
}
}
result = num1;
textResualt.Text = num1.ToString();
calType();
num2 = 0;
countSub++;
}
private void buttonMultiplication_Click(object sender, EventArgs e)
{
type = 3;
double num3 = 1;
if (num2 == 0)
num1 = num1 * num3;
else
{
if (countMul < countDiv)
num1 = num1 / num2;
else
{
if (countMul < countAdd)
num1 = num1 + num2;
else
{
if (countMul < countSub)
num1 = num1 - num2;
else
num1 = num1 * num2;
}
}
}
result = num1;
textResualt.Text = num1.ToString();
calType();
num2 = 0;
countMul++;
}
private void buttonDivision_Click(object sender, EventArgs e)
{
type = 4;
if (num2 == 0)
textResualt.Text = "除数不能为'0'!!!";
else
{
if (countDiv < countMul)
num1 = num1 / num2;
else
{
if (countDiv < countAdd)
num1 = num1 + num2;
else
{
if (countDiv < countSub)
num1 = num1 - num2;
else
num1 = num1 * num2;
}
}
}
result = num1;
textResualt.Text = num1.ToString();
calType();
num2 = 0;
countDiv++;
}
private void buttonEqual_Click(object sender, EventArgs e)
{
switch (type)
{
case 1: result = num1 + num2;
num1 = result;
break;
case 2: result = num1 - num2;
num1 = result;
break;
case 3: result = num1 * num2;
num1 = result;
break;
case 4: result = num1 / num2;
num1 = result;
break;
}
textResualt.Text = result.ToString();
num2 = 0;
calType();
}
private void buttonClear_Click(object sender, EventArgs e)
{
textResualt.Text = "0";
num1 = 0;
num2 = 0;
result = 0;
type = 0;
dot_num = 1;
is_num1 = false;
is_dot = false;
doted = false;
countAdd = 0;
countSub = 0;
countMul = 0;
countDiv = 0;
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.D0 || e.KeyCode == Keys.NumPad0)
sc(0);
if (e.KeyCode == Keys.D1 || e.KeyCode == Keys.NumPad1)
sc(1);
if (e.KeyCode == Keys.D2 || e.KeyCode == Keys.NumPad2)
sc(2);
if (e.KeyCode == Keys.D3 || e.KeyCode == Keys.NumPad3)
sc(3);
if (e.KeyCode == Keys.D4 || e.KeyCode == Keys.NumPad4)
sc(4);
if (e.KeyCode == Keys.D5 || e.KeyCode == Keys.NumPad5)
sc(5);
if (e.KeyCode == Keys.D6 || e.KeyCode == Keys.NumPad6)
sc(6);
if (e.KeyCode == Keys.D7 || e.KeyCode == Keys.NumPad7)
sc(7);
if (e.KeyCode == Keys.D8 || e.KeyCode == Keys.NumPad8)
sc(8);
if (e.KeyCode == Keys.D9 || e.KeyCode == Keys.NumPad9)
sc(9);
if (e.KeyCode == Keys.Divide)
{
type = 4;
if (num2 == 0)
textResualt.Text = "除数不能为'0'!!!";
else
{
if (countDiv < countMul)
num1 = num1 / num2;
else
{
if (countDiv < countAdd)
num1 = num1 + num2;
else
{
if (countDiv < countSub)
num1 = num1 - num2;
else
num1 = num1 * num2;
}
}
}
result = num1;
textResualt.Text = num1.ToString();
calType();
num2 = 0;
countDiv++;
}
if (e.KeyCode == Keys.Multiply)
{
type = 3;
double num3 = 1;
if (num2 == 0)
num1 = num1 * num3;
else
{
if (countMul < countDiv)
num1 = num1 / num2;
else
{
if (countMul < countAdd)
num1 = num1 + num2;
else
{
if (countMul < countSub)
num1 = num1 - num2;
else
num1 = num1 * num2;
}
}
}
result = num1;
textResualt.Text = num1.ToString();
calType();
num2 = 0;
countMul++;
}
if (e.KeyCode == Keys.Add)
{
type = 1;
if (countAdd < countSub)
num1 = num1 - num2;
else
{
if (countAdd < countMul)
num1 = num1 * num2;
else
{
if (countAdd < countDiv)
num1 = num1 / num2;
else
num1 = num1 + num2;
}
}
result = num1;
textResualt.Text = num1.ToString();
calType();
num2 = 0;
countAdd++;
}
if (e.KeyCode == Keys.Subtract)
{
type = 2;
if (countSub < countAdd)
num1 = num1 + num2;
else
{
if (countSub < countMul)
num1 = num1 * num2;
else
{
if (countSub < countDiv)
num1 = num1 / num2;
else
num1 = num1 - num2;
}
}
result = num1;
textResualt.Text = num1.ToString();
calType();
num2 = 0;
countSub++;
}
if (e.KeyCode == Keys.Enter)
{
switch (type)
{
case 1: result = num1 + num2;
num1 = result;
break;
case 2: result = num1 - num2;
num1 = result;
break;
case 3: result = num1 * num2;
num1 = result;
break;
case 4: result = num1 / num2;
num1 = result;
break;
}
textResualt.Text = result.ToString();
num2 = 0;
calType();
}
if (e.KeyCode == Keys.Decimal)
{
is_dot = true;
if (doted == false)
{
doted = true;
dot_num = 1;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -