国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

簡(jiǎn)易實(shí)現(xiàn)藍(lán)橋評(píng)測(cè)系統(tǒng)

2019-11-14 10:11:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

因?yàn)閰⒓铀{(lán)橋杯,這參賽費(fèi)本身就不便宜。我還去買(mǎi)你們的vip么? 但是在練習(xí)中有的題目只有vip才能看,才能送到系統(tǒng)評(píng)測(cè)。 我費(fèi)了很大的勁研究了一套自己寫(xiě)的評(píng)測(cè)系統(tǒng)。Like this: 這里寫(xiě)圖片描述

首先,下載所有藍(lán)橋評(píng)測(cè)系統(tǒng)的源碼。 鏈接: https://pan.baidu.com/s/1bpnCQoZ 密碼: xext

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

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

接下來(lái),放代碼:

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/算法/測(cè)試數(shù)據(jù)/" + 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) { // 設(shè)置流 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/算法/測(cè)試數(shù)據(jù)/" + ti + "-input-" + i + ".txt")); } catch (FileNotFoundException e) { // TODO Auto-generated catch block // 若沒(méi)有輸入文件可以繼續(xù)執(zhí)行 } finally { try { fis = new FileInputStream("d:/java/算法/測(cè)試數(shù)據(jù)/" + ti + "-output-" + i + ".txt"); // 調(diào)用函數(shù) fun(); // 讀取,檢測(cè) 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("標(biāo)準(zhǔn)輸出:" + 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("字符串對(duì)比") { @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(); }}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 敖汉旗| 泗水县| 栾川县| 昌图县| 县级市| 台州市| 县级市| 雷波县| 阜新市| 莱芜市| 阿克陶县| 株洲县| 五莲县| 江阴市| 武陟县| 桐乡市| 双江| 遂宁市| 鄂尔多斯市| 乐清市| 河北省| 始兴县| 柳林县| 内江市| 武邑县| 县级市| 专栏| 贡嘎县| 威信县| 肥乡县| 义乌市| 佛山市| 西畴县| 宁远县| 苍梧县| 西华县| 旅游| 沁源县| 中牟县| 南安市| 石棉县|