团队项目 - 反馈
2016-04-18 18:47
141 查看
二组 万德福同学的第一周反馈回来了:
团队作业题目是做一个安卓计算器,而我的任务就是进行字符串的分析,我本该,说的简单点就是正确计算出一个表达式。
上学期和许清老师学了编译原理,想到LL(1)文法,使用递归下降可以正确分析一段文法,看了两天后,突然想明白,我只要计算出结果,并不需要具体的分析过
程比如消除做递归,消除回溯啊。再加上我的安卓基数只是入门,还是不写那么复杂的吧,于是挑了一个数据结构里简单的栈的操作进行计算,具体思路如下:
1.输入一个表达式,存在字符数组里(Java里可以建数组,想用二叉树,但Java里没有指针)
2.把这个表达式由中缀式转换为后缀式。中缀式改为后缀式优点:中缀式和后缀式的操作数出现的顺序是一样的,只是操作符顺序不一样,而且后缀是表达式无括号,在出入栈的时候我把(,),左右括号的优先级同其他符号进行比较后,直接出栈不保存。
3.逐个读取后缀式(保存在一个数组里)的字符,如果是0~9,就一直读到下一位不是数字为止,把这几个数字转为整形数据入栈(数据栈),遇见操作符则连续出栈两个数,并用操作符进行运算。
计算 结果自然也是一个数据,所以计算结果也要入栈。读后缀式一直读到’\0‘为止。
4.最后,计算结果出栈,如果此时栈不空,则有错。
具体代码在 https://git.coding.net/Wondove/wonderful5.git 中,最新的biao_da_shi文件中。
测试人员的测试结果:
基本合格
不足&改进方向:对大数进行运算(七位以上);对角度进行运算;显示科学计数法等。
团队作业题目是做一个安卓计算器,而我的任务就是进行字符串的分析,我本该,说的简单点就是正确计算出一个表达式。
上学期和许清老师学了编译原理,想到LL(1)文法,使用递归下降可以正确分析一段文法,看了两天后,突然想明白,我只要计算出结果,并不需要具体的分析过
程比如消除做递归,消除回溯啊。再加上我的安卓基数只是入门,还是不写那么复杂的吧,于是挑了一个数据结构里简单的栈的操作进行计算,具体思路如下:
1.输入一个表达式,存在字符数组里(Java里可以建数组,想用二叉树,但Java里没有指针)
2.把这个表达式由中缀式转换为后缀式。中缀式改为后缀式优点:中缀式和后缀式的操作数出现的顺序是一样的,只是操作符顺序不一样,而且后缀是表达式无括号,在出入栈的时候我把(,),左右括号的优先级同其他符号进行比较后,直接出栈不保存。
3.逐个读取后缀式(保存在一个数组里)的字符,如果是0~9,就一直读到下一位不是数字为止,把这几个数字转为整形数据入栈(数据栈),遇见操作符则连续出栈两个数,并用操作符进行运算。
计算 结果自然也是一个数据,所以计算结果也要入栈。读后缀式一直读到’\0‘为止。
4.最后,计算结果出栈,如果此时栈不空,则有错。
具体代码在 https://git.coding.net/Wondove/wonderful5.git 中,最新的biao_da_shi文件中。
测试人员的测试结果:
基本合格
不足&改进方向:对大数进行运算(七位以上);对角度进行运算;显示科学计数法等。
相关文章推荐
- Linux iptables
- [实时更新]花园挑战赛进程
- protobuf的Required,Optional,Repeated限定修饰符
- VS2013 删除"附加依赖项"中“继承的值”
- 第八周上机实践项目-项目1-(1)
- Hibernate
- BZOJ 1207 DP
- 获取验证码倒计时
- 堆排序
- 在MyEclipse上部署Tomcat服务器
- android apk文件反编译(Mac)
- 消失的Java进程-Linux OOM Killer
- [数学 拉格朗日四平方和定理 Rho大整数分解] BZOJ 2904 平方和
- HDU-1003 Max Sum (DP)
- 二进制小数
- Oracle笔记(十一) 建表、更新、查询综合练习
- python 编码类型
- Oracle to_date/Trunc函数用法及date字段只精确到日期的问题
- Log4j和Slf4j的关系
- Mybatis最入门---Mapper文件配置详解(上)