需求:一个班级有多个学生,每个学生的作业是一个文件夹,根文件夹名称为 E:\\学生作业,在控制台每选择一次,生成顺序不同的作业排序,下面给出大致的代码,有不完善的读者可以自行进行修改。
编程要点:不是随机选择一个文件,是随机所有文件,所以会涉及到递归,虽然编程不提倡递归,但我没有想到其他的方法。
package com.redsun.util;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
public class Dianming {
static List<String> shifu = new ArrayList();
static void Input(int n, List list) {
static List<Integer> nn = new ArrayList<Integer>();
Random r = new Random();
System.out.println("开始请输入1");
System.out.println("结束请输入0");
Scanner sc = new Scanner(System.in);
System.out.println("请开始你的选择");
while (sc.hasNextInt()) {
int n1 = sc.nextInt();
if (n1 == 1) {
for (;;) {
int x = r.nextInt(n);
if (!nn.contains(x)) {
nn.add(x);
}
while (nn.size() == n) {
for (int j = 0; j < n; j++) {
System.out.println(list.get(nn.get(j)));
}
System.out.println("请开始你的选择");
Input(n, list);
return;
}
}
}
else if (n1 == 0) {
System.out.println("欢迎下次使用");
break;
} else {
Input(n, list);
}
}
}
public static void main(String[] args) {
File srcDir = new File("E:\\学生作业");
File[] hangge = srcDir.listFiles();
for (File file : hangge) {
shifu.add(file.getName());
}
int n = shifu.size();
System.out.println(n);
if (n == 0) {
System.out.println("请放几个文件进去!");
} else {
Input(n, shifu);
}
}
}