题目类别: 实验
关键字: 类、对象、封装、类之间的关系、字符串
内容要求:
1 . 编写一个Java应用程序。
2 . 要求实现功能如下:
(1) 从键盘输入一个表示整数四则运算的字符串,例如:32+5*2-40/3
四则运算符号:
+代表整数加法、-代表整数减法、*代表整数乘法、/代表整数除法(结果为整数)
运算数全部为正整数
表达式中没有括号
(2) 程序按照四则运算符的优先级和结合性对表达式进行分析并产生输出结果。
3 . 运行示例:
输入:32+5*2-40/3
输出:29
4 . 程序设计要求使用面向对象方法编写。
备注
打包为可以执行的JAR文档,其中要包含源程序文件。
实现代码:
Expression类
package cn.scau.module;
import cn.scau.utils.CalculateUtil;
import java.util.ArrayList;
/**
* @author zg
*/
public class Expression {
/**
* 表达式
*/
private String expression;
public Expression() {
this("");
}
public Expression(String expression) {
this.expression = expression;
}
public String getExpression() {
return expression;
}
public void setExpression(String expression) {
this.expression = expression;
}
/**
*
* @return 表达式的结果
*/
public int calculate() {
ArrayList<String> entries = CalculateUtil.divideIntoEntries(this.expression);
ArrayList<String> addEntries = CalculateUtil.calculateMultiAndDiv(entries);
return CalculateUtil.calculatePlusAndMinusOnly(addEntries);
}
}
CalculateUtil类
package cn.scau.utils;
import java.util.ArrayList;
/**
*
* 计算工具类
*
* @author zg
*/
public class CalculateUtil {
/**
*
* @param expression 表达式
* @return 拆分项和符号,将其存入数组中
*/
public static ArrayList<String> divideIntoEntries(String expression) {
char[] str = expression.toCharArray();
ArrayList<String> lists = new ArrayList<>();
StringBuilder list = new StringBuilder();
//
for (char c : str) {
if (

该博客介绍了一个用Java编写的程序,该程序能够接收用户输入的四则运算字符串,如32+5*2-40/3,并按照运算符的优先级和结合性进行计算。程序通过Expression类和CalculateUtil工具类实现了表达式的拆分、乘除运算和加减运算,最终输出计算结果。示例中,输入32+5*2-40/3,程序输出结果为29。代码结构清晰,遵循面向对象的设计原则。
最低0.47元/天 解锁文章
3万+





