版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
/課程設計報告課程:jsp學號:姓名:班級:教師:徐州師范大學計算機科學與技術(shù)學院
課程設計任務書姓名學號班級課程名稱數(shù)據(jù)庫系統(tǒng)概論課程性質(zhì)課程設計同組成員分工學生選課操作、教師管理操作兩部分功能的實現(xiàn)設計時間設計名稱學生選課管理信息系統(tǒng)的設計與實現(xiàn)設計要求系統(tǒng)功能基本要求:教師信息,包括教師編號、教師姓名、性別、年齡、學歷、職稱、畢業(yè)院校,健康狀況等。學生信息,包括學號、姓名、所屬院系、已選課情況等。教室信息,包括,可容納人數(shù)、空閑時間等。選課信息,包括課程編號、課程名稱、任課教師、選課的學生情況等。成績信息,包括課程編號、課程名稱、學分、成績。按一定條件可以查詢,并將結(jié)果打印輸出。設計思路與設計過程設計思路:,本系統(tǒng)結(jié)合數(shù)據(jù)庫和JSP編程實現(xiàn)了學生選課管理系統(tǒng)。學生選課管理系統(tǒng)分為三個子模塊:第一模塊是學生選課的頁面操作,包括個人信息,密碼修改,查詢成績,選課,退選五個功能;第二模塊是教師操作頁面,包含個人信息,密碼修改,錄入成績,查詢選課情況,查看教室信息;第三模塊是管理員,包含學生信息管理(增加、修改、刪除、查詢),教師信息管理(增加、修改、刪除、查詢),管理員信息管理(增加、修改、刪除、查詢)。計劃與進度構(gòu)思整個系統(tǒng)的框架,在數(shù)據(jù)庫中建表主要對學生選課的一些操作進行jsp編碼主要對教師的相關(guān)操作進行jsp編碼整合整個實驗,并進行修改寫課程設計的報告任課教師意見說明學生選課管理系統(tǒng)一.系統(tǒng)需求分析學生選課系統(tǒng)是一個學校不可缺少的部分,它的內(nèi)容對于學校的決策者和管理者來說都至關(guān)重要,所以學生選課系統(tǒng)應該能夠為用戶提供充足的信息和快捷的查詢手段。隨著科學技術(shù)的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。
作為計算機應用的一部分,使用計算機對選課信息進行管理,有著手工管理所無法比擬的優(yōu)點。這些優(yōu)點能夠極大地提高人事勞資管理的效率,也是企業(yè)的科學化、正規(guī)化管理,與世界接軌的重要條件。
因此,開發(fā)這樣一套軟件成為很有必要的事情,在下面的各章中我們將以開發(fā)一套學生選課系統(tǒng)為例,談談其開發(fā)過程和所涉與到的問題與解決方法。
本實驗實現(xiàn)的學生選課管理系統(tǒng)主要包括以下功能:1.完成數(shù)據(jù)的錄入和修改,并提交數(shù)據(jù)庫保存。其中的數(shù)據(jù)包括:學生信息、課程設置、學生成績以與操作員信息等;
2.設計實現(xiàn)學生信息查詢,選課管理、退選管理、分數(shù)查詢,課程的瀏覽教師信息查詢、教室空閑時間查詢等JSP頁面。
3.具備一定的安全性管理功能。包括操作員的權(quán)限設置、修改密碼設置、注銷和等功能。二.系統(tǒng)總概括1.系統(tǒng)的總設計本系統(tǒng)結(jié)合數(shù)據(jù)庫和JSP編程實現(xiàn)了學生選課管理系統(tǒng)。學生選課管理系統(tǒng)分為三個子模塊:第一模塊是學生選課的頁面操作,包括個人信息,密碼修改,查詢成績,選課,退選五個功能;第二模塊是教師操作頁面,包含個人信息,密碼修改,錄入成績,查詢選課情況,查看教室信息;第三模塊是管理員,包含學生信息管理(增加、修改、刪除、查詢),教師信息管理(增加、修改、刪除、查詢),管理員信息管理(增加、修改、刪除、查詢)。學生選課教師管理管理員學生選課教師管理管理員學生選課管理系統(tǒng)2.數(shù)據(jù)庫設計2.1數(shù)據(jù)庫概念結(jié)構(gòu)設計本系統(tǒng)主要有三個實體,其中有學生和課程兩個實體集,一個學生可以選修若干門課程,一門課程也可以被多個學生選修,這兩個實體集之間是多對多聯(lián)系,還有教師和課程兩個實體,一個老師可以教授若干門課程,一門課程卻只能有一個老師教授,這兩個實體集之間是一對多聯(lián)系。通過選課成績將老師和學生聯(lián)系在一起。為保證系統(tǒng)的安全性,設置了操作員這一實體集,用來存放合法用戶的編號、姓名、密碼。本系統(tǒng)的E-R圖如下:學生學生學號姓名密碼院系性別電話地址選修成績課程教授教師編編號畢業(yè)院校健康狀況學歷姓名密碼院系年齡性別職稱MNM1編課程號編課程名編教師號編學分編學時編地點編總?cè)藬?shù)編已選數(shù)編院系管理員管理員編號密碼圖2系統(tǒng)的E-R圖2.2數(shù)據(jù)庫邏輯結(jié)構(gòu)設計根據(jù)關(guān)系模型的轉(zhuǎn)換原則,上面的E—R圖可轉(zhuǎn)換為如下所示的關(guān)系模型:roomname,roomnum,roomtime)根據(jù)上面的E-R圖設計與關(guān)系模型的設計,得出數(shù)據(jù)表的設計,在本系統(tǒng)中主要的數(shù)據(jù)表如下:表1學生表Student的表結(jié)構(gòu)主碼列名數(shù)據(jù)類型寬度小數(shù)位空否備注PksIdChar10
N學號
sNameChar20
Y姓名
sPassChar2
Y密碼
dIdChar20
Y所在系號表2學生信息表StuDetail的表結(jié)構(gòu)主碼列名數(shù)據(jù)類型寬度小數(shù)位空否備注PkuserIDChar10
N學號
userSexChar10
Y性別
userMobilChar30
Y電話
userAddressChar50
Y地址表3教師表teacher的表結(jié)構(gòu)主碼列名數(shù)據(jù)類型寬度空否備注PktIdChar10N編號
tNameChar20Y姓名
tPassChar2Y密碼
dIdChar20Y所在系號表4教師信息表teadetail的表結(jié)構(gòu)主碼列名數(shù)據(jù)類型寬度空否備注PkuserIDChar10N學號
userSexChar10Y性別
userAgeChar50Y電話
usereduChar30Y學歷usertitleChar30Y職稱userschChar30Y畢業(yè)院校UserhealthChar50Y健康狀況表5課程信息表Course的表結(jié)構(gòu)主碼列名數(shù)據(jù)類型寬度空否備注PkcIdChar10N課程號
coNameChar20Y課程名稱
tIdChar10Y教師號
creditChar8Y學分periodChar8Y學時cPlaceChar10Y上課地點cNumAllChar4Y總?cè)藬?shù)cNumChar4Y已選人數(shù)dIdChar10Y院系號表6選課成績表choosecourse的表結(jié)構(gòu)主碼列名數(shù)據(jù)類型寬度空否備注PkcIdChar5N課程代碼sIdChar3N學號
gradeDecimal5Y成績表7教室信息表room的表結(jié)構(gòu)主碼列名數(shù)據(jù)類型寬度空否備注PkroomnameChar10N教室名roomnumChar10N容納人數(shù)
roomtimeChar10Y空閑時間表8管理員表admin的表結(jié)構(gòu)主碼列名數(shù)據(jù)類型寬度空否備注PkaIdChar10N管理員編號
aPassChar10Y管理員姓名表9院系表department的表結(jié)構(gòu)主碼列名數(shù)據(jù)類型寬度空否備注PkdIdChar10N院系號
dNameChar10Y院系名下面在系統(tǒng)實施階段就可以物理實現(xiàn)數(shù)據(jù)庫了,本系統(tǒng)使用前面實驗已經(jīng)建好的服務器端SQLServer數(shù)據(jù)庫—xuanke,具體創(chuàng)建方法見前面實驗。三.系統(tǒng)實現(xiàn)本實驗是用JSP結(jié)合數(shù)據(jù)庫實現(xiàn)的,其中包含了三個主頁面,一是學生登錄頁面,二是教師登錄頁面,三是管理員登錄頁面。其中每個頁面中都會有菜單進行相應的操作。3.1JSP文件代表的操作(1)主界面操作:Index.jsp//登錄界面(包含學生、教師、管理員三個選項)Login.jsp//密碼驗證(2)學生選課(a)學生選課界面:student.jps//菜單顯示studentIndex.html//歡迎界面studentMessage.jsp(b)個人信息:studMessSel.jsp//個人信息的頁面顯示(c)密碼修改:stuM.jsp//在數(shù)據(jù)庫中修改密碼stuMessMod.jsp//修改密碼界面stuMessModSuc.jsp//修改成功(d)成績查詢:gradeselect.jsp//相應課程的成績查詢(e)選課:choosecourse.jsp//所有課程顯示choose.jsp//在數(shù)據(jù)庫中插入數(shù)據(jù)choosesuccess.jsp//選課成功(f)選課情況查詢與退選:courseselect.jsp//選課情況查詢ccdel.jsp//數(shù)據(jù)庫中刪除選課記錄(g)注銷:zhuxiao.jsp//注銷(3)教師管理(a)教師管理界面:teacher.jps//菜單顯示teacherIndex.html//歡迎界面teacherMessage.jsp(b)個人信息:teacherMessSel.jsp//個人信息的頁面顯示(c)密碼修改:teacherM.jsp//在數(shù)據(jù)庫中修改密碼teacherMod.jsp//修改密碼界面teaMessModSuc.jsp//修改成功(d)提交成績:grade.jsp//選課學生信息顯示gradeIns.jsp//在數(shù)據(jù)庫中插入數(shù)據(jù)(e)課程信息:lookcourse.jsp//選課情況查詢(f)教室信息:classroom.jsp//查看可用教室的空閑時間(g)注銷:zhuxiao.jsp//注銷3.2數(shù)據(jù)庫的連接舉例:驗證用戶類型和密碼時的數(shù)據(jù)庫連接<body><%Stringname=(String)request.getParameter("username");Stringpass=(String)request.getParameter("userpass");Strings=(String)request.getParameter("userselect");Connectionconn=null;Statementstmt=null;ResultSetrs=null;StringloginNum="0";session.setAttribute("lnum",loginNum);try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection("jdbc:odbc:xk","sa",""); if(s.equals("1")) { Stringsql="select*fromstudentwheresId='"+name+"'andsPass='"+pass+"'"; stmt=conn.createStatement(); rs=stmt.executeQuery(sql); if(rs.next()) { loginNum="1"; session.setAttribute("lnum",loginNum); session.setAttribute("name",name); out.print(name+"登陸成功,頁面跳轉(zhuǎn)"); response.sendRedirect("student/studentIndex.html"); } else { out.print("用戶名或密碼有誤.."); response.sendRedirect("index.jsp"); } } if(s.equals("2")) { Stringsql="select*fromteacherwheretId='"+name+"'andtPass='"+pass+"'"; stmt=conn.createStatement(); rs=stmt.executeQuery(sql); if(rs.next()) { loginNum="2"; session.setAttribute("lnum",loginNum); session.setAttribute("name",name); out.print(name+"登陸成功,頁面跳轉(zhuǎn)"); response.sendRedirect("teacher/teacherIndex.html"); } else { out.print("用戶名或密碼有誤.."); response.sendRedirect("index.jsp"); } }if(s.equals("3")) { Stringsql="select*fromadminwhereaId='"+name+"'andaPass='"+pass+"'"; stmt=conn.createStatement(); rs=stmt.executeQuery(sql); if(rs.next()) { loginNum="3"; session.setAttribute("lnum",loginNum); session.setAttribute("name",name); out.print("管理員"+name+"登陸成功,頁面跳轉(zhuǎn)"); response.sendRedirect("admin/adminIndex.html"); } else { out.print("用戶名或密碼有誤.."); out.print("<ahref=index.jsp>登陸頁面</a>"); } }}catch(Exceptione){out.print(e);//response.sendRedirect("index.jsp");}%></body>3.3具體操作(1)學生選課操作(a)登錄頁面圖1.1學生登錄頁面主要代碼:<body><formname="loginform"method="post"action="login.jsp"><br><br><br><br><tablewidth="500"height="150"border="0"align="center"><tr><tdalign="center"><fontsize="5"color="#FFFFFF">歡迎您使用學生選課系統(tǒng)</font></td></tr><tr></table><tablewidth="294"border="0"align="center"><tr><tdcolspan="3"> </td></tr><tr><tdwidth="79">用戶名:</td><tdwidth="148"><inputname="username"type="text"size="20"size="20"maxlength="30"></td><tdwidth="53"rowspan="2"><imgsrc="image/logo_img.gif"width="37"height="40"onClick="loginclick()"></td></tr><tr><td>密碼:</td><td><inputname="userpass"type="password"size="20"size="20"maxlength="30"></td></tr><tr><td>用戶類型:</td><td><selectname="userselect"><optionvalue="1"selected>學生</option><optionvalue="2">教師</option><optionvalue="3">管理員</option></select></td><td> </td></tr></table></form></body>(b)菜單操作圖1.2學生選課系統(tǒng)的界面主要代碼:<tablewidth="100%"border="0"cellpadding="0"cellspacing="1"bgcolor="#000000"><tr><tdheight="40"align="center"bgcolor="#00509F"><divalign="center"><fontcolor="#FFFFFF"size="4">學生選課系統(tǒng)</font></div></td></tr><tr><tdheight="40"align="center"bgcolor="#FFFFFF"><divalign="left"><imgsrc="image/index_01.gif"width="20"height="17"><ahref="studMessSel.jsp"target="rightFrame"><fontcolor="#0000FF"size="3">個人信息</font></a></div></td></tr><tr><tdheight="40"align="center"bgcolor="#FFFFFF"><divalign="left"><imgsrc="image/index_01.gif"width="20"height="17"><ahref="stuMessMod.jsp"target="rightFrame"><fontcolor="#0000FF"size="3">密碼修改</font></a></div></td></tr><tr><tdheight="40"align="center"bgcolor="#FFFFFF"><divalign="left"><imgsrc="image/index_01.gif"width="20"height="17"><ahref="gradeSelect.jsp"target="rightFrame"><fontcolor="#0000FF"size="3">成績查詢</font></a></div></td></tr><tr><tdheight="40"align="center"bgcolor="#FFFFFF"><divalign="left"><imgsrc="image/index_01.gif"width="20"height="17"><ahref="courseSelect.jsp"target="rightFrame"><fontcolor="#0000FF"size="3">選課查詢以與退選</font></a></div></td></tr><tr><tdheight="40"align="center"bgcolor="#FFFFFF"><divalign="left"><imgsrc="image/index_01.gif"width="20"height="17"><ahref="choosecourse.jsp"target="rightFrame"><fontcolor="#0000FF"size="3">選課</font></a></div></td></tr><tr><tdheight="40"align="center"bgcolor="#FFFFFF"><divalign="left"><imgsrc="image/index_01.gif"width="20"height="17"><ahref="zhuxiao.jsp"target="_top"><fontcolor="#0000FF"size="3">注銷</font></a></div></td></tr></table>(c)個人信息顯示學生進入后可以在菜單里進行相應的操作,點擊個人信息時,就會出現(xiàn)該學生的信息.如下圖所示:圖1.2學生信息顯示的界面主要代碼:從數(shù)據(jù)庫中讀出相應的信息:try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection("jdbc:odbc:xk","sa",""); Stringsql="select*fromstudentwherestudent.sId='"+name+"'"; System.out.println(sql); stmt=conn.createStatement(); rs=stmt.executeQuery(sql); if(rs.next()) { sId=rs.getString("sId"); sName=rs.getString("sName"); dId=rs.getString("dId"); } Stringsql1="select*fromstuDetailwhereuserID='"+name+"'"; System.out.println(sql1); stmt=conn.createStatement(); rs=stmt.executeQuery(sql1); if(rs.next()) { Sex=rs.getString("userSex");Mobil=rs.getString("userMobil");Addr=rs.getString("userAddress"); } Connectionconnd=null; Statementstmtd=null; ResultSetrsd=null; connd=DriverManager.getConnection("jdbc:odbc:xk","sa",""); stmtd=connd.createStatement(); rsd=stmtd.executeQuery("selectdNamefromdepartmentwheredId='"+dId+"'"); if(rsd.next()) { dName=rsd.getString("dName"); } } catch(Exceptione){out.println(e); }%><formname="form1"method="post"><tablewidth="350"border="0"align="center"cellpadding="0"cellspacing="2"class="border"><tdheight="25"align="center"><strong><fontsize="5"color="#FFFFFF">學生個人信息</font></strong></td></table><tableborder="10"align="center"width="500"height="150"><tr> <Tdwidth="60"><font size="4"color="#FFFFFF">學號</font></Td><tdwidth="100"><font size="3"color="#FFFFFF"><%=sId%></font></td> <tdwidth="60"><font size="4"color="#FFFFFF">姓名</font></td><tdwidth="100"><font size="3"color="#FFFFFF"><%=sName%></font></td> <tdwidth="60"><font size="4"color="#FFFFFF">性別</font></td><tdwidth="100"><font size="3"color="#FFFFFF"><%=Sex%></font></td> </tr> <tr> <td><font size="4"color="#FFFFFF">院系</font></td><td><font size="3"color="#FFFFFF"><%=dName%></font></td> <td><font size="4"color="#FFFFFF">電話</font></td><td><font size="3"color="#FFFFFF"><%=Mobil%></font></td> <td><font size="4"color="#FFFFFF">地址</font></td><td><font size="3"color="#FFFFFF"><%=Addr%></font></td></tr></table></form>(d)密碼修改舉例:將0826006學號的密碼該為:6666其顯示如下:圖1.3修改密碼修改提交后數(shù)據(jù)庫中的結(jié)果如下,可見密碼已修改圖1.4數(shù)據(jù)庫中修改后的student表主要代碼:數(shù)據(jù)庫中修改該學生的密碼的代碼StringsPass=(String)request.getParameter("sPass"); Connectionconn=null; Statementstmt=null; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection("jdbc:odbc:xk","sa",""); Stringsql2="updatestudentsetsPass='"+sPass+"'wheresId='"+name+"'"; stmt=conn.createStatement(); stmt.executeUpdate(sql2);stmt.close(); response.sendRedirect("stuMessModSuc.jsp"); }functioncheckBig(){if(document.form1.sPass.value==""){alert("密碼不能為空!");document.form1.sPass.focus();returnfalse;}elseif(document.form1.sPassagn.value==""){alert("再次輸入密碼!");document.form1.sPassagn.focus();returnfalse;}elseif(document.form1.sPass.value!=document.form1.sPassagn.value){alert("兩次密碼不同!");document.form1.sPass.focus();returnfalse;}}out.print("修改成功");(e)成績查詢根據(jù)教授該門課的老師是否提交成績,學生可以查到自己相應課程的成績,其查詢結(jié)果如下:圖1.5查詢成績的頁面主要代碼: try { Statementstmtc=null; ResultSetrsc=null; Connectionconnc=null; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); connc=DriverManager.getConnection("jdbc:odbc:xk","sa",""); Stringsqlc="select*fromchooseCoursewheresId='"+name+"'"; stmtc=connc.createStatement(); rsc=stmtc.executeQuery(sqlc);while(rsc.next()) { StringcoId=rsc.getString("coId"); floatgrade=rsc.getFloat("grade"); Stringgrademess=null; Statementstmt=null; ResultSetrs=null; Connectionconn=null; conn=DriverManager.getConnection("jdbc:odbc:xk","sa",""); Stringsql="selectcoNamefromcoursewherecoId='"+coId+"'"; stmt=conn.createStatement(); rs=stmt.executeQuery(sql); if(rs.next()) {if(grade>0)out.print(grade); elseout.print("未提交");}}(f)課程查詢與退選可以通過對應課程后面的退選選項進行課程的退選圖1.6查詢選課情況的頁面主要代碼:<tablewidth="90%"border="0"align="center"cellpadding="0"cellspacing="0"><tr><tdalign="center"valign="top"><pclass="style8"> <%=name%>選課選擇情況</p><tablewidth="600"border="0"cellpadding="0"cellspacing="1"bgcolor="#000000"><tr><tdwidth="100"align="center"bgcolor="#FFCCFF"><divalign="center"><strong><fontcolor="blue">課程名稱</font></strong></div></td><tdwidth="60"align="center"bgcolor="#FFCCFF"><divalign="center"><strong><fontcolor="blue">學分</font></strong></div></td><tdwidth="60"align="center"bgcolor="#FFCCFF"><divalign="center"><strong><fontcolor="blue">學時</font></strong></div></td><tdwidth="80"align="center"bgcolor="#FFCCFF"><divalign="center"><strong><fontcolor="blue">上課地點</font></strong></div></td><tdwidth="91"height="30"align="center"bgcolor="#FFCCFF"><divalign="center"><strong><fontcolor="blue">教師</font></strong></div></td><tdwidth="139"align="center"bgcolor="#FFCCFF"><strong><fontcolor="blue">操作選項</font></strong></td></tr> while(rsc.next()) { StringcoId=rsc.getString("coId"); floatgrade=rsc.getFloat("grade"); Stringgrademess=null; Statementstmt=null; ResultSetrs=null; Connectionconn=null; conn=DriverManager.getConnection("jdbc:odbc:xk","sa",""); Stringsql="select*fromcoursewherecoId='"+coId+"'"; stmt=conn.createStatement(); rs=stmt.executeQuery(sql); if(rs.next()) { StringcoName=rs.getString(2); StringtId=rs.getString(3); floatcredit=rs.getFloat(4); floatperiod=rs.getFloat(5); StringcPlace=rs.getString(7);Connectionconnt=null; Statementstmtt=null; ResultSetrst=null; connt=DriverManager.getConnection("jdbc:odbc:xk","sa",""); Stringsqlt="selecttNamefromteacherwheretId='"+tId+"'"; stmtt=connt.createStatement(); rst=stmtt.executeQuery(sqlt); if(rst.next())out.print(rst.getString(1)); } } rsc.close();stmtc.close(); %></table></td></tr></table>(f)選課界面中已通過數(shù)據(jù)庫將所有的課程列出來,學生可以通過前面的選擇標志進行選課。圖1.7選課信息的頁面與選課操作選課后,相應數(shù)據(jù)庫中的choosecourse表增加了一行選課記錄圖1.8選課后數(shù)據(jù)庫中的chooseCourse表主要代碼:<formaction="choose.jsp"method="post"><tablewidth="90%"border="0"align="center"cellpadding="0"cellspacing="0"><tr><tdalign="center"valign="top"><br><br><tablewidth="800"border="0"cellpadding="0"cellspacing="1"bgcolor="#000000"><tr><tdwidth="40"height="30"align="center"bgcolor="#FFCCFF"><divalign="center"><strong>選擇</strong></div></td><tdwidth="100"align="center"bgcolor="#FFCCFF"><divalign="center"><strong>課程名稱</strong></div></td><tdwidth="60"align="center"bgcolor="#FFCCFF"><divalign="center"><strong>學分</strong></div></td><tdwidth="60"align="center"bgcolor="#FFCCFF"><divalign="center"><strong>學時</strong></div></td><tdwidth="80"align="center"bgcolor="#FFCCFF"><divalign="center"><strong>上課地點</strong></div></td><tdwidth="91"height="30"align="center"bgcolor="#FFCCFF"><divalign="center"><strong>教師</strong></div></td><tdwidth="70"align="center"bgcolor="#FFCCFF"><strong>剩余可選人數(shù)</strong></td></tr><% while(rs.next()) { StringcoId=rs.getString(1); StringcoName=rs.getString(2); StringtId=rs.getString(3); floatcredit=rs.getFloat(4); floatperiod=rs.getFloat(5); StringcPlace=rs.getString(6); intcNumAll=rs.getInt(7); intcNum=rs.getInt(8); intnum=cNumAll-cNum; %><trbgcolor="#FFCCFF"class="tdbg"><tdwidth="40"height="22"bgcolor="#FFFFFF"><divalign="center"><inputtype="radio"name="choose"value="<%=coId%>"<% Connectionconnc=null; Statementstmtc=null; ResultSetrsc=null; connc=DriverManager.getConnection("jdbc:odbc:xk","sa",""); Stringsqlc="select*fromchooseCoursewheresId='"+name+"'"; stmtc=connc.createStatement(); rsc=stmtc.executeQuery(sqlc); if(rsc.next())out.print(""); elseif(num<=0)out.print("disabled"); %>></div></td><tdwidth="100"height="22"bgcolor="#FFFFFF"><divalign="center"><%=coName%></div></td><tdwidth="60"height="22"bgcolor="#FFFFFF"><divalign="center"><%=credit%></div></td><tdwidth="60"height="22"bgcolor="#FFFFFF"><divalign="center"><%=period%></div></td><tdwidth="80"height="22"bgcolor="#FFFFFF"><divalign="center"><%=cPlace%></div></td><tdalign="right"bgcolor="#FFFFFF"style="padding-right:10"><divalign="center"><% Connectionconnt=null; Statementstmtt=null; ResultSetrst=null; connt=DriverManager.getConnection("jdbc:odbc:xk","sa",""); Stringsqlt="selecttNamefromteacherwheretId='"+tId+"'"; stmtt=connt.createStatement(); rst=stmtt.executeQuery(sqlt); if(rst.next())out.print(rst.getString(1)); %></div></td><tdalign="right"bgcolor="#FFFFFF"style="padding-right:10"><divalign="center"><%if(num>0)out.print(num); elseout.print("已選滿");%></div></td></tr><% }%></table>(2)教師操作(a)登錄頁面輸入教師的教師編號和密碼,選擇用戶類型為教師,即可登錄圖2.1教師登錄頁面主要代碼:<body><formname="loginform"method="post"action="login.jsp"><br><tablewidth="500"height="150"border="0"align="center"><tr><tdalign="center"><fontsize="5"color="#FFFFFF">歡迎您使用學生選課系統(tǒng)</font></td></tr><tr></table><tablewidth="294"border="0"align="center"><tr><tdcolspan="3"> </td></tr><tr><tdwidth="79">用戶名:</td><tdwidth="148"><inputname="username"type="text"size="20"size="20"maxlength="30"></td><tdwidth="53"rowspan="2"><imgsrc="image/logo_img.gif"width="37"height="40"onClick="loginclick()"></td></tr><tr><td>密碼:</td><td><inputname="userpass"type="password"size="20"size="20"maxlength="30"></td></tr><tr><td>用戶類型:</td><td><selectname="userselect"><optionvalue="1"selected>學生</option><optionvalue="2">教師</option><optionvalue="3">管理員</option></select></td><td> </td></tr></table></form></body>(b)菜單操作登錄之后進入教師操作頁面,如下圖所示,左邊是菜單,可以進行相應的操作圖2.2教師操作頁面主要代碼:<body><tablewidth="100%"border="0"cellpadding="0"cellspacing="1"bgcolor="#000000"><tr><tdheight="40"align="center"bgcolor="#6633CC"><divalign="center"><fontcolor="#FFFFFF"size="4">學生選課系統(tǒng)</font></div></td></tr><tr><tdheight="40"align="center"bgcolor="#FFFFFF"><divalign="left"><imgsrc="image/index_01.gif"width="20"height="17"><ahref="teacherMessSel.jsp"target="rightFrame"><fontcolor="#6633CC"size="3">個人信息</font></a></div></td></tr><tr><tdheight="40"align="center"bgcolor="#FFFFFF"><divalign="left"><imgsrc="image/index_01.gif"width="20"height="17"><ahref="teacherMessMod.jsp"target="rightFrame"><fontcolor="#6633CC"size="3">密碼修改</font></a></div></td></tr><tr><tdheight="40"align="center"bgcolor="#FFFFFF"><divalign="left"><imgsrc="image/index_01.gif"width="20"height="17"><ahref="grade.jsp"target="rightFrame"><fontcolor="#6633CC"size="3">提交成績</font></a></div></td></tr><tr><tdheight="40"align="center"bgcolor="#FFFFFF"><divalign="left"><imgsrc="image/index_01.gif"width="20"height="17"><ahref="lookcourse.jsp"target="rightFrame"><fontcolor="#6633CC"size="3">課程信息</font></a></div></td></tr><tr><tdheight="40"align="center"bgcolor="#FFFFFF"><divalign="left"><imgsrc="image/index_01.gif"width="20"height="17"><ahref="classroom.jsp"target="rightFrame"><fontcolor="#6633CC"size="3">教室信息</font></a></div></td></tr><tr><tdheight="40"align="center"bgcolor="#FFFFFF"><divalign="left"><imgsrc="image/index_01.gif"width="20"height="17"><ahref="zhuxiao.jsp"target="_top"><fontcolor="#6633CC"size="3">注銷</font></a></div></td></tr></table><%}else{ out.print("請先登陸");out.print("<ahref=../index.jsp>登陸頁面</a>");}%></body>(c)個人信息點擊個人信息的菜單,會在右面的框里顯示教師的個人信息,教師信息頁面顯示如下圖:圖2.3教師信息顯示主要代碼:Connectionconn=null; Statementstmt=null; ResultSetrs=null; StringtId=null; StringtName=null; StringdId=null; StringdName=null; Stringsex=null; Stringage=null; Stringedu=null; Stringtitle=null; Stringschool=null; Stringhealth=null; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection("jdbc:odbc:xk","sa",""); Stringsql="select*fromteacherwhereteacher.tId='"+name+"'"; System.out.println(sql); stmt=conn.createStatement(); rs=stmt.executeQuery(sql); if(rs.next()) { tId=rs.getString("tId"); tName=rs.getString("tName"); dId=rs.getString("dId"); } Stringsql1="select*fromteaDetailwhereteaDetail.userID='"+name+"'"; System.out.println(sql); stmt=conn.createStatement(); rs=stmt.executeQuery(sql1); if(rs.next()) { sex=rs.getString("usersex"); age=rs.getString("userage"); edu=rs.getString("useredu"); title=rs.getString("usertitle"); school=rs.getString("usersch"); health=rs.getString("userhealth"); } Connectionconnd=null; Statementstmtd=null; ResultSetrsd=null; connd=DriverManager.getConnection("jdbc:odbc:xk","sa",""); stmtd=connd.createStatement(); rsd=stmtd.executeQuery("selectdNamefromdepartmentwheredId='"+dId+"'"); if(rsd.next()) { dName=rsd.getString(1); } } catch(Exceptione){out.println(e);}(c)密碼修改將原來的密碼111改成了111111圖2.4教師密碼修改界面修改后,可以查詢數(shù)據(jù)庫中的teacher表,可以看到馬云教師的密碼被修改成了111111。圖2.5修改密碼后的teacher表主要代碼:StringtPass=(String)request.getParameter("tPass"); Connectionconn=null; Statementstmt=null; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection("jdbc:odbc:xk","sa",""); Stringsql="updateteachersettPass='"+tPass+"'wheretId='"+name+"'"; stmt=conn.createStatement(); stmt.executeUpdate(sql);stmt.close(); response.sendRedirect("teaMessModSuc.jsp"); }<formname="form1"method="post"action="teacherM.jsp"onsubmit="returncheckBig()"><tablewidth="400"border="0"align="center"cellpadding="0"cellspacing="2"class="border"><trclass="title"><tdheight="25"colspan="2"align="center"><strong><font size="4"color="#000000">修改密碼</font></strong></td></tr><trclass="tdbg"><tdwidth="130"height="30"><divalign="left"><strong><fontsize="3"color="#000000">密碼:</font></strong></div></td><tdwidth="243"><divalign="left"><inputname="tPass"type="password"id="sPass"size="25"maxlength="30"/></div></td></tr><trclass="tdbg"><tdwidth="130"height="30"><divalign="left"><strong><fontsize="3"color="#000000">再次輸入密碼:</font></strong></div></td><tdwidth="243"><divalign="left"><inputname="tPassagn"type="password"id="sPassagn"size="25"maxlength="30"/></div></td></tr><trclass="tdbg"><tdheight="30"align="center"> </td><tdheight="30"align="center"><divalign="left"><inputname="Add"type="submit"value="修改"/></div></td></tr></table></form>(d)成績錄入點擊菜單中的提交成績,可顯示如下頁面:圖2.6學生成績錄入界面點擊相應的課程下的學生成績錄入,可進入下個頁面:學號為0826006的學生錄入成績?yōu)?9分。圖2.7成績錄入成績錄入后可在數(shù)據(jù)中查詢到相應的信息,學生也可通過學生選課菜單中的查詢成績也可看到相應的成績,下圖為數(shù)據(jù)庫中的choosecourse中的信息圖2.8錄入成績后數(shù)據(jù)庫中的choosecourse表主要代碼:Connectionconn=null; Statementstmt=null; ResultSetrs=null; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn=DriverManager.getConnection("jdbc:odbc:xk","sa",""); Stringsql="selectcourse.coId,coName,sId,gradefromcourse,chooseCoursewherecourse.coId=chooseCourse.coIdandtId='"+name+"'"; stmt=conn.createStatement(); rs=stmt.executeQuery(sql);while(rs.next()) { StringcoId=rs.getString(1); StringcoName=rs.getString(2); StringsId=rs.getString(3); floatgrade=rs.getFloat(4);Statementstmtc=null; ResultSetrsc=null; Connectionconnc=null; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); connc=DriverManager.getConnection("jdbc:odbc:xk","sa",""); Stringsqlc="selectsNamefromstudentWheresId='"+sId+"'"; stmtc=connc.createStatement(); rsc=stmtc.executeQuery(sqlc); while(rsc.next()) { StringsName=rsc.getString(1);<formname="form1"method="post"action="gradeInsert.jsp"onsubmit="returncheckBig()"><tablewidth="350"border="0"align="center"cellpadding="0"cellspacing="2"class="border"><trclass="title"><tdheight="25"colspan="2"align="center"><p><strong>錄入成績</strong></p></td></tr><trclass="tdbg"><tdwidth="101"height="22"><divalign="left"><strong>學生學號:</strong></div></td><tdwidth="243"><divalign="left"><inputname="sId"type="text"id="sId"size="20"maxlength="30"value="<%=(String)request.getParameter("sId")%>"readonly="false"/> <inputtype="hidden"name="coId"value="<%=(String)request.getParameter("coId")%>"/></div></td></tr><trclass="tdbg"><tdwidth="101"height="22"><divalign="left"><strong>成績:</strong></div></td><tdwidth="243"><divalign="left"><inputname="grade"type="text"size="20"maxlength="30"/></div></td></tr><trclass="tdbg"><tdheight="22"align="center"> </td><tdheight="22"align="center"><divalign="left"><inputname="Add"type="submit"value="錄入"/></div></td></tr></table></form>(e)課程信息在這里可以查詢到老師所教的所有課程的具體信息,包括學分,學時,上課地點,已選的人數(shù)等,如下圖所示。圖2.9教師的課程選課情況主要代碼:Statementstmtc=null; ResultSetrsc=null; Connectionconnc=null; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); connc=DriverManager.getConnection("jdbc:odbc:xk","sa",""); Stringsqlc="selectdistinctchooseCourse.coIdfromchooseCourse,coursewherechooseCourse.coId=course.coIdandtId='"+name+"'"; stmtc=connc.createStatement(); rsc=stmtc.executeQuery(sqlc);while(rsc.next()) { StringcoId=rsc.g
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《血液學骨髓纖維化》課件
- 《大學英語聽力應用教程(第1冊)》課件-Unit 7 Live Longer
- 合伙人股權(quán)轉(zhuǎn)讓合同書
- 統(tǒng)計局聘用合同
- 鐵路機務段合同樣板
- 提前解除合同會議紀要
- 《骨質(zhì)疏松的診治》課件
- 2025年雅安貨運從業(yè)資格模擬考試
- 2025年安徽貨運從業(yè)資格證考試模擬試題
- 第3課 盛唐氣象
- 2024年食品銷售環(huán)節(jié)食品安全管理人員抽查考核題庫
- 二零二四年度工業(yè)自動化技術(shù)研發(fā)與轉(zhuǎn)讓合同3篇
- 江蘇省南通市2023-2024學年五年級(上)期末數(shù)學試卷
- 藥店競選店長述職報告
- 2024年高考語文二輪復習:語言綜合運用新情境新題型(練習)
- 外貿(mào)業(yè)務員跟客戶簽保密協(xié)議書范文
- 物聯(lián)網(wǎng)技術(shù)應用與維護賽項樣題(中職組)
- 2024專業(yè)技術(shù)人員繼續(xù)教育考試題庫及參考答案
- 計算機程序設計語言(Python)學習通超星期末考試答案章節(jié)答案2024年
- DB14∕T638-2011人工影響天氣固定作業(yè)站點建設規(guī)范
- 連續(xù)催化重整基礎知識
評論
0/150
提交評論