「BUAA OO Unit 1 HW1」可快速上手的简易评测机

本文档详细介绍了如何从零搭建一个适用于初学者的Java评测机,包括环境配置、Java项目打包成jar、修改评测机参数和数据生成模块。该评测机具有高度可移植性和灵活性,能够适应不同的项目结构和数据输入输出需求。通过解耦数据生成和输入输出,方便用户根据需要替换数据生成模块。此外,还提供了配置Python+Anaconda环境的步骤,帮助读者快速入门。
部署运行你感兴趣的模型镜像

「BUAA OO Unit 1 HW1」面向测试小白的简易评测机

声明:本评测机所使用数据生成来自郭鸿宇同学,这对本评测机非常重要

Part 0 前言

笔者的配置与环境

  1. Windows10家庭版
  2. Pycharm 2021.3.2
  3. Anaconda1.9.7,其中用于python项目的python版本为3.6,但是应该是python3就可以
  4. IDEA 2021.3.2

面向人群

所有人,无论是否有python基础或者评测机搭建经验。

定位

基于本篇博客,您可以从零迅速搭建一个适合您的评测机,并且对您的项目路径没有要求。得益于数据输入输出和数据生成模块的解耦合,您可以快速迁移本评测机的输入输出,并更换您需要的数据生成模块,提高了泛用性。

Part 1 准备工作

  1. 若没有,则安装Anaconda,并安装一个python3的环境,这将在Part5附录部分介绍
  2. 若没有,则安装IDEA和Pycharm

Part 2 获取java jar包

目的

为了避免不同同学的Java项目结构目录、依赖包等的不同导致的无谓的麻烦,将Java项目打包为jar包,方法可移植性强

过程
  1. 在IDEA中创建项目,并将代码置于其中,测试可以运行即可。如果有依赖包,则需要导入依赖包。

  2. File ->Project Structure->Artifacts->+->JAR->From modules with dependencies...

在这里插入图片描述

在这里插入图片描述

  1. Main Class中选中程序入口类->OK->Cancel

在这里插入图片描述

  1. 修改Name(也可以不改)->Apply->OK在这里插入图片描述

  2. Build->Build Artifacts,然后在其中选择刚才Name的项,然后Build

    在这里插入图片描述

在这里插入图片描述

  1. 在项目目录/out/artifacts/Name下可以找到生成的jar包

须知

对于本次作业,课程组提供的官方输入输出包需要被注释掉,同时需要自行将原MainClass中的Scanner切换回标准的Scanner SCANNER = new Scanner(System.in)。同时,本评测机暂不支持预解析模式输入。

Part 2 修改评测机参数

pipline.py

import sympy # 如果报错显示没有这个包,就需要导入
from xeger import Xeger
import random
import subprocess
from subprocess import STDOUT, PIPE
from gendata import genData


def execute_java(stdin):
    cmd = ['java', '-jar', 'archer.jar']# 更改为自己的.jar包名
    proc = subprocess.Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=STDOUT)
    stdout, stderr = proc.communicate(stdin.encode())
    return stdout.decode().strip()


x = sympy.Symbol('x')
X = Xeger(limit=10)
cnt = 1

while True:
    cnt = cnt + 1
    if cnt % 1000 == 0:
        print(cnt)
    poly, ans = genData()
    #print(poly)
    f = sympy.parse_expr(poly)
    strr = exe

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值