hw1.2
2022-03-22 21:27:37 0 举报
unit1-hw1.2
作者其他创作
大纲/内容
BaseKey
Parser
- lexer : Lexer- listMemberList : ArrayList<ListMember>
+ parseExpr(boolean nextFactorPos) : Expr+ parseTerm(boolean nextTermPos) : Term+ parseFactor(boolean nextFactorPos) : Factor
ListMember
操作数成员接口:后缀表达式操作数表的存储单元
Suffix
- suffixString : String - listMemberList : ArrayList<ListMember>- stack : Stack- firstWasPrint : boolean
+ searchToEnd() : void+ print() : void+ posToPrint() : String+ negToPrint() : String+ font color=\"#2196f3\
Stack
- stackList : ArrayList<Quantic>
+ addMember(Quantic quantic) : void+ top() : Quantic+ removeTop() : Quantic+ add() : void+ subtract() : void+ multi() : void+ pow(int powIndex) : void+ reverse() : void
字符提取类:1.Expr、Term、Factor的前置符号2.'+' '*'语义分隔符3.Single单项式4.')^n'
三角函数类:实现后缀表达式操作数表存储单元的接口
CalculateExpr
- lexer : Lexer - parser : Parser- expr : Expr - answer : String
+ getParser() : Parser+ getExpr() : Expr+ getAnswer() : String
Trigon
- bracket: Single- isSin: boolean- indexComponent: int- positive: boolean
+ toString() : String+ equals(Object o) : boolean+ hashcode() : int
计算类
MainClass
+ main(String[]) : void
解析类
Pre
- string : String
+ Pre(String str) : String
多项式类:HashMap的key和value分别为自定义Key和系数,实现运算功能
给Suffxi类的INPUT后缀表达式的操作数表listMemberList : ArrayList
语义分割类:1.根据 '+' '*'分隔语义,返回Expr、Term、Factor(Expr、Single)对象2.存储后缀表达式的操作数表,作为Suffxi类的INPUT
Term
- factors : ArrayList<Factor> - termPos : boolean
+ addFactor(Factor factor) : void+ toString() : String
单项式类:1.实现后缀表达式操作数表存储单元的接口2.三角函数的bracket
ExprInput
+ readLine() : String
解析时的存储类
给Suffxi类的INPUT去掉括号后、包含运算顺序的后缀表达式Expr.toString() : String
表达式类:输出\"Term1 Term2 * \"作为后缀表达式存储的运算顺序
PreFunction
多项式的自定义Key类:1.形如\"x^int * sin(Single)^int *cos(Single)^int\
Quantic
- quanticMember : HashMapfont color=\"#e57373\
+ quanticAdd() : void+ quanticSubtract() : void+ quanticMulti() : void+ quanticPow(int powIndex) : void+ quanticReverse() : void+ toString() : String + equals(Object o) : boolean+ hashcode() : int
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- listMember : ListMember
+ peek() : String+ plus() : boolean+ firstIsNeg() : boolean+ next() : void+ next(int i) : void+ next(boolean bracket) : void+ nextNum() : BigInteger + newgetSingle() :Single+ newGetTrigon() : Trigon
后缀表达式类:1.根据Expr.toString存储的运算顺序和操作数表,利用栈计算结果。2.print()输出栈顶元素。
计算时的存储类
Single
- coefficient : BigInteger- indexComponent : int- pos : boolean- signed : BigInteger
Factor
自定义函数类:1.读入并解析函数声明,作为static变量2.解析时调用实参替换形参方法
栈类:存放后缀表达式的操作数
0 条评论
下一页