C#作业——表达式计算器+小数点
2011-11-03 23:42
369 查看
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 WindowsFormsApplication2 { public partial class Form1 : Form { public String expression; public Form1() { InitializeComponent(); } private void textBox1_TextChanged(object sender, EventArgs e) { expression = textBox1.Text; } private void button1_Click(object sender, EventArgs e) { textBox1.Text = expression + "=" + Result(expression); } private double Result(String expression) { int length = expression.Length; char[] a = expression.ToCharArray(0, length); double[] data = new double[10]; char[] oper = new char[10]; int datacount = 0, opercount = 0; double temp = 0; int dicimal = -1; double tempdi=1; for (int m = 0; m < length; m++) { if (Char.IsDigit(a[m]) == true) { if (dicimal == -1) { temp *= 10; temp += a[m] - '0'; } else { dicimal++; for (int q = 0; q < dicimal; q++) tempdi = tempdi * 0.1; temp = temp + (a[m] - '0') * tempdi; } } else if (a[m] == '.') { dicimal = 0; } else { dicimal = -1; tempdi = 1; data[datacount] = temp; datacount++; temp = 0; oper[opercount] = a[m]; opercount++; } } data[datacount] = temp; datacount++; int temp1 = 0; int tempdata = 0; while (temp1 < opercount) { double para1 = data[tempdata]; tempdata++; double para2 = data[tempdata]; if (oper[temp1] == '+') { data[tempdata] = para1 + para2; } else if (oper[temp1] == '-') { data[tempdata] = para1 - para2; } else if (oper[temp1] == '*') { data[tempdata] = para1 * para2; } else if (oper[temp1] == '/') { data[tempdata] = para1 / para2; } temp1++; } return data[tempdata]; } } }
相关文章推荐
- C#作业——表达式计算器+小数+运算符优先级
- C#作业——表达式计算器+过程显示
- lwj_C#_作业 List<T>应用
- C#第五次作业 提取网页正文
- C#第三次作业 Excel数据读取 及 HTML文件初步
- C#小数点格式化
- 软件工程第四周作业之四则运算-C#实现
- c# 取二位小数点,四舍五入
- C#中将double变量格式化为字符串,且保留小数点后面的全部位数
- c#第四次作业(Mysql与winfrom)
- [c#作业] 9.24
- 作业:C#二维数组取最大值
- 第四次作业:MySQL数据库及C#操作MySQL数据库
- C#第五次作业:开源项目“网页正文提取”的理解
- c# 浮点数取小数点后两位
- C#基础第二天-作业答案-九九乘法表-打印星星
- 在C#中,怎么保留小数点后两位
- 人工智能作业——八数码问题 BFS+A* C# WindowsFormApplication
- C#第一次作业
- c#作业第二期第一弹(记事本程序)