实验要求
用C# WPF编程实现一个基于分治算法的简单代数运算系统,具体要求如下:
(1)用户通过输入任意表达式,计算出结果,如:asin(bx+c) + x^2 + sqrt(a);
(2)表达式中若出现未申明变量,则给该变量初始化一个随机值,如:a = random(0,10);
(3)支持常用数学函数,包括(不限于)如下函数:sin, cos, tan, floor, random, abs, sqrt, ^…
(4)可以设置变量动画,表达式根据变量的变化自动更新计算结果
溢出
设计思路:
(一) 界面设计:
界面底部设置一个文本框和一个按钮 ,文本框用作表达式或者变量的输入,点击按钮表示输入完成并且生成相应的label,顶部空白地方显示表达式和其计算结果以及变量的label,表达式label初始化位置在左边,变量label初始化在右边。
(二) 表达式求值算法设计:
将表达式分割成多个子表达式,然后先分别求解多个子表达式,最后根据子表达式的结果计算得到表达式的结果。
表达式分割的依据:
- 一个表达式Expression是若干项Item 之和;
- 一个项Item可以是