• 沒有找到結果。

網路教學-資料結構函數、指標、陣列、結構-附帶學習測驗題庫

N/A
N/A
Protected

Academic year: 2021

Share "網路教學-資料結構函數、指標、陣列、結構-附帶學習測驗題庫"

Copied!
37
0
0

加載中.... (立即查看全文)

全文

(1)逢 甲 大 學 資訊工程學系專題報告 網路教學-資料結構 函數、指標、陣列、結構 附帶學習測驗題庫. 學. 生: 陳 藤 平(四丙). 指導教授 :. 戴 嬋 玲. 中華民國九十三年四月.

(2) 網路教學-資料結構. 目. 錄. 目錄…………………………………………………………………Ⅰ 圖表目錄……………………………………………………………II 前言………………………………………………………………… 1 第一章 系統設計相關原理…………………………………………3 1.1 ASP 技術介紹………………………………………3 1.2 SQL 語句介紹………………………………………7 1.2.1 SQL 的優點………………………………7 1.2.2 SQL 的使用………………………………8 1.3 VBScript 介紹……………………………………11 第二章 需求分析…………………………………………………13 2.1 系統需要解決的主要問題………………………13 2.2 系統應該具備的基本功能………………………14 第三章 系統總體設計………………………………………….15 3.1 基本簡介…………………………………………15 3.2 運行環境與系統結構…………………………..15 3.2.1 軟體環境……………………………..15 3.2.2 系統結構圖…………………………..16 3.3 詳細設計………………………………………..16 3.3.1 試題設計……………………………..16 3.3.2 資料庫中表的設計…………………..17 3.3.3 用戶,管理員許可權………………….20 3.3.4 功能模組詳細設計…………………..20 3.3.4.1 管理模組………………….20 3.3.4.2 線上考試模組…………….21 3.3.4.3 用戶註冊模組…………….21 3.3.5 線上考試系統考試模組框圖……….22 第四章 系統實現……………………………………………..23 4.1 系統流程圖設計……………………………….23 4.2 各文件功能介紹及詳解……………………….24 4.3 調試過程中遇到的主要問題和解決辦法…….30 4.4 系統測試……………………………………….31 4.5 工作進度……………………………………….31 第五章 專題製作之心得……………………………………..32 參考資料………………………………………………………..33. I 逢甲大學 e-Paper (92學年度).

(3) 網路教學-資料結構. 圖 表 目 錄 圖 3-1 線上考試系統結構圖……………………………………16 表 3-1 question 表…………………………………………….17 表 3-2 subject 表………………………………………………18 表 3-3 score 表…………………………………………………18 表 3-4 student 表………………………………………………19 表 3-5 admin 表…………………………………………………19 圖 3-2 線上考試系統考試模組框圖…………………………..22 圖 4-1 系統流程圖……………………………………………..24 表 4.5.1 工作進度表…………………………………………..31. II 逢甲大學 e-Paper (92學年度).

(4) 網路教學-資料結構. 前言 在這份專題實作中,我選擇了之前和同學作過的專題,來加以修改, 使其在學習測驗題庫部份,能夠使題目以動態選出,並且讓同一位同學能 夠重複測驗多次,而且每一次題目內容都不一定相同。首先描述系統設計相 關原理,並對系統整體設計做簡介,最後,並以圖表說明本系統的工作進 度。 隨著網路技術的快速發展,現在很多國外的大學和社會其他部門都已經 開設了遠端教學,通過電腦網路實現異地教育和培訓。電腦硬體技術的發 展已經達到相當高的水平。但是,遠端教學軟體的開發目前還處於起步階 段,隨著這項技術的不斷深入發展,就要求有更好、更完善的軟體系統應 用到遠端教學當中去,這就給軟體設計人員提出了更高的設計要求。 遠端教學包括很多環節,例如教學系統、回答疑問系統和線上考試系統 等等。其中很重要的一個環節就是線上考試系統,同時它也是最難實現的 環節。在我國,雖然遠端教學已經蓬勃地發展起來,但是目前學校與社會 上的各種考試大都採用傳統的考試方式,在此方式下,組織一次考試至少 要經過五個步驟,即人工出題、考生考試、人工閱卷、成績評估和試卷分 析。顯然,隨著考試類型的不斷增加及考試要求的不斷提高,教師的工作 量將會越來越大,並且其工作將是一件十分煩瑣和非常容易出錯的事情, 可以說傳統的考試方式已經不能適應現代考試的需要。隨著電腦應用的迅 猛發展,網路應用不斷擴大,如遠端教學和虛擬大學的出現等等,且這些 應用正逐步深入到千家萬戶。因此軟體設計人員可以利用這些技術來進行 線上考試,以減輕教師的工作負擔及提高工作效率,與此同時也提高了考 試的質量,從而使考試更趨於公證、客觀,更加激發學生的學習興趣。例 如目前許多國際著名的電腦公司所舉辦的各種認證考試絕大部分採用這種 方式。 線上考試是現階段研究開發的一個熱點。它是建立在國際互聯網即是 Internet 上的應用系統,用戶端的配置可以極爲簡單,使考試不受地域的 局限。一個完備的線上考試系統可以使用戶在網上學習過後及時檢驗自己 的學習效果,以發現自己的不足,使得學習效率提高。線上考試系統中題 目的生成、試卷的提交、成績的批閱等都可以在網路上自動完成。只要形 成一套成熟的題庫就可以實現考試的自動化。這樣一來,教師所要做的只 是精心設計題目、維護題庫,而不是組織考試,從而大大減輕了教師的負 擔,這表明其經濟性是相當可觀的。爲了適應新形勢的發展,我進行了這 1 逢甲大學 e-Paper (92學年度).

(5) 網路教學-資料結構. 一系統的初步設計工作,也可以說是做一個初步的探索,希望它能夠在各 類考試中發揮高效、便捷的作用,把老師從繁重的工作中解脫出來! 目前,網路應用軟體運行的模式主要有二類:Client/server 模式, Browser/Web 模式。前者主要的缺點是維護、升級較麻煩,後者是近幾年伴 隨 Internet 迅速發展起來的一種技術,它與客戶/伺服器方式類似,用戶 端是一個標準的瀏覽器,伺服器端是 Web Server ,而 Web Server 與資料 庫和應用伺服器的緊密結合,使得這種模式的應用範圍不斷擴大,它已不 僅僅用於網上查詢,有很多部門的業務系統、企業的 MIS 系統紛紛採用這 種模式,它的主要優點是便於擴充應用、升級維護簡便。 另外,考試系統的軟體也必將不斷的更新;同時軟體産品本身就要經 過一個不斷自我完善的過程。 基於上述考慮,用 Browser/Web 模式來設計考試系統比較合適,伺服 器端我採用 Access 資料庫系統和 ASP 元件來構成考試的應用服務系統;用 戶端採用瀏覽器來完成考試全過程,同時可進行遠端系統維護和管理。 利用網路和資料庫技術,結合目前硬體價格普遍下跌與寬頻網大力建設 的有利優勢,應用 Active Server Page 技術,我開發了基於 Browser/Web 模式多用戶線上考試系統這一程式。它運用方便、操作簡單,效率很高(同 時,它要求電腦配置也很高,尤其是伺服器端) 。現階段雖只實現了試卷的 客觀題部分,但已具有用戶註冊、動態隨機出題、自動判卷,試題錄入、 修改題庫、用戶管理、科目管理、管理員管理、分數管理等重要功能,也 就是說實現了真正的無紙化考試,滿足任何授權的考生隨時隨地考試並迅 速獲得成績,同時也大大減輕了教師出題和判卷等繁重的工作量。. 2 逢甲大學 e-Paper (92學年度).

(6) 網路教學-資料結構. 第一章. 系統設計相關原理. 該線上考試系統主要採用 ASP、HTML、Access 資料庫、VBScript、SQL 等技術和工具,整體設計遵循軟體工程的方法,經過需求分析、總體設計、 文檔和代碼的編制、模組測試和系統實現幾個階段。下面就對這幾種技術 和方法做一個概述。. 1.1 ASP 技術介紹 Microsoft Active Server Pages 即我們所稱的 ASP,其實是一套微軟 開發的伺服器端腳本環境。Active Server Page 是創建動態網頁的一個很 好的工具,它起一種編程式語言的作用,可以利用它編寫動態産生 HTML 的 程式碼。因此,只要用戶瀏覽 Web 站點並請求一個 ASP 頁,Web 伺服器就可 以處理相應的 ASP 代碼,生成 HTML 代碼,然後將它傳遞到用戶瀏覽器並顯 示出網頁。ASP 內含於 IIS3.0 和 4.0 之中,通過 ASP 我們可以結合 HTML 網 頁、ASP 指令和 ActiveX 元件建立動態、交互且高效的 WEB 伺服器應用程式。 有了 ASP 就不必擔心客戶的瀏覽器是否能運行所編寫的代碼,因爲所有的 程式都將在伺服器端執行,包括所有嵌在普通 HTML 中的腳本程式。當程式 執行完畢後,伺服器僅將執行的結果返回給客戶瀏覽器,這樣也就減輕了 用戶端瀏覽器的負擔,大大提高了交互的速度。以下羅列了 ASP 所獨具的 一些特點: 1.使用 VBScript 、JScript 等簡單易懂的腳本語言,結合 HTML 代碼, 即可快速地完成網站的應用程式。 2.無須編譯,容易編寫,可在伺服器端直接執行。 3.使用普通的文本編輯器,如 Windows 的記事本,即可進行編輯設計。 4.與瀏覽器無關,用戶端只要使用可執行 HTML 碼的瀏覽器,即可瀏覽 ASP 所設計的網頁內容。ASP 所使用的腳本語言(VBScript 、Jscript)均在 WEB 伺服器端執行,用戶端的瀏覽器不需要能夠執行這些腳本語言。 5.ASP 能與任何 ActiveX scripting 語言相容。除了可使用 VBScript 或 JScript 語言來設計外,還通過 plug-in 的方式,使用由第三方所提供 的其他腳本語言,譬如 REXX、Perl、Tcl 等。腳本引擎是處理腳本程式的 COM(Component Object Model)物件。 6.ASP 的根源程式,不會被傳到客戶瀏覽器,因而可以避免所寫的根源 程式被他人剽竊,也提高了程式的安全性。 3 逢甲大學 e-Paper (92學年度).

(7) 網路教學-資料結構. 7.可使用伺服器端的腳本來産生用戶端的腳本。 8.物件導向(Object-oriented) 。 9.ActiveX Server Components(ActiveX 伺服器元件)具有無限可擴充 性。可以使用 Visual Basic 、Java 、Visual C++ 、COBOL 等編程語言來 編寫你所需要的 ActiveX Server Component。 10.另外,ASP 技術的處理速度相當快,並且其安全性也很高。ASP 最重 要的優點是能夠建立對諸如時間、地點、用戶標誌、以前的選擇和活動等 因素敏感的頁面。換句話說,可針對每個用戶的個別需求,用 ASP 定制網 頁,能夠滿足用戶的各種需求。 總之,ASP 包含三方面含義: 1.Active:ASP 使用了微軟的 ActiveX 技術。ActiveX(COM)技術是現 在 Microsoft 軟體的重要基礎。它採用封裝物件,程式調用物件的技術, 簡化編程,加強程式間合作。ASP 本身封裝了一些基本元件和常用元件,有 很多公司也開發了很多實用元件。只要你可以在伺服器上安裝這些元件, 通過訪問元件,你就可以快速、簡易地建立自己的 WEB 應用。 2.Server:ASP 運行在伺服器端。這樣就不必擔心瀏覽器是否支援 ASP 所使用的編程語言。ASP 的編程語言可以是 VBSCRIPT 和 JSCRIPT。VBSCRIPT 是 VB 的一個簡集,會 VB 的人可以很方便的快速上手。然而 Netscape 瀏覽 器不支援用戶端的 VBSCRIPT,所以最好不要在用戶端使用 VBSCRIPT。而在 伺服器端,則無需考慮瀏覽器的支援問題。Netscape 瀏覽器也可以正常顯 示 ASP 頁面。 3.Pages:ASP 返回標準的 HTML 頁面,可以正常地在常用的瀏覽器中顯 示。瀏覽者查看頁面原始檔案時,看到的是 ASP 生成的 HTML 代碼,而不是 ASP 程式碼。這樣就可以防止別人抄襲程式。 由此可以看出,ASP 是在 IIS 下開發 WEB 應用的一種簡單、方便的編程 工具。在瞭解了 VBSCRIPT 的基本語法後,只需要清楚各個元件的用途、屬 性、方法,就可以輕鬆編寫出自己的 ASP 系統。 運行 ASP 所需的環境如下: ☆Microsoft Internet Information Server version 3.0/4.0 on Windows NT Server ☆Microsoft Peer Web Services Version 3.0 on Windows NT Workstation ☆Microsoft Personal Web Server on Windows 95/98 4 逢甲大學 e-Paper (92學年度).

(8) 網路教學-資料結構. 與一般的程式不同,ASP 程式無須編譯。ASP 程式的控制部份,是使用 VBScript、JScript 等腳本語言來設計的,當執行 ASP 程式時,腳本程式將 一整套命令發送給腳本解釋器(即腳本引擎),由腳本解釋器進行翻譯並將 其轉換成伺服器所能執行的命令。當然,同其他編程語言一樣,ASP 程式的 編寫也遵循一定的規則,如果你想使用你所喜愛的腳本語言編寫 ASP 程式, 那麽你的伺服器上必須要有能解釋這種腳本語言的腳本解釋器。當你安裝 ASP 時,系統提供了兩種腳本語言:VBSrcipt 和 JScript,而 VBScript 則 被作爲系統默認的腳本語言。 ASP 程式其實是以副檔名爲.asp 的純文本形式存在於 WEB 伺服器上的, 可以用任何文本編輯器打開它,ASP 程式中可以包含純文本、HTML 標記以 及腳本命令。只需將.asp 程式放在 Web 伺服器的虛擬目錄下(該目錄必須 要有可執行許可權),就可以通過 WWW 的方式訪問 ASP 程式了。要學好 ASP 程式的設計,必須掌握腳本的編寫,那麽究竟什麽是腳本呢?其實腳本是 由一系列的腳本命令所組成的,如同一般的程式,腳本可以將一個值賦給 一個變數,可以命令 Web 伺服器發送一個值到客戶瀏覽器,還可以將一系 列命令定義成一個過程。要編寫腳本,你必須要熟悉至少一門腳本語言, 如 VBScript。腳本語言是一種介於 HTML 和諸如 JAVA、Visual Basic、C++ 等編程語言之間的一種特殊的語言,儘管它更接近後者,但它卻不具有編 程語言複雜、嚴謹的語法和規則。如前所述 ASP 所提供的腳本運行環境可 支援多種腳本語言,譬如:JScript、REXX、PERL 等等,這無疑給 ASP 程式 設計者提供了廣泛的發揮餘地。ASP 的出現使得廣大 Web 設計者不必在爲客 戶瀏覽器是否支援而擔心,實際上就算在同一個.asp 文件中使用不同的腳 本語言,都無須爲此擔憂,因爲所有的一切都將在伺服器端進行,客戶瀏 覽器得到的只是一個程式執行的結果,而你也只需在文件中聲明使用不同 的腳本語言即可。 ASP 的物件和元件: 1.ASP 有 7 個固有物件 這 7 個固有物件分別是 Request、Response、Server、Application、 Session、ASPError 和 ObjectContext。 Request 物件用來處理用戶做出的請求,就是處理用戶要求瀏覽器查看 特定的網頁或 Web 應用時做出的請求。此請求可以 HTML 的形式輸入或僅以 URL 的形式作出。Response 物件用來處理從 Web 伺服器向用戶發送資訊並 對此資訊進行控制。 5 逢甲大學 e-Paper (92學年度).

(9) 網路教學-資料結構. Serve 物件用來代表伺服器自身。因此它提供幾個與 Web 伺服器可能要 完成的任務相關的常用功能,諸如建立新物件和設置腳本的超時特性等。 還有通過將不合法字元轉化爲合法字元,把字串轉換爲 URL 和 HTML 正確的 使用格式的方法。 Application 物件用來代表應用,可用它來管理諸如應用目錄這一類的 東西。 Session 物件用來代表用戶會話,並存儲該會話的資訊。可利用 Session 物件來管理如 Web 伺服器在用戶“請求"之間等待的時間等。 ObjectContext 物件用來管理事務處理。它目前已經集成到 Windows2000 作業系統中了。它包含了所有 ASP 其他物件,可通過 ObjectContext 引用 ASP 的每個物件。 ASPError 物件包含 ASP 腳本或 asp.dll 本身産生的任何錯誤的詳細內 容。 2.Microsoft Data Access Component MDAC 作爲作業系統的組成部分的元件,與 ASP 一起提供。此元件中包 含一組稱爲 ActiveX Data Object(ADO)的物件,他們對於查看不同平臺上 的各種資料(資料庫、表單、文字檔案)是必不可少的。ADO 主要有 3 個物 件,分別是 Connection、Command 和 Recordset。 Connection 物件就是使 ADO 與資料庫之間建立一個通道,也就是實現 與資料庫的連接。 Command 物件就是對資料庫進行發號施令,比如建立新的索引,執行查 詢等,它可以通過標準的 SQL 資料庫操作語言得以實現。 Recordset 物件是一個資料記錄集,它包含了我們檢索出來的記錄資 料,通過它可以直接對資料庫進行修改。 3.活動伺服器元件 活動伺服器元件是與 ASP 一起免費帶來的元件或 DLL,他們有著廣泛的 用途。主要包括 AD Rotator、Browser Capabilities、Content Link、Content Rotator、Counters、logging Utility、MyInfo、Page Counter、permission Checker、tools 等元件。由於本次設計用到的不多,在此就不詳細介紹了 4.ASP 腳本物件 他們分別是 Dictionary、FileSystemObject 和 TextStream.由於本設 計用到的也不多,在此就不詳細介紹了。 6 逢甲大學 e-Paper (92學年度).

(10) 網路教學-資料結構. 1.2 SQL 語句介紹 SQL 全稱是“結構化查詢語言(Structured Query Language)",最早 的是 IBM 的聖約瑟研究實驗室爲其關聯資料庫管理系統 SYSTEM R 開發的一 種查詢語言,它的前身是 SQUARE 語言。SQL 語言結構簡潔,功能強大,簡 單易學,所以自從 IBM 公司 1981 年推出以來,SQL 語言,得到了廣泛的應 用。如今無論是像 Oracle ,Sybase,Informix,SQL server 這些大型的資料 庫管理系統,還是像 Visual Foxporo,PowerBuilder 這些微機上常用的資 料庫開發系統,都支援 SQL 語言作爲查詢語言。 Structured Query Language 包含 4 個部分: ☆資料查詢語言 DQL-Data Query Language SELECT ☆據操縱語言 DQL-Data Manipulation Language INSERT, UPDATE, DELETE ☆資料定義語言 DQL-Data Definition Language CREATE, ALTER, DROP ☆資料控制語言 DQL-Data Control Language COMMIT WORK, ROLLBACK WORK. 1.2.1 SQL 的優點 SQL 廣泛地被採用正說明瞭它的優點。它使全部用戶,包括應用程式 師、DBA 管理員和終端用戶受益非淺。 1.非過程化語言 SQL 是一個非過程化的語言,因爲它一次處理一個記錄,對資料提供自 動導航。SQL 允許用戶在高層的資料結構上工作,而不對單個記錄進行操 作,可操作記錄集。所有 SQL 語句接受集合作爲輸入,返回集合作爲輸出。 SQL 的集合特性允許一條 SQL 語句的結果作爲另一條 SQL 語句的輸入。 SQL 不要求用戶指定對資料的存放方法。 這種特性使用戶更易集中精力於要得 到的結果。所有 SQL 語句使用查詢優化器,它是 RDBMS 的一部分,由它決 定對指定資料存取的最快速度的手段。查詢優化器知道存在什麽索引,哪 兒使用合適,而用戶從不需要知道表是否有索引,表有什麽類型的索引。 2.統一的語言 SQL 可用於所有用戶的 DB 活動模型,包括系統管理員、資料庫管理員、 應用程式師、決策支援系統人員及許多其他類型的終端用戶。基本的 SQL 命 令只需很少時間就能學會,最高級的命令在幾天內便可掌握。 SQL 爲許多 工提供了命令,包括: 7 逢甲大學 e-Paper (92學年度).

(11) 網路教學-資料結構. ☆查詢資料 ☆在表中插入、修改和刪除記錄 ☆建立、修改和刪除資料物件 ☆控制對資料和資料物件的存取 ☆保證資料庫一致性和完整性 以前的資料庫管理系統爲上述各類操作提供單獨的語言,而 SQL 將全部任務統一在一種語言中。 3.是所有關聯資料庫的公共語言 由於所有主要的關聯資料庫管理系統都支援SQL語言,用戶可將使用 SQL的技能從一個RDBMS轉到另一個。所有用SQL編寫的程式都是可以移植 的。SQL是PostgreSQL(和大多數其他關係型數據庫)用做查詢語言的語言。 它是可以移植的,並且容易學習使用。但是所有SQL語句都必須由資料庫伺 服器獨立地執行。這就意味著用戶端應用必須把每條查詢發送到資料庫伺 服器,等待它處理這個查詢,接收結果,做一些運算,然後給伺服器發送 另外一條查詢。所有這些東西都會産生進程間通訊,並且如果用戶端在另 外一台機器上甚至還會導致網路開銷。如果使用了 PL/pgSQL,那麽可以把 一塊運算和一系列查詢在資料庫伺服器裏面組成一個塊,這樣就擁有了過 程語言的力量並且簡化SQL的使用,因而節約了大量的時間,因爲用不著付 出用戶端/伺服器通訊的過熱。通過使用PL/pgSQL,應用可以獲得可觀的性 能提升。. 1.2.2 SQL 的使用 1.ASP 與 Access 資料庫連接: <%@language=VBscript%> <% dimconn,mdbfile mdbfile=server.mappath("資料庫名稱.mdb") setconn=server.createobject("adodb.connection") conn.open"driver={microsoftaccessdriver 8 逢甲大學 e-Paper (92學年度).

(12) 網路教學-資料結構. (*.mdb)};uid=admin;pwd=資料庫密碼;dbq="&mdbfile %> 2.ASP 與 SQL 資料庫連接: <%@language=VBscript%> <% dimconn set conn=server.createobject("ADODB.connection") conn.open"PROVIDER=SQLOLEDB;DATA SOURCE=SQL 伺服器名稱或 IP 地址;UID=sa;PWD=資料庫密 碼;DATABASE=資料庫名稱 %> 建立記錄集物件: setrs=server.createobject("adodb.recordset") rs.openSQL 語句,conn,3,2 3.SQL 常用命令使用方法: (1)資料記錄篩選: sql="select*from 資料表 where 欄位名=欄位值 orderby 欄位 名[desc]" sql="select*from 資料表 where 欄位名 like'%欄位值 %'orderby 欄位名[desc]" sql="selecttop10*from 資料表 where 欄位名 orderby 欄位名 [desc]" sql="select*from 資料表 where 欄位名 in('值 1','值 2',' 值 3')" sql="select*from 資料表 where 欄位名 between 值 1and 值 2" (2)更新資料記錄: sql="update 資料表 set 欄位名=欄位值 where 條件運算式" sql="update 資料表 set 欄位 1=值 1,欄位 2=值 2……欄位 n= 值 nwhere 條件運算式 (3)刪除資料記錄: sql="deletefrom 資料表 where 條件運算式" sql="deletefrom 資料表"(將資料表所有記錄刪除) (4)添加資料記錄: 9 逢甲大學 e-Paper (92學年度).

(13) 網路教學-資料結構. sql="insertinto 資料表(欄位 1,欄位 2,欄位 3…)values(值 1,值 2,值 3…)" sql="insertinto 目標資料表 select*from 源資料表"(把源資 料表的記錄添加到目標資料表) (5)資料記錄統計函數: AVG(欄位元名)得出一個表格欄平均值 COUNT(*¦欄位名)對資料行數的統計或對某一欄有值的資料行 數統計 MAX(欄位元名)取得一個表格欄最大的值 MIN(欄位元名)取得一個表格欄最小的值 SUM(欄位名)把資料欄的值相加 引用以上函數的方法: sql="selectsum(欄位名)as 別名 from 資料表 where 條件運算 式" setrs=conn.excute(sql) 用 rs("別名")獲取統的計值,其他函數運用同上。 (5)資料表的建立和刪除: CREATETABLE 資料表名稱(欄位 1 類型 1(長度),欄位 2 類型 2(長度)……) DROPTABLE 資料表名稱(永久性刪除一個資料表) 4.記錄集物件的方法: rs.movenext 將記錄指標從當前的位置向下移一行 rs.moveprevious 將記錄指標從當前的位置向上移一行 rs.movefirst 將記錄指標移到資料表第一行 rs.movelast 將記錄指標移到資料表最後一行 rs.absoluteposition=N 將記錄指標移到資料表第 N 行 rs.absolutepage=N 將記錄指標移到第 N 頁的第一行 rs.pagesize=N 設置每頁爲 N 條記錄 rs.pagecount 根據 pagesize 的設置返回總頁數 rs.recordcount 返回記錄總數 rs.bof 返回記錄指標是否超出資料表首端,true 表示是, false 爲否 rs.eof 返回記錄指標是否超出資料表末端,true 表示是, 10 逢甲大學 e-Paper (92學年度).

(14) 網路教學-資料結構. false 爲否 rs.delete 刪除當前記錄,但記錄指標不會向下移動 rs.addnew 添加記錄到資料表末端 rs.update 更新資料表記錄. 1.3 VBScript 介紹 Microsoft Visual Basic Scripting Edition 是程式開發語言 Visual Basic 家族的最新成員,它將靈活的 Script 應用於更廣泛的領域,包括 Microsoft Internet Explorer 中的 Web 客戶機 Script 和 Microsoft Internet Information Server 中的 Web 伺服器 Script。 VBScript 使用 ActiveX™ Script 與宿主應用程式對話。使用 ActiveX Script,瀏覽器和其他宿主應用程式不再需要每個 Script 部件的特殊集成 代碼。ActiveX Script 使宿主可以編譯 Script、獲取和調用入口點及管理 開發者可用的命名空間。通過 ActiveX Script,語言廠商可以建立標準 Script 運行時語言。Microsoft 將提供 VBScript 的運行時支援。Microsoft 正在與多個 Internet 組一起定義 ActiveX Script 標準以使 Script 引擎可 以互換。ActiveX Script 可用在 Microsoft® Internet Explorer 和 Microsoft® Internet Information Server 中。 VBScript 只有一種資料類型,稱爲 Variant。Variant 是一種特殊的 資料類型,根據使用的方式,它可以包含不同類別的資訊。因爲 Variant 是 VBScript 中唯一的資料類型,所以它也 VBScript 中所有函數的返回值 的資料類型。最簡單的 Variant 可以包含數位或字串資訊。Variant 用於數 位上下文中時作爲數位處理,用於字串上下文中時作爲字串處理。這就是 說,如果使用看起來像是數位的資料,則 VBScript 會假定其爲數位並以適 用於數位元的方式處理。與此類似,如果使用的資料只可能是字串,則 VBScript 將按字串處理。當然,也可以將數位包含在引號("")中使其成爲 字串。除簡單數位或字串以外,Variant 可以進一步區分數值資訊的特定含 義。例如使用數值資訊表示日期或時間。此類資料在與其他日期或時間資 料一起使用時,結果也總是表示爲日期或時間。當然,從 Boolean 值到浮 點數,數值資訊是多種多樣的。Variant 包含的數值資訊類型稱爲子類型。 大多數情況下,可將所需的資料放進 Variant 中,而 Variant 也會按照最 適用於其包含的資料的方式進行操作。聲明變數的一種方式是使用 Dim 語 11 逢甲大學 e-Paper (92學年度).

(15) 網路教學-資料結構. 句、Public 語句和 Private 語句在 Script 中顯式聲明變數。 另一種方式是通過直接在 Script 中使用變數名這一簡單方式隱式聲明 變數。這通常不是一個好習慣,因爲這樣有時會由於變數名被拼錯而導致 在運行 Script 時出現意外的結果。因此,最好使用 Option Explicit 語句 顯式聲明所有變數。 1.過程 在 VBScript 中,過程被分爲兩類:Sub 過程和 Function 過程。 (1)Sub 過程 Sub 過程是包含在 Sub 和 End Sub 語句之間的一組 VBScript 語句,執 行操作但不返回值。Sub 過程可以使用參數(由調用過程傳遞的常數、變數 或運算式)。 (2)Function 過程 Function 過程是包含在 Function 和 End Function 語句之間的一組 VBScript 語句。Function 過程與 Sub 過程類似,但是 Function 過程可以 返回值。Function 過程可以使用參數(由調用過程傳遞的常數、變數或運 算式) 。如果 Function 過程無任何參數,則 Function 語句必須包含空括弧 ()。Function 過程通過函數名返回一個值,這個值是在過程的語句中賦給 函數名的。Function 返回值的資料類型總是 Variant。 2.VBScript 中可使用下列迴圈語句: ☆Do...Loop:當(或直到)條件爲 True 時迴圈。 ☆While...Wend:當條件爲 True 時迴圈。 ☆For...Next:指定迴圈次數,使用計數器重復運行語句。 ☆For Each...Next:對於集合中的每項或陣列中的每個元素,重復 執行一組語句。 3.在 VBScript 中可使用以下條件語句: ☆If...Then...Else 語句 ☆Select Case 語句. 12 逢甲大學 e-Paper (92學年度).

(16) 網路教學-資料結構. 第二章. 需求分析. 要實現一個軟體系統,首先應該進行需求分析,這樣才能令設計出的 軟體滿足用戶的各項功能。下面就對線上考試系統的設計進行需求分析。. 2.1 系統需要解決的主要問題 首先,因爲考試是面向特定的某些物件的,所以考試者進入系統應該 進行身份驗證。考試者進入考試系統後,應該能根據自己的需要選擇考試 科目,所以該系統還應具有考試科目選擇的功能。線上考試於一般的單機 考試是不同的。鑒於考試環境一般爲機房,考試者之間的距離很近,爲了 線上考試做到規範,對於每個應試者來說,試卷的試題和題量都應是相同 的,但試題並不相同。線上考試基於網路環境,試卷應該從伺服器的資料 庫隨機抽取試題後動態生成的。另外,系統還應該對考試時間進行控制, 時間到了會要求考試者交卷。考試者選擇答案提交後,應該由電腦自動判 卷,得到成績後顯示出來。考試完畢後,可以返回登錄介面或繼續考試。 此外,應該能夠方便、快捷的對線上考試系統管理,此外,用戶還應能進 行遠端註冊。. 13 逢甲大學 e-Paper (92學年度).

(17) 網路教學-資料結構. 2.2 系統應該具備的基本功能 ☆用戶註冊:用戶可以進行註冊,然後登錄。 ☆用戶資訊的管理:管理員可以增刪用戶 ☆試題模型設置:設置各科目試題的每種題型的數量和分數。 ☆試題庫管理:分科目,對基本、應用兩種題型試題庫的管理,使試 題的增刪、編輯更爲簡便。 ☆試卷生成:可以指定試卷的各題型的數量,從試題庫裏隨機抽取試 題生成一份原始試卷。 ☆線上考試:系統嚴格控制整個考試過程,實行時間的監控與許可權 的控制,考生需要在限定的考試時間內交卷。 ☆電腦自動閱卷:本系統只考慮客觀題,要求電腦能自動閱卷,然後 馬上顯示出考生分數。 ☆成績查閱:考生考完以後,管理員應該能對所有紀錄進行查詢,並 應該可以刪除指定紀錄。 除了實現上述功能以外,線上考試系統還應該具有友好、簡潔的介面, 安全性要高,穩定性要強。. 14 逢甲大學 e-Paper (92學年度).

(18) 網路教學-資料結構. 第三章. 系統總體設計. 3.1 基本簡介 該系統是專門用於用戶註冊、登錄、參加線上考試以及管理員進行試 題錄入、修改、刪除、成績查詢、管理用戶的 ASP 應用程式。它應該具有 開放性、方便性和靈活性。管理員不僅可以輕鬆地向題庫添加、修改和查 詢試題,而且還可以自動新增科目並建立相應的資料;它還允許用戶根據 自己的需求,選取考試科目。考生進行有效的身份驗證登錄後,選擇考試 科目,並要求在規定的時間內進行答題,當達到規定的時間後,系統將自 動予以提示。一旦考生做完交卷後便能立即看到自己的考試成績,並且其 分數將被記入庫中以供審核和查閱;另外,還可完全由電腦自動靈活、隨 機的抽取試題庫中的各類試題組成各種形式的試卷,其內容會隨著庫中試 題的改變而改變,而且,不同的考生生成的試題是不同的。 用戶可以是學校等單位的教師及學生和企事業單位的培訓部門(因企 事業單位每年要對員工進行素質、安全教育與技能等方面的培訓及考試 等) 。. 3.2 運行環境與系統結構 爲了保證系統運行的效率和可靠性,系統伺服器端應具有較高的軟硬體 配置,用戶端的要求不是很高。此應用程式可廣泛運行於國際互聯網即 Internet,也可適用於內部的局域網。其運行要求如下: 3.2.1 ☆軟體配置: 用戶端:. Windows95/98,Internet Explorer(IE)等. 伺服器端:Windows NT/Windows2000,Internet Information Server (IIS)4.0 及其以上版本,IE 等;或者 Windows98,Personal Web Server(PWS),IE 等。 資料庫:採用 access,運行於伺服器端。 ☆硬體配置: 伺服器 CPU:PIII 500 以上 ,記憶體:256M 以上 客戶機 CPU:P200MMX 以上,記憶體:32M 以上 15 逢甲大學 e-Paper (92學年度).

(19) 網路教學-資料結構. 3.2.2 系統結構圖 根據需求分析,線上考試系統的結構圖如下: 線上考試系統. 系統管理. 用戶註冊. 試題管理. 用戶管理. 科目管理. 線上考試. 管理員管理. 紀錄管理. 圖 3-1 線上考試系統結構圖. 3.3 詳細設計 詳細設計是整個設計過程中,最重要的步驟之一。下面就分如下幾個 部分對系統進行詳細設計:(1)試題設計(2)資料庫中表的設計(3)用戶、管 理員許可權(4)功能模組詳細設計(5)線上考試系統考試模組框圖. 3.3.1 試題設計 鑒於主觀題的主觀性,目前無法實現系統自動判卷,所以本系統只作 客觀題部分。一般情況下,基本題往往在四個供選的答案 A、B、C、D 中選 擇唯一正確的答案;應用題是難度比基本題高的題目設計。因而,本系統 中所涉及的基本題和應用題跟過去的大體相同。並且假設基本題一般情況 下也是最多提供四個備選答案,標準答案有一個。故題型的樣題設計如下: 基本題:password 的意思是: A、密碼 B、經過 C、單詞 D、通路 正確答案爲 A 應用題:下面的運算式爲真的有:A、1>2 C、sin(30)=1/2. B、7%5=2. D、Cint(7/5)=1. 正確答案爲 B 16 逢甲大學 e-Paper (92學年度).

(20) 網路教學-資料結構. 3.3.2 資料庫中表的設計 1.question 表結構 通常,每一類型的試題都應有一個表結構。但考慮到目前系統存貯空間 可以很大,也爲了更加方便。我們採用把全部試題集中在一起的方案來建 立資料表,每道客觀題均有四個備選答案項,每個試題均具有題型、所屬 科目等資料段表示其屬性。欄位名一般是相應的英文單詞。這樣,查詢起 來較方便,會節約時間,也不致於造成資料十分雜亂等。詳細設計如下表 所示: 表 3-1 question 表 欄位名稱. 類型. 說明. Haveselect. 數位. 常整型. ID. 自動編號. 常整型,遞增,主鍵. Question. 文本. 欄位大小 200. A. 文本. 欄位大小 50. B. 文本. 欄位大小 50. C. 文本. 欄位大小 50. D. 文本. 欄位大小 50. Answer. 文本. 欄位大小 50. Type. 文本. 欄位大小 50. Subjectname 文本. 欄位大小 50. 各欄位說明: (1)haveselect 欄位代表在隨機選題時是否已經被某用戶選過,類型爲 數位。 (2)ID 是問題的 id 號,用來唯一標誌該問題,把它設爲主鍵,類型爲 自動編號。 (3)Question 欄位爲問題內容,類型爲文本。 (4)A 欄位代表選項 A 的內容 (5)B 欄位代表選項 B 的內容 (6)C 欄位代表選項 C 的內容 17 逢甲大學 e-Paper (92學年度).

(21) 網路教學-資料結構. (7)D 欄位代表選項 D 的內容 (8)Answer 欄位表示答案選項 (9)Type 欄位表示試題類型 (10)subjectname 欄位代表試題所屬科目名稱 2.subject 表結構 表 3-2 subject 表 欄位名稱. 類型. 說明. Multiper. 數位. 常整型. Singleper. 數位. 常整型. Multinumber 數位. 常整型. Singlenumbe 數位. 常整型. r Subjectname 文本. 欄位大小 50. Testtime. 數位. 常整型. Id. 自動編號. 常整型,遞增,主鍵. 各欄位說明: (1)multiper 欄位代表在某考試科目的考試題中每個基本題的分值。 (2)singleper 欄位代表在某考試科目的考試題中每個應用題的分值。 (3)multinumber 欄位爲某科的應用題題量。 (4)singlenumber 欄位爲某科的應用題題量。 (5)subjectname 欄位代表科目名稱。 (6)testtime 欄位代表某科的考試總時間。 (7)id 欄位代表科目的 id 號。. 3.score 表結構 表 3-3 score 表 欄位名稱. 類型. 說明. Studentname 文本. 欄位大小 50. Subjectname 文本. 欄位大小 50. Score. 數位. 常整型. Id. 自動編號. 常整型,遞增,主鍵 18 逢甲大學 e-Paper (92學年度).

(22) 網路教學-資料結構. Endtime. 日期/時間. 各欄位說明: (1)studentname 欄位代表在某次考試記錄中學生的名字。 (2)subjectname 欄位代表在某次考試紀錄中考試科目名。 (3)score 欄位爲某次考試紀錄中考試分數。 (4)id 欄位爲某次考試紀錄的標誌號。 (5)endtime 欄位代表考試的結束時間。 4.student 表結構 表 3-4 student 表 欄位名稱. 類型. 說明. Studentname. 文本. 欄位大小 50. Studentpassw. 文本. 欄位大小 50. 自動編號. 常整型,遞增,主鍵. ord Id. 各欄位說明: (1)studentname 欄位代表學生的名字。 (2)studentpassword 欄位代表密碼。 (3)id 欄位爲學生的標誌號。. 5.admin 表結構 表 3-5 admin 表 欄位名稱. 類型. 說明. Name. 文本. 欄位大小 50. Password. 文本. 欄位大小 50. Id. 自動編號. 常整型,遞增,主鍵. 各欄位說明: (1)name 欄位代表管理員的名字。 (2)password 欄位代表密碼。 (3)id 欄位爲管理員的標誌號。 19 逢甲大學 e-Paper (92學年度).

(23) 網路教學-資料結構. 3.3.3 用戶、管理員許可權 ☆管理員:在此系統中可以由若干個管理員,即系統管理員。他們具 有一般用戶所沒有的許可權,即具有管理用戶、試題以及試卷等內容的權 力。它不需註冊,在資料庫有一個表來存放相關資訊,可由以存在的管理 員添加或刪除管理員。 ☆一般用戶:主要是指學校的學生和企事業單位的培訓物件等。. 3.3.4 功能模組詳細設計 下面,對各個功能模組分別進行詳細討論,具體情況見系統根源程式。. 3.3.4.1 管理模組 管理員可以向題庫中添加各種類型且符合要求的試題,也可以對它們 進行修改和刪除。同時,管理員也能對科目、用戶、考試記錄等資料進行 管理。 1. 試題管理 (1)試題錄入 首先,用戶選擇試題所屬科目。若功能表中沒有該科目,則可以新增 一個。返回、刷新一次頁面,即可看到新增的科目名稱。而且,在本系統 中其他需要選擇科目的地方也會自動更新。其次,每道試題有類型、試題 內容與選項和答案等欄目。管理員輸入完以後,即可看到預覽效果。如果 輸入不合法,或者該科題庫中已有該試題編號和內容等,則系統給出相應 的提示或警告,以待更正。 (2)試題修改 管理員還可以對試題進行修改。不過,對於各表中的主鍵不用修改, 避免了造成系統中的資料混亂,或者覆蓋其他有用資料的現象。如果用戶 執行了非法操作,則必須重新操作。 (3)試題刪除 管理員可以刪除不再需要的試題。 2. 科目管理 (1)添加科目 其基本資訊有科目名稱、題型、題量和考試總時間等,對於用戶輸入 的不符合系統要求的資料,系統仍舊給出提示或警告。 20 逢甲大學 e-Paper (92學年度).

(24) 網路教學-資料結構. (2)科目刪除 管理員可以刪除不再需要的科目。 3.用戶管理 管理員可以通過管理介面添加或刪除用戶。 4.管理管理員 管理員可以通過管理介面添加新管理員或刪除原有管理員。 5.考試記錄管理 系統中的管理員可以查詢考試記錄,也可以刪除考試紀錄。. 3.3.4.2 線上考試模組 進入線上考場是本系統最重要的部分之一。因爲一個系統如果涉及到 現實的話,就必須考慮得十分周到、完善。考生登錄後,只要選擇考試科 目以後,就可以調出試卷進行線上考試。爲了實現動態隨機不重復的抽取 試題,需要在選題過程中每選出一題,就要在試題庫中作相應的標誌,以 便下次不會重復取出此題。試卷出來後要對試題庫中的標誌位元復原。這 樣就會使每個考生的試卷都不同。考生的其答題資訊通過選按鈕選擇答案 來反映。考試結束採取自主交卷和到了規定的時間自動題示有機結合的方 式辦法予以實現。. 3.3.4.3 用戶註冊模組 該模組的功能是實現用戶遠端註冊。用戶輸入想要註冊的用戶名和密 碼,提交之後由系統判斷該用戶是否已經存在,如果存在,就給出相應資 訊,如果不存在,就把用戶輸入的用戶名和密碼寫到資料庫中,完成註冊。. 21 逢甲大學 e-Paper (92學年度).

(25) 網路教學-資料結構. 3.3.5 線上考試系統考試模組框圖 開. 始. 輸入用戶名和密碼. 是否正確. 否 是 選擇考試科目. 隨機出題形成考試卷. 答題及交卷. 判. 卷. 顯示考分. 結. 束. 圖 3-2 線上考試系統考試模組框圖 22 逢甲大學 e-Paper (92學年度).

(26) 網路教學-資料結構. 第四章. 系統實現. 在進行了整體設計以後,就開始進行詳細的設計及編碼工作。也就是設 計文件和把他們組織在一起實現所有功能。. 4.1 系統流程圖設計 根據系統總體設計,首先系統要有一個登錄介面,用戶可以從該介面登 錄參加考試。管理員也應該有一個進入管理登錄介面的通道。此外,這個 介面上還應該有一個用戶註冊的通道。 在考生正確輸入用戶名和密碼以後,接著應該進入考試科目選擇介面。 在該介面上,考生選擇參加考試的科目,這個人機交互的過程是必不可少 的。 考生確定考試科目以後,進入開始考試介面,由電腦隨機提取試題,顯 示出來組成試卷,並開始進行計時。考生再次進行考試,答完試題後交卷, 進入下一個介面。 考生提交答卷後,由電腦進行處理--判卷,得出考試分數,顯示出來, 並把該生考試記錄存入資料庫。在這個介面上應該可以返回繼續進行考試 或回到登錄介面。 以上是系統進行考試功能的部分,要對系統進行管理,如試題管理、科 目管理、用戶管理等就需要設計一些管理介面。下面就來逐步進行設計。 要進行管理首先要有管理員登陸驗證,這裏另外設計了一個介面,使它 與用戶登錄區別開來。這個介面與用戶登錄介面表面上很相似,但是他們 是從不同的表中提取資料進行驗證的,以便於系統擴充和增加安全性。 管理員登錄以後,應該有一個管理專案選擇介面,其中包括管理用戶選 項、管理管理員選項、管理考試科目選項、管理考試紀錄選項以及管理各 科試題選項。 管理用戶的介面可以實現用戶的增加、和刪除的功能,管理員在此可以 對用戶進行管理。 管理管理員的介面,功能和管理用戶的差不多,實現對管理員的增加和 刪除功能。 管理考試科目介面用來增加或刪除考試的科目,以方便對各科試題的管 理和查詢。 23 逢甲大學 e-Paper (92學年度).

(27) 網路教學-資料結構. 管理考試紀錄介面可以對考生的每次考試進行紀錄,管理員科可以對考 生成績、考試科目、時間及考試各相關紀錄進行查詢和刪除。 最後是試題庫管理介面,它根據各科進行分類。通過這個介面管理員可 以對題庫中的某科試題進行增加、修改或刪除。這樣就十分方便靈活的對 試題庫進行管理。 下圖就是系統流程圖: Register.asp. default.asp. selectsubject.asp. test.asp. result.asp. mgstudent.asp. primary.asp. mgadmin.asp. mgsubject.asp. mgscore.asp. mgquestion.asp. addquestion.asp. 圖 4-1 系統流程圖. 4.2 各文件功能介紹及詳解 1.<conn.asp> 該文件實現的是連接資料庫和斷開連接的功能。 文件中主要是定義了兩個過程 conn_init()和 endConnection()。第一 個是連接資料庫,第二個是實現斷開連接。其中 conn_init()過程中的連接 是通過下面語句實現的: connstr= "DBQ=" + server.mappath("data.mdb") + ";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" set conn=server.createobject("ADODB.CONNECTION") conn.open connstr connstr 確定了資料檔案的路徑和資料庫驅動程式。 Conn 的含義是定義了一個變數用,來存放資料庫連接所創建的物件。 24 逢甲大學 e-Paper (92學年度).

(28) 網路教學-資料結構. conn.open connstr 則真正實現了資料庫的連接。 該文件主要被包含在其他文件中實現資料庫的連接和斷開功能。 2.<default.asp> 該文件的功能是系統登陸的入口,在此可以實現用戶註冊入口,管理 員管理入口以及用戶進入考試系統登陸介面的功能。 該文件的功能使這樣實現的:表單提交給文件本身。再由 HTML 上面的 ASP 程式對提交資訊進行處理。 最上面的<%@ Language=VBScript %>表示腳本語言是 VBScript。 <!--#include file="conn.asp"-->表示包含 conn.asp 文件。以下的 程式進行了選擇判斷,如果提交的表單中的 submit 值爲“登錄",就繼續 判斷看 student 表中是否存在與該用戶輸入的用戶名和密碼相同的記錄, 如果存在就轉到 selectsubject.asp 頁進行考試科目選擇。不存在就返回 “對不起,請輸入正確的用戶名和密碼。"如果 submit 值爲“註冊",就 轉到 register.asp 頁進行用戶註冊。如果 submit 的值爲“管理"就轉到 admin 文件夾中的 login.asp 頁。重點程式如下: set rs = server.createobject("adodb.recordset") rs 是一個變數,用來存放一個 recordset 物件。 sql="select * from student where studentname='" & Request.Form("studentname") & "' and studentpassword='" & Request.Form("studentpassword") & "'" 變數 sql 代表一個 SQL 語句,功能是從表 student 中選出用戶名和密 碼與考生提交的用戶名和密碼都相同的記錄。 rs.open sql,conn,1,1 該語句的功能是執行 sql 語句並把記錄集結果存儲在變數 rs 中。 rs.close 的作用是關閉紀錄。 session("studentname")=request.form("studentname") 該句的意思是把表單提交的變數 studentname 的值賦給一個 session 物件 studentname。這個物件用來存儲用戶名,它在 該用戶對每個頁面的訪問中有效。 set rs=nothing 含義是清空 rs 變數。 call endConnection()是調用 conn.asp 中的過程,用來關閉於資料庫 的連接。 3.<register.asp> 25 逢甲大學 e-Paper (92學年度).

(29) 網路教學-資料結構. 該文件實現了用戶註冊的功能,用戶只要填寫想要註冊的用戶名及密 碼,文件首先查看用戶名是否已經存在,如果存在就提示該用戶名已經存 在,否則就將用戶輸入的資訊添加到資料庫中的 student 表內。然後用戶 就可以使用自己註冊的用戶名和密碼登錄線上考試系統進行線上考試。 在文件中,表單提交給 register.Asp 自身進行處理,如果 submit 值 爲“註冊"首先進行判斷看用戶名或密碼是否爲空。如果爲空就顯示“錯 誤!用戶名或密碼不能爲空!"的資訊。如果不爲空,進行下一步判斷,看 student 表中是否已經存在用戶想要註冊的用戶名,如果存在,就顯示資訊 “錯誤!該用學生存在!",如果不存在就將要註冊的用戶名和密碼寫入 student 表。代碼如下: sql="insert into student(studentname,studentpassword) values('" & cstr(trim(request("studentname"))) & "','" & cstr(trim(request("studentpassword"))) & "')" conn.execute sql 最後,用一個 Vbscrip 語言編寫的訊息方塊顯示註冊成功資訊。 4.<selectsubject.asp> 該文件是實現用戶登錄線上考試系統後進行考試科目選擇的功能,選 擇科目後進入考試介面。 該文件首先是將 subject 表中所有的紀錄都以單選項的方式選出來, 如果沒有紀錄,則顯示“對不起,暫時沒有任何考試科目。"用戶按提交 後,表單仍然提交給文件自身。處理程式首先判斷用戶是否選擇了一個考 試科目,如果沒有選擇顯示“你沒有選擇考試科目,請選擇考試科目!" 如果選擇了某個考試科目,先把該科目賦值給一個 session 變數 selectsubjectname,然後從 subject 表中選出該科的相關資訊,並也都設 成 session 變數。Singlenumber 表示基本試題數量,multinumber 表示應 用試題數量,singleper 表示基本試題分值,multiper 表示應用試題分值, testtime 表示考試總時間。接著進入考試介面。 5.<test.asp> 該文件就是考試介面,實現真正的動態隨機選題,並對每個考生的考 試時間進行監控,到結束時間後自動給出提示。 該文件的總體構架是使用了 if else 語句進行了一個選擇,剛進入該 頁面 submit1 得值肯定不等於“開始考試",所以先顯示出“開始考試" 的按鈕。按下以後,首先把當前時間以分種爲單位存儲在 session 的變數 26 逢甲大學 e-Paper (92學年度).

(30) 網路教學-資料結構. starttime 中。然後進入隨機抽取試題部分,基本題和應用題的抽取很相 似,只不過一個是單選按鈕,一個是單選按鈕罷了。這裏只解釋基本題的 部分。 strid1=""是定義了一個字串變數,並先賦值爲空。 Randomize 是産生隨機種子,在使用 rnd()函數之前一定要先用 Randomize 産生隨機種子才能實現其産生 0~1 之間亂數的功能。 for i=1 to session("singlenumber")直到 next 是選擇 singlenumber (代表某科目的基本題數量)個基本題。 下面的代碼實現了從資料庫中隨機不重復的選題: set rs=server.createobject("adodb.recordset") sql="select * from question where subjectname='"&session("selectsubjectname") & "'and type='基本題' and haveselect=0 " rs.open sql,conn,3,2 count=rs.recordcount temp=fix(count*rnd(10)) rs.move temp rs("haveselect")=1 rs.update strid1=strid1 & rs("ID") & "," 其中 haveselect 標誌某題是否已經被選過。 Count 變數用來存放所有未被選過的基本題的總數。 temp 變數用來存放 0~Count 之間的隨機整數值。 rs.move temp 是將當前記錄移到第 temp 條紀錄。 rs("haveselect")=1 是將當前選出的紀錄的標誌位元設爲 1,然後用 rs.update 把資料庫中的相應標誌位元改爲 1。 strid1=strid1 & rs("ID") & ","是將所有選出的試題的 id 號用逗號 分割後存儲在 strid1 一個變數中,以方便的把所有選出的試題的 id 號傳 到 result.Asp 文件中,這也是本設計的一個獨特的地方。需要說明的是 strid1 變數的最後是一個逗號,在下一個文件中會詳細說明如何進行處理。 set rs=server.createobject("adodb.recordset") sql="select * from question where haveselect=1 " rs.open sql,conn,3,2 27 逢甲大學 e-Paper (92學年度).

(31) 網路教學-資料結構. rs.movefirst do while. not rs.eof. rs("haveselect")=0 rs.update rs.movenext loop 上面一段程式是在選完題之後將所有已經設成 1 的 haveselect 改寫成 0,這樣自己下次或別人就仍可以選擇所有的試題。 最後一段程式是用來計時的,考試時間到了之後自動給出提示。 6.<result.asp> 考生提交答卷以後,該文件就把考生的答案同 question 表中的正確答 案進行比較,最後得出考生的得分。 首先是變數賦值,取得 session 物件的一些變數值,以方便使用。 endtime=now()是去的考試結束時間。 selectstr1=request.form("hidQuestID1")和 selectstr2=request.form("hidQuestID2")是獲取存放被選基本和應 用試題的 id 號的兩個字串。 len1=len(selectstr1)和 len2=len(selectstr2)是取得兩個字串的長度。 str1=left(selectstr1,len1-1) str2=left(selectstr2,len2-1)是把兩個字串的結尾(也就是逗號)取 掉。 dim id1,id2 id1=split(str1,",") id2=split(str2,",")是用 split()函數將存有 id 號的字串拆開並存 放到陣列當中,以便調用。 以上就實現了所有被選中的試題的 id 號的傳遞。 下面這段程式就實現了基本試題的答案於正確答案的比較,並得出基本 題應得分數。 for i=1 to singlenumber result=request.form("no"&id1(i-1)) if. not isempty(result) then. sql="select * from question where id="& clng(id1(i-1)) 28 逢甲大學 e-Paper (92學年度).

(32) 網路教學-資料結構. set rs=server.createobject("adodb.recordset") rs.open sql,conn,3,2 if result=rs("answer") then score=score+cint(singleper) end if rs.close set rs=nothing else end if next 應用題與基本題程式基本相同,這裏就不贅述了。 接著就是將考試結果紀錄存入 score 表中,並對考生顯示出考試成績。 上面是線上考試系統考試部分的程式及其解釋,該部分是系統最主要 的部分,所以解釋得比較詳細。管理部分很多文件功能都很相似,這裏就 只挑功能最全又比較重要的文件作以解釋。 (這些文件都放在 admin 文件夾 下) 7.<primary.asp> 該文件實現的功能是管理員選擇進行管理的專案,也就是管理主介面。 8.<mgstudent.asp> 該文件實現對用戶進行管理(刪除或添加)的功能。 9.<mgadmin.asp> 該文件實現對管理員進行管理(刪除或添加)的功能。 10.<mgsubject.asp> 該文件的功能是實現對考試科目及相關參數(如考試時間、基本及應 用題量)進行管理。 11.<mgscore.asp> 該文件的功能是對考試記錄進行查詢或刪除。 12.<mgquestion.asp> <mgquestion.asp>和<addquestion.asp>兩個文件和起來實現對試題 庫進行刪除修改和添加的功能。 subjectname=trim(request("subjectname"))是將上一個介面傳來的 科目名稱賦值給 subjectname 變數。 set rs=server.createobject("adodb.recordset") 29 逢甲大學 e-Paper (92學年度).

(33) 網路教學-資料結構. rs.open "select * from question where subjectname='" & cstr(trim(request("subjectname")))&"' order by id desc ",conn,1,1 上面這段代碼是從 question 表中將所有其科目名與所選科目相同的問 題都選出來。 <a href='mgquestion.asp?type=<%=trim(rs("type"))%> &subjectname=<%=trim(rs("subjectname"))%>&action=edit&id=<%=trim (rs("id"))%>&page=<%=request("page")%>'>編輯</a>&nbsp<a href='javascript:SureDel(<%=rs("id")%>)'>刪除</a> 上面這段代碼的的作用是將刪除的參數傳給文件自身或將編輯的參數 傳給 SureDel(id,subjectname)函數。 如果實執行刪除操作就轉到 SureDel(id,subjectname),提示是否真的 要刪除,如果選擇確定就執行如下代碼: sql="delete from question where id=" &request("id") conn.execute sql 執行刪除該問題的操作,將 question 表中的相應記錄刪除。否則,如 果選擇取消就不執行刪除操作。 如果執行編輯同樣將參數傳給文件自身,先執行下面代碼將 isedit 的 值設爲真: if request("action")="edit" then isedit=true end if 文件最下面是編輯試題或添加試題部分,表單提交給 addquestion 進 行處理。 13.<addquestion.asp> 首先將表單傳過來的各個參數值賦給不同的變數,以便於使用。然後 判斷 question,subjectname,answer 和 leixing 四個變數是否爲空,如果 爲空顯示錯誤資訊。不爲空就進行判斷,看是修改問題還是添加問題,分 別進行相應處理(修改 question 表中的記錄或向其中添加記錄) ,然後返 回到 mgquestion.asp 頁面。. 4.3 調試過程中遇到的主要問題和解決辦法 在系統調試的過程中主要遇到三個比較困難的問題: 第一個就是如何實現在隨機選題的同時保證不重復,本設計最後使用了 在 question 表中設置了一個 haveselect 欄位來標誌選過的紀錄的辦法來 30 逢甲大學 e-Paper (92學年度).

(34) 網路教學-資料結構. 解決。 第二個就是如何將 test.asp 中所有試題的 id 號傳到 result.asp 頁 中。因爲試題數是變值,用一般的使用變數方式實行不通的。本設計採用 了將 id 號以逗號分隔存在字串變數中,然後到 result.asp 頁面用 split() 函數拆開存放到陣列中的辦法進行解決。 第三個就是問題在編輯之後就無法再選出來了,最後發現是因爲編輯之 後科目名的前面會有空格,所以會無法選出。解決的辦法是使用 trim()函 數將空格去掉。. 4.4 系統測試 本系統經先進行各模組測試,經過修改和調整通過以後,進行總體測 試。測試結果各項功能均已經或基本達到設計要求。. 4.5 工作進度 此專題的工作進度如表 4.5.1 所示:. 92 年 5. 蒐集資料 系統設計 學習軟體. 6. 7. 8. 9. 10. 11. 12. 1. 2. 3. 4. ***** ***** *****. 資料整理. ********. 編輯教材. ********. 登入系統. 93 年. ****** *****. 網頁動畫. *****. 教材製作 題庫建製. *****. 留言版 系統整合. ***** *****. 系統修正. *****. 完成. *****. 表 4.5.1 工作進度表. 31 逢甲大學 e-Paper (92學年度).

(35) 網路教學-資料結構. 第五章. 專題製作之心得. 此章節為對專題製作後的心得感想。 陳藤平 這次的專題實作終於要告一段落,準備發表了,看到之前的製作過程, 使我感覺到要完成一件事情並不是以前所想像的那麼簡單,從最早的資料 收集,一開始所找的題庫題目都不太一致,所以導致資料較沒有相關性, 幸好我所選擇的資料結構的指標,陣列,結構,函數它們之間都有相互使 用到的地方,可以解決這個問題,再來題庫的製作,就是最傷腦筋的地方 ,因為要讓各別程式庫之間能相關連,使得程式能夠跑得出來,就花費了 不少的時間跟體力和腦力,幸好最後能夠一一解決,還有管理者與登入者 介面的設定,題庫的設計使用方法,這些都困擾著我該如何從無到有一一 克服,因為我是從大學開始才接觸使用電腦的,所以有一些較困難的程式 設計方面如資料庫的使用建立關聯到題庫的內容製作,自己花了很多時間 去了解。 在我收集了學習測驗中題目的設定內容的過程中,也了解到一些有關 CAI 的知識,題庫的製作過程,flash ,ASP 應用軟體的使用過程,的確讓 我學習到不少知識,經驗,希望將來在進入這個多元化社會之中,能夠把 所學習到的一切應用出來,以感謝這段期間老師辛苦的教導。. 32 逢甲大學 e-Paper (92學年度).

(36) 網路教學-資料結構. 參考資料 1.王國榮著:ASP 網頁製作教本,旗標出版社:P36~P54、P126~P133, P190~P195。 2.劉禾、蔡鋒編著:ASP. 架站技巧,文魁資訊:P16~P25、P57~P72、. P132~P138。 3.陳會安著:ASP. 網頁製作徹底研究,旗標出版社:P25~P38、P69~P85、. P136~P142、P253~P259。 4.鄧文淵 、陳惠貞、陳俊榮編著:ASP 網頁與資料庫設計,松岡電腦圖書: P11~P19、P49~P56、P136~P142、P166~P170。 5.周冠中、林佩琁、陳建忠編著: 最新 HTML 語法與網站設計實務,博碩文 化股份有限公司:P25~P36、P89~P96、P125~P134、P137~P148。 6.簡聰海編著:Turbo C 程式設計剖析,全華科技圖書股份有限公 司:P26~P39、P124~P134。 7. 洪錦魁、陳會安編著:看程式實例學資料結構使用 Turbo C,文魁資訊 股份有限公司:P26~P56、P125~P138。 8. 劉凱編著:資料結構綜合整理,鼎茂圖書出版有限公司:P15~P39、 P56~P76、P89~P92。 9.王明習編著:資料結構,全華科技出版:P28~P39、P67~P87、P157~P167。 10.蔡明志編著:資料結構使用 C 語言,華泰文化出版:P35~P48、P68~P78。 11.蘇維雅譯:資料結構使用 C 語言,松崗出版:P36~P48、P69~P77、P88~P97。 12. 何東隆、李美真編著:Flash5 動感世界 基礎應用,文魁出版:P26~P39、 P 56~P89。 13.何東隆、李美真編著:Flash5 動感世界 進階應用, 文魁出版:P26~P59、P89~P105、 P112~P134。 14. 網戀工作室編著:Flash5 網頁特效超圖解,博碩文 化出版:P28~P59、P115~P167。 15.榮欽科技主筆室:最新 ASP 入門,松崗出版社:P29~P56、P98~P145、 33 逢甲大學 e-Paper (92學年度).

(37) 網路教學-資料結構. P157~P168。 16 李勁 編著:精通 ASP 資料庫程式設計,文魁資訊股份有限公司:P16~P21、 P29~P37、P49~P59。. 34 逢甲大學 e-Paper (92學年度).

(38)

參考文獻

相關文件

• (語文)術語學習 無助學生掌握有關概念,如 果教師只灌輸術語的定義,例如何謂「動

通過蒐集學生在各方面(包 括學習 過程和結果 )的學習 顯證,然後詮釋資料,判斷 學生的表現,藉以向學生、.

•比起單調地教授語音知識,不同的聽、説 活動更能激發學生學習的興趣,如把語音

在這一節中,我們將學習如何利用 變數類 的「清 單」來存放資料(表 1-3-1),並學習應用變數的特

Private Sub Form_Click() MsgBox Combo1.ListCount MsgBox Combo1.ListIndex..

問題類型 非結構化問題 結構化問題 結構化問題 結構化問題 學習能力 不具學習能力 不具學習能力 自錯誤中學習 自錯誤中學習 學習能力 不具學習能力 不具學習能力

二、 學 與教: 第二語言學習理論、學習難點及學與教策略 三、 教材:.  運用第二語言學習架構的教學單元系列

大學教育資助委員會資助大學及絕大部分專上院 校接納應用學習中文(非華語學生適用)的「達 標」