麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

簡易實現藍橋評測系統

2019-11-14 10:45:46
字體:
來源:轉載
供稿:網友

因為參加藍橋杯,這參賽費本身就不便宜。我還去買你們的vip么? 但是在練習中有的題目只有vip才能看,才能送到系統評測。 我費了很大的勁研究了一套自己寫的評測系統。Like this: 這里寫圖片描述

首先,下載所有藍橋評測系統的源碼。 鏈接: https://pan.baidu.com/s/1bpnCQoZ 密碼: xext

關于vip題目,相信你們都可以找到的。 http://blog.csdn.net/rodestillfaraway/article/details/50529597 可以去這里,我會在自己博客寫下java實現方法。我的速度比較慢,畢竟新手,邊摸索邊寫。

說一下原理: 1.官方原碼命名都是有規律的xx-input-01.txt這樣的。對應路徑自己改下。 2.我首先為了編程思路方便,替換了System的out流,使用的是套在PRintStream里的ByteArrayOutputStream。會將你程序運行的輸出存在一個字節數組里面。然后從官方原碼的output文件里讀取并存入一個字符數組里,兩者進行比較。 說一下功能: 1.可以比較輸出與原碼是否一致 2.會把錯誤的題目的正確輸出和你的輸出同時顯示在控制臺 3.可以使用printInput(int n)在控制臺顯示原碼的input文件 4.可以給run傳參來只檢測對應的原碼 說一下怎么使用: 1.我寫的是抽象類,使用時直接創建LT類的對象,構造時傳入你當前要檢測的題目名字 2.使用內部類補足fun方法,fun里面寫入自己的代碼。還有一個很重要的一點,我的LT類有一個成員的Scanner對象sc,用來從源碼的input文件讀取內容。所以你的方法里不需要再新建Scanner對象了。直接使用sc調用read方法就好。3.最后要運行LT的run方法。

接下來,放代碼:

import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.PrintStream;import java.util.Scanner;public abstract class LT { Scanner sc; String ti; public LT(String st) { ti = st; } public void run() { for (int i = 1; i <= 30; i++) { test(i); } } public void run(int n) { test(n); } public void printIn(int i) { try { sc = new Scanner(new File("d:/java/算法/測試數據/" + ti + "-input-" + i + ".txt")); } catch (FileNotFoundException e) { // TODO Auto-generated catch block System.out.println("不存在此輸入文件"); } while (sc.hasNextLine()) { System.out.println(sc.nextLine()); } } public abstract void fun(); public void test(int i) { // 設置流 ByteArrayOutputStream bos2 = new ByteArrayOutputStream(); PrintStream ps = new PrintStream(bos2); PrintStream old = System.out; System.setOut(ps); FileInputStream fis; // 讀入 try { sc = new Scanner(new File("d:/java/算法/測試數據/" + ti + "-input-" + i + ".txt")); } catch (FileNotFoundException e) { // TODO Auto-generated catch block // 若沒有輸入文件可以繼續執行 } finally { try { fis = new FileInputStream("d:/java/算法/測試數據/" + ti + "-output-" + i + ".txt"); // 調用函數 fun(); // 讀取,檢測 ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int length = -1; while ((length = fis.read(buffer)) != -1) { bos.write(buffer, 0, length); } bos.close(); fis.close(); System.setOut(old); String a = bos.toString().replaceAll("http://s", "").replaceAll(" ", ""); String b = bos2.toString().replaceAll("http://s", "").replaceAll(" ", ""); System.out.print(i + ":" + a.equalsIgnoreCase(b)); if (!a.equalsIgnoreCase(b)) { System.out.println("您的輸出:" + bos2.toString()); System.out.println("標準輸出:" + bos.toString()); } } catch (FileNotFoundException e2) { System.exit(0); }catch(IOException e3){ System.exit(0); } } }}

使用用例

public class Main11 { public static void main(String[] args) { LT lt=new LT("字符串對比") { @Override public void fun() { String s1=sc.nextLine(); String s2=sc.nextLine(); if(s1.length()!=s2.length()){ System.out.println(1); }else{ if(s1.equals(s2)){ System.out.println(2); }else if(s1.equalsIgnoreCase(s2)){ System.out.println(3); }else{ System.out.println(4); } } } }; lt.run(); }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美日韩精品一区二区三区不卡 | 欧美成人午夜 | 成人午夜网址 | 可以看逼的视频 | 成人宗合网 | 偿还电影免费看 | 亚洲99| 草草在线视频 | 日本成年免费网站 | 久久欧美亚洲另类专区91大神 | 日韩视频在线观看免费视频 | 在线播放亚洲 | 中文字幕免费看 | 狠狠色噜噜狠狠狠米奇9999 | 一级成人毛片 | 国产69精品久久99不卡免费版 | 在线播放免费av | 成人午夜免费观看 | 国产亚洲综合一区二区 | 精品一区二区三区欧美 | av中文一区 | 毛片视频大全 | 香蕉久久久久 | 久久久三区 | 黄色免费在线网站 | 亚洲成人久久精品 | 欧美人与zoxxxx另类9 | 免费在线观看亚洲 | 国产乱free国语对白 | 一本一道久久久a久久久精品91 | 韩国美女一区 | 国产精品久久久久久久久久三级 | 日韩黄色一级视频 | 成人区一区二区 | 亚洲午夜久久久精品一区二区三区 | 中文欧美日韩 | 久久久av亚洲男天堂 | 成人在线精品视频 | 国产99久久精品一区二区 | 国产一区二区三区四区波多野结衣 | 亚洲成人激情在线 |