想要做一个c/s的java考试系统 不知道怎么批改程序题 就是那种批改的时候需要输入数据的程序题 比如题目是编一个程序求两个数的最大公约数和最小公倍数 后台批改的时候要输入测试数据 这个怎么实现 
求大神!!!!!!!!!!!!

解决方案 »

  1.   

    编译和运行的代码就不给了 这里只给出最核心的代码,其实本质就是拿到测试程序的输入输出流 BufferedOutputStream bos = new BufferedOutputStream(p.getOutputStream());//这里p是具体的测试程序(process)
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(bos)); //这两步是拿到测试程序的输出流 对于主程序而言其实就是向测试程序输入数据的输入流
    bw.write("xxxx");这里是向测试程序输入测试数据
    bw.newLine();如果测试程序要输入多组数据并且需要换行来分别,此处必须换行以表示一条数据输入结束
    bw.write(s[1]);这里是输入第二条数据
    bw.close();关闭测试程序输出流
    BufferedInputStream in = new BufferedInputStream(p.getInputStream());
    BufferedReader br = new BufferedReader(new InputStreamReader(in));上面这两行是拿到测试程序出入流,即主程序的输出流 可以调用read方法拿到测试程序的输出数据以判断答案是否正确 之后的代码此处不给出
      

  2.   

    我这边的确是这样的,像学校的acm网站也是严格要求格式 答案中间多一个空格都会报错 请问有更好的办法吗?