版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 一、緒論- 3 -</p><p> 1.1概要描述- 3 -</p><p> 1.2 團隊分工- 3 -</p><p> 二、 系統(tǒng)需求分析- 4 -</p><p> 2.1功能需求- 4 -</p><p> 三、系統(tǒng)設(shè)計- 6 -</p><p
2、> 3.1系統(tǒng)采用的邏輯以及物理結(jié)構(gòu)- 6 -</p><p> 3.2系統(tǒng)的開發(fā)環(huán)境選擇- 6 -</p><p> 3.3系統(tǒng)的數(shù)據(jù)庫設(shè)計(個人負責程序涉及的數(shù)據(jù)庫)- 6 -</p><p> 四、系統(tǒng)實現(xiàn)及測試- 9 -</p><p> 4.1系統(tǒng)模塊功能介紹- 9 -</p><p&g
3、t; 4.2系統(tǒng)實現(xiàn)過程中遇到的主要疑難問題和解決方案- 17 -</p><p> 4.3系統(tǒng)實現(xiàn)的特色之處(包括技術(shù)和功能)- 18 -</p><p> 4.4 系統(tǒng)測試- 18 -</p><p> 五、總結(jié)- 18 -</p><p> 5.1不足- 18 -</p><p> 5.2
4、總結(jié)- 19 -</p><p> 參考文獻- 19 -</p><p><b> 附錄- 20 -</b></p><p><b> 一、緒論</b></p><p><b> 1.1概要描述</b></p><p> 課程設(shè)計管理系統(tǒng)
5、,實現(xiàn)課程信息管理的電子化,減輕管理人員的負擔。管理人員能夠很好對課程進行管理。長期以來,學?;径际鞘褂脗鹘y(tǒng)人工的方式管理學生課程信息,效率低、保密性差,隨著計算機和網(wǎng)絡(luò)技術(shù)的發(fā)展,使用計算機來管理課程信息已經(jīng)成為發(fā)展趨勢。這樣可以提高學生選課和成績管理工作的效率,圍繞此管理所需要的學生個人信息、課程和任課教師信息、所選課程信息進行管理及維護。</p><p><b> 1.2 團隊分工</b
6、></p><p><b> 二、 系統(tǒng)需求分析</b></p><p><b> 2.1功能需求</b></p><p> 系統(tǒng)整體的用例圖如下:</p><p> 圖2.1 系統(tǒng)用例圖</p><p> 管理員對課程信息進行增加、刪除、編輯和查看;教師打印
7、選課學生名單、班級成績表、查看課程;學生可以查看自己已選課程的成績、打印班級課程表、查詢課程。需要注意的是,由于課程設(shè)計任務書表達的不明確,所以我們將管理員和教師的功能合并到教師角色中。數(shù)據(jù)流圖如下:</p><p><b> 圖2.2 數(shù)據(jù)流圖</b></p><p><b> 圖2.3 數(shù)據(jù)流圖</b></p><p&
8、gt;<b> 三、系統(tǒng)設(shè)計</b></p><p> 3.1系統(tǒng)采用的邏輯以及物理結(jié)構(gòu)</p><p><b> 圖3.1</b></p><p> 3.2系統(tǒng)的開發(fā)環(huán)境選擇</p><p> ?。?)使用web的開發(fā)環(huán)境是myeclipse 10;</p><p>
9、; ?。?)數(shù)據(jù)庫使用的是SQL sserverr 2008。</p><p> 3.3系統(tǒng)的數(shù)據(jù)庫設(shè)計(個人負責程序涉及的數(shù)據(jù)庫)</p><p> 表3.1 系統(tǒng)數(shù)據(jù)庫設(shè)計</p><p> 表3.2 班級信息表class</p><p> 表3.3 教師信息表teacher</p><p> 表3.4
10、院系信息表college</p><p> 表3.5 課程信息表class</p><p> 表3.6 學生信息表student</p><p> 表3.7 選課信息表xuanke</p><p> 表3.8 選課表 xuanke</p><p> 圖3.2 E-R關(guān)系圖</p><p
11、><b> 四、系統(tǒng)實現(xiàn)及測試</b></p><p> 4.1系統(tǒng)模塊功能介紹</p><p><b> 用戶身份:教師</b></p><p> 當用戶登錄系統(tǒng)后,如果他的身份是管理員,那么他可以對學生信息進行增加、刪除、修改和查詢。</p><p><b> 圖4.1
12、</b></p><p> 以下代碼為循環(huán)讀出數(shù)據(jù)庫總學生信息值:</p><p><b> <% </b></p><p> while(rs.next()){</p><p><b> %></b></p><p><b> &
13、lt;tr></b></p><p> <td><%=rs.getString("num") %></td></p><p> <td><%=rs.getString("name") %></td></p><p> <td&
14、gt;<%=rs.getString("sex") %></td></p><p> <td><%=rs.getString("birth") %></td></p><p> <td><%=rs.getString("jg") %></
15、td></p><p> <td><%=rs.getString("mz") %></td></p><p> <td><%=rs.getString("class") %></td></p><p> <td><a href
16、="tea_xsgl_edit.jsp?id=<%=rs.getString("num") %>&cla=<%= rs.getString("class")%>">編輯</a> <a href="javascript:btnDelete('<%=rs.getString("
17、;num") %>')">刪除</a></td></p><p><b> </tr></b></p><p><b> <%} %></b></p><p> 當點擊增加按鈕時就會出現(xiàn)增加界面,顯示出學生管理信息表中所有的字段,
18、對于存在關(guān)聯(lián)的字段的選項則從關(guān)聯(lián)表中讀出所有數(shù)據(jù),以下拉列表的形式或者單選框的形式顯示出來,方便用戶選擇,不需要手動寫入,直接從下拉框或單選框中獲取即可。如果不填寫課程編號或其他任何一個選項,就點擊提交按鈕,就會出現(xiàn)提示框,提醒你要將信息填寫完整,否則無法提交。上方有一個功能菜單導航,用戶可以通過這些超鏈接直接進入到教師角色可以進行操作的其他界面。</p><p><b> 圖4.2</b>
19、;</p><p> 從數(shù)據(jù)庫中獲取課程種類下拉框中的值,代碼如下:</p><p><b> <tr></b></p><p> <td>班級</td></p><p><b> <td></b></p><p>
20、<select name="newclass"></p><p> <% while(rs.next()){%></p><p> <option><%=rs.getString("num") %></option></p><p><b> <
21、% }%></b></p><p><b> </select></b></p><p><b> </td></b></p><p><b> </tr></b></p><p><b> 圖4.3<
22、;/b></p><p> 當用戶點擊圖表3右側(cè)的編輯按鈕,程序首先將這一行所對應的課程信息的主鍵值傳給編輯處理界面,編輯頁面接受主鍵值后,根據(jù)主鍵值從student表中讀出這一列所對應的數(shù)據(jù)顯示在如下界面中。教師可以對課程中的任意一個信息進行更改。對于像性別、班級這些選擇可以直接從單選框和下拉框中更改,不需要手動輸入數(shù)據(jù)。</p><p><b> 圖4.3</
23、b></p><p> 當用戶點擊刪除按鈕時,程序同樣將這一行對應的主鍵值傳給刪除處理界面,同時會通過javascript彈出一個對話框,問用戶是否確定刪除,如果點擊確定,則將與傳過來的主鍵相對應的一整行刪除掉;如果點擊取消,就不對這一行進行處理,原始數(shù)據(jù)保留。相關(guān)代碼如下:</p><p><b> <script></b></p>
24、<p> function btnDelete(id){</p><p> if(confirm("確認刪除該條記錄嗎?"))</p><p> location.href="tea_xsgl_del.jsp?id="+id;</p><p><b> }</b></p>
25、<p><b> </script></b></p><p><b> 用戶身份:學生</b></p><p> 當?shù)顷懙挠脩羰菍W生,他可以查詢個人信息、進行課程信息查詢、進行選課操作、查詢成績。</p><p><b> 圖4.4</b></p>&l
26、t;p> 當用戶點擊上方選課信息時,會顯示所有的課程信息,包括課程編號、課程名稱和狀態(tài)。如果該門課可選,則會在狀態(tài)列里顯示選擇按鈕,當用戶點擊選擇按鈕之后則會顯示已選提醒用戶該門課已經(jīng)選擇了。顯示如下:</p><p><b> 圖4.5</b></p><p><b> 登陸頁面</b></p><p>
27、當用戶在進入系統(tǒng)之前,進入登陸界面,會看到如下頁面:</p><p><b> 圖4.6</b></p><p> 用戶需要輸入用戶名、密碼,選擇身份,才能點擊登陸按鈕進行登陸,而且要求密碼長度在6-10位之間。如果三個中有一個沒有輸入或者選擇,則會通過javascript彈出一個對話框,提醒用戶輸入完整。相關(guān)實現(xiàn)的代碼如下:</p><p&g
28、t; <script language="javascript"></p><p> function checkForm(){</p><p> var user=document.myForm.username.value;</p><p> if(user==""){</p><p
29、> alert("用戶名不能為空!");</p><p> document.myForm.username.focus();</p><p> return false;</p><p><b> }</b></p><p> var pwd=document.myForm.user
30、pwd.value;</p><p> if((pwd.length<6)||(pwd.length>10)){</p><p> alert("密碼長度在6到10位之間!");</p><p> return false;</p><p><b> }</b></p>
31、<p> var sf=document.myForm.usersf;</p><p> var flag=false;</p><p> for(var i=0;i<sf.length;i++){</p><p> if(sf[i].checked)</p><p> flag=true;</p>
32、<p><b> }</b></p><p> if(!flag){</p><p> alert("身份不能為空!");</p><p> return false;</p><p><b> }</b></p><p><
33、b> }</b></p><p><b> </script></b></p><p> 如果用戶全部填寫,就會將表單信息提交到服務器loginProc.jsp程序進行相關(guān)處理。程序會根據(jù)用戶選擇的身份,進入相關(guān)的數(shù)據(jù)庫進行身份比對,判斷用戶名和密碼是否一致。如果用戶名或密碼有一個不正確,則會跳轉(zhuǎn)到登陸錯誤界面,如下圖:</p
34、><p><b> 圖4.7</b></p><p> 如果用戶名和密碼都正確,則會跳轉(zhuǎn)到響應身份吧的主頁面。</p><p><b> 程序判定代碼如下:</b></p><p> while(rs.next()){</p><p> if(rs.getString(
35、"num").equals(name))</p><p> flag = true;</p><p><b> }</b></p><p><b> if(flag){</b></p><p> sql = "select password from stude
36、nt where num = ?";</p><p> pstm = conn.prepareStatement(sql);</p><p> pstm.setString(1,name);</p><p> rs = pstm.executeQuery();</p><p> while(rs.next()){</p
37、><p> tpwd = rs.getString("password");</p><p><b> }</b></p><p> if(tpwd.equals(pwd)){</p><p> Cookie cookie1 = new Cookie("userName",na
38、me);</p><p> Cookie cookie2 = new Cookie("userPwd",pwd);</p><p> cookie1.setMaxAge(60*60);</p><p> cookie2.setMaxAge(60*60);</p><p> response.addCookie(co
39、okie1);</p><p> response.addCookie(cookie2);</p><p> session.setAttribute("username",name);</p><p> response.sendRedirect("student/student.jsp");</p>&
40、lt;p><b> }else</b></p><p> response.sendRedirect("error.html");</p><p> 4.2系統(tǒng)實現(xiàn)過程中遇到的主要疑難問題和解決方案</p><p> 問題一:課程信息管理的主模塊顯示不出來。</p><p> 解決方案
41、:sql語句錯誤,沒有考慮表之間的關(guān)聯(lián),當查詢包含外鍵的表時應該將關(guān) 聯(lián)字段與主鍵值進行連接。</p><p> 問題二:在各分功能進行刪除和編輯時,因為數(shù)據(jù)庫各表之間的關(guān)聯(lián)性,無法對其直接操作。</p><p> 解決方案:在進行刪除和編輯前,要對其外鍵先進行操作,再對其本身進行操作。</p><p> 問題三:修改課程信息時,修改后的信息無法保存;<
42、;/p><p> 解決方案:PreparedStatement對象必須使用占位符,不能直接傳遞變量值。</p><p> 問題四:進行分頁時已經(jīng)將代碼完全拷貝進去了,可是提交時還是出現(xiàn)“只進結(jié)果集不支持請求的操作”的錯誤:</p><p> 解決方案:Statement stm=conn.createStatement();傳遞一個參數(shù)“ResultSet.TYP
43、E_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY”,問題就解決了。</p><p> 問題五:界面布局不合理,不美觀;</p><p> 解決方案:熟悉diV的使用,給需要修改樣式的元素套一個diV,通過css對布局進行修改和美化;然后借鑒合肥學院的教務管理系統(tǒng)的UI,我們對其進行了截圖和參考,然后完善了自己的頁面布局。</p>
44、<p> 4.3系統(tǒng)實現(xiàn)的特色之處(包括技術(shù)和功能)</p><p> 系統(tǒng)的基本功能都是平時課堂中學習的內(nèi)容,主要就是添加了分頁功能。我們在UI設(shè)計上,參照了合肥學院的教務管理系統(tǒng),對于常規(guī)的界面進行了簡單的美化。</p><p><b> 4.4 系統(tǒng)測試</b></p><p> 進行多次試驗,將數(shù)據(jù)庫中已有的信息進
45、行修改,觀察數(shù)據(jù)庫中的值是否有改變;登陸時輸入錯誤信息,觀察是否能登陸到頁面。總體測試方案就是多次試驗觀察結(jié)果?;竟δ芸梢詫崿F(xiàn)。</p><p><b> 五、總結(jié)</b></p><p><b> 5.1不足</b></p><p> (1) 數(shù)據(jù)庫設(shè)計不合理,導致后序程序開發(fā)總是在不斷的修改,這樣可能導致系統(tǒng)產(chǎn)
46、生更多的安全隱患,對系統(tǒng)的整體開發(fā)很不利。</p><p> (2) 界面功能單一,只是實現(xiàn)了課程設(shè)計中老師要求的內(nèi)容,沒有對其進行擴充,只是簡單的增刪改查。</p><p> (3) 因為課程設(shè)計任務書表達不明確,再加上我們團隊對其理解和人物樹有出入,系統(tǒng)沒有管理員的角色,將管理員的所有功能合并到了教師角色中,可能會對用戶使用上造成不便。</p><p>&l
47、t;b> 5.2 總結(jié)</b></p><p> 作為本小組的組長,我較稱職的完成了我的工作,在缺少一人的情況下,我們3位成員較成功的完成了5人題。從開始的系統(tǒng)分析與功能設(shè)計到分工再到整合最后在一起調(diào)試BUG等,我們3位成員一起成長,雖然過程中有許多磕磕絆絆,但是在我們的努力下全都一一克服了。</p><p> 課程設(shè)計這段時間使我對web有了更深層次的了解,以前在
48、瀏覽網(wǎng)頁時,覺得它是一個很神秘的東西,好像很難做出來;上第一堂課時,我非常不相信張老師說的“等我們上完這學期后大家都能做出這些網(wǎng)頁”這句話。但是通過這段時間的實踐,我也可以做出這些網(wǎng)頁了,雖然我現(xiàn)在的技術(shù)不是很精細,做出來的網(wǎng)頁也不夠美觀,功能可能也比較簡單,但是我還是很開心,畢竟我在往前走,我在進步。</p><p> 在課程設(shè)計中我遇到很多問題,首先是數(shù)據(jù)庫設(shè)計的問題。在沒有真正開始編代碼的時候,我們只是簡
49、單的設(shè)計了一下數(shù)據(jù)庫,并沒有深入的考慮當我們真正開發(fā)起來那些表之間應該有什么關(guān)系,只是按照任務書中直白的書面要求,對應的建了十幾個表,可是當我們實際開發(fā)時,慢慢發(fā)現(xiàn)問題很多,只能一點一點的去補救,所以我現(xiàn)在很明確一點,就是以后做課程設(shè)計的時候一定要花足夠的時間設(shè)計出一個合理完善的數(shù)據(jù)庫。</p><p> 除此之外,這兩周的時間讓我對web知識理解的更深一些,因為系統(tǒng)需要我們將平時學到的所有知識融會貫通,同時善
50、于利用身邊的資源,有不懂的問題可以向老師或同學請教,也可以通過網(wǎng)絡(luò)獲得我們想要的知識。就像這次課程設(shè)計,我了解到了分頁的方法,雖然不能解釋分頁每一行代碼的意思,但是大致明白是怎么用的。</p><p> 當然我的能力還是很有限的,通過這次的課程設(shè)計,我大致明確了以后的任務,要好好學習java和javaEE。對于問題不僅要知道其然,還要知道其所以然。</p><p><b>
51、參考文獻</b></p><p> [1] 鄒建.深入淺出--SQL SERVER 2005開發(fā)、管理與應用實例.人民郵電出版社,2008年.</p><p> [2] 樊月華.Web技術(shù)應用基礎(chǔ).清華大學出版社, 2013年.</p><p> [3] 飛思科技產(chǎn)品研發(fā)著:JSP應用開發(fā)詳解(第二版),電子工業(yè)出版社, 2004年.</p&
52、gt;<p> [4] 張洪偉著:Tomcat Web開發(fā)及整合應用,清華大學出版社, 2006年.</p><p> [5] 陳剛著:Eclipse從入門到精通(第2版),清華大學出版社, 2007年.</p><p> [6] 史濟民等著:軟件工程—原理、方法與應用(第3版),高等教育出版社, 2013年.</p><p> [7] 朱福喜
53、著:面向?qū)ο笈cJava程序設(shè)計,清華大學出版社, 2011年.</p><p> [8] 鄭人杰等著:軟件測試,人民郵電出版社, 2014年.</p><p> [9] 趙彥著:JavaEE框架技術(shù)進階式教程,清華大學出版社, 2014年.</p><p> [10] 耿祥義著:Java課程報告,清華大學出版社, 2013年.</p><p
54、> [11] 肖磊等著:Java實用教程,人民郵電出版社, 2013年.</p><p><b> 附錄</b></p><p> 1、index.jsp</p><p> <%@ page language="java" import="java.util.*" pageEncodi
55、ng="UTF-8"%></p><p><b> <%</b></p><p> String path = request.getContextPath();</p><p> String basePath = request.getScheme()+"://"+request.g
56、etServerName()+":"+request.getServerPort()+path+"/";</p><p><b> %></b></p><p> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
57、;</p><p><b> <html></b></p><p><b> <head></b></p><p> <base href="<%=basePath%>"></p><p> <title>My
58、JSP 'index.jsp' starting page</title></p><p> <meta http-equiv="pragma" content="no-cache"></p><p> <meta http-equiv="cache-control" conten
59、t="no-cache"></p><p> <meta http-equiv="expires" content="0"> </p><p> <meta http-equiv="keywords" content="keyword1,keyword2,keywor
60、d3"></p><p> <meta http-equiv="description" content="This is my page"></p><p><b> <!--</b></p><p> <link rel="stylesheet&
61、quot; type="text/css" href="styles.css"></p><p><b> --></b></p><p><b> </head></b></p><p><b> <body></b>
62、</p><p> This is my JSP page. <br></p><p><b> </body></b></p><p><b> </html></b></p><p> 2、login.jsp</p><p>
63、 <%@ page language="java" contentType="text/html; charset=UTF-8"</p><p> pageEncoding="UTF-8"%></p><p> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01
64、 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"></p><p><b> <html></b></p><p><b> <head></b></p><p> <meta http
65、-equiv="Content-Type" content="text/html; charset=UTF-8"></p><p> <title>歡迎使用課程管理系統(tǒng)</title></p><p> <link href="css/login.css" rel="stylesh
66、eet" /></p><p> <script language="javascript"></p><p> function checkForm(){</p><p> var user=document.myForm.username.value;</p><p> if(use
67、r==""){</p><p> alert("用戶名不能為空!");</p><p> document.myForm.username.focus();</p><p> return false;</p><p><b> }</b></p><p
68、> var pwd=document.myForm.userpwd.value;</p><p> if((pwd.length<6)||(pwd.length>10)){</p><p> alert("密碼長度在6到10位之間!");</p><p> return false;</p><p&g
69、t;<b> }</b></p><p> var sf=document.myForm.usersf;</p><p> var flag=false;</p><p> for(var i=0;i<sf.length;i++){</p><p> if(sf[i].checked)</p>
70、<p> flag=true;</p><p><b> }</b></p><p> if(!flag){</p><p> alert("身份不能為空!");</p><p> return false;</p><p><b> }&
71、lt;/b></p><p><b> }</b></p><p><b> </script></b></p><p><b> </head></b></p><p><b> <body></b>&l
72、t;/p><p><b> <% </b></p><p> String loginUserName="",loginUserPwd="";</p><p> Cookie[] cookies = request.getCookies();</p><p> if(co
73、okies!=null){</p><p> int len = cookies.length;</p><p> for(int i = 0; i<len; i++){</p><p> Cookie cookie1 = cookies[i];</p><p> if(cookie1.getName().equals(&quo
74、t;userName"))</p><p> loginUserName = cookie1.getValue();</p><p> else if(cookie1.getName().equals("userPwd"))</p><p> loginUserPwd = cookie1.getValue();</p>
75、<p><b> } </b></p><p><b> } </b></p><p><b> %></b></p><p> <div class="outer"></p><p> <div cl
76、ass="inner"></p><p> <form action="loginProc.jsp" method="post" name="myForm" onsubmit="return checkForm();"></p><p><b> <ta
77、ble></b></p><p><b> <tr></b></p><p> <td height="36px" class="size">用戶名:</td></p><p> <td><input type="te
78、xt" name="username" value="<%=loginUserName%>"/></td></p><p><b> </tr></b></p><p><b> <tr></b></p><p>
79、 <td height="36px" class="size">密 碼:</td></p><p> <td><input type="password" name="userpwd" value="<%=loginUserPwd%>
80、;"/></td></p><p><b> </tr></b></p><p><b> <tr></b></p><p> <td height="36px" colspan="2"></p>&
81、lt;p> <center class="size"></p><p> <input type="radio" name="usersf" value="xs"/>學生 </p><p> <input type="radio"
82、name="usersf" value="js"/>教師 </p><p><b> </center></b></p><p><b> </td></b></p><p><b> </tr></b
83、></p><p><b> <tr></b></p><p> <td height="36px" colspan="2" align="center"></p><p> <input type="submit" val
84、ue="" class="button1"/> </p><p> <input type="reset" value="" class="button2"/></p><p><b> </td
85、></b></p><p><b> </tr></b></p><p><b> </table></b></p><p><b> </form></b></p><p><b> </div&g
86、t;</b></p><p><b> </div></b></p><p><b> </body></b></p><p><b> </html></b></p><p> 3、loginProc.jsp</p
87、><p> <%@ page language="java" contentType="text/html; charset=UTF-8"</p><p> pageEncoding="UTF-8" import="java.sql.*"%></p><p> <!D
88、OCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"></p><p><b> <html></b></p><p><b> <head>
89、</b></p><p> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></p><p> <title>用戶名密碼審核</title></p><p><b> </
90、head></b></p><p><b> <body></b></p><p><b> <% </b></p><p> Connection conn = null;</p><p> PreparedStatement pstm = null;
91、</p><p> ResultSet rs = null;</p><p> String tpwd = null;</p><p> String name = request.getParameter("username");</p><p> String pwd = request.getParamete
92、r("userpwd");</p><p> String sf = request.getParameter("usersf");</p><p> boolean flag = false;</p><p> Class.forName("com.microsoft.sqlserver.jdbc.SQLSe
93、rverDriver"); </p><p> String url = "jdbc:sqlserver://localhost:1433;databasename=kcglxt";</p><p> conn = DriverManager.getConnection(url,"sa","123456");<
94、/p><p> if(sf.equals("xs"))</p><p><b> {</b></p><p> String sql = "select num from student where num in (select studentnum from choose)";</p>
95、<p> pstm = conn.prepareStatement(sql);</p><p> rs = pstm.executeQuery();</p><p> while(rs.next()){</p><p> if(rs.getString("num").equals(name))</p><p&
96、gt; flag = true;</p><p><b> }</b></p><p><b> if(flag){</b></p><p> sql = "select password from student where num = ?";</p><p> ps
97、tm = conn.prepareStatement(sql);</p><p> pstm.setString(1,name);</p><p> rs = pstm.executeQuery();</p><p> while(rs.next()){</p><p> tpwd = rs.getString("passw
98、ord");</p><p><b> }</b></p><p> if(tpwd.equals(pwd)){</p><p> Cookie cookie1 = new Cookie("userName",name);</p><p> Cookie cookie2 = new
99、Cookie("userPwd",pwd);</p><p> cookie1.setMaxAge(60*60);</p><p> cookie2.setMaxAge(60*60);</p><p> response.addCookie(cookie1);</p><p> response.addCookie
100、(cookie2);</p><p> session.setAttribute("username",name);</p><p> response.sendRedirect("student/student.jsp");</p><p><b> }else</b></p>&l
101、t;p> response.sendRedirect("error.html");</p><p><b> }</b></p><p><b> else</b></p><p> response.sendRedirect("error.html");</p&
102、gt;<p><b> }</b></p><p> else if(sf.equals("js"))</p><p><b> {</b></p><p> String sql = "select num from teacher";</p>
103、<p> pstm = conn.prepareStatement(sql);</p><p> rs = pstm.executeQuery();</p><p> while(rs.next()){</p><p> if(rs.getString("num").equals(name))</p><p&
104、gt; flag = true;</p><p><b> }</b></p><p><b> if(flag){</b></p><p> sql = "select password from teacher where num = ?";</p><p> ps
105、tm = conn.prepareStatement(sql);</p><p> pstm.setString(1,name);</p><p> rs = pstm.executeQuery();</p><p> while(rs.next()){</p><p> tpwd = rs.getString("passw
106、ord");</p><p><b> }</b></p><p> if(tpwd.equals(pwd)){</p><p> Cookie cookie1 = new Cookie("userName",name);</p><p> Cookie cookie2 = new
107、Cookie("userPwd",pwd);</p><p> cookie1.setMaxAge(60*60);</p><p> cookie2.setMaxAge(60*60);</p><p> response.addCookie(cookie1);</p><p> response.addCookie
108、(cookie2);</p><p> session.setAttribute("username",name);</p><p> response.sendRedirect("teacher/teacher.jsp");</p><p><b> }else</b></p>&l
109、t;p> response.sendRedirect("error.html");</p><p><b> }else</b></p><p> response.sendRedirect("error.html");</p><p><b> }</b></p
110、><p><b> %></b></p><p><b> </body></b></p><p><b> </html></b></p><p> 4、std_cf.jsp</p><p> <%@ page
111、 language="java" contentType="text/html; charset=UTF-8"</p><p> pageEncoding="UTF-8" import="java.sql.*"%></p><p> <!DOCTYPE html PUBLIC "-//
112、W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"></p><p><b> <html></b></p><p><b> <head></b></p><p&
113、gt; <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></p><p> <title>課程管理系統(tǒng)——查分</title></p><p> <link href="../css/std.css"
114、; rel="stylesheet" /></p><p><b> </head></b></p><p><b> <body></b></p><p><b> <%</b></p><p> Connect
115、ion conn = null;</p><p> PreparedStatement pstm = null;</p><p> ResultSet rs = null;</p><p> Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); </p>
116、<p> String url = "jdbc:sqlserver://localhost:1433;databasename=kcglxt";</p><p> conn = DriverManager.getConnection(url,"sa","123456"); </p><p> String id =
117、 (String)session.getAttribute("username");</p><p> String name = (String)session.getAttribute("name");</p><p> String sql = "select course.name,grade from course,choos
118、e where studentnum = ? and coursenum = course.num";</p><p> pstm = conn.prepareStatement(sql);</p><p> pstm.setString(1,id);</p><p> rs = pstm.executeQuery();</p><
119、;p><b> %></b></p><p> <div class="bg"></p><p> <div class="div1"></p><p> <table class="size"></p><p
120、><b> <tr></b></p><p> <td width="95px" align="center"><a href="std_grxx.jsp">個人信息</a></td></p><p> <td width=&quo
121、t;95px" align="center"><a href="std_kcxx.jsp">課程信息</a></td></p><p> <td width="95px" align="center"><a href="std_xk.jsp"&
122、gt;選 課</a></td></p><p> <td width="113px" align="center"><a href="std_cf.jsp">查 分</a><
123、;/td></p><p> <td width="95px" align="center"><a href="student.jsp">返回首頁</a></td></p><p><b> </tr></b></p><
124、;p><b> </table></b></p><p><b> </div></b></p><p> <div class="div2"></p><p><b> 當前位置——查分</b></p><p&
125、gt;<b> </div></b></p><p> <div class="div3"></p><p> 歡迎您:<%= id%> <%= name%> <a href="../login.jsp">注銷</a>
126、; <a href="std_xgmm.jsp">修改密碼</a></p><p><b> </div></b></p><p> <div class="div4"></p><p> <table style="
127、color:#11449E" bgcolor="#F2F6FB" border="3" cellpadding="8" cellspacing="3" bordercolor="#C8DEFC"></p><p><b> <tr></b></p>
128、<p> <th>課程名</th></p><p> <th>成績</th></p><p><b> </tr></b></p><p> <% while(rs.next()){%></p><p><b> <
129、;tr></b></p><p> <td><%= rs.getString("name")%></td></p><p> <% if(rs.getString("grade")==null){%></p><p> <td>未錄入</
130、td></p><p> <% }else{%></p><p> <td><%= rs.getString("grade")%></td></p><p><b> <% }%></b></p><p><b> &
131、lt;/tr></b></p><p><b> <% }%></b></p><p><b> </table></b></p><p> <input style="color:#11449E;background-color:#F2F6FB;border
132、:solid #99B9E2 1px;cursor:pointer;" type="button" value="打印成績" onclick="window.print();"/></p><p><b> </div></b></p><p><b> </d
133、iv></b></p><p><b> <%</b></p><p> conn.close();</p><p> pstm.close();</p><p> rs.close(); </p><p><b> %></b><
134、;/p><p><b> </body></b></p><p><b> </html></b></p><p> 5、std_grxx.jsp</p><p> <%@ page language="java" contentType=&qu
135、ot;text/html; charset=UTF-8"</p><p> pageEncoding="UTF-8" import="java.sql.*"%></p><p> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
136、"http://www.w3.org/TR/html4/loose.dtd"></p><p><b> <html></b></p><p><b> <head></b></p><p> <meta http-equiv="Content-Typ
137、e" content="text/html; charset=UTF-8"></p><p> <title>課程管理系統(tǒng)——個人信息</title></p><p> <link href="../css/std.css" rel="stylesheet" /></p
138、><p><b> </head></b></p><p><b> <body></b></p><p><b> <%</b></p><p> Connection conn = null;</p><p> P
139、reparedStatement pstm1 = null;</p><p> PreparedStatement pstm2 = null;</p><p> ResultSet rs1 = null;</p><p> ResultSet rs2 = null;</p><p> Class.forName("com.m
140、icrosoft.sqlserver.jdbc.SQLServerDriver"); </p><p> String url = "jdbc:sqlserver://localhost:1433;databasename=kcglxt";</p><p> conn = DriverManager.getConnection(url,"sa&q
141、uot;,"123456"); </p><p> String id = (String)session.getAttribute("username");</p><p> String name = (String)session.getAttribute("name");</p><p> S
142、tring sql1 = "select * from student where num = ?";</p><p> String sql2 = "select name from class where num = (select class from student where num = ?)";</p><p> pstm1 = co
143、nn.prepareStatement(sql1);</p><p> pstm1.setString(1,id);</p><p> rs1 = pstm1.executeQuery();</p><p> pstm2 = conn.prepareStatement(sql2);</p><p> pstm2.setString(1
144、,id);</p><p> rs2 = pstm2.executeQuery();</p><p> rs1.next();</p><p> rs2.next();</p><p><b> %></b></p><p> <div class="bg"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- web課程設(shè)計(宿舍管理系統(tǒng))
- web課程設(shè)計--酒店管理系統(tǒng)
- web課程設(shè)計酒店管理系統(tǒng)
- web課程設(shè)計-- 選課注冊管理系統(tǒng)
- web課程設(shè)計----基于web的成績管理系統(tǒng)
- 課程設(shè)計---java web圖書管理系統(tǒng)
- 學生管理系統(tǒng)——web課程設(shè)計報告 (2)
- web課程設(shè)計.學生成績管理系統(tǒng)
- web課程設(shè)計人事管理系統(tǒng)
- web課程設(shè)計學生成績管理系統(tǒng)
- web課程設(shè)計--用戶信息管理系統(tǒng)
- web課程設(shè)計
- 《web系統(tǒng)開發(fā)課程設(shè)計》
- web課程設(shè)計人事信息管理系統(tǒng)
- web課程設(shè)計人事信息管理系統(tǒng)
- 基于web的圖書管理系統(tǒng)課程設(shè)計
- web課程設(shè)計 《web網(wǎng)絡(luò)編程技術(shù)》課程設(shè)計報告
- web課程設(shè)計——網(wǎng)上書店管理系統(tǒng)報告
- web課程設(shè)計報告--網(wǎng)上書店管理系統(tǒng)
- web課程設(shè)計報告
評論
0/150
提交評論