引言
早在一年前,我就用VC++设计了一个能够计算表达式的科学计算器,但由于当时才大二,对于“编译原理”这种东西根本就没有概念,因此设计时遇到了有关错误文法分析的问题(当时只知道要在用户输入不正确的表达式格式时报错),不知道怎么做,因此就把这个项目搁置了下来,本学期正好学到编译原理,发现还是可以用一些理论化的东西来解决文法问题,于是决定重新启动这个项目,并把代码移植到C#中。
设计科学计算器的用意
在计算机里,我们用得最多的计算器恐怕就是Windows自带的那个计算器了。该计算器当然有不少值得学习的功能,如进制转换、三角函数计算、指数运算、幂运算等,但有一个令人遗憾的功能就是不能输入表达式进行计算(我们看到的永远只是一个中间结果),往往我们用起来的时候必须先把要计算的表达式写下来,然后一个一个的输入,如果一不小心输错了,就只能重新输入,这对于普通用户来说是个不小的考验。
另一方面,我现在已经大三下学期,想把学过的一些理论的东西融合在一起,能够有所突破。计算器尽管看起来是一个再简单不过的软件,但仔细想想,还是有很多文章可做的,就我个人的分析来看,该计算器将涉及到《数据结构》、《编译原理》、《软件工程》等多门学科的知识,对于我来说既是考验也是挑战。
从这两点来看,设计该科学计算器自然是值得的!(不知道大家有啥建议,大家可以发表一下评论)
功能分析
作为
早在一年前,我就用VC++设计了一个能够计算表达式的科学计算器,但由于当时才大二,对于“编译原理”这种东西根本就没有概念,因此设计时遇到了有关错误文法分析的问题(当时只知道要在用户输入不正确的表达式格式时报错),不知道怎么做,因此就把这个项目搁置了下来,本学期正好学到编译原理,发现还是可以用一些理论化的东西来解决文法问题,于是决定重新启动这个项目,并把代码移植到C#中。
设计科学计算器的用意
在计算机里,我们用得最多的计算器恐怕就是Windows自带的那个计算器了。该计算器当然有不少值得学习的功能,如进制转换、三角函数计算、指数运算、幂运算等,但有一个令人遗憾的功能就是不能输入表达式进行计算(我们看到的永远只是一个中间结果),往往我们用起来的时候必须先把要计算的表达式写下来,然后一个一个的输入,如果一不小心输错了,就只能重新输入,这对于普通用户来说是个不小的考验。
另一方面,我现在已经大三下学期,想把学过的一些理论的东西融合在一起,能够有所突破。计算器尽管看起来是一个再简单不过的软件,但仔细想想,还是有很多文章可做的,就我个人的分析来看,该计算器将涉及到《数据结构》、《编译原理》、《软件工程》等多门学科的知识,对于我来说既是考验也是挑战。
从这两点来看,设计该科学计算器自然是值得的!(不知道大家有啥建议,大家可以发表一下评论)
功能分析
作为