2019-9-16 java上课知识整理总结

╄→гoц情女王★ 提交于 2019-11-29 19:43:26

2019-9-16 java上课知识整理总结

一,课堂测试

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

      要求:(1)题目避免重复;

                       (2)可定制(数量/打印方式);

2,设计思路

1),产生两个1-100的随机数作为题目参与运算的数据,产生一个1-100的随机数并对4求余作为运算符(0:‘+’,1:‘-’,2:‘*’,3:‘/’)。

2),用for循环控制出题个数n,用循环变量i对一行出题个数m求余,余数为0换行控制一行中题目的个数。

3),在减法中用while(s1<s3)循环(s1,s3是参与运算的数)循环体是新生成一个随机数赋给s3,保证结果非负。

4),在乘法中用while(s1*s3>100)循环(s1,s3是参与运算的数)循环体是新生成一个随机数赋给s3,保证结果小于100。

5),在除法中用while(s1/s3!=0)循环(s1,s3是参与运算的数)循环体是新生成一个随机数赋给s3,保证结果为正数。

6),用数组存储之前所有输入的操作数和运算符用for循环判断是否重复若重复新生成一个随机数赋给s3,保证出题不重复。

3,代码

import java.util.Random;
import java.util.Scanner;
public class suanshu {
    static Scanner sc = null;
    static String a3=new String("   ");
    public static int s1 = new Random().nextInt(100);
    public static int s2 = new Random().nextInt(100);
    public static int s3 = new Random().nextInt(100);
    public static int a[][]=new int[100000][2] ;
    public static int s[]=new int[100000];
    public static void main(String[] args) {
        sc = new Scanner(System.in);
        System.out.println("请输入题数:");
        int n=sc.nextInt();
        System.out.println("请输入每行的题数:");
        int m=sc.nextInt();
        for(int i=0;i<n;i++) {
            if((i)%m==0)
                System.out.print("\n");
            System.out.print((i+1)+":");
            s1 = new Random().nextInt(100);
            System.out.print(s1);
            s2 = new Random().nextInt(100);
            s3 = new Random().nextInt(100);
            //重复
            
            a[i][0]=s1;
            a[i][1]=s3;
            s[i]=s2;
            
            for(int j=0;j<i;j++) {
                if(a[j][0]==s1&&a[j][1]==s3&&s[j]==s2) {
                    s3 = new Random().nextInt(100);
                    while(s3==a[i][1]) {
                        s3 = new Random().nextInt(100);
                }
                s3 = new Random().nextInt(100);
                while(s3==a[i][1]) {
                    
                }
            }}
            if(s2%4==0)
                System.out.print("+");
            if(s2%4==1) {
                System.out.print("-");
                
                    while(s1<s3) {
                        s3 = new Random().nextInt(100);
                    }
                
            }
                
            if(s2%4==2) {
                System.out.print("*");
                while(s1*s3>=100) {
                    //s1 = new Random().nextInt(100);
                    s3 = new Random().nextInt(100);
                }
            }
                
            if(s2%4==3) {
                System.out.print("/");
                while(s3!=0&&s1/s3!=0){
                    //s1 = new Random().nextInt(100);
                    s3 = new Random().nextInt(100);
                }
            }
                
            
            System.out.print(s3);
            System.out.print("=");
            
            System.out.print(a3);
        }
        
    
    }
    
  
}

4,运行测试

 二,动手又动脑_1

1,问题:仔细阅读示例: EnumTest.java,运行它,分析运行结果?你能得到什么结论?你掌握了枚举类型的基本用法了吗?

2,代码

public class EnumTest {

    public static void main(String[] args) {
        Size s=Size.SMALL;
        Size t=Size.LARGE;
        //s和t引用同一个对象?
        System.out.println(s==t);  //
        //是原始数据类型吗?
        System.out.println(s.getClass().isPrimitive());
        //从字符串中转换
        Size u=Size.valueOf("SMALL");
        System.out.println(s==u);  //true
        //列出它的所有值
        for(Size value:Size.values()){
            System.out.println(value);
        }
    }

}
 enum Size{SMALL,MEDIUM,LARGE};

3,运行测试

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!