大二上课堂测试一

本次课堂测试为写一个自动生成计算题的“软件”,其中有一些要求。

今天我重新写了一次(完全没用之前的代码),发现所有功能实现都不到二十分钟,然而在课上连第一次都不在前十五,我反思了一下:代码写的太乱了,而且我发现每次在课上写代码的时候都特别激动、紧张(包括开学测试),导致不能安静下来理清思路,加上代码写的不规矩,随着功能的增多,随便复制,缩进也不明显,导致第二次我本可以在前十提交,结果因为大括号的问题,又改了改,最后结束验收了。

思路如下:

写成两个方法,一个换行的,一个不换行的,这样直接调用即可。

以前不喜欢写成方法,自从开学测试之后,越来越发现方法真好!

package test;
import java.util.Scanner;

public class list {
    
    static Scanner input=new Scanner(System.in);
    static int j=1;
    static int i=1;
    
    public static void change()
    {
        int x = (int)(Math.random()*100);
        int y = (int)(Math.random()*100);
        if ((x*y)<100)
        {
            int operator = (int)(Math.random()*4+1);
            switch(operator)
            {
            case 1:
                System.out.println(i+"."+x+" + "+y);
                i++;
                break;
            case 2:
                System.out.println(i+"."+x+" - "+y);
                i++;
                break;
            case 3:
                System.out.println(i+"."+x+" * "+y);
                i++;
                break;
            case 4:
                System.out.println(i+"."+x+" / "+y);
                i++;
                break;
            }
            x = (int)(Math.random()*100);
            y = (int)(Math.random()*100);
        }
    }
    public static void nochange()
    {
        int x = (int)(Math.random()*100);
        int y = (int)(Math.random()*100);
        if ((x*y)<100)
        {
            int operator = (int)(Math.random()*4+1);
            switch(operator)
            {
            case 1:
                System.out.print(i+"."+x+" + "+y+"  ");
                i++;
                break;
            case 2:
                System.out.print(i+"."+x+" - "+y+"  ");
                i++;
                break;
            case 3:
                System.out.print(i+"."+x+" * "+y+"  ");
                i++;
                break;
            case 4:
                System.out.print(i+"."+x+" / "+y+"  ");
                i++;
                break;
            }
            x = (int)(Math.random()*100);
            y = (int)(Math.random()*100);
        }
    }
    
    public static void main(String[] args) {
            int n,h;
            n = input.nextInt();
            h = input.nextInt();
            for (;i<=n;)
            {
               if ((i%h)!=0)
                {
                    nochange();
                }
               else
               {
                   change();
               }
            }
        
        // TODO Auto-generated method stub

    }

}

猜你喜欢

转载自www.cnblogs.com/xrj-/p/11536574.html