版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟軟件件開開發(fā)發(fā)綜綜合合技技能能訓訓練練報報告告在線考試系統(tǒng)設計在線考試系統(tǒng)設計專業(yè)專業(yè)計算機科學與技術計算機科學與技術學生姓名學生姓名 班級班級學號學號指導教師指導教師 李萍李萍完成日期完成日期年年 1 月月 9 日日信信息息學學院院 目 錄1 緒論 .11.1 開發(fā)的背景和意義.11.2 論文結構.12 系統(tǒng)需求分析 .22.1 需求分析.22.2 開發(fā)環(huán)境及工具.22.2.1 網(wǎng)站開發(fā)環(huán)境.22.2.2 服務器端和客戶端.23 系統(tǒng)概要設計 .33.1 系統(tǒng)目標.33.2 系統(tǒng)流程圖.43.3 系統(tǒng)功能結構.44 詳細設計 .64.1 數(shù)據(jù)庫設計.64.1.1 數(shù)據(jù)庫概要說明.64.1.
2、2 數(shù)據(jù)庫概念設計.64.1.3 數(shù)據(jù)庫邏輯設計.84.1.4 公共類的編寫.94.2 網(wǎng)頁設計.144.2.1 網(wǎng)上考試系統(tǒng)登錄頁面.144.2.2 注冊頁面.174.2.3 在線考試頁面.194.2.4 后臺管理頁面.234.3 程序運行.295 結論 .31參考文獻 .321 緒論緒論1.1 開發(fā)的背景和意義隨著網(wǎng)絡技術的飛速發(fā)展,現(xiàn)在很多國外的大學和社會其他部門都已經(jīng)開設了遠程教育,通過計算機網(wǎng)絡實現(xiàn)異地教育和培訓?,F(xiàn)在,計算機硬件技術的發(fā)展已經(jīng)達到了相當高的水平。但是,遠程教育軟件的開發(fā)目前還處于起步階段,隨著這項技術的不斷深入發(fā)展,就要求有更好、更完善的軟件系統(tǒng)應用到遠程教育當中去
3、,這就給軟件設計人員提出了更高的設計要求。遠程教育包括很多環(huán)節(jié),例如教學系統(tǒng)、答疑系統(tǒng)和考試系統(tǒng)等等。其中很重要的一個環(huán)節(jié)就是在線考試系統(tǒng),同時它也是最難實現(xiàn)的環(huán)節(jié)。考試是教育中的一個重要環(huán)節(jié)1。考試的目的一是為了考查學生的知識掌握情況,二是為教師提供教學分析的依據(jù)。傳統(tǒng)的考試由于涉及到組織命題、試卷印刷、考場安排、組織閱卷等諸多環(huán)節(jié),考試時間周期長、效率低下;同時人工披卷等主觀因素也影響到考試的公正性。隨著網(wǎng)絡技術在教育領域應用的普及,應用現(xiàn)代信息技術構架的網(wǎng)絡在線考試系統(tǒng)展現(xiàn)出了越來越多的優(yōu)越性。網(wǎng)絡在線考試系統(tǒng)旨在探索一種以互聯(lián)網(wǎng)為基礎的考試模式。通過這一新的考試模式,為考試創(chuàng)造一種新的
4、考試環(huán)境,提高考試工作效率和標準化水平,使考務管理突破時空限制,使考生可以隨時隨地通過網(wǎng)絡完成考試。網(wǎng)絡在線考試系統(tǒng)從根本上解決了傳統(tǒng)考試過程中工作量大、效率低、反饋周期長、資源浪費等缺陷,成為技術發(fā)展與研究的方向。“網(wǎng)上考試系統(tǒng)”作為現(xiàn)代遠程教育的一部分,以 Internet 網(wǎng)絡作為載體,不受時間、科目和地域的限制,給考生、評卷人和出題者帶來巨大的便利,同時也使考試成為真正意義上的平等、公開。它可以杜絕試題泄露、評卷不公、考生作弊。考生可以在規(guī)定的期間內選擇最佳狀態(tài)時期參加考試,系統(tǒng)會為每一個考生同樣的試卷,同時當場給出成績, 評卷人和出題者可以在世界任何一個地方進行試題結構、試題內容的維
5、護和進行評卷工作1.2 論文結構第一章:對網(wǎng)上考試系統(tǒng)的開發(fā)背景和意義進行闡述。第二章:對網(wǎng)上考試系統(tǒng)作出詳細的需求分析。第三章:會話通信程序的概要設計分析。第四章:會話通信程序的詳細設計分析。第五章:對整個系統(tǒng)的開發(fā)設計作出總結。2 系統(tǒng)需求分析系統(tǒng)需求分析2.1 需求分析隨著計算機技術和互聯(lián)網(wǎng)的快速發(fā)展,人類已經(jīng)進入了信息時代,也有人稱為數(shù)字化時代。在數(shù)字化的網(wǎng)絡環(huán)境下,學生希望得到個性化的滿足,根據(jù)自己的情況進行學習,同時也希望能夠得到科學的評價;老師希望有效改進現(xiàn)有的考試模式,提高考試的效率;教育機構也希望給網(wǎng)上的學生提供更全面、靈活的服務,全面準確地對學生進行跟蹤和評價。網(wǎng)絡考試系統(tǒng)
6、正是迎合這一時代需求而開發(fā)的,它旨在探索一種以互聯(lián)網(wǎng)為基礎的考試模式。通過這種新的模式,為學校創(chuàng)造一種新的考試環(huán)境,提高考試工作效率和標準化水平,是學校管理者、教師和學生可以隨時隨地通過網(wǎng)絡進行考試。網(wǎng)絡考試系統(tǒng)的開發(fā)與應用,避免了以往學校里考試紙張、筆、監(jiān)考和巡考等各種資源的浪費,并且后臺管理是管理員單一的管理,確保了程序的安全性。網(wǎng)絡考試系統(tǒng)管理員登錄后,對考試內容、科目和考試題目等都作了詳細的分類,只要考生通過自己的用戶名和密碼進入前臺,按步驟依次進行選題和答題,答題完畢后系統(tǒng)會自動判斷考卷,并核對出最后考卷的分數(shù),解決了在學校考試后等待考卷分數(shù)通知的問題。2.2 開發(fā)環(huán)境及工具2.2.
7、1 網(wǎng)站開發(fā)環(huán)境網(wǎng)站開發(fā)環(huán)境:Microsoft Visual Studio 2005 集成開發(fā)環(huán)境。網(wǎng)站開發(fā)語言:ASP.NET+C#。網(wǎng)站后臺數(shù)據(jù)庫:SQL Server 2000.開發(fā)環(huán)境運行平臺:Windows XP/Windows 2000/Windows Server 2003。2.2.2 服務器端和客戶端操作系統(tǒng):Windows Server 2003Web 服務器:Internet 信息服務(IIS)管理器。數(shù)據(jù)庫服務器:SQL Server 2000.瀏覽器:IE 6.0。網(wǎng)站服務器運行環(huán)境:Microsoft .NET Framework 瀏覽器:Internet Expl
8、orer 6.0分辨率:最佳效果 1024768 像素 3 系統(tǒng)概要設計3.1 系統(tǒng)目標本程序是將傳統(tǒng)的考試模式與先進的網(wǎng)絡應用相結合開發(fā)設計的。主要實現(xiàn)如下目標:1. 操作簡單方便、界面簡潔美觀。2. 具有實時性,已注冊地用戶無論身在何地,通過 Internet 瀏覽器,都可登錄網(wǎng)絡考試系統(tǒng)。3. 具有嚴肅性和公正性,系統(tǒng)提供的自動交卷功能使考試到結束時間時,系統(tǒng)將自動交卷。4. 提供考試時間倒計時動能,讓考生隨時了解考試剩余時間。5. 系統(tǒng)自動交卷、閱卷,保證成績真實、準確。6. 對考生注冊信息進行管理。7. 系統(tǒng)運行穩(wěn)定、安全可靠。3.2 系統(tǒng)流程圖管理員在線考試選擇考試課程和套題開始考
9、試提交試卷查看考試結果對考生信息、考試信息、管理員信息、考試套題信息和考試題目進行添加、修改、刪除等管理考生注 冊登錄留 言圖 3.1 網(wǎng)站的流程圖3.3 系統(tǒng)功能結構根據(jù)網(wǎng)上考試系統(tǒng)的特點,可以將其分為前臺和后臺兩個部分進行設計。前臺主要用于考生注冊和登錄系統(tǒng)、在線考試、留言以及退出登錄;后臺主要用于管理員對考生信息、考題信息、考生成績信息、考試套題和課程信息等進行管理。網(wǎng)上考試系統(tǒng)的前臺功能結構圖如下所示:在線考試網(wǎng)前臺系統(tǒng) 考生注冊考生/管理員登錄找回密碼在線考試留言板退出系統(tǒng)考試規(guī)則選擇考試課程套題開始考試考試結束 圖 3.2 網(wǎng)上考試系統(tǒng)前臺功能結構圖網(wǎng)上考試系統(tǒng)的后臺功能結構圖如下
10、所示:添加管理員在線考試網(wǎng)后臺系統(tǒng)管理員信息管理套題信息管理學生成績管理考試題目管理退出系統(tǒng)課程信息管理注冊學生管理修改管理員刪除管理員添加課程刪除套題添加套題刪除課程添加題目刪除題目圖 3.3 網(wǎng)上考試系統(tǒng)后臺功能結構圖4 詳細設計4.1 數(shù)據(jù)庫設計4.1.1 數(shù)據(jù)庫概要說明在程序開發(fā)過程中,數(shù)據(jù)庫設計師非常重要的一個環(huán)節(jié)。一個設計良好的數(shù)據(jù)庫結構,可以提高效率,方便維護,并且為以后進行功能的擴充留有余地。本網(wǎng)站采用 SQL Server 20002數(shù)據(jù)庫,名稱為 mydb,其中包含 6 張數(shù)據(jù)表:tb_Administator,tb_Lesson,tb_Questions,tb_Stude
11、nt,tb_StuResult,tb_Taoti.4.1.2 數(shù)據(jù)庫概念設計通過對網(wǎng)站進行的需求分析、網(wǎng)站流程設計以及系統(tǒng)功能結構的確定,規(guī)劃出系統(tǒng)中使用的數(shù)據(jù)庫實體對象分別為“管理員信息” 、 “課程信息” 、 “套題信息” 、 “考生成績信息” 、 “用戶注冊信息”等。對網(wǎng)站進行有效地管理就要設置一個或多個管理員,管理員實體包括管理員編號、管理員姓名、管理員密碼和注冊時間??荚囂最}實體包括套題名稱、所屬課程、添加時間等屬性。管理員信息實體 E-R 圖3和考試套題實體 E-R 圖分別如下所示: 管理員管理員編號管理員姓名管理員密碼注冊時間圖 4.1 管理員信息實體 E-R 圖 考試套題套題名
12、稱所屬課程添加時間圖 4.2 考試套題實體 E-R 圖考生信息實體包括用戶名、密碼、電子郵件、密碼提示問題、密碼提示答案等屬性。實體 E-R 圖如下所示: 考生安全問題加入時間電子郵件用戶名密碼安全答案圖 4.3 管理員信息實體 E-R 圖4.1.3 數(shù)據(jù)庫邏輯設計根據(jù)在數(shù)據(jù)庫概念設計中給出的數(shù)據(jù)庫實體 E-R 圖,設計數(shù)據(jù)表結構。管理員信息表用于保存管理員信息,tb_Administrator 表的結構如下表所示:表 4.1 tb_Administrator 表的結構字段名稱數(shù)據(jù)類型長度默認值允許空字段描述IDbigint8否唯一標識Namevarchar50否管理員名稱PWDvarchar
13、50否管理員密碼JoinTimedatetime8Getdate()是加入時間 考生課程信息表用于保存課程信息,tb_Lesson 表的結構如下所示: 表 4.2 tb_Lesson 表的結構字段名稱數(shù)據(jù)類型長度默認值允許空字段描述IDbigint8否唯一標識NameVarchar60是課程名稱JoinTimeDatetime8Getdate()是添加時間注冊考生信息表用于保存在網(wǎng)站注冊的考生信息,tb_Student 表的結構如下所示: 表 4.3 tb_Student 表的結構字段名稱數(shù)據(jù)類型長度默認值允許空字段描述IDBigint8否唯一標識UserNameVarchar20是用戶名PW
14、DVarchar20是密碼EmailVarchar20是電子郵件QuestionVarchar20是密碼問題AnswerVarchar20是密碼答案JoinTimedatetime8Getdate()是加入時間考試套題信息表用于保存課程所對應的套題信息,tb_Taoti 表的結構如下所示: 表 4.4 tb_Taoti 表的結構字段名稱數(shù)據(jù)類型長度默認值允許空字段描述IDBigint8否唯一標識NameVarchar50是套題名稱LessonIDBigint8是所屬課程號JoinTimeDatetime8Getdate()是添加時間考生成績信息表用于保存考生的考試成績,tb_StuResult
15、 表的結構如下所示:表 4.5 tb_StuResult 表的結構字段名稱數(shù)據(jù)類型長度默認值允許空字段描述Res_IDBigint8否唯一標識Stu_IDvarchar50是用戶名Which_Lessonvarchar50是所屬課程名稱taotiidBigint8是所屬套題編號taotiNamevarchar50是所屬套題名稱Res_singleInt4是單選成績Res_moreInt4是多選成績Res_totalInt4是總成績Res_subdatedatetime8Getdate()是成績提交時間考試題目信息表用于保存各套題中所包含的詳細考試題目,tb_Questions 表的結構如下所示
16、:表 4.6 tb_Questions 表的結構字段名稱數(shù)據(jù)類型長度默認值允許空字段描述IDBigint8否唯一標識Que_subjectVarchar50是考試題目Que_typeChar10是題目類型Que_joindateDatetime8Getdate()是添加時間Que_lessonidInt4是所屬課程號Que_taotiidBigint8是所屬套題號OptionAVarchar50是選項 AOptionBVarchar50是選項 BOptionCVarchar50是選項 COptinDVarchar50是選項 DQue_answerchar10是正確答案4.1.4 公共類的編寫在
17、網(wǎng)站開發(fā)項目中通常以類的形式來組織、封裝一些常用的方法和事件,公共類的編寫可以減少重復代碼的編寫,有利于代碼維護,在編程過程中可以起到事半功倍的效果。網(wǎng)上考試系統(tǒng)中創(chuàng)建了一個公共類 Datacon,在此公共類中共創(chuàng)建了 6 各方法,具體如下:1. getcon:用來連接在線考試網(wǎng)的數(shù)據(jù)庫,類型為 SqlConnection4。2. eccom:用于執(zhí)行對數(shù)據(jù)庫操作的 SQL 語句命令,如刪除操作命令、修改操作命令等。3. ecadabind:用于將數(shù)據(jù)庫數(shù)據(jù)綁定到表格控件中。4. ecDropDownList5:用于將數(shù)據(jù)綁定到下拉列表框中。5. ecadabindinfostring:用于將
18、數(shù)據(jù)庫數(shù)據(jù)綁定到表格控件中,并獲取數(shù)據(jù)表中的主鍵字段。6. ExceRead:用于讀取數(shù)據(jù)庫中數(shù)據(jù),返回一個 SqlDataReader。1.數(shù)據(jù)庫連接的方法數(shù)據(jù)庫連接的方法在此公共類中編寫了一個 getcon()方法,該方法用來連接數(shù)據(jù)庫,類型為SqlConnection。代碼如下:public SqlConnection getcon() /定義數(shù)據(jù)庫連接字符串 string strCon = Data Source=(local);DataBase=db_Examination;User ID=sa;PWD=sa; /創(chuàng)建一個新的數(shù)據(jù)庫連接 SqlConnection sqlCon =
19、new SqlConnection(strCon); /返回SqlConnection類型的值 return sqlCon; 2.2.執(zhí)行數(shù)據(jù)庫操作命令的方法執(zhí)行數(shù)據(jù)庫操作命令的方法在 eccom6方法中,首先傳一個 SQL 語句,然后與 SQL Server 數(shù)據(jù)庫建立連接 ,應用 SqlCommand 對象執(zhí)行所傳進來的 SQL 語句,最后應用 try-catch-finally 語句進行異常處理,如果執(zhí)行該 SQL 語句則返回 true,反之則返回 false。代碼如下:public bool eccom(string sqlstr) SqlConnection con=this.get
20、con(); con.Open(); SqlCommand mycommand=new SqlCommand(sqlstr,con); try mycommand.ExecuteNonQuery(); return true; catch return false; finally /關閉數(shù)據(jù)庫連接 con.Close(); 注釋:1. SqlConnection 類:SQL Server 數(shù)據(jù)庫一個打開的連接。2. SqlConnection.Open 方法:用于打開數(shù)據(jù)庫連接。3. SqlCommand 類:要對 SQL Server 數(shù)據(jù)庫執(zhí)行的一個 SQL 語句或存儲過程。4. Sql
21、command.ExecuteNonQuery 方法:對連接執(zhí)行 SQL 語句并返回受影響的行數(shù)。3.將數(shù)據(jù)綁定到表格控件的方法將數(shù)據(jù)綁定到表格控件的方法在公共類中為了實現(xiàn)該方法,編寫了一個 ecadabind(GridView gv,string sqlstr4)方法,用來執(zhí)行 SQL 語句,返回類型為 bool 型。該方法主要是執(zhí)行SqlDataAdapter 中的語句,并將其綁定到 GridView 控件上,相應功能執(zhí)行成功后返回true,否則返回 false。代碼如下:public bool ecadabind(GridView gv,string sqlstrl4) /定義新的數(shù)據(jù)庫
22、連接 SqlConnection con = this.getcon(); /打開數(shù)據(jù)庫連接 con.Open(); /定義并初使化數(shù)據(jù)適配器 SqlDataAdapter mydataadapter7 = new SqlDataAdapter(sqlstrl4,con); /創(chuàng)建一個數(shù)據(jù)集mydataset DataSet mydataset = new DataSet(); /將數(shù)據(jù)適配器中的數(shù)據(jù)填充到數(shù)據(jù)集中 mydataadapter.Fill(mydataset); /將此數(shù)據(jù)集作為表格控件的數(shù)據(jù)源 gv.DataSource=mydataset; try /綁定數(shù)據(jù)庫中數(shù)據(jù) gv.
23、DataBind(); /返回這個數(shù)據(jù)集 return true; catch return false; finally /關閉數(shù)據(jù)庫連接 con.Close(); 4.將數(shù)據(jù)綁定到下拉列表框的方法將數(shù)據(jù)綁定到下拉列表框的方法將數(shù)據(jù)綁定到下拉列表框中主要應用了公共類中的 ecDropDownList(DropDownList DDL,string sqlstr3,string DTF,string DVF)方法。該方法首先傳了 4 個值,分別為 DropDownList 控件、SQL 語句、列表項提供的內容字段和列表項提供值;然后與 SQL Server 數(shù)據(jù)庫建立連接,應用 SqlData
24、Adapter 對象填充數(shù)據(jù)集并指定 DropDownList 控件的數(shù)據(jù)源;最后設置列表項提供的內容字段和列表項提供值所綁定的數(shù)據(jù)源,應用 try-catch-finally 語句進行異常處理,如果DropDownList 控件執(zhí)行 DataBind 方法返回 true,反之則返回 false。代碼如下:public bool ecDropDownList(DropDownList DDL, string sqlstr3, string DTF, string DVF) /創(chuàng)建數(shù)據(jù)庫連接 SqlConnection con = this.getcon(); /打開數(shù)據(jù)庫連接 con.Open
25、(); /定義并初使化數(shù)據(jù)適配器 SqlDataAdapter mydataadapter = new SqlDataAdapter(sqlstr3,con); /創(chuàng)建一個數(shù)據(jù)集mydataset DataSet mydataset = new DataSet(); /將數(shù)據(jù)適配器中的數(shù)據(jù)填充到數(shù)據(jù)集中 mydataadapter.Fill(mydataset); DDL.DataSource = mydataset; DDL.DataTextField = DTF9; DDL.DataValueField = DVF; try DDL.DataBind(); return true; cat
26、ch return false; finally /關閉數(shù)據(jù)庫連接 con.Close(); 5.5.在表格控件中獲取數(shù)據(jù)主鍵字段的方法在表格控件中獲取數(shù)據(jù)主鍵字段的方法在表格控件中獲取數(shù)據(jù)主鍵字段的方法,主要應用了公共類中的ecadabindinfostring(GridView gv,string sqlstr5,string DNK)方法,該方法與ecadabind 方法類似。該方法用來執(zhí)行 SQL 語句,返回類型為 bool 型,主要是執(zhí)行 SqlDataAdapter 中的語句,并將其綁定到 GridView 控件上顯示其主鍵字段的名稱,相應功能執(zhí)行成功后返回 true,否則返回 f
27、alse。代碼如下:public bool ecadabindinfostring(GridView gv,string sqlstr5,string DNK) /通過調用公共類中getcon方法,創(chuàng)建一個新的數(shù)據(jù)庫連接對象 SqlConnection con = this.getcon(); /打開數(shù)據(jù)庫連接 con.Open(); /定義并初使化數(shù)據(jù)適配器 SqlDataAdapter mydataadapter = new SqlDataAdapter(sqlstr5,con); /創(chuàng)建一個數(shù)據(jù)集mydataset DataSet mydataset = new DataSet(); /
28、將數(shù)據(jù)適配器中的數(shù)據(jù)填充到數(shù)據(jù)集中 mydataadapter.Fill(mydataset); gv.DataSource=mydataset; gv.DataKeyNames = new string DNK ; try gv.DataBind(); return true; catch return false; finally con.Close(); 6.6.數(shù)據(jù)讀取的方法數(shù)據(jù)讀取的方法數(shù)據(jù)讀取方法主要應用到了公共類中的 ExceRead 方法。首先調用公共類中的getcon 方法創(chuàng)建一個新的數(shù)據(jù)庫連接對象,接著創(chuàng)建一個 SqlCommand 命令對象,然后應用該命令對象的 Exec
29、uteReader 方法創(chuàng)建一個數(shù)據(jù)閱讀器,用來讀取數(shù)據(jù)庫中的數(shù)據(jù),最后返回一個 SqlDataReader 類對象。代碼如下:public SqlDataReader ExceRead(string SqlCom) /通過調用公共類中getcon方法,創(chuàng)建一個新的數(shù)據(jù)庫連接對象 SqlConnection con = this.getcon(); con.Open(); /創(chuàng)建一個SqlCommand對象,表示要執(zhí)行的SqlCom語句或存儲過程 SqlCommand sqlcom = new SqlCommand(SqlCom, con); /創(chuàng)建一個數(shù)據(jù)閱讀器,用來讀取數(shù)據(jù)庫中數(shù)據(jù) Sql
30、DataReader read = sqlcom.ExecuteReader(); return read; 4.2 網(wǎng)頁設計4.2.1 網(wǎng)上考試系統(tǒng)登錄頁面考生和管理員需要通過登錄頁面進入在線考試網(wǎng)??忌诘卿浽诰€考試網(wǎng)之前,首先需要通過登錄頁面進行注冊。為了防止考生忘記密碼,提供了密碼找回功能。在線考試網(wǎng)登錄頁面的運行效果如下所示 圖 4.4 網(wǎng)上考試系統(tǒng)登錄主頁面很多情況下,考生會將密碼遺忘或丟失,這樣就無法登錄自己的學生賬號,為了避免造成不必要的損失,所以設計了找回密碼的功能。找回密碼主要分為 3 個頁面來完成。頁面 1(Findpwd.aspx):輸入已注冊的用戶名;頁面 2(Fin
31、dpwdd.aspx):系統(tǒng)會根據(jù)輸入的用戶名把相應的密碼問題列出來,然后由考生輸入問題答案;頁面 3(returnpwd.aspx):如果問題答案正確,則成功找回密碼。實現(xiàn)代碼:編寫后臺代碼,在 Page_Load 事件中,首先調用隨機驗證碼10,應用驗證碼技術可以防止用戶惡意注冊。其事件代碼如下:protected void Page_Load(object sender, EventArgs e) SessionStuName = this.txtUserName.Text; if (!IsPostBack) /判斷是否首次加載 /調用隨機驗證碼方法 Random rnd = new R
32、andom(); this.labValidate.Text = rnd.Next(1000, 9999).ToString(); 在處理登錄頁面提交的數(shù)據(jù)時,首先會根據(jù)“管理員登錄”復選框的值來判斷是否登錄管理員頁面,如果該復選框被選中則執(zhí)行核對用戶名、密碼和驗證碼而進入管理員頁面,否則進入考生頁面。輸入完相關的用戶名、密碼和驗證碼后,單擊“確定”按鈕,提交登錄信息。代碼如下:protected void btnLogin_Click(object sender, EventArgs e) /判斷驗證碼是否有誤 if(txtValidate.Text!=labValidate.Text) R
33、esponse.Write(alert(驗證碼有誤!);location=javascript:history.go(-1); else /判斷是否是管理員登錄,如果是則調用getcom方法中的條件1 if(cblAdminLog.Items0.Selected=true) getcom(1); /非管理員登錄,調用getcom方法中條件2 else getcom(2); 調用自定義方法 getcom,判斷是管理員還是考生:private void getcom(int i) /打開數(shù)據(jù)庫連接,并調用公共類中的getcon方法 SqlConnection con=dataconn.getcon
34、(); /打開數(shù)據(jù)庫連接 con.Open(); /創(chuàng)建一個新的SqlCommand實例對象 SqlCommand com=con.CreateCommand(); switch(i) case 1: com.CommandText=select count(*) from tb_Administrator where Name=+this.txtUserName.Text+and PWD=+this.txtPwd.Text+; /獲取SQL語句的值強制轉換成數(shù)值類型 int count1=Convert.ToInt32(com.ExecuteScalar(); /判斷數(shù)據(jù)庫中是否存在數(shù)據(jù) i
35、f(count10) ApplicationName=txtUserName.Text; ApplicationPWD=txtPwd.Text; 如果登錄成功,則跳轉到管理員頁面 Page.Response.Redirect(houtai_Default.aspx); else /如果登錄失敗,則彈出錯誤信息 Response.Write(alert(用戶名或密碼有誤!);location=javascript:history.go(-1); break; case 2: /設置SqlCommand命令對象的Text文本屬性 com.CommandText=select count(*)fro
36、m tb_Student where UserName=+txtUserName.Text+and PWD=+txtPwd.Text+; /定義一個int型變量count2,并返回所查詢數(shù)據(jù)表的第一行第一列 int count2=Convert.ToInt32(com.ExecuteScalar(); if(count20) /應用Application對象保存用戶ID及密碼 ApplicationUserName=txtUserName.Text; ApplicationPWD=txtPwd.Text; 頁面跳轉至在線考試頁 Page.Response.Redirect(shouye.asp
37、x); else Response.Write(alert(用戶名或密碼有誤!);location=javascript:history.go(-1); return; break; 4.2.2 注冊頁面要進入在線考試系統(tǒng),考生首先需要注冊一個用戶名。單擊在線考試系統(tǒng)登錄頁中的“注冊” ,進入考生注冊頁面。在注冊頁面中輸入考生的基本信息,包括用戶名、密碼、密碼問題、問題答案、電子郵件等??忌皂撁娴倪\行效果如下圖所示:圖 4.5 網(wǎng)上考試系統(tǒng)考生注冊頁面另外,考生注冊頁應用了 AJAX11無刷新檢測用戶名的技術。AJAX 為 Asynchronous JavaScript and XML 的
38、縮寫,用來描述一組技術的集合,囊括 Java 技術、XML 以及 JavaScript 的編程技術,可以構建基于 Java 技術的 web 應用,并打破了使用頁面重載的慣例。AJAX,異步 Javascript 與 XML,是使用客戶端腳本與 Web12服務器交換數(shù)據(jù)的Web 應用開發(fā)方法。通過 AJAX,Web 頁面不用打斷交互流程就可以進行重新加載,從而實現(xiàn)動態(tài)更新。使用 AJAX,可以創(chuàng)建類似本地桌面 Windows 應用程序。為了防止注冊的用戶名重復,可以通過單擊“檢測注冊號”按鈕進行檢測。如下圖所示,考生輸入注冊的用戶名后通過檢測顯示在數(shù)據(jù)庫中無此號,可以注冊。圖 4.6 檢測用戶名
39、可以使用檢測完考生注冊的用戶名,并在注冊頁面中輸入正確的信息后,如下圖所示,單擊“提交”按鈕,如果注冊成功就將會顯示“注冊成功” ,并跳轉至登錄主頁面。圖 4.7 網(wǎng)上考試系統(tǒng)登錄主頁面圖 4.8 網(wǎng)上考試系統(tǒng)注冊成功4.2.3 在線考試頁面考生在線答卷時首先需要選擇套題,系統(tǒng)需要根據(jù)考生提交的課程和套題信息從數(shù)據(jù)庫中獲取相應題目,然后通過 DataList13控件顯示出來。課程和套題信息是通過Application 變量從上一頁中獲取的。1.Application 對象對象14Application 對象可稱之為記錄應用程序參數(shù)的對象。Application 對象是 HttpApplicat
40、ionState 類的一個實例,它可以生成一個所有 Web應用程序都可以存取的變量。這個變量的使用范圍涵蓋全部使用者,只要正在使用這個網(wǎng)頁的程序都可以存取這個變量。每個 Application 對象變量都是 Application 集合中的對象之一,由 Application 對象統(tǒng)一管理。使用 Application 對象的相關語法如下:Application“變量”=”變量內容”;Application(“對象名”)=Server.CreateObject(Progld)一個網(wǎng)站可以有不止一個 Application 對象。典型情況下,可以針對個別任務的一些文件創(chuàng)建個別個 Applicat
41、ion 對象。例如,可以建立一個 Application 對象來適用全部公用用戶,而再創(chuàng)建另外一個只適用于網(wǎng)絡管理員的 Application 對象2.Session 對象對象Session 對象可稱之為記錄瀏覽器端的變量對象。Session 對象是 HttpSessionState 類的一個實例,其功能和 Application 對象類似,都是用來存儲跨網(wǎng)頁程序的變量或者對象,但 Session 對象和 Application 對象有些特性存在著差異。Session 對象只針對單一網(wǎng)頁使用者,也就是說各個連接的機器都有各自的 Session 對象,不同的客戶端無法互相存取。Applicati
42、on 對象中止于停止 IIS 服務時,而 Session 對象中止于聯(lián)機機器離線時,也就是當網(wǎng)頁使用者關掉瀏覽器或超過設定的Session 變量的有效時間時,Session 對象就會消失。Session 對象和 Application 對象一樣都是 Page 對象的成員,因此可直接在網(wǎng)頁中使用。使用 Session 對象存放信息的語法如下:Session“變量名”=”內容”;從會話中讀取信息的語法如下:VariablesName=Session“變量名”;Session 對象是與特定用戶相聯(lián)系的。針對某一個用戶賦值的 Session 對象是和其他用戶的 Session 對象完全獨立的,不會相互
43、影響。換句話說,這里面針對每一個用戶保存的信息是每一個用戶自己獨享的,不會產(chǎn)生共享情況。在線考試頁的主要功能是允許考生在網(wǎng)站 上針對指定的課程和套題進行考試。在該頁中,考試首先需要閱讀考試規(guī)則,然后選擇考試課程和套題;最后進入考試頁面進行答題,如下圖所示。當考生提交試卷或者到達考試結束時間時,系統(tǒng)將自動對考生提交的試卷進行評分,并給出最終考試成績。圖 4.9 考試規(guī)則圖 4.10 選擇考試課程和套題圖 4.11 考試頁面4.2.4 后臺管理頁面首先介紹一下 SQL Server 試圖方面的技術分析。1. 視圖的概述視圖的概述15視圖時用戶用來查看數(shù)據(jù)庫表中數(shù)據(jù)的一種常用方式,其作用相當于一個虛
44、擬表。當一些用戶需要經(jīng)常訪問數(shù)據(jù)表中某些字段構成的數(shù)據(jù),但從安全角度考慮,又不希望直接接觸數(shù)據(jù)表時,可以利用視圖這一數(shù)據(jù)對象。視圖不是數(shù)據(jù)表,它僅是一些SQL 查詢語句的集合,使用時按照不同的要求從數(shù)據(jù)表中提取不同的數(shù)據(jù)。視圖猶如數(shù)據(jù)表的窗戶,管理員定義這些“窗戶”的位置后,用戶通過它可以瀏覽表中的部分或全部數(shù)據(jù),視圖中數(shù)據(jù)的物理存放位置在數(shù)據(jù)庫的表中,這些表一般稱為視圖的基表。2. 視圖的創(chuàng)建視圖的創(chuàng)建在 SQL Server 中創(chuàng)建視圖有 3 種方法:使用創(chuàng)建視圖向導、企業(yè)管理器或在查詢分析器里執(zhí)行 CREATE VIEW 語句。這里主要介紹在查詢分析器里執(zhí)行 CREATE VIEW 語句
45、。語法格式如下:CREATE VIEW 視圖名(視圖列名 1,視圖列名 2,視圖列名 n)對包含 CREATE VIEW 語句的文本加密WITH ENCRYPTIONASSELECT 語句表示對視圖所有數(shù)據(jù)執(zhí)行修改操作都必須遵守定義視圖 SELECT 語句的WHERE 字句所指定的條件WITH CHECK OPTION在后臺管理中,有很多信息需要刪除,刪除信息的代碼如下16:protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) GridView1.PageIndex = e.NewP
46、ageIndex; /調用公共類中的ecadabind方法, dataconn.ecadabind(GridView1, Select * From tb_Administrator Where + DropDownList1.SelectedValue + Like % + AdminUserName.Text + %); protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) if (e.Row.RowType = DataControlRowType.DataRow) e.Row.Cells
47、2.Text = Convert.ToString(Convert.ToDateTime(e.Row.Cells2.Text).ToShortDateString(); if (e.Row.RowType = DataControlRowType.DataRow) (LinkButton)(e.Row.Cells4.Controls0).Attributes.Add(onclick, return confirm(確定刪除嗎?); protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) /調用
48、公共類中的eccom方法,刪除管理員信息 dataconn.eccom(delete from tb_Administrator where ID= + GridView1.DataKeyse.RowIndex.Value + ); Page.Response.Redirect(houtai_Default.aspx); 后臺管理頁面主要包括管理員信息管理、注冊學生管理、課程信息管理、套題信息管理、學生成績管理、考試題目管理、退出系統(tǒng) 7 個模塊。管理員信息模塊主要是對管理員進行管理,包括添加、刪除管理員以及修改管理員密碼等。 圖 4.12 管理員信息管理頁面注冊學生管理模塊用于管理員管理注冊
49、地考生,他們可以通過關鍵字查詢某一個學生,也可以刪除某一個學生。圖 4.13 注冊學生信息管理頁面課程信息管理模塊主要用來添加和刪除課程。添加課程時,只需要在文本框中直接輸入名稱即可,然后進行添加操作。代碼如下:圖 4.14 課程信息管理頁面考試套題管理頁的主要功能包括對考試套題進行添加、查詢、修改和刪除操作。添加考試套題信息時,需要首先在文本框中輸入所添加的套題名稱,并在下拉列表框中選擇所屬課程名,然后再進行添加操作;在考試套題信息列表頁面中,可以通過選擇不同德 查詢條件(如套題名稱和所屬課程)并輸入相應的關鍵字,來實現(xiàn)查詢操作;根據(jù)實際需要,還可以實時更新考試套題中的詳細信息或者刪除考試套
50、題??荚囂最}管理頁面的運行效果如下圖所示:圖 4.15 套題信息管理頁面在考試套題信息“查詢”按鈕事件中主要應用到了 SQL Server 視圖數(shù)據(jù)處理技術,該頁創(chuàng)建的視圖名為 kecheng_taoti_view,建立該視圖的目的主要是從 tb_Lesson和 tb_Taoti 兩張表中檢索出包括套題名稱、所屬課程和加入時間的信息。代碼如下:protected void Button1_Click(object sender, EventArgs e) if (TextBox1.Text = ) dataconn.ecadabindinfostring(GridView1, select *
51、 from tb_Taoti ORDER BY ID DESC, ID); else dataconn.ecadabind(GridView1, Select * From kecheng_taoti_view Where + DropDownList1.SelectedValue + Like % + TextBox1.Text + %); 圖 4.16 學生成績管理頁面 考試題目管理頁的主要功能包括對考試題目進行添加、查詢、修改和刪除操作。添加考試題目信息時,需要選擇所屬的考試專業(yè)、課程和套題;在考試題目信息列表頁面中,可以通過選擇不同的查詢條件(例如,考題類型、所屬課程、所屬套題和加入時
52、間)并輸入相應的關鍵字,來實現(xiàn)查詢操作;根據(jù)實際需要,還可以實時更新考試題目中的詳細信息或者刪除考試題目。在添加考試題目時,需要考慮該考試屬于哪門課程、哪一套題,然后單擊頁面中的“提交”按鈕,進行考試試題的添加。題目插入的代碼如下:protected void Button1_Click1(object sender, EventArgs e) if (this.TextBox1.Text != ) SqlConnection con = dataconn.getcon(); con.Open(); string sqlstr1 = select count(*) from tb_Questi
53、ons where Que_subject= + TextBox1.Text.ToString() + ; SqlCommand mycom = new SqlCommand(sqlstr1, con); int intcount = Convert.ToInt32(mycom.ExecuteScalar(); if (intcount 0) Page.Response.Write(alert(對不起!此題目已經(jīng)添加!);location=timu_Insert.aspx); else string m_strTemp = string.Empty; /讀取CheckBoxList 選中的值,保存起來 for (int i = 0; i CheckBoxList1.It
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 太陽能提燈產(chǎn)業(yè)鏈招商引資的調研報告
- 皮制手提包市場分析及投資價值研究報告
- 電高壓鍋市場發(fā)展前景分析及供需格局研究預測報告
- 小酒館服務行業(yè)營銷策略方案
- 家用電烹飪鍋產(chǎn)業(yè)鏈招商引資的調研報告
- 手動胡椒研磨器產(chǎn)業(yè)鏈招商引資的調研報告
- 家庭法律服務行業(yè)經(jīng)營分析報告
- 紫外線鹵素金屬蒸氣燈商業(yè)機會挖掘與戰(zhàn)略布局策略研究報告
- 穿耳式耳環(huán)項目營銷計劃書
- 冷媒表產(chǎn)業(yè)鏈招商引資的調研報告
- 全國初中數(shù)學競賽輔導(全套)
- 醫(yī)學免疫學名詞解釋和簡答題
- 自行車連鎖店運營手冊范本
- 銀行分行第一屆辯論賽方案
- 高中思想政治課《公司的經(jīng)營與發(fā)展》教學案例分析
- 起重機械自檢報告(共5頁)
- (精選)活動房產(chǎn)品手冊Word版
- 淺析資產(chǎn)評估中稅收事項
- 武建〔2005〕273號
- IEEE1588學習筆記
- 危險化學品企業(yè)安全風險智能化管控平臺建設指南(試行)
評論
0/150
提交評論