畢業(yè)設(shè)計(jì)(論文) 學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
《畢業(yè)設(shè)計(jì)(論文) 學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《畢業(yè)設(shè)計(jì)(論文) 學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(38頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、畢業(yè)設(shè)計(jì)(論文) 目錄 前言 2 第1章ASP 技術(shù) 3 技術(shù)簡(jiǎn)介 3 的內(nèi)置對(duì)象及語(yǔ)法實(shí)現(xiàn) 4 第2章 SQL語(yǔ)言 7 語(yǔ)言簡(jiǎn)介 7 2.2 基本查詢、插入、修改 7 第3章 概述 9 3.1 開(kāi)發(fā)工具的選用 9 第4章 設(shè)計(jì)構(gòu)思 11 總體設(shè)計(jì) 11 功能模塊(主) 12 總結(jié) 38 參考文獻(xiàn) 38 致謝 38 學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 前言 學(xué)生成績(jī)管理系統(tǒng)是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來(lái)說(shuō)都至關(guān)重要,所以學(xué)籍管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄巍5恢币詠?lái)人們使
2、用傳統(tǒng)人工的方式管理學(xué)籍檔案,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來(lái)了困難。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生檔案信息進(jìn)行管理,具有手工管理所無(wú)法比擬的優(yōu)點(diǎn)。例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生檔案管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。因此,開(kāi)發(fā)這樣一套管理軟件成為很有必要的事情,在下面的各章中我們
3、將以開(kāi)發(fā)一套學(xué)生成績(jī)管理系統(tǒng)為例,談?wù)勂溟_(kāi)發(fā)過(guò)程和所涉及到的問(wèn)題及解決方法。 第1章ASP 技術(shù) 什么是ASP Active Server Pages(ASP,活動(dòng)服務(wù)器頁(yè)面)就是一個(gè)編程環(huán)境,在其中,可以混合使用HTML、腳本語(yǔ)言以及組件來(lái)創(chuàng)建服務(wù)器端功能強(qiáng)大的Internet應(yīng)用程序。?如果你以前創(chuàng)建過(guò)一個(gè)站點(diǎn),其中混合了HTML、腳本語(yǔ)言以及組件,你就可以在其中加入ASP程序代碼。通過(guò)在HTML頁(yè)面中加入腳本命令,你可以創(chuàng)建一個(gè)HTML用戶界面,并且,還可以通過(guò)使用組件包含一些商業(yè)邏輯規(guī)則。
4、組件可以被腳本程序調(diào)用,也可以由其他的組件調(diào)用。當(dāng)在Web站點(diǎn)中融入ASP功能后,將發(fā)生以下事情: 1、用戶調(diào)出站點(diǎn)內(nèi)容,默認(rèn)頁(yè)面的擴(kuò)展名是.asp。? 2、瀏覽器從服務(wù)器上請(qǐng)求ASP文件。 3、服務(wù)器端腳本開(kāi)始運(yùn)行ASP。 4、ASP文件按照從上到下的順序開(kāi)始處理,執(zhí)行腳本命令,執(zhí)行HTML頁(yè)面內(nèi)容。? 5、頁(yè)面信息發(fā)送到瀏覽器。? 因?yàn)槟_本是在服務(wù)器端運(yùn)行的,所以Web服務(wù)器完成所有處理后,將標(biāo)準(zhǔn)的HTML頁(yè)面送往瀏覽器。這意味著,ASP只能在可以支持的服務(wù)器上運(yùn)行。讓腳本駐留在服務(wù)器端的另外一個(gè)益處是:用戶不可能看到原始腳本程序的代碼,用戶看到的,僅僅是最終產(chǎn)生的HTML內(nèi)容
5、。? 1.1.2 ASP的優(yōu)點(diǎn) ASP(Active server page)工作在服務(wù)器的一端,通過(guò)服務(wù)器端的編譯來(lái)動(dòng)態(tài)的將HTML頁(yè)面?zhèn)魉徒o瀏覽器,而“一般的腳本是直接在客戶機(jī)端瀏覽器執(zhí)行處理,由于腳本的兼容問(wèn)題,經(jīng)常出現(xiàn)錯(cuò)誤,ASP文件只需后綴.asp擴(kuò)展,即可實(shí)現(xiàn)動(dòng)態(tài)頁(yè)面的輸出,這時(shí)當(dāng)然需要WEB服務(wù)器支持ASP的運(yùn)行。 ASP的優(yōu)點(diǎn)所在: 1.可以直接嵌入到HMTL代碼中,與HMTL/SCRIPT等達(dá)到完美的結(jié)合。 2.ASP是面向?qū)ο蟮目蓴U(kuò)展組件功能的交互語(yǔ)言。組件的引用,極大的方便了ASP的使用。 3.用ADO組件輕松實(shí)現(xiàn)數(shù)據(jù)庫(kù)的存取。 4.通
6、過(guò)服務(wù)器動(dòng)態(tài)的處理,因此不在存在潛在的腳本兼容的問(wèn)題。 1.2.1 ASP的內(nèi)置對(duì)象 Request 從客戶端取得信息 Response將信息發(fā)送客戶端? Server提供Web服務(wù)器的一些組件? Session 儲(chǔ)存一個(gè)Session會(huì)話過(guò)程中的用戶信息,它僅可被該用戶訪問(wèn)? Application 在一個(gè)ASP應(yīng)用程序中可以給不同客戶端共享的信息? (一)Request對(duì)象? 通過(guò)Request對(duì)象,我們可以收集到客戶端的Form,Cookies,超連接,或是服務(wù)器的還境變量,因此,Request為我們的ASP程序提供的加工的“原材料”,您說(shuō)它重要嗎?沒(méi)有Requ
7、est對(duì)象的話,那么ASP程序就失去了與客戶端聯(lián)系的交互能立,可以把它想象為我們的眼睛和耳朵。? ?(二)Response對(duì)象? Response對(duì)象可以把ASP程序加工后的“產(chǎn)品”,發(fā)送給客戶,讓他們可以看見(jiàn)結(jié)果。同時(shí),也可以通過(guò)Response對(duì)象設(shè)置客戶端瀏覽器的狀態(tài),比如設(shè)置Cookies,Cookies是一種跟蹤客戶端狀態(tài)的技術(shù),有的網(wǎng)站利用Cookies來(lái)記錄你是第幾次訪問(wèn)他們的網(wǎng)站,而Cookies就是那些保存在Windows系統(tǒng)目錄Cookies里的那些文件,那些文件可以供網(wǎng)站重新讀取和設(shè)置。用來(lái)跟蹤您的狀態(tài),Request和Response可以說(shuō)一個(gè)對(duì)孿生兄弟,一個(gè)負(fù)責(zé)收
8、集,另一個(gè)負(fù)責(zé)輸出。? (三)Server對(duì)象? Server對(duì)象為您的ASP程序的擴(kuò)展提供的靈活方便的途徑,比如說(shuō),如果您需要在ASP程序中讀寫服務(wù)器上的某個(gè)文件,那么就可以借用“文件存取組件”來(lái)讀寫文件。而Server對(duì)象就充當(dāng)了建立這個(gè)組件的實(shí)例的角色,需要使用某個(gè)組件,必需先建立它的一個(gè)Server對(duì)象實(shí)例,在后面將要介紹的ADO組件,您就能清楚地理解服務(wù)器對(duì)象的作用了。? (四)Session對(duì)象? ASP程序可以說(shuō)是一個(gè)Web的應(yīng)用程序,傳統(tǒng)的HTML頁(yè),不能跟蹤客戶端的情況,比如說(shuō)客人現(xiàn)在處于那一個(gè)頁(yè)面上,何時(shí)離開(kāi)了這個(gè)網(wǎng)站,而Session對(duì)象的引入,不但能使上述的問(wèn)題
9、得以解決,并且能為用戶個(gè)人保存網(wǎng)站期間(會(huì)話)的數(shù)據(jù)信息,它只對(duì)用戶個(gè)人作用,而對(duì)ASP程序中的其他用戶是無(wú)作用的,聰明的朋友可能和早就猜到其實(shí)Session也是利用Cooikes技術(shù)來(lái)臨時(shí)保存用戶數(shù)據(jù)。當(dāng)你把瀏覽器的Cooikes功能關(guān)閉,那么Session對(duì)象就失效了,因此設(shè)計(jì)ASP程序時(shí)別忘了這一點(diǎn)。? (五)Application對(duì)象? 既然Session對(duì)象的數(shù)據(jù)是用戶私有的,那么ASP程序中必須要有一種能讓處于ASP程序中所共同享有的數(shù)據(jù)信息,這就是Application對(duì)象,可以說(shuō)。Application對(duì)象內(nèi)保存的信息,是可以讓同一ASP程序中的所有用戶所共享的,比如聊天室
10、里說(shuō)一句話,聊天室里的所有人都能看見(jiàn),這里就是應(yīng)用了Application對(duì)象把說(shuō)話的信息保存起來(lái),再顯示出來(lái)。而悄悄話既是一種Session對(duì)象信息。只有特定的用戶能看見(jiàn)。? 1.2.2 ASP的基本語(yǔ)法 建立ASP程序 ASP程序是擴(kuò)展名為.asp的文本文件,其中包括文字,HTML語(yǔ)句,ASP命令 其他腳本語(yǔ)言。 ASP命令必須放在""之間 ?為了養(yǎng)成良好的編程風(fēng)格外,適度的注釋不可少,ASP提供了兩中注釋方式 1、單引號(hào)(),在單引號(hào)之后的這行文字都視為注釋 2、rem 關(guān)鍵詞,在REM后的文字,視為注釋 賦值語(yǔ)句 ? ASP中一般變量的賦值語(yǔ)句是 "=" 而對(duì)象是用 se
11、t 語(yǔ)句來(lái)賦值的 算術(shù)運(yùn)算符 ? 運(yùn)算符 功能 + 正號(hào) - 負(fù)號(hào) + 加法 - 減法 * 乘法 / 除法 \ 整數(shù)除法 Mod 余數(shù) ^ 指數(shù) 關(guān)系運(yùn)算符 ? 運(yùn)算符 功能 = 等于 <> 不等于 < 小于 > 大于 <= 小于等于 >= 大于等于 IS 比較變量是否指向同一對(duì)象 邏輯運(yùn)算符 ASP的邏輯運(yùn)算符有:? ? 1、NOT 將邏輯值加以反向? ? 2、AND “和”或者說(shuō)“且”運(yùn)算? ? 3、OR “或”運(yùn)算? ? 4、XOR “異或”運(yùn)算? ?字符串運(yùn)算符 ? ASP只有一個(gè)字符串運(yùn)算符 "&",它可以強(qiáng)迫兩個(gè)表達(dá)式做字符串連接 變量申明 變量申明必須
12、注意 1、有效變量名稱不能大于255個(gè)字符 2、變量名稱必須一字母開(kāi)頭 3、在同一個(gè)有效范圍內(nèi)變量名稱必須唯一 變量申明 DIM 變量名稱 常數(shù)申明 CONST 常數(shù)名稱=常數(shù)值 數(shù)據(jù)類型 ? 對(duì)ASP而言,它只有一種Variant(通用變量)數(shù)據(jù)類型,這是一種非常特殊的數(shù)據(jù)類型,你可以將任何的數(shù)據(jù)類型指定給這種變量,例如布爾值、字節(jié)、整數(shù)、長(zhǎng)整數(shù)、單精度浮點(diǎn)數(shù)、雙精度浮點(diǎn)數(shù)、貨幣、日期等等 第2章 SQL語(yǔ)言 1、 SQL概述 SQL是一種面向數(shù)
13、據(jù)庫(kù)的通用數(shù)據(jù)處理語(yǔ)言規(guī)范,能完成以下幾類功能:提取查詢數(shù)據(jù),插入修改刪除數(shù)據(jù),生成修改和刪除數(shù)據(jù)庫(kù)對(duì)象,數(shù)據(jù)庫(kù)安全控制,數(shù)據(jù)庫(kù)完整性及數(shù)據(jù)保護(hù)控制。 數(shù)據(jù)庫(kù)對(duì)象包括表、視圖、索引、、觸發(fā)器、函數(shù)、過(guò)程、. 2.2 基本查詢、插入、修改 2.2.1 查詢 SELECT語(yǔ)句從表中提取查詢數(shù)據(jù)。在設(shè)計(jì)中我們用到這樣一段代碼就包含select語(yǔ)句,如圖1 圖1 <%h=request(“xh”) set conn=server.createobject("adodb.connection") conn.ope
14、n"driver={Microsoftaccessdriver (*.mdb)};dbq="&server.mappath("sp") exec="select * from user where xh=’”&h&”’" set rs=server.createobject("adodb.recordset") rs.open exec,conn,1,1 %> 在設(shè)計(jì)中我們用到insert …into…插入語(yǔ)句,如圖2 圖2 setsavebbs1=conn.execute("insert
15、into user(bj,xh,xm,mm,sex,question,answer,addr,yb)values('"&bj&"','"&xh&"','"&xm&"','"&mm&"','"&sex&"','"&question&"','"&answer&"','"&addr&"','"&yb&"')") session("user")=xh session("pwd")=mm ation.href = '"&session("return")&"’ " 我們同時(shí)也用到update…values…修改語(yǔ)句,圖3:
16、 圖3 set rs=server.createobject("adodb.recordset") conn = "DBQ=" + server.mappath("#sp25175_class.asp") + ";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" setrs=conn.execute("updateuser(bj,xh,mm,xm,sex,addr,yb)values('"&bj&"','"&xh&"','"&mm&"','"&xm&"','"&sex&"','"&addr&"
17、','"&yb&"')") sql="update user set bj='"&bj&"',xh='"&xh&"',mm='"&mm&"',xm='"&xm&"',sex='"&sex&"',question='"&question&"',answer='"&answer&"',addr='"&addr&"',yb='"&yb&"' where id="+ IIDrs.Open sql,conn,1,1session("pwd")=mm response.write "" 第3章 概述 3.1 開(kāi)發(fā)工具的選用 3.1.1 Microsoft Access的使用 Access2000 就是關(guān)系數(shù)據(jù)庫(kù)開(kāi)發(fā)工具,數(shù)據(jù)庫(kù)能匯集各種信息以供查詢、存儲(chǔ)和檢索。Access 的優(yōu)點(diǎn)在于它能使用數(shù)據(jù)表示圖或自定義窗體收集信息。數(shù)據(jù)表示圖提供了一種類似于 Excel 的電子表格,可以使數(shù)據(jù)庫(kù)一目了然。另外,Access 允許創(chuàng)建自定義報(bào)表用于打印或輸出數(shù)據(jù)庫(kù)中的信息。Access也提供了數(shù)據(jù)存儲(chǔ)庫(kù),可以使用桌面數(shù)據(jù)庫(kù)文件把數(shù)據(jù)庫(kù)文
19、件置于網(wǎng)絡(luò)文件服務(wù)器,與其他網(wǎng)絡(luò)用戶共享數(shù)據(jù)庫(kù)。Access 是一種關(guān)系數(shù)據(jù)庫(kù)工具,關(guān)系數(shù)據(jù)庫(kù)是已開(kāi)發(fā)的最通用的數(shù)據(jù)庫(kù)之一。如上所述,Access 作為關(guān)系數(shù)據(jù)庫(kù)開(kāi)發(fā)具備了許多優(yōu)點(diǎn),可以在一個(gè)數(shù)據(jù)包中同時(shí)擁有桌面數(shù)據(jù)庫(kù)的便利和關(guān)系數(shù)據(jù)庫(kù)的強(qiáng)大功能。新建一個(gè)數(shù)據(jù)庫(kù),創(chuàng)建任何一個(gè)數(shù)據(jù)庫(kù)的第一步是仔細(xì)的規(guī)劃數(shù)據(jù)庫(kù),設(shè)計(jì)必須是靈活的、有邏輯的。創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)結(jié)構(gòu)的過(guò)程被認(rèn)為是數(shù)據(jù)模型設(shè)計(jì)。 1.標(biāo)識(shí)需要的數(shù)據(jù); 2.收集被標(biāo)識(shí)的字段到表中; 3.標(biāo)識(shí)主關(guān)鍵字字段; 4.繪制一個(gè)簡(jiǎn)單的數(shù)據(jù)圖表; 5.規(guī)范數(shù)據(jù); 6.標(biāo)識(shí)指定字段的信息; 7.創(chuàng)建物理表。 實(shí)現(xiàn)數(shù)據(jù)庫(kù)之間的聯(lián)系
20、數(shù)據(jù)庫(kù)之間的關(guān)系指明兩個(gè)庫(kù)之間共享一個(gè)共同的關(guān)鍵字值。一個(gè)連接是指一種虛擬的表,這種表是在當(dāng)用戶要求從相互關(guān)聯(lián)的各個(gè)不同的表中獲取信息時(shí)建立的,關(guān)鍵字段用于在相互連接的不同表中查找匹配的記錄。一個(gè)更高級(jí)的連接形式稱為自連接。這種連接是指一個(gè)表被連接到它自己的一個(gè)字段,或在不同的紀(jì)錄中由重復(fù)數(shù)據(jù)的組合字段。數(shù)據(jù)庫(kù)中有三種不同類型的關(guān)鍵字:主關(guān)鍵字、組合關(guān)鍵字和外關(guān)鍵字。在表中使用的關(guān)鍵字類型用于描述庫(kù)表示什么以及在數(shù)據(jù)庫(kù)中如何與其它的庫(kù)建立關(guān)系. 3.1.2 Dreamweaver的使用 Dreamweaver在多媒體方面頗有建樹(shù)的Macromedia公司推出的可視化網(wǎng)頁(yè)制作工具,它與Fla
21、sh、Fireworks合在一起被稱為網(wǎng)頁(yè)制作三劍客,這三個(gè)軟件相輔相承,是制作網(wǎng)頁(yè)的最佳選擇。安裝后,它會(huì)自動(dòng)在 Windows 的菜單中創(chuàng)建程序組,如圖: 點(diǎn)擊進(jìn)入,讓我們來(lái)看一下它的界面。如圖:它把工具欄省去了,然后增加了幾個(gè)浮動(dòng)的工具欄。在 Dreamwaver3.0 中,它的工具欄全是浮動(dòng)工具欄,你可以將工具欄縮小,也可以關(guān)閉。在專業(yè)術(shù)語(yǔ)里面,他們叫“浮動(dòng)面板”,利用浮動(dòng)面板來(lái)控制對(duì)頁(yè)面的編寫,而不是利用煩瑣的對(duì)話框,通過(guò)在浮動(dòng)面板中進(jìn)行屬性設(shè)置,這樣就直接可以在文檔中看到結(jié)果,避免了中間過(guò)程,提高了工作效率。 我使用的是一個(gè)綠色版的,它只有4M功能基本齊全.有些功能你
22、不需要去專門的去學(xué)習(xí)某種語(yǔ)言你就可輕松的去實(shí)現(xiàn)例如字體滾動(dòng)你只需要輸入一個(gè)命令就可以
23、退出管理 學(xué)號(hào)管理 課程管理 成績(jī)管理 退出管理 留 言 成績(jī)查詢 管理員登陸 首 頁(yè) 學(xué)生成績(jī)管理系統(tǒng) 普通用戶登陸 1.成績(jī)管理: 對(duì)班級(jí) 學(xué)號(hào) 姓名 課程 成績(jī) 學(xué)分 學(xué)期 類型 的管理.可進(jìn)行刪除,添加,群刪,群加. 2.課程管理: 對(duì)年級(jí)&專業(yè) 課程 學(xué)分 學(xué)期 類型 的管理,可進(jìn)行添加,群刪,群加. 3.學(xué)生管理: 對(duì)班級(jí) 學(xué)號(hào)進(jìn)行添加,群刪,群加學(xué)號(hào)。 4.1.2構(gòu)建數(shù)據(jù)庫(kù)(圖)
24、 圖1 各個(gè)表之間得關(guān)系如下: 圖2 4.2功能模塊(主) 4.2.1添加單個(gè)成績(jī)(代碼) 圖3 <%if session("password")<>"" then%>
25、
班級(jí)及其學(xué)號(hào)啟始代碼瀏覽及修改 | ||||||||||||
|
||||||||||||
系統(tǒng)管理員: | ||||||||||||
| ||||||||||||
63、on("password")<>"" then %> <% bj100=request.Form("bj100") bj101=left(bj100,3) for t=4 to len(bj100) if mid(bj100,t,1)>="0" and mid(bj100,t,1)<="9" then exit for bj101=bj101&mid(bj100,t,1) next fs100=requ
64、est.Form("fs100") xh100=request.Form("xh100") user100=request.Form("user100") cj100=request.Form("cj100") kc100=request.Form("kc100") xq100=request.Form("xq100") if xq100="" then xq100="第一學(xué)期" lx100=request.Form("lx100") %>
|