java课堂测试3第一部分(未完善)
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第一部分(未完善)的更多相关文章
- java课堂测试2第一阶段:方法运用
package test2; import java.util.*; public class Test2 { public static int generateRandom(int fanwei) ...
- Java课堂测试--实现ATM的基本操作体会
9月20的周四的Java课堂第一节课上就是有关于实现ATM的考试内容,在实现的过程中我了解到自己本身还是有很多的不足之处,例如在实现工程方面的相似性上面还有些许就的欠缺,再者就是回宿舍拿电源的原因导致 ...
- java课堂测试2(两种方式)
实验源代码 这是不使用数组形式的源代码 /* 2017/10/10 王翌淞 课堂测试2 */import java.util.Scanner; public class Number { public ...
- 每日总结:Java课堂测试第三阶段第一次优化 (2021.9.20)
package jisuan2; import java.util.*;public class xiaoxue { public static void main(String[] args) { ...
- Java课堂测试——一维数组
题目: 一个典型的流程是: 2. 用户这时候有两个选择2.1 按 单步执行 键, 在 GUI 看到你的程序是如何一步一步算出目前最大子数组的范围,当前计算到的临时子数组是在哪里,等等. 最好用不同的 ...
- Java课堂测试01及感想
上周进行了Java的开学第一次测验,按要求做一个模拟ATM机功能的程序,实现存取款.转账汇款.修改密码.查询余额的操作.这次测验和假期的试题最大的不同还是把数组存储改成的文件存储,在听到老师说要用文件 ...
- java课堂测试—根据模板完成一个简单的技术需求征集系统
课堂上老师发布了一个页面模板要求让我们实现一个系统的功能,模仿以后后端的简单工作情况. 然后在这个模板的基础上,提供了一个注册的网页模板,接着点击注册的按钮,发现register里面调用了zhu/zh ...
- java课堂测试
package 作业2; //信1805-1 杨一帆 20183608 public class ScoreInformation1 { private String stunumber; pr ...
- 每日总结:Java课堂测试第三阶段第二次优化 (四则运算) (2021.9.22)
package jisuan2; import java.util.*;import java.util.Scanner; public class xiaoxue { public static v ...
随机推荐
- unity优化 — UGUI纹理格式的选择
首次界面打开加载的资源(如 贴图)会被缓存在内存中,再次打开界面由于内存中已有了资源 所以会更快.如何让首次打开界面会更快呢? 图片是否进行了有效的压缩.Android 平台下不带透明通道 优先使用E ...
- promise链式调用的应用
then在链式调用时,会等前一个then或者函数执行完毕,返回状态,才会执行回调函数. (1)代码顺序执行,第一步调用了函数cook ,cook执行返回了一个promise,promise返回的是成功 ...
- Hutool中那些常用的工具类和方法
Hutool中那些常用的工具类和方法 Hutool是一个Java工具包,它帮助我们简化每一行代码,避免重复造轮子.如果你有需要用到某些工具方法的时候,不妨在Hutool里面找找,可能就有.本文将对Hu ...
- C++、Java、Python、Linux、Go、前端、算法,慕课资料分享
C++.Java.Python.Linux.Go.前端.算法,慕课资料分享 微信公众号:大道同行JAVA 如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 又见面了.废话不多说,最近多了一些在 ...
- 树莓派4B切换国内源-亲测有效
参考:https://blog.csdn.net/qq_30290661/article/details/103386997 修改/etc/apt/sources.list,去掉自带的源,添加如下源: ...
- MySQL——select语句
select: 基本语法:select 列名 或 * from 对象(表.视图...) where: = > < <> != like ----> like 'old%' ...
- K8s 系列(三) - 如何配置 etcd https 证书?
在 K8s 中,kube-apiserver 使用 etcd 对 REST object 资源进行持久化存储,本文介绍如何配置生成自签 https 证书,搭建 etcd 集群给 apiserver 使 ...
- Linux制作根文件系统笔记
测试平台 宿主机平台:Ubuntu 12.04.4 LTS 目标机:Easy-ARM IMX283 目标机内核:Linux 2.6.35.3 交叉编译器:arm-linux-gcc 4.4.4 Bus ...
- 使用zipKin构建NetCore分布式链路跟踪
本文主要讲解使用ZipKin构建NetCore分布式链路跟踪 场景 因为最近公司业务量增加,而项目也需要增大部署数量,K8S中Pod基本都扩容了一倍,新增了若干物理机,部分物理机网络通信存在问题,导致 ...
- 最小生成树-普利姆(Prim)算法
最小生成树-普利姆(Prim)算法 最小生成树 概念:将给出的所有点连接起来(即从一个点可到任意一个点),且连接路径之和最小的图叫最小生成树.最小生成树属于一种树形结构(树形结构是一种特殊的图),或者 ...