下面是项目结构:
--data 存放数据的文件夹 --main.cpp 题目的正确数据 --prodData.py 生成输入输出数据脚本 --test.cpp 测试代码 --testData.py 测试代码是否正确脚本
prodData.py
#-*- coding:utf-8 -*- ‘‘‘ @auther: Starry @file: prodData.py @time: 2018/1/17 15:47 ‘‘‘ import random import os DATASIZE = 10 ‘‘‘ 每个数据一组数据 ‘‘‘ for i in range(DATASIZE): print(‘The %dth set of test data is being produced.‘ % i) with open(‘./data/test‘+str(i)+‘.in‘,‘w‘,encoding=‘utf-8‘) as f: N = random.randint(1, 100000) M = random.randint(1, 100000) f.write(str(N)+‘ ‘+str(M)+‘\n‘) for j in range(M): a = random.randint(1,10000) b = random.randint(1,10000) c = random.randint(1,200) f.write(str(a)+‘ ‘+str(b)+‘ ‘+str(c)+‘\n‘) with open(‘./data/test‘+str(i)+‘.out‘,‘w‘,encoding=‘utf-8‘) as f: pass os.system(‘g++ -std=c++11 main.cpp -o main‘) os.system(‘main < data\\test‘+str(i)+‘.in >> data\\test‘+str(i)+‘.out‘) ‘‘‘ 多组数据 0 结束 ‘‘‘ # for i in range(DATASIZE): # print(‘The %dth set of test data is being produced.‘%i) # with open(‘./data/test‘+str(i)+‘.in‘,‘w‘,encoding=‘utf-8‘) as f: # while True: # N = random.randint(-70,1000) # if N <= 0: # f.write(str(0)+‘\n‘) # break # f.write(str(N)+‘\n‘) # for j in range(N): # a = random.randint(1,50) # f.write(str(a)+‘ ‘) # f.write(‘\n‘) # M = random.randint(0,1000) # f.write(str(M)+‘\n‘) # with open(‘./data/test‘+str(i)+‘.out‘,‘w‘,encoding=‘utf-8‘) as f: # pass # os.system(‘g++ -std=c++11 main.cpp -o main‘) # os.system(‘main < data\\test‘+str(i)+‘.in >> data\\test‘+str(i)+‘.out‘) ‘‘‘ 多组数据 ‘‘‘ # for i in range(DATASIZE): # print(‘The %dth set of test data is being produced.‘ % i) # with open(‘./data/test‘+str(i)+‘.in‘,‘w‘,encoding=‘utf-8‘) as f: # for j in range(random.randint(1,20)): # N = random.randint(1, 100) # M = random.randint(1, 100) # K = random.randint(1, 100) # S = random.randint(1, 100) # f.write(str(N)+‘ ‘+str(M)+‘ ‘+str(K)+‘ ‘+str(S)+‘\n‘) # for k in range(K): # a = random.randint(1,20) # b = random.randint(1,20) # f.write(str(a)+‘ ‘+str(b)+‘\n‘) # with open(‘./data/test‘+str(i)+‘.out‘,‘w‘,encoding=‘utf-8‘) as f: # pass # os.system(‘g++ -std=c++11 main.cpp -o main‘) # os.system(‘main < data\\test‘+str(i)+‘.in >> data\\test‘+str(i)+‘.out‘)
testData.py
#-*- coding:utf-8 -*- ‘‘‘ @auther: Starry @file: testData.py @time: 2018/1/17 15:46 ‘‘‘ import os DATASIZE = 10 os.system(‘g++ test.cpp -o test‘) WA = False for i in range(DATASIZE): print(‘The %dth set of data is being tested.‘%i) os.system(‘test < data\\test‘+str(i)+‘.in > te.out‘) flag = os.system(‘fc data\\test‘+str(i)+‘.out te.out > nul‘) if flag != 0: print(‘Wrong answer on test‘+str(i)+‘.in!!!‘) WA = True if not WA: print("Accepted!!!")