「こんなきれいな星も、やっぱりここまで来てから、見れたのだと思うから。だから・・もっと遠くへ・・」

某无聊产物

这两天开始玩TC,发现各种适应不了TC界面的画风,在界面的小窗口里打代码感觉简直蛋疼,测样例得鼠标点好多下,而且挂样例还不能用gdb调试…… 随便找了几道题看了一下,感觉题目格式化做得还是非常好的,于是决定写个程序把题目parse出来,这样就可以像普通比赛一样打了……

具体来说,实现了以下几个功能:

  1. 生成模板
  2. 解析测试样例并生成测试代码
  3. 生成测试脚本,自动编译测试并在第一个出错的样例停下来,显示输入、输出、答案,然后可以直接gdb调试

使用方法:把tc.cpp拷贝到~/Templates中(这是solution模板,可以更改,但必须保留那两段template函数,否则测试代码中输出vector或pair会挂)复制题面到工作目录同目录下statement.txt中,然后执行parser即可。 生成的main.cpp是模板,go文件是测试脚本。

只能在linux下运行,必须要求C++11,没有严格测试,出问题概不负责……
下载 http://pan.baidu.com/s/1kTl40Iz

目前的问题主要是,每个测试数据必须重新编译一遍程序(因为我是把测试代码case*.cpp直接贴到main.cpp后面进行编译的),所以测试比较慢…… 但我并没有想到更好的解决办法,如果多文件确实能解决问题,但这样gdb时候加断点什么的必须写成b main.cpp:20之类的,非常不方便…… 也想过直接把所有测试样例生成到一个测试代码里,但这样的话全局变量会有初始化问题,而且如果不是第一个样例挂的话,调试同样很不方便…… 所以就保持现状了。