zoukankan      html  css  js  c++  java
  • 00-JAVA语法基础--课后作业

    题目:像二柱子那样,花20分钟写一个能自动生成30道小学四则运算题目的“软件”。

     1 package 课堂作业1;
     2 import java.util.Random;
     3 import java.util.Scanner;
     4 
     5 public class MathProblem {
     6     
     7     public static void res(){
     8     System.out.println("1.显示结果	2.直接开始下一题");
     9     }
    10     public static void main (String[] arge){
    11         int i=1;
    12         if(i<=30)//保证只是随机30道四则运算题目
    13         {
    14     System.out.println("*****请选择要随机生成的算法*****");
    15     System.out.println("1,加法	2,减法	3,乘法	4,除法");
    16     System.out.println("*******************************");
    17     Scanner sc=new Scanner(System.in);
    18     int s = sc.nextInt();
    19     double result=0;
    20     Random r = new Random();
    21     int a = r.nextInt(100);
    22     int b =r.nextInt(100);
    23     switch(s){
    24     case 1:System.out.println(+a+"+"+b+"=?");result =a+b;res();break;
    25     case 2:System.out.println(+a+"-"+b+"=?");result =a-b;res();break;
    26     case 3:System.out.println(+a+"*"+b+"=?");result =a*b;res();break;
    27     case 4:System.out.println(+a+"/"+b+"=?");{float c=a;float d=b;result=c/d;}res();break;
    28     default:System.out.println("输入有误,重新开始");main(null);break;
    29     }
    30     Scanner select =new Scanner(System.in);
    31     int se =select.nextInt();
    32     switch (se){
    33     case 1:System.out.println("本题的结果:"+result);main(null);break;
    34     case 2:main(null);break;
    35     default:System.out.println("输入有误,重新开始");main(null);
    36     }
    37         i++;
    38         }
    39     }
    40 
    41 }

    输出结果如下:

    本次作业中最大的问题就是随机数生成的问题,其中用到了JAVA的Random类。

    Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。

    相同种子数的Random对象,相同次数生成的随机数字是完全相同的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。这点在生成多个随机数字时需要特别注意。

    Random类中的常用方法:

    Random类中的方法比较简单,每个方法的功能也很容易理解。需要说明的是,Random类中各方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的几率是均等的。下面对这些方法做一下基本的介绍:

    a、public boolean nextBoolean()

    该方法的作用是生成一个随机的boolean值,生成true和false的值几率相等,也就是都是50%的几率。

    b、public double nextDouble()

    该方法的作用是生成一个随机的double值,数值介于[0,1.0)之间。

    c、public int nextInt()

    该方法的作用是生成一个随机的int值,该值介于int的区间,也就是-231到231-1之间。

    如果需要生成指定区间的int值,则需要进行一定的数学变换,具体可以参看下面的使用示例中的代码。

    d、public int nextInt(int n)

    该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n。

    如果想生成指定区间的int值,也需要进行一定的数学变换,具体可以参看下面的使用示例中的代码。

    e、public void setSeed(long seed)

    该方法的作用是重新设置Random对象中的种子数。设置完种子数以后的Random对象和相同种子数使用new关键字创建出的Random对象相同。

    随机数的产生解决之后就是控制30道四则运算题目生成的问题,利用if语句实现,最终完成整个程序。

  • 相关阅读:
    Auto.js实现自动刷视频,点赞脚本(一)
    C# 将excel文件导入到SqlServer数据库
    JavaScript实现HTML导航栏下拉菜单[悬浮显示]
    补码的知识
    指针06 零基础入门学习C语言46
    指针05 零基础入门学习C语言45
    标志寄存器01 零基础入门学习汇编语言54
    标志寄存器02 零基础入门学习汇编语言55
    标志寄存器02 零基础入门学习汇编语言55
    标志寄存器01 零基础入门学习汇编语言54
  • 原文地址:https://www.cnblogs.com/Qi77/p/9750406.html
Copyright © 2011-2022 走看看