首页 / 更多教程 / 四则运算(基于控制台)
四则运算(基于控制台)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了四则运算(基于控制台),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3905字,纯文字阅读大概需要6分钟。
内容图文
![四则运算(基于控制台)](/upload/InfoBanner/zyjiaocheng/1185/b148f39937b04e249bd3190150272ee2.jpg)
一、题目描述:
![技术分享图片](/upload/getfiles/default/2022/11/5/20221105113201912.jpg)
功能2.生成随机运算符
功能3.生成表达式
功能4.生成二叉树
功能5.分数的计算
功能6.计算题目结果
功能7.比较答案
五、代码说明
去除表达式首部和尾部的多余括号 当出现了括号不匹配时出现异常抛出
public TreeNode createTree(String expression) { /* * 去除表达式首部和尾部的多余括号 当出现了括号不匹配时出现异常 抛出 */ if (expression.indexOf("(") == 0) { for (int i = 0; i < expression.length(); i++) { if (expression.startsWith("(") == true) { if (expression.endsWith(")") == true) { expression = expression.substring(1, expression.length() - 1); } else { /* * 抛出异常 括号不比配 */ } } } } char[] exp = expression.toCharArray(); TreeNode newNode = new TreeNode(); String leftString = new String(); String rightString = new String(); String stack = new String(); // 用于存储括号的栈 当表达式检测完毕后 若栈不为空 这说明括号使用不合法 if (checkOperator(expression) == true) { int index = 0; // 记录最先扫描到的不在括号中的加号或减号 必为表达式运算的最后一次操作 int multi_div = 0; // 记录最先扫描到的不在括号中的乘号或除号的位置 只有在扫描不到加号和减号的前提下才有用 for (int i = exp.length - 1; i >= 0; i--) { if (exp[i] == ‘)‘) { stack = stack + exp[i]; } else if (exp[i] == ‘(‘) { if (stack.length() > 0) { stack = stack.substring(0, stack.length() - 1); } } else if (exp[i] == ‘+‘ && stack.length() == 0 || exp[i] == ‘-‘ && stack.length() == 0) { index = i; break; } else if (exp[i] == ‘/‘ && stack.length() == 0 || exp[i] == ‘*‘ && stack.length() == 0) { multi_div = i; } else { if (exp[i] < 48 || exp[i] > 57) { /* * 抛出异常 出现不合法的字符 */ } } } if (stack.length() != 0) { /* * 抛出异常 括号不匹配 */ } int separator; if (index != 0) { // 说明表达式的最后运算的为加法或减法 separator = index; } else { separator = multi_div; } newNode.data = String.valueOf(exp[separator]); int pos = 0; for (; pos < separator; pos++) { leftString = leftString + exp[pos]; } pos++; for (; pos < exp.length; pos++) { rightString = rightString + exp[pos]; } if (node == null) { node = newNode; } newNode.left = createTree(leftString); newNode.right = createTree(rightString); } else { newNode.data = expression; } return newNode; }
六、测试运行
题目文件test.txt
答案文件calculate.txt
数据报告文件result.txt
七、小结
此程序未实现查重功能,此程序已用二叉树结构存储日后在在这基础上完善已完成查重功能。此程序对于各种类型的操作数运算,是把各类型的操作数转换为分数形式运算,最后通过约分得出结果。
八、代码地址:https://gitee.com/jingyinglan/codes/iczorhpd2juakbw8vg4lx19
原文:https://www.cnblogs.com/lanjingying/p/8678075.html
内容总结
以上是互联网集市为您收集整理的四则运算(基于控制台)全部内容,希望文章能够帮你解决四则运算(基于控制台)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。