燕山大學Linux的OJ系統設計樣例

2021-08-21 13:28:11 字數 1692 閱讀 1888

通過gcc  編譯目錄下的.c 檔案,將編譯的結果寫入a.txt 

gcc /home/liuzejiang/myfile/cs/temp.c >>a.txt 2>&1
2>&1 的意思就是將標準錯誤重定向到標準輸出。這裡標準輸出已經重定向到了a.txt。那麼標準錯誤也會輸出到a.txt

cat /dev/null >/home/liuzejiang/myfile/cs/b.txt
可以/dev/null等價於乙個只寫檔案. 寫入它的內容都會永遠丟失. 從它那讀取內容什麼也讀不到 

while read line 

doecho $line | /home/liuzejiang/myfile/cs/a.out >>/home/liuzejiang/myfile/cs/b.txt

echo "寫入結果"

done 逐行done從cin.txt裡面讀取內容。引數line,當接收到引數的時候通過管道線傳給a.out檔案執行 ,將執行結果輸出的b.txt

cmp -s  /home/liuzejiang/myfile/cs/b.txt  /home/liuzejiang/myfile/t1234/cout.txt

if [ $? -eq 0 ];

then 

echo -n "答案正確"

cmp比較兩個檔案 b.txt是得到的結果,a.txt是已經給樂的正確答案,-s 只返回退出值。值 0 指示相同的檔案;值 1 指示不同的檔案;值 2 指示不可訪問的檔案或缺少選項。

if diff   /home/liuzejiang/myfile/cs/b.txt  /home/liuzejiang/myfile/$tmid/cout.txt  ;

then

cat /home/liuzejiang/myfile/cs/b.txt

cat /home/liuzejiang/myfile/$tmid/cout.txt

echo -n "答案正確

也可以用diff 來比較。

mysql -uroot -p資料庫密碼 好了,這些就是oj系統的核心了,它就需要乙個把咱們寫的**編譯成a.out檔案,然後拿給定的資料,用這個a.out進行計算,得到的結果於真實結果比較,如果正確,那麼ac,如果錯誤,那麼wa, 至於需要的判斷超時,可以呼叫系統的執行程序的時間,超出記憶體可以呼叫系統的當前程序的記憶體大小判斷。

1 2 資料夾是存放的cin.txt和cout.txt,意思是測試資料和真實結果。cs檔案存放的是temp.c和a.out和b.txt,temp.c是每次從cxpc複製過來的.c 檔案,a.out是temp.c的編譯後的檔案,如果不更改名字每次都預設a.out所以每次編譯都會覆蓋這個a.out。

b.txt是把cin.txt輸入a.out之後得到的結果,存入b.txt。最後用b.txt和cout.txt作比較,判斷對錯。

right存放的是學生提交的正確的**,每當結果正確,會把**從提交初cxpc移動到right。

cxpc裡面的123.2.c是學號為123的學生做的第2套.c的題。所以大家測試的時候在cxpc裡面的.c 檔案命名得是qqq.p.c  ,p那個位置是標準***的名字,如上圖的1 或者 2 ,當然你可以自己寫更多標準輸入輸出包。

如果想從windows轉移到虛擬機器上記得安裝vmware tools。

備註:csdn

共勉!

燕山大學作業系統課程設計計畫書

燕山大學作業系統課程設計計畫書 燕山大學課程設計計畫書 課程設計名稱 作業系統 題目 多道程式緩衝區協同操作 年級 2016級 開發小組名稱 www.小組負責人 課題組成員 姓名 學號 班級 分工 簽字 互斥與同步機制演算法設計 資料的儲存與視覺化 軟體三班 多程序 互斥和同步機制演算法設計實現 軟...

中山大學智慧型健康服務平台基本的UI介面設計

第四周任務 基本的ui介面設計 實現乙個android應用,介面呈現如圖中的效果。使用的元件 textview edittext constraintlayout button imageview radiogroup radiobutton。實驗結果截圖如下 布局藍圖如下 我在實驗過程中把整個ui...

Linux系統與我的大學生活

現在是談linux 色變,但是這裡不是害怕它,而是一種親切的感覺,就像是自己的親人一樣,因為linux伴隨了我整個的大學生活,以後可能還會伴隨著我的工作,可以說我這一生都和linux有了不解之緣,所以說聽到linux怎麼會沒有一點情緒的變化呢?那麼接下來就說下我與linux之間的感情,還有怎麼高效的...