第一篇:在線考試系統的設計與實現
在線考試系統的設計與實現
摘要:在線考試系統因其方便、靈活、準確等特點,已成為普遍使用的一種考試方式。本在線考試系統具有自組試題、設置考試策略、考生考試、客觀題自動評分等多種功能。
關鍵詞:在線考試 考試策略 隨機算法
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1007-9416(2011)11-0158-02
1、引言
在教學中,考試是一個非常重要的環節,它可以真實地檢測出學生對所學知識面的掌握程度。在傳統的考試里, 教師為找試題、設計試卷、印刷、評卷等花費大量時間和精力。使用在線考試系統,教師平時可以收集相關的試題,建立起試題庫,考試時出卷將變得輕松,也為評卷、統計成績帶來更大的便捷與準確。因此,我們有必要研究在線考試系統的建設,使其能盡快在各種考試中發揮作用。
2、系統設計
2.1 用例分析
2.1.1 角色識別
在線考試系統的角色分為三類,他們分別是: 考生、教師、管理員。這三類角色的描述如表1所示。
2.1.2 用例識別
考生相關用例[1]:(如圖1所示)
在線考試:考生按考號和密碼進入系統,系統根據出題策略隨機生成試卷;考試結束前15分鐘系統給出時間方面的提示,考試時間結束而考生沒有提交試卷,試卷可以自動保存且自動提交。
查詢成績:考生根據考號和姓名查看自己的考試成績,并能查看考試的答卷和得分情況。
教師相關用例:(如圖2所示)
試題庫管理:試題庫包括單選題、填空題、判斷題和程序題等,且具有擴展性,能使其他題型加入;每道試題可設置相應的難易度;
考試策略管理:管理考試的科目、題型、分值和難易度;
試卷批改:教師只需要批改主觀題(填空題和程序題),客觀題(單選題和判斷題)由系統自動批改;
成績統計:按班級、科目對考試成績進行統計。
管理員相關用例:(如圖3所示)
班級管理:對班級信息增加、修改和刪除操作,班級不能重名;
教師管理:管理員分配給教師賬號、密碼和相應的權限;
考生管理:對考生信息增加、修改和刪除操作,考生學號必須唯一;
科目管理:對需要考試的科目增加、修改和刪除操作,科目編號必須唯一。
2.2 系統實體類
試卷類:由試題、科目、考生答題信息等組成;
出題策略類:包括該試卷各種類型題目的數量,分值,難度系數;
試題類:由試題編號、試題內容、所屬科目、選項
1、選項
2、選項
3、選項
4、答案組成;
科目類:由科目編號、科目名稱組成;
考生類:由考生ID、班級ID、姓名、郵箱組成;
班級類:由班級ID,班級名稱組成。
2.3 活動圖
活動圖主要用于分析工作的流程和處理多線程應用等場合[2]。考生登錄進入考試系統,如果登錄成功,選擇考試科目,如果登錄不成功,則返回登錄界面;根據選擇的考試科目,抽取考試策略,根據抽取的考試策略自動生成試卷,如果考試策略沒有啟用,則顯示相關信息并結束這次考試;考生考試結束后提交試卷,試卷提交時并自動給客觀題打分。
3、系統實現
3.1 正常考試頁面
3.1.1 使用的數據庫組件
考試頁面使用了一個Internet培訓教程表。在系統考試頁面里需要引用這個表的試題題型、試題分數、試題、答案等字段,考試頁面會將這些有效信息讀取出來,然后顯示給考生,保存到暫時試卷表中。同時,也使用了成績登記表,引用這個表的考生名、密碼、成績、試卷名稱、當前狀態等字段,目的是為了修改考生的當前狀態,以達到對考生狀態進行控制的目的,從而判斷考生是否斷線以及為批改試卷做準備。
3.1.2 實現技術
生成試卷的單項選擇題中,特別要強調的是設計的隨機算法。在整個試題表的單項選擇總題數所形成向量數組中,生成一個我們需要的試題數的向量表,然后將兩者進行對比,從而讀出總試題表中的題目來。其中,生成的試題數組必須滿足在總試題表的數組里面。
imax=dxt1
iget=5
Dim S1(4),n,iRnd, bFlag, bflag1
bFlag1 = True
bFlag = True
n=0
Do While n < iget
Randomize
iRnd=Int(imax*Rnd(imax)+0)+1
If bFlag = True Then
S1(0)=iRnd
bFlag =False
n=n+1
Else
bFlag1 = True
i=0
Do While i < n
If iRnd=S1(i)Then
bFlag1 = False
Exit Do
End If
i=i+1
Loop
有了上面的試題數組,接著要做的就是讀取試題,并且把試題保存在暫時表中。如果該單項選擇題的題號與我們剛才生成的試題數組有重復,那么將該試題讀取出來,顯示在頁面上,同時保存在數據庫中。如果題號不匹配,則繼續往下查找。
3.2 批改頁面
3.2.1 使用的數據庫組件
系統批改頁面使用了一個系統暫時試卷表。在系統登錄頁面里需要引用這個表的試題類型、試題題目、試題分數、考生答案、以及試題答案等字段,先是讀取試題類型以及考生答案,然后將考生答案跟試題答案進行對比,從而判定考生答案正確與否。
系統判分頁面同時使用了成績登記表,是為了將考生最后的成績寫入到表中,同時將考生的狀態改稱已交卷狀態。
3.2.2 實現技術
這個頁面所實現的功能比較復雜,程序生成一個名叫“考生名+表名”的表,其作用是保存考生的答案,然后將考生答案與試題的標準答案進行對比,從而判定該題目的正確。如果正確,將成績累加起來,判斷完成后寫入到數據庫中。
4、開發難點與解決技巧
4.1 隨機選題的算法
如前面所示的隨機算法代碼,設定了某項題型需要的考試題數,然后獲取系統試題表中所有試題的總數,最后以這個總數生成隨機試題的數組。
4.2 出題頁面的保存
系統是通過暫時生成的試題表來保存考生答案,從而實現評分功能。這個暫時試卷表的另一功能可以在考生選擇讀取斷線記錄的情況下,將這個試題表的內容讀取出來,給考生提供二次考試的機會。
5、結語
在線考試系統是網絡教育系統的一個重要組成部分,為教師和考生提供了功能強大、靈活方便的在線考試和其他相關功能。該在線考試系統經測試,達到了預期的目標,可以供百人同時使用。
參考文獻
[1]吳建,鄭潮.UML基礎與Rose建模案例[M].北京:人民郵電出版社,2007:56-63.[2] 謝星星.UML基礎與Rose建模實用教程[M].北京:清華大學出版社,2011:190-204.作者簡介
黃裕(1980-),男,碩士,講師,主要從事計算機專業的教學與研究。
第二篇:ASP在線學習系統的設計與實現
ASP在線學習系統的設計與實現
摘 要:在線學習系統主要提供基于網絡的學生自主臺,教師使用該系統發布教學內容、布置或批改作業,發布公告和答疑解惑。學生使用該系統完成自主學習,向老師提出問題,跟老師和其他同學在線進行討論,查詢作業及成績等。
關鍵詞:ASP;SQL語言;Access數據庫
1、前言
計算機網絡技術的飛速發展,使我們的教育和學習模式產生了很大的變化,網絡化教育和學習已成為信息時代的重要標志和組成部分。探索、研究并構建適用于在網絡環境下的教學學習模式,是時下非常實用的課題。本文就是針對網絡教育和學習這一主題進行了研究與實踐。
2、系統設計理論依據
2.1 ASP簡介
ASP采用腳本語言VBScript(Java script)作為自己的開發語言。在ASP環境下,HTML代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的 HTML頁面只依賴于Web服務器,而ASP頁面需要附加的語言引擎分析和執行程序代碼。它本身包含了VBScript和Jscript引擎,使得腳本可以直接嵌入HTML中,而且還可以通過ActiveX控件實現更為強大的功能。程序代碼的執行結果被重新嵌入到HTML代碼中,然后一起發送給瀏覽器。ASP 是面向Web服務器的技術,客戶端瀏覽器不需要任何附加的軟件支持。
2.2 SQL語言簡介
SQL全稱是“結構化查詢語言(Structured Query Language)”,SQL語言結構簡潔,功能強大,簡單易學。如今無論是像Oracle,Sybase,Informix,SQL server這些大型的數據庫管理系統,還是像Visual Foxporo,PowerBuilder這些微機上常用的數據庫開發系統,都支持SQL語言作為查詢語言。
2.3 Access數據庫
Access是美國微軟公司開發的Office套件中一個功能非常強大的數據庫管理系統。無論是創建個人的獨立桌面數據庫,還是創建一個部門或整個企業級的網絡數據庫,Access都可為組織、查找、管理和共享數據提供功能豐富的、簡單易用的方法和手段。在WEB應用方面,可以直接把Access數據庫文件放在WEB服務器上,通過編制ASP腳本程序采用ADO方式訪問已存在的Access數據庫,非常方便。
3、系統需求分析
3.1 系統需要解決的主要問題
后臺數據庫建有公告信息表(board),答疑信息表(problem),學生信息表(student),在學員表student中初始化數據,再建立一個ODBC數據源,名稱為newdata。
3.2系統應該具備的基本功能
1.教學內容發布:教師發布教案,這些內容是在線教育的最主要的內容。2.公告功能:教師通過公告發布各種通知,例如課程安排、臨時通知和教材發布。3.作業功能:對于作業,學生需要將作業通過上傳的方式上交。教師根據作業完成情況給每份作業打分。4.答疑功能:功能類似于聊天室,教師對學生提出的問題進行解答,進行實時交流。5.其他功能:網上考試,網上實時教學等功能。
4、系統總體設計
4.1系統基本簡介
通過本項目的研究,能夠解決網絡環境下,如何進行教學設計,如何調控教學過程,如何有效實施教學活動以達到教學目標。所以給學生提供一個自主化、個性化、能方便獲取信息資源的環境是網絡學習的重要因素。該系統應該包括:網上答疑模塊、學習資源模塊、評分塊和若干子系統。
4.2 系統數據庫
根據系統需求,主要有以下數據項和數據結構:
??S 公告信息:包括標題、發布時間、公告內容、公告序號等。
??S 答疑信息:提問標題、問題內容、回答內容、時間、顯示標記、回答標記等。
??S 學生信息:包括學生姓名、學號、各次作業成績等。
4.3系統結構圖
在線學習系統分為兩個模塊:教師模塊和學生模塊,其結構劃分如圖2所示。
5、功能模塊說明及程序實現
5.1 學生模塊
在學生模塊中,學生可以瀏覽公告,查看教師布置的作業,課程安排,臨時通知等信息。學生模塊包含查看教師布置的作業、做練習題、教師授課視頻廣播收看、點播、網上答疑、課程資源瀏覽、輔助服務等。學生做完作業后可直接在瀏覽器中完成并提交。教師可以立即評分并給出成績及學生作業與正確答案的對照表,以便學生查閱。另外,系統還配備資源庫,內置與教學內容相關多媒體資料,供學生課外瀏覽、學習。
5.1.1課堂學習
課堂學習模塊中發布的課程,學生通過對各個章節的連接夠直接在網上點播,學生想看哪一章,只要點擊相應的章節就可以了,網絡課件已對各個章節通過對課程(PPT文件)的鏈接實現網上點播。
5.1.2 答疑教室
對于在學習過程中出現的問題,學生可以通過多種途徑得到解決,如通過電子公告板、或通過 E-MAIL 發信給老師、同學請求指導。答疑模塊,為師生相互交流提供了很大的方便。學生可以通過答疑教室模塊向系統提交自己在學習中碰到的難點。學生可以通過答疑教室模塊向系統提交自己的難點疑點。
5.1.3成績查詢
作業成績模塊通過教師對作業的發布,學生完成作業后再進行上傳,教師通過在線批改作業,給出學生成績并把學生成績加入學生數據庫中。成績查詢是通過對學生數據庫的連接,學生在頁面中輸入學號和密碼,系統會跟據輸入的學號和密碼與數據庫里的數據進行比較,相同時系統就自動會給出學生作業成績。
5.1.4教師信箱
當學生想和教師交流時,可以通過教師信箱直接和教師進行交流,點擊“教師信箱”,學生可以直接向教師發送郵件,方便了學生于教師之間的交流。
5.1.5作業上傳
上傳作業時,將每次做的練習題壓縮成一個zip文件,然后填寫好學號、密碼,選擇好練習題的序號,然后提交。注意項:
1、把作業壓縮成zip文件。
2、對同一次練習題重復提交,新的zip文件將替換舊的文件。
3、初始密碼和學號一致,學生可自行更改密碼。
4、上傳文件時必須要通過身份驗證,否則無法上傳。
5.2 教師模塊
教師模塊包含教師公告發布、課件維護、網上答疑、作業的批改等。
5.2.1 公告發布
教師可以通過公告功能發布各項通知,例如以下內容:
??S 課程安排,包括課程教學方式,課程播放表,考試程安排等。
??S 臨時通知和新教材發布。
5.2.2網上答疑
對于在學習過程中出現的問題,學生可以通過多種途徑得到解決。在網絡教學平臺中,單獨設立了網絡學習答疑模塊,作為師生相互交流的窗口。
5.2.3 作業批改
對于作業,學生需要將作業通過上傳的方式上交。教師要根據作業完成情況給作業打分。作業成績模塊通過教師對作業的發布,學生做完作業后對作業進行上傳,教師在后臺批完作業后把學生成績加入學生數據庫中,學生可以通過網上在線查詢功能就可以查看成績。
6、小結
現階段網絡的普及,給在線學習系統的出現提拱了最好的條件,人們足不出戶就可以學習各種各樣的知識,更不用花更多的錢去買各類書籍,不知道的知識點也可以及時提出及時得到答復,在線學習系統正是給人們提拱了一個學習交流的平臺,在線教育的出現是必然的。
參考文獻
[1] 尚俊杰.網絡程序設計―ASP.北京:清華大學出版社;北京交通大學出版社,2002-3-4
[2] 李曉黎 張巍.ASP+SQLServer 網絡應用系統開發與實例.南京:人民郵電出版社,2005-2-1
第三篇:本科生畢業論文設計在線管理系統設計與實現
本科生畢業論文設計在線管理系統設計與實現
一、前言畢業論文(設計)是高等院校畢業生提交的有一定的學術價值和實際價值的文章或設計。它是高校培養人才的重要實踐教學環節,是對學生四年學習的專業知識、研究能力、自學能力以及各種綜合能力的檢驗。目前很多高校對于本科學生畢業論文(設計)的管理均采用傳統的手工方式。隨著因特網的普及、現代遠程教育的發展以及現代本科教育模式的發展,繼續采用傳統手工管理模式對畢業論文(設計)進行管理就顯得費時、費力、工作量大、效率低。
另外,傳統的手工管理模式對于教學管理者來說難以及時準確地把握畢業論文(設計)的進展情況,給管理帶來一定的難度。在這種狀況下,筆者結合淮北師范大學對畢業論文(設計)的管理規定,開發出一套管理軟件,以對畢業論文(設計)這一重要教學環節進行現代化管理。它不但是實現教學管理現代化和網絡化的一個重要手段,同時也是促進傳統教學模式改革的一個方法,對于改進教學管理、提高教學質量具有重要的意義和較大的實用價值。
二、系統開發環境本系統采用B/S(Browser/Server,即瀏覽器/服務器)架構。主機選用戴爾(DELL)PowerEdge R410機架式服務器,操作系統選用Windows Server 2008,它能夠提供穩定、高速可靠、較大規模的數據處理能力。以IIS作為Web服務器,數據庫選用MicrosoftSQL Server 2008,服務器端腳本語言采用Asp.net(C#),使用Microsoft Visual Studio 2008作為開發工具,系統中還用到Office組件、Asp.net Ajax、在線編輯組件FCKEditor。
三、系統的總體設計本系統包括四類用戶,即系統管理員、教師、學生、審核員。
系統管理員用戶可以進行如下的操作:進行系統初始化,設置系統功能開關,導出相關數據,對教師的命題、學生的選題、用戶信息進行統一管理,上傳畢業論文工作流程、寫作格式要求、填表說明、模板等相關http:///文檔,信息查詢。教師用戶可以進行如下操作:在線命題、審核學生的開題報告、論文指導、撰寫論文評語及答辯成績、信息查詢。學生用戶可以進行如下的功能操作:在線選題、在線撰寫開題報告、在線撰寫論文并接受指導教師的在線指導,系統對論文格式進行檢查、自動更正、信息查詢。審核員用戶可以審核教師提交的選題表,只有經過審核,課題才能生效,才能被學生選用。除了以上功能外,系統還要提供一個公共信息交流的平臺,允許教師、學生、審核員、管理員對公共的問題進行討論。
第四篇:人事管理系統設計與實現
人事管理系統設計與實現
目 錄
前 言....1 1 需求分析....2 1.1 系統需求...2 1.1 功能需求...2 1.3 可靠性要求...3 1.4 性能需求...3 2 開發環境簡介....4 2.1 Delphi簡介...4
2.1.1 Delphi7的集成開發環境(IDE)...5 2.1.2 Pascal簡介...9
2.2 SQL Server 2000 簡介...10 2.2.1 SQL Server 數據平臺...10 2.3 TQuery部件在SQL編程中的運用...12 3 總體設計....14 3.1 基本設計...14 3.1.1 設計概念...14 3.1.2 功能分析...14 3.1.3 數據流圖...14 3.1.4 系統模塊...16 3.2 用例圖...18 4 數據庫設計....21 4.1 數據庫概念設計...21 4.2 數據庫邏輯結構設計...23 5 詳細設計....30 5.1 系統主窗體...30 5.2 數據庫連接...31 5.3 用戶登陸界面...32 5.4 用戶功能選擇...34 5.5 用戶信息錄入...34 5.6 查詢功能窗體...36 5.7 數據備份和還原窗體...37 5.8 工作日記及工作日記管理...39 5.9 用戶管理及用戶密碼修改...41 5.10 打印報表模塊...43 5.11 數據公用模塊...45 5.12 其它模塊...46 6 總 結....47 參考文獻....49 致謝....50
人事管理系統
網絡工程 雷靈明 指導老師:曹步青
摘要:隨著企業自身人力資源的日益龐大、復雜程度逐漸增強,人機作坊再也無法適應如今企業的人事管理了,取代的是運用各種領域的知識,結合計算機科學而開發的人事管理系統。人事管理系統是典型的信息管理系統(MIS),其開發主要包括后臺數據庫的建立和維護以及前端應用程序的開發兩個方面。對于前者要求建立起數據一致性和完整性強、數據安全性好的數據庫。而對于后者則要求應用程序功能完備,易使用等特點。人事管理系統是對工作人員進行統一的管理,可以方便的進行錄入,查詢,修改,刪除,退出。經過以上分析,本系統使用Delphi 7.0作為界面和功能開發工具和SQL Sever 2000作為后臺數據庫,利用其提供的各種面向對象的開發工具進行界面和數據庫開發。軟件過程結合了快速原型模型與增量模型的優點:首先在短時間內建立系統應用原型,然后,對初始原型系統進行需求迭代,不斷修正和改進,直到形成可行系統。關鍵詞:人事管理;DEPHI;ADO;SQL server 2000
Personnel Management System Network engineering Lei Lingming Teacher:Cao Buqing
Abstract: Along with their own human resources increasing, complexity growing, the man-machine workshop also is unable adapt the present enterprise’s personnel management again, but the personnel management system that make use of knowledge in different fields and computer science and technology.Personnel management system is a typical management information system(MIS), including the establishment and maintenance of the background-database and front-end application development.To the former, the request for the data which is powerful in consistency and integrity, database which is good in security.For the latter, the request for the applications program which is integrity and easy to easy, Personnel management system can manage the staff and admit input, enquiries, modify, delete, and exit.Through such analysis, the system use Delphi 7.0 as the interface and functions of development tools and take SQL Sever 2000 database as background-database, the development of the interface and database which made use of its object-oriented tools, the software process is formed which is combine the advantage of rapid prototype models and incremental model, as follows: At first application prototype of system is built in a short time, Secondly, the initial prototype system needs to be revised and improved, Finally, it is feasible that the system is built.Key words: human resource management;DEPHI;ADO;SQL server 2000
前 言 背景
在競爭越來越激烈的社會里,企業人事管理就越顯示出其不可缺性,成為企業一個非常重要的模塊。企業人事管理系統主要是用于員工個人相關信息的管理。使用人事管理系統,便于公司領導掌握人員的動向和人員的綜合素質,及時調整人才的分配,使用計算機對人事勞資信息進行管理,具有檢索迅速、查找方便、可靠性高、存儲量大、保密性好、成本低等優點,能夠極大地提高人事資源管理的效率,也是企業科學化、正規化管理的重要條件。目標
設計一個企業人事信息管理系統,此系統要以人為中心,為企業提供全面的人事管理解決方案;
a)為企業建立規范化、實時化人事管理機制;
b)提高企業人事管理的效率、節約相關的管理成本,增強人事管理的安全性;
c)滿足企業管理層,人事業務操作層和全體員工的不同層次和不同方面的需要;
d)對企業將來的整體信息化建設提供必要的支持。需求分析
需求分析是系統開發必要環節,也是重中之重。作為該過程的結果,需求規格說明書是對系統的功能和行為完整的描述。系統設計將來自于需求分析的抽象規格說明轉變為面向真實世界的設計。一旦構建完成,該系統就會投入使用,同時會不可避免地產生更多的新需求。同時,需求過程與分析活動之間有相當程度的重疊,分析建模對于設定工作的范圍和其他一些事來說是必要的,所以我們利用分析模型來描述需求過程,隨著開發工作的繼續,分析活動在工作中占的比例將變得越來越大,直到所有需求都已知。[1]
1.1 系統需求
企業的人事管理職能主要分為人事檔案信息管理、人事變動管理、員工培訓管理、獎懲管理等內容。
a)在人事系統開發時應考慮以下需求: b)滿足人事管理職能的基本要求;
c)進行多層次數據匯總,為各層次管理者的決策分析提供數據; d)具有完整的系統接口,滿足靈活的數據導入與導出; e)對操作人員的技能要求比較低,操作方便; f)能夠實現方便的擴展,滿足企業發展的需要; g)能夠保障人事管理數據的安全、準確。
1.1 功能需求
基于系統需求分析,該系統需要實現以下基本功能:
a)用戶管理:管理系統操作人員,設置操作人員口令和權限。在滿足不同系統用戶的操作需求的基礎上,提高系統的安全性。
b)人事檔案管理:完成企業對員工個人檔案(包括員工的基本檔案和在職信息)的管理及相關操作。操作員進行員工檔案信息錄入及更改,其中包括員工的基本信息、工作經歷、家庭關系、獎懲記錄和培訓經歷,要求對這些員工檔案信息進行新增、修改、刪除操作,同時可以進行查詢和瀏覽操作。該模塊是本系統的重點,用戶可以通過該模塊為單位建立一個比較完整的人事檔案系統,同時可以對檔案進行查看。
c)基礎數據管理:維護人事管理相關的一些基礎數據。主要包括以下功能:
(a)民族檔案設置:維護職工中民族檔案信息;
(b)職工類型設置:維護當前企業職工與企業的關系的類別信息;(c)文化程度設置:維護企業職工的文化程度類別信息;(d)政治面貌設置:維護企業職工的政治面貌類別信息;(e)部門類別設置:維護企業中設立的部門類別信息;(f)職務類別設置:維護企業中設立的職務類別信息;(h)職稱類別設置:維護企業職工的職稱類別信息;
d)人事變動管理:對于人事上的變動調整進行管理,對人員檔案的信息進行更新(如:員工職務、員工職稱、員工性質等的變動)。
e)工作日志管理:記錄部門或系統用戶的一些備忘信息,包括日常的一些事件記錄,以及工作日記的管理維護。
f)數據庫管理:對現有的數據庫進行管理,包括數據備份和恢復,以方便用戶對數據庫的管理和維護工作,提高系統的數據安全性。1.3 可靠性要求
a)計算機穩定可靠,網絡服務和數據庫服務穩定可靠;
b)網絡通暢、穩定;軟件運行穩定;數據計算及數據傳輸無誤;提供數據備份和數據恢復方案。1.4 性能需求 1)硬件環境
在最低配置的情況下,系統的性能往往不盡如人意,現在的硬件性能已經相當出色,且
價格也很便宜,因此通常給服務器端配置高性能硬件。推薦配置為: ·處理器:Intel 奔騰Ⅲ 或更高 ·內存:128MB ·硬盤空間:40GB ·顯卡:Geforce系列顯示適配器或更高。2)軟件環境
·操作系統:windows 98/ME/2000/N ·數據庫:Microsoft SQL server 2000 開發環境簡介 2.1 Delphi簡介
Delphi這個名字源于古希臘的城市名。它集中了第三代語言的優點。以Object Pascal為基礎,擴充了面向對象的能力,并且完美地結合了可視化的開發手段。Delphi自1995年3月一推出就受到了人們的關注,并在當年一舉奪得了多項大獎。
Delphi的出現打破了Visual系列可視化編程領域一統天下的局面。并且Delphi使用了本地編譯器直接生成技術,使程序的執行性能遠遠高于其它產品生成的程序。它還是真正的面向對象的編程語言。PASCAL語言的嚴謹加上可視化的優勢和強大的數據庫功能使得它有充分的資本和微軟的VB叫板。許多人當時都認為Pascal 是最有前途的程序設計語言,并預測Delphi將會成為可視化編程的主流環境。
Delphi在你編好程序后自動轉換成。EXE文件它運行時速度比VB快,而且編譯后不需要其他的支持庫就能運行。它的數據庫功能也挺強的,是開發中型數據庫軟件理想的編程工具。Delphi適用于應用軟件、數據庫系統、系統軟件等類型的開發。而且它擁有和VB差不多一樣的功能,而且一樣能應用API函數,這在控制Windows很有用。
Delphi是全新的可視化編程環境,為我們提供了一種方便、快捷的Windows應用程序開發工具。它使用了Microsoft Windows圖形用戶界面的許多先進特性和設計思想,采用了彈性可重復利用的完整的面向對象程序語言(Object-Oriented Language)、當今世界上最快的編輯器、最為領先的數據庫技術。對于廣大的程序開發人員來講,使用Delphi開發應用軟件,無疑會大大地提高編程效率,而且隨著應用的深入,您將會發現編程不再是枯燥無味的工作——Delphi的每一個設計細節,都將帶給您一份欣喜。
Delphi實際上是Pascal語言的一種版本,但它與傳統的Pascal語言有天壤之別。一個Delphi程序首先是應用程序框架,而這一框架正是應用程序的“骨架”。在骨架上即使沒有附著任何東西,仍可以嚴格地按照設計運行。您的工作只是在“骨架”中加入您的程序。缺省的應用程序是一個空白的窗體(Form),您可以運行它,結果得到一個空白的窗口。這個窗口具有Windows窗口的全部性質:可以被放大縮小、移動、最大最小化等,但您卻沒有編寫一行程序。因此,可以說應用程序框架通過提供所有應用程序共有的東西,為用戶應用程序的開發打下了良好的基礎。
Delphi已經為您做好了一切基礎工作——程序框架就是一個已經完成的可運行應用程序,只是不處理任何事情。您所需要做的,只是在程序中加入完成您所需功能的代碼而已。在空白窗口的背后,應用程序的框架正在等待用戶的輸入。由于您并未告訴它接收到用戶輸入后作何反應,窗口除了響應所有Windows的基本操作(移動、縮放等)外,它只是接受用戶的輸入,然后再忽略。Delphi把Windows編程的回調、句柄處理等繁復過程都放在一個不可見的Romulam覆蓋物下面,這樣您可以不為它們所困擾,輕松從容地對可視部件進行編程。
面向對象的程序設計(Object-Oriented Programming,簡記為OOP)是Delphi誕生的基礎。OOP立意于創建軟件重用代碼,具備更好地模擬現實世界環境的能力,這使它被公認為是自上而下編程的優勝者。它通過給程序中加入擴展語句,把函數“封裝”進Windows編程所必需的“對象”中。面向對象的編程語言使得復雜的工作條理清晰、編寫容易。
說它是一場革命,不是對對象本身而言,而是對它們處理工作的能力而言。對象并不與傳統程序設計和編程方法兼
其中多媒體音頻視頻播放器是通過TMediaPlayer組件來實現的,支持的格式與系統已安裝的解碼器有關。
總 結
6.1 程序設計風格
在設計的時候采用了增量模型的思想:把軟件作為一系列的構件來設計,編碼,集成和測試。
用戶管理,密碼修改,用戶登陸,萬年歷,這些模塊都有高度的獨立性,因此他們的可重用性比較高,基本上是一個單元完成一個功能,模塊規模也比較小,模塊的作用域在控制域之內,只使用了兩個全局變量來存儲用戶名和用戶權限。[1] 在人機界面設計方面,本系統做到了以下幾點: a)保持一致性(界面,背景的致性);
b)提供有意義的反饋(用戶驗證和用戶管理,提供了比較精確的反饋信息);
c)在執行有較大破壞性的動作之前要求用戶確認(數據備份與還原); d)允許大多數取消操作(大多數單元有取消操作功能);
e)允許犯錯誤(由于權限的限制,系統能保護自己不受嚴重錯誤的破壞);
f)按功能對動作分類(在主窗口就是按動作類型組織菜單的); 6.2 有待加強項
a)幫助的制作 一個完整的應用程序必須具有完整的幫助系統;幫助系統可以在必要的時候給用戶信息提示和一些系統相關服務。
b)聲音制作在這里主要是對聲音的加載,我們可以加載一些一般的聲音;主要來源有:音頻CD盤;波形音頻文件;MP3文件等等。其中波形音頻文件以WAV作為文件的后綴,我們可以播放現成的,也可以播放自己錄制的文件。c)我們還可以使用各種組件和ActiveX控件等技術來完善系統。利用一些做好的activeX組件,會縮短開發周期。
由于在開發工程方面缺少經驗,所以這個系統還存在著許多不足之處,在測試過程中總結如下:
a)數據表的設計還不是很合理;
b)數據異常處理要更加人性化,錯誤信息的反饋要更加精確; 6.3 心得
經過一個月的設計和開發,人事管理系統基本開發完畢,其基本功能符合用戶需求,能夠完成基礎數據錄入,數據查詢等基本功能,以及相關報表的打印。在這次畢業設計中,我獲益良多。首先我明白了需求分析對于一個系統的開發的重要性。其次我還學到了如何把一個軟件作為一個工程來做,在真正的軟件開發中,一個軟件系統的開發不是一個人來做,而是很多人合作來完成的,另外還有軟件的后期維護等等,這時就顯現出了把軟件作為一個工程來做的優越性,而這些都離不開數據流圖和模塊的分解。
Delphi是一個非常強大的開發工具,它具有運行速度快、易于學習和使用以及開發效率高的特點,使用起來真的是很順手。學習好一門編程語言以后可以為今后的學習和工作帶來很大的便利。
雖然本系統實現了基本的用戶需求功能,但是還有待于完善和加強,總之通過這次設計和開發過程,我對軟件開發有了進一步的了解。
參考文獻
[1] 張海藩編著.軟件工程導論[M].清華大學出版社出版,2003,1-173. [2] 宋一兵,趙景波,李春艷著.Delphi 7.0基礎教程[M].機械工業出版社,2003,2-30.
[3] 劉瑤儒著.新概念SQL Server2000教程[M].北京科海集團公司出,2001,12-23.
[4] 韓強編著.SQL SERVER 2000 程序員手冊[M].機械工業出版社出版,2000,4-35.
[5] 薩師煊著.數據庫系統概論(第二版)[M].高等教育出版社,1991,8-40. [6] 施伯樂,丁寶康,汪衛著.數據庫系統教程[M].高等教育出版社,2002,1-202.
[7] 肖健著.SQL Server2000實踐與提高[M].中國電子出版社,2002,13-53. [8] 林金霖著.Delphi6 實務經典[M].中國鐵道出版社,2002年5月,6-110. [9] 黃超,王志偉著.Delphi企業經營管理系統開發實例導航[M].人民郵電出版社,2003,20-90.
[10] 程文剛主編.Delphi數據庫實用編程100例[M].中國鐵道出版社,2004,8-63.
[11] 王晟,萬科著.Delphi數據庫開發經典案例解析[M].清華大學出版社,2005,85-89.
[12] 王惠剛,唐晨光彭為著.delphi7/8程序設計[M].清華大學出版社, 2002,42-63.
[13] 瀟湘工作室,邢增平著.Delphi 6.0最佳專輯[M].人民郵電出版社,2003,1-404.
[14] 心鈴.Delphi問答.軟件報[N],2004-07-5.
[15] 高永惠.淺談Delphi中的異常處理方法[J].湖南輕工業高等專科學校學報,2002-04,9-10.
[16] 徐萌飛.在Delphi中使用ADO技術對數據庫操作[J].中國學術期刊(光盤版)電子雜志社,2001,12-13.
[17] 陳建兵.Delphi中基于安全靈活的動態連接遠程數據庫SQL的實現[J].福建電腦,2005,12-13.
[18] 孫育紅.關于地方法院管理信息系統分析設計與實施[D].中國學術期刊電子雜志社,2001,8-9. [19] 岳冰.南部引嫩工程信息管理系統開發[D].中國學術期刊電子雜志社,2003,20-21.
[20] 龐芳,王麗玫.南寧市自動氣象站業務服務數據庫系統[D].中國學術期刊電子雜志社,2004,21-23.
[21] 徐軍.研究生院綜合管理信息系統的研究與實現[D].中國學術期刊)電子雜志社,2004,32-33.
[22] 魯媛媛.碩士生導師綜合素質能力評價指標體系的研究[D].中國學術期刊電子雜志社,2005,18-19.
第五篇:基于BS的網上考試系統的設計與實現
基于B/S的網上考試系統的設計與實現
論文關鍵詞:ASP.net B/S 網絡考試系統 數據庫
論文摘要:隨著網絡的普及和對教育的重視,各院校各學科的網上考試都具有了必要的使用環境。但是,目前國內的一些網絡教學系統的主要功能是教學,不能單獨作為考試平臺,通用性差,而且系統中對主觀題的評閱多是采用人工評閱方式,沒有實現真正意義上的自動評分。另一方面,我們所在院校的計算機基礎課已開設了多年,但尚在沿用傳統的考試形式或使用單機版的考試系統。基于Web的網上考試系統的設計與實現就是基于上述目的開發設計的。
本系統采用B/S架構作為系統的總體結構,以Web數據庫技術為依托,利用微軟的ASP.NET技術,結合ADO,實現了對Web數據庫的訪問和查詢。該設計實現了按題型隨機抽題組卷、在線考試、題庫管理、系統管理的功能,能夠對客觀題在線評分。學生用學號登錄成功后,閱讀考試須知,之后選擇考試科目進入考試頁面,完成相應科目考試,自動給出考試成績。系統管理,實現了對題庫、考生信息、考試成績、考試科目的管理。題庫管理,實現了對試題的添加、編輯、刪除功能;考生信息管理可以添加、修改、刪除、查詢考生信息,成績管理可以刪除成績信息,科目管理主要是修改考試科目信息。
基于Web的網上考試系統本身是一個很大的系統,尤其試題庫部分需要許多人的參與以及大量的投入才能建成。該系統雖然僅僅是完成《計算機文化基礎》和《操作系統》課程的考試,但卻具有良好的實用性與通用性,提供友好的人機界面,具有較好的可擴充性和開放性。
一、緒論
1.1 網上考試系統的現狀分析
在信息技術迅速發展的今天,網絡對于大多數人已不再陌生,并且其應用在人們的工作、學習和生活中越來越多地發揮著不可替代的作用。近年來隨著軟件工程技術、信息通信技術的快速發展以及計算機網絡技術的日趨成熟,網絡教育在人們的教育活動中逐步得到普及。網上考試是網絡教育不可缺少的組成部分,是網絡教育的一個重要環節。
網上考試在國外一些國家已經得到了蓬勃發展,人們選學課程和考試都是通過網上進行的。例如國外一些著名的考試,如Microsoft公司的MCSE(Microsoft系統工程師認證考試)、GMAT(工商管理碩士入學考試)、托福考試、GRE(美國研究生入學考試)等,都是采用網上考試的形式進行的。
在國內,目前絕大多數考試還停留在傳統考試方式上,對互聯網的真正應用僅限于一些考試的網上報名工作和網上成績查詢,還沒有真正形成網上考試規模。網上考試系統作為現代教育的一個子系統,是保證教育教學質量的重要手段。在傳統的考試方式下,組織一次考試要經過出題、考試、評卷、試卷分析等步驟,隨著考試類型的增加及考試要求的提高,教師的工作量將會越來越大,并且其工作非常容易出錯,在一定程度上說,傳統的考試方式已經存在著改革的必要了。Internet技術的發展使得考試的技術手段和載體發生了劃時代的變化,考試從傳統的紙筆考試到計算機輔助考試再發展到基于Web的網上考試成為現實。
現階段,網上考試系統的主流開發技術已經相當成熟,且很好地適應了動態站點設計和基于Web的數據庫訪問的要求,是當前網上考試軟件實現的主流技術之一。在對大量關于網上考試系統資料的研究和學習后,根據工作的需要,針對本校實際情況特別是教學的需求,利用學校校園網已有的基礎條件,研究開發適合本校使用的基于Web的網上考試系統。
1.2 選題的背景及研究意義
隨著計算機科學、網絡技術的迅猛發展,在教育領域里,實現網上考試可以充分利用學校現有的計算機軟、硬件資源和網絡資源實現考試;對于客觀題由計算機來完成閱卷,可以將減少人工閱卷的工作量。
目前常用的網上考試系統主要有兩種基本模式:傳統的C/S(客戶機/服務器)模式和新型的B/S(瀏覽器/服務器)模式,所謂C/S模式,即數據庫(比如,試題庫)內容放在遠程的服務器上,在客戶機上安裝相應軟件;C/S結構在技術上雖然很成熟,但該結構的程序往往只局限在小型的局域網內部,不利于擴展。并且,該結構的每臺客戶機都需要安裝相應的客戶端程序。當擁有用戶量比較多時,如果采用該結構,系統的安裝與維護工作比較繁重。同時,由于應用程序直接安裝在客戶機,客戶機直接和數據庫服務器交換數據,系統的安全性也受到一定影響。與傳統的基于C/S模式的網上考試系統相比,B/S體系將應用邏輯與用戶界面和數據訪問相分離,使系統的維護變得簡單(只需要改變網頁,即可實現所有用戶的同步更新),同時簡化了客戶端的功能,用戶只需瀏覽器即可使用此考試系統,更適宜于互聯網上的考試。
在信息網絡化的現實面前,我們提出一種基于Web的網上考試系統,并用SQL Sever 2000數據庫與ASP.NET技術結合進行了該系統的開發。
1.3 系統基本簡介
我們課題組所做的工作不僅僅是參與開發一個完整的在線考試系統,也是一個引導性的基礎研究,是對.net平臺下基于B/S結構的軟件體系結構、關鍵技術、實現技術、框架解決方案進行的探索。
本系統采用ASP.NET、HTML、Javascript、VBScript、圖形編輯與數據庫等工具,通過基于WEB服務器訪問WEB頁面,可以不受地點,時間限制,通過寬帶上網或其它上網方式,借助Internet這一強大、方便的工具,考生可以在互聯網上通過瀏覽器來選擇科目、參加考試,管理員可以在互聯網上通過瀏覽器來添加、修改學生信息,添加、修改、刪除試題,修改考試科目信息,管理學生成績;同時還實現有學生信息查詢功能:按班級、學號、姓名等關鍵字查詢,實現對整個系統的管理功能。
系統的主界面主要有考生、管理員入口,根據用戶類型,分別進入考試和管理兩個不同的頁面。其最大的特點是開放性、方便性和靈活性。
二、系統的關鍵技術及介紹
在《基于Web的網上考試系統》的設計過程中,主要考慮了以下幾方面的問題:
(1)ASP.NET技術;
(2)建立數據庫,使用SQL Sever 2000來建立;
(3)選擇系統的開發模式,B/S模式;
(4)ADO.NET對象模型;
(5)系統數據庫設計。
2.1 ASP.NET技術概況
ASP.NET是微軟公司推出的一種Internet編程技術,它采用效率較高的、面向對象的方法來創建動態Web應用程序。在原來的ASP技術中,服務器端代碼和客戶端HTML混合在一起,常常導致頁面的代碼冗長而復雜,程序的邏輯難以理解。ASP.NET是一種獨立于瀏覽器的編程模型,可以在最新版本的IE、NetscapeNavigator以及諸如Opera等被廣泛使用的瀏覽器上運行。
ASP.NET是一種建立在通用語言上的程序構架。一個已編譯的、基于.NET的環境,把基于通用語言的程序在服務器上運行。將程序在服務器端首次運行時進行編譯,比ASP即時解釋程序速度上要快很多。微軟公司發布了包括Visual Basic.NET、C#.NET、Visual C++.NET等與.NET兼容的語言來創作應用程序。
2.1.1 ASP.NET的優勢
ASP.NET是在服務器上運行的編譯好的公共語言運行庫代碼,它可利用早期綁定、實時編譯、本機優化和盒外緩存服務。這相當于在編寫代碼行之前便顯著提高了性能。
1)世界級的工具支持
ASP.NET框架補充了Visual Studio集成開發環境中的大量工具箱和設計器。WYSIWYG編輯、拖放服務器控件和自動部署只是這個強大的工具所提供功能中的少數幾種。
2)威力和靈活性
由于ASP.NET基于公共語言運行庫,因此Web應用程序開發人員可以利用整個平臺的威力和靈活性。Microsoft.NET框架類庫、消息處理和數據訪問解決方案都可從Web無縫訪問。ASP.NET也與語言無關,所以可以選擇最適合應用程序的語言,或跨多種語言分割應用程序。另外,公共語言運行庫的交互性保證在遷移到ASP.NET時保留基于COM的開發中的現有投資。
3)簡易性
ASP.NET使執行常見任務變得容易,從簡單的窗體提交和客戶端身份驗證到部署和站點配置。例如,ASP.NET頁框架使您可以生成將應用程序邏輯與表示代碼清楚分開的用戶界面,和在類似Visual Basic的簡單窗體處理模型中處理事件并不相同。另外,公共語言運行庫利用托管代碼服務(如自動引用計數和垃圾回收)簡化了開發。
4)可管理性
ASP.NET采用基于文本的分層配置系統,簡化了將設置應用于服務器環境和Web應用程序。由于配置信息是以純文本形式存儲的,因此可以在沒有本地管理工具幫助的情況下應用新設置。此“零本地管理”哲學也擴展到了ASP.NET框架應用程序的部署。只需將必要的文件復制到服務器,即可將ASP.NET框架應用程序部署到服務器。不需要重新啟動服務器,即使是在部署或替換運行的編譯代碼時。
5)可縮放性和可用性
ASP.NET在設計時考慮了可縮放性,增加了專門用于在聚集環境和多處理器環境中提高性能的功能。另外,進程受到ASP.NET運行庫的密切監視和管理,以便當進程行為不正常(泄漏、死鎖)時,可就地創建新進程,以幫助保持應用程序始終可用于處理請求。
6)自定義性和擴展性
ASP.NET隨附了一個設計周到的結構,它使開發人員可以在適當的級別“插入”代碼。實際上,可以用自己編寫的自定義組件擴展或替換吉林大學碩士學位論文ASP.NET運行庫的任何子組件。
7)安全性
借助內置的Windows身份驗證和基于每個應用程序的配置,可以保證應用程序是安全的。
2.1.2 常用到的ASP.NET內置對象
Application對象:對整個ASP.NET執行環境而言,一個虛擬目錄下的所有ASP.NET程序構成了一個Web應用程序。在多任務執行的情況下,來自四面八方的眾多用戶可能執行同一個Web應用程序,這便依賴Application對象。常用到的場合:聊天室、網頁計數器等。
Request對象:獲取從客戶瀏覽器傳給服務器端的數據,如接收來自表單的數據。
Response對象:Request對象與Response對象就像一般程序語言里的Input及Output命令,若要讓服務器端的ASP.NET程序能夠接收來自客戶端的信息,須用Request對象;若想將服務器端的信息傳遞給客戶端,須用Response對象。
Session對象:Session對象和Application對象極為類似,但Session對象的信息只適用于同一位用戶,換句話說,一個Session對象只屬于一位用戶。常用到的場合:虛擬購物車、用戶登陸網站時用戶名的臨時存儲等。
2.2 利用SQL Sever 2000來建立數據庫
Microsoft SQL Server 2000 是一種關系型數據庫。此種數據庫采數據分類表格化的架構,將相關的數據組成表格,表格和表格之間可以有關聯性,因此稱為關系型數據庫。系統管理員可透過應用程序進入服務器,更改數據型態,管理及處理服務器資源。SQL Server 也是一種具備延展性的數據庫(scalable database),亦即 SQL Server 可以支持多位使用者同時進入數據庫中處理大量的數據。
2.3 Browser/Server模式—本系統的開發模式
2.3.1 Browser/Server模式簡介
隨著網絡規模的日益擴大,應用程序的復雜程度不斷提高,傳統的數據庫應用架構已經不能勝任。為了充分利用網絡資源,越來越多的信息需要在www.tmdps.cnmand對象、DataAdapter、DataSet以及DataReader。這些組件中負責建立聯機和數據操作的部分我們稱為數據操作組件(Managed Providers)分別由Connection對象、Command對象、DataAdapter對象以及DataReader對象所組成。數據操作組件最主要是當作DataSet對象以及數據源之間的橋梁,負責將數據源中的數據取出后植入DataSet對象中,以及將數據存回數據源的工作。
Connection組件
Connection對象主要是開啟程序和數據庫之間的連結。沒有利用連結對象將數據庫打開,是無法從數據庫中取得數據的。這個物件在ADO.NET的最底層,我們可以自己產生這個對象,或是由其它的對象自動產生。
Command組件
Command對象主要可以用來對數據庫發出一些指令,例如可以對數據庫下達查詢、新增、修改、刪除數據等指令,以及呼叫存在數據庫中的預存程序等。這個對象是架構在Connection對象上,也就是Command對象是透過連結到數據源的Connection對象來下命令的。所以Connection連結到哪個數據庫,Command對象的命令就下到哪里。
DataAdapter組件
DataAdapter對象主要是在數據源以及DataSet之間執行數據傳輸的工作,它可以透過Command對象下達命令后,并將取得的數據放入DataSet對象中。這個對象是架構在Command對象上,并提供了許多配合DataSet使用的功能。
DataSet組件
DataSet這個對象可以視為一個暫存區(Cache),可以把從數據庫中所查詢到的數據保留起來,甚至可以將整個數據庫顯示出來。DataSet的能力不只是可以儲存多個Table而已,還可以透過DataAdapter對象取得一些例如主鍵等的數據表結構,并可以記錄數據表間的關聯。DataSet對象可以說是ADO.NET中重量級的對象,這個對象架構在DataAdapter對象上,本身不具備和數據源溝通的能力,也就是說我們是將DataAdapter對象當做DataSet對象以及數據源間傳輸數據的橋梁。
DataReader組件
當我們只需要循序的讀取數據而不需要其它操作時,可以使用DataReader對象。DataReader對象只是一次一筆向下循序的讀取數據源中的數據,而且這些數據是只讀的,并不允許作其它的操作。因為DataReade在讀取數據的時候限制了每次只讀取一筆,而且只能只讀,所以使用起來不但節省資源而且效率很好。使用DataReader對象除了效率較好之外,因為不用把數據全部傳回,故可以降低網絡的負載。
2.5 系統數據庫設計
2.5.1 數據庫結構及說明
數據庫結構是網上考試系統設計方案中的一個重要組成部分,目的在于滿足考生、管理員用戶實現其操作功能。
2.5.2 用戶權限簡介
1.管理員。在此系統中系統管理員具有管理用戶、管理試題和試卷的權力。他不需注冊,在數據庫有一個表來存放相關信息。
2.一般用戶主要是指考生,參加在線考試。
三、系統的整體分析與設計
3.1 需求分析
3.1.1 系統需要解決的主要問題
考生進入系統應該進行身份驗證。考生進入考試系統后,需要選擇考試科目,所以系統還應有考試科目選擇的功能。鑒于考試環境一般為機房,考試者之間的距離很近,為了避免考試做弊,試卷的試題和題量都應是相同的,但試題并不相同。在線考試基于網絡環境,試卷應該從服務器的數據庫隨機抽取試題后動態生成的。另外,系統還應該對考試時間進行控制,時間到了會要求考試者交卷。考試者選擇提交答卷后,應該自動判卷,給出考生分數。
本系統是為了滿足在線考試的需求而設計開發的,可在Internet上進行實時考試。所以本考試系統應具備的考試系統功能,包括:題庫設計和管理,試卷的隨機組卷能力,用戶在線考試及記錄,系統自動評卷,系統數據庫管理維護,系統管理和維護。
3.1.2 系統功能模塊劃分
本在線考試系統可分為兩個主要功能模塊進行設計,這兩個功能模塊分別為:
(1)考生功能模塊:考生功能模塊可以實現考生登錄、選擇考試科目、在線考試、完成考試給出分數,如果已經考過,則不能登錄考試。
(2)管理員功能模塊:管理員功能模塊可以實現管理員登錄、考生信息管理、考試科目管理、題庫管理、考試成績管理。
系統統由一個登陸界面登陸,在登陸時是如果是學生,則用戶名為考生學號,如果是管理員登陸,用戶名為管理員名,分別從各自己的數據庫中查詢帳戶,并核對登陸密碼,然后根據不同的角色進入不同的界面。
3.2 總體設計
本部分介紹了《基于Web的網上考試系統》的總體設計,主要包括公用登陸模塊的設計,學生功能模塊的設計,管理員功能模塊的設計。
3.2.1 公共登陸模塊設計
所有用戶都從本模塊登陸,登陸界面(login/)上包括一個文本框用于輸入用戶名,一個文本框用于輸入密碼;包括兩個按鈕,用來區分考生登錄,還是管理員登陸。點擊登陸后,根據不同按鈕的單擊事件,連接到不同的 數據庫,從相應的數據庫表中查詢用戶名和密碼,如查詢到,則進入相應的頁面,如未查詢到,則彈出出錯信息,用戶點擊確定重新輸入用戶名和密碼登陸,圖3-3示: 圖3-3 用戶登錄界面
3.2.2 在線考試模塊設計
考生登錄后,進入考試須知頁面(know1/),選擇考試科目后,若未參加該科目的考試,則進入相應科目考試頁面;否則,不能進入考試頁面。該頁面主要提供了一個考生選擇考試科目的功能,以簡單的超鏈接進入不同的科目考試頁面。
3.2.3 管理員功能模塊設計
管理員登錄后進入后臺管理主頁面(classintro/),由該頁面可以登錄到學生信息管理、科目管理、試題管理、成績管理頁面。
四、部分頁面實現詳解
4.1 考試頁面的實現
考試頁面(exampage/)可以進行單選、多選、填空題這些客觀題的考試。每一類型題都以一個Web用戶控件來實現題目顯示,試題是隨機生成的,每次考試都不同的試卷,系統以隨機抽題來生成試卷,使用了一個隨機函數。先在題庫question表中得到每種題型在每次抽題供抽取的總題數count= SubjectInfo(Subject),隨機選題時應在1-count之間選取,temp = Fix(count * Rnd(10))。由于試卷是考前隨機抽題而得,考生在第一時間開啟試卷,減少了接觸試題的人員間環節,也在一定程度上防止了考生將試題傳出考場,增強了試題的保密性其次,為了避免由于得到的隨機數相同,而在一份試卷中抽到相同的考題,在設計題庫結構時設置了haveselect標記字段,標記字段取值為0時,該題未被抽取,haveselect標記字段取值為1,表示該題已被抽取,不能再用。這統在抽題時,首先判斷haveselect標記字段是否為0,如果該題已被抽過,則必取新的隨機數重新抽取。下面以單選題為例來說明。
//將haveselect置為1,標記該題為已選
Public Function SetReaded(ByVal QuestionID As String)strsql = “update question set haveselect=1 Where id=” & CInt(QuestionID)ExeSQL(strsql)End Function //將haveselect置為0,該課程所有的考題初始化 Public Sub SetRead()strsql = “update question set haveselect=0 where subjectname='” & Subject & “'” ExeSQL(strsql)End Sub //用隨機函數Rnd()來生成試題號 Public Sub DataBingToRep()strsql = “select top ” & 1 & “ * from question Where subjectname='” & Subject & “' AND type='單選題'and haveselect= 0 ” Randomize()count = SubjectInfo(Subject)temp = Fix(count * Rnd(100))If Qds.Tables(0).Rows.Count > 0 Then GetRowInfo(Qds.Tables(0).Rows(temp))Else lblQesName.Text = “暫時沒有” & Subject & “的單選題!” End If End Sub //統計課程考題的數量, 獲得count值
Function SubjectInfo(ByVal name As String)As Integer strsql = “select * from question where subjectname='” & name & “' AND type='單選題'and haveselect=0 ” Dim cmd As New SqlDataAdapter(strsql, appconn)cmd.Fill(Qds, “Info”)Return Qds.Tables(“Info”).Rows.Count End Function
4.2 管理主頁面的實現
管理主頁面是管理員進入后臺管理后所看到的第一個頁面,在該頁面上有Label控件顯示了管理員名,登錄時間信息,一組超鏈接實現各個頁面之間的跳轉,以一個表格中加入超鏈接圖片也可以在不同頁面之間跳轉,該頁面主要是管理員歡迎界面,沒有什么關鍵代碼,只是超鏈接的使用。
4.3 學生信息管理頁面(manstudentinfo/)的實現
該頁面用DataGrid控件顯示了學生信息,并實現了分頁顯示,同時以下拉列表事件來實現按班級查詢學生信息,其中班級是從數據庫里查詢出來的不重復的班級,還以下拉列表提供了按序號、學號、姓名進行的關鍵字查詢,以超鏈接實現了跳轉到添加、修改學生信息頁面。
關鍵代碼解釋:
//定義數據庫連接字符串,Dim conn As New SqlConnection(ConfigurationSettings.AppSettings(“ConnectionString”))//使用DISTINCT關鍵字搜索出數據庫中的不同班級,class_name為下拉列表控件 comdstr2 = “select DISTINCT class from student” class_name.DataSource = studs.Tables(“student1”)class_name.DataBind()class_name.Items.Insert(0, New ListItem(“全部”, “全部”))//使第一項顯示為“全部”
class_name.SelectedIndex = class_name.Items.IndexOf(class_name.Items.FindByText(“全部”))//使用Response.Redirect可以將網頁轉移至另外的網頁上,使用的語法結構是:Response.Redirect網址,其中網址可以是相對地址或絕對地址,在此使用Response.Redirect(“addstudentinfo/”)跳轉到修改學生信息頁面 Session(“studentid”)= s_datagrid.DataKeys(CInt(E.Item.ItemIndex))//使用下拉列表控件的SelectedIndexChanged事件,實現下拉列表改變,自動按不同班級查詢學生信息 Public Sub class_name_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles class_name.SelectedIndexChanged dblstr = Request.Form(“class_name”)ifsub()End Sub //根據不同的查詢條件生成不同的查詢字符串 Sub ifsub()//使用like '%“ & key & ”%'實現按關鍵字查詢,以下輸入學號關鍵字為來實現查詢 If skey = “s_no” Then comdskey = “ where s_no like '%” & key & “%' ” comdstr = “select * from student ” & comdskey End If Session(“str”)= comdstr adp = New SqlDataAdapter(comdstr, conn)ds = New DataSet adp.Fill(ds, “student”)s_datagrid.DataSource = ds.Tables(“student”).DefaultView s_datagrid.DataBind()End Sub 4.3.1 添加、修改學生信息(addstudentinfo/)
添加學生信息與修改學生信息共用一個頁面,在執行不同操作時,傳遞不同的參數editstudent,當editstudent為空值時,顯示添加學生信息頁面,不為空顯示為修改學生信息,并根據參數綁定數據庫中的對應的學生信息,顯示在相應的文本框或下拉列表中。
關鍵代碼解釋:
//根據不同editstudent參數值顯示不同的頁面標題,其中editstudent為學生id <%If editstudent = “" Then%>添加學生信息 <%Else%>修改學生信息<%End If%> //根據不同editstudent參數值顯示不同的按鈕文本 <%If editstudent = ”“ Then%> <%Else%><%End If%> //該句的功能是把表單提交的變量editstudent的值賦給一個Session對象studentid。這個對象用來存儲學生id,它在用戶對每個頁面的訪問中有效。editstudent = Session(”studentid“)//點擊修改學生信息事件,使用Request對象的Form獲得頁面上表單的內容 nums = Request.Form(”num“)names = Request.Form(”name“)pwds = Request.Form(”pwd“)grades = Request.Form(”grade“)strA = ”update student set s_no='“ & nums & ”',s_name='“ & names & ”',s_pwd='“ & pwds & ”',class='“ & grades & ”' where id=“ & editstudent
4.4 科目管理頁面(managesubject/)的實現
該頁面主要是對考試科目信息的修改,包括各類型題的總分和題量以及考試時間設置,其中序號和科目名稱是不可修改的。用一個DataGrid控件實現了顯示科目信息,以一個隱藏的Panel控件放上一個表格來綁定相應科目信息,當點擊修改時,Panel控件顯示,并將相應科目信息以表格形式顯示,以供修改。
關鍵代碼解釋:
//使用Panel控件的Visible屬性,當點擊修改時,Panel.Visible = True, comdstr1 = ”select * from subject where id=“ & s_datagrid.DataKeys(CInt(E.Item.ItemIndex))objcomd = New SqlCommand(comdstr1, conn)objcomd.Connection.Open()studr = objcomd.ExecuteReader //當讀出該記錄時,將相應字段的值顯示在頁面上的相應控件上 If studr.Read()then id.Text = studr(”id“).ToString End If
4.5 試題管理頁面(manexampage/)的實現
該頁面以Repeater控件實現了試題的顯示,每一題都用一個表格來顯示,每一題都有一個操作,放了三個鏈接,點擊添加,則跳轉到添加試題頁面,點擊修改,則跳轉到試題修改頁面,點擊刪除,則刪除該題。此外該頁還進行了分頁,可以到上一頁,下一頁,直接到達首頁和尾頁,并顯示了總頁數和當前頁碼。
關鍵代碼解釋:
manadp = New SqlClient.SqlDataAdapter manadp.SelectCommand = objcomd mands = New DataSet //填充DataSet數據集 manadp.Fill(mands, ”mana“)//設置分頁顯示試題的數量
Dim manpd As PagedDataSource = New PagedDataSource manpd.DataSource = mands.Tables(”mana“).DefaultView()manpd.AllowPaging = True manpd.PageSize = 4 //定義當前頁變量CurPage Dim CurPage As Integer //設置當前頁的頁碼索引為當前頁碼減一 manpd.CurrentPageIndex = CurPage1)& ”&mana=“ & Server.UrlEncode(Session(”mana“))& ”“ lnkFirst2.NavigateUrl = Request.CurrentExecutionFilePath & ”?Page=1“ & ”&mana=“ & Server.UrlEncode(Session(”mana“))& ”“ End If //如果是下一頁,跳轉到后一頁 If Not manpd.IsLastPage Then lnkNext2.NavigateUrl = Request.CurrentExecutionFilePath & ”?Page=“ & Convert.ToString(CurPage + 1)& ”&mana=“ & Server.UrlEncode(Session(”mana“))& ”“ lnkLast2.NavigateUrl = Request.CurrentExecutionFilePath & ”?Page=“ & manpd.PageCount & ”&mana=“ & Server.UrlEncode(Session(”mana“))& ”“ End If
4.5.1 添加、修改試題頁面(addquestion/)
添加和修改試題共用一個頁面,在執行不同操作時,傳遞不同的參數edittest,當edittest為空值時,顯示添加試題頁面,不為空顯示為修改試題頁面,并根據參數所傳遞的ID號來綁定數據庫中的對應的試題信息,顯示在相應的下拉列表、文本框或單選按鈕上。
關鍵代碼解釋:
//使用Request對象的QueryString屬性來獲取edittest參數的值 edittest = Request.QueryString(”edittest“)If edittest <> ”“ Then comdstr = ”select * from question where id=“ & edittest objcomd = New SqlCommand(comdstr, conn)objcomd.Connection.Open()testdr = objcomd.ExecuteReader If testdr.Read()Then txtquestion.Text = testdr(”question“).ToString txtA.Text = testdr(”A“).ToString txtB.Text = testdr(”B“).ToString txtC.Text = testdr(”C“).ToString txtD.Text = testdr(”D“).ToString txtanswer.Text = testdr(”answer“).ToString If testdr(”type“).ToString = ”單選題“ Then type.Items(0).Selected = True Else If testdr(”type“).ToString = ”多選題“ Then type.Items(1).Selected = True Else type.Items(2).Selected = True End If End If End If objcomd.Connection.Close()End If //使用Request對象的QueryString屬性來獲取deltest參數的值 deltest = Request.QueryString(”deltest“)If deltest <> ”“ Then comdstr = ”delete from question where id=“ & deltest objcomd = New SqlCommand(comdstr, conn)objcomd.Connection.Open()objcomd.ExecuteNonQuery()objcomd.Connection.Close()Response.Redirect(”manexampage/?“)End If
4.6 成績管理頁面的實現
該頁面主要是對學生考試成績的管理,結合了學生信息表和成績表的雙表查詢,用一個DataGrid控件顯示學生考試成績,只能對學生成績進行刪除操作,設計比較簡單。
主要代碼解釋:
//使用DataGrid控件的MyDataGrid_Delete事件,利用strSql字符串實現記錄的刪除 strSql = ”Delete from score Where id=" & s_datagrid.DataKeys(CInt(E.Item.ItemIndex))
參考文獻
[1]李萬倫,何蕾,趙海.ASP.NET程序設計.清華大學出版社,2002 [2]求是科技.ASP.NET數據庫管理系統開發實例導航.人民郵電出版社,2005 [3]張增良.ASP.NET程序設計教程.西安交通大學出版社,2006 [4]錢靈.基于.NET的網上考試系統的設計與實現[D].天津大學,2005 [5]張全和.關于考試閱卷系統開發的必要性和可行性.重慶大學計算機基礎教學研討會論文集.2004.4 [6] Hoffman K,Gabriel J.汪鐘鳴,戰曉蘇譯..NET Framework高級編程[M].北京.清華大學出版社.2002年 [7] 全渝娟,范榮強.基于Web的遠距離考試系統.計算機應用與軟件,2003,7 [8] 蔣元星.基于.NET框架的企業應用集成研究和實現.浙江大學碩士學位論文2005,5 [9] 肖金秀,馮沃輝,陳少涌.ASP.NET程序設計教程[M].冶金工業出版社,2002,7 [10] 徐世浩.高校教育網站ASP.NET技術應用研究.電化教育研究,2004,1 [11] 陳玉峰.SQL Server 2000數據庫開發教程(第1版)[M].北京:科學出版社,2003.[12] 金雪云,焦桂英.ASP.NET高級開發技術與范例(第3版)[M].北京:科學出版社,2002.[13] 劉東飛,夏丹.基于.NET的網上考試系統設計與實現[J].福建電腦,2006,5:121-122 [14] 張紅鷹,基于NET平臺的網上考試系統的設計與實現,湖北大學成人教育學院學報,2006年第3期。[15] 高清和.精通ASP.NET的程序設計.中國鐵道出版社,2001[10]肖建.ASP.NET編程實例與技巧集粹.北京希望電子出版社,2003。
[16] 廖彬山,高峰霞.WEB數據庫開發技術[M].北京:電子工業出版社,2001。
[17] 張莉,王強.SQL SERVER數據庫原理及應用教程[M].北京清華大學出版社,2003年1月。
[18] 劉紅軍.基于B/S三層架構的標準化網上考試系統的設計與實現[Dl.中國海洋大學碩士學位論文,2005 [19] 孟軍《精通ASP.NET網絡編成》人民郵電出版社,2002 [20] 楊帆《ASP.NET技術與應用》高等教育出版社,2004 [21] 朱歸良基于Web模式的網上考試系統安全性研究(《計算機工程與應用》2002年3月)[22] 夏江林.C/S結構與B/S結構技術特點比較.電腦學習.2001(5)P35-36 [23] 朱忱,宋順林.基于.硯T的Web應用框架的設計與實現[J].計算機工程與設計,2006(8):1446—1447 [24] 黃杰.基于Browser/Sever模式下的在線網上考試系統【DI.武漢大學碩士學位論文,2004