freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于web的在線(xiàn)考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(編輯修改稿)

2024-12-23 21:37 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 器通信,所有操作在服務(wù)器端完成,因此,該結(jié)構(gòu)不再需要分發(fā)客戶(hù)端程序,易于維護(hù)和升級(jí),由于通過(guò) Inter,應(yīng)用廣泛。鑒于上述原因,本人實(shí)現(xiàn)的系統(tǒng)使用的是 B/S 結(jié)構(gòu),通過(guò)瀏覽器與數(shù)據(jù)庫(kù)交互。 本系統(tǒng)是一 個(gè)基于 B/S 架構(gòu) 應(yīng)用于學(xué)生考試和教學(xué)管理的系統(tǒng),開(kāi)發(fā)本系統(tǒng)的目的主要是為了解決大多數(shù)考試還依賴(lài) 教師 出題與用筆和紙考試的現(xiàn)象。該系統(tǒng)節(jié)約了很多人力和物力 [12],提高了效率和考試的可靠性,減少老師的工作強(qiáng)度,減少了印刷浪費(fèi)的財(cái)力和時(shí)間,提高了出題的效率和考試的可信度。本系統(tǒng)占用系統(tǒng)資. . 源少,對(duì)硬件要求低,而且利用 Web 訪(fǎng)問(wèn)操作方便,維護(hù)簡(jiǎn)單,它將在以下方面發(fā)揮積極的作用: ? 基于校園網(wǎng),提高現(xiàn)代化教 學(xué) 水平; ? 幫助學(xué)院主管考試部門(mén)提高工作效率,實(shí)現(xiàn)考試信息 化 管理以及考試流程的系統(tǒng)化,自動(dòng)化 , 彌補(bǔ)傳統(tǒng)考試的不靈活性。 . 研究開(kāi)發(fā)的基本內(nèi)容 本系統(tǒng)實(shí)現(xiàn)的主要內(nèi)容有: 登陸模塊 的實(shí)現(xiàn),包括管理員、教師、學(xué)生; 公有模塊 的實(shí)現(xiàn),包括修改密碼、重置密碼; 對(duì)于重置密碼,主要有教師重置學(xué)生密碼,管理員重置教師密碼 ; 管理員模塊 的實(shí)現(xiàn),該模塊包括教師 、 學(xué)生 、講授、課程、班級(jí) 信息 的管理 。針對(duì)每個(gè)對(duì)象管理 , 分別包括 信息 的 添加、刪除和修改 ,對(duì)于某些對(duì)象,含有 模糊查詢(xún)功能 ; 教師模塊 的實(shí)現(xiàn),該模塊包括 通過(guò) Excel 批量導(dǎo)入試題、 試題信息管理、查看 所教 班級(jí)成績(jī)信息 等 ; ? 試題信息管 理的實(shí)現(xiàn),包括試題的查詢(xún)、添加、刪除; ? 批量導(dǎo)入試題利用了 POI 的 jar 包,對(duì) Excel 表格的內(nèi)容進(jìn)行解析,但是表格的列標(biāo)題必須和目標(biāo)數(shù)據(jù)庫(kù)中的數(shù)據(jù)表字段名嚴(yán)格 對(duì)應(yīng) 。在實(shí)現(xiàn)上利用POI 的 jar 包中的 API,先讀取 Excel 的第一行作為數(shù)據(jù)表的字段名 放入string 變量中 ,再 遍歷 表的 各行,讀取每條記錄,循環(huán)插入目標(biāo)數(shù)據(jù)表中。 學(xué)生模塊 的實(shí)現(xiàn),該模塊包括參加考試、查看考試成績(jī)、查看個(gè)人信息、修改密碼;考試系統(tǒng)的實(shí)現(xiàn),包括隨 機(jī) 抽題組卷、自動(dòng) 閱 卷并 自動(dòng) 將成績(jī)錄入數(shù)據(jù)庫(kù)、還原本次考試答錯(cuò)的題供 考生 參考 等 。 . . 第二章 系統(tǒng)技術(shù)概論 JDBC 技術(shù) Java 數(shù)據(jù)庫(kù)編程主要使用 JDBC 技術(shù)。 JDBC 是一種用于執(zhí)行 SQL 語(yǔ)句的 Java API[13], 它由一組用 Java 編寫(xiě)的類(lèi)和界面組成。 JDBC 未開(kāi)發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的 API,使他們能夠用純 Java API 來(lái)編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序。 利用 JDBC,向各種關(guān)系數(shù)據(jù)庫(kù)發(fā)送 SQL 語(yǔ)句就變成了一件很容易的事。換言之,利用 JDBC API,就不必專(zhuān)門(mén)為訪(fǎng)問(wèn) SQL Server 數(shù)據(jù)庫(kù)寫(xiě)一個(gè)程序,又專(zhuān)門(mén)為訪(fǎng)問(wèn) Oracle 數(shù)據(jù)庫(kù)寫(xiě)一個(gè)程序。開(kāi)發(fā)人員只需用 JDBC API 寫(xiě)一個(gè)程序就夠了,它可向相應(yīng)的數(shù)據(jù)庫(kù)發(fā)送 SQL 語(yǔ)句。而且由于是使用 Java 編寫(xiě)的應(yīng)用程序,就無(wú)須為不同的平臺(tái)編寫(xiě)不同的應(yīng)用程序。將 Java 和 JDBC 結(jié)合起來(lái)將使程序員只寫(xiě)一遍程序就可以讓它在任何平臺(tái)上運(yùn)行。 JDBC 在應(yīng)用程序中的體系結(jié)構(gòu) 如 圖 所示 。 圖 JDBC應(yīng)用程序體系結(jié)構(gòu) 簡(jiǎn)單地說(shuō), JDBC 可以做 以 下三 件事: a) 與數(shù)據(jù)庫(kù)建立連接; b) 發(fā)送并執(zhí)行 SQL 語(yǔ)句; c) 處理結(jié)果。 這些工作是通過(guò) JDBC 中以下幾個(gè)核心類(lèi)來(lái)完成的。 . . DriverManager 類(lèi) DriverManager 類(lèi)是 JDBC 的 管理層,用于注冊(cè)并跟蹤可用的驅(qū)動(dòng)程序,同時(shí)在數(shù)據(jù)庫(kù)和相應(yīng)的驅(qū)動(dòng)程序之間建立連接。 DriverManager 類(lèi)的所有成員都是靜態(tài)成員,開(kāi)發(fā)者在程序中無(wú)須對(duì)其進(jìn)行實(shí)例化,可以直接通過(guò)類(lèi)名來(lái)調(diào)用其方法。在JDBC 中可以 自動(dòng)在 DriverManager 類(lèi)中 注冊(cè)驅(qū) 動(dòng)程序 ,在程 序中利用()方法加載指定的驅(qū)動(dòng)程序,這將顯式地加載驅(qū)動(dòng)程序類(lèi)。由于這與外部設(shè)置無(wú)關(guān),因此推薦使用這種加載方法。其代碼如下: (“”)。 加載驅(qū)動(dòng)程序類(lèi)并在 DriverManager 類(lèi)中注冊(cè)后,即可與數(shù)據(jù)庫(kù)建立連接了。對(duì)于簡(jiǎn)單的應(yīng)用程序,開(kāi)發(fā)者只需直接使用 ()方法,準(zhǔn)備建立于數(shù)據(jù)庫(kù)的連接。當(dāng)調(diào)用 ()發(fā)出連接請(qǐng)求時(shí),DriverManager 類(lèi) 將 檢 查 加 載 的 驅(qū) 動(dòng) 程 序 , 查 看 是 否 可 以 建 立 連 接 。()將返回代表數(shù)據(jù)庫(kù)連接的 Connection 對(duì)象。 Connection 類(lèi) Connection 對(duì)象代表與數(shù)據(jù)庫(kù)的連接。調(diào)用 DriverManager 類(lèi)的 getConnection()方法將返回一個(gè) Connection()對(duì)象。 JDBC 中 url 的標(biāo)準(zhǔn)語(yǔ)法由三部分組成,各部分用冒號(hào)分隔。如: Jdbc:子協(xié)議 :子名稱(chēng) 其中, jdbc 表示協(xié)議,并且 JDBC 中的 url 的協(xié)議總是 jdbc。 子協(xié)議 表示驅(qū)動(dòng)程序名或者數(shù)據(jù)庫(kù)連接機(jī)制的名稱(chēng)。子協(xié)議的典型示例是 ”odbc”,該名稱(chēng)是為指定的 ODBC 的數(shù)據(jù)資源名稱(chēng)的 url 專(zhuān)門(mén)保留的。例如,為了通過(guò) JDBCODBC 橋來(lái)訪(fǎng)問(wèn)某個(gè)數(shù) 據(jù)庫(kù),可以使用如下所示的 url: Jdbc:odbc:MyDataSource 其中,子協(xié)議為 ”odbc”,子名稱(chēng) ” MyDataSource”是本地 ODBC 數(shù)據(jù)源。 Connection 類(lèi)是 JDBC 中主要的類(lèi)之一,從事務(wù)處理到創(chuàng)建語(yǔ)句,從管理連接到向數(shù)據(jù)庫(kù)發(fā)送查詢(xún),它提供了許多功能。 Connection 中的方法按照功能劃分主要有以下幾類(lèi): a) 向數(shù)據(jù)庫(kù)法送 SQL 語(yǔ)句; . . b) 事務(wù)處理; c) 管理連接。 Statement 類(lèi) Statement 對(duì)象是由 Connection 類(lèi)的 createStatement()方法創(chuàng)建的 ,用于將 SQL語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù) 。作為在給定連接上執(zhí)行 SQL 語(yǔ)句的容器, Statement 對(duì)象用于執(zhí)行不帶參數(shù)的簡(jiǎn)單 SQL 語(yǔ)句。 Statement 對(duì)象可由 Connection 類(lèi)的兩種不同的createStatement()方法創(chuàng)建,如下: Statement stmt = ()。 Statement stmt = (int type, int concurrency)。 Statement 具有三種執(zhí)行 SQL 語(yǔ)句的方 法: executeQuery()、 executeUpdate()和execute()。具體使用哪一個(gè)由 SQL 語(yǔ)句所產(chǎn)生的內(nèi)容來(lái)決定。 Statement 對(duì)象將由Java 垃圾回收程序自動(dòng)關(guān)閉。而為了養(yǎng)成一種良好的編程習(xí)慣,應(yīng)在不需要的時(shí)候顯式地調(diào)用 close()方法關(guān)閉它們。這將立即釋放 DBMS 資源,有助于避免潛在的內(nèi)存泄露問(wèn)題。 ResultSet 類(lèi) ResultSet 類(lèi)提供了對(duì)數(shù)據(jù)結(jié)果集的訪(fǎng)問(wèn)機(jī)制。結(jié)果集是一個(gè)二維表結(jié)構(gòu),其中包含查詢(xún)所返回的列表題及相應(yīng)的值。根據(jù)創(chuàng)建的 ResultSet 對(duì)象的 Statement 及其子類(lèi)的類(lèi)型不同, ResultSet 也分為單向 ResultSet 和可滾動(dòng) ResultSet。 ResultSet 類(lèi)始終有一個(gè)游標(biāo)指向其當(dāng)前的數(shù)據(jù)行。生成 ResultSet 對(duì)象時(shí),游標(biāo)總是定位在第一行的前面。每調(diào)用一次 next()方法,游標(biāo)將向下移動(dòng)以后。因此,第一次調(diào)用 next()方法時(shí),將把游標(biāo)置于第一行之上,使它成為當(dāng)期行。這樣通過(guò)調(diào)用 next()方法可以按照從上至下的次序獲取 ResultSet 的行。 get ()方法提供了獲取當(dāng)前行中某列值的途徑。在每行內(nèi),可按任意次序獲取列值。但為了保證可移 植性,應(yīng)該從左至右獲取列值。列名或列號(hào)可用于標(biāo)識(shí)要從中獲取數(shù)據(jù)的行。例如,如果 ResultSet 對(duì)象的 rs 的第二列名為“ title”,并將值存儲(chǔ)為字符串,則下列任一行代碼都將獲取存儲(chǔ)在該列中的值 : . . String s = (“title”)。 String s = (2)。 ResultSet 中列的信息,被稱(chēng)作結(jié)果集的元數(shù)據(jù),它被存儲(chǔ)在 ResultSetMetaData對(duì)象中。可通過(guò)調(diào)用 ()方法得到。返回的 ResultSetMetaData對(duì)象將給出其對(duì)應(yīng)的 ResultSet 對(duì)象中各列的編號(hào)、類(lèi)型和屬性。 Servlet 程序結(jié)構(gòu) 一個(gè) Servlet 程序 [14]就是一個(gè)在 web 服務(wù)器端運(yùn)行的特殊 Java 類(lèi),這個(gè)特殊的Java 類(lèi)必須實(shí)現(xiàn) 接口, Servlet 接口定義了 Servlet 容器與 Servlet程序之間的通信的協(xié)議。為了簡(jiǎn)化 Servlet 程序的編寫(xiě), Servlet API 中提供了一個(gè)實(shí)現(xiàn)了 Servlet 接口的最簡(jiǎn)單的 Servlet 類(lèi),其完整名稱(chēng)是 ,這個(gè)類(lèi)實(shí)現(xiàn)了 Servlet 程序的基本特征和功能。 Servlet API 中還提供了一個(gè)專(zhuān)用于HTTP 的 Servlet 類(lèi),其名稱(chēng)是 ,它是 GenericServlet 的子類(lèi),在 GenericServlet 的基礎(chǔ)上進(jìn)行了一些針對(duì) HTTP 特點(diǎn)的擴(kuò)充。顯然,一個(gè)Java 類(lèi)只要繼承了 GenericServlet 或 HttpServlet,它就是個(gè) Servlet 類(lèi)。反過(guò)來(lái),要編寫(xiě)一個(gè) Servlet 類(lèi),這個(gè)類(lèi)必須繼承 GenericServlet 或 HttpServlet 類(lèi)。為了充分利用 HTTP 的功能,在一般情況下,都應(yīng)讓自定義的 Servlet 類(lèi)繼承 HttpServlet 類(lèi),而不是繼承 GenericServlet 類(lèi)。因此,在 Servlet 程序中上的開(kāi)頭必須導(dǎo)入.*和 .*兩個(gè) jar 包,此外 Servlet 類(lèi)必須繼承 HttpServlet類(lèi)。由于 Servlet 生命周期中的三個(gè)階段:初始化階段、響應(yīng)客戶(hù)請(qǐng)求階段和終止階段,分別對(duì)應(yīng)于 接口中定義的 三個(gè)方法 init()、 service()和destroy()。因此,在 Servlet 程序中必須實(shí)現(xiàn)這三個(gè)方法。 Init()方法是 Servlet 生命周期的開(kāi)始。這個(gè)方法在 Servlet 類(lèi)被實(shí)例化后立即執(zhí)行,它只被調(diào)用一次,用來(lái)創(chuàng)建和初始化請(qǐng)求所要求的資源。 Public void init(ServletConfig config)throws ServletException 其中, ServletConfig 可以讀取系統(tǒng)初始化參數(shù)的配置,在 init()方法中,比較通用的做法是調(diào)用其超類(lèi)的初始化方法 ()。如果因?yàn)橐恍┰?Servlet 對(duì)象不能初始化請(qǐng)求,所要求的系統(tǒng)資源就會(huì)拋出 ServletException 異常。 Service()方法處理來(lái)自客戶(hù)端的所有請(qǐng)求,并把處理結(jié)果以靜態(tài)頁(yè)面的形式返回給瀏覽器。其具體. . 語(yǔ)法格式為: Public void service (ServletRequest req, ServletResponse res) throws ServletException, IOException 其中, ServletResponse 參數(shù)用來(lái)向客戶(hù)端返回 的信息, ServletRequest 參數(shù)用來(lái)封裝來(lái)自客戶(hù)端的請(qǐng)求信息。由于客戶(hù)端通過(guò) HTTP 請(qǐng)求 Servlet 有 Get()和 Post()兩種方式,所以可以用 doGet()和 doPost()來(lái)替換 service()方法。但是需要注意的是service()不能和 doGet()、 doPost()同時(shí)使用,因?yàn)槠浔旧砭桶瑢?duì) doGet()和 doPost()方法的處理。 destroy()方法用于結(jié)束 Servlet 生命周期。當(dāng)關(guān)閉一個(gè) web 應(yīng)用時(shí),destroy()方法就會(huì)被執(zhí)行,這時(shí)在 init()方法中被創(chuàng)建的資源將 被釋放。編寫(xiě)完 Servlet程序后,還需要編寫(xiě)應(yīng)用程序的配置文件 。 用來(lái)控制 Servlet 組件的行為,在其中把 Servlet 映射成 url 形式通過(guò)給用戶(hù)訪(fǎng)問(wèn)。配置文件 的格式如下: ?xml version= encoding=UTF8? webapp Servlet Servletname dealwithaction /Servletname Servletclass /Servletclass /Servlet Servletmapping Servletnamedealwithaction/Servletname urlpattern/dealwithaction/urlpattern /Servletmapping /webapp . . JavaScript 技術(shù) JavaScript 可以 讓用戶(hù)創(chuàng)建直接運(yùn)行于 Inter 上的應(yīng)用 [15]。利用 JavaScript 用戶(hù)可以創(chuàng)建需要的動(dòng)態(tài) HTML 頁(yè)面,處理用戶(hù)輸入及特殊的對(duì)象、文件和關(guān)系數(shù)據(jù)庫(kù)維護(hù)穩(wěn)定的數(shù)據(jù)。通過(guò) JavaScript 的 LiveConnect 功能,程
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1