• 软件工程学习之小学四则混合运算出题软件 Version 1.00 设计思路及感想


        对于小学四则混合运算出题软件的设计,通过分析设计要求,我觉得为了这个软件在今后便于功能上的扩充,可以利用上学期所学习的《编译原理》一课中的LL1语法分析及制导翻译的算法来实现。这样做的好处有以下几点:

        1. 由于LL1制导翻译是一项成熟且可靠的技术,并且其递归下降算法易于改编为算式生成算法;

        2. 我们有系统的方法可以获得较复杂表达式的LL1文法,则可以方便地生成形式丰富的算式;

        3.由于四则混合运算中需要考虑运算优先级的问题,那么采用LL1分析器可以很方便的实现计算表达式的功能;

        4.当用户需求给出一个解题过程而不仅仅是一个答案时,LL1分析器可提供一个正确的解题过程(可以将LL1制导翻译中四元式的生成改写为计算过程)。

        当然,在实现中也有一些问题需要分析解决的,比如控制算式的长度、避免算式中出现多余的括号、避免出现无运算符的算式、避免出现无意义的算式等等。

        目前我的 Version 1.00 已经实现采用改写的LL1分析器来产生算式并且能够同时获得答案的功能,但同时也出现了上述问题中的一部分。毕竟1.00版本的程序挺粗糙的,接下来我会逐个分析并解决,之后发布 Version 1.01。

        基于LL1文法的混合运算生成器 1.00 调试:

  • 相关阅读:
    SELinux安全方式
    PHP jpgraph的一点小提示和方法
    PHP之文件的锁定、上传与下载的方法
    MySQL与Oracle差异函数对比
    Dictionary 初始化数据
    IIS7的集成模式下如何让自定义的HttpModule不处理静态文件(.html .css .js .jpeg等)请求
    iis 负载均衡
    iis 反向代理 组件 Application Request Route
    语法糖
    vs git 推送远程会失败.
  • 原文地址:https://www.cnblogs.com/MrAJKO/p/5255748.html
Copyright © 2020-2023  润新知