一、设计思路

  1、利用随机数来确定两个数字。

  2、生成0-4的随机数,分别代表 加 减 乘 除。

  3、输入的题数利用for循环来出题,每行输出几道题便在循环中加入if语句,当前出题数与每行输出题数求余为0时,换行。

  4、利用三个数组存信息,分别存出过的题的两个数字和运算符号。

  5、循环开始后,先随机数生成两个数字和运算符号,然后再与数组中的信息进行比对,如果是三个信息都不相等的话进行下一步操作,否则再次生成三个信息。

  6、输出相应的信息,每隔相应数量个式子便换行。

二、源代码

  1. package 课堂;
  2. import java.math.*;
  3. import java.util.*;
  4. public class ceshi {
  5. public static void main(String[] args) {
  6. Scanner scanner = new Scanner(System.in);
  7. int sum=scanner.nextInt();
  8. int hang=scanner.nextInt();
  9. int[] a= new int[sum];
  10. int[] b= new int[sum];
  11. int[] c= new int[sum];
  12. for(int i=0;i<sum;i++)
  13. {
  14. int x = (int)(Math.random()*99+1);
  15. int y = (int)(Math.random()*99+1);
  16. int choose=(int)(Math.random()*4);
  17. if(choose==1||choose==3)
  18. {
  19. while(x<y)
  20. {
  21. x = (int)(Math.random()*99+1);
  22. y = (int)(Math.random()*99+1);
  23. }
  24. }
  25. if(choose==2)
  26. {
  27.  
  28. while(x*y>100)
  29. {
  30. x = (int)(Math.random()*99+1);
  31. y = (int)(Math.random()*99+1);
  32. }
  33. }
  34. if(choose==3)
  35. {
  36. while(x%y!=0)
  37. {
  38. x = (int)(Math.random()*99+1);
  39. y = (int)(Math.random()*99+1);
  40. }
  41. }
  42. boolean pd=true;
  43. if(i!=0) {
  44. while(pd) {
  45. for(int cha=0;cha<i;cha++)
  46. {
  47. if(x!=a[i]&&y!=b[i]&&choose!=c[i])
  48. {
  49. pd=false;
  50. break;
  51. }
  52. }
  53. x = (int)(Math.random()*99+1);
  54. y = (int)(Math.random()*99+1);
  55. choose=(int)(Math.random()*4);
  56. if(choose==1||choose==3)
  57. {
  58. while(x<y)
  59. {
  60. x = (int)(Math.random()*99+1);
  61. y = (int)(Math.random()*99+1);
  62. }
  63. }
  64. if(choose==2)
  65. {
  66.  
  67. while(x*y>100)
  68. {
  69. x = (int)(Math.random()*99+1);
  70. y = (int)(Math.random()*99+1);
  71. }
  72. }
  73. if(choose==3)
  74. {
  75. while(x%y!=0)
  76. {
  77. x = (int)(Math.random()*99+1);
  78. y = (int)(Math.random()*99+1);
  79. }
  80. }
  81. }
  82. }
  83. a[i]=x;
  84. b[i]=y;
  85. c[i]=choose;
  86. if(choose==0)
  87. {
  88. System.out.print((i+1)+"题为:"+x+"+"+y+"= ");
  89. }
  90. if(choose==1)
  91. {
  92. System.out.print((i+1)+"题为:"+x+"-"+y+"= ");
  93. }
  94. if(choose==2)
  95. {
  96. System.out.print((i+1)+"题为:"+x+"*"+y+"= ");
  97. }
  98. if(choose==3)
  99. {
  100. System.out.print((i+1)+"题为:"+x+"/"+y+"= ");
  101. }
  102. if((i+1)%hang==0)
  103. System.out.println();
  104. }
  105. }
  106. }

三、截图

JAVA课堂随机出题的更多相关文章

  1. 用java写随机出题

    import java.io.*; //输入函数包 public class hello{ public static void main(String args[]){ String s=" ...

  2. Java实现随机出题,10道10以内加减法计算

    package com.swift; import java.awt.Toolkit; import java.util.Scanner; public class PlusQuiz { public ...

  3. java课堂动手动脑及课后实验总结

      动手动脑一:枚举   输出结果: false false true SMALL MEDIUM LARGE 分析和总结用法 枚举类型的使用是借助ENUM这样一个类,这个类是JAVA枚举类型的公共基本 ...

  4. java list随机打乱

    java list随机打乱package arrlist; import java.util.ArrayList; import java.util.Collections; import java. ...

  5. java生成随机序列号

    1.java生成随机序列号 String deleteUuid = UUID.randomUUID().toString(); 引用Jar包 //java-uuid-generator-3.1.3.j ...

  6. java生成随机字符串

    学习java comparable特性时候,定义如下Student类,需要需要随机添加学生姓名以及学号和成绩,这是java如何随机生成名字,根据我的查询,我找到目前java库支持两种方法. 1. or ...

  7. Java课堂笔记(零):内容索引

    回想自己学习和使用Java的时间也是很长了.本科期间课堂上浅尝辄止地学习了点皮毛,后来也是搁置不用,未曾深入研究.研究生期间因为项目和实习的原因,基本算是重新拾起Java这门语言,并且接触到了Spri ...

  8. 20155237 第十一周java课堂程序

    20155237 第十一周java课堂程序 内容一:后缀表达式 abcde/-f+ 内容二:实现Linux下dc的功能,计算后缀表达式的值 填充下列代码: import java.util.Scann ...

  9. 《随机出题软件》&《随机分队软件》源码(Windows API)

    1 引言 1.1 编写目的: 为了对院级活动<最强大脑>提供软件支持,同时为了练习使用windows API. 1.2 项目背景: 来自计算机学院学生会信息部指派的任务,规定时间完成软件的 ...

随机推荐

  1. python详细图像仿射变换讲解

    仿射变换简介 什么是放射变换 图像上的仿射变换, 其实就是图片中的一个像素点,通过某种变换,移动到另外一个地方. 从数学上来讲, 就是一个向量空间进行一次线形变换并加上平移向量, 从而变换到另外一个向 ...

  2. js数组方法(管饱)

    有一些数组方法是ECMAScript新增的,一定要注意浏览器的兼容!! Array对象属性: 属性 说明 constructor 返回对创建此对象的函数引用 length 返回集合内的元素的所有长度 ...

  3. 今天的一个SQL题-case语句和decode函数

    数据库表: select * from rec order by rst,game_time; ID GAME_TIME      RST ------ -------------- ---- 2 0 ...

  4. JAVA程序员工作常用英语(细心整理)

    基础----进阶 A. array数组accessible 可存取的 area面积audio 音频 addition 加法 action 行动 arithmetic 算法adjustment 调整 a ...

  5. 利用s3-test进行ceph的接口兼容性测试

    前言 ceph的rgw能够提供一个兼容性的s3的接口,既然是兼容性,当然不可能是所有接口都会兼容,那么我们需要有一个工具来进行接口的验证以及测试,这个在其他测试工具里面有类似的posix接口验证工具, ...

  6. 关于CTFshow中Web入门42-54

    0x00前记 ​ 终于把学校上学期的期末考试考完了,刚好复习的时候跟着群里的师傅写了ctfshow上Web入门的42-54的题目,其中有很多的坑,但是收获也是很多的,这里做一下总结吧!给自己挖了很多的 ...

  7. JS逆向课程笔记

    扩展知识 Sources-js代码格式化

  8. 使用Beyond Compare对比大篇幅文件的小技巧

    我们在编辑较大篇幅的文章时,无可避免地要经过多次的修改.有时候修改的版本过多时,我们很可能就会记不清最新版的文章对比上一版的文章,究竟修改了哪些地方.但有了Beyond Compare(Windows ...

  9. Mybatis【2】-- 多个mapper文件以及namespace作用

    多个mapper文件以及namespace作用 要是多个mapper文件的时候怎么处理,namespace又是干什么用的呢 首先我们来看创建数据库语句: #创建数据库 CREATE DATABASE ...

  10. 基础知识redis详解--【Foam番茄】

    Redis 学习方式: 上手就用 基本的理论先学习,然后将知识融汇贯通 nosql讲解 为什么要用Nosql 现在都是大数据时代 大数据一般的数据库无法进行分析处理了 至少要会Springboot+S ...