为了账号安全,请及时绑定邮箱和手机立即绑定

Tricking Scanner 输入来自用户

Tricking Scanner 输入来自用户

慕桂英4014372 2022-06-30 17:38:29
我正在编写一个评分程序,它将对作业进行评分。我的学生必须在他们的一种方法中使用扫描仪。我的评分器是一个单独的类,它调用学生的方法。当我使用扫描仪调用该方法时,它会提示我输入一些输入(应该如此)。我希望我的评分类能够调用该方法并自动输入一些预定的字符串,就好像它是由用户键入的一样,而程序不会暂停或暂停。有没有办法在Java中做到这一点?
查看完整描述

2 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

您可以简单地替换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");

    }

}


查看完整回答
反对 回复 2022-06-30
?
月关宝盒

TA贡献1772条经验 获得超5个赞

或者,您可以让您的学生读入文件输入。您可以告诉所有学生输入文件的名称,当您运行学生的代码时,您的计算机上就会有输入文件。学生可以使用自己的测试用例测试自己的代码,并在提交时将代码更改为文件输入。您仍然可以让它们输出标准输出。



查看完整回答
反对 回复 2022-06-30
  • 2 回答
  • 0 关注
  • 73 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信