




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
....44/50C#語言Windows程序設(shè)計畢業(yè)設(shè)計(論文)文檔題目基于.Net的駕照理論在線考c#windows學(xué)生信息管理試XXXXXXXXXXXXXXXXXXXXXXX系統(tǒng)學(xué)院(部)信息科學(xué)與技術(shù)學(xué)院信息科學(xué)與技術(shù)XXXXXXXXXXXXXX學(xué)院專業(yè)軟件工程學(xué)生XX羅文勝黃飛XXX學(xué)號0631041013020081041440XXXXXXXXXXX0年級087級指導(dǎo)教師黃榮兵黃榮兵XXX職稱講師2011年46X月1515基于.Net的駕照理論在線考試系統(tǒng)摘要:隨著互聯(lián)網(wǎng)的飛速發(fā)展和社會信息化水平的不斷提高,計算機(jī)網(wǎng)絡(luò)技術(shù)在教育領(lǐng)域的應(yīng)用越來越廣泛,傳統(tǒng)的考試方式正在面臨著重大的變革,網(wǎng)絡(luò)考試作為一種先進(jìn)的考試方式,將成為必然趨勢。因此,開發(fā)一個功能完善的在線考試系統(tǒng)有了迫切的市場需求。駕照理論在線考試系統(tǒng)就是在線考試系統(tǒng)的一個實(shí)際應(yīng)用。本系統(tǒng)采用ASP.NET框架技術(shù)和MicrosoftSQLServer2005關(guān)系數(shù)據(jù)庫管理系統(tǒng)開發(fā)了一個基于B/S三層架構(gòu)的駕照理論在線考試系統(tǒng)。該系統(tǒng)具有用戶登錄、在線考試、用戶管理、試題管理、成績管理5大功能模塊,實(shí)現(xiàn)了用戶管理、試題管理、隨機(jī)出題、自動閱卷等功能,改進(jìn)了對駕駛員考核的手段,實(shí)現(xiàn)了由傳統(tǒng)考試方式向網(wǎng)絡(luò)無紙化考試方式的轉(zhuǎn)變。關(guān)鍵詞:ASP.NET;駕駛理論;在線考試;B/S架構(gòu);管理信息系統(tǒng);DrivingTheoryOnlineExaminationSystemBasedon.NetAbstract:WiththerapiddevelopmentofInternetandthesocialinformationlevelunceasingenhancement,thecomputernetworktechnologyintheeducationfieldusedmorewidely,thetraditionalwaysofexaminationarefacingseriouschanges,Theexam-onlineasakindofadvancedexaminationway,whichwillbecomeaninevitabletrend.Therefore,thedevelopmentofaperfectfunctionoftheonlineexaminationsystemhastheurgentdemandofthemarket.Drivingtheoryonlineexaminationsystemisonlineexaminationsystemaspracticalapplication.ThissystemwiththeuseofASP.NETframeworktechnologydeveloped,soMicrosoftSQLServerforthedevelopmentofa2005databasebasedonB/Sthree-layerframeworkdrivingtheoryonlineexaminationsystem.Thesystemisdividedintofivebigfunctionsmodule,onlineexamination,systemmanagementandsoon,Thesystemaccomplishsomefunction,includetheusermanagement,exammanagement,randomcribbed,automaticscoring,andtheotherfunctions.Thissystemhasimprovetheassessmenttothedriver,itrealizedbymeansoftraditionaltestmethodstochangethewayofnetworkpaperlessexamination.Keywords:ASP.NET;Drivingtheory;Onlineexam;B/Sstructure;Managementinformationsystem目錄緒論1第1章關(guān)鍵技術(shù)與相關(guān)理論21.1.NET框架概述21.2ASP.NET概述21.2.1ASP.NET的技術(shù)概述21.2.2ASP.NET的運(yùn)行原理41.3ADO.NET概述41.4三層架構(gòu)概述51.4.1三層架構(gòu)系統(tǒng)模型51.4.2ASP.NET中三層架構(gòu)的實(shí)現(xiàn)5第2章學(xué)生信息管理駕照理論考試系統(tǒng)分析72.1功能需求分析72.2數(shù)據(jù)庫需求分析72.3環(huán)境需求分析72.4項目可行性分析8第3章學(xué)生信息管理駕照理論考試系統(tǒng)設(shè)計93.1模塊設(shè)計93.1.1系統(tǒng)主用例圖93.1.2系統(tǒng)業(yè)務(wù)流程圖103.2數(shù)據(jù)庫設(shè)計113.2.1數(shù)據(jù)庫設(shè)計原則113.2.2數(shù)據(jù)庫表設(shè)計113.2.3數(shù)據(jù)庫關(guān)系圖設(shè)計133.3系統(tǒng)界面設(shè)計143.3.1界面設(shè)計原則143.3.2用戶登錄界面設(shè)計143.3.3考試規(guī)則界面設(shè)計143.3.4在線考試界面設(shè)計153.3.5考試成績界面設(shè)計153.3.6后臺管理界面設(shè)計163.3.7考生信息管理界面設(shè)計163.3.8試題信息管理界面設(shè)計173.3.9考試成績管理界面設(shè)計173.3.10數(shù)據(jù)導(dǎo)入管理界面設(shè)計183.3.11考試功能管理界面設(shè)計18第4章學(xué)生信息駕駛考試系統(tǒng)功能實(shí)現(xiàn)194.1公共類194.2用戶登陸功能實(shí)現(xiàn)214.3隨機(jī)抽取試題功能實(shí)現(xiàn)234.4自動交卷功能實(shí)現(xiàn)244.5試題檢查功能實(shí)現(xiàn)254.6自動評分功能實(shí)現(xiàn)264.7后臺管理功能實(shí)現(xiàn)274.7.1試題管理274.7.2用戶信息管理294.7.3考試成績管理324.7.4數(shù)據(jù)導(dǎo)入管理344.7.5考試功能管理35第5章系統(tǒng)測試與改進(jìn)思想365.1系統(tǒng)測試的定義365.2系統(tǒng)測試的重要性365.3系統(tǒng)測試的常用方法365.4測試環(huán)境365.4.1硬件環(huán)境365.4.2軟件環(huán)境375.5測試內(nèi)容375.5.1學(xué)生考生信息管理375.6改進(jìn)思想38結(jié)束語39致謝40參考文獻(xiàn)41附錄一42緒論近年來,隨著汽車制造業(yè)的迅猛發(fā)展,人民生活水平的不斷提高,特別是中低檔、低排量的小轎車價位大幅度下降,普通市民和一些富裕起來的老百姓擁有一輛汽車已不再是可望而不可與的事。越來越多的人開私家車到異地進(jìn)行商務(wù)或者旅游等活動,但隨之而來的“私家車”道路交通事故也如影隨形,成為當(dāng)前重大交通安全隱患之一。越來越多的家庭擁有了自己的小轎車,還有更多的家庭正在積極醞釀購車計劃。私家車的大幅度增長對公安交通管理提出了嚴(yán)峻的挑戰(zhàn),其帶來的社會問題正日益凸顯。為減少交通事故的發(fā)生,車管所對駕駛員的交通知識考核起著至關(guān)重要的作用。學(xué)車的人越來越多,信息量也不斷增加,繁瑣的數(shù)據(jù)處理費(fèi)時費(fèi)力,單純以人力進(jìn)行的駕駛員理論考試的考核已經(jīng)不再適合駕駛理論考試的現(xiàn)狀。隨著計算機(jī)技術(shù)的發(fā)展與計算機(jī)的日益普與,基于Web在線考試與無紙化辦公一樣已成為大勢所趨。與傳統(tǒng)的考試方式相比,基于Web的在線考試的優(yōu)勢不但體現(xiàn)在人力上也體現(xiàn)在物力上,它可以實(shí)現(xiàn)隨機(jī)出題、在線考試、自動閱卷、成績存檔等功能,能有效的避免資源的浪費(fèi),有利于環(huán)保和提高工作效率,使考試更客觀、公正。在這樣的環(huán)境下,使用先進(jìn)的信息技術(shù)進(jìn)行駕駛員理論考試已成為必要。目前,很多國內(nèi)外的大學(xué)、企業(yè)、培訓(xùn)機(jī)構(gòu)和社會其他部門都開始采用無紙化的考試方式進(jìn)行考核,在線考試已被越來越多的人所接受。比如:微軟認(rèn)證(微軟公司的MCSE,MCDBA,MCSD等考試),思科認(rèn)證(CiscoCareerCertification),惠普認(rèn)證(HP.UX),SUN公司的JAVA認(rèn)證考試,職業(yè)英語在線考試,計算機(jī)等級考試,以與各遠(yuǎn)程教育學(xué)院和網(wǎng)絡(luò)教育學(xué)院的考試等等[1]。這充分的說明了無紙化的在線考試方式已成為大勢所趨。駕校理論在線考試系統(tǒng)就是在線考試系統(tǒng)的一個實(shí)際應(yīng)用,它以計算機(jī)為操作工具,按照駕駛理論考試的流程,把駕駛理論考試的一些工作人員從繁瑣的數(shù)據(jù)處理中解放出來,可以有效的避免資源的浪費(fèi)。系統(tǒng)可隨機(jī)出題與自動閱卷評分,使相鄰考生的題目不同,從而減少了作弊的可能,杜絕了在人工閱卷時可能出現(xiàn)的徇私舞弊的行為,使得考試更公正。當(dāng)前各級各類考試系統(tǒng)層出不窮,所用技術(shù)各異。開發(fā)一個基于Web的在線考試系統(tǒng)在開發(fā)語言方面可選擇:ASP、JSP、PHP、ASP.NET;數(shù)據(jù)庫技術(shù)方面可選擇:MSSQL、MYSQL、ACCESS、ORACLE以與DB2;在應(yīng)用模式方面可選擇:B/S模式、C/S模式、B/S和C/S混合模式。這些技術(shù)都有這各自的優(yōu)點(diǎn)和缺點(diǎn),通過不同的技術(shù)的選擇搭配,所開發(fā)出來的系統(tǒng)的效果也不同[2]。因此,本人通過參考關(guān)于在線考試系統(tǒng)的相關(guān)文獻(xiàn),將各種技術(shù)的優(yōu)缺點(diǎn)進(jìn)行了比較。最后決定運(yùn)用當(dāng)前流行的ASP.NET框架技術(shù)[3],配合SQL技術(shù)來編寫一個適合畢業(yè)設(shè)計課題任務(wù)的B/S三層架構(gòu)的駕校理論在線考試系統(tǒng),使其具有通用在線考試系統(tǒng)的功能[4.5]。本文對在線考試系統(tǒng)研究背景和意義進(jìn)行了闡述,介紹了在線考試系統(tǒng)的發(fā)展?fàn)顩r,分析了要實(shí)現(xiàn)基于.NET的駕校理論在線考試系統(tǒng)涉與到的關(guān)鍵技術(shù)。然后本文從駕校理論在線考試系統(tǒng)的需求入手,分析了該系統(tǒng)應(yīng)該具備的功能點(diǎn),對系統(tǒng)的總體構(gòu)架進(jìn)行了設(shè)計,并對數(shù)據(jù)庫進(jìn)行了詳細(xì)設(shè)計。隨后,運(yùn)用相關(guān)技術(shù)給出了具體的實(shí)現(xiàn),包括用戶登錄、隨機(jī)出題、在線考試、自動閱卷、用戶管理、試題管理等功能。在項目測試階段,對整個系統(tǒng)的相關(guān)功能進(jìn)行了測試,并對測試結(jié)果進(jìn)行了分析說明。最后,對本次畢業(yè)設(shè)計工作進(jìn)行總結(jié),闡述工作期間的體會,并對下一步的工作進(jìn)行了說明,對駕校理論在線考試系統(tǒng)未來的發(fā)展做出了展望。學(xué)生信息管理系統(tǒng)是為了學(xué)校更能方便的管理學(xué)生信息而設(shè)計的,實(shí)現(xiàn)對學(xué)生信息的基本管理,增刪查改!隨著信息話時代的到來,學(xué)生信息管理系統(tǒng)將會發(fā)揮更大的優(yōu)勢,節(jié)省人力資源,節(jié)省開支,改系統(tǒng)操作方便,更方便教師的使用。第1章關(guān)鍵技術(shù)與相關(guān)理論1.1.NET框架概述Microsoft開發(fā)的.NETFramework是一種新的軟件開發(fā)平臺,它簡化了在高度分布式Internet環(huán)境中的應(yīng)用程序開發(fā),是支持生成和運(yùn)行下一代應(yīng)用程序和XMLWebservices的內(nèi)部Windows組件。.NETFramework旨在實(shí)現(xiàn)下列目標(biāo):提供一個一致的面向?qū)ο蟮木幊汰h(huán)境,而無論對象代碼是在本地存儲和執(zhí)行,還是在本地執(zhí)行但在Internet上分布,或者是在遠(yuǎn)程執(zhí)行;提供一個將軟件部署和版本控制沖突最小化的代碼執(zhí)行環(huán)境;提供一個可提高代碼(包括由未知的或不完全受信任的第三方創(chuàng)建的代碼)執(zhí)行安全性的代碼執(zhí)行環(huán)境;提供一個可消除腳本環(huán)境或解釋環(huán)境的代碼執(zhí)行環(huán)境;使開發(fā)人員的經(jīng)驗(yàn)在面對類型大不一樣的應(yīng)用程序(如基于Windows的應(yīng)用程序和基于Web的應(yīng)用程序)時保持一致;按照工業(yè)標(biāo)準(zhǔn)生成所有通信,以確?;?NETFramework的代碼可與任何其他代碼集成。.NETFramework具有兩個主要組件:公共語言運(yùn)行庫(CLR)和.NETFramework(FCL)類庫。公共語言運(yùn)行時是.NETFramework的基礎(chǔ)。您可以將運(yùn)行時看作一個在執(zhí)行時管理代碼的代理,它提供核心服務(wù)(如內(nèi)存管理、線程管理和遠(yuǎn)程處理等),并且強(qiáng)制實(shí)施嚴(yán)格的類型安全性以與可提高安全性和可靠性的其他形式的代碼準(zhǔn)確性。事實(shí)上,代碼管理的概念是運(yùn)行時的基本原則。以運(yùn)行時為目標(biāo)的代碼稱為托管代碼,而不以運(yùn)行時為目標(biāo)的代碼稱為非托管代碼。.NETFramework的另一個主要組件是類庫,它是一個綜合性的面向?qū)ο蟮目芍赜妙愋图?,您可以使用它開發(fā)多種應(yīng)用程序,這些應(yīng)用程序包括傳統(tǒng)的命令行或圖形用戶界面(GUI)應(yīng)用程序,也包括基于ASP.NET所提供的新增的應(yīng)用程序(如Web窗體和XMLWebservices)。.NETFramework可由非托管組件承載,這些組件將公共語言運(yùn)行庫加載到它們的進(jìn)程中并啟動托管代碼的執(zhí)行,從而創(chuàng)建一個可以同時利用托管和非托管功能的軟件環(huán)境。.NETFramework不但提供若干個運(yùn)行時宿主,而且還支持第三方運(yùn)行時宿主的開發(fā)。在圖1-1所示的.NETFramework平臺上顯示了公共語言運(yùn)行時和類庫與應(yīng)用程序以與與整個系統(tǒng)之間的關(guān)系[6]。圖1-1.NETFramework平臺1.2ASP.NET概述1.2.1ASP.NET的技術(shù)概述Asp.Net是一種強(qiáng)大的Web服務(wù)器端技術(shù),與ASP相比,ASP.NET擁有更高的編譯特性與緩存機(jī)制。其特點(diǎn)包括:與其底層框架.NET緊密結(jié)合;將事件模型引入到Web應(yīng)用程序的開發(fā)領(lǐng)域;支持多種語言開發(fā),包括C#、VisualBasic和Jscript等。ASP.NET不僅僅是ASP的新版本,也是統(tǒng)一的Web開發(fā)平臺,用來提供開發(fā)人員生成企業(yè)級Web應(yīng)用程序所需的服務(wù)。ASP.NET是一個已編譯的基于.NET環(huán)境,可以用任何與.NET兼容的語言(包括C#.NET、VisualBasic.NET和Jscript.NET)創(chuàng)作應(yīng)用程序,而不僅僅是原來ASP采用的JavaScript和VBScript。ASP.NET可以無縫的與WYSIWYG(whatyouseeiswhatyouget)HTML編輯器和其他編程工具(包括MicrosoftVisualStudio.NET)一起工作。這不僅使得Web開發(fā)更加方便,而且還能提供這些工具必須提供的所有優(yōu)點(diǎn),包括開發(fā)人員可以用來將服務(wù)器控件拖放到Web頁的GUI和完全集成的調(diào)試支持。另外,任何ASP.NET應(yīng)用程序都可以使用整個.NETFramework。ASP.NET利用.NETFramework和公共語言運(yùn)行庫(CLR)中的性能增強(qiáng)功能。所有ASP.NET代碼都是可編譯的,而不是解釋的,這就允許對本機(jī)代碼采用早期綁定強(qiáng)類型處理,以與實(shí)行(JIT)編譯。ASP.NET可方便的分解,即開發(fā)人員可以移除那些與自己開發(fā)的應(yīng)用程序不相關(guān)的模塊。ASP.NET提供豐富的緩存服務(wù)(包括內(nèi)置服務(wù)和緩存API兩種)。ASP.NET還提供性能計時器和默認(rèn)授權(quán)和驗(yàn)證方案。ASP.NET配置設(shè)置存儲在基于XML的文件中,這些文件都是可讀和可寫的。每個應(yīng)用程序都可以有不用的配置文件,可以擴(kuò)展配置方案,以適應(yīng)用戶的要求。當(dāng)應(yīng)用程序安裝在同一臺計算機(jī)上,但使用不同的.NETFramework版本時,應(yīng)用是并行運(yùn)行的。當(dāng)創(chuàng)建ASP.NET應(yīng)用程序時,開發(fā)人員可以試用Web窗體或者XMLWebservices,或者以他們認(rèn)為合適的任何方式進(jìn)行組合。ASP.NET具有以下優(yōu)點(diǎn):(1)運(yùn)行效率的大幅度提高ASP.NET是把基于通用語言的程序在服務(wù)器上運(yùn)行。不像以前的ASP即時解釋程序,而是將程序放在服務(wù)器端首次運(yùn)行時進(jìn)行編譯,這樣的執(zhí)行效果,當(dāng)然比一條一條的解釋強(qiáng)很多。(2)世界級的工具支持ASP.NET構(gòu)架可以用Microsoft公司最新的產(chǎn)品VisualStudio.NET開發(fā)環(huán)境進(jìn)行開發(fā),WYSIWYG(WhatYouSeeIsWhatYouGet所見即所得)的編譯。(3)強(qiáng)大性和適應(yīng)性因?yàn)锳SP.NET是基于通用語言的編譯運(yùn)行的程序,所以它的強(qiáng)大性和適應(yīng)性,可以使它運(yùn)行在Web應(yīng)用軟件開發(fā)者的幾乎全部的平臺上(筆者到現(xiàn)在為止只知道它只能用在Windows2000/2003Server/VISTA/XP/7上)。通用語言的基本庫,消息機(jī)制,數(shù)據(jù)接口的處理都能無縫的整合到ASP.NET的Web應(yīng)用中。ASP.NET同時也是language-independent(語言獨(dú)立化)的,所以,你可以選擇一種最適合你的語言來編寫你的程序,或者把你的程序用很多種語言來寫,現(xiàn)在已經(jīng)支持的有C#(C++和Java的結(jié)合體),VB,Jscript,C++、F++。將來,這樣的多種程序語言協(xié)同工作的能力保護(hù)您現(xiàn)在的基于COM+開發(fā)的程序,能夠完整的移植向ASP.NET。(4)簡單性和易學(xué)性ASP.NET使運(yùn)行一些很平常的任務(wù)如表單的提交客戶端的身份驗(yàn)證、分布系統(tǒng)和網(wǎng)站配置變得非常簡單。例如ASP.NET頁面構(gòu)架允許你建立你自己的用戶分界面,使其不同于常見的VB-LIKE界面。另外,通用語言簡化了開發(fā)過程,把代碼集合成軟件簡單得就像裝配電腦。(5)可管理性ASP.NET使用一種字符基礎(chǔ)的、分級的配置系統(tǒng),使服務(wù)器環(huán)境和應(yīng)用程序的設(shè)置更加簡單。因?yàn)榕渲眯畔⒍急4嬖诤唵挝谋局?,新的設(shè)置有可能都不需要啟動本地的管理員工具就可以實(shí)現(xiàn)。這種被稱為“ZeroLocalAdministration”的哲學(xué)觀念使ASP.NET的基于應(yīng)用的開發(fā)更加具體和快捷。一個ASP.NET的應(yīng)用程序在一臺服務(wù)器系統(tǒng)的安裝只需要簡單的拷貝一些必要的文件,不需要系統(tǒng)的重新啟動,一切就是這么簡單。(6)多處理器環(huán)境的可靠性ASP.NET已經(jīng)被刻意設(shè)計成一種可以用于多處理器的開發(fā)工具,它在多處理器的環(huán)境下用特殊的無縫連接技術(shù),將很大地提高運(yùn)行速度。即使現(xiàn)在的ASP.NET應(yīng)用軟件是為一個處理器開發(fā)的,將來多處理器運(yùn)行時不需要任何改變都能提高他們的效能,但現(xiàn)在的ASP卻做不到這一點(diǎn)。(7)定義性和擴(kuò)展性ASP.NET設(shè)計時考慮了讓網(wǎng)站開發(fā)人員可以在自己的代碼中自己定義“plug-in”的模塊。這與原來的包含關(guān)系不同,ASP.NET可以加入自定義的組件,網(wǎng)站程序的開發(fā)變得更加簡單。(8)安全性基于Windows認(rèn)證技術(shù)和應(yīng)用程序配置,可以確保你的源程序是絕對安全的[7]。1.2.2ASP.NET的運(yùn)行原理ASP.NET網(wǎng)站應(yīng)用程序是由許多ASP.NET網(wǎng)頁組成的,默認(rèn)情況下,ASP.NET網(wǎng)頁的擴(kuò)展名都是.aspx。當(dāng)用戶在瀏覽器中輸入ASP.NET網(wǎng)頁的網(wǎng)址后,瀏覽器就會對該網(wǎng)頁所在的網(wǎng)址送出一個要求(Request)--查看網(wǎng)頁的要求,網(wǎng)站服務(wù)器收到后會將此要求轉(zhuǎn)送到網(wǎng)頁所屬的ASP.NET網(wǎng)站應(yīng)用程序,接著執(zhí)行網(wǎng)頁,將執(zhí)行結(jié)果傳回用戶的瀏覽器中[8]。如圖1-2所示。圖1-2ASP.NET網(wǎng)站應(yīng)用程序運(yùn)行原理1.3ADO.NET概述使用ASP.NET訪問數(shù)據(jù)庫要通過使用ADO.NET組件。ADO.NET是微軟在.NET平臺下提出的數(shù)據(jù)庫訪問模型,與ADO相比,ADO.NET與ADO有很大的不同,它是一個全新的數(shù)據(jù)訪問模型,并不是ADO為適應(yīng).NET基礎(chǔ)構(gòu)造而進(jìn)行的改進(jìn)版本。ADO.NET提供對MicrosoftSQLServer、OLEDB和XML公開的數(shù)據(jù)源的一致性訪問,在.NET框架中我們可以使用ADO.NET的兩個組件來訪問和處理數(shù)據(jù)庫數(shù)據(jù),即用于連接到數(shù)據(jù)庫、執(zhí)行命令和檢索結(jié)果的.NETFramework數(shù)據(jù)提供程序和用于存放檢索結(jié)果的數(shù)據(jù)集(DataSet),ADO.NET可以直接處理檢索到的結(jié)果,也可以將結(jié)果放入到ADO.NET的DataSet對象中,以便與來自多個源的數(shù)據(jù)或在層之間進(jìn)行遠(yuǎn)程處理的數(shù)據(jù)組合在一起,以特殊方式向用戶公開。ADO.NET的DataSet對象也可以獨(dú)立于.NETFramework數(shù)據(jù)提供程序使用,以管理程序本地的數(shù)據(jù)或源自XML的數(shù)據(jù)。在.NETFramework數(shù)據(jù)提供程序組件中,系統(tǒng)為我們提供了五個對象來操作數(shù)據(jù)庫,它們的關(guān)系如圖1-3所示。在圖1-3中,不僅展示了.NETFramework數(shù)據(jù)提供程序組件的組成,而且還展示了數(shù)據(jù)集組件的組成,從中我們還可以看出這兩個組件是有聯(lián)系的。在.NETFramework數(shù)據(jù)提供程序組件中,Connection對象提供與數(shù)據(jù)庫的鏈接,是操作數(shù)據(jù)庫的基礎(chǔ),是應(yīng)用程序和數(shù)據(jù)源之間的唯一會話。Command對象能夠執(zhí)行用于返回數(shù)據(jù)、修改數(shù)據(jù)、運(yùn)行存儲過程以與發(fā)送或檢索參數(shù)信息的數(shù)據(jù)庫命令,實(shí)現(xiàn)對數(shù)據(jù)源的操作,如查詢、插入、修改和刪除等。DataReader對象從數(shù)據(jù)源中讀取只進(jìn)且只讀的數(shù)據(jù)流。DataAdapter對象是DataSet對象和數(shù)據(jù)源之間關(guān)聯(lián)的橋梁,用數(shù)據(jù)源填充DataSet并解析更新。設(shè)計ADO.NET組件的目的是為了從“數(shù)據(jù)操作”中分解出“數(shù)據(jù)訪問”[9]。圖1-3ADO.NET組件1.4三層架構(gòu)概述1.4.1三層架構(gòu)系統(tǒng)模型在過去應(yīng)用系統(tǒng)開發(fā)過程中,CLIENT/SERVER體系結(jié)構(gòu)得到了廣泛的應(yīng)用。其特點(diǎn)是,應(yīng)用程序邏輯通常分布在客戶和服務(wù)器兩端,客戶端發(fā)出數(shù)據(jù)資源訪問請求,服務(wù)器端將結(jié)果返回客戶端。但CLIENT/SERVER結(jié)構(gòu)存在著很多體系結(jié)構(gòu)上的問題,比如:當(dāng)客戶端數(shù)目激增時,服務(wù)器端的性能會因?yàn)樨?fù)載過重而大大衰減;一旦應(yīng)用的需求發(fā)生變化,客戶端和服務(wù)器端的應(yīng)用程序都需要進(jìn)行修改,給應(yīng)用維護(hù)和升級帶來了極大的不便;大量的數(shù)據(jù)傳輸增加了網(wǎng)絡(luò)的負(fù)載等等。采用分層設(shè)計的思想,可以使軟件達(dá)到諸如可維護(hù)性、可重用性、可伸縮性、可靠性和安全性等運(yùn)行要求,因此在軟件開發(fā)時是非常值得提倡的。所謂三層體系結(jié)構(gòu),是在客戶端與數(shù)據(jù)庫之間加入了一個中間層,也叫組件層。這里所說的三層體系,不是指物理上的三層,不是簡單地放置三臺機(jī)器就是三層體系結(jié)構(gòu),也不僅僅有B/S應(yīng)用才是三層體系結(jié)構(gòu),三層是指邏輯上的三層,即使這三個層放置到一臺機(jī)器上。三層體系的應(yīng)用程序?qū)I(yè)務(wù)規(guī)則、數(shù)據(jù)訪問、合法性校驗(yàn)等工作放到了中間層進(jìn)行處理。通常情況下,客戶端不直接與數(shù)據(jù)庫進(jìn)行交互,而是通過COM/DCOM通訊與中間層建立連接,再經(jīng)由中間層與數(shù)據(jù)庫進(jìn)行交換。三層體系結(jié)構(gòu)將B/S系統(tǒng)劃分為三層獨(dú)立的包,包括表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。其中將實(shí)現(xiàn)人機(jī)界面的表單放在表示層,將所有業(yè)務(wù)規(guī)則和邏輯實(shí)現(xiàn)封裝在負(fù)責(zé)業(yè)務(wù)邏輯層中,將與數(shù)據(jù)庫的交互封裝在數(shù)據(jù)訪問層中[10.11]。如圖1-4所示。圖1-4三層架構(gòu)模型圖1.4.2ASP.NET中三層架構(gòu)的實(shí)現(xiàn)在ASP.NET中,我們通常所說的三層架構(gòu)包含表示層、業(yè)務(wù)層、和數(shù)據(jù)層三層。對于應(yīng)用系統(tǒng)來講,表示層和用戶交互并顯示數(shù)據(jù),業(yè)務(wù)層負(fù)責(zé)訪問數(shù)據(jù)層并向表示層提交數(shù)據(jù),數(shù)據(jù)層負(fù)責(zé)數(shù)據(jù)的存儲。(1)表示層它主要是指與用戶交互的界面,它接收用戶的輸入,但并不包括任何實(shí)際的業(yè)務(wù)處理,它只是簡單地將數(shù)據(jù)轉(zhuǎn)交給業(yè)務(wù)層,同時,它負(fù)責(zé)展現(xiàn)業(yè)務(wù)層傳遞過來的數(shù)據(jù),當(dāng)后臺業(yè)務(wù)邏輯更新時,表示層就會展示這些更新。表示層提供應(yīng)用程序的用戶界面(UI),通常包括Windows窗體(比如桌面應(yīng)用程序)和ASP.NETWeb窗體(aspx、asp、html等頁面)的使用。(2)業(yè)務(wù)層它代表了應(yīng)用程序的核心功能,負(fù)責(zé)處理數(shù)據(jù)層的數(shù)據(jù),實(shí)現(xiàn)業(yè)務(wù)邏輯。業(yè)務(wù)層是業(yè)務(wù)概念的軟件實(shí)現(xiàn)。業(yè)務(wù)層封裝業(yè)務(wù)邏輯,業(yè)務(wù)邏輯實(shí)現(xiàn)某種規(guī)則的業(yè)務(wù)處理以匹配特定公司的需要。例如,確定某個指定客戶是否被批準(zhǔn)進(jìn)行某項借貸活動的業(yè)務(wù)規(guī)則可以封裝在小型解決方案的客戶業(yè)務(wù)組件中。對于大型解決方案,所有與借貸有關(guān)的業(yè)務(wù)邏輯可能都封裝在單獨(dú)的一個借貸組件中。由于編程語言的不同,業(yè)務(wù)層可以是項目中的.vb或.cs等文件,也可以是由這些文件生成的.dll文件,提供系統(tǒng)業(yè)務(wù)邏輯的處理。(3)數(shù)據(jù)層負(fù)責(zé)訪問數(shù)據(jù)庫,并將存儲在數(shù)據(jù)庫中的數(shù)據(jù)提交給業(yè)務(wù)層。數(shù)據(jù)訪問層封裝了對數(shù)據(jù)庫各種操作的部分,大體包括數(shù)據(jù)庫的添加、刪除、查詢、更新等操作,該層涉與到的主要.NET技術(shù)是ADO.NET,但是,在這里也經(jīng)常用到一些.NETXML的功能[9]。在.NET平臺中,三層架構(gòu)的基本形態(tài)如圖1-5所示。圖1-5于.NET的層架構(gòu)型圖第2章駕照理論考試系統(tǒng)分析開發(fā)一個網(wǎng)站系統(tǒng),首先需要進(jìn)行需求分析和總體設(shè)計,分析系統(tǒng)的使用對象和用戶需求,設(shè)計系統(tǒng)的體系結(jié)構(gòu)和數(shù)據(jù)庫結(jié)構(gòu),決定使用的開發(fā)工具和后臺數(shù)據(jù)庫。在項目開發(fā)過程中,這些工作是非常重要的。2.1功能需求分析本駕校理論考試系統(tǒng)的用戶可以分為三類,包括考生(駕校學(xué)員)、駕校教師、管理員。根據(jù)駕駛理論考試的流程,系統(tǒng)需要實(shí)現(xiàn)的功能包括:用戶登錄、在線考試、自動閱卷、用戶管理、試題管理、成績管理、考試功能管理、系統(tǒng)數(shù)據(jù)的導(dǎo)入導(dǎo)出等功能??忌诘卿浵到y(tǒng)以后可以在線考試,提交試卷以后立刻可以查看自己的考試成績。駕校教師在考試結(jié)束以后,可以查看考生考試成績。管理員可以通過系統(tǒng)的管理功能進(jìn)行用戶管理、試題管理、成績管理、考試功能管理。2.2數(shù)據(jù)庫需求分析根據(jù)系統(tǒng)的設(shè)計目標(biāo),系統(tǒng)需要具有用戶管理、試題管理、成績管理等功能。要實(shí)現(xiàn)以上的功能必須設(shè)計出用來存儲信息的數(shù)據(jù)庫。根據(jù)系統(tǒng)需要實(shí)現(xiàn)的功能我們對數(shù)據(jù)庫的需求方面進(jìn)行了分析。(1)用戶管理功能用戶管理功能包括:添加用戶、修改用戶和刪除用戶。在添加用戶的時候,需要填寫用戶的賬號、XX以與密碼等信息,所以我們必須設(shè)計相應(yīng)的表來存儲用戶信息。(2)試題管理功能試題管理功能包括:添加試題、刪除試題、修改試題。在添加試題的時候,需要填寫試題的題目、答案選項、正確答案、是否發(fā)布、所屬科目等信息,所以我們必須設(shè)計相應(yīng)的表來存儲試題信息。(3)成績管理功能成績管理功能包括:查看考試成績、刪除考試成績??荚囃戤吅?,考生成績將被保存與數(shù)據(jù)庫中,所以我們必須設(shè)計相應(yīng)的表來存儲考生的考試成績。(3)考試功能管理功能考試功能管理功能包括:開啟系統(tǒng)考試、關(guān)閉系統(tǒng)考試??忌皇窃谌魏螘r間都能登錄進(jìn)系統(tǒng)考生的,在考生登錄系統(tǒng)時,我們應(yīng)當(dāng)判斷當(dāng)前系統(tǒng)是否開啟考試功能,允許考生登錄,所以我們必須設(shè)計出相應(yīng)的表來存儲當(dāng)前系統(tǒng)狀態(tài)的數(shù)值。2.3環(huán)境需求分析(1)網(wǎng)站開發(fā)環(huán)境操作系統(tǒng):WindowsXP(SP2與以上)/Windows2000(SP4)/WindowsServer2003(SP4)。開發(fā)環(huán)境支持平臺:Microsoft.NETFramework3.5。開發(fā)工具:VisualStudio.NET2008集成開發(fā)環(huán)境。開發(fā)數(shù)據(jù)庫:MicrosoftSQLServer2005。開發(fā)語言:ASP.NET。(2)服務(wù)器端運(yùn)行環(huán)境操作系統(tǒng):WindowsXP(SP2與以上)/Windows2000(SP4)/WindowsServer2003(SP4)。Web服務(wù):IIS5.0以上版本+Frontpage2000服務(wù)器擴(kuò)展。數(shù)據(jù)庫服務(wù)器:MicrosoftSQLServer2005。數(shù)據(jù)庫訪問組件:MDAC2.7。(3)客戶端運(yùn)行環(huán)境瀏覽器:InternetExplorer6.0與以上。分辨率:最佳效果1024×768像素。2.4項目可行性分析(1)技術(shù)方面本系統(tǒng)屬于一個基于數(shù)據(jù)庫的Web應(yīng)用系統(tǒng),其基本操作還是對數(shù)據(jù)庫進(jìn)行添加、刪除、查找、修改等,所以從技術(shù)角度看,該系統(tǒng)就是網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用,通過ASP.NET技術(shù)可以方便地實(shí)現(xiàn),不存在技術(shù)上不能解決的問題。(2)經(jīng)濟(jì)方面本系統(tǒng)可以在普通服務(wù)器上運(yùn)行,考生可以通過網(wǎng)絡(luò)進(jìn)行在線考試,管理員可以通過網(wǎng)絡(luò)對系統(tǒng)進(jìn)行管理維護(hù)。由于該系統(tǒng)對服務(wù)器要求較低,配置一臺一般性能的服務(wù)器就可以正常的運(yùn)行該系統(tǒng),對軟件的成本要求不高。(3)法律方面整個系統(tǒng)由于是自行研發(fā),自行使用,所以系統(tǒng)本身不存在法律上的版權(quán)爭議。在服務(wù)器軟件方面,應(yīng)該使用正版軟件,因?yàn)檎麄€系統(tǒng)盡管是自己研發(fā)的自行使用的,但它畢竟要依靠與Internet的,一旦服務(wù)器連接到Internet上,它的操作系統(tǒng)可能會被Microsoft跟蹤,如果不是正版軟件,將不得不面臨民事訴訟的風(fēng)險。(4)目前存在的問題由于網(wǎng)絡(luò)速度的限制,參與在線考試的人數(shù)過多,有可能會造成網(wǎng)絡(luò)的擁塞,影響正常的考試。另一方面,該系統(tǒng)采用MicrosoftSQLserver2005數(shù)據(jù)庫系統(tǒng)[12],傳輸數(shù)據(jù)的有效性和安全性會成為需要關(guān)注的問題。該系統(tǒng)存在的最大問題是數(shù)據(jù)庫安全問題。第3章駕照理論考試系統(tǒng)設(shè)計3.1模塊設(shè)計根據(jù)系統(tǒng)的設(shè)計要求,本系統(tǒng)需要實(shí)現(xiàn)用戶登錄、用戶管理、試題管理以與考試成績管理等功能,根據(jù)這些功能要求,我們將系統(tǒng)劃分為5個功能模塊(戶登錄模塊、在線考試模塊、用戶管理模塊、試題管理模塊、成績管理模塊),并設(shè)計出系統(tǒng)的功能結(jié)構(gòu)圖,如圖3-1所示。圖3-1系統(tǒng)功能結(jié)構(gòu)圖從圖3-1中我們可以看出,系統(tǒng)的功能模塊包括用登錄模塊、在線考試模塊、用戶管理模塊、試題管理模塊、成績管理模塊。下面我們介紹一下本系統(tǒng)的主要功能模塊。(1)用戶登錄模塊用戶通過用戶名和密碼登錄在線考試系統(tǒng)。(2)在線考試模塊考生在登錄系統(tǒng)后,可以抽題考試??忌谔峤辉嚲砗螅梢圆榭醋约旱目荚嚦煽?。(3)用戶管理模塊添加新用戶(考生、駕校教師)。修改用戶信息。刪除用戶。(4)試題管理模塊考試科目設(shè)置(添加、刪除)。考試試題管理(添加、刪除、修改)(5)成績管理模塊查看考試成績。刪除考試成績。3.1.1系統(tǒng)主用例圖根據(jù)駕??荚囅到y(tǒng)的用戶類型劃分,我們可以提取出系統(tǒng)的三個參與者(Actor):考生、駕校教師、管理員。這幾個參與者之間存在繼承關(guān)系,如圖3-2所示:圖3-2系統(tǒng)參與者之間的關(guān)系圖提取出參與者后,我們根據(jù)系統(tǒng)的功能模塊,可以畫出系統(tǒng)的主用例圖。如圖3-3所示。圖3-3系統(tǒng)主用例圖3.1.2系統(tǒng)業(yè)務(wù)流程圖根據(jù)駕校考試的業(yè)務(wù)流程,我們畫出了本系統(tǒng)的業(yè)務(wù)流程圖。如圖3-4所示。圖3-4系統(tǒng)業(yè)務(wù)流程圖3.2數(shù)據(jù)庫設(shè)計3.2.1數(shù)據(jù)庫設(shè)計原則數(shù)據(jù)庫設(shè)計是進(jìn)行系統(tǒng)開發(fā)的基礎(chǔ)性工作,設(shè)計方案好壞是影響開發(fā)的重要因素。數(shù)據(jù)庫設(shè)計要遵循以下原則[13]:(1)數(shù)據(jù)的完整性:保證數(shù)據(jù)庫中的數(shù)據(jù)準(zhǔn)確。(2)數(shù)據(jù)的結(jié)構(gòu)化:數(shù)據(jù)庫設(shè)計必須層次分明,分布合理。數(shù)據(jù)庫必須高度結(jié)構(gòu)化,保證數(shù)據(jù)的結(jié)構(gòu)化、規(guī)范化和標(biāo)準(zhǔn)化。(3)減少數(shù)據(jù)冗余:數(shù)據(jù)庫系統(tǒng)應(yīng)該盡量減少數(shù)據(jù)冗余,節(jié)省存儲空間,提高數(shù)據(jù)質(zhì)量。消除數(shù)據(jù)庫表中非主屬性對主關(guān)鍵詞的非完全依賴性和非主屬性對主關(guān)鍵詞的傳遞依賴性,將二維表轉(zhuǎn)化為第三范式,是降低數(shù)據(jù)冗余的有效方式。3.2.2數(shù)據(jù)庫表設(shè)計在開發(fā)系統(tǒng)之前,我們對系統(tǒng)的數(shù)據(jù)量進(jìn)行了分析,由于系統(tǒng)中設(shè)計的試題與考生信息的數(shù)據(jù)量,因此,選擇MicrosoftSQLServer2005作為數(shù)據(jù)庫。根據(jù)數(shù)據(jù)庫設(shè)計原則以與系統(tǒng)的需求分析,我們在數(shù)據(jù)庫中建立了管理員信息表(tb_Admin)、駕校教師信息表(tb_Teacher)、考生信息表(tb_Student)、考試科目信息表(tb_Lesson)、考試試題信息表(tb_test)、考生成績信息表(tb_score)。下面對這些數(shù)據(jù)表的結(jié)構(gòu)進(jìn)行描述:(1)管理員信息表(tb_Admin)管理員信息表(tb_Admin)用于存放管理員的登陸賬號、密碼和用戶名等信息,其結(jié)構(gòu)如表3-1所示。表3-1管理員信息表字段名稱數(shù)據(jù)類型是否主鍵可否為空字段描述IDint是否自動編號(主鍵)AdminNumvarchar(50)否是管理員登陸賬號AdminNamevarchar(50)否是管理員XXAdminPwdvarchar(50)否是管理員密碼(2)駕校教師信息表(tb_Teacher)駕校教師信息表(tb_Teacher)用于存放駕校教師的登陸賬號、密碼、用戶名以與所負(fù)責(zé)的科目等信息,其結(jié)構(gòu)如表3-2所示。表3-2駕校教師信息表字段名稱數(shù)據(jù)類型是否主鍵可否為空字段描述IDint是否自動編號(主鍵)TeacherNumvarchar(50)否是教師登陸賬號TeacherNamevarchar(50)否是教師XXTeacherPwdvarchar(50)否是教師密碼TeacherCoursevarchar(50)否是負(fù)責(zé)科目(3)考生信息表(tb_Student)考生信息表(tb_Student)用于存放考生的登陸賬號、密碼、用戶名和考生性別等信息,其結(jié)構(gòu)如表3-3所示。表3-3考生信息表字段名稱數(shù)據(jù)類型是否主鍵可否為空字段描述IDint是否自動編號(主鍵)StudentNumvarchar(50)否是考生登陸賬號StudentNamevarchar(50)否是考生XXStudentPwdvarchar(50)否是考生密碼StudentSexvarchar(50)否是考生性別(4)考試科目信息表(tb_Lesson)考試科目信息表(tb_Lesson)用于存放考試科目的科目名稱以與加入時間,其結(jié)構(gòu)如表3-4所示。表3-4考試科目信息表字段名稱數(shù)據(jù)類型是否主鍵可否為空字段描述IDint是否自動編號(主鍵)LessonNamevarchar(50)否否科目名稱LessonDataTimedatetime否否科目加入時間(5)考試試題信息表(tb_test)考試試題信息表(tb_test)用于存放考試試題的試題題目、答案選項、正確答案以與所屬科目等信息,其結(jié)構(gòu)如表3-5所示。表3-5考試試題信息表字段名稱數(shù)據(jù)類型是否主鍵可否為空字段描述IDint是否自動編號(主鍵)testContentvarchar(200)否是試題題目testAns1varchar(50)否是答案選項AtestAns2varchar(50)否是答案選項BtestAns3varchar(50)否是答案選項CtestAns4varchar(50)否是答案選項DrightAnsvarchar(50)否是正確答案pubint否是是否發(fā)布testCoursevarchar(50)否是所屬科目(6)考生成績信息表(tb_score)考生成績信息表(tb_score)用于存放考生的考試成績等信息,其結(jié)構(gòu)如表3-6所示。表3-6考試成績信息表字段名稱數(shù)據(jù)類型是否主鍵可否為空字段描述IDint是否自動編號(主鍵)StudentIDvarchar(50)否是考生考號LessonNamevarchar(50)否是考試科目名稱scoreint否是考試分?jǐn)?shù)StudentNamevarchar(50)否是考生XXStudentAnsvarchar(50)否是考生提交的答案RigthAnsvarchar(50)否是試題的正確答案(6)考試功能信息表(tb_Allow)考試功能信息表(tb_Allow)用于存放系統(tǒng)考試功能是否開啟的判斷值,其結(jié)構(gòu)如表3-7所示。表3-7考試功能信息表字段名稱數(shù)據(jù)類型是否主鍵可否為空字段描述IDint是否主鍵AllowInt否是是否開啟3.2.3數(shù)據(jù)庫關(guān)系圖設(shè)計數(shù)據(jù)庫各個表之間的關(guān)系設(shè)計如圖3-5所示。圖3-5數(shù)據(jù)表關(guān)系圖3.3系統(tǒng)界面設(shè)計3.3.1界面設(shè)計原則(1)用戶原則。人機(jī)界面設(shè)計首先要確立用戶類型。劃分類型可以從不同的角度,視實(shí)際情況而定。確定類型后要針對其特點(diǎn)預(yù)測他們對不同界面的反應(yīng)。這就要從多方面設(shè)計分析。(2)信息最小量原則。人機(jī)界面設(shè)計要盡量減少用戶記憶負(fù)擔(dān),采用有助于記憶的設(shè)計方案。(3)幫助和提示原則。要對用戶的操作命令做出反應(yīng),幫助用戶處理問題。系統(tǒng)要設(shè)計有恢復(fù)出錯現(xiàn)場的能力,在系統(tǒng)內(nèi)部處理工作要有提示,盡量把主動權(quán)讓給用戶[14-16]。3.3.2用戶登錄界面設(shè)計在登錄界面中,我們使用到了3個Textbox控件、3個Button按鈕控件、3個RequiredFieldValidator驗(yàn)證控件、1個DropDownList控件、Label控件和1個Image控件[17]。Textbox控件分別用于輸入用戶的賬號、密碼以與驗(yàn)證碼。Button按鈕控件分別給用戶提供了確定登錄、重置、退出系統(tǒng)等功能。RequiredFieldValidator驗(yàn)證控件用于驗(yàn)證用戶是否輸入相關(guān)信息。DropDownList控件用于選擇系統(tǒng)角色。Label控件用于顯示用戶IP號。Image控件用于顯示系統(tǒng)隨機(jī)生成的驗(yàn)證碼。其界面設(shè)計如圖3-6所示。圖3-6用戶登錄界面3.3.3考試規(guī)則界面設(shè)計在考生通過登錄模塊登錄到系統(tǒng)以后,將會進(jìn)入到考試規(guī)則界面,閱讀考試規(guī)則,考生在選中(已經(jīng)閱讀了考試規(guī)則)選擇框后,點(diǎn)擊(已經(jīng)閱讀完考試制度)按鈕,將會進(jìn)入到下一個頁面。在考試規(guī)則界面中,我們用到了3個Label控件、1個Panel控件、1個CheckBox控件、1個Button按鈕控件和1個Image控件。Label控件用于顯示考生的考號、XX、性別等信息。Panel控件用于顯示考試規(guī)則。CheckBox控件和Button按鈕控件用于確定已經(jīng)閱讀完考試規(guī)則。其界面設(shè)計如圖3-7所示。圖3-7閱讀考試規(guī)則界面3.3.4在線考試界面設(shè)計考生在閱讀完考試規(guī)則以后,點(diǎn)擊(已經(jīng)閱讀完考試制度)按鈕,將會進(jìn)入在線考試。在本界面中,我們用到了5個Label控件、1個Panel控件和2個Button按鈕控件。Label控件分別用于顯示考生考號、XX、性別、考試科目、以與顯示考試所用時間。Panel控件用于顯示考生試卷。Button按鈕控件分別用戶檢查漏題和考生提交試卷。其界面設(shè)計如圖3-8所示(圖中的題目和選項是在后臺代碼中動態(tài)添加的)。圖3-8在線考試界面3.3.5考試成績界面設(shè)計考生在答題并提交試卷以后,系統(tǒng)將自動對考生的試卷進(jìn)行評分,最后系統(tǒng)將考生的考試成績反饋給考生。在本界面中,我們用到了4個Label控件,分別用于顯示考試科目、考生學(xué)號、考生XX以與考試成績。其界面設(shè)計如圖3-9所示。圖3-9考試成績界面3.3.6后臺管理界面設(shè)計系統(tǒng)后臺管理主框架如圖3-10所示,在網(wǎng)頁布局結(jié)構(gòu)上屬于單一結(jié)構(gòu)中的左側(cè)導(dǎo)航。整個網(wǎng)頁由一個table控制各元素的布局,導(dǎo)航菜單放在左側(cè)的iframe中,右邊同樣是一個iframe,用于顯示主頁面。采用iframe的優(yōu)勢在于實(shí)現(xiàn)頁面的局部刷新。圖3-10系統(tǒng)后臺管理主框架3.3.7考生信息管理界面設(shè)計管理員在登錄到后臺管理以后,可以進(jìn)入考生信息管理頁面,對試題信息進(jìn)行添加、刪除、修改以與查詢等操作。如圖3-10所示,我們可以對考生信息進(jìn)行查詢、修改、刪除等操作。如圖3-11所示,我們可在此頁面中添加考生信息。圖3-11添加考生信息界面3.3.8試題信息管理界面設(shè)計管理員在登錄到后臺管理以后,可以進(jìn)入試題信息管理頁面,對試題信息進(jìn)行添加、刪除、修改以與查詢等操作。如圖3-12所示,我們可以對試題信息進(jìn)行查詢、修改、刪除等操作。圖3-12試題信息管理界面如圖3-13所示,我們可以對在此頁面中添加試題信息,包括試題題目、試題選項、試題正確選項等。圖3-13添加試題信息界面3.3.9考試成績管理界面設(shè)計管理員在登錄到后臺管理以后,可以進(jìn)入考試結(jié)果管理頁面,可以查詢和刪除考生的考試結(jié)果,在本界面中,我們用到了1個DropdownList控件、1個Textbox控件、2個Button按鈕控件以與1個GridView控件。DropdownList控件用于選擇查詢類型。Textbox控件用于輸入查詢關(guān)鍵字。Button按鈕控件分別用于查詢考生成績信息和導(dǎo)出考生成績信息。GridView控件用于顯示成績查詢結(jié)果。如圖3-14所示。圖3-14考試成績管理界面3.3.10數(shù)據(jù)導(dǎo)入管理界面設(shè)計繁瑣的手動添加,增加了管理員的工作量。為了實(shí)現(xiàn)人力資源真正意義上的解放,我們打算在系統(tǒng)中實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入的功能。在本界面中,我們用到了2個FileUpload控件,4個Button按鈕控件。通過FileUpload控件我們可以將包含數(shù)據(jù)的Excel表上傳到服務(wù)器中,通過“導(dǎo)入”Button按鈕控件我們可以將上傳到服務(wù)器中的Excel表中的數(shù)據(jù)讀取出來,并插入到數(shù)據(jù)庫中。其界面設(shè)計如圖3-15所示。圖3-15數(shù)據(jù)導(dǎo)入管理界面3.3.11考試功能管理界面設(shè)計系統(tǒng)的考試功能不是任何時候都是開放的,即考生在規(guī)定的考試時間以外是不能登錄系統(tǒng)進(jìn)行考試的,管理員可以通過考試功能管理對系統(tǒng)的登錄時間進(jìn)行限制。在本界面中,我們使用到了1個Label控件和1個Button按鈕控件。Label控件用于顯示當(dāng)前系統(tǒng)狀態(tài),Button按鈕控件打開或關(guān)閉考試功能操作。其界面設(shè)計如圖3-16所示。圖3-16考試功能管理界面第4章駕駛考試系統(tǒng)功能實(shí)現(xiàn)4.1公共類在開發(fā)項目中以類的形式來組織、封裝一些常用的方法和事件,不僅可以提高代碼的重用率,也大大方便了代碼的管理。本系統(tǒng)中創(chuàng)建了一個公共類,其中包含了DBCon()方法、BindDG()方法、OperateData()方法、CheckStudent()方法、CheckTeacher()方法和CheckAdmin()方法。(1)BaseClass.DBCon()方法BaseClass.DBCon()方法的主要作用是用于連接數(shù)據(jù)庫,其代碼如下:……引用命名空間publicstaticSqlConnectionDBCon(){returnnewSqlConnection("server=.;database=db_ExamOnline;uid=sa;pwd=luowensheng");}(2)BaseClass.BindDG()方法BaseClass.BindDG()方法的主要作用是用于綁定系統(tǒng)相關(guān)頁面的GridView控件,在該方法中,我們首先調(diào)用了公共類的DBCon()方法建立數(shù)據(jù)庫的連接,然后創(chuàng)建了一個SqlDataAdapter對象,這個對象中有兩個參數(shù)(strSql表示的是SQL語句,conn表示的是數(shù)據(jù)庫連接)。隨后我們創(chuàng)建了一個DataSet對象,調(diào)用其Fill()方法,填充DataSet對象,最后我們設(shè)置GridView控件的數(shù)據(jù)源,設(shè)置其主鍵值段,綁定GridView控件。其代碼如下:……引用命名空間publicstaticvoidBindDG(GridViewdg,stringid,stringstrSql,stringTname){SqlConnectionconn=DBCon();SqlDataAdaptersda=newSqlDataAdapter(strSql,conn);DataSetds=newDataSet();sda.Fill(ds,Tname);dg.DataSource=ds.Tables[Tname];dg.DataKeyNames=newstring[]{id};dg.DataBind();}(3)BaseClass.OperateData()方法BaseClass.OperateData()方法的主要作用是執(zhí)行SQL語句,在該方法中,我們首先建立并打開數(shù)據(jù)庫連接,然后創(chuàng)建一個SqlCommand對象,調(diào)用其ExecuteNonQuery()方法執(zhí)行SQL語句,最后關(guān)閉數(shù)據(jù)庫連接。其代碼如下:……引用命名空間publicstaticvoidOperateData(stringstrsql){SqlConnectionconn=DBCon();conn.Open();SqlCommandcmd=newSqlCommand(strsql,conn);cmd.ExecuteNonQuery();conn.Close();}(4)BaseClass.CheckStudent()方法、BaseClass.CheckTeacher()方法和BaseClass.CheckAdmin()方法的主要作用是一樣的,都是用于判斷用戶登陸的。其代碼如下:……引用命名空間publicstaticboolCheckStudent(stringstudentNum,stringstudentPwd)//如果是考生登陸{SqlConnectionconn=DBCon();conn.Open();SqlCommandcmd=newSqlCommand("selectcount(*)fromtb_StudentwhereStudentNum='"+studentNum+"'andStudentPwd='"+studentPwd+"'",conn);inti=Convert.ToInt32(cmd.ExecuteScalar());if(i>0){returntrue;}else{returnfalse;}conn.Close();}publicstaticboolCheckTeacher(stringteacherNum,stringteacherPwd)//如果是教師登陸{SqlConnectionconn=DBCon();conn.Open();SqlCommandcmd=newSqlCommand("selectcount(*)fromtb_TeacherwhereTeacherNum='"+teacherNum+"'andTeacherPwd='"+teacherPwd+"'",conn);inti=Convert.ToInt32(cmd.ExecuteScalar());if(i>0){returntrue;}else{returnfalse;}conn.Close();}publicstaticboolCheckAdmin(stringadminNum,stringadminPwd)//如果是管理員登陸{SqlConnectionconn=DBCon();conn.Open();SqlCommandcmd=newSqlCommand("selectcount(*)fromtb_AdminwhereAdminNum='"+adminNum+"'andadminPwd='"+adminPwd+"'",conn);inti=Convert.ToInt32(cmd.ExecuteScalar());if(i>0){returntrue;}else{returnfalse;}conn.Close();}}4.2用戶登陸功能實(shí)現(xiàn)系統(tǒng)和用戶交互的第一個界面就是用戶登錄界面,處于對系統(tǒng)信息的安全考慮,需要將用戶分類,每類用戶都擁有不同的權(quán)限。不同的權(quán)限能訪問不同的資源以與進(jìn)行不同的操作。根據(jù)系統(tǒng)的設(shè)計要求,我們可以看出本系統(tǒng)擁有三類用戶:考生、駕校教師和管理員??忌脩艨梢詤⒓涌荚嚕榭醋约旱目荚嚦煽?。駕校教師在考生考試結(jié)束以后,可以對考生的成績進(jìn)行查看。管理員可以對系統(tǒng)進(jìn)行管理維護(hù)。系統(tǒng)默認(rèn)是不允許匿名登錄的,只有通過管理員分配賬號和密碼才能登錄到本系統(tǒng)進(jìn)行相應(yīng)操作,這時就需要通過登錄模塊來驗(yàn)證登錄的合法性[18]。本系統(tǒng)旨在突破傳統(tǒng)考試方式在時間上和空間上的限制,但是并不是說考生在任何時間都能進(jìn)入系統(tǒng)考試,考生必須在系統(tǒng)規(guī)定的時間內(nèi)進(jìn)入系統(tǒng)進(jìn)行考試,如果在系統(tǒng)規(guī)定的時間外,考生是不能進(jìn)入系統(tǒng)考試的。那么在考生用戶登錄系統(tǒng)時,我們不僅需要對用戶的合法性進(jìn)行驗(yàn)證,也需要對當(dāng)前系統(tǒng)是否允許考生登錄做出判斷,當(dāng)同時滿足以上兩個條件時,考生才能登錄系統(tǒng)進(jìn)行考試。這樣不僅方便了工作人員對考試進(jìn)行管理,而且增強(qiáng)了考試的公平性。其實(shí)現(xiàn)代碼如下:……引用命名空間publicpartialclassLogin:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){//顯示本機(jī)IP地址lblip.Text="您的IP地址為:"+Page.Request.UserHostAddress;}protectedvoidbtnlogin_Click(objectsender,EventArgse){if(txtCode.Text.Trim()!=Session["verify"].ToString())//判斷驗(yàn)證碼是否正確{Response.Write("<script>alert('驗(yàn)證碼錯誤');location='Login.aspx'</script>");}else{SqlConnectionconn=BaseClass.DBCon();conn.Open();SqlCommandcmd=newSqlCommand("select*fromtb_Allow",conn);SqlDataReadersdr=cmd.ExecuteReader();sdr.Read();if(this.ddlstatus.SelectedValue=="學(xué)生"&&sdr["allow"].ToString().Equals("1")){//在考生登錄時,不僅要對其身份進(jìn)行確認(rèn),而且需要判斷考試功能是否開啟if(BaseClass.CheckStudent(txtNum.Text.Trim(),txtPwd.Text.Trim())){Session["ID"]=txtNum.Text.Trim();Response.Redirect("student/studentexam.aspx");}else{Response.Write("<script>alert('您不是學(xué)生或者用戶名和密碼錯誤');location='Login.aspx'</script>");}}else{//提示考生,現(xiàn)在不是考試時間Response.Write("<script>alert('現(xiàn)在不是考試時間');location='Login.aspx'</script>");}conn.Close();if(this.ddlstatus.SelectedValue=="教師")//教師登錄{if(BaseClass.CheckTeacher(txtNum.Text.Trim(),txtPwd.Text.Trim())){Session["teacher"]=txtNum.Text;Response.Redirect("teacher/TeacherManage.aspx");}else{Response.Write("<script>alert('您不是教師或者用戶名和密碼錯誤');location='Login.aspx'</script>");}}if(this.ddlstatus.SelectedValue=="管理員")//管理員登錄{if(BaseClass.CheckAdmin(txtNum.Text.Trim(),txtPwd.Text.Trim())){Session["admin"]=txtNum.Text;Response.Redirect("admin/AdminManage.aspx");}else{Response.Write("<script>alert('您不是管理員或者用戶名和密碼錯誤');location='Login.aspx'</script>");}}}}4.3隨機(jī)抽取試題功能實(shí)現(xiàn)在開發(fā)系統(tǒng)過程中,需要考慮的是如何將試題顯示在頁面上,如何將試題從數(shù)據(jù)庫中讀出來,比較合理的做法是將所有試題存儲在數(shù)據(jù)庫中,然后隨機(jī)抽取出若干道試題,動態(tài)的顯示在頁面當(dāng)中。在基于Web在線考試系統(tǒng)的設(shè)計與實(shí)現(xiàn)中隨機(jī)選取考題占有重要的位置,要有效地實(shí)現(xiàn)隨機(jī)選取考題主要在于兩個關(guān)鍵的技術(shù):一是保證考題的隨機(jī)性和不確定性,二是防止隨機(jī)抽取出現(xiàn)重復(fù)考題。在ASP.NET中實(shí)現(xiàn)隨機(jī)選取考題有兩種方法:一是在程序中使用隨機(jī)數(shù)“Random”類可以實(shí)現(xiàn)某一范圍的隨機(jī)考題的抽取,但不能夠保證數(shù)據(jù)的不重復(fù),通常情況下必須手動判斷數(shù)據(jù)是否重復(fù);二是使用SQLServer提供的“Newid()”函數(shù),這樣不但可以合成隨機(jī)的排序內(nèi)容,還能保證數(shù)據(jù)的不重復(fù)[19]。在通過對以上兩種方法的優(yōu)缺點(diǎn)進(jìn)行比較后,我們選擇了使用SQLServer提供的“Newid()”函數(shù)以實(shí)現(xiàn)試題的隨機(jī)抽取。隨機(jī)抽取試題模塊實(shí)現(xiàn)的代碼如下:……引用命名空間publicpartialclassstudent_StartExam:System.Web.UI.Page{publicstringAns=null;publicinttNUM;protectedvoidPage_Load(objectsender,EventArgse){lblEndtime.Text="考試時間為45分鐘,每小題1分,考試已用時:";lblStuNum.Text=Session["ID"].ToString();lblStuName.Text=Session["name"].ToString();lblStuSex.Text=Session["sex"].ToString();lblStuKM.Text=Session["KM"].ToString()+"考試試題";inti=1,count=0;SqlConnectionconn=BaseClass.DBCon();conn.Open();
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 園林用地移交協(xié)議書
- 解除母親關(guān)系協(xié)議書
- 終止解除協(xié)議書范本
- 繼承父母房子協(xié)議書
- 馬上消費(fèi)還款協(xié)議書
- 駐廠員工協(xié)議書范本
- 農(nóng)田復(fù)耕協(xié)議書文案
- 簡單安全用電協(xié)議書
- 鹵菜物品轉(zhuǎn)讓協(xié)議書
- 樂團(tuán)演員聘用協(xié)議書
- 【初中 語文】第9課《木蘭詩》課件2024-2025學(xué)年統(tǒng)編版語文七年級下冊
- QB/T 2660-2024 化妝水(正式版)
- 《我與集體共成長》的主題班會
- 保潔投標(biāo)書(范本)
- 幼兒園《插座電線我不碰》
- Q∕CR 9604-2015 高速鐵路隧道工程施工技術(shù)規(guī)程
- 生產(chǎn)線直通率統(tǒng)計表
- 常用有縫鋼管的規(guī)格及有關(guān)參數(shù)
- 大腸桿菌及大腸菌群計數(shù)方法
- 圓盤剪切機(jī)結(jié)構(gòu)設(shè)計說明
- 好盈電調(diào)中文使用說明書
評論
0/150
提交評論