網上考試系統JSP課程設計.doc_第1頁
網上考試系統JSP課程設計.doc_第2頁
網上考試系統JSP課程設計.doc_第3頁
網上考試系統JSP課程設計.doc_第4頁
網上考試系統JSP課程設計.doc_第5頁
免費預覽已結束,剩余15頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

JSP動態網頁編程 課程設計(論文)題目: 網上考試系統 目 錄第1章 課程設計目的與要求11.1 課程設計目的11.2 課程設計的實驗環境11.3 課程設計的預備知識11.4 課程設計要求1第2章 課程設計內容22.1系統功能分析22.1.1 項目規劃22.1.2 系統功能模塊設計32.2數據庫設計42.2.1 數據庫需求分析42.2.2 數據庫概念結構設計42.2.3 數據庫邏輯結構設計52.2.4 數據庫連接說明82.3 文件架構設計82.4 JavaBean的分析及編寫92.4.1 bean的分析及功能說明92.4.2 bean的代碼實現92.5 Servlet的分析及編寫102.5.1 Servlet的分析及功能說明102.5.2 Servlet的代碼實現112.6 JDBC的類型選擇及驅動代碼122.7頁面設計132.7.1 前臺頁面概述132.7.2頁面的布局及效果圖132.7.3 頁面的實現代碼15第3章 課程設計總結17參考文獻18 第1章 課程設計目的與要求1.1 課程設計目的本課程的課程設計實際是信管專業學生學習完JSP程序設計課程后,進行的一次全面的綜合訓練,其目的在于加深對JSP基礎理論和基本知識的理解,掌握運用JSP動態網頁技術開發軟件的基本方法。1.2 課程設計的實驗環境硬件要求能運行Windows XP操作系統的微機系統。數據庫應用系統開發軟件可以選用Microsoft SQL Server,或其他數據庫管理系統。1.3 課程設計的預備知識熟悉網頁制作的基本知識及一種以上數據庫系統開發軟件,可以使用一種應用服務器布置架設環境。1.4 課程設計要求按課程設計指導書提供的課題,應根據下一節給出的基本需求獨立完成的設計,標有“可選”的部分可根據設計時間的安排及工作量的大小適當選擇。選用其他課題或不同的數據庫管理系統,可以組成設計小組,分模塊進行,共同協作完成一個應用系統的開發任務。要求書寫詳細的設計說明書,對復雜的代碼段和程序段,應畫出程序流程圖。在界面設計中,畫出每個窗口的布局,有多個窗口時,按模塊調用的方式畫出窗口調用圖,用手工畫好報表和標簽樣式,嚴禁相互抄襲。第2章 課程設計內容2.1系統功能分析2.1.1 項目規劃系統是專門用于用戶注冊、登陸、參加網上考試以及管理員進行成績查詢的JSP應用程序。它應該具有開放性、方便性和靈活性。因為考試是面向特定的某些對象的,所以考試者進入系統應該進行身份驗證。考試者進入考試系統后,應該能根據自己的需要進行個人信息的修改、考試系統的進入,以及考分的查看。網上考試于一般的單機考試是不同的。鑒于考試環境一般為機房,考試者之間的距離很近,為了網上考試做到規范,對于每個應試者來說,試卷的試題和題量都應是相同的,但試題并不相同。網上考試基于網絡環境,試卷應該從服務器的數據庫隨機抽取試題后動態生成的。系統還應該對考試時間進行控制,時間到了會要求考試者交卷。考試者選擇答案提交后,應該由計算機自動判卷,得到成績后顯示出來。考試完畢后,可以返回登錄界面或繼續考試。此外,應該能夠方便、快捷的對網上考試系統管理,此外,用戶還應能進行遠程注冊。分析得出系統應該具備以下基本功能:1.用戶注冊:用戶可以進行注冊,然后登陸。該模塊的功能是實現用戶的遠程注冊。用戶輸入學號和密碼,提交之后由系統判斷該用戶是否已經存在,如果存在,就給出相應的信息,如果不存在,就把用戶輸入的學號和密碼寫到數據庫中,完成注冊。2.用戶類別:登錄系統的身份定為二種,一是管理員(老師),二是學生,只有被授權的用戶才可以使用本系統的資源。3.用戶登錄:用戶用已經注冊過的信息進行登陸,提交之后由系統判斷該用戶是否存在,如果存在再判斷成績項是否有成績,若沒有成績就會提示抽取試題,進行網上考試;若有成績則會提示考生已經參加過了此次考試,并且給出考試成績。4.用戶信息的修改:用戶可以根據需要修改個人信息。5.用戶信息的管理:管理員可以增刪改用戶。6.試卷模型設置:設置試題的每種題型的數量和分值以及考試的總時間。7.試題庫管理:對單選、多選兩種題型試題庫的管理,使試題的增刪編輯更為簡便。8.試卷生成:一個完整的網上考試系統首先必須要有能夠滿足用戶需求的試卷,并針對不同的用戶要有不同的試卷,試卷生成模塊就能夠滿足用戶的這個需求。可以有系統管理員對試卷格式進行設置,然后又系統自動從題庫中選擇題目生成試卷。9.網上考試:網上考試是本系統重要的部分之一。每個考生的試卷都不同,即使是同一個考生每次抽取的試題也都不相同。考生的答題信息通過單選按鈕、文本框的選擇和填寫來反映,考生交卷后考試結束,并直接進入閱卷頁面。10.計算機自動閱卷:本系統只考慮客觀題,要求計算機能自動閱卷,然后馬上顯示出考生分數。11.成績查閱:考生考完以后,管理員應該能對所有紀錄進行查詢,并應該可以刪除指定紀錄。除了實現上述功能以外,網上考試系統還應該具有友好、簡潔的界面,安全性要高,穩定性要強,能夠滿足100人以上同時及進行網上考試。2.1.2 系統功能模塊設計本系統主要是實現了寵物管理系統的功能設計,具體功能結構圖如下所示.顯示考試成績自動閱卷開始考試準備考試選擇課程考試規則網上考試系統考生注冊修改個人資料找回密碼網上考試成績查詢退出系統圖2.1 系統功能結構圖經過對系統功能的分析,調查,研究,總結出網上考試系統具體實現了用戶注冊、多用戶同時網上考試、動態隨機出題、自動判卷、管理員管理等重要功能,也就是說實現了真正的無紙化考試,滿足任何授權的考生隨時隨地的考試并迅速獲得成績,同時也大大減輕了教師出題、監考和判卷的繁重工作量。這樣,可以對網上考試系統繪制業務流程圖,如圖2.2示: 圖2.2網上考試系統業務流程圖2.2數據庫設計數據庫結構設計是總體設計階段非常重要的環節,好的數據庫結構可以簡化開發過程,使系統功能更加清晰明確。因為數據庫結構的變化會造成編碼的改動,所以必須認真設計數據庫結構后再進行編碼,從而避免無謂的重復工作。數據庫設計(Database Design)是指根據用戶的需求,在某一具體的數據庫管理系統上,設計數據庫的結構和建立數據庫的過程。一般,數據庫的設計過程大致可分為5個步驟:1. 需求分析2. 概念設計3.邏輯設計4.物理設計5.驗證設計。2.2.1 數據庫需求分析數據庫的需求分析就是調查和分析用戶的業務活動和數據的使用情況,弄清所用數據的種類、范圍、數量以及它們在業務活動中交流的情況,確定用戶對數據庫系統的使用要求和各種約束條件等,形成用戶需求規約。2.2.2 數據庫概念結構設計數據庫的概念設計就是對用戶要求描述的現實世界(可能是一個工廠、一個商場或者一個學校等本系統中就是老師和學生),通過對其中住處的分類、聚集和概括,建立抽象的概念數據模型。這個概念模型應反映現實世界各部門的信息結構、信息流動情況、信息間的互相制約關系以及各部門對信息儲存、查詢和加工的要求等。所建立的模型應避開數據庫在計算機上的具體實現細節,用一種抽象的形式表示出來。以擴充的實體(E-R模型)聯系模型方法為例,第一步先明確現實世界各部門所含的各種實體及其屬性、實體間的聯系以及對信息的制約條件等,從而給出各部門內所用信息的局部描述(在數據庫中稱為用戶的局部視圖)。第二步再將前面得到的多個用戶的局部視圖集成為一個全局視圖,即用戶要描述的現實世界的概念數據模型。構成E-R圖的基本要素是實體型、屬性以及聯系,其表示方法為:實體型:用矩形表示,矩形框內寫明實體名;屬性:用橢圓形表示,并用無向邊將其與相應的實體連接起來;聯系:用菱形表示,菱形框內寫明聯系名,并用無向邊分別與有關實體連接起來,同時在無向邊的旁邊標上聯系的類型。根據系統的特點,繪制了如圖2.8所示的系統實體的E-R圖。圖2.3網上考試系統E-R圖2.2.3 數據庫邏輯結構設計數據庫的邏輯設計主要工作是將現實世界的概念數據模型設計成數據庫的一種邏輯模式,即適應于某種特定數據庫管理系統所支持的邏輯數據模式。與此同時,可能還需為各種數據處理應用領域產生相應的邏輯子模式。這一步設計的結果就是所謂“邏輯數據庫”。1.question表結構通常,每一類型的試題都應有一個表結構。但考慮到目前系統存貯空間可以很大,也為了更加方便。我們采用把全部試題集中在一起的方案來建立數據表,每道客觀題均有四個備選答案項,每個試題均具有題型,分值等數據段表示其屬性。字段名一般是相應的英文單詞。這樣,查詢起來較方便,會節約時間,也不致于造成數據十分雜亂等。但注意不要和數據庫中的關鍵字重復。詳細設計如下表所示:表2.1 question 字段名稱類型說明ID自動編號常整型,遞增,主鍵Haveselect數字常整型Question文本字段大小200A文本字段大小50B文本字段大小50C文本字段大小50D文本字段大小50Answer文本字段大小50Type文本字段大小50各字段說明:(1) ID是問題的id號,用來唯一標志該問題,把它設為主鍵,類型為自動編號。(2)haveselect字段代表在隨機選題時是否已經被某用戶選過,類型為數字。(3)Question字段為問題內容,類型為文本。(4)A字段代表選項A的內容(5)B字段代表選項B的內容(6)C字段代表選項C的內容(7)D字段代表選項D的內容(8)Answer字段表示答案選項(9)Type字段表示試題類型2.subject表結構表2.2 subject字段名稱類型說明Multiper數字常整型Singleper數字常整型multinumber數字常整型singlenumber數字常整型Testtime數字常整型Id自動編號常整型,遞增,主鍵各字段說明:(1)multiper字段代表在某考試科目的考試題中每個多選題的分值。(2)singleper字段代表在某考試科目的考試題中每個單選題的分值。(3)multinumber字段為某科的多選題題量。(4)singlenumber字段為某科的多選題題量(5)testtime字段代表某科的考試總時間。3.score表結構表2.3 score表字段名稱類型說明Studentname文本字段大小50Subjectname文本字段大小50Score數字常整型Endtime日期/時間各字段說明:(1)studentname字段代表在某次考試記錄中學生的名字。(2)subjectname字段代表在某次考試紀錄中考試科目名。(3)score字段為某次考試紀錄中考試分數。(4)endtime字段代表考試的結束時間。4.student表結構各字段說明:(1)name字段代表學生的名字。(2)pwd字段代表密碼。(3)repwd字段代表重復密碼(4)truename字段代表學生真實姓名(5)zcnnumber字段代表學生的學號(6)class字段代表學生的班級(7)phone字段代表聯系電話(8)mobile字段代表移動電話(9)email字段代表電子郵件(10)url字段代表學生的個人網站(11)power字段代表學生的權限,默認值為student表2.4 student表字段名稱類型說明name文本字段大小50pwd文本字段大小50repwd文本字段大小50truename文本字段大小50zcnumber數字長整型class文本字段大小50phone數字長整型mobile數字長整型email文本字段大小50url文本字段大小50power文本字段大小502.2.4 數據庫連接說明連接類型,可分為三種:內連接、外連接和交叉連接。內連接(INNER JOIN)使用比較運算符進行表間某(些)列數據的比較操作,并列出這些表中與連接條件相匹配的數據行。根據所使用的比較方式不同,內連接又分為等值連接、自然連接和不等連接三種。外連接分為左外連接(LEFT OUTER JOIN或LEFT JOIN)、右外連接(RIGHT OUTER JOIN或RIGHT JOIN)和全外連接(FULL OUTER JOIN或FULL JOIN)三種。與內連接不同的是,外連接不只列出與連接條件相匹配的行,而是列出左表(左外連接時)、右表(右外連接時)或兩個表(全外連接時)中所有符合搜索條件的數據行。交叉連接(CROSS JOIN)沒有WHERE 子句,它返回連接表中所有數據行的笛卡爾積,其結果集合中的數據行數等于第一個表中符合查詢條件的數據行數乘以第二個表中符合查詢條件的數據行數。連接操作中的ON (join_condition) 子句指出連接條件,它由被連接表中的列和比較運算符、邏輯運算符等構成。2.3 文件架構設計本系統采用B/S結構模式 ,B/S(Browser/Server)結構即瀏覽器和服務器結構。它是隨著Internet技術的興起,對C/S結構的一種變化或者改進的結構。在這種結構下,用戶工作界面是通過WWW瀏覽器來實現,極少部分事務邏輯在前端 (Browser)實現,但是主要事務邏輯在服務器端(Server)實現,形成所謂三層3-tier結構。這樣就大大簡化了客戶端電腦載荷,減輕了系統維護與升級的成本和工作量,降低了用戶的總體成本(TCO)。 以目前的技術看,局域網建立B/S結構的網絡應用,并通過Internet/Intranet模式下數據庫應用,相對易于把握、成本也是較低的。它是一次性到位的開發,能實現不同的人員,從不同的地點,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)訪問和操作共同的數據庫;它能有效地保護數據平臺和管理訪問權限,服務器數據庫也很安全。特別是在JAVA這樣的跨平臺語言出現之后,B/S架構管理軟件更是方便、快捷、高效。B/S架構軟件的優勢和劣勢:1.維護和升級方式簡單目前,軟件系統的改進和升級越來越頻繁,B/S架構的產品明顯體現著更為方便的特性。對一個稍微大一點單位來說,系統管理人員如果需要在幾百甚至上千部電腦之間來回奔跑,效率和工作量是可想而知的,但B/S架構的軟件只需要管理服務器就行了,所有的客戶端只是瀏覽器,根本不需要做任何的維護。無論用戶的規模有多大,有多少分支機構都不會增加任何維護升級的工作量,所有的操作只需要針對服務器進行;如果是異地,只需要把服務器連接專網即可,實現遠程維護、升級和共享。所以客戶機越來越“瘦”,而服務器越來越“胖”是將來信息化發展的主流方向。今后,軟件升級和維護會越來越容易,而使用起來會越來越簡單,這對用戶人力、物力、時間、費用的節省是顯而易見的,驚人的。因此,維護和升級革命的方式是“瘦”客戶機,“胖”服務器。2.成本降低,選擇更多大家都知道windows在桌面電腦上幾乎一統天下,瀏覽器成為了標準配置,但在服務器操作系統上windows并不是處于絕對的統治地位。現在的趨勢是凡使用B/S架構的應用管理軟件,只需安裝在Linux服務器上即可,而且安全性高。所以服務器操作系統的選擇是很多的,不管選用那種操作系統都可以讓大部分人使用windows作為桌面操作系統電腦不受影響,這就使的最流行免費的Linux操作系統快速發展起來,Linux除了操作系統是免費的以外,連數據庫也是免費的,這種選擇非常盛行2.4 JavaBean的分析及編寫2.4.1 bean的分析及功能說明JavaBean 是一種JAVA語言寫成的可重用組件。為寫成JavaBean,類必須是具體的和公共的,并且具有無參數的構造器。JavaBean 通過提供符合一致性設計模式的公共方法將內部域暴露成員屬性。眾所周知,屬性名稱符合這種模式,其他Java 類可以通過自身機制發現和操作這些JavaBean 屬性。用戶可以使用JavaBean將功能、處理、值、數據庫訪問和其他任何可以用java代碼創造的對象進行打包,并且其他的開發者可以通過內部的JSP頁面、Servlet、其他JavaBean、applet程序或者應用來使用這些對象.用戶可以認為JavaBean提供了一種隨時隨地的復制和粘貼的功能,而不用關心任何改變.2.4.2 bean的代碼實現package bean;import java.sql.*;public class dbcon String user=sa; String password=; String driverName=sun.jdbc.odbc.JdbcOdbcDriver; String connectURL=jdbc:odbc:jspbook; Connection conn=null; Statement stmt=null; ResultSet rs=null;public dbcon()tryClass.forName(driverName);conn=DriverManager.getConnection(connectURL,user,password);conn.setAutoCommit(true);stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);catch(Exception e)System.out.println(數據庫連接錯誤+e.getMessage();public ResultSet executeQuery(String sql)tryrs=stmt.executeQuery(sql);catch(SQLException ex)System.out.println(據庫查詢錯誤+ex.getMessage();return rs;public int executeUpdate(String sql)tryint i=stmt.executeUpdate(sql); return i;catch(SQLException ex)System.out.println(執行更新錯誤:+ex.getMessage();return -1;public Connection getcon()return conn;2.5 Servlet的分析及編寫2.5.1 Servlet的分析及功能說明Servlet是一種服務器端的Java應用程序,具有獨立于平臺和協議的特性,可以生成動態的Web頁面。 它擔當客戶請求(Web瀏覽器或其他HTTP客戶程序)與服務器響應(HTTP服務器上的數據庫或應用程序)的中間層。Servlet是使用Java Servlet 應用程序設計接口(API)及相關類和方法的 Java 程序。除了 Java Servlet API,Servlet 還可以使用用以擴展和添加到 API 的 Java 類軟件包。Servlet 在啟用 Java 的 Web 服務器上或應用服務器上運行并擴展了該服務器的能力。Java servlet對于Web服務器就好象Java applet對于Web瀏覽器。Servlet裝入Web服務器并在Web服務器內執行,而applet裝入Web瀏覽器并在Web瀏覽器內執行。Java Servlet API 定義了一個servlet 和Java使能的服務器之間的一個標準接口,這使得Servlets具有跨服務器平臺的特性。 Servlet 通過創建一個框架來擴展服務器的能力,以提供在 Web 上進行請求和響應服務。當客戶機發送請求至服務器時,服務器可以將請求信息發送給 Servlet,并讓 Servlet 建立起服務器返回給客戶機的響應。 當啟動 Web 服務器或客戶機第一次請求服務時,可以自動裝入 Servlet。裝入后, Servlet 繼續運行直到其它客戶機發出請求。Servlet 的功能涉及范圍很廣。Servlet 可完成如下功能: (1) 創建并返回一個包含基于客戶請求性質的動態內容的完整的 HTML頁面。 (2) 創建可嵌入到現有 HTML 頁面中的一部分 HTML 頁面(HTML 片段)。 (3) 與其它服務器資源(包括數據庫和基于 Java 的應用程序)進行通信。 (4) 用多個客戶機處理連接,接收多個客戶機的輸入,并將結果廣播到多個客戶機上。例如,Servlet 可以是多參與者的游戲服務器。 (5) 當允許在單連接方式下傳送數據的情況下,在瀏覽器上打開服務器至applet的新連接,并將該連 接保持在打開狀態。當允許客戶機和服務器簡單、高效地執行會話的情況下,applet也可以啟動客戶瀏覽器和服務器之間的連接。可以通過定制協議或標準(如 IIOP)進行通信。(6) 對特殊的處理采用 MIME 類型過濾數據,例如圖像轉換和服務器端包括(SSI)。 (7) 將定制的處理提供給所有服務器的標準例行程序。例如,Servlet 可以修改如何認證用戶。 2.5.2 Servlet的代碼實現package sjservlets;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import java.sql.*;public class ConnectionPoolServlet extends HttpServlet protected ConnectionPool connectionPool; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException public void init() int vendor = DriverUtilities.MYSQL; String driver = DriverUtilities.getDriver(vendor); String host = localhost; String dbName = jsp_library; String url = DriverUtilities.makeURL(host, dbName, vendor); String username = root; String password = masteryoda; try connectionPool = new ConnectionPool(driver, url, username, password,)2.6 JDBC的類型選擇及驅動代碼JDBC驅動程序代碼如下:import java.sql.*; public class dbTest2 public static void main(Stringarg) tring url=jdbc:oracle:oci8:gps;/配置連接串 String login =java;/用戶名 String password =java;/口令 String sqlString =SELECT*FROM lbt_test;/SQL語句 try /載入驅動程序 Driver myDriver =new SqlServer.jdbc.driver.serverDriver(); DriverManager.registerDriver(myDriver); Connection connection=DriverManager.getConnection(url,login,password);/連接數據庫 Statement st=connection.createStatement(); ResultSet rs=st.executeQuery(sqlString); /處理結果集 output to screen while (rs.next() for(int j=1;j=rs.getMetaData().getColumnCount();j+) System.out.print(rs.getString(j)+t); System.out.println(); st.close(); connection.close();/斷開連接 catch(Exception e) System.err.println(error:+e.getMessage(); 2.7頁面設計2.7.1 前臺頁面概述網上考試系統具體實現了用戶注冊、多用戶同時網上考試、動態隨機出題、自動判卷、管理員管理等重要功能。2.7.2頁面的布局及效果圖網上考試系統登錄界面如圖2.4所示:圖2.4 系統登錄頁面 網上考試系統老師制作題庫界面如圖2.5所示:圖2.5制作題庫頁面 網上考試系統學生獲取試卷界面如圖2.6所示:圖2.6學生獲取試卷頁面網上考試系統考生考試界面如圖2.7所示:圖2.7 考生考試頁面2.7.3 頁面的實現代碼考試頁面部分代碼如下:批改結果%Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);String driver = jdbc:odbc:try;String user=jsp;String password=820728;Connection conn = DriverManager.getConnection(driver,sa,sa);Statement stmt = conn.createStatement

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論