package test3;
import java.util.*;

public class Grade2 {

static String[][] mis=new String[500][4]; //将错误的题放入其中

public static int generateRandom(int range) //生成随机数
{
Random random=new Random();
int R=random.nextInt(range);
return R;
}

public static char generateOperator() //生成运算符
{
int i;
char a='0';
i=generateRandom(4);
switch(i)
{
case 0:a='+';break;
case 1:a='-';break;
case 2:a='*';break;
case 3:a='/';break;
}
return a;

}

public static String[][] generateProblem(int number,int range,int count) //生成算题,不带括号的
{
int i,j,k,k1=0,k2=0;
char p;
String[][] str=new String[number][count*2];
for(i=0;i<number;i++)
{
for(j=0;j<count*2-1;j+=2)
{
k=generateRandom(range);
str[i][j]=String.valueOf(k);
}
for(j=1;j<count*2-1;j+=2)
{
if(count==2)
{
k1=Integer.valueOf(str[i][0]);
k2=Integer.valueOf(str[i][2]);
if((k1%k2)==0)
{
p=generateOperator();
str[i][j]=String.valueOf(p);
}
else
{
do {
p=generateOperator();
}while(p=='/');
str[i][j]=String.valueOf(p);
}
}
else
{
p=generateOperator();
str[i][j]=String.valueOf(p);
}
}
str[i][count*2-1]="=";
}
return str;
}

public static boolean ifRepeat(int number,int range,int count) { //判断题目是否重复
int i,j,k=1;
String[][] str=new String[number][count*2];
str=generateProblem(number,range,count);
for(i=0;i<number;i++)
{
for(j=0;j<i;j++)
{
if(str[j].equals(str[i]))
{
return false;

}
else continue;
}
if(k==0) break;
else continue;
}
return true;

}

public static void put(int number,int range,int count) { //输出
int i,j,k1,k2=0;
int x=0; //错题数为x+1
int count1=0,count2=0,count3=0,count4=0;
float len=0;

String[][] str=new String[number][count*2];


Scanner sc=new Scanner(System.in);
str=generateProblem(number,range,count);

for(i=0;i<number;i++)
{
if(count==2)
{
count1=Integer.valueOf(str[i][0]);
count2=Integer.valueOf(str[i][2]);
}

for(j=0;j<count*2;j++)
{
System.out.print(str[i][j]);
}
k1=sc.nextInt(); //做题者输入答案
for(j=1;j<count*2;j+=2)
{
if(count==2)
{
switch(str[i][j])
{
case "+":k2=count1+count2;break;
case "-":k2=count1-count2;break;
case "*":k2=count1*count2;break;
case "/":k2=count1/count2;break;
default:break;
}
if(k1==k2)
{
System.out.print("答案正确");
break;
}
else //存放进错题本
{
len++;
for(j=0;j<count*2;j++)
{
mis[x][j]=str[i][j];
}
x++;
System.out.print("答案错误");
break;
}
}

}
System.out.println();
}

System.out.println("您本次答题的错误率为"+(len/number)*100+"%");
System.out.println("您是否需要再做一套题:1.是,2.否");
int s1=sc.nextInt();
if(s1==1)
{
put(number,range,count);
}
System.out.println("您是否针对错题本练习一遍:1.是,2.否");
int s2=sc.nextInt();
if(s2==1)
{
putMisGrade2(number,range,count,x);
}
}

public static void putMisGrade2(int number,int range,int count,int x) //2年级的错题本输出
{
int count1=0, count2=0,k1,k2=0,i,j;
Scanner sc=new Scanner(System.in);
for(i=0;i<x;i++)
{
if(count==2)
{
count1=Integer.valueOf(mis[i][0]);
count2=Integer.valueOf(mis[i][2]);
}

for(j=0;j<count*2;j++)
{
System.out.print(mis[i][j]);
}
k1=sc.nextInt(); //做题者输入答案
for(j=1;j<count*2;j+=2)
{
if(count==2)
{
switch(mis[i][j])
{
case "+":k2=count1+count2;break;
case "-":k2=count1-count2;break;
case "*":k2=count1*count2;break;
case "/":k2=count1/count2;break;
}
if(k1==k2)
System.out.println("答案正确");
}
}
}
}

public static void main(String[] args)
{
int number,range,count=2; //count 为操作数的个数
Scanner sc=new Scanner(System.in);

System.out.println("小学二年级计算题");

System.out.println("请输入您所需要的题目个数:");
number=sc.nextInt();

System.out.println("请输入您需要的操作题的范围:");
range=sc.nextInt();

String[][] str=new String[number][count*2];
str=generateProblem(number,range,count);
put(number,range,count);
}

}

java课堂测试3第一部分(未完善)的更多相关文章

  1. java课堂测试2第一阶段:方法运用

    package test2; import java.util.*; public class Test2 { public static int generateRandom(int fanwei) ...

  2. Java课堂测试--实现ATM的基本操作体会

    9月20的周四的Java课堂第一节课上就是有关于实现ATM的考试内容,在实现的过程中我了解到自己本身还是有很多的不足之处,例如在实现工程方面的相似性上面还有些许就的欠缺,再者就是回宿舍拿电源的原因导致 ...

  3. java课堂测试2(两种方式)

    实验源代码 这是不使用数组形式的源代码 /* 2017/10/10 王翌淞 课堂测试2 */import java.util.Scanner; public class Number { public ...

  4. 每日总结:Java课堂测试第三阶段第一次优化 (2021.9.20)

    package jisuan2; import java.util.*;public class xiaoxue { public static void main(String[] args) { ...

  5. Java课堂测试——一维数组

    题目: 一个典型的流程是: 2. 用户这时候有两个选择2.1  按 单步执行 键, 在 GUI 看到你的程序是如何一步一步算出目前最大子数组的范围,当前计算到的临时子数组是在哪里,等等. 最好用不同的 ...

  6. Java课堂测试01及感想

    上周进行了Java的开学第一次测验,按要求做一个模拟ATM机功能的程序,实现存取款.转账汇款.修改密码.查询余额的操作.这次测验和假期的试题最大的不同还是把数组存储改成的文件存储,在听到老师说要用文件 ...

  7. java课堂测试—根据模板完成一个简单的技术需求征集系统

    课堂上老师发布了一个页面模板要求让我们实现一个系统的功能,模仿以后后端的简单工作情况. 然后在这个模板的基础上,提供了一个注册的网页模板,接着点击注册的按钮,发现register里面调用了zhu/zh ...

  8. java课堂测试

       package 作业2; //信1805-1 杨一帆 20183608 public class ScoreInformation1 { private String stunumber; pr ...

  9. 每日总结:Java课堂测试第三阶段第二次优化 (四则运算) (2021.9.22)

    package jisuan2; import java.util.*;import java.util.Scanner; public class xiaoxue { public static v ...

随机推荐

  1. mybaits源码分析--类型转换模块(三)

    一.类型转换模块 String sql = "SELECT id,user_name,real_name,password,age,d_id from t_user where id = ? ...

  2. Win10 pip install augimg 报 OSError: [WinError 126] 找不到指定的模块,解决办法

    第一种Win10下python成功安装augimg的方法: 下载Shapely,地址https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely,选择对应版本 ...

  3. Vue Router路由导航及传参方式

    路由导航及传参方式 一.两种导航方式 ①:声明式导航 <router-link :to="..."> ②:编程式导航 router.push(...) 二.编程式导航参 ...

  4. 云效x钉钉:让研发工作更简单

    云效x钉钉:让研发工作更简单,奔走相告,云效&钉钉集成实现组织架构.成员同步以及消息通知啦! 我们知道云效致力于智能化.安全可追溯.高效.简单.灵活,「云效新一代企业级DevOps平台」阿里云 ...

  5. npm配置镜像及nrm使用

    ​ 淘宝npm镜像 搜索地址:http://npm.taobao.org/ registry地址:http://registry.npm.taobao.org/ cnpmjs镜像 搜索地址:http: ...

  6. 网络层协议、ARP攻击

    一.IP数据包格式 二.ICMP协议介绍 PING命令 三.ARP协议介绍 四.ARP攻击原理 一.IP数据包格式 网络层的功能 定义了基于IP协议的逻辑地址 连接不同的媒介类型 选择数据通过网络的最 ...

  7. UVA 506 System Dependencies(模拟 烂题)

    https://vjudge.net/problem/UVA-506 题目是给出了五种指令,DEPEND.INSTALL.REMOVE.LIST.END,操作的格式及功能如下: DEPEND item ...

  8. 使用PHP获取图像文件的EXIF信息

    在我们拍的照片以及各类图像文件中,其实还保存着一些信息是无法直观看到的,比如手机拍照时会有的位置信息,图片的类型.大小等,这些信息就称为 EXIF 信息.一般 JPG . TIFF 这类的图片文件都会 ...

  9. mysql更新数据时:当想mysql某插入有某字段设置了unique且和之前相同时,会报错,并停止运行

    这个在mysql5.7会报错: 如openid设为unique: 1062 - Duplicate entry 'oTfYq6PKne00IrcTqphmKqKnsahM' for key 'qx_w ...

  10. pyqt5 GUI教程

    from PyQt5 import QtCore, QtGui, QtWidgets import sys import qtawesome class MainUi(QtWidgets.QMainW ...