我正在为一门课程编写一些儿童数学教育软件。
我将尝试以有趣的方式,使用不同类型的随机生成的数学问题呈现给掌握不同技能水平的学生。
使用计算机进行数学软件教育的一个令人沮丧的问题是其刻板性。如果您曾参加过在线数学课程,您就会知道在进行在线测验时因为您的答案与它们的格式不完全相同或存在一些奇怪的间距问题而导致您的正确答案被拒绝的沮丧感。
所以,起初我想,“我知道!我将在答案框中使用表达式解析器,这样我就可以评估他们输入的任何内容,即使它的形式不同,我也能检查它是否是相同的答案。”于是我启动了我的 IDE 并开始实现Shunting Yard Algorithm。
这将解决它无法接受最小形式的分数和其他问题。
然而,我突然意识到一个狡猾的学生只需将大部分问题输入答案框中,我的表达式解析器就会忠实地解析和评估它为正确答案!
那么,在这种情况下,我应该不使用表达式解析器吗?我真的必须生成一个单一的答案形式并进行字符串比较吗?