2024面向对象设计与构造-第一单元总结

车静允-79066001 2024-03-23 20:35:09

代码架构

第一次作业

该架构从使用者那里输入复杂的数学表达式,将其分离成构成表达式要素(数字、变量、运算等),并以此为基础,可以有效处理计算表达式的过程。 在计算过程中可以进行多项式的加法、乘法等多种数学运算,从而得出最终结果。该项目体现了编程语言理论的主要概念: Lexing、解析、抽象语法树(AST)生成及巡回,以及以此为基础的计算等。 这样,它提供了一个强大的系统,可以高效地分析和计算复杂的数学表达式。

 

第二次作业

该架构提供了一个强大的系统,可以从用户那里接收和处理复杂的数学表达式和函数定义。 架构的主要构成要素有exp类、TokenType列举型、Lexer类、Parser类、Substitutor类、Factor接口及实现类、Poly类、Function类、Out类、Main类等。 可以通过自定义函数进行复杂的计算,该项目的结构利用编程语言的Lexing、解析、函数处理、抽象语法树(AST)生成及巡回等核心概念来实现。

 

 

第三次作业

该项目旨在通过处理自定义函数和数学表达式来计算和输出最终结果。 项目的架构设计为多个组件,以便进行复杂的计算,主要组件包括TokenType枚举式、Lexer类、Parser类、Substitutor类、表达式和函数组件类(Number、Var、...)、Pxyz类、Poly类、Exp类、Out类以及Main级等。 该架构通过输入自定义函数和复杂的数学表达式,并通过分析和计算过程涵盖编程语言处理的各个方面。 特别是支持微分运算等高级数学运算,为用户提供解决数学问题的必要工具。

 

主要难点

第一个作业是比较普通的表达式输出,所以分数也很好。  在第二个作业中,exp的实现非常困难,括号处理和平方部分存在困难。 在第三个课题中,微分函数的设计相当困难,特别是在输出括号处理部分或exp的微分结果方面存在困难。

 

分析bug

在第一个作业中,有6个部分被hack,因为没能及时找到错误,所以没能修正。 在第二和第三个作业中没能获得高分,其他同学没能读我的代码并进行bug分析,没有机会修改,感到很遗憾。

 

心得体会

在不熟练java语言的情况下,遵循高难度的架构设计要求,编写代码存在很大的困难。 因为中文水平不好,所以理解问题也花了很长时间,不仅不能如愿地写代码,而且结果也不完全准确。 在总共做了3个作业的过程中,再次感受到我的编码实力远远不够,成为了更加充满热情的契机。在授课过程中,也有得到应聘者一对一帮助的过程,但遗憾的是没能很好地应用他们教的提示,而且因为进度太慢,所以没能自由提问。非常感谢教授和助教不断指导结果不好、不成熟的我。

 

未来方向

我们将更努力地听取理论课的设计指导,更积极地利用志愿者一对一帮助的方法,通过更多的沟通来解决问题。

...全文
121 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

301

社区成员

发帖
与我相关
我的任务
社区描述
2023年北航面向对象设计与构造
学习 高校
社区管理员
  • YannaZhang
  • CajZella
  • C_ecelia
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧