首页 安全防御正文

检查小学算术的app(小学数学检查)

用Java设计一个小学算术运算测试软件

你的想法是好的,但是我仔细构思了一遍,太难了。

首先难点就是怎么生成题目。也是最难得,因为有太多不确定,弄不好就会出现负数结果的题目。

然后是题目的解答,这个难点就不说了,这个我在几年前就写好了。一直没用上,现在却用上了。

还有,你要窗体,可是我不会用swing

还有你要的四则混合运算是多长的,我总不能写一个有1000多个数字写成的式子吧。

题目中是否涉及到小数

下面是我的计算代码:

package compute;

public class CaculateString {

private String str, s;

private int p1, p2;

public CaculateString(String str) {

this.str = str;

this.clear();

this.check();

}

public String caculate() {

while (isEnd(str)) {

p2 = str.indexOf(")");

if (p2 != -1) {

s = str.substring(0, p2);

p1 = s.lastIndexOf("(");

s = str.substring(p1 + 1, p2);

if (!s.equals("")) {

s = this.caculateNumber(s);

if (p2 == (str.length() - 1))

str = str.substring(0, p1) + s;

else

str = str.substring(0, p1) + s + str.substring(p2 + 1);

} else {

str = str.substring(0, p1) + str.substring(p2 + 1);

}

} else

str = this.caculateNumber(str);

}

return str;

}

private String caculateNumber(String ss) {

int p3 = 0, p4 = 0, p5 = 0;

char b = ' ', c = ' ';

String s1 = null, s2 = null;

double d1 = 0.0, d2 = 0.0, d3 = 0.0;

if (ss.charAt(0) == '+') {

ss = ss.substring(1);

if (ss.indexOf("+") == -1 ss.indexOf("-") == -1

ss.indexOf("*") == -1 ss.indexOf("/") == -1)

return ss;

} else if (ss.charAt(0) == '-') {

if (ss.indexOf("+", 1) == -1 ss.indexOf("-", 1) == -1

ss.indexOf("*", 1) == -1 ss.indexOf("/", 1) == -1)

return ss;

}

while (isEnd2(ss)) {

p3 = 0;

p4 = 0;

p5 = 0;

if (ss.indexOf("*") == -1 ss.indexOf("/") == -1) {

for (int i = 0; i ss.length(); i++) {

b = ss.charAt(i);

if (b == '+' || b == '-') {

if (p3 == 0 i != 0) {

p3 = i;

c = b;

} else if (p3 != 0 i != (p3 + 1)) {

p4 = i;

break;

}

}

}

if (p4 == 0) {

s1 = ss.substring(0, p3);

s2 = ss.substring(p3 + 1);

} else {

s1 = ss.substring(0, p3);

s2 = ss.substring(p3 + 1, p4);

}

d1 = Double.parseDouble(s1);

d2 = Double.parseDouble(s2);

if (c == '+')

d3 = d1 + d2;

else if (c == '-')

d3 = d1 - d2;

if (p4 == 0)

ss = new Double(d3).toString();

else

ss = new Double(d3).toString() + ss.substring(p4);

} else {

if (ss.indexOf("*") == -1) {

c = '/';

p4 = ss.indexOf("/");

} else if (ss.indexOf("/") == -1) {

c = '*';

p4 = ss.indexOf("*");

} else if (ss.indexOf("*") ss.indexOf("/")) {

c = '/';

p4 = ss.indexOf("/");

} else if (ss.indexOf("*") ss.indexOf("/")) {

c = '*';

p4 = ss.indexOf("*");

}

for (int i = p4 - 1; i = 0; i--) {

b = ss.charAt(i);

if (b == '+' || b == '-') {

if ((i - 1) != 0 ss.charAt(i - 1) != '+'

ss.charAt(i - 1) != '-') {

p3 = i;

break;

} else if ((i - 1) != 0

(ss.charAt(i - 1) == '+' || ss.charAt(i - 1) == '-')) {

p3 = i - 1;

break;

}

}

}

for (int i = p4 + 1; i ss.length(); i++) {

b = ss.charAt(i);

if ((b == '+' || b == '-' || b == '*' || b == '/')

(i - 1) != p4) {

p5 = i;

break;

}

}

if (p3 == 0)

s1 = ss.substring(0, p4);

else

s1 = ss.substring(p3 + 1, p4);

if (p5 == 0)

s2 = ss.substring(p4 + 1);

else

s2 = ss.substring(p4 + 1, p5);

d1 = Double.parseDouble(s1);

d2 = Double.parseDouble(s2);

if (c == '*')

d3 = d1 * d2;

else if (c == '/')

d3 = d1 / d2;

if (p3 == 0 p5 == 0)

ss = new Double(d3).toString();

else if (p3 == 0 p5 != 0)

ss = new Double(d3).toString() + ss.substring(p5);

else if (p3 != 0 p5 == 0)

ss = ss.substring(0, p3 + 1) + new Double(d3).toString();

else if (p3 != 0 p5 != 0)

ss = ss.substring(0, p3 + 1) + new Double(d3).toString()

+ ss.substring(p5);

}

}

return ss;

}

private boolean isEnd(String str) {

if (str.indexOf("(") != -1 || str.indexOf(")") != -1

|| str.indexOf("+", 1) != -1 || str.indexOf("-", 1) != -1

|| str.indexOf("*", 1) != -1 || str.indexOf("/", 1) != -1)

return true;

return false;

}

private boolean isEnd2(String ss) {

if (ss.indexOf("+", 1) != -1 || ss.indexOf("-", 1) != -1

|| ss.indexOf("*", 1) != -1 || ss.indexOf("/", 1) != -1)

return true;

return false;

}

private void clear() {

str = str.replaceAll(" ", "");

}

private void check() {

int right = 0, left = 0;

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

char a = str.charAt(i);

if (a != '0' a != '1' a != '2' a != '3' a != '4'

a != '5' a != '6' a != '7' a != '8' a != '9'

a != '+' a != '-' a != '*' a != '/' a != '('

a != ')' a != '.') {

System.exit(0);

}

if (a == '(')

left++;

else if (a == ')')

right++;

}

if (left != right) {

System.exit(0);

}

}

public static void main(String args[]) {

System.out.println(new CaculateString("((1-(0/3))*7)+8").caculate());

}

}

我想学算数,手机上下载什么软件可以帮助我?

不知道你是想找什么阶段的算数题,但是你可以去应用宝这个应用市场里找一找

我刚看了一下,它里面的学习算数的软件还挺多的

也有适用于各个年龄段人群的。你就在电脑上或者是手机里下载一个应用宝就行了

然后搜索学算术就可以搜到很多此类的软件了

看一下当中有没有你想要用的吧,要是有的话就连接手机到电脑上下载就行了

应用宝里的软件质量也有保障,放心用吧

有没有随机出算术题的软件,然后让你作答,手机上的

还真的有...

啄木鸟查查。

它其实是一个检查算术题的软件,拍照就能显示对错,一秒能检查几十题。同时还有一个口算练习功能,可以根据年龄、题型选择模块,一个模块有三十道题,完全随机。用来练习算术再好不过了。这个app现在在快速更新,有什么想要的新功能都可以在我要反馈里提出,说不定就开发上线了。

哪里有可以自动出算数题的软件

*** 网店“启明软件”有一款自动出题的软件。 可以选择几位数字、保留的小数位,每次出20道题不重复。 加减乘除都能做。 可以保存成文本文件,排列整齐,可以单列保存,也可以双列保存。 可以打印。 另外还自动生成一个头部,内含:姓名、日期、班级、分数。 还有一个亮点,即可以生成一个竖式,特别是乘法,显示了全部的解题过程。如: 1 2 4 X 2 5 ---------------- 6 1 0 + 2 4 8 ----------------- 3 0 9 0 你也可以修改每一题。 还有一个按钮,能显示所有答案。只显示一个题的答案,就按一下该题的“=”号。因此你能生成一份带答案的文件。对于教师来说可以做课件,对于学生来说,可以帮助验算。小小软件里有做不完的题。我推荐的这个软件怎么样?

哪里有可以自动出算数题的软件可以?

下载个小学出题器吧。

小学出题器是一款专门用于进行数学题出题的软件,能够支持到小学1-3年级的小学数学题的出题,有需要的可以下载使用。

功能介绍

支持自定义题目数量

支持运算元数修改

自定义参数范围

自定义运算符

支持答案输出

支持一键打印

小学出题器(出题软件)绿色版

有没有实用的小孩子学习算术的手机软件

有,可以在应用宝中下载,

使用大王卡还可以免流量,在应用宝下载的软件都木有啥问题

我就是在它上面下载软件的 ,功能和兼容性都很好!

在手机上上打开应用宝软件,然后在它上面的搜索栏里面搜索你的软件,找到就可以下载!

除了在手机上下载,在电脑上也可以下载手机的软件,打开电脑上的应用宝,就可以连接数据线,安装软件到手机上!

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。