C#中如何在一个文本框中实现加减乘除的运算?

如题所述

List<string> lists = null;
private void button1_Click(object sender, EventArgs e)
{
lists = new List<string>();
string str = textBox1.Text;
string temp = "";
int index = 0, sum = str.Length;

foreach (char c in str)
{
index++;
if (c != '+' && c != '-' && c != '*' && c != '/')
{
temp += c;
}
else
{
lists.Add(temp);
lists.Add(c.ToString());
temp = "";
}

if (index == sum)
{
lists.Add(temp);
}
}

index = 0;
do
{
string type1 = lists[index + 1];

if (type1 == "+" || type1 == "-")
{

if (lists.Count < 4)
{
Make(index, lists[index], lists[index + 2], type1);
}
else
{
string type2 = lists[index + 3];
if (type2 == "*" || type2 == "/")
{
Make(index + 2, lists[index + 2], lists[index + 4], type2);
}
else
{
Make(index, lists[index], lists[index + 2], type1);
}
}
}
else
{
Make(index,lists[index],lists[index + 2],type1);

}
if (lists.Count == 1)
{
textBox2.Text = lists[0];
break;
}
} while (1 == 1);
}

/// <summary>
/// 计算
/// </summary>
/// <param name="index">起始下标</param>
/// <param name="noStr1">第一个参数</param>
/// <param name="noStr2">第二个参数</param>
/// <param name="type">符号</param>
private void Make(int index, string noStr1, string noStr2,string type)
{
double tempSum = 0,no1 = Convert.ToDouble(noStr1),no2 = Convert.ToDouble(noStr2);
switch (type)
{
case "+":
tempSum = no1 + no2;
break;
case "-":
tempSum = no1 - no2;
break;
case "*":
tempSum = no1 * no2;
break;
case "/":
tempSum = no1 / no2;
break;
}

//消除已经计算过的参数,改为一个计算结果
lists[index + 2] = tempSum.ToString();
lists.RemoveAt(index);
lists.RemoveAt(index);
}

在不用括号的情况下,有括号的以后有时间再弄
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-11
在按钮事件里面:TxtB.Text = (1+2-1*5).ToString();
第2个回答  2013-09-11
放进数组然后再处理
第3个回答  2013-09-11
使用栈的算法来实现
第4个回答  2013-09-11
你想要一个计算起吗? c#的?

c#窗体中如何实现计算器的加减乘除功能
1 拖控件你会吧,把控件拖到窗体上,起好名字(最好与Text属性对应)。布局。2 双击按钮创建每个按钮的单击事件,对每个事件写处理方法,除了计算按钮别的都很简单,只是给文本框赋值。注意,文本框是右对齐的。3 在面板上放三个LISTBOX 设置VISIBLE = false ,第一个存放首操作数,第二个存放计算符号,第三个存放末操...

用C#语言实现简单的加减乘除计算。
static void Main(string[] args){ Console.WriteLine("1.加 2.减 3.乘 4.除"); Label1: Console.WriteLine("是否继续...(Y\/N)"); string input = Console.ReadLine().ToUpper(); if (input == "N") { return; } else if (input == "Y") { ...

怎么用c#编写计算器啊?只要实现加减乘除清零就可以了?急求!!!
加减乘除 也就是4个按钮哦,在按下这些按钮的时候,先把按按钮前的数据转换成数字保存到一个全局变量(假设是a)中.再把运算符号保存到一个全局变量(假设是b)中.当按下等号按钮的时候,先把运算符后面的数转化成数字保存到变量中(假设是c),结果保存到变量中(假设是s),用个switch(b)来计算结果(有4...

C#计算器应用程序设计(傻瓜式教程)
继续给其他数字按键添加代码(每写完一个按键就返回窗口双击下一个按钮,系统会自动跳转到该按键的代码处)。完成0~9的数字添加后,同样操作(双击加减乘除的按键)给四个运算符添加下列代码:需要注意以下所有代码中出现“ ”都要在双引号中间加一个空格。Button btn =(Button)sender;txtResult.Text = ...

C#计算器 (要求:一个textbox接受输入一个计算按钮一个显示结果的textbo...
那么在引用节点下会增加一个MSScriptControl组件.在C#的.cs里首先写上using MSScriptControl,然后就可以象下面的例子那么用拉: private string totalresult(string str) \/\/计算四则混合运算 { try { ScriptControlClass comobj = new ScriptControlClass(); \/\/MSScriptControl组件的 ScriptControlClass类 comobj.Language...

用C#语言编一个能进行两个数加减乘除的计算器
用C#语言编一个能进行两个数加减乘除的计算器 5 不用那么复杂就用几个方法调用注意是在控制台里面写的用一个usingSystem... 不用那么复杂 就用几个方法 调用 注意是在控制台里面写的 用一个using System 展开  我来答 1个回答 #热议# 直播| 一起见证OPPO Reno7系列正式亮相!

哪位大神能用C#帮忙做一个简单的计算器嘛,只要像下图一样的就行了,发...
。好吧,看在十分的诱惑上,我就简单给你说说大概吧:首先也就是文本框,必须一直等于0(初始值永远为0,一定要保证这点);当点1按键时,那么文本框.text=文本框.text*10+1;………当点X按键时,那么文本框.text=文本框.text*10+X;其他的加减乘除,都很简单,入门新手也应该会的。

用C语言做一个计算器,能实现加减乘除混合运算?
是的,可以使用C语言编写一个计算器程序,能够实现加、减、乘、除等混合运算。下面是一个简单的示例程序:```c include <stdio.h> int main() { char operator;double num1, num2, result;printf("Enter an operator (+, -, *, \/): ");scanf("%c", &operator);printf("Enter two ...

C#怎么获取textbox.text的内容,比如说我想通过这个标签输入公式,然后...
获取textbox值容易,但是想要解析公式很麻烦,括号,乘除法,加减法的优先级都要考虑。不是你现在的水平可以实现的(从你的问题可以看出),放弃吧,用别的方法。比如公式不多的话,可以将公式写死,用dropdownlist选择公式,然后用不同的方法实现。

c#编程定义分数类实现用符号+- *\/完成分数的加减乘除
console.writeline("请选择运算:(1)+ (2)- (3)* (4)\/");int p;string p=console.readline();while(p!=0){ if(p==1){c=a+b;console.writeline("a+b={0}",c);} if(p==2){c=a+b;console.writeline("a+b={0}",c);} if(p==3){c=a+b;console.writeline("a+b={0...

相似回答