怎么实现计算器中的混合运算"+-*/()",用C#语言
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:数学作业 时间:2024/07/17 08:33:56
怎么实现计算器中的混合运算"+-*/()",用C#语言
object i,j;//i,j可以转为数字的对象,假设可转为整数
int a=Convert.ToInt32(i);
int b=Convert.ToInt32(j);
int result=a+b;//和
result=a-b;//差
result=a*b;//乘积
result=a/b;//商的整数部分,不进行四舍五入,想取具体商值
float r=Convert.ToSingle(i)/Convert.ToSingle(j);
括号不管什么语言中优先级都最高,用法一致
再问: 我想要知道的是怎么用代码来判断运算的先后顺序,并且运算一步之后怎么输出新结果,谢了
再答: 你是想搞个类似计算器的小程序么?我这边写了个测试版,只负责加减乘除以及括号的算式,你看看是否行,(每个括号中独立算式结果在数组b中),百度有字数限制,其余代码自己看着截图写吧,程序是我这边测试通过了的 private float getResult() { for (int i = 0; i < a.Count; i++) { string s = a[i].ToString().Replace("(", "").Replace(")", ""); if (i > 0) s = s.Replace("t", b[i - 1].ToString()); b.Add(jiafa(s)); } return Convert.ToSingle(b[b.Count - 1]); } private float jiafa(string s) { float result = 0.0f; s = s.Replace("-", "+-"); string[] s1 = s.Split('+'); for (int j = 0; j < s1.Length; j++) { result += chengfa(s1[j]); } return result; } private float chengfa(string s) { float result = 1.0f; string[] s2 = s.Split('*'); for (int m = 0; m < s2.Length; m++) { result = result * chufa(s2[m]); } return result; } private float chufa(string s) { string[] s3 = s.Split('/'); float result = Convert.ToSingle(s3[0]);//作为被除数 float c = 1.0f; for (int m = 1; m < s3.Length; m++) { c = Convert.ToSingle(s3[m]); result = result / c; } return result; }
int a=Convert.ToInt32(i);
int b=Convert.ToInt32(j);
int result=a+b;//和
result=a-b;//差
result=a*b;//乘积
result=a/b;//商的整数部分,不进行四舍五入,想取具体商值
float r=Convert.ToSingle(i)/Convert.ToSingle(j);
括号不管什么语言中优先级都最高,用法一致
再问: 我想要知道的是怎么用代码来判断运算的先后顺序,并且运算一步之后怎么输出新结果,谢了
再答: 你是想搞个类似计算器的小程序么?我这边写了个测试版,只负责加减乘除以及括号的算式,你看看是否行,(每个括号中独立算式结果在数组b中),百度有字数限制,其余代码自己看着截图写吧,程序是我这边测试通过了的 private float getResult() { for (int i = 0; i < a.Count; i++) { string s = a[i].ToString().Replace("(", "").Replace(")", ""); if (i > 0) s = s.Replace("t", b[i - 1].ToString()); b.Add(jiafa(s)); } return Convert.ToSingle(b[b.Count - 1]); } private float jiafa(string s) { float result = 0.0f; s = s.Replace("-", "+-"); string[] s1 = s.Split('+'); for (int j = 0; j < s1.Length; j++) { result += chengfa(s1[j]); } return result; } private float chengfa(string s) { float result = 1.0f; string[] s2 = s.Split('*'); for (int m = 0; m < s2.Length; m++) { result = result * chufa(s2[m]); } return result; } private float chufa(string s) { string[] s3 = s.Split('/'); float result = Convert.ToSingle(s3[0]);//作为被除数 float c = 1.0f; for (int m = 1; m < s3.Length; m++) { c = Convert.ToSingle(s3[m]); result = result / c; } return result; }