效果图

  • 先确定训练那种运算
  • 以及训练多少题:

  • 具体运算:

  • 结果分析

代码

  • 废话不多说,直接上代码
package 行测;import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import java.util.Scanner;public class CalculateByMain {static enum CalculateType {Add,Subtract,Multiply,Divide,Mix}public static CalculateType chooseType() {System.out.println("请输入出题类型(仅输入数字)\n1:加法\n2:减法\n3、乘法\n4:除法\n5:随机");Scanner input = new Scanner(System.in);int userResult = input.nextInt();switch(userResult) {case 1:return CalculateType.Add;case 2:return CalculateType.Subtract;case 3:return CalculateType.Multiply;case 4:return CalculateType.Divide;case 5:return CalculateType.Mix;}System.out.println("类型错误,请重试:");return chooseType();}public static int attachSymbolByType(CalculateType type) {int symbol = 0;if(type == CalculateType.Add) {return 0;} else if(type == CalculateType.Subtract) {return 1;} else if(type == CalculateType.Multiply) {return 2;} else if(type == CalculateType.Divide) {return 3;} else if(type == CalculateType.Mix) {Random r = new Random();return r.nextInt(3); // 生成[0,10]区间的整数}return 0;}public static Boolean doCalculate(CalculateType type) {Boolean isRight = false;Random r = new Random();int figuresFirst = r.nextInt(899) + 100; // 生成[0,10]区间的整数int figuresSecond = r.nextInt(899) + 100; // 生成[0,10]区间的整数int symbol = attachSymbolByType(type);String formula = "";formula+=figuresFirst;double formulaResult = 0;if (symbol == 0) {formula += " + ";formulaResult = figuresFirst + figuresSecond;}else if (symbol == 1) {formula += " - ";formulaResult = figuresFirst - figuresSecond;}else if (symbol == 2) {formula += " * ";formulaResult = figuresFirst * figuresSecond;}else if (symbol == 3) {formula += " / ";formulaResult = (float) figuresFirst / figuresSecond * 1.0;}formula += figuresSecond;formula += " = ";System.out.println(formula);Scanner input = new Scanner(System.in);double userResult = input.nextDouble();NumberFormat nf = NumberFormat.getNumberInstance();nf.setMaximumFractionDigits(3);isRight = Math.abs(formulaResult-userResult) < 0.1;System.out.print(isRight ? "\033[1;96m" + "√ 正确 罒ω罒 " +"\033[m" : "\033[1;91m" + "X 错误 (;′⌒`) "+"\033[m");System.out.println("答案是:" + nf.format(formulaResult));return isRight;}public static int scanQuestionNum() {System.out.println("你要刷多少题?请输入:");Scanner input = new Scanner(System.in);return input.nextInt();}public static void main(String[] args) {CalculateType type = chooseType();int questionNum= scanQuestionNum();int rightNum = 0;int totalTime = 0;for(int i = 0; i < questionNum; i++) {System.out.println("第"+(i+1)+"题,"+"还剩"+(questionNum-i-1)+"题:");long frontTime = System.currentTimeMillis();if(doCalculate(type)) {rightNum++;}long behindTime = System.currentTimeMillis();long usageTime = (behindTime - frontTime)/1000;totalTime+=usageTime;System.out.println("用时:"+usageTime+"秒");}NumberFormat nf = NumberFormat.getNumberInstance();nf.setMaximumFractionDigits(2);System.out.println("恭喜完成!正确率:" + nf.format((float)rightNum/questionNum*100) + "%");System.out.println("总用时:"+totalTime+"秒,平均用时"+totalTime/questionNum+"秒");}}

【公基】口算提速,java 自动生成:加、减、乘、除、混合运算题目相关推荐

  1. 生成小学加减口算题JAVA算法

    生成小学加减口算题JAVA算法 package com.jianchi.fsp.generationchildrenarithmetic;import java.io.Serializable; im ...

  2. java自动生成合同_Java 7和Java 8之间的细微自动关闭合同更改

    java自动生成合同 Java 7的try-with-resources语句和与该语句一起使用的AutoCloseable类型的一个不错的功能是,静态代码分析工具可以检测到资源泄漏. 例如,Eclip ...

  3. java自动生成类_自动生成优化的Java类专业知识

    java自动生成类 如果您今年访问过JavaOne,您可能已经参加了我的演讲"如何从数据库生成定制的Java 8代码". 在那次演讲中,我展示了如何使用Speedment Open ...

  4. java自动生成接口文档

    java自动生成接口文档 maven依赖 工具类 展示效果 首页 接口页 在平时的开发过程中必定要写接口文档 作为程序员 最烦的2件事 1.别人让你写接口文档 2.接手别人的项目没有接口文档 由此可见 ...

  5. Java自动生成PDF并进行邮件群发

    这段时间,公司承办一个互联网峰会,需要对4000多位客户发送邀请函,其中包括一个pdf文件和一封手写信,PDF中将从公司数据库中读取所有客户姓名,自动生成到相应位置,前期尝试Java自动生成pdf文件 ...

  6. Java自动生成二维码总结

    推荐一篇博客:Java自动生成带log的二维码 https://mp.csdn.net/postedit/84454677 第一种简单的方法: import java.io.File; import ...

  7. java自动生成sql语句

    java自动生成sql语句 艳学网强势来袭http://47.98.237.162/index,首次发布艳辉工具,第一个工具我们发布sql语句自动生成. 以前首次接触sql是在大学期间,刚开始是手写s ...

  8. JAVA 日期Date加减整理

    一.充分利用SimpleDateFormat import java.text.SimpleDateFormat; import java.util.Calendar; import java.uti ...

  9. Java LocalDate时间加减

    Java LocalDate时间加减 LocalDateTime time = LocalDateTime.now(); time = time.plusMinutes(5);//获取当前时间并加5分 ...

  10. java自动生成数据库代码

    自从学习计算机以来,学习了很多知识,都是从网上学习的,特别感谢网络,经常自比网络的boy, 现在把我过去做的工具共享出来,希望给大家的工作与学习带来帮助. webtool自动生成数据库代码,支持mys ...

最新文章

  1. pandas 修改数据和数据类型
  2. dota2比分网_红黑电竞比分横空出世 LPL夏季赛火热进行
  3. 方立勋_30天掌握JavaWeb_div和css基础
  4. java技术教程视频_Spring开发视频教程高级篇+源码(400M)33讲
  5. c++ winpcap开发(5)
  6. 有关TinyXML使用的简单总结
  7. Super Jumping! Jumping! Jumping! 最长上升子序列+DP
  8. windows安装grafana
  9. java的排序方法在哪个类里_Java排序(一)实现类的排序
  10. Hive教程(05)- Hive命令汇总
  11. visio安装问题总结
  12. excel合并两列内容_办公实用Execl表格中按这个键可以快速合并两列单元格内容...
  13. java解析富文本内容_java 解析富文本处理 img 标签
  14. 《动手学深度学习》组队学习打卡Task5——卷积神经网络进阶
  15. 无线路由器连接有线路由器设置
  16. 任意大小 内存池 c语言,C语言内存池使用模型-1 - Mr.南柯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  17. sap成本流怎么看_[原创]SAP方丈-写给新手的SAP成本核算流程
  18. PostgreSQL备份恢复之pgbackRest恢复
  19. 01-治疗脱发从MarkDown语法开始
  20. CANOe系列讲解 - 搭建CANOe工程

热门文章

  1. 修改select下拉箭头 使用背景图片
  2. 导数与微分及简单例题
  3. 【用友CTO】解读企业数字化中台
  4. 怎么选最快dns服务器,dns设置(dns设置哪个最好最快)
  5. 单片机学习-利用intrins.h中的_crol_和_cror_进行流水灯位移
  6. Python英文搜索引擎(模糊搜索)
  7. log4j2日志配置颜色
  8. 微信公众号涨粉攻略大全及实战
  9. 普渡大学计算机科学竞争激烈,Top12普渡大学计算机博士全奖录取:同时收获Top博士和藤校耶鲁硕士录取!她该怎么选择?...
  10. LaTex编辑器编辑公式