999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于LAMP的離散結(jié)構(gòu)在線評測題庫系統(tǒng)設(shè)計研究

2015-07-17 03:01:45陳宇黃仲洋張健
課程教育研究·下 2015年4期

陳宇 黃仲洋 張健

【摘要】離散結(jié)構(gòu)是計算機及相關(guān)專業(yè)核心課程,本文在介紹離散結(jié)構(gòu),LAMP架構(gòu)的基礎(chǔ)上,提出了基于LAMP的離散數(shù)學在線評測題庫系統(tǒng)設(shè)計,實現(xiàn)了對學生提交的程序源代碼進行自動編譯、連接、運行、測試、評審等過程并返回測試結(jié)果,采用了多進程的并發(fā)處理、信號處理、進程通信、文件管理等技術(shù),使得該自動測評系統(tǒng)在實際應(yīng)用過程中發(fā)揮良好的性能,完成了日常編程訓練和考試評測等活動,該系統(tǒng)的實現(xiàn)可以提高離散結(jié)構(gòu)課程的自動化、高效率、公正性等方面。

【關(guān)鍵詞】離散結(jié)構(gòu) 在線評測 LAMP系統(tǒng)架構(gòu)

【中圖分類號】G642.0 【文獻標識碼】A 【文章編號】2095-3089(2015)04-0029-03

The Exploration of Online Judge System Design of Discrete Structures Based on LAMP

Chen Yu,Huang Zhongyang,Zhang jian

(School of information and computer engineering, Northeast Forestry University,Harbin 150040, China)

【Abstract】 Discrete Structures is the core courses of the computer and the related majors, This article describes the basic Discrete Structures and LAMP architecture. Automatic interpretation of source code submitted by the user, linking, running, testing, appraisal process and returning the test results are realized. A multi-process, concurrent processing, signal processing, process communication, document management and other technologies are used. Consequently, the said automatic evaluation system has good performance in the practical application, completing a routine program of training and various types of online programming contest and realizing the automation of competition process, high efficiency, fairness and other features.

【Key words】 Discrete Structures; Online Judge; LAMP architecture

1.離散數(shù)學

離散結(jié)構(gòu)是研究離散量的結(jié)構(gòu)及其相互關(guān)系的數(shù)學學科,是現(xiàn)代數(shù)學的一個重要分支。離散的含義是指不同的連接在一起的元素,主要是研究基于離散量的結(jié)構(gòu)和相互間的關(guān)系,其對象一般是有限個或可數(shù)個元素。離散結(jié)構(gòu)在各學科領(lǐng)域,特別在計算機科學與技術(shù)領(lǐng)域有著廣泛的應(yīng)用,同時離散數(shù)學也是計算機專業(yè)的許多專業(yè)課程,如程序設(shè)計語言、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、編譯技術(shù)、人工智能、數(shù)據(jù)庫、算法設(shè)計與分析、理論計算機科學基礎(chǔ)等必不可少的先行課程。通過離散數(shù)學的學習,不但可以掌握處理離散結(jié)構(gòu)的描述工具和方法,為后續(xù)課程的學習創(chuàng)造條件,而且可以提高抽象思維和嚴格的邏輯推理能力,為將來參與創(chuàng)新性的研究和開發(fā)工作打下堅實的基礎(chǔ)[1-4]。

2.LAMP架構(gòu)

LAMP是Linux+Apache+MySQL+PHP 的縮寫。現(xiàn)如今,LAMP 架構(gòu)可以說是基于Web 的開發(fā)中的最佳技術(shù)解決方案。拋開 Linux 不談,Apache 服務(wù)器、MySQL 數(shù)據(jù)庫管理系統(tǒng)和 PHP 腳本語言本身都是各自獨立的開源軟件,都有著相當健壯的功能。當把三者結(jié)合在一起時,三者構(gòu)成的整體可以擁有高度的兼容性,構(gòu)成了一個強大的 Web開發(fā)平臺。 在 LAMP 平臺中開發(fā)的項目,由于各個開源的軟件已經(jīng)非常成熟,所以在軟件方面的投資成本很低,適合系統(tǒng)平臺的開發(fā)。因此現(xiàn)在越來越多的供應(yīng)商、用戶和企業(yè)投資者日已認識到,使用 LAMP 開源軟件的組成平臺構(gòu)建以及運行各種商業(yè)應(yīng)用和協(xié)作構(gòu)建各種網(wǎng)絡(luò)應(yīng)用程序,變得更加具有競爭力,更加吸引客戶。無論是從性能、質(zhì)量還是價格上 LAMP 都將成為企業(yè)和征服信息化所必須考慮的平臺[5-6]。

Apache網(wǎng)絡(luò)服務(wù)器作為一種開放源碼的Web服務(wù)器,占據(jù)了大部分市場份額,在世界范圍內(nèi)是使用量第一的Web服務(wù)器。Apache網(wǎng)絡(luò)服務(wù)器支持HTTP協(xié)議,可以運行在各種計算機操作平臺上,如Unix/Linux,Windows,MAC等。Apache網(wǎng)絡(luò)服務(wù)器功能強大、靈活性高、可擴展性好,可做代理服務(wù)器并且可通過簡單的API擴展,將PHP等解釋器編譯到服務(wù)器[7]。

PHP,是英文超文本預處理語言Hypertext Preprocessor的縮寫。混合了C、Java、Perl等以及PHP自創(chuàng)語法,使其擁有了獨特的語法。PHP執(zhí)行動態(tài)網(wǎng)頁比CGI或者Perl更加快速。PHP和ASP,JSP腳本語言一樣,也是一種HTML內(nèi)嵌式的語言,并且是面向Web服務(wù)器的技術(shù)[8]。PHP具有非常強大的功能,能實現(xiàn)所有CGI或JavaScript的功能,而且支持幾乎所有流行的數(shù)據(jù)庫以及操作系統(tǒng)[9]。PHP不僅具有以上優(yōu)點,其特色更在于:具有強大的數(shù)據(jù)庫支持、內(nèi)置的函數(shù)庫十分豐富、源碼完全開放、簡單易學并且效率極高。

MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB公司開發(fā),目前屬于Oracle公司。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性[10]。

MySQL作為一般中小型網(wǎng)站開發(fā)的網(wǎng)站數(shù)據(jù)庫的首選,不僅是因為其速度快,體積小,成本低,更是因為其開放源碼這一特點。并且到目前為止,MySQL是和PHP交互最好的數(shù)據(jù)庫系統(tǒng),其搭配PHP和Apache可組成良好的開發(fā)環(huán)境。

3.基于LAMP架構(gòu)的離散結(jié)構(gòu)在線評測題庫系統(tǒng)總體設(shè)計

該系統(tǒng)是集程序設(shè)計競賽、競賽訓練、課程實驗、平時練習于一身的網(wǎng)上實時提交系統(tǒng)。該系統(tǒng)提供了大量供學生練習和競賽的競賽題目,學生在線提交解決相關(guān)練習和競賽題的程序代碼,系統(tǒng)可以自動編譯程序代碼,生成可執(zhí)行文件,并根據(jù)已存儲的測試用例,從程序的正確性、程序運行總時間、耗費內(nèi)存、單用例執(zhí)行時間、程序返回結(jié)果等各方面評測程序代碼,并精確返回各方面的評測結(jié)果。不但支持C、C++、PASCAL以及JAVA語言的編譯,還定義了一套具有充分可擴展性的編輯器擴充規(guī)則,可以在不修改系統(tǒng)任何實現(xiàn)的情況下,通過管理配置文件增加系統(tǒng)可以支持的語言和編譯器。離散數(shù)學在線評測系統(tǒng)性能上的穩(wěn)定快速可以為該課程提供有效的實驗環(huán)境。

3.1系統(tǒng)架構(gòu)設(shè)計

離散結(jié)構(gòu)在線評測系統(tǒng)是基于 WEB 構(gòu)建的,所以整個系統(tǒng)在架構(gòu)上主要分為三個結(jié)構(gòu):客戶端、服務(wù)器端、數(shù)據(jù)庫端。對于客戶端而言,學生主要通過瀏覽器來使用操作系統(tǒng);在服務(wù)器端提供物理服務(wù)器,配置相應(yīng)系統(tǒng)發(fā)布軟件;數(shù)據(jù)庫端配置在服務(wù)器中,存儲系統(tǒng)需要的各類數(shù)據(jù)。

3.2系統(tǒng)功能模塊設(shè)計

離散結(jié)構(gòu)在線測評系統(tǒng)功能模塊圖如圖1所示:

圖1.離散結(jié)構(gòu)在線評測系統(tǒng)功能模塊圖

3.3數(shù)據(jù)庫設(shè)計

在離散結(jié)構(gòu)在線評測系統(tǒng)設(shè)計過程中,數(shù)據(jù)庫的設(shè)計顯得至關(guān)重要。我們嚴格按照數(shù)據(jù)庫設(shè)計的基準和原則進行數(shù)據(jù)庫的所有表和表項的設(shè)計。這樣可以降低項目的開發(fā)難度,方便項目后期的日常維護。同樣,良好的數(shù)據(jù)庫設(shè)計也會降低系統(tǒng)的開發(fā)成本。離散結(jié)構(gòu)在線評測系統(tǒng)數(shù)據(jù)庫設(shè)計如表1所示:

表1 數(shù)據(jù)庫設(shè)計

表名 用途

users 記錄學生或老師的信息

problem 記錄題目信息

message 記錄論壇內(nèi)容

solution 記錄學生提交的作業(yè)信息

source_code 記錄學生提交的作業(yè)內(nèi)容

contest 記錄考試信息

attend 記錄考試成績

4. 基于LAMP架構(gòu)的離散結(jié)構(gòu)在線評測題庫系統(tǒng)詳細設(shè)計

4.1 前臺的詳細設(shè)計

離散結(jié)構(gòu)在線評測題庫系統(tǒng)用戶分為三類:學生,教師和管理員。所有用戶均需要登錄,系統(tǒng)會從users表中取得該用戶的權(quán)限,從而進行分辨。用戶登錄后可以選擇考試或訓練模式,并進入相應(yīng)題庫提交代碼,經(jīng)后臺評測后,即可返回結(jié)果。如果學生對題目或結(jié)果有任何問題,也可以在討論區(qū)發(fā)帖留言,與其他同學進行探討和研究。教師則可以出題、開辦考試、查看考試結(jié)果等操作。

4.2評測系統(tǒng)核心層

評測系統(tǒng)核心是接受用戶提交的程序,把程序的運行結(jié)果返回給用戶,運行結(jié)果為程序正確或程序不正確。程序不正確包括:運行錯誤、運行超時、運行結(jié)果錯誤以及運行結(jié)果輸出格式錯誤。在進行程序評判時,先啟動服務(wù)器評判進程,它是以守護進程的方式存在的。在偵聽到有提交記錄時,守護進程立即從數(shù)據(jù)庫中取出待評判的程序進行編譯,編譯時采用多進程方式,使用Linux下C語言函數(shù)fork()分出一個子進程,在子進程中通過fexecle()函數(shù)調(diào)用gcc或者javac命令進行編譯,然后判斷其編譯結(jié)果。

4.結(jié)束語

離散結(jié)構(gòu)在線評測系統(tǒng)的實現(xiàn)可以夯實學生的程序設(shè)計基礎(chǔ),對于離散結(jié)構(gòu)的學習有著重要意義。它把對理論知識的學習與實際的應(yīng)用有機的結(jié)合起來,注重培養(yǎng)學生的編程能力,訓練學生的解題思維,對于培養(yǎng)學生的創(chuàng)新能力具有很大的幫助。通過該系統(tǒng)的實現(xiàn),提高了教學質(zhì)量和教學水平。

參考文獻:

[1] 許蔓苓.離散數(shù)學的方法和挑戰(zhàn)[J].計算機研究與發(fā)展,2002:1771-1772.

[2] Rosen K H.離散數(shù)學及其應(yīng)用[M].袁崇義,屈婉玲,譯.北京:機械工業(yè)出版,2002.

[3] 耿素云,屈婉玲,王捍貧.離散數(shù)學教程[M].北京:北京大學出版社,2003.

[4] 王元元,張桂蕓.離散數(shù)學導論[M].北京:科學出版社,2002.

[5] 王亞軍. Linux 與 Windows 互操作綜述[J]. 計算機系統(tǒng)應(yīng)用,2012,04:259-263.

[6] 張哲銘. 基于 LAMP 的臺達實驗室管理系統(tǒng)實現(xiàn)[J]. 電子技術(shù),2013,06:65-67.

[7] Hoffmann G.A.,Trivedi K.S.,Malek M.A. Best practice guide to resources forecasting for the apache webserver[C].12th Pacific Rim Internationa1 Symposium on DePendable Computing,2006,Riverside,CA:183-193.

[8] 姜林美,宗杰,徐劍.PHP網(wǎng)絡(luò)編程典型模塊與實例精講[M].北京:電子工業(yè)出版社,2007.

[9] 吉斌武,劉建華,陳以.基于PHP和AJAX的在線考試系統(tǒng)的研究與實現(xiàn)[J].福建電腦,2009,2:107-124.

[10] 陳軍.PHP+MySQL經(jīng)典案例剖析[M].北京:清華大學出版社,2008

基金項目:中央高校基本科研業(yè)務(wù)費專項資金項目(2013CBQ03);黑龍江省教育廳科學技術(shù)研究項目(12513016);黑龍江省自然科學基金項目(F201347);哈爾濱市科技創(chuàng)新人才專項資金項目(2013RFQXJ100);東北林業(yè)大學重點課程建設(shè)項目

主站蜘蛛池模板: 免费在线看黄网址| 9966国产精品视频| 国产特一级毛片| 在线观看国产精品第一区免费| 国产欧美精品午夜在线播放| 国产精品对白刺激| 99在线观看精品视频| 国产毛片网站| 国产免费人成视频网| 成·人免费午夜无码视频在线观看| 免费jjzz在在线播放国产| 久久99久久无码毛片一区二区| 久久久久久久久亚洲精品| 114级毛片免费观看| 五月丁香伊人啪啪手机免费观看| 国内精品一区二区在线观看| aaa国产一级毛片| 日韩毛片免费观看| 成年片色大黄全免费网站久久| 久久精品这里只有精99品| 国产极品美女在线播放| 免费三A级毛片视频| 欧美日一级片| 久久国产乱子| 美女高潮全身流白浆福利区| 91探花国产综合在线精品| 国产不卡一级毛片视频| 制服丝袜 91视频| 国产香蕉在线视频| 好吊妞欧美视频免费| 国产一区二区三区精品久久呦| 国产成人久视频免费| 伦精品一区二区三区视频| 一级成人a做片免费| 成人无码一区二区三区视频在线观看| 人妻出轨无码中文一区二区| 67194亚洲无码| 国产最新无码专区在线| 97色婷婷成人综合在线观看| 国产欧美日韩另类| 极品国产一区二区三区| 新SSS无码手机在线观看| 成人午夜网址| 亚洲男人天堂久久| 在线观看国产小视频| 国产91av在线| 免费一级毛片在线播放傲雪网| 亚洲婷婷在线视频| 精品丝袜美腿国产一区| 久久综合九九亚洲一区| 国产swag在线观看| 欧美成人h精品网站| 亚欧乱色视频网站大全| 亚洲无码视频喷水| 91免费片| 亚洲欧州色色免费AV| 91精品国产无线乱码在线| 亚洲一区二区约美女探花| 亚洲日本中文字幕乱码中文| 精品伊人久久大香线蕉网站| 亚洲国产综合精品中文第一| 国产精品污污在线观看网站| 亚洲精品国产自在现线最新| 国产97公开成人免费视频| 伊人天堂网| 亚洲狼网站狼狼鲁亚洲下载| 欧美国产日韩在线| 青青草国产一区二区三区| 日韩欧美国产中文| 久久人妻xunleige无码| 亚洲AV无码一二区三区在线播放| 又爽又大又光又色的午夜视频| 狠狠干欧美| www.精品国产| 久久国产精品影院| 国产无遮挡猛进猛出免费软件| 久久这里只有精品国产99| 国产色爱av资源综合区| 一区二区日韩国产精久久| 麻豆国产精品一二三在线观看| 久久精品免费看一| 国产福利一区在线|