【正文】
間限制) ;狀態(tài)表(狀態(tài)編號(hào),題目編號(hào),用戶編號(hào),運(yùn)行結(jié)果,所用時(shí)間,所占內(nèi)存,提交時(shí)間,主類名,代碼長度,選擇語言,提交數(shù)量) ;源代碼表(狀態(tài)編號(hào),源代碼) ;編譯表(狀態(tài)編號(hào),錯(cuò)誤信息) ; 物理結(jié)構(gòu)設(shè)計(jì)根據(jù)邏輯結(jié)構(gòu),本系統(tǒng)物理數(shù)據(jù)庫設(shè)計(jì)結(jié)構(gòu)如圖 41 所示。 關(guān)系型數(shù)據(jù)庫關(guān)系型數(shù)據(jù)庫在處理大量數(shù)據(jù)等方面,方式提供數(shù)據(jù)服務(wù)的,對(duì)于數(shù)據(jù)的管理有著良好的控制,在維護(hù)數(shù)據(jù)的完整性、安全性考慮全面。在視圖層, Struts 能夠與 JSP, Velocity Templates,XSL 等等這些表示層組件想結(jié)合。根據(jù)上面對(duì) framework 的描述,我們很容易理解為什么說 Struts 是一個(gè) web framwork,而不僅僅是一些標(biāo)記庫的組合。Struts 可以大大提高 Web 應(yīng)用的開發(fā)速度,如果沒有 Struts,開發(fā)人員不得不首先花大量的時(shí)間和精力來設(shè)計(jì)、開發(fā)自己的框架。系統(tǒng)用例圖如 32。 數(shù)據(jù)流程分析 功能級(jí)數(shù)據(jù)流整體分析根據(jù)前面描述的系統(tǒng)基本特點(diǎn)及其完成的功能,可得系統(tǒng)與外部實(shí)體之間的操作關(guān)系。 技術(shù)可行性面臨的關(guān)鍵問題主要有:編譯器如何在服務(wù)器端自動(dòng)調(diào)用;如果編譯階段通過后,系統(tǒng)如何調(diào)用事先準(zhǔn)備好的測試數(shù)據(jù)來檢驗(yàn)程序;如何進(jìn)行結(jié)果控制等;所用到的關(guān)鍵技術(shù)主要有:IO 流的管道技術(shù);java 調(diào)用外部程序的技術(shù);線程輪詢技術(shù);文件管理技術(shù)。時(shí)間可行性是對(duì)項(xiàng)目時(shí)間表的合理性的度量。7 系統(tǒng)可行性分析可行性分析對(duì)于整個(gè)系統(tǒng)的開發(fā)至關(guān)重要,是系統(tǒng)開發(fā)的成敗的關(guān)鍵。該系統(tǒng)主要面向本校師生的程序設(shè)計(jì)服務(wù),目的在于提高學(xué)生程序設(shè)計(jì)的動(dòng)手能力。因此,我的課題主攻方向重點(diǎn)是研究 OnJudge 系統(tǒng)的層次結(jié)構(gòu),對(duì)原有的系統(tǒng)進(jìn)行重構(gòu),運(yùn)用先進(jìn)的 MVC 設(shè)計(jì)模式和數(shù)據(jù)持久層技術(shù)來實(shí)現(xiàn)程序設(shè)計(jì)評(píng)判系統(tǒng)。他們的開發(fā)理念、所運(yùn)用的開發(fā)方法與國內(nèi)的完全不同。 課題產(chǎn)生的意義開發(fā)一套適合本校的程序設(shè)計(jì)評(píng)判系統(tǒng),除了提高了我們平時(shí)練習(xí)的效率此外,本系統(tǒng)還能應(yīng)用在某些計(jì)算機(jī)學(xué)科上的訓(xùn)練及考試,如程序設(shè)計(jì)訓(xùn)練、校三級(jí)考試系統(tǒng)等學(xué)科上的應(yīng)用,實(shí)現(xiàn)自動(dòng)出題及評(píng)判工作,極大地減少了考務(wù)方面的冗繁環(huán)節(jié),減清了老師的工作負(fù)擔(dān)。除此之外,只有在網(wǎng)絡(luò)環(huán)境下才能夠使用,而對(duì)于未連到 Inter 的局域網(wǎng)來說就不適用了。 3目錄 for Computing Machinery , 即美國計(jì)算機(jī)協(xié)會(huì).ICPCInternational Collegiate Programming Contest , 即國際大學(xué)生程序設(shè)計(jì)競賽.ACM 國際大學(xué)生程序設(shè)計(jì)競(英文全稱:ACM International Collegiate ProgrammingContest(ACMICPC 或 ICPC)是由美國計(jì)算機(jī)協(xié)會(huì)(ACM)主辦的,一項(xiàng)旨在展示大學(xué)生創(chuàng)新能力、團(tuán)隊(duì)精神和在壓力下編寫程序、分析和解決問題能力的年度競賽。s gives the business scope of the basic functional requirements, analysis of the system39。其次,本文闡述了關(guān)于該系統(tǒng)整體結(jié)構(gòu)的概要設(shè)計(jì)方案,說明了模塊的層次與處理的流程。本在線評(píng)判系統(tǒng)利用 BS 模式和 Windows 系統(tǒng)提供的應(yīng)用程序接口,借助網(wǎng)絡(luò)這一方便而又有效的平臺(tái),可以快速方便地返回評(píng)測結(jié)果給用戶,并且提供了交流的場所,從而起到提高同學(xué)們計(jì)算機(jī)編程能力的作用。本系統(tǒng)以 作為開發(fā)環(huán)境,主要使用 ORM 對(duì)象持久化技術(shù),以 Hibernate 作為后臺(tái)解決方案,配合 Struts 框架作為前臺(tái)的開發(fā),應(yīng)用 作為 Web 服務(wù)器,同時(shí)選用開源的 MySQL 作為連接的數(shù)據(jù)庫,實(shí)現(xiàn)了分層的目的,即顯示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和數(shù)據(jù)庫層。再次,針對(duì)該系統(tǒng)的答題及判題模塊,本文給出了詳細(xì)的結(jié)構(gòu)設(shè)計(jì)、邏輯流程,為后面所進(jìn)行的編碼實(shí)現(xiàn)打下了基礎(chǔ)。s specific needs. Secondly, this paper on the structure of the overall system design outline on the module level with the process. Again, against the system and the answer was that module, this paper presents a detailed structural design, logic flow, behind for the Coding laid the groundwork. Finally, this paper presents a specific and system testing program, and listing the processing module that the test results. Key words: Struts framework。經(jīng)過近 30 多年的發(fā)展,ACM 國際大學(xué)生程序設(shè)計(jì)競賽已經(jīng)發(fā)展成為最具影響力的大學(xué)生計(jì)算機(jī)競賽。因此,重新開發(fā)一套適合的評(píng)判系統(tǒng)是很必要的。4第二章 系統(tǒng)發(fā)展與軟硬件要求 發(fā)展動(dòng)態(tài)國內(nèi)以有不少高校開發(fā)出了他們的在線評(píng)判系統(tǒng)(OJ onJudge) ,這些院校所用的大體上都是采用 BS 架構(gòu),除了選用的開發(fā)語言和程序編譯器不同,其它如出題的模塊、答題的模塊、判題的模塊等模塊大體上沒有明顯的區(qū)別。由于國內(nèi)各高校開發(fā)的系統(tǒng),主要的使用者是面向我們中國的大學(xué)生而開發(fā)的,但是國外運(yùn)用的是以文件上傳的方式,其他人根本無法看到程序的源代碼,保證了安全性。經(jīng)分析與考慮之后,OJ 系統(tǒng)初步可劃分為:表示層、業(yè)務(wù)邏輯層、持久化層,數(shù)據(jù)庫層 系統(tǒng)開發(fā)環(huán)境及技術(shù)方案采用 Struts+Hibernate+JSP 開發(fā)框架;系統(tǒng)采用四層體系結(jié)構(gòu);操作系統(tǒng)平臺(tái):Windows 7;數(shù)據(jù)庫系統(tǒng):MySQL ;6服務(wù)器平臺(tái):Tomcat ;集成開發(fā)環(huán)境:MyEclipse ;第三章 系統(tǒng)需求與分析 系統(tǒng)總體結(jié)構(gòu)本系統(tǒng)主要包括四個(gè)模塊,即用戶管理模塊, 題庫管理模塊、答題模塊、判題模塊。最終用戶是我們學(xué)院的師生。系統(tǒng)可行性大致包括如下四類準(zhǔn)則。運(yùn)行可行性是對(duì)方案在組織中的合適程度的度量,它也是就人們對(duì)該系統(tǒng)的感覺的度量。學(xué)校圖書館擁有大量所需資料、書籍和電子圖書以供參考,外加導(dǎo)師的指導(dǎo),在規(guī)定的時(shí)間內(nèi), ;鑒于現(xiàn)有的軟硬件資源,系統(tǒng)可以基于 BS 系統(tǒng)構(gòu)建,采用 MVC 設(shè)計(jì)模式,保證系統(tǒng)的靈活性,可維護(hù)性。反應(yīng)了普通用戶和管理員兩個(gè)外部實(shí)體與系統(tǒng)進(jìn)行交互的整體關(guān)系,描述了系統(tǒng)的運(yùn)作環(huán)境。9程 序 設(shè) 計(jì) 評(píng) 判 系 統(tǒng)用戶注冊(cè)用戶修改試題瀏覽答題狀態(tài)登 錄學(xué) 生管理員提交答題題目添加題目修改用戶刪除用戶查看題目查看題目刪除管理員登錄32 用例圖用例描述如下:例 1:學(xué)生在線判題新用戶注冊(cè);注冊(cè)后的用戶登錄;瀏覽試題題目,進(jìn)入詳細(xì)頁面;用戶開始答題;提交后,查看答題狀態(tài);例 2:管理員后臺(tái)管理10管理員登錄;管理員查看并添加新題目;對(duì)所添加的題目進(jìn)行刪除及修改;查看注冊(cè)用戶,對(duì)非法用戶進(jìn)行限制或刪除;管理員退出登錄; 系統(tǒng)開發(fā)技術(shù)方案本評(píng)判系統(tǒng)是基于四層結(jié)構(gòu) BS 架構(gòu)模式設(shè)計(jì)的,采用 Hibernate+Struts+JSP 技術(shù)進(jìn)行實(shí)現(xiàn)。如果在 Web 應(yīng)用中恰到好處地 Struts,將把從頭開始設(shè)計(jì)的框架的時(shí)間節(jié)省下來,使得開發(fā)人員可以把精力集中在如何解決實(shí)際業(yè)務(wù)問題上。但 Struts 也包含了豐富的標(biāo)記庫和獨(dú)立于該框架工作的實(shí)用程序類。 簡介Hibernate 是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,可以應(yīng)用在任何使用 JDBC 的場合,既可以在 Java 的客戶端程序使用,也可以在 ServletJSP 的 Web 應(yīng)用中使用,11Hibernate 是對(duì)象關(guān)系映射 (ObjectRelational Mapping)的解決方案,簡寫為 ORM,簡單地說就是將 Java 中的對(duì)象與對(duì)象關(guān)系映射至關(guān)系型數(shù)據(jù)庫中的表格與表格之間的關(guān)系。對(duì)于本系統(tǒng)而言,數(shù)據(jù)庫整個(gè)過程的核心部分。1341 數(shù)據(jù)庫表圖數(shù)據(jù)庫的具體設(shè)計(jì)表 41 用戶信息表 users序號(hào) 字段名稱 數(shù)據(jù)類型 必須項(xiàng) 關(guān)鍵字 默認(rèn)值 字段描述1 userId Varchar(20) Y PRI 用戶編號(hào)2 Password Varchar(20) Y 用戶密碼3 Nick Varchar(100) Y 用戶昵稱4 School Varchar(100) N NULL 所屬院校5 Email Varchar(100) Y NULL 郵 箱6 userType Int(4) N 0 用戶類型7 Language Int(11) N 0 選擇語言8 Submit Int(11) N 0 提交數(shù)量9 Solved Int(11) N 0 解答數(shù)量10 regTime Datetime N NULL 注冊(cè)時(shí)間11 accessTime Datatime N NULL 訪問時(shí)間14表 42 題目信息表 problem序號(hào) 字段名稱 數(shù)據(jù)類型 必須項(xiàng) 關(guān)鍵字 默認(rèn)值 字段描述1 proId Int(11) Y P