伸冤下:老师的评论是有看到!看完我就去修改程序了,忘记回复请原谅!= =

前阵子都在修改功能和思路,但是由于一个细节的错误找不到,导致没有成品可以上传...求谅解。

细心真的很重要 = =!!!

import java.util.Scanner;
public class Main { public static void main(String[] args) {
Scanner in=new Scanner (System.in);
int number=;
int number2;
System.out.println("题目的数量");
number=in.nextInt();
number2=number;
System.out.println("数值范围 10 空格 200 ");//先考虑整数的
int up=,down=;
down=in.nextInt();
up=in.nextInt();
System.out.println("打印时每行的间隔");
int between=;
between=in.nextInt();
String jud1,jud2,jud3;
System.out.println("是否有乘除法Y/N");
jud1=in.next();
in.nextLine();
System.out.println("是否支持小数Y/N");
jud2=in.next();
in.nextLine();
System.out.println("加减有无负数Y/N");
jud3=in.next();
in.nextLine();
//上面为基本要求,的录入
//下面的是为运算答案的一系列变量。
String qustion; //用字符串存放整个算式。定义一个class 来计算答案。
float answer;//答案
int score=;//分数。
int count=;//题数。 do{
int XB2=;//下标
int XB=;
float num[]=new float[];//存放数字,从0 开始;
String sign[]=new String[];//存放符号下标的从0开始; int flag=; //算式长度
int shuzi;
float shuzi2;//数字
int signal=;//数字正负
int b; //运算符号
String Temp=new String("Y");
flag =(int)(Math.random()*)+;//算式长度
if(jud2.equalsIgnoreCase(Temp))//是否有小数点
{
if(jud3.equalsIgnoreCase(Temp))//是否有负数
signal=(int) (Math.random()*);
shuzi2=(float)(Math.random()*(up-down))+down;
shuzi2=(int)(shuzi2*);
shuzi2=shuzi2/;//小数点的位数。
if(signal<)
{
num[XB]=shuzi2;
XB++;
qustion=shuzi2+"";//没有负数的有小数点的。
}
else
{
num[XB]=-shuzi2;
XB++;
qustion="(-"+shuzi2+")";
}
}
else{
if(jud3.equalsIgnoreCase(Temp))
signal=(int) (Math.random()*); shuzi=(int)(Math.random()*(up-down)+down);
if(signal<)
{
num[XB]=shuzi;
XB++;
qustion=shuzi+"";
}
else
{
num[XB]=-shuzi;
XB++;
qustion="(-"+shuzi+")";
}
}
//以上是第一个数
do{
if(jud1.equalsIgnoreCase(Temp))//是否有乘除
b=(int)(Math.random()*+);
else
b=(int)(Math.random()*+);
switch(b){
case ://加
if(jud2.equalsIgnoreCase(Temp))//是否小数点
{
if(jud3.equalsIgnoreCase(Temp))//是否有负数
signal=(int) (Math.random()*); shuzi2=(float)(Math.random()*(up-down))+down;
shuzi2=(int)(shuzi2*);
shuzi2=shuzi2/;
if(signal<)
{
num[XB]=shuzi2;
XB++;
sign[XB2]="+";
XB2++;
qustion=qustion+"+"+shuzi2;
}
else
{
num[XB]=-shuzi2;
XB++;
sign[XB2]="+";
XB2++;
qustion=qustion+"+"+"(-"+shuzi2+")";
}
}
else{ if(jud3.equalsIgnoreCase(Temp))//是否有负数
signal=(int) (Math.random()*); shuzi=(int)(Math.random()*(up-down)+down);
if(signal<)
{
num[XB]=shuzi;
XB++;
sign[XB2]="+";
XB2++;
qustion=qustion+"+"+shuzi;
}
else
{
num[XB]=-shuzi;
XB++;
sign[XB2]="+";
XB2++;
qustion=qustion+"+"+"(-"+shuzi+")";
}
}
break;
case ://减
if(jud2.equalsIgnoreCase(Temp))
{
if(jud3.equalsIgnoreCase(Temp))//是否有负数
signal=(int) (Math.random()*); shuzi2=(float)(Math.random()*(up-down))+down;
shuzi2=(int)(shuzi2*);
shuzi2=shuzi2/;
if(signal<){
num[XB]=shuzi2;
XB++;
sign[XB2]="-";
XB2++;
qustion=qustion+"-"+shuzi2;
}
else {
num[XB]=-shuzi2;
XB++;
sign[XB2]="-";
XB2++;
qustion=qustion+"-"+"(-"+shuzi2+")";
}
}
else{
if(jud3.equalsIgnoreCase(Temp))//是否有负数
signal=(int) (Math.random()*); shuzi=(int)(Math.random()*(up-down)+down);
if(signal<)
{
num[XB]=shuzi;
XB++;
sign[XB2]="-";
XB2++;
qustion=qustion+"-"+shuzi;
}
else
{
num[XB]=-shuzi;
XB++;
sign[XB2]="-";
XB2++;
qustion=qustion+"-"+"(-"+shuzi+")";
}
}
break;
case ://乘
if(jud2.equalsIgnoreCase(Temp))
{
if(jud3.equalsIgnoreCase(Temp))//是否有负数
signal=(int) (Math.random()*); shuzi2=(float)(Math.random()*(up-down))+down;
shuzi2=(int)(shuzi2*);
shuzi2=shuzi2/;
if(signal<)
{
num[XB-]=shuzi2*num[XB-];
qustion=qustion+"*"+shuzi2;
}
else
{
num[XB-]=-shuzi2*num[XB-];
qustion=qustion+"*"+shuzi2;
}
}
else{
if(jud3.equalsIgnoreCase(Temp))//是否有负数
signal=(int) (Math.random()*);
shuzi=(int)(Math.random()*(up-down)+down);
if(signal<)
{
num[XB-]=shuzi*num[XB-];
qustion=qustion+"*"+shuzi;
}
else
{
num[XB-]=-shuzi*num[XB-];
qustion=qustion+"*"+"(-"+shuzi+")";
}
}
break;
case ://除
if(jud2.equalsIgnoreCase(Temp))
{
if(jud3.equalsIgnoreCase(Temp))//是否有负数
signal=(int) (Math.random()*); shuzi2=(float)(Math.random()*(up-down))+down;
shuzi2=(int)(shuzi2*);
shuzi2=shuzi2/;
if(signal<)
{
num[XB-]=num[XB-]/shuzi2;
qustion=qustion+"÷"+shuzi2;
}
else
{
num[XB-]=-num[XB-]/shuzi2;
qustion=qustion+"÷"+"(-"+shuzi2+")";
}
}
else{
if(jud3.equalsIgnoreCase(Temp))//是否有负数
signal=(int) (Math.random()*); shuzi=(int)(Math.random()*(up-down)+down);
if(signal<)
{
num[XB-]=num[XB-]/shuzi;
qustion=qustion+"÷"+shuzi;
}
else
{
num[XB-]=-num[XB-]/shuzi;
qustion=qustion+"÷"+"(-"+shuzi+")";
}
}
break;
}
flag--;
}while(flag>);
qustion=qustion+"= ? ";//最终等式//此处最好输出num数组还有sign数组的内容找出错误的地方。
System.out.print(qustion+"保留两尾小数点/分数也可以");
String user=null;
user=in.nextLine();//录入正确
answer=changeanswer(user);
float answer2=calculation(sign,num);
// for(int jij=0;jij<sign.length;jij++)
// System.out.print(sign[jij]+"*");
// for(int jia=0;jia<num.length;jia++)
// System.out.print("-"+num[jia]+"*");
if(answer==answer2)
{
System.out.println("Right !");
score=score+;
count++;
}
else
System.out.println("The Answer is:"+answer2);
number--;//题目数量
for(int k=;k<=between;k++)//换行
System.out.println();
}while(number>);
System.out.println("You Scores is:"+score);
System.out.println( number2+"---"+"Qustions"+"---"+count +"---"+"You are correct !");
}
static //计算等式
float calculation(String a[]/*运算符数组*/,float b[]/*数字存放的数组*/){
float answer=;
for(int i=;i<a.length;i++)//读取传进来的字符串算式a的长度以此来转换计算。
if(a[i]!=null)
switch((isoperator(a[i].charAt()))){
case :
b[]=b[]+b[];
for(int j=;j<b.length-;j++)
if(b[j+]!=)
b[j]=b[j+];
else
break;
break;
case :
b[]=b[]-b[];
for(int j=;j<b.length-;j++)
if(b[j+]!=)
b[j]=b[j+];
else
break;
break;
default :
break;
}
else
break;
answer=b[];
answer=Math.round(answer*);
answer=answer/;
return answer;//计算机算出的答案。
}
//是否是符号
static int isoperator(char c){
if( c=='+')
return ;
else if(c=='-')
return ;
else if (c=='/')//为了分数的答案做准备。
return ;
return ;
}
static float changeanswer(String a){//用户输入的答案
float Ranswer=;
int i;
float temp[]=new float[];
String abc[]=new String[];
for(i=;i<a.length();i++)
if(isoperator(a.charAt(i))==)
break;
if(i==a.length())
Ranswer=Float.parseFloat(a);
else
{
abc=a.split("\\/");
temp[]=Float.parseFloat(abc[].toString());
temp[]=Float.parseFloat(abc[].toString());
Ranswer=temp[]/temp[];
Ranswer=Math.round(Ranswer*);
Ranswer=Ranswer/;
}
return Ranswer;
}
}

最基本的功能还是可以有的,答案支持分数,小数等多种形态。答案可以出来,希望老师帮忙看看 思路 有没有漏洞.

level3的更多相关文章

  1. Jarvis OJ - [XMAN]level3 - Writeup——ret2libc尝试

    这次除了elf程序还附带一个动态链接库 先看一下,很一般的保护 思路分析 在ida中查看,可以确定通过read函数输入buf进行溢出,但是并没有看到合适的目标函数 但是用ida打开附带的链接库,可以看 ...

  2. XXS level3

    (1)用level1和2的方法都行不通,查看PHP源代码,发现url与输入框内容都进行了过滤 <?php ini_set("display_errors", 0); $str ...

  3. TCGA学习1--下载level3 level4数据

    1.使用firehose_get   下载level3 level4数据 https://confluence.broadinstitute.org/display/GDAC/Download exa ...

  4. [BUUCTF]REVERSE——[WUSTCTF2020]level3

    [WUSTCTF2020]level3 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,找到关键函数 看样子是个base64加密,但又感觉没那么简单,再翻翻左边的函数,找到了base64加 ...

  5. UiPath Level3讲解

    匠厂出品,必属精品   Uipath中文社区qq交流群:465630324 uipath中文交流社区:https://uipathbbs.com RPA之家qq群:465620839 第一课--UiP ...

  6. [TCO 2012 Round 3A Level3] CowsMooing (数论,中国剩余定理,同余方程)

    题目:http://community.topcoder.com/stat?c=problem_statement&pm=12083 这道题还是挺耐想的(至少对我来说是这样).开始时我只会60 ...

  7. Go语言打造以太坊智能合约测试框架(level3)

    传送门: 柏链项目学院 第三课 智能合约自动化测试 之前课程回顾 我们之前介绍了go语言调用exec处理命令行,介绍了toml配置文件的处理,以及awk处理文本文件获得ABI信息.我们的代码算是完成了 ...

  8. xctf-pwn level3

    这道题研究了很久,总算是理解了got表和plt表的关系和作用 checksec看防护 main函数里提示了vunlnerable函数 查看一下vulnerable函数 可以利用read函数栈溢出,但是 ...

  9. 【绝对干货】仿微信QQ设置图形头像裁剪,让你的App从此炫起来~

    最近在做毕业设计,想有一个功能和QQ一样可以裁剪头像并设置圆形头像,额,这是设计狮的一种潮流. 而纵观现在主流的APP,只要有用户系统这个功能,这个需求一般都是在(bu)劫(de)难(bu)逃(xue ...

随机推荐

  1. xpath获取带注释的text

    from lxml import etree html_str = """<div id="box1">this from blog.cs ...

  2. 2-6 R语言基础 缺失值

    #缺失值 Missing Value > #NaN不可识别NA> x <- c(1,NA,2,NA,3) > is.na(x)[1] FALSE TRUE FALSE TRUE ...

  3. PHP实现微信发红包功能2

    <?php class wxPay { //配置参数信息 const SHANGHUHAO = "1430998xxx";//商户号 const PARTNERKEY = & ...

  4. Scala学习之路 (七)Scala的柯里化及其应用

    一.概念 柯里化(currying, 以逻辑学家Haskell Brooks Curry的名字命名)指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程.新的函数返回一个以原有第二个参数作为 ...

  5. Fuel 30 分钟快速安装OpenStack

    一直以来,对于openstack 的初学者来讲,安装往往是入门的头大难题.在E版本之前,要搭建一个基本能用的openstack 环境那是相当麻烦,自己要装机,自己搞源,自己照着文档敲命令,又没有靠谱的 ...

  6. day2-作业及答案

    作业:第一组: 1.接收用户输入一个年份,判断是否是闰年(判断闰年的方法是该年能被4整除并且不能被100整除,或者是可以被400整除) 2.接收用户输入一组整数,输入负数时结束输入,输出这组数字的和: ...

  7. WorldWind源码剖析系列:大气层散射球类AtmosphericScatteringSphere

    大气层散射球类AtmosphericScatteringSphere代表地球外面的大气层散射球模型,可以控制开启/关闭渲染该对象.该类的类图如下. 该类所包含的主要字段.属性和方法如下: public ...

  8. OpenCV——直方图计算、寻早最值位置和对比匹配(判断两幅图的相似程度)

  9. win10家庭版安装DockerToolbox-18.03.0-ce

    下载DockerToolbox-18.03.0-ce.exe https://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ 点击安 ...

  10. css盒子模型(box-sizing)

    盒子模型 关于CSS重要的一个概念就是CSS盒子模型.它控制着页面这些元素的高度和宽度.盒子模型多少会让人产生一些困惑,尤其当涉及到高度和宽度计算的时候.真正盒子的宽度(在页面呈现出来的宽度)和高度, ...