关于#java#的问题,如何解决?

用JAVA编写程序,每个程序都要有详细的注释
题目1:随机生成n个四位正整数放在一维数组中,输出这个数组,并进行加密处理,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。输出加密的一维数组。如:某个元素值为1234,则加密后的该元素的值为9876。(n由键盘输入,需要判断n的合法性)
题目2:编写一个非公有类:点类(名字自选),成员变量:x,y,定义一个方法:比较两个对象距离原点的距离。再定义主类(类名要求:“Kao_”加上组号加上题号),编写一个主函数,输入两个点的坐标值,创建对象,调用方法,并输出结果。

import javax.xml.crypto.Data;
import java.util.Arrays;
import java.util.Scanner;

public class Test05 {
    public static void main(String[] args) {
        System.out.println("请输入个数:");
        final Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        final int[] data = new int[n];
        while (n-- > 0) {
            data[n] = (int) (Math.random() * 9000 + 1000);
        }
        System.out.println("加密前:");
        System.out.println(Arrays.toString(data));
        for (int i = 0; i < data.length; i++) {
            int qianW = data[i] / 1000;
            int baiW = data[i] % 1000 / 100;
            int shiW = data[i] % 100 / 10;
            int geW = data[i] % 10;
            qianW = (qianW + 5) % 10;
            baiW = (baiW + 5) % 10;
            shiW = (shiW + 5) % 10;
            geW = (geW + 5) % 10;

            int temp = qianW;
            qianW = geW;
            geW = temp;
            temp = baiW;
            baiW = shiW;
            shiW = temp;
            data[i] = Integer.valueOf(qianW * 1000 + baiW * 100 + shiW * 10 + geW);
        }
        System.out.println("加密后:");
        System.out.println(Arrays.toString(data));
    }
}
import java.util.Map;
import java.util.Scanner;

class Point {
    private int x;
    private int y;

    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public double compare(Point point) {
        double juli1 = Math.sqrt(x * x + y * y);
        double juli2 = Math.sqrt(point.x * point.x + point.y * point.y);
        System.out.println("this 对象距离原点:" + juli1);
        System.out.println("point 对象距离原点:" + juli2);
        return Math.abs(juli1 - juli2);
    }
}

public class Kao_06 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入第一个坐标点x,y");
        final String inputLine1 = scanner.nextLine();
        System.out.println("请输入第二个坐标点x,y");
        final String inputLine2 = scanner.nextLine();
        final String[] split1 = inputLine1.split(",");
        final Point point1 = new Point(Integer.valueOf(split1[0]), Integer.valueOf(split1[1]));
        final String[] split2 = inputLine2.split(",");
        final Point point2 = new Point(Integer.valueOf(split2[0]), Integer.valueOf(split2[1]));
        System.out.println(point2.compare(point1));
    }
}

坐等大佬们的代码

第一题:

import java.util.Random;
import java.util.Scanner;

public class One {

    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数n:");
        //输入n,并判断n是否输入合法
        int n = 0;
        try {
            n = sc.nextInt();
        }catch (Exception e) {
            System.out.println("n请输入一个整数!");
        }
        //创建数组
        int[] numArr = new int[n]; 
        //随机生成n个四位数
        for(int i=0; i<n; i++) {
            //实例化一个random的对象r
            Random r =new Random();
            //为变量赋随机值1000-9999
            int num = r.nextInt(9999-1000+1)+1000;
            //加密处理
            //千位
            int qian = num / 1000;
            //百位
            int bai = num /100 % 10;
            //十位
            int shi = num /10 %10;
            //个位
            int ge = num % 10;
            //个位和千位交换,十位和百位交换
            numArr[i] = Integer.parseInt("" + ge + shi + bai +qian);
        }
        //打印数组
        for(int i=0; i<n; i++) {
            System.out.println(numArr[i]);
        }
        
    }
    
}

img

第二题:



public class Two {
        
        private double x;
        private double y;
        
        //构造函数
        public Two(double x, double y) {
            this.x = x;
            this.y = y;
        }

        public double getX() {
            return x;
        }

        public double getY() {
            return y;
        }
        
        //比较两点之间的距离
        public static double distance(Two two1, Two two2) {
            //计算两点间距离
            return Math.pow((Math.pow(two1.getX() - two2.getX(), 2)) + Math.pow((two1.getY() - two2.getY()), 2), 0.5);
        }

    }
public class Kao_1_1 {
    
    public static void main(String args[]) {
        Two two1 = new Two(1,4);
        Two two2 = new Two(5,20);
        System.out.println("(1,4)和(5,20)之间的距离为:"+Two.distance(two1, two2));
    }

}

img

这个好像不难,可以按着思路去做!

在做的过程中有疑问,可以来交流。
这样会不会更合适?