用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]);
}
}
}
第二题:
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));
}
}
这个好像不难,可以按着思路去做!
在做的过程中有疑问,可以来交流。
这样会不会更合适?