hw1.1
2022-04-30 09:38:29 0 举报
unit1-hw1.1
作者其他创作
大纲/内容
ExprInput
+ readLine() : String
Parser
- lexer : Lexer- singleList : ArrayList<Single>
+ parseExpr(boolean nextFactorPos) : Expr+ parseTerm(boolean nextTermPos) : Term+ parseFactor(boolean nextFactorPos) : Factor
Suffix
- suffixString : String - singleList : ArrayList<Single>- stack : Stack- firstWasPrint : boolean
+ searchToEnd() : void+ print() : void+ posToPrint() : String+ negToPrint() : String
Stack
- stackList : ArrayList<Quantic>
+ addMember(Quantic quantic) : void+ top() : Quantic+ removeTop() : Quantic+ add() : void+ subtract() : void+ multi() : void+ pow(int powIndex) : void+ reverse() : void
给Suffxi类的INPUT去掉括号后、包含运算顺序的后缀表达式Expr.toString() : String
字符提取类:1.Expr、Term、Factor的前置符号2.'+' '*'语义分隔符3.Single单项式4.')^n'
表达式类:输出\"Term1 Term2 * \"作为后缀表达式存储的运算顺序
计算类
MainClass
+ main(String[]) : void
解析类
Quantic
+ quanticAdd() : void+ quanticSubtract() : void+ quanticMulti() : void+ quanticPow(int powIndex) : void+ quanticReverse() : void+ toString() : String
Expr
- terms : ArrayList<Term> - exprPos : boolean- coe : int- firstTermIsNeg : boolean
+ addTerm(Term term) : void+ toString() : String
项类:输出\"Factor1 Factor2 + \"作为后缀表达式存储的运算顺序
官方读入类:
预解析类:简单的符号替换
Lexer
- input : String- pos : int- curToken : String- single : Single
+ peek() : String+ plus() : boolean+ firstIsNeg() : boolean+ next() : void+ next(int i) : void+ newgetSingle() :Single
后缀表达式类:1.根据Expr.toString存储的运算顺序和操作数表,利用栈计算结果。2.print()输出栈顶元素。
Pre
- string : String
+ Pre(String str) : String
解析时的存储类
Single
- coefficient : BigInteger- indexComponent : int- pos : boolean- signed : BigInteger
+ toString() : String
Factor
多项式类:HashMap的key和value分别为指数和系数,实现运算功能
给Suffxi类的INPUT后缀表达式的操作数表singleList : ArrayList
语义分割类:1.根据 '+' '*'分隔语义,返回Expr、Term、Factor(Expr、Single)对象2.存储后缀表达式的操作数表,作为Suffxi类的INPUT
栈类:存放后缀表达式的操作数
Term
- factors : ArrayList<Factor> - termPos : boolean
+ addFactor(Factor factor) : void+ toString() : String
单项式类:后缀表达式操作数表的存储单元
0 条评论
下一页