作业帮 > 数学 > 作业

怎么实现计算器中的混合运算"+-*/()",用C#语言

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/03 19:17:26
怎么实现计算器中的混合运算"+-*/()",用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;        }