我正在编写一个评分程序,它将对作业进行评分。我的学生必须以一种方法使用扫描仪。 我的评分员是一个单独的班级,它调用学生的方法。当我使用Scanner调用该方法时,它会提示我输入一些输入(应如此)。我希望我的分级类能够调用该方法并自动输入一些预定的字符串,就像它是由用户键入的一样,而不会导致程序暂停或暂停。
有什么方法可以用Java做到吗?
谢谢。
答案 0 :(得分:1)
您可以简单地将System.in
替换为您自己的输入流,也许是一个包含您希望输入到学生班级的输入的文件。
假设学生的课程如下:
import java.util.Scanner;
public class Student {
public String prompt() {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter some input:");
return scanner.nextLine();
}
}
您可以这样对它进行“分级”:
import java.io.FileInputStream;
import java.io.IOException;
public class Grader {
public static void main(String[] args) throws IOException {
System.setIn(new FileInputStream("replies.txt"));
Student student = new Student();
String reply = student.prompt();
assert reply.equals("reply");
}
}
答案 1 :(得分:0)
或者,您可以让您的学生阅读文件输入。您可以告诉所有学生输入文件的名称,并且当您运行学生的代码时,您将在计算机上保存输入文件。学生可以使用自己的测试用例来测试自己的代码,并且在提交时可以更改代码以输入文件。您仍然可以让它们输出标准输出。