趙玲
畢業(yè)設(shè)計(jì)管理是高校教學(xué)管理工作的一項(xiàng)重要內(nèi)容。傳統(tǒng)的工作方式是這樣一個(gè)流程:首先是由教務(wù)秘書或者教研室主任通知教師上報(bào)畢業(yè)設(shè)計(jì)題目,然后是匯總審核畢業(yè)設(shè)計(jì)題目,其次是將整理好的畢業(yè)設(shè)計(jì)題目打印發(fā)放到各個(gè)畢業(yè)班,再其次是畢業(yè)生在自己想?yún)⑴c設(shè)計(jì)的題目后寫上自己的名字等等。這種人工管理方式非常低效,越來越不能適應(yīng)時(shí)代的需求。許多教師與教學(xué)秘書迫切需要一種實(shí)用而且性能穩(wěn)定的管理軟件,幫助完成大量的立題、評(píng)審、選題、統(tǒng)計(jì)、打印等工作。而且,在現(xiàn)在的這種人工管理方式下,學(xué)生選題是根據(jù)查看系部所下發(fā)的畢業(yè)生畢業(yè)設(shè)計(jì)題目的紙式文檔,在這些紙式文檔中找到自己喜歡或感興趣的題目,但對(duì)于題目的內(nèi)容并不能夠看到,只是望名猜意而不能正確地知道指導(dǎo)教師的要求,所以選題盲目性比較高。學(xué)生不容易找到合適的題目,使得每年的選題過程占用時(shí)間比較長(zhǎng),并且學(xué)生也未必能找到自己感興趣的題目,致使學(xué)生做出的畢業(yè)設(shè)計(jì)的質(zhì)量也并不高。所以學(xué)生也迫切需要一種軟件,能夠幫助快速查找到合適題目。
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,實(shí)現(xiàn)畢業(yè)設(shè)計(jì)的網(wǎng)絡(luò)化管理已勢(shì)在必行。它的強(qiáng)大功能在于,將復(fù)雜繁瑣的立題、選題、管理工作,通過規(guī)范的方式在網(wǎng)上直接進(jìn)行操作,從而大大地減少了立題教師、教學(xué)秘書的工作量,并且能夠高效的完成所需的要求。同時(shí),由于所有題目都在網(wǎng)上進(jìn)行公布,增加了畢業(yè)設(shè)計(jì)或畢業(yè)論文題目的可見度,從而便于學(xué)生較快地選到合適的題目。通過此系統(tǒng),教師可上傳任務(wù)書、工作計(jì)劃,網(wǎng)上評(píng)閱學(xué)生論文,還可進(jìn)行答疑解惑等;學(xué)生可提交開題報(bào)告、中期匯報(bào)及畢業(yè)論文,還可進(jìn)行網(wǎng)上答疑等。基于ASP的畢業(yè)設(shè)計(jì)管理系統(tǒng),可實(shí)現(xiàn)電子化、網(wǎng)絡(luò)化、規(guī)范化的作業(yè)流程,減少因距離、時(shí)間等產(chǎn)生的交流不暢等問題,在提高工作效率的基礎(chǔ)上,增加協(xié)同辦公能力,強(qiáng)化決策的一致性,最后實(shí)現(xiàn)提高決策效能的目的[1]。
本系統(tǒng)的開發(fā)環(huán)境為ASP+IIS6.0+SQL Server 2000,采用ASP三層架構(gòu)開發(fā)方法,基本上可實(shí)現(xiàn)畢業(yè)設(shè)計(jì)管理系統(tǒng)的主要功能。IIS(Internet Information Services,最新版為6. 0)為WindowsNT/2000/2003系列操作系統(tǒng)中的內(nèi)置組件,Web客戶端和ASP應(yīng)用程序之間的聯(lián)系是通過IIS來進(jìn)行的。SQL Server 2000數(shù)據(jù)庫(kù)系統(tǒng)與Windows操作系統(tǒng)及ASP之間具有良好的兼容性。因此采用SQL Server 2000來完成底層數(shù)據(jù)庫(kù)的開發(fā)。
目前,基于Web的系統(tǒng)開發(fā)技術(shù)主要有4種:CGI、PHP、JSP和ASP。ASP全名Active Server Pages,是一個(gè)Web服務(wù)器端的開發(fā)環(huán)境,利用它可以產(chǎn)生和執(zhí)行動(dòng)態(tài)的、互動(dòng)的、高性能的 Web服務(wù)應(yīng)用程序。ASP采用 VBscript、Jscript等簡(jiǎn)單易懂的腳本語(yǔ)言,結(jié)合HTML代碼,即可快速地完成網(wǎng)站的應(yīng)用程序制作設(shè)計(jì)。ASP無須編譯,容易編寫,可在服務(wù)器端直接執(zhí)行。使用普通的文本編輯器,如Windows的記事本,即可進(jìn)行編輯設(shè)計(jì)。與瀏覽器無關(guān),客戶端只要使用可執(zhí)行HTML碼的瀏覽器,即可瀏覽ASP所設(shè)計(jì)的網(wǎng)頁(yè)內(nèi)容。ASP所使用的腳本語(yǔ)言(VBscript、Jscript)均在Web服務(wù)器端執(zhí)行,客戶端的瀏覽器不需要執(zhí)行這些腳本語(yǔ)言,服務(wù)器僅將執(zhí)行的結(jié)果返回給客戶瀏覽器,這樣既提高了程序的安全性,又減輕了客戶端瀏覽器的負(fù)擔(dān),大大提高了交互的速度。目前,國(guó)內(nèi)普通用戶所用的操作系統(tǒng)都是Windows,還有數(shù)據(jù)庫(kù)系統(tǒng)SQL Server 2000,這些都是微軟的產(chǎn)品,在系統(tǒng)的兼容與穩(wěn)定性上,都采用同一個(gè)公司的產(chǎn)品當(dāng)然效果會(huì)更好。因此選擇ASP技術(shù)開發(fā)基于Web的畢業(yè)設(shè)計(jì)管理系統(tǒng)。
基于 ASP的畢業(yè)設(shè)計(jì)管理系統(tǒng),正是為了解決傳統(tǒng)的工作方式給畢業(yè)設(shè)計(jì)管理工作帶來的諸多弊端以及給廣大師生帶來的諸多不便而專門設(shè)計(jì)的。通過調(diào)查研究,整個(gè)畢業(yè)設(shè)計(jì)過程主要包括教師填報(bào)畢設(shè)題目、審核員審核畢設(shè)題目、畢設(shè)題目的公布、學(xué)生選題、公布選題結(jié)果等幾個(gè)大方面,因此可以劃分為以下幾個(gè)功能模塊:學(xué)生模塊、教師模塊、審核員模塊、管理員模塊,對(duì)于每個(gè)模塊都有基于數(shù)據(jù)庫(kù)的用戶登錄系統(tǒng)。為了增強(qiáng)系統(tǒng)功能,還提供了信息發(fā)布及文檔下載等輔助模塊。系統(tǒng)功能結(jié)構(gòu)[2]如圖1所示。
圖1 畢業(yè)設(shè)計(jì)管理系統(tǒng)的功能結(jié)構(gòu)圖
學(xué)生模塊的功能結(jié)構(gòu)如圖2所示。學(xué)生通過登陸界面進(jìn)入學(xué)生模塊。課題管理功能:可以實(shí)現(xiàn)課題選擇以及在規(guī)定期限內(nèi)的課題退選與重新選題操作??刹榭此薪處煹漠厴I(yè)設(shè)計(jì)題目,點(diǎn)擊某個(gè)題目還能看到這個(gè)題目的詳細(xì)介紹,如題目簡(jiǎn)介、題目對(duì)學(xué)生的知識(shí)能力要求等,進(jìn)而選擇一個(gè)自己感興趣的題目。論文上傳功能:實(shí)現(xiàn)各種論文的上交,以供教師評(píng)閱和及時(shí)檢查,學(xué)生也能查詢論文成績(jī)。網(wǎng)上答疑功能:學(xué)生在畢業(yè)設(shè)計(jì)過程中遇到問題時(shí)進(jìn)行提問,以實(shí)現(xiàn)與指導(dǎo)教師的交流。
圖2 學(xué)生模塊的功能結(jié)構(gòu)圖
教師模塊的功能結(jié)構(gòu)如圖3所示。教師通過教師登陸界面進(jìn)入教師模塊。課題申報(bào)功能:實(shí)現(xiàn)在線課題申報(bào),如課題簡(jiǎn)介、難易程度、需求人數(shù)、對(duì)學(xué)生的知識(shí)能力要求等,還可實(shí)現(xiàn)修改或刪除已報(bào)課題的功能。論文上傳功能:實(shí)現(xiàn)相關(guān)課題的參考文獻(xiàn)及任務(wù)書、工作計(jì)劃等資料的上傳,以供學(xué)生及時(shí)下載及查看。網(wǎng)上評(píng)閱功能:教師在網(wǎng)上對(duì)學(xué)生論文進(jìn)行評(píng)閱。網(wǎng)上答疑功能:學(xué)生對(duì)課題等有疑問時(shí)就可以發(fā)出帖子,教師根據(jù)學(xué)生的提問做出相應(yīng)的答復(fù)。
圖3 教師模塊的功能結(jié)構(gòu)圖
教師在線申報(bào)的題目,只有等待審核員檢查審批后才能發(fā)布出來。審核員通過審核員登陸界面進(jìn)入審核模塊。審核員能看到所有教師的全部題目,點(diǎn)擊某個(gè)題目的超鏈接,可以看到題目的詳細(xì)介紹。若審核通過,題目就會(huì)顯現(xiàn)在學(xué)生模塊的可選擇題目中。技術(shù)實(shí)現(xiàn)原理:通過用一個(gè)標(biāo)志字段(shenheFlag)來控制,默認(rèn)值為0,審核通過后設(shè)置為1。
管理員模塊的功能結(jié)構(gòu)如圖4所示。管理員通過登陸進(jìn)入管理員模塊,主要負(fù)責(zé)對(duì)系統(tǒng)的全面管理及維護(hù)。系統(tǒng)設(shè)置功能:選題開放設(shè)置及選題時(shí)間設(shè)置。信息發(fā)布功能:發(fā)布一些與畢業(yè)設(shè)計(jì)有關(guān)的通知或要求等,也包括修改及刪除功能。教師管理及學(xué)生管理功能:主要實(shí)現(xiàn)基本資料的添加、修改及刪除功能,還可查看教師的所有課題信息,查看學(xué)生的選題情況。題目管理功能:批量刪除題目或查看題目基本信息。打印統(tǒng)計(jì)功能:按教師名打印出所有已被學(xué)生選擇的題目及對(duì)應(yīng)學(xué)生,也可按班級(jí)打印出該班的選題情況,避免手工統(tǒng)計(jì)的麻煩。數(shù)據(jù)備份功能:實(shí)現(xiàn)對(duì)現(xiàn)有數(shù)據(jù)庫(kù)資料、教師上傳資料、學(xué)生上傳資料的基本備份。
圖4 管理員模塊的功能結(jié)構(gòu)圖
對(duì)于畢業(yè)設(shè)計(jì)選題頁(yè)面,由于內(nèi)容比較多,如果都在一個(gè)頁(yè)面上顯示,勢(shì)必會(huì)使網(wǎng)頁(yè)很長(zhǎng),為此采用了分頁(yè)顯示技術(shù)[3],部分代碼如下:
通過分頁(yè)技術(shù),設(shè)置每頁(yè)顯示10個(gè)記錄,使問題呈現(xiàn)頁(yè)面不再冗長(zhǎng),用戶只要點(diǎn)擊要瀏覽的頁(yè)面號(hào)碼就可以跳轉(zhuǎn)到相應(yīng)的頁(yè)面。與不采用分頁(yè)顯示技術(shù)相比較,不僅方便了用戶瀏覽,而且界面也更加美觀了。
在本系統(tǒng)中有多個(gè)模塊需要上傳文件,這些模塊是利用upload組件進(jìn)行上傳文件管理[4],并且為每個(gè)上傳的文件添加一個(gè)描述信息,以方便其他用戶進(jìn)行下載使用。本系統(tǒng)借助一個(gè)免費(fèi)的文件上傳組件——lyfupload,它遵從RFC-1867 HTTP請(qǐng)求,它可以在ASP頁(yè)面中接收客戶端瀏覽器使用encType= "multipart/form-data" 的Form上載的文件。在使用lyfupload之前,必須要在服務(wù)器端使用 regsvr32 lyfupload.dll 命令進(jìn)行注冊(cè)。
客戶端的關(guān)鍵代碼為:
在管理員模塊中設(shè)置有打印統(tǒng)計(jì)的功能。該功能的實(shí)現(xiàn)方法是調(diào)用了IE 6的打印功能,可以對(duì)打印頁(yè)面進(jìn)設(shè)置和預(yù)覽。并且利用ASP程序段來寫入頁(yè)碼,即在每頁(yè)的右上方都有“總X頁(yè),第X頁(yè)”的字樣。
進(jìn)行打印控制的部分源程序如下:
畢業(yè)設(shè)計(jì)管理系統(tǒng)的主要功能體現(xiàn)在面向不同角色的各個(gè)模塊中,每一模塊都有自己的登陸驗(yàn)證系統(tǒng)。為了防止惡意用戶的越權(quán)使用,或繞過登陸界面直接訪問特殊頁(yè)面,安全性設(shè)計(jì)非常重要。本系統(tǒng)從以下幾方面進(jìn)行防范。
這方面主要使用cookies,cookies提供一種方法保存從一個(gè)HTTP請(qǐng)求到下一個(gè)HTTP請(qǐng)求的信息。它是被Web服務(wù)器保存到訪問者本地硬盤上的數(shù)據(jù),可以跟蹤訪問者在網(wǎng)站中的訪問路徑。
首先在數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)表trace,用來跟蹤用戶和其所在的頁(yè)面。Trace中含三個(gè)字段:ID(用戶標(biāo)識(shí)符),IP(用戶IP地址)和lasttime(最近一次用戶動(dòng)作的時(shí)間)。然后定義一個(gè)字符型的全局變量$page,在本系統(tǒng)的每個(gè)頁(yè)面給這個(gè)變量賦一個(gè)值,用戶在第一次訪問某一頁(yè)面時(shí),首先得到該頁(yè)面的變量$page的值,隨機(jī)產(chǎn)生一個(gè)唯一的 ID值,將該ID值存入到cookies中,同時(shí),得到訪問時(shí)間$time和用戶IP地址$ip,執(zhí)行SQL語(yǔ)句將數(shù)據(jù)插入到表trace中。
Sql=“insert into trace(ID,IP,page,lasttime) values(‘$id’,’$ip’,’$page’,’$lasttime’)”
在該用戶訪問另一個(gè)頁(yè)面時(shí),首先會(huì)檢查該用戶是否有ID值,如果有,則在數(shù)據(jù)庫(kù)表trace中查詢對(duì)應(yīng)的記錄,并更新其最近動(dòng)作時(shí)間及所在頁(yè)面;如果沒有,就生成一個(gè)唯一的ID值。
Session是用戶在登錄后,在服務(wù)器上記錄一些信息。Session變量是個(gè)有規(guī)律的全局變量,當(dāng)一個(gè)Session變量被注冊(cè),可以在所有的頁(yè)面上得到 Session值。用Session(“variable_name”)可以注冊(cè)一個(gè) Session 變量。在所有并發(fā)的用Session就使用Session_start()函數(shù),變量的值將作為一個(gè)Session變量注冊(cè)為Session。
本系統(tǒng)在用戶登錄時(shí)使用session技術(shù),用來保存用戶名和密碼。用戶在訪問一個(gè)頁(yè)面時(shí),在頁(yè)面的一開始利用Session_start()函數(shù)打開一個(gè)Session,如果用戶還沒有登錄,就彈出一個(gè)用戶登錄的界面。如果用戶已經(jīng)登錄過,程序就會(huì)取得該用戶已經(jīng)注冊(cè)過的用戶名和密碼來認(rèn)證該用戶是否有進(jìn)入該頁(yè)面的權(quán)限。另外,本系統(tǒng)使用session技術(shù),可以對(duì)數(shù)據(jù)庫(kù)中的記錄操作進(jìn)行日志記錄。
網(wǎng)站中通過使用用戶資格認(rèn)證,要求用戶輸入用戶名和密碼,達(dá)到加密內(nèi)部網(wǎng)頁(yè)的目的。然而,用戶可輸入一些特殊的字符使得認(rèn)證系統(tǒng)失效。假設(shè) user是數(shù)據(jù)表名,表中的字段有username(用戶名)和password(密碼)。在用戶登錄時(shí),用戶輸入用戶名和密碼后,系統(tǒng)會(huì)執(zhí)行這樣一條 SQL語(yǔ)句:
sql=“select*from user where username=’&username &”’and password=’&password&”’”
如果用戶輸入用戶名為a’ or 1=1,密碼為任意的字符,此時(shí)執(zhí)行的sql語(yǔ)句為:
sql=“select*from user where username= ‘&a’ or 1=1 and password= ‘&password’”
由于運(yùn)算符or和“1=1”恒成立,因此得出數(shù)據(jù)庫(kù)中有該用戶的錯(cuò)誤結(jié)果。本系統(tǒng)對(duì)此問題進(jìn)行了很好的解決。在用戶登錄輸入用戶名和密碼后,系統(tǒng)進(jìn)行了兩層檢測(cè):第一層檢測(cè)是,如果用戶輸入的字符中有空格、“”及“=”中的一種,就判斷為非法輸入,要求用戶重新輸入,如果重復(fù)輸入的次數(shù)大于 3,則對(duì)該用戶的 IP進(jìn)行封閉;第二層檢測(cè)是如果用戶輸入的信息在數(shù)據(jù)庫(kù)進(jìn)行檢索后,滿足條件的記錄數(shù)大于1,因?yàn)樵诒鞠到y(tǒng)中設(shè)定用戶名唯一,所以就判定為非法輸入,要求用戶重新輸入。
ASP為建立動(dòng)態(tài)、交互、高性能的Web應(yīng)用提供了一種簡(jiǎn)便高效的技術(shù)途徑,在目前是開發(fā)人員進(jìn)行 Web應(yīng)用系統(tǒng)設(shè)計(jì)的一個(gè)良好的選擇?;?ASP的畢業(yè)設(shè)計(jì)管理系統(tǒng)的開發(fā)以提高畢業(yè)設(shè)計(jì)管理水平為目的,為畢業(yè)設(shè)計(jì)管理搭建先進(jìn)的管理平臺(tái)。它能夠適應(yīng)高校畢業(yè)設(shè)計(jì)管理各個(gè)階段的任務(wù)要求,及時(shí)反映高校畢業(yè)設(shè)計(jì)過程中的工作動(dòng)態(tài),有效解決高校畢業(yè)設(shè)計(jì)工作中所面臨的一些難題,使高校整個(gè)畢業(yè)設(shè)計(jì)的管理實(shí)現(xiàn)信息化、網(wǎng)絡(luò)化和規(guī)范化,最后實(shí)現(xiàn)提高決策效能的目的。
[1]吳琦.高校畢業(yè)設(shè)計(jì)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].荊門職業(yè)技術(shù)學(xué)院學(xué)報(bào),2008,23(3):66-69.
[2]丁光惠,唐正連,楊偉等.基于 B/S的畢業(yè)設(shè)計(jì)管理系統(tǒng)開發(fā)[J].湖北汽車工業(yè)學(xué)院學(xué)報(bào),2006,20(4):71-73.
[3]揚(yáng)國(guó)才,王建峰,王玉昆.基于 Web的遠(yuǎn)程自學(xué)型教學(xué)系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2000, 20(4): 61-63.
[4]陳永強(qiáng),謝維成,李茜.ASP數(shù)據(jù)庫(kù)開發(fā)經(jīng)典實(shí)例精解[M].北京:機(jī)械工業(yè)出版社, 2006.