0422 发现( 数学口袋精灵)bug
团队博客地址:
甘佳萍:http://www.cnblogs.com/gjpg/
李鹏飞:http://www.cnblogs.com/l549023320/
赵创佳:http://www.cnblogs.com/7763255qw/
口袋精灵,
bug发现:
1、在运行过程中会出现程序闪退。
2、运行过程中音乐没办法关闭。
3、不能退出。
单元测试代码如下:
package com.example.mathsapp;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.*;
public class KuohaoCalc {
; // 记录单个运算数据的长度
static DecimalFormat decimal = new DecimalFormat("#.##");
// 判断是否有带括号的运算字符串存在
public String interceResult(String str) {
String finalresult;
String result = str;
char[] numberString = str.toCharArray();
; // 记录“(”的实际数量
; // 记录“)”的实际数量
; i < numberString.length; i++) {
if ('(' == numberString[i]) {
// 记录最后一个正括号的位置
IndexStart = i;
}
if (')' == numberString[i]) {
// 记录反括号的最初始下标的位置
EndStart = i;
// 截取最里面一个括号里的运算字符串
result = result.substring(IndexStart + , EndStart);
// 截取括号的运算字符串进行运算,生成新的运算字符串
result = str.substring(, IndexStart)
+ interceptOperation(result, '*', '÷')
+ str.substring(EndStart + , str.length());
// 回调执行,其它小括号的运算字符串
return interceResult(result);
}
)
)
break;
}
// 不存在括号了,再进行混合运算
result = interceptOperation(str, '*', '÷');
double res=Double.parseDouble(result);
decimal.setRoundingMode(RoundingMode.HALF_UP);//四舍五入
finalresult=String.valueOf(decimal.format(res));
return finalresult;
}
// 不带括号的四则运算
private static String interceptOperation(String operationNumber, char a,
char b) {
String mess = operationNumber;
char[] stringOperation = mess.toCharArray();
// 循环遍历运算字符串,并做相应的运算
; i < stringOperation.length; i++) {
// 判断运算符所在的索引
if (stringOperation[i] == a || stringOperation[i] == b) {
) {
// 运算符前的第一个数
, i));
// 记录第一个数据的长度
int frontPosition = intercePosition;
// 运算符前的第二个数
,
stringOperation.length));
// 记录第二个数据的长度
int backPosition = intercePosition;
// 算完乘除,将结果替换到原来运算的位置,得到新的运算字符串
String IndexMess = mess.substring(, i - frontPosition + );
String IndexResult = "";
// 判断是否运算到最后的结果了
&& IndexMess.indexOf(
&& IndexMess.indexOf(
&& IndexMess.lastIndexOf()
IndexMess = "";
if (IndexMess != "")
IndexResult = IndexMess.lastIndexOf('-') == IndexMess
.length() - ? IndexMess.substring(, i
- frontPosition) : IndexMess;
// 组装新的运算字符串
mess = IndexResult// mess.substring(0,i-frontPosition+1)
+ reslutString("" + stringOperation[i], num1, num2)
+ mess.substring(i + backPosition + );
// 0.111/1212/2/2/2/2/2/2/2
&& mess.indexOf(
&& mess.indexOf(
&& mess.indexOf() {
break;
}
// 回调,继续运算
return interceptOperation(mess, a, b);// 1+7-5+89/3+4-6*8/2+4-6
} else
continue;
}
) {
// 递归出口,判断是否还有运算字符串在
|| mess.indexOf()
return interceptOperation(mess, '+', '-');
break;
}
}
return mess;
}
// 截取第二个数
private static double interceptNumEnd(String str) {
;
;
char[] stringOperation = str.toCharArray();
boolean ispas = false; // 记录是否为负数
; i < stringOperation.length; i++) {
switch (stringOperation[i]) {
case '*':
case '÷':
case '+':
case '-':
InrerceIndex = i;
) // 判断该数是否为负数
ispas = true;
break;
default:
break;
}
if (ispas)
break;
}
// 判断此数据是否在运算字符串的最后一位
) {
a = Double.parseDouble(str);
intercePosition = str.length();
if (ispas)
intercePosition++;
} else {
a = Double.parseDouble(str.substring(, InrerceIndex));
// 记录数据的真实长度
intercePosition = str.substring(, InrerceIndex).length();
}
return a;
}
// 截取第一个数
private static double interceptNumIndex(String str) {
; // 记录数据
; // 记录运算符的位置
boolean temp = false; // 记录数据前运算符的状态
char[] stringOperation = str.toCharArray();
; i >= ; i--) {
switch (stringOperation[i]) {
case '*':
case '÷':
case '+':
case '-':
InrerceIndex = i;
temp = true;
break;
default:
break;
}
if (temp)
break;
}
// 判断此数据是否在运算字符串的第一位
) {
a = Double.parseDouble(str);
intercePosition = str.length();
// if(temp)
// intercePosition++;
} else {
a = Double.parseDouble(str.substring(InrerceIndex, str.length()));
// 记录数据的真实长度
intercePosition = str.substring(InrerceIndex, str.length())
.length();
}
return a;
}
// 计算结果
private static double reslutString(String operation, double num1,
double num2) {
;
if (operation.equals("*"))
sumResult = num1 * num2;
if (operation.equals("-"))
sumResult = num1 - num2;
if (operation.equals("÷"))
sumResult = num1 / num2;
if (operation.equals("+"))
sumResult = num1 + num2;
return sumResult;
}
}
测试结果:


由于时间的能力有限,暂时没法修复bug;
0422 发现( 数学口袋精灵)bug的更多相关文章
- 0422 寻找数学口袋精灵BUG
首先要部署这个app项目就是第一步: 一.前提下载并安装JDK 在线图解:手把手教你安装JDK http://www.lvtao.net/server/windows-setup-jdk.h ...
- 0422数学口袋精灵bug发现
团队成员的博客园地址: 蔡彩虹:http://home.cnblogs.com/u/caicaihong/ 曾治业:http://www.cnblogs.com/zzy999/ 蓝叶:http://w ...
- 0422“数学口袋精灵”BUG发现
团队成员的博客园地址: 曾治业:http://www.cnblogs.com/zzy999/ 蔡彩虹:http://www.cnblogs.com/caicaihong/ 蓝叶:http://www. ...
- "数学口袋精灵"bug的发现
团队成员的博客园地址: 曾治业:http://www.cnblogs.com/zzy999/ 陈焕恳:http://www.cnblogs.com/4249ken/ 蓝叶:http://www.cnb ...
- "数学口袋精灵"bug
首先要部署这个app项目就是第一步: 一.前提下载并安装JDK 在线图解:手把手教你安装JDK http://www.lvtao.net/server/windows-setup-jdk.h ...
- "数学口袋精灵"bug的发现及单元测试
1.项目内容: 团队项目:二次开发 至此,我们有了初步的与人合作经验,接下来投入到更大的团队中去. 也具备了一定的个人能力,能将自己的代码进行测试.接下来尝试在别人已有的基础上进行开发. 上一界51冯 ...
- 找"数学口袋精灵"bug
团队成员的博客园地址: 刘森松:http://home.cnblogs.com/u/lssh/ 郭志豪:http://home.cnblogs.com/u/gzh13692021053/ 谭宇森:ht ...
- "数学口袋精灵"bug(团队)
团队名:MY-HR 成员: 学号 博客园 团队贡献分 丘惠敏(组长) 201406114203 http://www.cnblogs.com/qiuhuimin/ 5 郭明茵 201406114204 ...
- 0422 数学口袋精灵app
首先要部署这个app项目就是第一步: 一.前提下载并安装JDK 在线图解:手把手教你安装JDK http://www.lvtao.net/server/windows-setup-jdk.h ...
- 数学口袋精灵感受与BUG
232朱杰 http://www.cnblogs.com/alfredzhu https://github.com/alfredzhu/ 组长,团队 230蔡京航 http://www.cnblogs ...
随机推荐
- Porter/Duff,图片加遮罩setColorFilter
同步发表于http://avenwu.net/2015/02/03/porterduff Fork on github https://github.com/avenwu/support 经常会遇到给 ...
- 使用sphinx生成Python文档
发现找不到matplotlib.sphinxext.mathmpl: 可以直接easy_install matplotlib,也可以去这里下载安装包 发现exception: matplotlib r ...
- Android获取TextView显示的字符串宽度
工作上有业务需要判断textview是否换行,我的做法是判断textview要显示的字符串的宽度是否超过我设定的宽度,若超过则会执行换行. 项目中的其他地方也有这样的需求,故直接使用了那一块的代码.如 ...
- 【译】Python Lex Yacc手册
本文是PLY (Python Lex-Yacc)的中文翻译版.转载请注明出处.这里有更好的阅读体验. 如果你从事编译器或解析器的开发工作,你可能对lex和yacc不会陌生,PLY是David Beaz ...
- Openvswitch原理与代码分析(2): ovs-vswitchd的启动
ovs-vswitchd.c的main函数最终会进入一个while循环,在这个无限循环中,里面最重要的两个函数是bridge_run()和netdev_run(). Openvswitch主要 ...
- Sencha Touch+PhoneGap打造超级奶爸之喂养记(一) 源码免费提供
起源 非常高兴我的宝宝健康平安的出生了.对于初次做奶爸的我,喜悦过后,面临着各中担心,担心宝宝各项指标是否正常.最初几天都是在医院待着,从出生那一天开始,护士妹妹隔一段时间就会来问宝宝的喂奶,大小便, ...
- Hadoop - 实时查询Drill
1.概述 在现实业务当中,存在这样的业务场景,需要实时去查询HDFS上的相关存储数据,普通的查询(如:Hive查询),时延较高.那么,是否存在时延较小的查询组件.在业界目前较为成熟的有Cloudera ...
- CISA 信息系统审计知识点 [第一章. 信息系统审计过程 ]
对有志成为审计师或者IT管理者de朋友, 第一章. 信息系统审计过程 1. IS 审计和保障标准.指南.工具.职业道德规范 信息技术保证框架(ITAF,Information Technology A ...
- [转载]CSS教程:实例讲解定位Position
http://www.missyuan.com/thread-395406-1-1.html 1. position:static 所有元素的默认定位都是:position:static,这意味着元素 ...
- Domain Space
Bluehost Register Page http://www.bluehost.com/track/weipengp