从个人项目到结对编程
个人项目: 中小学数学卷子自动生成程序 结对编程 项目: 带 UI的小初高数学学习软件 从个人项目到结对编程,可以复用的就只有出题部分,由于个人项目时,出题函数做的并不是很好,好多括号加的没有必要,所以在做结对编程时,对出题函数进行了修改,下面是修改前和修改后的题目比较 接下来进行结对编程的内容,我的搭档负责设计界面和各个界面之间的连接,我负责计算得数等 1.首先将中缀表达式转化为后缀表达式,因为后缀表达式对计算机更友好,方便计算 原理就是:定义一个List用来存后缀表达式,一个栈来存表达式中的操作符,然后遍历字符串: 1.如果为数字,则直接存进List,如果为(,则直接入栈, 2.如果为),则将栈中的内容弹出存入List,直到遇到(,然后弹出(, 3.如果为操作符,如果当前操作符的优先级高于栈顶元素,则直接入栈,否则,弹出栈顶元素到List,知道栈顶元素的优先级低于当前操作符 (PS:优先级的定义为 (最低,其次是"+","-","*","÷",然后是"√","²","sin","cos","tan";) 2.接下来,进行运算 public static String operate(String p,Stack<String> v) 由于double有精度问题和计算机中的存储问题,所以我使用BigDecimal类进行精确运算 1.BigDecimal类的定义