C#的简单应用——使用VS2017写一个简易计算器
学了一段时间C#,决定写个最简单的应用程序——计算器【记录贴】
准备工作
所需工具
Visual Studio 2017
一个机智的大脑
项目开始V1.0
主体窗口
打开软件,创建Windows应用程序项目,创建如下简易计算器。(17个Button 1个Textbox)
设置Textbox属性只读(readonly=true)
代码部分
在代码通用段定义公共变量用来接收操作数、运算结果以及判断输入的是否为小数,代码如下。
1
2
double num1, num2, reasult;//num1,num2用于保存操作数,reasult用于保存运算结果
bool decimalFlag = false;//decimaFlag判断是否为小数,默认为false(不是小数)
编写一个名为“NumClick”的方法,单击数字按钮时,调用NumClick方法,将输入的数字追加到文本框中。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public void NumClick(int myNumber)
{
if (decimalFlag)//输入小数
{
textBox1.Text = textBox1.Text + myNumber;
}
else//输入整数
{
if(textBox1.Text == "0.")//如果是整数的第一个数
textBox1.Text = myNumber + ".";
else
textBox1.Text = textBox1.Text.Substring(0, textBox1.Text.Length - 1) + myNumber + ".";
}
}
编写窗体载入事件,初始化计算器。
1
2
3
4
5
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = "0."; //计算器屏幕初始显示值
textBox1.TextAlign = HorizontalAlignment.Right;//计算器屏幕文字输出向右对齐
}
编写数字【0】到【9】单击事件代码(引用NumClick()方法)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private void button1_Click(object sender, EventArgs e)
{
NumClick(1);
}
private void button2_Click(object sender, EventArgs e)
{
NumClick(2);
}
private void button3_Click(object sender, EventArgs e)
{
NumClick(3);
}
/*此处省略部分代码···*/
private void button10_Click(object sender, EventArgs e)
{
NumClick(0);
}
编写小数点按钮【.】的单击事件代码。
1
2
3
4
private void button11_Click(object sender, EventArgs e)
{
decimalFlag = true;
}
编写复位按钮【C】的单击事件代码。
1
2
3
4
5
6
7
private void button12_Click(object sender, EventArgs e)
{
num1 = 0;
num2 = 0;//初始化操作数
decimalFlag = false;
textBox1.Text = "0.";//初始化计算器屏幕
}
编写【+】、【-】、【*】、【/】按钮的单击事件代码。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
private void button13_Click(object sender, EventArgs e)
{
myOperator = "add";//保存运算符 加号
num1 = double.Parse(textBox1.Text);//保存操作数1
textBox1.Text = "0.";//初始化计算器屏幕,待输入操作数2
decimalFlag = false;
}
private void button14_Click(object sender, EventArgs e)
{
myOperator = "sub";//保存运算符 减号
num1 = double.Parse(textBox1.Text);
textBox1.Text = "0.";
decimalFlag = false;
}
private void button15_Click(object sender, EventArgs e)
{
myOperator = "mul";//保存运算符 乘号
num1 = double.Parse(textBox1.Text);
textBox1.Text = "0.";
decimalFlag = false;
}
private void button16_Click(object sender, EventArgs e)
{
myOperator = "div";//保存运算符 除号
num1 = double.Parse(textBox1.Text);
textBox1.Text = "0.";
decimalFlag = false;
}
最后编写【=】按钮的单击事件代码。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
private void button17_Click(object sender, EventArgs e)
{
num2 = double.Parse(textBox1.Text);//保存操作数2
switch(myOperator)//用switch进行响应的分支操作
{
case "add"://加号
reasult = num1 + num2;
textBox1.Text = reasult.ToString();
break;
case "sub"://减号
reasult = num1 - num2;
textBox1.Text = reasult.ToString();
break;
case "mul"://乘号
reasult = num1 * num2;
textBox1.Text = reasult.ToString();
break;
case "div"://除号
if(num2 == 0)//除数为0报错
{
textBox1.Text = "除数不能为“0”!";
}
else {
reasult = num1 / num2;
textBox1.Text = reasult.ToString();
}
break;
}
}
至此,一个简易的计算器1.0就完成了。编译运行,程序成品为程序文件夹/bin/Debug/
目录下的exe文件,你也可以直接下载
成品预览
计算器V1.0下载
升级改进V2.0
升级记录
新增 右边运算记录
修复 一次运算结束后,按数字键会出错的问题
修复 多次点击等号,一直输出的问题
打开程序部分按钮禁止点击
成品预览
计算器V2.0下载
原文地址:https://www.qcgzxw.cn/?p=2490
- 点赞
- 收藏
- 关注作者
评论(0)