版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 摘要</b></p><p> 由于學(xué)校規(guī)模進一步擴大,學(xué)生人數(shù)逐年上升,學(xué)生信息的管理也變得越來越復(fù)雜。為此,切實有效的把學(xué)生信息管理系統(tǒng)引入學(xué)校教務(wù)管理中,對于促進學(xué)校管理制度和提高學(xué)校教學(xué)質(zhì)量有著顯著意義。</p><p> 本系統(tǒng)采用B/S結(jié)構(gòu),ASP為開發(fā)語言,SQL Server 2000為數(shù)據(jù)庫來進行設(shè)計與開發(fā)。本論文,
2、簡要闡述了系統(tǒng)的開發(fā)背景與開發(fā)環(huán)境,對系統(tǒng)的構(gòu)架進行分析,由此劃分出各個模塊,包括用戶注冊模塊,用戶登陸模塊,班級管理模塊,課程管理模塊,個人信息管理模塊,成績管理模塊退出系統(tǒng)模塊。詳細介紹了系統(tǒng)各個模塊與功能的實現(xiàn)原理,最后總結(jié)開發(fā)階段與測試階段所遇到的問題與解決方法。</p><p> 關(guān)鍵詞:ASP;SQL Server 2000;B/S結(jié)構(gòu)</p><p><b>
3、目錄</b></p><p><b> 第1章緒論2</b></p><p> 第2章系統(tǒng)開發(fā)環(huán)境3</p><p> 2.1ASP概述3</p><p> 2.2SQL Server介紹3</p><p> 2.3B/S結(jié)構(gòu)模式4</p>
4、<p> 第3章需求分析5</p><p> 第4章方案設(shè)計7</p><p> 4.1功能模塊設(shè)計圖7</p><p> 4.2數(shù)據(jù)庫建立7</p><p> 第5章系統(tǒng)開發(fā)10</p><p> 5.1系統(tǒng)的登錄10</p><p> 第6章
5、班級管理13</p><p> 6.1班級基本信息13</p><p> 6.1.1班級信息查詢13</p><p> 6.1.2班級信息修改15</p><p> 6.1.3刪除班級15</p><p> 6.2添加班級16</p><p> 6.3院系情況
6、16</p><p> 第7章課程管理19</p><p> 7.1課程信息管理19</p><p> 7.1.1課程查詢19</p><p> 7.1.2課程信息修改21</p><p> 7.1.3課程刪除22</p><p> 7.2班級課程管理23&
7、lt;/p><p> 7.2.1班級課程查詢23</p><p> 7.2.2班級課程添加25</p><p> 7.2.3班級課程刪除26</p><p> 7.3新課程添加27</p><p> 第8章學(xué)生成績管理29</p><p> 8.1學(xué)生成績查詢29
8、</p><p> 8.2成績修改31</p><p> 8.3成績刪除32</p><p> 8.4成績添加32</p><p> 第9章學(xué)生信息33</p><p> 9.1用戶基本信息33</p><p> 9.2個人信息修改33</p>
9、<p> 9.3密碼修改34</p><p> 第10章用戶管理35</p><p> 10.1注冊用戶35</p><p> 10.2用戶權(quán)限管理35</p><p> 第11章系統(tǒng)問題及解決方案36</p><p> 11.1限制用戶操作36</p>&l
10、t;p> 11.2非法登錄的處理36</p><p> 11.3iframe框架的自動調(diào)整高度和寬度問題37</p><p><b> 緒論</b></p><p> 管理信息系統(tǒng)就是我們常說的MIS(Management Information System ),在強調(diào)管理,強調(diào)信息的現(xiàn)代社會中它變得越來越普及。MIS是
11、一門新的科學(xué),它跨越了若干個領(lǐng)域,比如管理科學(xué)、系統(tǒng)科學(xué)、運籌學(xué)、統(tǒng)計學(xué)以及計算機科學(xué)。在這些學(xué)科的基礎(chǔ)上,形成信息收集和加工的方法,從而形成一個縱橫交織的系統(tǒng)。</p><p> 近年來Internet的飛速發(fā)展,Intranet技術(shù)得到了應(yīng)用,為企業(yè)MIS提供了良好的支持環(huán)境。管理信息系統(tǒng)在企業(yè)的應(yīng)用中存在三個要素,這就是人、計算機和數(shù)據(jù)。人是指企業(yè)領(lǐng)導(dǎo)者、管理人員、技術(shù)人員,以及MIS建設(shè)的領(lǐng)導(dǎo)機構(gòu)和實施
12、機構(gòu),他們必須有企業(yè)管理人員,尤其是企業(yè)領(lǐng)導(dǎo)的積極參與。計算機技術(shù)使MIS得以實施的主要技術(shù)。在這些技術(shù)中,軟件開發(fā)是MIS開發(fā)的重點。第三個因素也不能忽視。企業(yè)的管理數(shù)據(jù)是MIS正常運行的基礎(chǔ)。廣義地說,各項管理控制是MIS的基礎(chǔ)。是想要計算一臺機床的成本,需要按時輸入、每個零件以及每個螺釘螺母的費用,涉及企業(yè)的生產(chǎn)車間、采購、庫房、 工藝設(shè)計和財務(wù)等多個部門,必須有一套管理制度作保證。 </p><p>
13、隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。目前,學(xué)校學(xué)生管理是教務(wù)管理中的一個極為重要的環(huán)節(jié),它是整個管理的核心和基礎(chǔ)。由于學(xué)校規(guī)模進一步擴大,學(xué)生人數(shù)逐年上升,學(xué)生情況的管理也變得越來越復(fù)雜。面對如此繁雜的任務(wù)。如果讓個人去管理文檔,就會顯得費時費力。尤其在管理成績時,任務(wù)更加繁重,就成績管理本身來說,它是一項任務(wù)繁重、時效性較強的系統(tǒng)工作,它不但涉及
14、學(xué)生個人成績查詢,更涉及到各教師的工作效率和質(zhì)量。近年來隨著計算機的迅速發(fā)展,計算機已經(jīng)在社會各個領(lǐng)域顯示了它巨大的作用。毋庸置疑,切實有效地把計算機管理引入學(xué)校教務(wù)管理中,對于促進學(xué)校管理制度,提高學(xué)校教學(xué)質(zhì)量與辦學(xué)水平有著顯著意義。 </p><p> 現(xiàn)在我國的一些院校中的信息管理效率還不是很高,這樣已經(jīng)不能適應(yīng)時代的發(fā)展,因為它浪費了許多人力和物力,在信息時代這種傳統(tǒng)的管理方法必然被計算機為基礎(chǔ)的信息管
15、理所取代。所以,學(xué)生信息系統(tǒng)的設(shè)計與開發(fā)也是一個時代必經(jīng)的階段。</p><p> 在這次所做的系統(tǒng)中,我們用WindonwsXP為操作平臺,ASP作為腳本語言,采用SQL Sever 2000作為數(shù)據(jù)庫,主要實現(xiàn)對學(xué)生信息、班級信息、課程信息、成績信息以及系統(tǒng)用戶的管理,完成對數(shù)據(jù)的的查詢、錄入、修改和刪除等操作。</p><p><b> 系統(tǒng)開發(fā)環(huán)境</b>
16、</p><p> 本次系統(tǒng)開發(fā)主要運用ASP編程語言與SQL Server2000數(shù)據(jù)庫,采用B/S模式進行開發(fā)。</p><p><b> ASP概述</b></p><p> ASP是Active Server Page的縮寫,意為“活動服務(wù)器網(wǎng)頁”。ASP是微軟公司開發(fā)的代替CGI腳本程序的一種應(yīng)用,它可以與數(shù)據(jù)庫和其它程序進行交
17、互,是一種簡單、方便的編程工具。ASP的網(wǎng)頁文件的格式是.asp,現(xiàn)在常用于各種動態(tài)網(wǎng)站中。 ASP是一種服務(wù)器端腳本編寫環(huán)境,可以用來創(chuàng)建和運行動態(tài)網(wǎng)頁或web應(yīng)用程序。ASP網(wǎng)頁可以包含HTML標記、普通文本、腳本命令以及COM組件等。利用ASP可以向網(wǎng)頁中添加交互式內(nèi)容(如在線表單),也可以創(chuàng)建使用HTML網(wǎng)頁作為用戶界面的web應(yīng)用程序。 與HTML相比,ASP網(wǎng)頁具有以下特點: </p><p> ?。?/p>
18、1)利用ASP可以實現(xiàn)突破靜態(tài)網(wǎng)頁的一些功能限制,實現(xiàn)動態(tài)網(wǎng)頁技術(shù); </p><p> (2)ASP文件是包含在HTML代碼所組成的文件中的,易于修改和測試; </p><p> ?。?)服務(wù)器上的ASP解釋程序會在服務(wù)器端制定ASP程序,并將結(jié)果以HTML格式傳送到客戶端瀏覽器上,因此使用各種瀏覽器都可以正常瀏覽ASP所產(chǎn)生的網(wǎng)頁; </p><p> ?。?
19、)ASP提供了一些內(nèi)置對象,使用這些對象可以使服務(wù)器端腳本功能更強。例如可以從web瀏覽器中獲取用戶通過HTML表單提交的信息,并在腳本中對這些信息進行處理,然后向web瀏覽器發(fā)送信息; </p><p> (5)ASP可以使用服務(wù)器端ActiveX組建來執(zhí)行各種各樣的任務(wù),例如存取數(shù)據(jù)庫、發(fā)現(xiàn)那個Email或訪問文件系統(tǒng)等。 </p><p> ?。?)由于服務(wù)器是將ASP程序執(zhí)行的結(jié)
20、果以HTML格式傳回客戶端瀏覽器,因此使用者不會看到ASP所編寫的原始程序代碼,可放置ASP程序代碼被竊取。</p><p> SQL Server介紹</p><p> SQL是英文Structured Query Language的縮寫,意思為結(jié)構(gòu)化查詢語言。SQL語言的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進行溝通。按照ANSI(美國國家標準協(xié)會)的規(guī)定,SQL被作為關(guān)系型數(shù)據(jù)庫管理
21、系統(tǒng)的標準語言。SQL語句可以用來執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫中的數(shù)據(jù),從數(shù)據(jù)庫中提取數(shù)據(jù)等。目前,絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL語言標準。雖然很多數(shù)據(jù)庫都對SQL語句進行了再開發(fā)和擴展,但是包括Select, Insert, Update, Delete, Create,以及Drop在內(nèi)的標準的SQL命令仍然可以被用來
22、完成幾乎所有的數(shù)據(jù)庫操作。 </p><p><b> B/S結(jié)構(gòu)模式</b></p><p> B/S(Browser/Server)結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過www瀏覽器來實現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Se
23、rver)實現(xiàn),形成所謂三層3-tier結(jié)構(gòu)。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護與升級的成本和工作量,降低了用戶的總體成本(TCO)。 </p><p> 以目前的技術(shù)看,局域網(wǎng)建立B/S結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用,并通過Internet/Intranet模式下數(shù)據(jù)庫應(yīng)用,相對易于把握、成本也是較低的。它是一次性到位的開發(fā),能實現(xiàn)不同的人員, 從不同的地點,以不同的接入方式(比如LAN, WAN, Intern
24、et/Intranet等)訪問和操作共同的數(shù)據(jù)庫;它能有效地保護數(shù)據(jù)平臺和管理訪問權(quán)限,服務(wù)器數(shù)據(jù)庫也很安全。</p><p><b> 需求分析</b></p><p> 需求分析就是描述系統(tǒng)的需求,通過定義系統(tǒng)中的關(guān)鍵類域來建立模型。分析的根本目的是在開發(fā)者和提出需求的用戶之間建立一種理解和溝通的機制。通過對用戶需求的收集,使我們所做的系統(tǒng)能更加直接的滿足用戶
25、。</p><p> 由于學(xué)生信息管理系統(tǒng)的主要使用者是院校教師,因此我們必須對教師的要求進行收集記錄,設(shè)計用戶界面和操作方案。</p><p> 通過數(shù)據(jù)收集,我們主要獲取到以下需求:</p><p><b> 系統(tǒng)用戶</b></p><p> 系統(tǒng)中出現(xiàn)的用戶主要分為管理員和普通用戶,每個學(xué)生都能擁有一個用
26、戶。管理員能對系統(tǒng)的所有功能進行操作,而普通用戶只能通過系統(tǒng)查詢想要獲取的信息,并不能做到添加數(shù)據(jù),對數(shù)據(jù)進行修改刪除等功能; </p><p> 用戶的注冊并不被開放,只能由管理員進行注冊,避免不存在的學(xué)生信息被添加進數(shù)據(jù)庫;</p><p> 系統(tǒng)必須具備登錄系統(tǒng),對應(yīng)用系統(tǒng)的人員進行限制,對用戶跳過登錄系統(tǒng)直接訪問系統(tǒng)的行為采取拒絕操作;</p><p>
27、 當(dāng)用戶對數(shù)據(jù)進行添加修改刪除后,能彈出對話框進行提示。</p><p><b> 學(xué)生信息管理</b></p><p> 在注冊用戶的同時對學(xué)生的信息進行錄入,其中信息必須含有學(xué)生學(xué)號、姓名、籍貫、民族、班級、出生年月、政治面貌、聯(lián)系方式、家庭住址、郵政編碼、身份證號等,還能設(shè)置學(xué)生的照片(通過本地計算機上傳到服務(wù)器),學(xué)生用戶也能在登錄到系統(tǒng)后也能對自己的信
28、息進行修改;</p><p> 能對用戶自身的密碼進行修改。</p><p><b> 班級信息管理</b></p><p> 能查詢每個班級的詳細信息,包括班級名稱、班級人數(shù)、班級學(xué)生詳細名單(學(xué)號和姓名即可)與該班級的相關(guān)課程,當(dāng)學(xué)生被調(diào)動時,能及時更新班級人數(shù)與名單;</p><p> 系統(tǒng)能夠添加新的班級
29、,主要輸入班級的名稱、班級信息與所在系;同時也能對這些添加的班級信息進行修改;</p><p> 對要刪除的班級有刪除限制:當(dāng)班級內(nèi)還有學(xué)生存在時,則該班級不能刪除,避免出現(xiàn)信息的錯誤。</p><p><b> 課程信息管理</b></p><p> 能夠查詢院校內(nèi)所有設(shè)置的課程名稱、所設(shè)學(xué)期、學(xué)分與課程說明;</p>&
30、lt;p> 對院內(nèi)所有班級的課程進行設(shè)置,即能給任何班級添加一門新的課程,同樣能解除一門已有的課程;</p><p> 添加課程,并能對課程的信息進行維護修改刪除;</p><p> 當(dāng)課程被刪除時,設(shè)置了該課程的班級也將刪除該課程的信息,擁有該課程成績的學(xué)生成績也將被取消。</p><p><b> 學(xué)生成績管理</b><
31、/p><p> 學(xué)生能對自己獲得的成績進行基本查詢;</p><p> 教師能夠添加新的成績,也能修改錯誤的成績信息;</p><p><b> 刪除成績。</b></p><p><b> 方案設(shè)計</b></p><p><b> 功能模塊設(shè)計圖</
32、b></p><p> 根據(jù)上面需求的分析,設(shè)計出以下模型:</p><p><b> 圖 1功能模塊圖</b></p><p><b> 數(shù)據(jù)庫建立</b></p><p> 根據(jù)用戶需求,為了能更好的實現(xiàn)功能模塊,設(shè)計了以下數(shù)據(jù)庫表:</p><p><
33、;b> 圖 2 數(shù)據(jù)庫表</b></p><p><b> Users表:</b></p><p><b> 表 1users表</b></p><p><b> Class表:</b></p><p> 表 2 class表</p>
34、<p><b> Credits表:</b></p><p> 表 3 credits表</p><p> Course_management表:</p><p> 表 4 course_management表</p><p> Department表:</p><p> 表
35、 5 Department表</p><p><b> Results表:</b></p><p> 表 6 results表</p><p><b> 系統(tǒng)開發(fā)</b></p><p> 本系統(tǒng)是一個基于SQL Server數(shù)據(jù)庫為基礎(chǔ),利用ASP網(wǎng)絡(luò)編碼語言進行開發(fā)的信息管理系統(tǒng)。該系統(tǒng)
36、實現(xiàn)了對院校班級、課程、學(xué)生信息和成績的管理。它可以使得用戶更直觀、更全面的了解院校信息情況,實現(xiàn)統(tǒng)一管理,其中多用戶的管理模式,更加能促進數(shù)據(jù)的及時更新,加快管理效率。</p><p><b> 系統(tǒng)的登錄</b></p><p> 由于該系統(tǒng)是一個多用戶的平臺,必須對每個用戶的登錄進行管理,并從登錄的用戶信息中獲取用戶級別,從而限制普通用戶的權(quán)限,同時也可以杜
37、絕非用戶人員的進入,實施惡意破壞,導(dǎo)致數(shù)據(jù)出現(xiàn)問題。</p><p> 圖 3 用戶登錄窗口</p><p> 通過上面圖3的網(wǎng)頁窗口,我們就可以實現(xiàn)用戶的登錄管理。</p><p> 在輸入用戶名與密碼之后,點擊登錄即可。當(dāng)用戶名或密碼出現(xiàn)錯誤時,我們將自動跳轉(zhuǎn)回登錄窗口,并提示用戶名密碼錯誤;假如正確我們將進入系統(tǒng)頁面(下圖4)。</p>&
38、lt;p> 圖 4 系統(tǒng)界面首頁</p><p> 這個功能從根本上說,即為從數(shù)據(jù)庫users表中查詢相關(guān)用戶信息,對照登錄窗口中輸入的數(shù)據(jù)并判斷數(shù)據(jù)的正確性,從而做出相應(yīng)的跳轉(zhuǎn)。</p><p> 在這之前,我們必須先要連接數(shù)據(jù)庫,否則將無法進行操作,數(shù)據(jù)庫連接代碼如下:</p><p><b> <%dim cnn</b>
39、;</p><p> set cnn=server.CreateObject("adodb.connection")</p><p> cnn.connectionstring="provider=sqloledb;data source=(local);uid=sa;pwd=sa;database=information"</p>
40、<p><b> cnn.open</b></p><p><b> %></b></p><p> 并保存為cnn.asp</p><p> 有了連接數(shù)據(jù)庫代碼之后,我們就可以實現(xiàn)登錄功能了,將登錄按鈕所處表單的action=”checklogin.asp”,其中checklogin.asp 為
41、我設(shè)置的判斷代碼頁,詳細代碼如下:</p><p> <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%></p><p> <!--#include file="cnn.asp"--></p><p> <%dim username,passw
42、ord,rs,sql</p><p> username=request.Form("username")</p><p> password=request.Form("password")</p><p> sql="select * from users where username='"
43、;&username&"'"</p><p> set rs=server.CreateObject("adodb.recordset")</p><p> rs.open sql,cnn,1,3</p><p> if rs.eof then </p><p> res
44、ponse.Write"<script language='javascript'> alert('用戶名密碼不正確!');location='login.asp'</script>"</p><p> response.End</p><p><b> else</b>
45、</p><p> if rs("password")<>password then </p><p> response.Write"<script language='javascript'> alert('用戶名密碼不正確!');location='login.asp'<
46、/script>"</p><p> response.End</p><p><b> else</b></p><p> session("username")=username</p><p> session("level")=rs("s_
47、level")</p><p> response.Redirect("main.asp")</p><p><b> end if</b></p><p><b> end if</b></p><p><b> rs.close</b>
48、</p><p> set rs=nothing%></p><p> 在上面代碼中,我們可以找到“<!--#include file="cnn.asp"-->”的代碼行,這即為包含先前創(chuàng)建的數(shù)據(jù)庫連接文件cnn.asp。</p><p> 當(dāng)輸入的用戶信息正確時,我們將獲取用戶的級別,用于對用戶進入系統(tǒng)后所擁有的權(quán)限進行
49、設(shè)置。</p><p> session("username")=username</p><p> session("level")=rs("s_level")</p><p> response.Redirect("main.asp")</p><p>
50、 其中session("username")為用戶名,session("level")為用戶級別。</p><p><b> 班級管理</b></p><p><b> 班級基本信息</b></p><p> 班級基本信息頁面中,我們主要實現(xiàn)的是對班級詳細信息的查詢,并能修改
51、班級的信息或者刪除該班級。</p><p><b> 班級信息查詢</b></p><p> 圖 5 班級信息的查詢</p><p> 通過圖5,我們不難看出,我們可以通過在下拉菜單中選擇要查詢的班級名稱,然后點擊查詢,即可查到某個班級的詳細信息,為了能使得下拉菜單中的選項能隨時更新,同數(shù)據(jù)庫同步,我們可以通過查詢數(shù)據(jù)庫中所有班級的名稱,
52、然后插入下拉菜單中:</p><p> set rs=server.CreateObject("adodb.recordset")</p><p> sql="select * from class"</p><p> rs.open sql,cnn,1,1</p><p> <selec
53、t name="c_id" id="c_id"></p><p> <option>請選擇你要查詢的班級</option></p><p> <%do while not rs.eof %></p><p> <option value="<%=rs(&qu
54、ot;c_id")%>"><%=rs("c_name")%></option></p><p> <%rs.movenext</p><p><b> loop%></b></p><p><b> </select></b
55、></p><p> 從上面的代碼,我們可以看出,在點擊查詢按鈕后,傳遞的參數(shù)并非班級名稱(c_name),而是班級編號(c_id)。那我們只需要在獲取班級編號后,從數(shù)據(jù)庫中調(diào)出該班級編號的信息并顯示,即可完成查詢的功能。</p><p> c_id=request.Form("c_id")</p><p> sql="se
56、lect * from class where c_id="&c_id</p><p> rs.open sql,cnn,1,3</p><p> 通過這段代碼,我們可以查詢到班級詳細信息</p><p> set class_detail_rs=server.CreateObject("adodb.recordset")
57、</p><p> class_detail_sql="select s_name,s_no from users where c_id="&c_id</p><p> class_detail_rs.open class_detail_sql,cnn,1,3</p><p> 通過這段代碼,我們可以查詢到班級內(nèi)學(xué)生學(xué)號與姓名<
58、;/p><p> set rsr=server.CreateObject("adodb.recordset")</p><p> sql_count="select count(*) as count from users where c_id="&c_id</p><p> rsr.open sql_count,c
59、nn,1,3</p><p> 通過這段代碼,我們可以查詢到班級的總?cè)藬?shù)</p><p> set rrs=server.CreateObject("adodb.recordset")</p><p> ssql="select * from course_management,credits,class where course
60、_management.c_id=class.c_id and course_management.course_id=credits.course_id and class.c_id="&c_id&" order by course_level"</p><p> rrs.open ssql,cnn,1,3</p><p> 通過這段代碼
61、,我們可以查詢到班級內(nèi)所設(shè)的班級課程</p><p> 最后我們只要把這些數(shù)據(jù)通過一定的布局顯示出來即可,如下圖:</p><p> 圖 6 班級詳細信息</p><p><b> 班級信息修改</b></p><p> 從6.1.1的圖6,可以看到修改班級信息的按鈕,點擊該按鈕,將跳轉(zhuǎn)到以下界面</p&g
62、t;<p><b> 圖 7修改班級信息</b></p><p> 在修改完班級的信息之后點擊修改,就可成功修改班級信息,完成操作。</p><p> c_id=request.Form("c_id")</p><p> set rs=server.CreateObject("adodb.re
63、cordset")</p><p> sql="select * from class,Department where Department.d_id=class.d_id and c_id="&c_id</p><p> rs.open sql,cnn,1,3</p><p> 通過這段代碼將要被修改的班級信息顯示在修
64、改界面中,修便于用戶看清班級改前的信息。</p><p> 其中在修改界面中,存在著一個隱藏域</p><p> <input name="c_id" type="hidden" id="c_id" value="<%=rs("c_id")%>" /></p
65、><p> 用于傳遞要被修改的班級編號。</p><p> c_id=request.Form("c_id")</p><p> set rs=server.CreateObject("adodb.recordset")</p><p> sql="select * from class
66、where c_id="&c_id</p><p> rs.open sql,cnn,1,3</p><p> rs("c_name")=request.Form("c_name")</p><p> rs("c_bz")=request.Form("c_bz")
67、</p><p><b> rs.update</b></p><p><b> rs.close</b></p><p> response.Write"<scriptlanguage='javascript'>alert('修改成功!');location=&
68、#39;class_info.asp?action=1'</script></p><p><b> 刪除班級</b></p><p> 從6.1.1的圖6,可以看到刪除的按鈕,其中按鈕所在的表單存在著一個和隱藏域,用于傳遞刪除的班級編號。因為將被刪除的班級存在著含有學(xué)生的班級,必須進行排除,避免刪除該班級后,將級聯(lián)刪除了學(xué)生的信息,導(dǎo)致數(shù)據(jù)丟
69、失。清楚這點后,我們就可以著手編碼了。</p><p> c_id=request.Form("c_id")</p><p> sql="select * from users where c_id="&c_id</p><p> set rs=server.CreateObject("adodb.re
70、cordset")</p><p> rs.open sql,cnn,1,3</p><p> if not rs.eof then</p><p> response.Write"<script language='javascript'> alert('該班級中有學(xué)生未被分配到其他班級,請先分配完畢
71、');location='class_info.asp?action=1'</script>"</p><p> response.end</p><p><b> end if</b></p><p> set rs=server.CreateObject("adodb.recor
72、dset")</p><p> sql="select * from class where c_id="&c_id</p><p> rs.open sql,cnn,1,3</p><p><b> rs.delete</b></p><p><b> rs.up
73、date</b></p><p> response.Write"<script language='javascript'> alert('成功刪除!');</p><p> location='class_info.asp?action=1'</script>"</p&g
74、t;<p><b> rs.close</b></p><p><b> 添加班級</b></p><p> 添加班級主要實現(xiàn)向數(shù)據(jù)庫插入一個新的班級數(shù)據(jù)即可。</p><p><b> 圖 8 添加班級</b></p><p> 在圖8所示的文本框中輸
75、入相關(guān)的信息點擊添加,即可完成添加:</p><p> set rs=server.CreateObject("adodb.recordset")</p><p> sql="select * from class where 1<>1"</p><p> rs.open sql,cnn,1,3</p&
76、gt;<p><b> rs.addnew</b></p><p> rs("c_name")=request.Form("c_name")</p><p> rs("c_bz")=request.Form("c_bz")</p><p> r
77、s("d_id")=request.Form("d_id")</p><p><b> rs.update</b></p><p> response.Write"<script language='javascript'> alert('添加成功!');</p&
78、gt;<p> location='class_info.asp?action=1'</script>"</p><p><b> rs.close</b></p><p><b> 院系情況</b></p><p> 為了能體現(xiàn)班級所在的系別,所以我們必須對院內(nèi)
79、的系也應(yīng)該進行管理</p><p><b> 圖 9 院系情況</b></p><p> 點擊院系情況,我們直接顯示出所有的系別名稱。在點擊某個系別下面的刪除按鈕時,代碼將直接對數(shù)據(jù)進行處理,刪除所點信息;在輸入系別名稱,點擊添加按鈕后,即可成功完成添加。完成刪除或添加按鈕后系別信息都將被刷新。</p><p> sql="se
80、lect * from Department"</p><p> set rs=server.CreateObject("adodb.recordset")</p><p> rs.open sql,cnn,1,3</p><p><b> 顯示所有系別信息</b></p><p>
81、 d_id=request.Form("d_id")</p><p> sql="select * from class where d_id="&d_id</p><p> set rs=server.CreateObject("adodb.recordset")</p><p> rs.o
82、pen sql,cnn,1,3</p><p> if not rs.eof then</p><p> response.Write"<script language='javascript'> alert('該系別中還存在著班級,刪除失敗');location='class_info.asp?action=7'
83、</script>"</p><p> response.end</p><p><b> end if</b></p><p> sql="select * from Department where d_id="&d_id</p><p> set rs=se
84、rver.CreateObject("adodb.recordset")</p><p> rs.open sql,cnn,1,3</p><p><b> rs.delete</b></p><p><b> rs.update</b></p><p> respons
85、e.Redirect("class_info.asp?action=7")</p><p><b> end if</b></p><p> 同樣為了防止系別中還存在班級,刪除信息導(dǎo)致數(shù)據(jù)丟失,我們也進行了判斷</p><p> d_name=request.Form("d_name")</p
86、><p> if d_name="" then</p><p> Response.Write"<script language='javascript'>alert('系別名稱不能為空');location.href='javascript:history.back()';</script&g
87、t;"</p><p> response.End()</p><p><b> end if</b></p><p> sql="select * from Department where d_name='"&d_name&"'"</p>
88、<p> set rs=server.CreateObject("adodb.recordset")</p><p> rs.open sql,cnn,1,3</p><p> if rs.eof then</p><p><b> rs.addnew</b></p><p> r
89、s("d_name")=d_name</p><p><b> rs.update</b></p><p> response.Redirect("class_info.asp?action=7")</p><p><b> else </b></p><p
90、> Response.Write"<script language='javascript'>alert('已經(jīng)存在該系別');location.href='javascript:history.back()';</script>"</p><p> response.End()</p><p
91、><b> end if</b></p><p> 添加系別時,應(yīng)注意系別的重名,必須進行判斷。</p><p><b> 課程管理</b></p><p><b> 課程信息管理</b></p><p> 課程信息管理主要實現(xiàn)對已有課程的信息查詢、修改和刪除
92、操作。</p><p> 圖 10 課程信息管理</p><p><b> 課程查詢</b></p><p> 在下拉菜單中選擇需要查詢的班級信息,點擊查詢來完成操作。當(dāng)沒有選擇課程名稱,或課程名稱為空時,則顯示全部的課程信息。其中下拉菜單的選項同樣使用同步更新:</p><p> <%dim rs,sql
93、</p><p> set rs=server.CreateObject("adodb.recordset")</p><p> sql="select * from credits order by course_level"</p><p> rs.open sql,cnn,1,1%></p>&
94、lt;p> <select name="course_id" id="course_id"></p><p> <option value="">請選擇你要查詢的課程</option></p><p> <% do while not rs.eof%></p>
95、<p> <option value="<%=rs("course_id")%>"><%=rs("course_name")%></option> </p><p> <%rs.movenext</p><p><b>
96、 loop</b></p><p> rs.close%></p><p><b> </select></b></p><p> 查詢到結(jié)果后并以分頁的格式顯示,代碼如下:</p><p> <%sql="select * from credits order b
97、y course_level"</p><p> if course_id<>"" then</p><p> sql="select * from credits where course_id="&course_id</p><p><b> end if</b>&
98、lt;/p><p> rs.open sql,cnn,1,3</p><p> if not rs.eof then </p><p> iCount=rs.RecordCount </p><p> rs.pagesize=10</p><p> iPageSize=rs.PageSize</p>
99、<p> maxpage=rs.PageCount </p><p> page=request("page")</p><p> if Not IsNumeric(page) or page="" then</p><p><b> page=1</b></p>&l
100、t;p><b> else</b></p><p> page=cint(page)</p><p><b> end if</b></p><p> if page<1 then</p><p><b> page=1</b></p>&l
101、t;p> elseif page>maxpage then</p><p> page=maxpage</p><p><b> end if</b></p><p> rs.AbsolutePage=Page </p><p><b> i=0%></b></p
102、><p> <%do while not rs.eof and i<ipagesize%></p><p><b> <tr></b></p><p> <td height="20"><div align="center" class="STY
103、LE8"><%=rs("course_level")%></div></td></p><p> <td><div align="center" class="STYLE8"><%=rs("course_name")%></div>&
104、lt;/td></p><p> <td><div align="center" class="STYLE8"><%=rs("course_credits")%></div></td></p><p> <td><div align="
105、;center" class="STYLE8"><%=rs("course_text")%></div></td></p><p> <td><span class="STYLE8"><a href="course_info.asp?action=4&c
106、ourse_id=<%=rs("course_id")%>">【刪除】</a><a href="course_info.asp?action=5&course_id=<%=rs("course_id")%>"> 【修改】</a></span></td></p>
107、<p><b> </tr></b></p><p> <%rs.movenext</p><p><b> i=i+1</b></p><p><b> loop%></b></p><p> 當(dāng)查詢不到結(jié)果時,則顯示“目前暫無
108、課程,請先添加”</p><p><b> <%else%></b></p><p> <table width="670" height="100" border="0" align="center" cellpadding="0" cellsp
109、acing="0"></p><p><b> <tr></b></p><p> <td><div align="center" class="STYLE9">目前暫無課程,請先添加</div></td></p><p
110、><b> </tr></b></p><p><b> </table></b></p><p> <%end if%></p><p><b> 課程信息修改</b></p><p> 當(dāng)在數(shù)據(jù)庫中查詢到結(jié)果集后,如圖10
111、所示,每條數(shù)據(jù)信息后都跟有以超鏈接形式存在的修改文本按鈕,通過點擊超鏈接跳轉(zhuǎn)到修改頁面。</p><p> 為了能在修改頁面中顯示某個課程在被修改前的信息情況,所以我們必須在通過超鏈接跳轉(zhuǎn)頁面的同時傳遞一個標示課程信息唯一參數(shù)到新的頁面并換取下來即可,在這里,我們通過傳遞課程編號來實現(xiàn)。我們可以運用以下代碼來實現(xiàn):</p><p> <a href="course_in
112、fo.asp?action=5&course_id=<%=rs("course_id")%>"> 【修改】</a></p><p> 其中rs("course_id")為某個課程的課程編號。</p><p> course_id=request.QueryString("course_id
113、")</p><p> set rs=server.CreateObject("adodb.recordset")</p><p> Sql="Select * From credits where course_id="&course_id</p><p> rs.open sql,cnn,1,3&l
114、t;/p><p> 通過上面的代碼獲取傳遞的參數(shù)并查詢到課程的相應(yīng)信息,結(jié)果顯示如下圖:</p><p> 圖 11課程信息修改</p><p> 圖中所顯示的表單中存在一個隱藏域,用于輸入課程編號,便于修改時,可根據(jù)課程編號進行修改。</p><p> 在對修改的數(shù)據(jù)進行保存時,要注意到學(xué)分和學(xué)期必須為數(shù)字,不能為字符,同時,課程名稱不
115、能為空,根據(jù)這樣的想法,編寫代碼如下:</p><p> course_id=request.Form("course_id")</p><p> course_name=request.Form("course_name")</p><p> course_level=request.Form("course
116、_level")</p><p> course_text=request.Form("course_text")</p><p> course_credits=request.Form("course_credits")</p><p> if course_name="" or cou
117、rse_level="" or course_text="" or course_credits="" then</p><p> Response.Write"<script language='javascript'>alert('相關(guān)信息不能為空');location.href='ja
118、vascript:history.back()';</script>"</p><p> response.End()</p><p><b> end if</b></p><p> if Not IsNumeric(course_level) or Not IsNumeric(course_credits
119、) then</p><p> Response.Write"<script language='javascript'>alert('學(xué)期和學(xué)分必須為數(shù)字');location.href='javascript:history.back()';</script>"</p><p> respo
120、nse.End()</p><p><b> end if</b></p><p> Sql="Select * From credits where course_id="&course_id</p><p> set rs=server.CreateObject("adodb.recordset&
121、quot;)</p><p> rs.open sql,cnn,1,3</p><p> rs("course_name")=course_name</p><p> rs("course_level")=course_level</p><p> rs("course_text&qu
122、ot;)=course_text</p><p> rs("course_credits")=course_credits</p><p><b> rs.update</b></p><p><b> rs.close</b></p><p> response.Wri
123、te"<script language='javascript'> alert('成功修改相關(guān)信息');location='course_info.asp?action=1'</script>"</p><p><b> 課程刪除</b></p><p> 利用同樣的方法
124、,我們大可以利用課程編號來唯一標示某條信息并傳遞到刪除的代碼當(dāng)中進行確認刪除。</p><p> <a href="course_info.asp?action=4&course_id=<%=rs("course_id")%>">【刪除】</a></p><p> 其中rs("course_i
125、d")為某個課程的課程編號。</p><p> 由于存在著某些課程已經(jīng)被安排到班級中,學(xué)生已經(jīng)取得過該門課程的成績,為了避免刪除時出現(xiàn)外鍵約束導(dǎo)致刪除失敗的現(xiàn)象,我們必須先刪除班級中的課程,然后刪除含有該門課成績的成績信息,最后才能刪除掉課程的信息。</p><p> 或者在設(shè)計數(shù)據(jù)庫外鍵時選擇級聯(lián)刪除亦可(如圖12)。</p><p> 圖 12
126、外鍵級聯(lián)刪除</p><p> 根據(jù)上面的分析,可編寫代碼如下:</p><p> course_id=request.QueryString("course_id")</p><p> set rs=server.CreateObject("adodb.recordset")</p><p>
127、 Sql="Select * From results where course_id="&course_id</p><p> rs.open sql,cnn,1,3</p><p> if not rs.eof then</p><p><b> rs.delete</b></p><p
128、><b> rs.update</b></p><p><b> rs.close</b></p><p><b> end if</b></p><p> set rs=server.CreateObject("adodb.recordset")</p>
129、<p> Sql="Select * From course_management where course_id="&course_id</p><p> rs.open sql,cnn,1,3</p><p> if not rs.eof then</p><p><b> rs.delete</
130、b></p><p><b> rs.update</b></p><p><b> rs.close</b></p><p><b> end if</b></p><p> Sql="Select * From credits where cours
131、e_id="&course_id</p><p> set rs=server.CreateObject("adodb.recordset")</p><p> rs.open sql,cnn,1,3</p><p><b> rs.delete</b></p><p><
132、;b> rs.update</b></p><p><b> rs.close</b></p><p> response.Write"<script language='javascript'> alert('成功刪除相關(guān)信息');location='course_info.as
133、p?action=1'</script>"</p><p><b> 班級課程管理</b></p><p> 班級課程管理,主要實現(xiàn)的是查詢某個班級的課程信息,并能進行添加或刪除。</p><p><b> 班級課程查詢</b></p><p> 圖 13 班級
134、課程查詢</p><p> 從下拉菜單中選擇要查詢的班級名稱,點擊查詢來完成。</p><p> 從下拉菜單從傳遞班級編號參數(shù)到查詢過程,對應(yīng)數(shù)據(jù)庫查詢到相應(yīng)的課程信息,并顯示。當(dāng)查詢集為空時,則顯示“該班級目前沒有設(shè)置課程,請先添加”。</p><p> <%c_id=request("c_id")</p><p
135、> sql="select credits.*,class.* from credits,class,course_management </p><p> where credits.course_id=course_management.course_id and course_management.c_id=class.c_id and class.c_id="&c_i
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生信息管理系統(tǒng) 畢業(yè)論文
- 畢業(yè)論文---學(xué)生信息管理系統(tǒng)
- 畢業(yè)論文——--學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)畢業(yè)論文
- 學(xué)生信息管理系統(tǒng)畢業(yè)論文
- 學(xué)生信息管理系統(tǒng)畢業(yè)論文
- 學(xué)生信息管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——學(xué)生信息管理系統(tǒng)
- 畢業(yè)論文-學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)——畢業(yè)論文
- 畢業(yè)論文--學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——《學(xué)生信息管理系統(tǒng)》
- 學(xué)生信息管理系統(tǒng)畢業(yè)論文
- 學(xué)生信息管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——學(xué)生信息管理系統(tǒng) (2)
- vf學(xué)生信息管理系統(tǒng)畢業(yè)論文
- java學(xué)生信息管理系統(tǒng)畢業(yè)論文
- vb學(xué)生信息管理系統(tǒng)a畢業(yè)論文
- 學(xué)生信息管理系統(tǒng)畢業(yè)論文 (2)
評論
0/150
提交評論