java四则运算代码测试 java四则运算实验报告

求字符串解析四则运算的Java代码

package samples;

创新互联建站自2013年起,是专业互联网技术服务公司,拥有项目成都做网站、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元莘县做网站,已为上家服务,为莘县各地企业和个人服务,联系电话:028-86922220

/**

* @author sghitxia

*

*/

public class C {

public static void main(String[] args) {

String str = "(1+{1+2+3+[2+(4+5)+(9+3*7*6)]}+2+{3*5+[2+(4+5)+(9+3)]}+2)";

System.out.println(cacComplex(str));

}

private static double cacComplex(String str) {

if (str.equals(""))

return 0;

System.out.println("CAC:" + str);

str = str.replaceAll("[\\[\\{]", "(").replaceAll("[\\]\\}]", ")");

int cl = str.lastIndexOf('(');

if (cl == -1)

return cac(str);

int cr = str.indexOf(')', cl);

String left = str.substring(0, cl);

String right = str.substring(cr + 1);

String middle = str.substring(cl + 1, cr);

return cacComplex(left + cac(middle) + right);

}

public static double cac(String str) {

if (str.equals(""))

return 0;

int ml = str.indexOf('*');

int dl = str.indexOf('/');

if (ml == -1 dl == -1) {

return cacNoMD(str);

}

int index = ml == -1 ? dl : ml;

// 4+5*6*7+8

String left = str.substring(0, index);// 4+5

String m1 = lastNumber(left);

left = left.substring(0, left.length() - m1.length());

String right = str.substring(index + 1);// 6*7+8

String m2 = firstNumber(right);// m2:6

right = right.substring(m2.length());// *7+8

double d1 = Double.parseDouble(m1);

double d2 = Double.parseDouble(m2);

double tmp = 0;

if (index == ml) {

tmp = d1 * d2;

} else if (index == dl) {

tmp = d1 / d2;

}

return cac(left + tmp + right);

}

private static String lastNumber(String str) {

StringBuilder sb = new StringBuilder();

for (int i = str.length() - 1; i = 0; i--) {

char c = str.charAt(i);

if (!Character.isDigit(c) c != '.')

break;

sb.append(c);

}

return sb.reverse().toString();

}

private static String firstNumber(String str) {

StringBuilder sb = new StringBuilder();

for (char c : str.toCharArray()) {

if (!Character.isDigit(c) c != '.')

break;

sb.append(c);

}

return sb.toString();

}

private static double cacNoMD(String str) {

double ret = 0;

StringBuilder sb = new StringBuilder();

char sign = '+';

for (char c : (str + "+").toCharArray()) {

if (!Character.isDigit(c) c != '.') {

if (sb.length() == 0)

continue;

double tmp = Double.parseDouble(sb.toString());

if (sign == '+') {

ret += tmp;

} else {

ret -= tmp;

}

sb = new StringBuilder();

sign = c;

} else {

sb.append(c);

}

}

return ret;

}

}

java简单的四则运算.

public class Arithmetic {

public static void Ari(){

Scanner scan = new Scanner(System.in);

StringBuffer buffer = new StringBuffer();

DecimalFormat dec = new DecimalFormat("0.00");//格式化结果保留两位小数

String all = "";//所有的计算表达式连在一起

System.out.println("请输入表达式的个数,只能为正整数");

int n = scan.nextInt();

System.out.println("请依次输入要计算的表达式");

   for(int i=0;in+1;i++){

    buffer = buffer.append(scan.nextLine()+",");

   }

   all = buffer.substring(0, buffer.lastIndexOf(","));

   String allAri[] = all.split(",");

   String ari = "";//不同的算法表达式

   float add;//加法的计算结果

   float subtract;//减肥的计算结果

   float multi;//乘法的计算结果

   float divison;//除法的计算结果

   int model;//模运算的计算结果

   for(int j=0;jallAri.length;j++){

    ari = allAri[j];

    if(ari.contains("+")){

    String tempAry[] = ari.split("[+]");

    add = Float.valueOf(tempAry[0])+Float.valueOf(tempAry[1]);

    System.out.println(dec.format(add));

    }else if(ari.contains("-")){

    String tempAry[] = ari.split("[-]");

    subtract = Float.valueOf(tempAry[0])-Float.valueOf(tempAry[1]);

    System.out.println(dec.format(subtract));

    }else if(ari.contains("*")){

    String tempAry[] = ari.split("[*]");

    multi = Float.valueOf(tempAry[0])*Float.valueOf(tempAry[1]);

    System.out.println(dec.format(multi));

    }else if(ari.contains("/")){

    String tempAry[] = ari.split("[/]");

    divison = Float.valueOf(tempAry[0])/Float.valueOf(tempAry[1]);

    System.out.println(dec.format(divison));

    }else if(ari.contains("%")){

    String tempAry[] = ari.split("[%]");

    model = Integer.valueOf(tempAry[0])%Integer.valueOf(tempAry[1]);

    System.out.println(model);

    }

   }

}

public static void main(String[] args) {

Ari();

}

}

测试结果截图如下:

你的测试用例的输入的表达式的个数是4个,但下面的计算表达式好像少了一个,所以我加了一个除法的计算表达式,若理解有误,还望说明。

JAVA学年课程设计题目:四则运算测试(求高人解答啊~~)

首先要明白Vector和ArrayList在使用上非常相似,都可用来表示一组数量可变的对象应用的集合,并且可以随机地访问其中的元素。

Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。

当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。

所以这里用arraylist吧

应该是用来存储每道题的答案用,比如:

第一道题

int num1 = 1;

int num2 = 2;

int num3 = num1 + num2;

List nums = new ArrayList();

nums.add(num3); //将计算结果存入数组中

System.out.println(nums.get(0)); //取值

这只是思路,你借鉴下吧

java编写一个小软件用于测试小学生10以内四则运算的口算能力

我可以说一下思路:

取到所有下拉框的值,还有这个输入框的值,比如第一个是: num1 第二个是运算符:* 第三个是:num2 第四个是结果: result

点击提交,给一个点击事件,把取到的值进行运算var cal= Integer.parseInt(num1)* Integer.parseInt(num2),cla是自己定义的,然后判断程序计算的结果是否和输入的结果相等,再给出相应的提示


文章标题:java四则运算代码测试 java四则运算实验报告
本文URL:http://abwzjs.com/article/ddedhjd.html