level3
伸冤下:老师的评论是有看到!看完我就去修改程序了,忘记回复请原谅!= =
前阵子都在修改功能和思路,但是由于一个细节的错误找不到,导致没有成品可以上传...求谅解。
细心真的很重要 = =!!!
- 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的更多相关文章
- Jarvis OJ - [XMAN]level3 - Writeup——ret2libc尝试
这次除了elf程序还附带一个动态链接库 先看一下,很一般的保护 思路分析 在ida中查看,可以确定通过read函数输入buf进行溢出,但是并没有看到合适的目标函数 但是用ida打开附带的链接库,可以看 ...
- XXS level3
(1)用level1和2的方法都行不通,查看PHP源代码,发现url与输入框内容都进行了过滤 <?php ini_set("display_errors", 0); $str ...
- TCGA学习1--下载level3 level4数据
1.使用firehose_get 下载level3 level4数据 https://confluence.broadinstitute.org/display/GDAC/Download exa ...
- [BUUCTF]REVERSE——[WUSTCTF2020]level3
[WUSTCTF2020]level3 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,找到关键函数 看样子是个base64加密,但又感觉没那么简单,再翻翻左边的函数,找到了base64加 ...
- UiPath Level3讲解
匠厂出品,必属精品 Uipath中文社区qq交流群:465630324 uipath中文交流社区:https://uipathbbs.com RPA之家qq群:465620839 第一课--UiP ...
- [TCO 2012 Round 3A Level3] CowsMooing (数论,中国剩余定理,同余方程)
题目:http://community.topcoder.com/stat?c=problem_statement&pm=12083 这道题还是挺耐想的(至少对我来说是这样).开始时我只会60 ...
- Go语言打造以太坊智能合约测试框架(level3)
传送门: 柏链项目学院 第三课 智能合约自动化测试 之前课程回顾 我们之前介绍了go语言调用exec处理命令行,介绍了toml配置文件的处理,以及awk处理文本文件获得ABI信息.我们的代码算是完成了 ...
- xctf-pwn level3
这道题研究了很久,总算是理解了got表和plt表的关系和作用 checksec看防护 main函数里提示了vunlnerable函数 查看一下vulnerable函数 可以利用read函数栈溢出,但是 ...
- 【绝对干货】仿微信QQ设置图形头像裁剪,让你的App从此炫起来~
最近在做毕业设计,想有一个功能和QQ一样可以裁剪头像并设置圆形头像,额,这是设计狮的一种潮流. 而纵观现在主流的APP,只要有用户系统这个功能,这个需求一般都是在(bu)劫(de)难(bu)逃(xue ...
随机推荐
- 【Hibernate步步为营】--核心对象+持久对象全析(一)
引言 上篇博客对Hibernate进行了基本的解析.并分析了它的一些特性. Hibernate可以如此的流行也是由于它有诸多长处,不论什么事物都有两面性.Hibernate尽管流行.可 ...
- java疯狂讲义--摘要
1.一个java文件中可以有多个类,但是只能有一个public类,并且该类需要与文件同名 第6章 对象的软,弱和虚引用 1.强引用---创建一个对象,并把这个对象赋给一个引用变量.一个对象被一个以上的 ...
- Android开发-各种各样好看漂亮的进度条,指示器,加载提示汇总
导读:之前项目中用到一些进度条,找了不少,打算写个demo自己总结一下,留着以后用, 有些是自己写的,有些是github上找的别人的库,如果大家觉得好看可以用,直接下载复制代码到项目里就可以用,ok ...
- 关于Spring IOC (DI-依赖注入)需要知道的一切
关联文章: 关于Spring IOC (DI-依赖注入)你需要知道的一切 关于 Spring AOP (AspectJ) 你该知晓的一切 <Spring入门经典>这本书无论对于初学者或者有 ...
- [转]改善C#程序的建议4:C#中标准Dispose模式的实现
需要明确一下C#程序(或者说.NET)中的资源.简单的说来,C#中的每一个类型都代表一种资源,而资源又分为两类: 托管资源:由CLR管理分配和释放的资源,即由CLR里new出来的对象: 非托管资源:不 ...
- day51
JS基础操作 一.分支结构 1.if语句 if 基础语法 if (条件表达式) { 代码块; } // 当条件表达式结果为true,会执行代码块:反之不执行 // 条件表达式可以为普通表达式 // 0 ...
- day42
今日内容: 1.子查询补充 2.正则表达式 3.pymysql 1.子查询补充 什么是子查询? 将上一次查询的结果作为下一次查询的条件或原数据 又称为内查询 作用:当你的需求,一次查询无法满足的时候( ...
- “System.Reflection.AmbiguousMatchException”类型的异常在 mscorlib.dll 中发生
错误提示: “System.Reflection.AmbiguousMatchException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理. 发现不明确的匹配. 问题原 ...
- 20155217《网络对抗》Exp02 后门原理与实践
20155217<网络对抗>Exp02 后门原理与实践 实验要求 使用netcat获取主机操作Shell,cron启动. 使用socat获取主机操作Shell,任务计划启动. 使用MSF ...
- 20155301 Exp4 恶意代码分析
20155301 Exp4 恶意代码分析 实践目标 (1) 是监控你自己系统的运行状态,看有没有可疑的程序在运行. (2) 是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用 ...