C#实现计算器窗体程序
作者:羽路星尘 时间:2023-04-09 01:25:42
本文实例为大家分享了C#实现计算器窗体程序的具体代码,供大家参考,具体内容如下
功能设计
1、计算器中,添加 0-9 共十个数字键。
2、计算器中,增添 加、减、乘、除、等于五个功能键。
3、计算器中,增加四个功能键:x2,sqrt,log, ln 四个键,分别计算求平方,开方。
实现代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace test3_1
{
public partial class Form1 : Form
{
double result = 0; //存储计算结果
double number = 0; //存储输入的数字
bool exist_value = false; //判断文本框中是否有值
string operation; //存储输入的运算符
/*
* 初始化
*/
public Form1()
{
InitializeComponent();
}
/*
* 数字键触发事件实现
*/
private void Seven_Click(object sender, EventArgs e)
{
if (exist_value == true)
{
textBox1.Text = "";
exist_value = false;
}
textBox1.Text += "7";
}
private void Eight_Click(object sender, EventArgs e)
{
if (exist_value == true)
{
textBox1.Text = "";
exist_value = false;
}
textBox1.Text += "8";
}
private void Nine_Click(object sender, EventArgs e)
{
if (exist_value == true)
{
textBox1.Text = "";
exist_value = false;
}
textBox1.Text += "9";
}
private void Four_Click(object sender, EventArgs e)
{
if (exist_value == true)
{
textBox1.Text = "";
exist_value = false;
}
textBox1.Text += "4";
}
private void Five_Click(object sender, EventArgs e)
{
if (exist_value == true)
{
textBox1.Text = "";
exist_value = false;
}
textBox1.Text += "5";
}
private void Six_Click(object sender, EventArgs e)
{
if (exist_value == true)
{
textBox1.Text = "";
exist_value = false;
}
textBox1.Text += "6";
}
private void One_Click(object sender, EventArgs e)
{
if (exist_value == true)
{
textBox1.Text = "";
exist_value = false;
}
textBox1.Text += "1";
}
private void Two_Click(object sender, EventArgs e)
{
if (exist_value == true)
{
textBox1.Text = "";
exist_value = false;
}
textBox1.Text += "2";
}
private void Three_Click(object sender, EventArgs e)
{
if (exist_value == true)
{
textBox1.Text = "";
exist_value = false;
}
textBox1.Text += "3";
}
private void Zero_Click(object sender, EventArgs e)
{
if (exist_value == true)
{
textBox1.Text = "";
exist_value = false;
}
textBox1.Text += "0";
}
/*
* 功能键触发事件
*/
private void Add_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("请先输入值再计算!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
exist_value = true;
number = double.Parse(textBox1.Text);
operation = "+";
}
}
private void Sub_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("请先输入值再计算!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
exist_value = true;
number = double.Parse(textBox1.Text);
operation = "-";
}
}
private void Mul_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("请先输入值再计算!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
exist_value = true;
number = double.Parse(textBox1.Text);
operation = "*";
}
}
private void Div_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("请先输入值再计算!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
exist_value = true;
number = double.Parse(textBox1.Text);
operation = "/";
}
}
private void Squ_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("请先输入值再计算!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
exist_value = true;
number = double.Parse(textBox1.Text);
operation = "x^2";
}
}
private void Sqrt_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("请先输入值再计算!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
exist_value = true;
number = double.Parse(textBox1.Text);
operation = "sqrt";
}
}
private void Log_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("请先输入值再计算!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
exist_value = true;
number = double.Parse(textBox1.Text);
operation = "log";
}
}
private void Ln_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("请先输入值再计算!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
exist_value = true;
number = double.Parse(textBox1.Text);
operation = "ln";
}
}
private void Del_Click(object sender, EventArgs e)
{
textBox1.Text = "";
}
private void Equ_Click(object sender, EventArgs e)
{
switch (operation)
{
case "+": result = number + double.Parse(textBox1.Text); break;
case "-": result = number - double.Parse(textBox1.Text); break;
case "*": result = number * double.Parse(textBox1.Text); break;
case "/":
{
double temp=double.Parse(textBox1.Text);
if (temp != 0)
result = number / temp;
else
MessageBox.Show("除数不能为零", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
break;
}
case "x^2": result = number * number; break;
case "sqrt": result = Math.Sqrt(number); break;
case "log": result = Math.Log10(number); break;
case "ln": result = Math.Log(number); break;
}
textBox1.Text = result + "";
exist_value = true;
}
}
}
界面设计
运行结果
来源:https://blog.csdn.net/qq_43869033/article/details/110793893
标签:C#,计算器
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
C#中跨线程访问控件问题解决方案分享
2021-06-27 18:47:24
C#特性 匿名类型与隐式类型局部变量使用介绍
2023-09-29 12:42:50
C#中程序自删除实现方法
2021-06-01 19:47:29
史上最强C语言分支和循环教程详解
2022-07-01 07:59:35
![](https://img.aspxhome.com/file/2023/1/122581_0s.png)
android解析JSON数据
2022-10-17 04:55:40
Java中的"goto"语句妙用
2023-10-10 03:54:32
![](https://img.aspxhome.com/file/2023/3/78853_0s.png)
C#在Excel表格中插入、编辑和删除批注
2023-01-12 13:52:20
![](https://img.aspxhome.com/file/2023/7/85687_0s.png)
flutter Bloc 实现原理示例解析
2023-07-18 08:00:39
Spring的自动装配Bean的三种方式
2023-08-24 23:05:15
C#开发Winform程序调用存储过程
2023-01-11 05:23:15
![](https://img.aspxhome.com/file/2023/8/96298_0s.png)
java 交换两个数据的方法实例详解
2021-12-06 00:56:04
Spring boot2.0 日志集成方法分享(1)
2023-05-12 20:10:25
c语言中十六进制转二进制显示的实现方法
2023-12-17 23:21:44
spring Bean的初始化过程解析
2022-10-13 18:10:01
![](https://img.aspxhome.com/file/2023/2/103972_0s.png)
利用Jetpack Compose实现绘制五角星效果
2023-04-10 06:20:48
![](https://img.aspxhome.com/file/2023/7/137847_0s.png)
C++中const的实现细节介绍(C,C#同理)
2022-10-21 19:43:12
C#比较时间大小的方法总结
2023-09-02 04:38:06
![](https://img.aspxhome.com/file/2023/1/122701_0s.jpg)
Java正则多字符串匹配替换
2021-12-16 02:24:48
Flutter学习之实现自定义themes详解
2022-04-17 17:20:49
android生命周期深入分析(二)
2021-07-25 16:26:14
![](https://img.aspxhome.com/file/2023/4/128994_0s.png)