【正文】
提交過,且達(dá)到規(guī)定試題難度的正確率,則本條試題就可刪除了。為了讓用戶提交上來的程序不破壞本機(jī)的文件系統(tǒng),本設(shè)計(jì)采用了管道技術(shù),在執(zhí)行用戶程沈陽建筑大學(xué)畢業(yè)設(shè)計(jì)序之前,先把輸入流定向到標(biāo)準(zhǔn)輸入文件 中,讓其只能在一個(gè)臨時(shí)文件夾下面做操作。57 答題頁面輸入程序代碼后,選擇答題語言,點(diǎn)擊提交,進(jìn)入狀態(tài)顯示頁面,如圖 512 所示。沈陽建筑大學(xué)畢業(yè)設(shè)計(jì) 用戶信息修改用戶可以對以注冊的信息進(jìn)行修改,若不修改密碼,保持原來的密碼,則修改時(shí)為空,不用再次填寫。如圖 47 所示。對于存在問題或有錯(cuò)誤的試題,管理員可以進(jìn)行修改。用戶管理模塊主要包括用戶登錄、用戶注冊和用戶信息修改;題庫管理模塊主要包括題目的添加、修改、刪除、查詢和用例添加;答題模塊主要包括界面顯示和問題提交;判題模塊主要包括程序編譯和程序運(yùn)行。42 系統(tǒng)架構(gòu)圖如圖 43 所示,系統(tǒng)物理上分為三個(gè)部分:瀏覽器客戶端、應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器。========================= problem table field:22=========================create table problem(沈陽建筑大學(xué)畢業(yè)設(shè)計(jì)proIdint(11) not null auto_increment primary key,titlevarchar(200) not null,description text default NULL,input text default NULL,output text default NULL,input_pathvarchar(255) default NULL,output_pathvarchar(255) default Null,sampleInput text default NULL,sampleOutput text default NULL,hint text default NULL,sourcevarchar(100) default NULL,inDatedatetime default NULL,timeLimitint not null default 0,memoryLimitint not null default 0,acceptedint default 0,submitint default 1,ratioint not null default 0,difficultyint(11) not null default 0,errorint(11) default 0,submit_userint(11) default 0,solvedint(11) default 0,case_time_limitint(11) default 0)。,39。本系統(tǒng)采用 MySQL 作為后臺數(shù)據(jù)庫,對后臺數(shù)據(jù)進(jìn)行操作(添加、修改、刪除、查詢等)。Struts 有其自己的控制器(Controller) ,同時(shí)整合了其他的一些技術(shù)去實(shí)現(xiàn)模型層(Model )和視圖層(View) 。普通用戶和管理員通過 WEB 頁登錄到系統(tǒng)并獲得不同的操作權(quán)限,然后完成各自的操作。數(shù)據(jù)庫上采用開源的 MySql 做為后臺開發(fā),持久層采用 Hibernate 技術(shù),并以開源的 Eclipse 作為開發(fā)環(huán)境,基本可以熟練的掌握,因此,開發(fā)這個(gè)系統(tǒng)在技術(shù)上是完全可行的。經(jīng)濟(jì)可行性是對一個(gè)項(xiàng)目或方案的成本效益的度量。本系統(tǒng)的使用提高平時(shí)訓(xùn)練的質(zhì)量及學(xué)習(xí)的效率。北京大學(xué)采用的是 Servlet+JavaBean 編程技術(shù),運(yùn)用 G++、GCC 、Java 、Pascal 、 C++、 C 六種程序編譯器,可以說是包含了現(xiàn)在的所有主流的程序編譯器;浙江大學(xué)用 PHP 動(dòng)態(tài)語言來開發(fā)的,運(yùn)用了 C、 C++、 GPC、 FPC 四種程序編譯器,因此,我的課題也選用 C++編譯器, 。[引用至百度百科] 課題的產(chǎn)生隨著同學(xué)們對于編程積極性的不斷提高, ,這就需要一套專門的評判系統(tǒng)來完成。關(guān)鍵詞:STRUTS 框架;HIBERNATE;MYSQL 數(shù)據(jù)庫AbstractWith the wider use of the Inter, puter technology has seen rapid development, students have a strong appetency of improving program design capacity. The online evaluation system using B / S mode and Windows API, using the work, this convenient and effective platforms, we can quickly and easily return to the evaluation results to the users, and to provide a location for the exchange, the students have led us to enhance the ability of puter programming system use as a development environment, mainly use ORM object persistence technology, as a background to Hibernate solutions with the mainstream Struts framework as the future of development, application as a Web server, subscribe to raise revenue as a link to the MySQL database, to achieve the purpose of layered demonstrate that the layer, business logic tier. Data Persistence and the database layer. The entire system of the various modules to maintain a high degree of reusability and all the coupling between modules is extremely low. guarantee the system39。沈陽建筑大學(xué)畢業(yè)設(shè)計(jì)說明書畢 業(yè) 設(shè) 計(jì) 題 目 程序設(shè)計(jì)評判系統(tǒng) 學(xué) 院 專 業(yè) 班 級 信息與控制工程學(xué)院計(jì)算機(jī) 班 學(xué) 生 姓 名 性別 指 導(dǎo) 教 師 職稱 2022 年 6 月 7 日摘要隨著 Inter 的廣泛引用,計(jì)算機(jī)技術(shù)的飛速發(fā)展,同學(xué)們提高程序設(shè)計(jì)能力的愿望越發(fā)強(qiáng)烈。最后,本文提出了系統(tǒng)測試方案,并列出了針對判題處理模塊的測試結(jié)果。經(jīng)過近 30 多年的發(fā)展,ACM 國際大學(xué)生程序設(shè)計(jì)競賽已經(jīng)發(fā)展成為最具影響力的大學(xué)生計(jì)算機(jī)競賽。沈陽建筑大學(xué)畢業(yè)設(shè)計(jì)第二章 系統(tǒng)發(fā)展與軟硬件要求 發(fā)展動(dòng)態(tài)國內(nèi)以有不少高校開發(fā)出了他們的在線評判系統(tǒng)(OJ onJudge) ,這些院校所用的大體上都是采用 B/S 架構(gòu),除了選用的開發(fā)語言和程序編譯器不同,其它如出題的模塊、答題的模塊、判題的模塊等模塊大體上沒有明顯的區(qū)別。經(jīng)分析與考慮之后,OJ 系統(tǒng)初步可劃分為:表示層、業(yè)務(wù)邏輯層、持久化層,數(shù)據(jù)庫層沈陽建筑大學(xué)畢業(yè)設(shè)計(jì) 系統(tǒng)開發(fā)環(huán)境及技術(shù)方案采用 Struts+Hibernate+JSP 開發(fā)框架;系統(tǒng)采用四層體系結(jié)構(gòu);操作系統(tǒng)平臺:Windows 7;數(shù)據(jù)庫系統(tǒng):MySQL ;服務(wù)器平臺:Tomcat ;集成開發(fā)環(huán)境:MyEclipse ;沈陽建筑大學(xué)畢業(yè)設(shè)計(jì)第三章 系統(tǒng)需求與分析 系統(tǒng)總體結(jié)構(gòu)本系統(tǒng)主要包括四個(gè)模塊,即用戶管理模塊, 題庫管理模塊、答題模塊、判題模塊。系統(tǒng)可行性大致包括如下四類準(zhǔn)則。學(xué)校圖書館擁有大量所需資料、書籍和電子圖書以供參考,外加導(dǎo)師的指導(dǎo),在規(guī)定的時(shí)間內(nèi), ;鑒于現(xiàn)有的軟硬件資源,系統(tǒng)可以基于 B/S 系統(tǒng)構(gòu)建,采用 MVC 設(shè)計(jì)模式,保證系統(tǒng)的靈活性,可維護(hù)性。程 序 設(shè) 計(jì) 評 判 系 統(tǒng)用戶注冊用戶修改試題瀏覽答題狀態(tài)登 錄學(xué) 生管理員提交答題題目添加題目修改用戶刪除用戶查看題目查看題目刪除管理員登錄32 用例圖用例描述如下:例 1:學(xué)生在線判題新用戶注冊;注冊后的用戶登錄;沈陽建筑大學(xué)畢業(yè)設(shè)計(jì)瀏覽試題題目,進(jìn)入詳細(xì)頁面;用戶開始答題;提交后,查看答題狀態(tài);例 2:管理員后臺管理管理員登錄;管理員查看并添加新題目;對所添加的題目進(jìn)行刪除及修改;查看注冊用戶,對非法用戶進(jìn)行限制或刪除;管理員退出登錄; 系統(tǒng)開發(fā)技術(shù)方案本評判系統(tǒng)是基于四層結(jié)構(gòu) B/S 架構(gòu)模式設(shè)計(jì)的,采用 Hibernate+Struts+JSP 技術(shù)進(jìn)行實(shí)現(xiàn)。但 Struts 也包含了豐富的標(biāo)記庫和獨(dú)立于該框架工作的實(shí)用程序類。對于本系統(tǒng)而言,數(shù)據(jù)庫整個(gè)過程的核心部分。admin39。select * from users。系統(tǒng)結(jié)構(gòu)圖如 42 圖所示。沈陽建筑大學(xué)畢業(yè)設(shè)計(jì)43 ORM 模式圖 系統(tǒng)功能設(shè)計(jì)整個(gè)系統(tǒng)初步劃分為四個(gè)模塊,即用戶管理模塊, 題庫管理模塊、答題模塊、判題模塊。管理員有刪除的權(quán)限。沈陽建筑大學(xué)畢業(yè)設(shè)計(jì)開 始問 題 瀏 覽答 題 頁 面D B開 始 判 題進(jìn) 程生 成 工 作 路 徑存 取 用 戶 程 序編 譯 過 程運(yùn) 行 過 程用 例 比 對提 交 正 確結(jié) 果結(jié) 束通 過通 過相 等提 交 錯(cuò) 誤結(jié) 果進(jìn) 入提 交產(chǎn) 生執(zhí) 行執(zhí) 行YN執(zhí) 行執(zhí) 行Y執(zhí) 行YNN存 儲重 定 向46 判題流程圖 頁頭和頁尾設(shè)計(jì)頁頭和導(dǎo)航欄設(shè)計(jì) 由于本段代碼在各個(gè)頁面都會用到,而且沒有變化,因此單獨(dú)提出靜態(tài)頁面文件,其他頁面只須調(diào)用jsp:include page=””這條語句,就可以顯示為各個(gè)頁面的頁頭了。若登錄成功,則把用戶名及登錄時(shí)間寫入,在登錄成功頁面顯示出來。答題頁面如圖 57。由于是 WEB 提交,程序在服務(wù)器本機(jī)上運(yùn)行,故安全機(jī)制是非常關(guān)鍵的。管理員可對附選框的一條或多條信息進(jìn)行刪除,把選中的用戶編號,加入到一個(gè) delUserId 的 list 中,可以實(shí)現(xiàn)多條刪除。 配置文件 基于 Hibernate 的 Web 應(yīng)用程序的控制核心是配置文件 。public class Problem {private intproId。沈陽建筑大學(xué)畢業(yè)設(shè)計(jì)private String output。private String sampleOutput。private inttimeLimit。private int ratio。private int solved。//根據(jù) ID 查找一個(gè)題目public static Problem findById(int id){Problem pro=null。}return pro。i++){proId=(Integer)(i)+1。tx=()。}return list。}finally{()。}()。problem=(Problem)(, proId)。(problem)。//創(chuàng)建新對象public static void createObj(Problem o){try{session=()。tx=()。tx=()。 ActionForm在持久層有一個(gè) Problem 類封裝了持久數(shù)據(jù)的信息,它與展現(xiàn)層的 ActionForm 意義不一樣,但代碼去一樣,之所以要編寫兩個(gè)相似的類,是因?yàn)檫@樣可以減少層之間的耦合性。每個(gè)軟件工程方法都試圖創(chuàng)建的一個(gè)環(huán)境中能夠盡可能早地做出最重要的發(fā)現(xiàn),這是很重要的,軟件項(xiàng)目在本質(zhì)上就是以發(fā)現(xiàn)為中心的項(xiàng)目,隨著時(shí)間的過去,對客戶、應(yīng)用、環(huán)境以及發(fā)起者的認(rèn)識也會隨著項(xiàng)目的進(jìn)展而增加。設(shè)計(jì)時(shí)間雖然短暫,我卻從中學(xué)到了很多的東