WindowsForm 计算器
计算器

可以分一下类
数字键
+ - * / %
=和撤销
归零C最简单
下面看一下计算器具体的代码
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 WindowsFormsApplication4
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
} //记录是否刚点过运算符
private bool isok = true;
//记录结果
private decimal Sum;
//记录上一次的运算符
private string PreYunsuanfu;
//记录表达式
private string Biaodashi; private void btnling_Click(object sender, EventArgs e)
{
if (isok)
{
txtshuru.Text = "";
// isok = false;
}
else
{
txtshuru.Text += "";
}
} private void btnyi_Click(object sender, EventArgs e)
{
if (isok)
{
txtshuru.Text = "";
isok = false;
}
else
{
txtshuru.Text += "";
}
} private void btner_Click(object sender, EventArgs e)
{
if (isok)
{
txtshuru.Text = "";
isok = false;
}
else
{
txtshuru.Text += "";
}
} private void btnsan_Click(object sender, EventArgs e)
{
if (isok)
{
txtshuru.Text = "";
isok = false;
}
else
{
txtshuru.Text += "";
}
} private void btnsi_Click(object sender, EventArgs e)
{
if (isok)
{
txtshuru.Text = "";
isok = false;
}
else
{
txtshuru.Text += "";
}
} private void btnwu_Click(object sender, EventArgs e)
{
if (isok)
{
txtshuru.Text = "";
isok = false;
}
else
{
txtshuru.Text += "";
}
} private void btnliu_Click(object sender, EventArgs e)
{
if (isok)
{
txtshuru.Text = "";
isok = false;
}
else
{
txtshuru.Text += "";
}
} private void btnqi_Click(object sender, EventArgs e)
{
if (isok)
{
txtshuru.Text = "";
isok = false;
}
else
{
txtshuru.Text += "";
}
} private void btnba_Click(object sender, EventArgs e)
{
if (isok)
{
txtshuru.Text = "";
isok = false;
}
else
{
txtshuru.Text += "";
}
} private void btnjiu_Click(object sender, EventArgs e)
{
if (isok)
{
txtshuru.Text = "";
isok = false;
}
else
{
txtshuru.Text += "";
}
} private void btnjia_Click(object sender, EventArgs e)
{
if (PreYunsuanfu == null)
{
Sum = decimal.Parse(txtshuru.Text);
Biaodashi = txtshuru.Text;
}
else
{
if (!isok)
{
if (PreYunsuanfu == "+")
{
Sum = Sum + decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "-")
{
Sum = Sum - decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "*")
{
Sum = Sum * decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "/")
{
Sum = Sum / decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "%")
{
Sum = Sum % decimal.Parse(txtshuru.Text);
} Biaodashi = Biaodashi + PreYunsuanfu + txtshuru.Text;
}
} txtjisuanshi.Text = Biaodashi + "+";
PreYunsuanfu = "+";
isok = true;
txtshuru.Text = Sum.ToString();
} private void btnjian_Click(object sender, EventArgs e)
{
if (PreYunsuanfu == null)
{
Sum = decimal.Parse(txtshuru.Text);
Biaodashi = txtshuru.Text;
}
else
{
if (!isok)
{
if (PreYunsuanfu == "+")
{
Sum = Sum + decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "-")
{
Sum = Sum - decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "*")
{
Sum = Sum * decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "/")
{
Sum = Sum / decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "%")
{
Sum = Sum % decimal.Parse(txtshuru.Text);
} Biaodashi = Biaodashi + PreYunsuanfu + txtshuru.Text;
}
} txtjisuanshi.Text = Biaodashi + "-";
PreYunsuanfu = "-";
isok = true;
txtshuru.Text = Sum.ToString();
} private void btncheng_Click(object sender, EventArgs e)
{
if (PreYunsuanfu == null)
{
Sum = decimal.Parse(txtshuru.Text);
Biaodashi = txtshuru.Text;
}
else
{
if (!isok)
{
if (PreYunsuanfu == "+")
{
Sum = Sum + decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "-")
{
Sum = Sum - decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "*")
{
Sum = Sum * decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "/")
{
Sum = Sum / decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "%")
{
Sum = Sum % decimal.Parse(txtshuru.Text);
} Biaodashi = Biaodashi + PreYunsuanfu + txtshuru.Text;
}
} txtjisuanshi.Text = Biaodashi + "*";
PreYunsuanfu = "*";
isok = true;
txtshuru.Text = Sum.ToString();
} private void btnchu_Click(object sender, EventArgs e)
{
if (PreYunsuanfu == null)
{
Sum = decimal.Parse(txtshuru.Text);
Biaodashi = txtshuru.Text;
}
else
{
if (!isok)
{
if (PreYunsuanfu == "+")
{
Sum = Sum + decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "-")
{
Sum = Sum - decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "*")
{
Sum = Sum * decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "/")
{
Sum = Sum / decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "%")
{
Sum = Sum % decimal.Parse(txtshuru.Text);
} Biaodashi = Biaodashi + PreYunsuanfu + txtshuru.Text;
}
} txtjisuanshi.Text = Biaodashi + "/";
PreYunsuanfu = "/";
isok = true;
txtshuru.Text = Sum.ToString();
} private void btnmo_Click(object sender, EventArgs e)
{
if (PreYunsuanfu == null)
{
Sum = decimal.Parse(txtshuru.Text);
Biaodashi = txtshuru.Text;
}
else
{
if (!isok)
{
if (PreYunsuanfu == "+")
{
Sum = Sum + decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "-")
{
Sum = Sum - decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "*")
{
Sum = Sum * decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "/")
{
Sum = Sum / decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "%")
{
Sum = Sum % decimal.Parse(txtshuru.Text);
} Biaodashi = Biaodashi + PreYunsuanfu + txtshuru.Text;
}
} txtjisuanshi.Text = Biaodashi + "%";
PreYunsuanfu = "%";
isok = true;
txtshuru.Text = Sum.ToString();
} private void btnClear_Click(object sender, EventArgs e)
{
txtshuru.Text = "";
txtjisuanshi.Text = "";
isok = true;
PreYunsuanfu = null;
Sum = ;
Biaodashi = "";
} private void btnchexiao_Click(object sender, EventArgs e)
{
if (!isok)
{
if (txtshuru.Text.Length == )
{
txtshuru.Text = "";
isok = true;
}
else
{
txtshuru.Text = txtshuru.Text.Substring(, txtshuru.Text.Length - );
}
}
} private void btndian_Click(object sender, EventArgs e)
{
if (txtshuru.Text == "")
{
txtshuru.Text = "0.";
}
if (!isok && !txtshuru.Text.Contains("."))
{
txtshuru.Text += ".";
}
isok = false;
} private void btndeng_Click(object sender, EventArgs e)
{
txtjisuanshi.Text = "";
if (PreYunsuanfu == "+")
{
Sum = Sum + decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "-")
{
Sum = Sum - decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "*")
{
Sum = Sum * decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "/")
{
Sum = Sum / decimal.Parse(txtshuru.Text);
}
if (PreYunsuanfu == "%")
{
Sum = Sum % decimal.Parse(txtshuru.Text);
}
txtshuru.Text = Sum.ToString();
isok = true;
Biaodashi = "";
Sum = ;
PreYunsuanfu = null;
} private void btnzhengfu_Click(object sender, EventArgs e)
{
if (!isok)
{
if (decimal.Parse(txtshuru.Text) > )
{
txtshuru.Text = "-" + txtshuru.Text;
}
else
{
txtshuru.Text = txtshuru.Text.Substring();
}
}
} }
}
计算器 很详细的
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 FirstForm
{
public partial class JiSuanQi : Form
{
public JiSuanQi()
{
InitializeComponent();
} private double sum=;
private string biaodashi;
private string Preyunsuanfu;//存放之前的运算符
private bool isok = true;//用来判断是否刚刚点过运算符 private void btnling_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
if (isok)
{
txtshuru.Text = btn.Text;
isok = false;
}
else
{
txtshuru.Text += btn.Text;
} } private void btnjia_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
string yunsuanfu = btn.Text;
if (Preyunsuanfu == null)
{
biaodashi += txtshuru.Text;
sum = double.Parse(txtshuru.Text);
}
else
{
if (!isok)
{
if (Preyunsuanfu == "+")
{
sum += double.Parse(txtshuru.Text);
}
if (Preyunsuanfu == "-")
{
sum -= double.Parse(txtshuru.Text);
}
if (Preyunsuanfu == "*")
{
sum *= double.Parse(txtshuru.Text);
}
if (Preyunsuanfu == "/")
{
sum /= double.Parse(txtshuru.Text);
}
if (Preyunsuanfu == "%")
{
sum %= double.Parse(txtshuru.Text);
} biaodashi = biaodashi+ Preyunsuanfu + txtshuru.Text;
txtshuru.Text = sum.ToString();
}
}
txtjisuanshi.Text = biaodashi + yunsuanfu;
Preyunsuanfu = yunsuanfu;
isok = true; } private void btndeng_Click(object sender, EventArgs e)
{ } private void btnchexiao_Click(object sender, EventArgs e)
{ }
}
}
计算器 另一种方法
WindowsForm 计算器的更多相关文章
- C#中WindowsForm常见控件的运用
C#中WindowsForm常见控件的运用 -- 1.button(曹操,贡天子以令不臣): 属性;text:我们经常可以看见将按钮命名为“登入”,在其属性面板里面编辑text即可:如下图: ...
- 1.C#WinForm基础制作简单计算器
利用c#语言编写简单计算器: 核心知识点: MessageBox.Show(Convert.ToString(comboBox1.SelectedIndex));//下拉序号 MessageBox.S ...
- 自己动手写计算器v1.1
这个改动主要是使用工厂模式替代了简单工厂模式,这样做的好处是如果以后我们要扩充其他运算时,就不用总是去修改工厂类, 这是可以采取工厂模式,主要是将原来简单工厂类的逻辑判断分离出来,将它作为一个借口,与 ...
- 自己动手写计算器v1.0
今天突发奇想,想着看了还几个设计模式了,倒不如写点东西来实践它们.发现计算器这种就比较合适,打算随着设计模式的学习,会对计算器不断的做改进. 包括功能的增加和算法的改进.初学者难免犯错,希望大家不吝指 ...
- 【IOS开发笔记03-视图相关】简单计算器的实现
UIView 经过前几天的快速学习,我们初步了解的IOS开发的一些知识,中间因为拉的太急,忽略了很多基础知识点,这些知识点单独拿出来学习太过枯燥,我们在今后的项目中再逐步补齐,今天我们来学习APP视图 ...
- [LeetCode] Basic Calculator 基本计算器
Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...
- JS-自制提速小工具:开发页面时需要按比例计算宽高值的快速计算器
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <meta name= ...
- 由ArcMap属性字段自增引出字段计算器使用Python的技巧
1.前言 前些日子有人问我ArcMap中要让某个字段的值实现自增有什么方法?我首先想到像SQL Server中对于数值型字段可以设置自增.所以我打开ArcCatalog查看发现只提供默认值 ...
- 前端学PHP之面向对象系列第六篇——简单图形面积计算器实现
前面的话 本文用面向对象的技术来实现一个简单的图形面积计算器 图形类 //rect.class.php <?php abstract class Shape{ public $name; abs ...
随机推荐
- WPF学习记录1:ListView的一个模板
在网上找的一个模板,放在这里,作为笔记,收集 <ListView Grid.Column=" Name="ListmuLu" > <ListView.I ...
- Android图片编译报错
一. AAPT err(1118615418): ERROR: 9-patch image icon_item_bottom_line.9.png malformed No marked region ...
- 控制器的view的加载优先级
拿到控制器后,控制器的view是在什么时候按照什么优先级创建加载的? 1.控制器内部的view是延迟加载 1> 用到时再加载(loadView) 2> 加载完毕后会调用控制器的viewDi ...
- Candy Bags
读懂了题就会发现这是个超级大水题 Description Gerald has n younger brothers and their number happens to be even. One ...
- DOM事件一览表
type Bubbling phase Cancelable Target node types DOM interface DOMActivate Yes Yes Element UIEvent D ...
- asp.net实现伪静态遇到的问题
之前在一次项目(asp.net网站)中要用到伪静态技术,实现的思路大致是这样的: 在全局配置文件Global.asax(普通的类可以通过实现IHttpModule来完成)中的Application_B ...
- css3圆角讲解
Css3圆角讲解:想必大家对于图片,背景圆角,都不陌生吧, 圆角语法:border-radius:圆角值: 这个值可以使用:em ,ex,pt,px,百分比; Border-radius跟margin ...
- TensorFlow深度学习笔记 Tensorboard入门
转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Issue区讨论 官方教程: https://ww ...
- 正式学习React (六) 项目篇
https://github.com/huenchao/yingshili 或者点这里 注意事项看ReadME.md 会持续更新,反正就是把之前分析的redux react-redux都用一下,然后会 ...
- D、GO、Rust 谁会在未来取代 C?为什么?——Go语言的定位非常好,Rust语言非常优秀,D语言也不错
不要管我的地位和 D 语言创造者之一的身份.我会坦诚的回答这个问题.我熟悉 Go 和 Rust,并且知道 D 的缺点在哪里.我鼓励人们在 Rust 和 Go 社区相似身份的人,也可以提出他们诚恳的观点 ...