学了一段时间C#,决定写个最简单的应用程序——计算器【记录贴】
准备工作
所需工具
- Visual Studio 2017
- 一个机智的大脑
项目开始V1.0
主体窗口
- 打开软件,创建Windows应用程序项目,创建如下简易计算器。(17个Button 1个Textbox)
- 设置Textbox属性只读(readonly=true)
代码部分
- 在代码通用段定义公共变量用来接收操作数、运算结果以及判断输入的是否为小数,代码如下。
12double num1, num2, reasult;//num1,num2用于保存操作数,reasult用于保存运算结果bool decimalFlag = false;//decimaFlag判断是否为小数,默认为false(不是小数)
- 编写一个名为“NumClick”的方法,单击数字按钮时,调用NumClick方法,将输入的数字追加到文本框中。
1234567891011121314public void NumClick(int myNumber){if (decimalFlag)//输入小数{textBox1.Text = textBox1.Text + myNumber;}else//输入整数{if(textBox1.Text == "0.")//如果是整数的第一个数textBox1.Text = myNumber + ".";elsetextBox1.Text = textBox1.Text.Substring(0, textBox1.Text.Length - 1) + myNumber + ".";}}
- 编写窗体载入事件,初始化计算器。
12345private void Form1_Load(object sender, EventArgs e){textBox1.Text = "0."; //计算器屏幕初始显示值textBox1.TextAlign = HorizontalAlignment.Right;//计算器屏幕文字输出向右对齐}
- 编写数字【0】到【9】单击事件代码(引用NumClick()方法)
12345678910111213141516171819private 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);}
- 编写小数点按钮【.】的单击事件代码。
1234private void button11_Click(object sender, EventArgs e){decimalFlag = true;}
- 编写复位按钮【C】的单击事件代码。
1234567private void button12_Click(object sender, EventArgs e){num1 = 0;num2 = 0;//初始化操作数decimalFlag = false;textBox1.Text = "0.";//初始化计算器屏幕}
- 编写【+】、【-】、【*】、【/】按钮的单击事件代码。
12345678910111213141516171819202122232425262728293031private void button13_Click(object sender, EventArgs e){myOperator = "add";//保存运算符 加号num1 = double.Parse(textBox1.Text);//保存操作数1textBox1.Text = "0.";//初始化计算器屏幕,待输入操作数2decimalFlag = 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;}
- 最后编写【=】按钮的单击事件代码。
1234567891011121314151617181920212223242526272829private void button17_Click(object sender, EventArgs e){num2 = double.Parse(textBox1.Text);//保存操作数2switch(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;}}
程序文件夹/bin/Debug/
目录下的exe文件,你也可以直接下载
成品预览
计算器V1.0下载
升级改进V2.0
升级记录
- 新增 右边运算记录
- 修复 一次运算结束后,按数字键会出错的问题
- 修复 多次点击等号,一直输出的问题
- 打开程序部分按钮禁止点击
成品预览
计算器V2.0下载
如果大家有什么好的建议可以在评论区留言!
就是这样摁,1+2*3=,能以正常输出结果吗?我感觉好像不能。
不能吧,只能1+2然后=,出结果了可以*3。你要完善就多多想想吧,这是个入门的demo,没考虑那么多
支持