o課程設計說明書_第1頁
o課程設計說明書_第2頁
o課程設計說明書_第3頁
o課程設計說明書_第4頁
o課程設計說明書_第5頁
已閱讀5頁,還剩17頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 Oracle 大型數據庫應用課程設計 設計說明書ASP/Oracle 學生成績管理系統 2014 年 12 月 1 日至 2014 年 12 月 7 日起止日期:學生張德輝 班級計算機 112 班學號11408100202 成績師 ( 簽 字 )指導 教計算機與通信學院2014 年 12 月 08 日目錄目錄I1緒論11.1 課題背景11.2 控件開發相關技術介紹1系統分析22.1 工作流程222.2 業務需求2系統設計33.1 系統功能結構圖333.2 模塊功能設計4系統數據庫設計544.1系統E-R 圖54.2數據表的設計54.3視圖、過程、觸發器的設計64.3.1 視圖6過程64.3.

2、24.3.3 觸發器74.4 數據庫的連接7系統實現955.1主界面及功能代碼:95.2學生信息界面及功能代碼:105.3學生信息管理界面及功能代碼:135.4學生成績管理界面及功能代碼:145.5課程管理界面及功能代碼:156總結186.1 收獲與體會18參考文獻19致 謝20II1緒論1.1 課題背景隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類的各個領域并發揮著越來越重要的作用。作為計算機應用的一部分,學生成績管理也是一個學校不可缺少的部分,一個良好的學生成績管理系統應該能夠為用戶提供充足的信息和快捷的。學生成績管理系統對學校加強學生成績管理有著極

3、其重要的作用.使用計算機對學生成績信息進行管理,具有手工管理所無法比擬的優點。例:檢索迅速、查找方便、可靠性高、量大、性好、長、成本。這些優點能夠極大地提高管理者管理的效率,也是學??茖W化、正規化管理,與世界接軌的重要條件。因此,開發設計這樣一套學生成績管理軟件成為很有必要的事情.1.2 控件開發相關技術介紹本系統相關開發的技術有兩種,第一,利用專門的數據庫,即 Oracel 數據庫;第二, 利用常規的程序語言編寫,即利用 ASP 編寫。本系統采用的數據庫是 ORICLE 11g。因 ORICLE 具有高性能,可靠性,安全性和可擴充性的優點,同時又引進了數據庫和服務器增強功能以及其他一些新的特

4、性,它實現了真正的客戶機/服務器體系結構,具有豐富的編程接口,類似 SQL 中的數據倉庫功能和很好的伸縮性。在實際應用方面,它具有完全的 Web 功能,大大增強了數據庫本身的實用性。它能夠滿足各種類型機構和個人對數據庫的需求,并且在操作的易用性,功能的可伸縮性,安全的可靠性等方面具有明顯的優勢,因此,我們首選它作開發的語言。次系統關于 ASP(Active Server Page),它是服務器端編寫環境,是由 Server 端腳本、對象以及組件拓展過的標準主頁使用它可以創建和運行動態、交互的 Web 頁和基于Web 的 功 能 強 大 的 應 用 程 序 。 ASP 具 有 以 下 特 點 :

5、 可 以 混 用 ASP 用HTML,DHTML,ActiveX,VBScript,javascript,并且可以相互嵌套;ASP 是純文本格式,不需編譯就可以直接在服務器上運行;ASP 是一種在 WEB 服務器端運行的語言,源代碼傳到客戶的瀏覽器上,可保護源程序不外漏;ASP 通過其自身包含的對象來實現服務器與客戶端間的交互;此外,還可以用 VB,Java 等語言開發的組件以進一步擴充其功能;ASP 與瀏覽器無關,ASP 可以將運行結果一 HTML 的格式傳送到客戶端瀏覽器,因而可以使用于各種瀏覽器。12系統分析2.1 工作流程本系統分為學生信息、學生信息管理和學生成績管理以及課程管理四部分

6、。登入本系統時主頁面便是學生信息的頁面,左側邊有一個導航欄,可以跳轉到學生信息、學生信息管理、學生成績管理和課程管理頁面。(1)、學生信息擇專業,然后單擊“學生成績信息。:用戶可以在輸入框中輸入學生的學號、姓名,在下拉框中選”按鈕來學生信息。若什么都沒輸入,則默認顯示所有的(2)、學生信息管理:用戶可以在輸入框中輸入學號、姓名、專業等相關條件,單擊“”按鈕到學生個人信息,并且可以在學生信息的各個輸入框中對學生信息進行修改,然后單擊“更新”提交修改的信息,單擊刪除則刪除該學生的信息。(3) 、學生成績管理:用戶可以在輸入框中輸入學號,或者在下拉框中選擇課程來某個學生的成績信息,并且可以對該學生的

7、成績進行修改,單擊“更新”按鈕即提交更新后的成績信息,單擊“刪除”按鈕即刪除該學生該課程的成績。(4) 、課程管理:用戶可以在輸入框中輸入課程名或在下拉框中選擇課程號來該課程的信息,然后還可以在各輸入框中對相應信息進行修改,單擊“更新”按鈕即可提交更新后的成績信息,單擊“新增”按鈕也可以新增一個課程信息,單擊“刪除”按鈕即刪除該課程信息。2.2 業務需求(1)主界面要有導航欄,單擊主界面側邊的超能頁面;,可以在旁邊頁面中顯示各個功(2)滿足簡單的需要,什么條件也不輸則顯示所有。可以輸入條件進行簡單的模糊,各條件之間為與的關系。在的結果中,點擊學號列的學號超可以查看此學生的備注。(3)可以通過學

8、號、姓名、專業等條件修改、刪除;單個學生的信息,然后對學生信息進行(4)通過學號、姓名等條件來某個學生的成績信息,并能夠對成績進行修改并提交操作,其他信息則不能夠修改。(5)用戶可以根據課程號或課程名來程信息進行新增、修改、刪除操作。相應的課程信息。并且可以對相應的課23系統設計3.1 系統功能結構圖本系統編寫的目的,是實現一個學生成績管理系統,提高工作效率。系統功能主要分為四大塊,分別為學生信息、學生信息管理、學生成績管理和課程管理。由于程序的功能是和數據庫相關的數據和數據操作,所以程序中應該還要有包含對數據庫的、修改、刪除等的操作。鑒于以上的功能,本系統的系統結構圖如下:學生成績管理系學生

9、信息學生成績管理課程管理學生信息管理查更新刪刪更查新更刪增除詢新除詢增新新除.33.2 模塊功能設計本系統共包括四個大模塊,分別是學生信息模塊,學生信息管理模塊,學生成績管理模塊和課程管理模塊。每個模塊的功能如下:1. 學生信息模塊功能:(1)根據學號的輸入來(2)根據姓名的輸入來(3)根據專業的選擇來學生信息; 學生信息;學生信息;2. 學生信息管理模塊功能: (1)實現學生信息的新增; (2)實現學生信息的修改; (3)實現學生信息的刪除;3. 學生成績管理模塊功能:(1)實現學生成績的;(2)實現學生成績的更新; (3)實現學生成績的刪除;4. 課程管理模塊功能:(1)實現課程信息的;(

10、2) 實現課程信息的新增;(3) 實現課程信息的更新; (4)實現課程信息的刪除;44系統數據庫設計4.1系統 E-R 圖學號成績課程號課程名出生時間學生學習課程專業開課學期學時學分學分備注圖 4.1數據庫 E-R 模型圖4.2數據表的設計根據該系統的特點,本次設計采用 Oracle 數據庫,數據庫名稱為 YGGL,根據該系統的分析,包含以下幾個表:表 4.1 XSB 存放學生的相關信息列名數據類型長度為空默認值字段名說明XHChar6學號主鍵XMChar8XBChar21CSSJDate出生時間ZYChar12專業ZXFNUMBER2學分BZVARCHAR2200備注表 4.2CJB 存放學

11、生成績的相關信息5列名數據類型長度為空默認值字段名說明XHChar6學號主鍵KCHChar3課程號主鍵CJNumber2成績表 4.3 KCB 存放課程的相關信息4.3 視圖、過程、觸發器的設計為了提高該系統的運行環境有關數據的操作使用了視圖過程和觸發器。4.3.1 視圖CREATE VIEW XS_KC_CJASSELECT XSB.XH,XSB.XM,XSB.ZY,KCB.KCH,KCB.KCM,CJB.CJFROM XSB CROSS JOIN KCBLEFT OUTER JOIN CJB ON CJB.XH=XSB.XH AND CJB.KCH=KCB.KCH;4.3.2過程CREAT

12、E OR REPLACE PROCEDURE CJ_Data(in_xh IN char,in_kch IN char,in_cj IN number)ASin_count number;in_xf number:=0;in_cjb_cj number:=0;BEGINSELECT XF INTO in_xf FROM KCB WHERE KCH=in_kch;SELECT COUNT(*) INTO in_count FROM CJB WHERE XH=in_xh AND KCH=in_kch;6列名數據類型長度為空默認值字段名說明KCHChar3課程號主鍵KCMChar16課程名KKXQN

13、umber1開課學期XSNumber23學時XFNumber1學分IF in_count>0 THENSELECT CJ INTO in_cjb_cj FROM CJB WHERE XH=in_xh AND KCH=in_kch;DELETE FROM CJB WHERE XH=in_xh AND KCH=in_kch;IF in_cjb_cj>=60 THENUPDATE XSB SET ZXF=ZXF-in_xf WHERE XH=in_xh;END IF;END IF;IF in_cj<>-1 THENINSERT INTO CJB VALUES(in_xh,in

14、_kch,in_cj);IF in_cj>=60 THENUPDATE XSB SET ZXF=ZXF+in_xf WHERE XH=in_xh;END IF;END IF;COMMIT;END;BEGINCJ_Data('101101','101',50);END;4.3.3 觸發器CREATE OR REPLACE TRIGGER xs_deleteAFTER DELETE ON XSB FOR EACH ROWDECLAREPRAGMA AUTONOMOUS_TRANSACTION;BEGINDELETE FROM CJB WHERE XH=:OLD

15、.XH;DELETE FROM XSZP WHERE XH=:OLD.XH;COMMIT;END;/4.4 數據庫的連接應用程序與 Oracle11g 數據庫的連接是通過 ADOConnection 對象來進行數據庫連7接,然后在程序中利用代碼與數據庫建立連接來實現的。具體實現方法是:在代碼頁面中先使用 Server.CreateObject 方法創建該對象的實例,再通過 Connection Open 方法來打開建立到 Oracle 數據庫的物理連接。具體代碼如下:先創建 conn 對象:對象的<%set conn=server.CreateObject("adodb.con

16、nection")conn.Provider="OraOLEDB.Oracle"conn.Open"server=localhost; User ID=system;password=12345678;Data Source=YGGL"%>在具體環境中調用 conn 對象:<%submit=request.form("find")response.Write submitif submit="所有" thensql="select * from XSB"set rs1=se

17、rver.CreateObject("adodb.recordset")rs1.Open sql,connif not rs1.EOF thendo while not rs1.EOF'Do While rs.eof=falseResponse.Write "<tr> "%>85系統實現根據整個系統的總體設計以及子系統的相關模塊功能的設計,我們進行了系統的軟件開發。詳細設計和功能展示如下:5.1主界面及功能代碼:本系統主要分為學生信息、學生信息管理、學生成績管理和課程管理四大功能模塊,主界面主要顯示這四個功能塊的超,并且這里為簡

18、單起見,我們主界面默認是顯示所有學生信息的能塊的界面。結果。這里我們功能模塊的導航欄在左邊,右邊顯示各個功下面為運行后的主界面圖:圖 5.1 系統主頁面顯示左側導航欄的代碼:<div class="container"><div class="header"><a href="#"><img src="image/oracle.jpg" width="20%" height="91" /></a><!- end

19、 .header -></div><div class="sidebar1"><ul class="nav"><li><a href="XS_find.asp">學生</a></li><li><a href="XS_manage.asp">學生管理</a></li>9<li><a href="CJ_manage.asp">成績管理<

20、;/a></li><li><a href="KC_manage.asp">課程管理</a></li></ul><p> 本系統是學生成績管理系統,有4大功能,學生:提議提供學生詳細信息的,例如學號,姓名,出生時間,專業,學分,備注等。學生管理:可以對學生的所有信息進行修改,或者增加新的學生信息,或者刪除學生信息。成績管理:可以對學生的對應所修課程的成績進行增加,刪除,修改。(通過過程實現)課程管理:可以通過對課程號,課程名,開課學期,學時,學分進行增加,刪除,修改。</p>&

21、lt;!- end .sidebar1 -></div>對數據庫的操作為:set conn=server.CreateObject("adodb.connection") conn.Provider="OraOLEDB.Oracle"conn.Open"server=localhost; User ID=system;password=12345678;Data Source=YGGL" set rs=server.CreateObject("adodb.recordset")sql="

22、select * from XSB" rs.Open sql,connif not rs.EOF then i=1do while not rs.EOF Response.write rs("XM") i=i+1rs.movenext loopend if5.2學生信息界面及功能代碼:圖 5.2 學生信息頁面10<table width="100%" border="1" cellpadding="1" cellspacing="0" ><tr><th w

23、idth="100%" height="44" align="center">學生信息</th></tr><tr><form name="form1" method="post" action=""><tr><td>學號:<input type="text" name="XH"><input type="text" nam

24、e="XM">專業:<select size"1" name="ZY"><option value="">所有專業</option><option value="計算機">計算機</option><option value="通信工程">通信工程</option></select><inputtype="submit" name="find

25、" value="" /><input type="submit" name="find" value="</form></td></tr></table>所有" /><table width="100%" border="1" cellpadding="1" cellspacing="0" ><tr><th width="

26、;100%" align="center">學生信息</tr></table>結果</th><table width="100%" border="1" cellpadding="1" cellspacing="0" ><tr><td width="15%">學號</td><td width="15%">姓名</td><td w

27、idth="10%"></td><td width="30%">出生時間</td><td width="20%">專業</td><td width="10%">學分</td></tr><%submit=request.form("find") response.Write submitif submit="所有" thensql="select * from

28、XSB"set rs1=server.CreateObject("adodb.recordset") rs1.Open sql,connif not rs1.EOF then do while not rs1.EOF'Do While rs.eof=falseResponse.Write "<tr> "%><td width="15%"><%Response.Write rs1("XH")%></td>11<td width="

29、15%"><%Response.Write rs1("XM")%></td><td width="10%"><%Response.Write rs1("XB")%></td><td width="30%"><%Response.Write rs1("CSSJ")%></td><td width="20%"><%Response.Write rs1(

30、"ZY")%></td><td width="10%"><%Response.Write rs1("ZXF")%></td><%Response.Write "</tr>" rs1.movenextloopend if rs1.closeset rs1=nothingelseXH=""XM=""ZY=""if Request.Form("XH")<>&q

31、uot;" then XH=request.form("XH")sql="select * from XSB where XH=" & XH end ifif Request.Form("XM")<>"" then XM=request.form("XM")'sql="select * from XSB where XM="'XM&'"" sql="select * from XSB

32、where XM='"&XM&"' "end ifif Request.Form("ZY")<>"" then ZY=request.Form("ZY")'sql="select * from XSB where ZY=" & ZY sql="select * from XSB where ZY='"&ZY&"' "end ifset rs2=server

33、.CreateObject("adodb.recordset") rs2.Open sql,connif not rs2.EOF thendo while not rs2.EOF Response.Write "<tr> "%><td width="15%"><%Response.Write rs2("XH")%></td><td width="15%"><%Response.Write rs2("XM"

34、)%></td><td width="10%"><%Response.Write rs2("XB")%></td><td width="30%"><%Response.Write rs2("CSSJ")%></td><td width="20%"><%Response.Write rs2("ZY")%></td><td width="1

35、0%"><%Response.Write rs2("ZXF")%></td><%12Response.Write "</tr>"rs2.movenextloopend if rs2.closeset rs2=nothingend if%> </table>5.3學生信息管理界面及功能代碼:圖 5.3 學生信息管理頁面<%stuXH=request.form("stuXH") stuXM=request.form("stuXM") st

36、uZY=request.form("stuZY") stuXB=request.form("stuXB") stuCSSJ=request.form("stuCSSJ") stuZXF=request.Form("stuZXF") stuBZ=request.form("stuBZ")if request.Form("edit")="新增" then'response.Write "新贈"sql_insert="INS

37、ERT INTO XSB VALUES('"+stuXH+"','"+stuXM+"','"+stuXB+"',TO_DATE('"+stuCSSJ+"','YYYY/MM/DD'),'"+stuZY+"',"+stuZXF+",'"+stuBZ+"') "'response.Write sql_insert conn.Exec

38、ute sql_insertelseif request.Form("edit")="更新" then13'response.Write "更新"sql_update="UPDATE XSB SET XM='"+stuXM+"',XB='"+stuXB+"',CSSJ=TO_DATE('"+stuCSSJ+"','YYYY/MM/DD'),ZY='"+stuZY+"&

39、#39;,ZXF='"+stuZXF+"',BZ='"+stuBZ+"' WHERE XH='"+stuXH+"'"'response.Write sql_update conn.Execute sql_updateelseresponse.Write "刪除"'sql_delete="DELETE FROM XSB WHERE XH='"+stuXH+"'"'response.

40、Write sql_delete conn.Execute sql_deleteend if%>5.4學生成績管理界面及功能代碼:圖 5.4 學生成績管理頁面<%XH=request.Form("XH") KCH=request.Form("KCH") CJ=request.Form("CJ")function call_proc(num, cnum, point)set cmd=Server.CreateObject("adodb.Command") set cmd.ActiveConnection=

41、conn cmd.CommandText="CJ_Data"cmd.CommandType=4cmd.Parameters.Append cmd.CreateParameter("in_xh", adChar, adParamInput,6) cmd.Parameters.Append cmd.CreateParameter("in_kch",adChar,adParamInput,3)14cmd.Parameters.Append cmd.CreateParameter("in_cj",adInteger,adP

42、aramInput,2) cmd.Parameters("in_xh")=numcmd.Parameters("in_kch")=cnum cmd.Parameters("in_cj")=point cmd.Executeend functionif request.Form("edit")="更新" thenif XH <> "" AND KCH <> "" AND IsNumeric(CJ) = true Then Call c

43、all_proc(XH, KCH, CJ)response.Write "<script>alter('更新!')</script>"elseresponse.Write "<script>alter('請輸入正確的成績信息!')</script>" end ifend ifif request.Form("edit")="刪除" then IF XH <> "" AND KCH <> &qu

44、ot;" thenCall call_proc(XH, KCH, -1)response.Write "<script>alter('刪除!')</script>"elseresponse.Write "<script>alter('無法刪除!')</script>" end ifend if%>5.5課程管理界面及功能代碼:圖 5.5 課程管理頁面<%if request.Form("KCH")<>""

45、; OR request.Form("KCM")<>"" then15if Request.Form("KCH")<>"" then KCH=request.form("KCH")sql="select * from KCB where KCH=" & KCH end ifif Request.Form("KCM")<>"" then KCM=request.form("KCM&qu

46、ot;)'sql="select * from XSB where XM="'XM&'"" sql="select * from KCB where KCM='"&KCM&"' "end ifset rs=server.CreateObject("adodb.recordset") rs.Open sql,connif not rs.EOF then KCH=rs("KCH")KCM=rs("KCM&q

47、uot;) KKXQ=rs("KKXQ") XS=rs("XS")XF=rs("XF")elseKCH=""KCM="" KKXQ="" XS=""XF=""end ifelseKCH=""KCM="" KKXQ="" XS=""XF=""end if%><table width="100%" border

48、="1" cellpadding="1" cellspacing="0" ><tr><th width="100%" align="center">課程信息</tr><tr><form action="" method="POST">結果</th><table width="450" border="1" align="ce

49、nter"><tr><td width="60" align="center">課程號:</td><td><input name="calKCH" type="text" value="<%=KCH%>" /></td><td width="60" align="center">課程名:</td><td><input

50、 name="calKCM" type="text" value="<%=KCM%>" /></td></tr><tr><td width="60" align="center">開課學期:</td><td><input name="calKKXQ" type="text" value="<%=KKXQ%>" /></

51、td><td width="60" align="center">學時:</td>16<td><input name="calXS" type="text" value="<%=XS%>" /></td></tr><tr><td width="60" align="center">學分:</td><td colspan=&qu

52、ot;3"><input name="calXF" type="text" value="<%=XF%>" /></td></tr><tr><td colspan="4" align="center"><input type="submit" name="edit" value="新增" /><input type="su

53、bmit" name="edit" value="更新" /><input type="submit" name="edit" value="刪除" /></td></tr></table></form></tr></table><%calKCH=request.Form("calKCH") calKCM=request.Form("calKCM") calKKXQ=request.Form("calKKXQ") calXS=request.Form("calXS")calXF=request.Form("calXF")if request.Form("edit")="新增" then

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論