学分高考 软件测试

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

发布时间: 2023-04-14 11:45:05

用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());
}
}

小学数学测试软件c++源代码

给,已经编译运行确认:
#include<iostream>
#include<cstdlib>
using namespace std;
void fuhao(int x)
{
if(x==0) printf("+");
if(x==1) printf("-");
if(x==2) printf("*");
}
int main()
{
int a,b,t,p,flag;
int score=0;
int n,i;
loop :
system("cls");
cout<<"您要答多少题?"<<endl;
cin>>n;
cout<<"开始进入测试!"<<endl;
for(i=0;i<n;i++)
{
cout<<"第"<<i+1<<"题:"<<endl;
a=rand()%10;
b=rand()%10;
if(a<b)
{t=a;a=b;b=t;}
flag=rand()%3;
cout<<a;
fuhao(flag);
cout<<b<<" = ";
cin>>t;
if(flag==0)
{
if(t==a+b)
{cout<<"真棒了! 答对了!"<<endl;score++;}
else cout<<"答错了!正确答案是: "<<a+b<<endl;
}
if(flag==1)
{
if(t==a-b)
{cout<<"真棒了! 答对了!"<<endl;score++;}
else cout<<"答错了!正确答案是: "<<a-b<<endl;
}
if(flag==2)
{
if(t==a*b)
{cout<<"真棒了! 答对了!"<<endl;score++;}
else cout<<"答错了!正确答案是: "<<a*b<<endl;
}
}
cout<<"做对题目的总个数为: "<<score<<endl;
cout<<"是否继续?1.继续2.退出"<<endl;
cin>>t;
if(t==1)goto loop;
else cout<<"欢迎使用!再见!"<<endl;
system("pause");
return 1;
}

急求:用C语言编写小学生数学测试软件

//vc 6.0调试通过
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
int add(int x,int y)
{return x+y;}
int sub(int x,int y)
{return x-y;}
int mul(int x,int y)
{return x*y;}
void fun(char f)
{
int n,x,y,z,t,result,sum=0;
srand((unsigned)time(NULL));
printf("请选择答题的个数:n");
scanf("%d",&n);
for(int i=0;i<n;i++)
{
x=rand()%10;
y=rand()%10;
if(x<y && f=='-')
{t=x;x=y;y=t;}
if(f=='*')
{while(!x){x=rand()%10;}
while(!y){y=rand()%10;}}
printf("%d %c %d =",x,f,y);
scanf("%d",&z);
switch(f)
{
case '+':
result=add(x,y);break;
case '-':
result=sub(x,y);break;
case '*':
result=mul(x,y);break;
}
if(result==z)
{printf("正确!n");sum++;}
else
printf("错误!应该是%dn",result);
}
printf("n正确率为%f%%n/////////////////////////////////nn",100.0*sum/n);
fflush(stdin);
}
void main()
{
printf("/////////////////////////////////n");
printf(" 小学生数学测试软件n");
printf("//////////////////////////////////nn");
char ch;
while(1)
{
printf("请选择题型--加(+),减(-),乘(*),退出(0): ");
ch=getchar();
if(ch=='+'||ch=='-'||ch=='*')
fun(ch);
else if(ch=='0')
exit(0);
else
printf("错误!n");
}
}

中小学英语听力测试,用什么软件?怎么使用?

按下面的步骤来
Step 1:打通耳朵 完全听清
第一、选择1盘(再次强调是1盘而非1套)适合自身英语水平的磁带。
第二、每天集中精力把A面和B面连续听两遍。
第三、要坚持天天听,但每隔6天要休息1天。
第四、直到听清磁带中的所有内容。
Step 2:听读并举 掌握语法
第一、把已经能完全听清的磁带中的第1盘磁带再找出来。
第二、听写这盘磁带的内容。
第三、做听写练习时,一句一句地听。即:听完一句后,先按暂停,把刚才听到的写下来,反复听,直到完全听清这句为止。不会的单词根据发音大致拼写出来即可。
第四、听写完整盘磁带的所有内容后,用英英词典确认不会的单词的拼写是否正确(知道其意当然好,不知道也不要紧)。
第五、按这种方法听写完整盘磁带的内容后,尽量模仿磁带的发音和语调,从头到尾大声朗读(不满意的部分要再听一遍磁带重新朗读)。
第六、感觉到所有的句子都已经能朗朗上口以后,便结束这一阶段。
第七、整个过程中,每个星期要有一天与英语完全隔绝。
Step 3:跃跃欲说 出口成章
第一、用英英词典查以前做听写练习时不懂的单词。
第二、把单词的解释和例句记下来,若这其中还有不懂的单词的话,继续查字典。
第三、查词典要坚持查到没有不懂的单词为止。
第四、大约查一个小时以后,暂停查字典,并大声朗读通过查词典整理出来的内容。
第五、朗读约1个小时后结束。
第六、查在原文和单词解释中出现的所有不懂的单词,并一直朗读到完全吃透解释和例句为止。
Step 4:自我领悟 无典自通
第一、准备1盘录像带。
第二、带上耳机,每天看1遍。
第三、能够完全听清之后,便开始听写、朗读。
第四、将不清楚的单词,利用英英词典查找并朗读。
Step 5:文化融通 渐入佳境
第一、准备1张最近的英文原版报纸(在美国发行的报纸)。
第二、从社会版面挑选一篇短文章(1-2分钟就能念完的),然后大声朗读。必须坚持到完全消化为止,就好象自己成了新闻主持人一样。
第三、当确信自己不看原文也可以记住文章内容时,把她像讲一个故事一样绘声绘色地复述下来。
第四、能够流利地朗读时,才选第二篇文章,重复上面所讲的方法。
第五、看完一个版面后,就像第三阶段那样处理不认识的单词。
第六、把报纸上广告,名人访谈,漫画等所有的内容,都按上述方法加以学习。
总的来说,忘记语法,培养语感
————觉得好就请点采纳答案把,给个好评,祝愿你生活更美好———

C语言编程 小学生数学测试软件系统设计 为了帮助小学生进行百以内加法、减法、乘法练习,现应某小学要求

#include <stdio.h>
void main()
{int n m k h a b c;
  int l=0;
  a=rand()%100+1;
  b=rand()%100+1;
  printf(“请输入相应的数字选择题型”);
  printf(“1:加法”);
  printf(“2:减法”);
  printf(“3:乘法”);
  scanf(d%,&n);
  printf(“选择每次答题的个数:”);
  scanf(d%,&m);
  for(k=0;k<=m;k++)
  {
  switch(n)
    {
      case 1:
        c=a+b;
        printf("input your anser:")
        scanf(d%,&h);
        if(h==c)
          {
            l++;
          }
        else
         {
            printf("you are wrong,");
            printf("a+b=d%",c)
         } 
        break;
      case 2:
        c=a-b;
        break;
      case 3:
        c=a*b;
        break;
      default:
        break;
    }
  }
 }
 后面的乘除就类似了

什么考试软件可以在线考试小学到高中的试题

如果有试题资源,可以直接使用在线考试系统导入试题,然后自己创建试卷进行考试。

1、在线考试系统可以在系统的编辑页根据系统提示的格式要求可视化批量新增试题,也可以使用导题模板一键导入试题,有三种模板格式可以选择:

第一种:Word模板,有简单模板和复杂模板两种,按照格式要求编辑好试题的题干、内容、答案等属性即可导入试题,还能够批量导入有图片的试题。在导入试题时,系统可以对有格式错误及重复试题进行提示。

第二种:Excel模板,有两种格式的模板,两个模板的区别在于,一个模板是一个选项占一个单元格,另一个模板是多个选项放在一个单元格内,可以根据自己的使用习惯灵活选择模板。

第三种:TXT模板,与Word模板的导题规则一样,主要是针对在未安装Office环境下,无法通过Excel模板或Word模板导入时,可以使用记事本TXT模板导入。

2、在线考试系统有多种组卷模式可以选择:固定试卷、随机试卷、抽题试卷,选择好组卷模式后,可以设计试卷结构,添加试题进行组卷。

固定试卷:试题是固定的,所有考生考同样的题目。

随机试卷:每个考生的试卷都是系统按照设定的抽题策略,按试题类型、试题分类、难度等维度从题库中随机抽题,所有考生的试卷内容都是不一样的。

抽题试卷:在出题人指定的试题范围内,按试题难度系数设置抽题数量进行随机抽题组卷,每个考生的试卷内容都是不一样的。

3、创建一场考试,只需要:

填写考试基本信息、考试有效时间、考试须知等,设置考生参加方式及授权信息等。

选择试卷类型,设计试卷,从题库中选择试题组卷。

设置考试场景,发布考试,考生通过手机、电脑等终端参加考试。

c#编程随机生成加减乘除的数学题目,写出答案并一分钟倒计时,结束显示答题多少,答对率多少 代码怎么写

窗体程序,加一个Timer,5个label和一个textbox,1个button
Timer的事件属性设成1000
Form_Load事件
LabelTime.Text = "60";
Timer.Start();
newWork();
-------------------
int correct = 0;
int count = 0;
void newWork(){
Random rd = new Random();
Label1.Text = rd.Next(1,100);
Label3.Text = rd.Next(1,100);
string[] fuhao = new string[]{"+","-","*","/"};
Label2.Text = fuhao[rd.Next(1,5)];
}
int getresult()
{
float result = 0;
int a = int.Parse(Label1.Text);
int b = int.Parse(Label2.Text);
switch(Label2.Text)
{
case "+":
result = a+b;
break;
case "-":
result = a-b;
break;
case "*":
result = a*b;
break;
case "/":
result = a/b
break;
}
}
-----------------------
button_Click事件
count++;
int result = int.Parse(textBox1.Text);
if(result == getresult())
{
correct ++;
}
newWork();
Timer_Tick事件
int second = int.Parse(LabelTime.Text);
if(second != 0)
{
second--;
}
else
{
textBox1.Text.Enable = false;
MessageBox.Show("共答"+count.ToString()+"题,答对"+correct.ToString()+"题,正确率"+(correct/count).ToString()+"");
Timer.Stop();
}

以上的文章内容用Java设计一个小学算术运算测试软件就是小编最近整理出来的,大家可以互相讨论吐槽发表自己的观点哦~!查看更多相关文章请访问学分高考(本文共13136字)

温馨提示:
本文【用Java设计一个小学算术运算测试软件】由作者教培参考提供。该文观点仅代表作者本人,学分高考系信息发布平台,仅提供信息存储空间服务,若存在侵权问题,请及时联系管理员或作者进行删除。
我们采用的作品包括内容和图片部分来源于网络用户投稿,我们不确定投稿用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的权利,请联系我站将及时删除。
内容侵权、违法和不良信息举报
Copyright @ 2024 学分高考 All Rights Reserved 版权所有. 湘ICP备17021685号