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

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

簡易實現藍橋評測系統

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

因為參加藍橋杯,這參賽費本身就不便宜。我還去買你們的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(); }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 深夜影院一级毛片 | 欧美成人一区免费视频 | 成人午夜一区二区 | 成人男女啪啪免费观看网站四虎 | 久久蜜桃精品一区二区三区综合网 | 蜜桃视频在线播放 | 中午日产幕无线码1区 | 亚洲精品欧美在线 | 麻豆视频观看 | 国产 一区| 国产精品999在线观看 | 一级做a爰性色毛片免费 | 色淫视频| 免费国产视频在线观看 | 欧美日韩国产中文字幕 | 日韩色视频在线观看 | 中国免费一级毛片 | 欧美成人亚洲 | 国产资源在线视频 | 国产一级毛片不卡 | 久久久久久久一区二区 | 亚洲欧美国产高清 | 羞羞的小视频 | 午夜九九九 | 香蕉视频99 | 成熟女人特级毛片www免费 | 国产乱淫a∨片免费视频 | 国产精品成人av片免费看最爱 | 4p嗯啊巨肉寝室调教男男视频 | av在线电影网站 | 99精品视频在线看 | 爱性久久久久久久 | 石原莉奈日韩一区二区三区 | 精品视频一区二区三区四区 | 国产九色在线观看 | 久久蜜桃香蕉精品一区二区三区 | 亚州精品天堂中文字幕 | 久久国产秒 | 一级做a爰性色毛片免费1 | 成人一级视频 | 黄色免费在线视频网站 |