




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、绪论 -3-1.1概要描述 -3-1.2团队分工 -3-二、系统需求分析 -4-2.1功能需求 -4-三、系统设计 -6-3.1系统采用的逻辑以及物理结构 -6-3.2系统的开发环境选择 -6-3.3系统的数据库设计(个人负责程序涉及的数据库) -6-四、系统实现及测试 -9-4.1系统模块功能介绍 -9-4.2系统实现过程中遇到的主要疑难问题和解决方案 -17-4.3系统实现的特色之处(包括技术和功能) -18-4.4系统测试 -18-五、总结 -18-5.1不足 -18-5.2总结 -19-参考文献 -19-附录 -20-一、绪论1.1概要描述课程设计管理系统,实现课程信息管理的电子化,减轻管理人员的负担。管理人员能够很好对课程进行管理。长期以来,学校基本都是使用传统人工的方式管理学生课程信息,效率低、保密性差,随着计算机和网络技术的发展,使用计算机来管理课程信息已经成为发展趋势。这样可以提高学生选课和成绩管理工作的效率,围绕此管理所需要的学生个人信息、课程和任课教师信息、所选课程信息进行管理及维护。1.2团队分工二、系统需求分析2.1功能需求系统整体的用例图如下:图2.1系统用例图管理员对课程信息进行增加、删除、编辑和查看;教师打印选课学生名单、班级成绩表、查看课程;学生可以查看自己已选课程的成绩、打印班级课程表、查询课程。需要注意的是,由于课程设计任务书表达的不明确,所以我们将管理员和教师的功能合并到教师角色中。数据流图如下:图2.2数据流图图2.3数据流图三、系统设计3.1系统采用的逻辑以及物理结构图3.13.2系统的开发环境选择(1)使用web的开发环境是myeclipse10;(2)数据库使用的是SQLsserverr2008。3.3系统的数据库设计(个人负责程序涉及的数据库)表3.1系统数据库设计表名功能说明选课表(choose)存放选课信息班级表(class)存放班级信息院系表(college)存放院系信息课程表(course)存放课程信息专业表(major)存放专业信息学生表(student)存放学生信息教师表(teacher)存放教师信息表3.2班级信息表class序号字段名类型是否为空是否主键描述1numVarcher否是主键、班级编号2nameVarchar否否班级名称3teacherVarchar否否班级辅导员4timeVarchar否否入学时间5majorVarchar否否专业表3.3教师信息表teacher序号字段名类型是否为空是否主键描述1numVarchar否是主键、教师编号2nameVarchar否否教师姓名3courseVarchar否否教师姓名4passwordVarchar否否密码表3.4院系信息表college序号字段名类型是否为空是否主键描述1numVarchar否是主键、系编号2nameVarchar否否院系名称表3.5课程信息表class序号字段名类型是否为空是否主键描述1numVarchar否是主键、课程编号2nameVarchar否否课程名称3timeVarchar否否课程学时4scoreVarchar否否学分5styleVarchar否否课程类型6starttimeVarchar否否课程开始时间7endtimeVarchar否否课程结束时间8classroomVarchar否否教室9teacherVarchar否否任课教师10allamountInt否否总人数11nowamountInt否否当前人数12conditionVarchar否否课程状态表3.6学生信息表student序号字段名类型是否为空是否主键描述1numnchar否是主键、学生学号2namenchar否否学生姓名3sexVarchar否否学生性别4birthVarchar否否学生出生日期5jgVarchar否否学生籍贯6mzVarchar否否学生名族7classVarchar否否学生班所在级8passwordVarchar否否密码表3.7选课信息表xuanke序号字段名类型是否为空是否主键描述1numInt否是自增主键、选课编号2studentnumVarchar否否学生编号3coursenumVarchar否否课程编号4gradeVarchar否否成绩表3.8选课表xuanke序号字段名类型是否为空是否主键描述1XuankexhInt否是自增主键2CxhInt否否课程信息表主键3sgradeVarchar否否课程分数4TxhInt否否教师主键 图3.2E-R关系图四、系统实现及测试4.1系统模块功能介绍用户身份:教师当用户登录系统后,如果他的身份是管理员,那么他可以对学生信息进行增加、删除、修改和查询。图4.1以下代码为循环读出数据库总学生信息值:<% while(rs.next()){ %> <tr> <td><%=rs.getString("num")%></td> <td><%=rs.getString("name")%></td> <td><%=rs.getString("sex")%></td> <td><%=rs.getString("birth")%></td> <td><%=rs.getString("jg")%></td> <td><%=rs.getString("mz")%></td> <td><%=rs.getString("class")%></td> <td><ahref="tea_xsgl_edit.jsp?id=<%=rs.getString("num")%>&cla=<%=rs.getString("class")%>">编辑</a> <ahref="javascript:btnDelete('<%=rs.getString("num")%>')">删除</a></td> </tr> <%}%>当点击增加按钮时就会出现增加界面,显示出学生管理信息表中所有的字段,对于存在关联的字段的选项则从关联表中读出所有数据,以下拉列表的形式或者单选框的形式显示出来,方便用户选择,不需要手动写入,直接从下拉框或单选框中获取即可。如果不填写课程编号或其他任何一个选项,就点击提交按钮,就会出现提示框,提醒你要将信息填写完整,否则无法提交。上方有一个功能菜单导航,用户可以通过这些超链接直接进入到教师角色可以进行操作的其他界面。图4.2从数据库中获取课程种类下拉框中的值,代码如下:<tr> <td>班级</td> <td> <selectname="newclass"> <%while(rs.next()){%> <option><%=rs.getString("num")%></option> <%}%> </select> </td> </tr>图4.3当用户点击图表3右侧的编辑按钮,程序首先将这一行所对应的课程信息的主键值传给编辑处理界面,编辑页面接受主键值后,根据主键值从student表中读出这一列所对应的数据显示在如下界面中。教师可以对课程中的任意一个信息进行更改。对于像性别、班级这些选择可以直接从单选框和下拉框中更改,不需要手动输入数据。图4.3当用户点击删除按钮时,程序同样将这一行对应的主键值传给删除处理界面,同时会通过javascript弹出一个对话框,问用户是否确定删除,如果点击确定,则将与传过来的主键相对应的一整行删除掉;如果点击取消,就不对这一行进行处理,原始数据保留。相关代码如下:<script> functionbtnDelete(id){ if(confirm("确认删除该条记录吗?")) location.href="tea_xsgl_del.jsp?id="+id; }</script>用户身份:学生当登陆的用户是学生,他可以查询个人信息、进行课程信息查询、进行选课操作、查询成绩。图4.4当用户点击上方选课信息时,会显示所有的课程信息,包括课程编号、课程名称和状态。如果该门课可选,则会在状态列里显示选择按钮,当用户点击选择按钮之后则会显示已选提醒用户该门课已经选择了。显示如下:图4.5登陆页面当用户在进入系统之前,进入登陆界面,会看到如下页面:图4.6用户需要输入用户名、密码,选择身份,才能点击登陆按钮进行登陆,而且要求密码长度在6-10位之间。如果三个中有一个没有输入或者选择,则会通过javascript弹出一个对话框,提醒用户输入完整。相关实现的代码如下:<scriptlanguage="javascript"> functioncheckForm(){ varuser=document.myForm.username.value; if(user==""){ alert("用户名不能为空!"); document.myForm.username.focus(); returnfalse; } varpwd=document.myForm.userpwd.value; if((pwd.length<6)||(pwd.length>10)){ alert("密码长度在6到10位之间!"); returnfalse; } varsf=document.myForm.usersf; varflag=false; for(vari=0;i<sf.length;i++){ if(sf[i].checked) flag=true; } if(!flag){ alert("身份不能为空!"); returnfalse; } } </script>如果用户全部填写,就会将表单信息提交到服务器loginProc.jsp程序进行相关处理。程序会根据用户选择的身份,进入相关的数据库进行身份比对,判断用户名和密码是否一致。如果用户名或密码有一个不正确,则会跳转到登陆错误界面,如下图:图4.7如果用户名和密码都正确,则会跳转到响应身份吧的主页面。程序判定代码如下:while(rs.next()){ if(rs.getString("num").equals(name)) flag=true; } if(flag){ sql="selectpasswordfromstudentwherenum=?"; pstm=conn.prepareStatement(sql); pstm.setString(1,name); rs=pstm.executeQuery(); while(rs.next()){ tpwd=rs.getString("password"); } if(tpwd.equals(pwd)){ Cookiecookie1=newCookie("userName",name); Cookiecookie2=newCookie("userPwd",pwd); cookie1.setMaxAge(60*60); cookie2.setMaxAge(60*60); response.addCookie(cookie1); response.addCookie(cookie2); session.setAttribute("username",name); response.sendRedirect("student/student.jsp"); }else response.sendRedirect("error.html");4.2系统实现过程中遇到的主要疑难问题和解决方案问题一:课程信息管理的主模块显示不出来。解决方案:sql语句错误,没有考虑表之间的关联,当查询包含外键的表时应该将关联字段与主键值进行连接。问题二:在各分功能进行删除和编辑时,因为数据库各表之间的关联性,无法对其直接操作。解决方案:在进行删除和编辑前,要对其外键先进行操作,再对其本身进行操作。问题三:修改课程信息时,修改后的信息无法保存;解决方案:PreparedStatement对象必须使用占位符,不能直接传递变量值。问题四:进行分页时已经将代码完全拷贝进去了,可是提交时还是出现“只进结果集不支持请求的操作”的错误:解决方案:Statementstm=conn.createStatement();传递一个参数“ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY”,问题就解决了。问题五:界面布局不合理,不美观;解决方案:熟悉diV的使用,给需要修改样式的元素套一个diV,通过css对布局进行修改和美化;然后借鉴合肥学院的教务管理系统的UI,我们对其进行了截图和参考,然后完善了自己的页面布局。4.3系统实现的特色之处(包括技术和功能)系统的基本功能都是平时课堂中学习的内容,主要就是添加了分页功能。我们在UI设计上,参照了合肥学院的教务管理系统,对于常规的界面进行了简单的美化。4.4系统测试进行多次试验,将数据库中已有的信息进行修改,观察数据库中的值是否有改变;登陆时输入错误信息,观察是否能登陆到页面。总体测试方案就是多次试验观察结果。基本功能可以实现。五、总结5.1不足(1)数据库设计不合理,导致后序程序开发总是在不断的修改,这样可能导致系统产生更多的安全隐患,对系统的整体开发很不利。(2)界面功能单一,只是实现了课程设计中老师要求的内容,没有对其进行扩充,只是简单的增删改查。(3)因为课程设计任务书表达不明确,再加上我们团队对其理解和人物树有出入,系统没有管理员的角色,将管理员的所有功能合并到了教师角色中,可能会对用户使用上造成不便。5.2总结作为本小组的组长,我较称职的完成了我的工作,在缺少一人的情况下,我们3位成员较成功的完成了5人题。从开始的系统分析与功能设计到分工再到整合最后在一起调试BUG等,我们3位成员一起成长,虽然过程中有许多磕磕绊绊,但是在我们的努力下全都一一克服了。课程设计这段时间使我对web有了更深层次的了解,以前在浏览网页时,觉得它是一个很神秘的东西,好像很难做出来;上第一堂课时,我非常不相信张老师说的“等我们上完这学期后大家都能做出这些网页”这句话。但是通过这段时间的实践,我也可以做出这些网页了,虽然我现在的技术不是很精细,做出来的网页也不够美观,功能可能也比较简单,但是我还是很开心,毕竟我在往前走,我在进步。在课程设计中我遇到很多问题,首先是数据库设计的问题。在没有真正开始编代码的时候,我们只是简单的设计了一下数据库,并没有深入的考虑当我们真正开发起来那些表之间应该有什么关系,只是按照任务书中直白的书面要求,对应的建了十几个表,可是当我们实际开发时,慢慢发现问题很多,只能一点一点的去补救,所以我现在很明确一点,就是以后做课程设计的时候一定要花足够的时间设计出一个合理完善的数据库。除此之外,这两周的时间让我对web知识理解的更深一些,因为系统需要我们将平时学到的所有知识融会贯通,同时善于利用身边的资源,有不懂的问题可以向老师或同学请教,也可以通过网络获得我们想要的知识。就像这次课程设计,我了解到了分页的方法,虽然不能解释分页每一行代码的意思,但是大致明白是怎么用的。当然我的能力还是很有限的,通过这次的课程设计,我大致明确了以后的任务,要好好学习java和javaEE。对于问题不仅要知道其然,还要知道其所以然。参考文献[1]邹建.深入浅出--SQLSERVER2005开发、管理与应用实例.人民邮电出版社,2008年.[2]樊月华.Web技术应用基础.清华大学出版社,2013年.[3]飞思科技产品研发著:JSP应用开发详解(第二版),电子工业出版社,2004年.[4]张洪伟著:TomcatWeb开发及整合应用,清华大学出版社,2006年.[5]陈刚著:Eclipse从入门到精通(第2版),清华大学出版社,2007年.[6]史济民等著:软件工程—原理、方法与应用(第3版),高等教育出版社,2013年.[7]朱福喜著:面向对象与Java程序设计,清华大学出版社,2011年.[8]郑人杰等著:软件测试,人民邮电出版社,2014年.[9]赵彦著:JavaEE框架技术进阶式教程,清华大学出版社,2014年.[10]耿祥义著:Java课程报告,清华大学出版社,2013年.[11]肖磊等著:Java实用教程,人民邮电出版社,2013年.附录1、index.jsp<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><basehref="<%=basePath%>"><title>MyJSP'index.jsp'startingpage</title> <metahttp-equiv="pragma"content="no-cache"> <metahttp-equiv="cache-control"content="no-cache"> <metahttp-equiv="expires"content="0"> <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"> <metahttp-equiv="description"content="Thisismypage"> <!-- <linkrel="stylesheet"type="text/css"href="styles.css"> --></head><body>ThisismyJSPpage.<br></body></html>2、login.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"""><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>欢迎使用课程管理系统</title><linkhref="css/login.css"rel="stylesheet"/> <scriptlanguage="javascript"> functioncheckForm(){ varuser=document.myForm.username.value; if(user==""){ alert("用户名不能为空!"); document.myForm.username.focus(); returnfalse; } varpwd=document.myForm.userpwd.value; if((pwd.length<6)||(pwd.length>10)){ alert("密码长度在6到10位之间!"); returnfalse; } varsf=document.myForm.usersf; varflag=false; for(vari=0;i<sf.length;i++){ if(sf[i].checked) flag=true; } if(!flag){ alert("身份不能为空!"); returnfalse; } } </script></head><body><% StringloginUserName="",loginUserPwd=""; Cookie[]cookies=request.getCookies(); if(cookies!=null){ intlen=cookies.length; for(inti=0;i<len;i++){ Cookiecookie1=cookies[i]; if(cookie1.getName().equals("userName")) loginUserName=cookie1.getValue(); elseif(cookie1.getName().equals("userPwd")) loginUserPwd=cookie1.getValue(); } }%> <divclass="outer"> <divclass="inner"> <formaction="loginProc.jsp"method="post"name="myForm"onsubmit="returncheckForm();"> <table> <tr> <tdheight="36px"class="size">用户名:</td> <td><inputtype="text"name="username"value="<%=loginUserName%>"/></td> </tr> <tr> <tdheight="36px"class="size">密 码:</td> <td><inputtype="password"name="userpwd"value="<%=loginUserPwd%>"/></td> </tr> <tr> <tdheight="36px"colspan="2"> <centerclass="size"> <inputtype="radio"name="usersf"value="xs"/>学生 <inputtype="radio"name="usersf"value="js"/>教师 </center> </td> </tr> <tr> <tdheight="36px"colspan="2"align="center"> <inputtype="submit"value=""class="button1"/> <inputtype="reset"value=""class="button2"/> </td> </tr> </table> </form> </div> </div></body></html>3、loginProc.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"import="java.sql.*"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"""><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>用户名密码审核</title></head><body> <% Connectionconn=null; PreparedStatementpstm=null; ResultSetrs=null; Stringtpwd=null; Stringname=request.getParameter("username"); Stringpwd=request.getParameter("userpwd"); Stringsf=request.getParameter("usersf"); booleanflag=false; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Stringurl="jdbc:sqlserver://localhost:1433;databasename=kcglxt"; conn=DriverManager.getConnection(url,"sa","123456"); if(sf.equals("xs")) { Stringsql="selectnumfromstudentwherenumin(selectstudentnumfromchoose)"; pstm=conn.prepareStatement(sql); rs=pstm.executeQuery(); while(rs.next()){ if(rs.getString("num").equals(name)) flag=true; } if(flag){ sql="selectpasswordfromstudentwherenum=?"; pstm=conn.prepareStatement(sql); pstm.setString(1,name); rs=pstm.executeQuery(); while(rs.next()){ tpwd=rs.getString("password"); } if(tpwd.equals(pwd)){ Cookiecookie1=newCookie("userName",name); Cookiecookie2=newCookie("userPwd",pwd); cookie1.setMaxAge(60*60); cookie2.setMaxAge(60*60); response.addCookie(cookie1); response.addCookie(cookie2); session.setAttribute("username",name); response.sendRedirect("student/student.jsp"); }else response.sendRedirect("error.html"); } else response.sendRedirect("error.html"); } elseif(sf.equals("js")) { Stringsql="selectnumfromteacher"; pstm=conn.prepareStatement(sql); rs=pstm.executeQuery(); while(rs.next()){ if(rs.getString("num").equals(name)) flag=true; } if(flag){ sql="selectpasswordfromteacherwherenum=?"; pstm=conn.prepareStatement(sql); pstm.setString(1,name); rs=pstm.executeQuery(); while(rs.next()){ tpwd=rs.getString("password"); } if(tpwd.equals(pwd)){ Cookiecookie1=newCookie("userName",name); Cookiecookie2=newCookie("userPwd",pwd); cookie1.setMaxAge(60*60); cookie2.setMaxAge(60*60); response.addCookie(cookie1); response.addCookie(cookie2); session.setAttribute("username",name); response.sendRedirect("teacher/teacher.jsp"); }else response.sendRedirect("error.html"); }else response.sendRedirect("error.html"); }%></body></html>4、std_cf.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"import="java.sql.*"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"""><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>课程管理系统——查分</title><linkhref="../css/std.css"rel="stylesheet"/></head><body> <% Connectionconn=null; PreparedStatementpstm=null; ResultSetrs=null; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Stringurl="jdbc:sqlserver://localhost:1433;databasename=kcglxt"; conn=DriverManager.getConnection(url,"sa","123456"); Stringid=(String)session.getAttribute("username"); Stringname=(String)session.getAttribute("name"); Stringsql="select,gradefromcourse,choosewherestudentnum=?andcoursenum=course.num"; pstm=conn.prepareStatement(sql); pstm.setString(1,id); rs=pstm.executeQuery(); %><divclass="bg"> <divclass="div1"> <tableclass="size"> <tr> <tdwidth="95px"align="center"><ahref="std_grxx.jsp">个人信息</a></td> <tdwidth="95px"align="center"><ahref="std_kcxx.jsp">课程信息</a></td> <tdwidth="95px"align="center"><ahref="std_xk.jsp">选 课</a></td> <tdwidth="113px"align="center"><ahref="std_cf.jsp">查 分</a></td> <tdwidth="95px"align="center"><ahref="student.jsp">返回首页</a></td> </tr> </table> </div> <divclass="div2"> 当前位置——查分 </div> <divclass="div3"> 欢迎您:<%=id%> <%=name%> <ahref="../login.jsp">注销</a> <ahref="std_xgmm.jsp">修改密码</a> </div> <divclass="div4"> <tablestyle="color:#11449E"bgcolor="#F2F6FB"border="3"cellpadding="8"cellspacing="3"bordercolor="#C8DEFC"> <tr> <th>课程名</th> <th>成绩</th> </tr> <%while(rs.next()){%> <tr> <td><%=rs.getString("name")%></td> <%if(rs.getString("grade")==null){%> <td>未录入</td> <%}else{%> <td><%=rs.getString("grade")%></td> <%}%> </tr> <%}%> </table> <inputstyle="color:#11449E;background-color:#F2F6FB;border:solid#99B9E21px;cursor:pointer;"type="button"value="打印成绩"onclick="window.print();"/> </div></div><% conn.close(); pstm.close(); rs.close();%></body></html>5、std_grxx.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"import="java.sql.*"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"""><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>课程管理系统——个人信息</title><linkhref="../css/std.css"rel="stylesheet"/></head><body> <% Connectionconn=null; PreparedStatementpstm1=null; PreparedStatementpstm2=null; ResultSetrs1=null; ResultSetrs2=null; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Stringurl="jdbc:sqlserver://localhost:1433;databasename=kcglxt"; conn=DriverManager.getConnection(url,"sa","123456"); Stringid=(String)session.getAttribute("username"); Stringname=(String)session.getAttribute("name"); Stringsql1="select*fromstudentwherenum=?"; Stringsql2="selectnamefromclasswherenum=(selectclassfromstudentwherenum=?)"; pstm1=conn.prepareStatement(sql1); pstm1.setString(1,id); rs1=pstm1.executeQuery(); pstm2=conn.prepareStatement(sql2); pstm2.setString(1,id); rs2=pstm2.executeQuery(); rs1.next(); rs2.next(); %><divclass="bg"> <divclass="div1"> <tableclass="size"> <tr> <tdwidth="95px"align="center"><ahref="std_grxx.jsp">个人信息</a></td> <tdwidth="95px"align="center"><ahref="std_kcxx.jsp">课程信息</a></td> <tdwidth="95px"align="center"><ahref="std_xk.jsp">选 课</a></td> <tdwidth="113px"align="center"><ahref="std_cf.jsp">查 分</a></td> <tdwidth="95px"align="center"><ahref="student.jsp">返回首页</a></td> </tr> </table> </div> <divclass="div2"> 当前位置——个人信息 </div> <divclass="div3"> 欢迎您:<%=id%> <%=name%> <ahref="../login.jsp">注销</a> <ahref="std_xgmm.jsp">修改密码</a> </div> <divclass="div4"> <tablestyle="color:#11449E"bgcolor="#F2F6FB"border="3"cellpadding="8"cellspacing="3"bordercolor="#C8DEFC"> <tr> <th>学号</th> <th>姓名</th> <th>性别</th> <th>出生日期</th> <th>籍贯</th> <th>民族</th> <th>班级</th> </tr> <tr> <td><%=rs1.getString("num")%></td> <td><%=rs1.getString("name")%></td> <td><%=rs1.getString("sex")%></td> <td><%=rs1.getString("birth")%></td> <td><%=rs1.getString("jg")%></td> <td><%=rs1.getString("mz")%></td> <td><%=rs2.getString("name")%></td> </tr> </table> </div></div><% conn.close(); pstm1.close();pstm2.close(); rs1.close();rs2.close();%></body></html>6、std_kcxx.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"import="java.sql.*"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"""><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>课程管理系统——课程信息</title> <scriptlanguage="javascript"> functionbtnDelete(num){ if(confirm("你确认删除吗?")){ alert("删除成功!"); location.href="std_kcxxProc.jsp?num="+num; } } </script><linkhref="../css/std.css"rel="stylesheet"/></head><body> <% Connectionconn=null; PreparedStatementpstm=null; ResultSetrs=null; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Stringurl="jdbc:sqlserver://localhost:1433;databasename=kcglxt"; conn=DriverManager.getConnection(url,"sa","123456"); Stringid=(String)session.getAttribute("username"); Stringname=(String)session.getAttribute("name"); Stringsql="select*fromcoursewherecourse.numin(selectcoursenumfromchoosewherestudentnum=?)"; pstm=conn.prepareStatement(sql); pstm.setString(1,id); rs=pstm.executeQuery(); %><divclass="bg"> <divclass="div1"> <tableclass="size"> <tr> <tdwidth="95px"align="center"><ahref="std_grxx.jsp">个人信息</a></td> <tdwidth="95px"align="center"><ahref="std_kcxx.jsp">课程信息</a></td> <tdwidth="95px"align="center"><ahref="std_xk.jsp">选 课</a></td> <tdwidth="113px"align="center"><ahref="std_cf.jsp">查 分</a></td> <tdwidth="95px"align="center"><ahref="student.jsp">返回首页</a></td> </tr> </table> </div> <divclass="div2"> 当前位置——课程信息 </div> <divclass="div3"> 欢迎您:<%=id%> <%=name%> <ahref="../login.jsp">注销</a> <ahref="std_xgmm.jsp">修改密码</a> </div> <divclass="div4"> <tablestyle="color:#11449E"bgcolor="#F2F6FB"border="3"cellpadding="8"cellspacing="3"bordercolor="#C8DEFC"> <tr> <th>课程编号</th> <th>课程名</th> <th>学时</th> <th>学分</th> <th>课程类别</th> <th>开始时间</th> <th>结束时间</th> <th>教室</th> <th>教师</th> <th>总人数</th> <th>当前人数</th> <th>状态</th> <th>操作</th> </tr> <%while(rs.next()){%> <tr> <td><%=rs.getString("num")%></td> <td><%=rs.getString("name")%></td> <td><%=rs.getString("time")%></td> <td><%=rs.getString("score")%></td> <td><%=rs.getString("style")%></td> <td><%=rs.getString("starttime")%></td> <td><%=rs.getString("endtime")%></td> <td><%=rs.getString("classroom")%></td> <td><%=rs.getString("teacher")%></td> <td><%=rs.getString("allamount")%></td> <td><%=rs.getString("nowamount")%></td> <td><%=rs.getString("condition")%></td> <td><ahref="javascript:btnDelete('<%=rs.getString("num")%>')">删除</a></td> </tr> <%}%> </table> <inputstyle="color:#11449E;background-color:#F2F6FB;border:solid#99B9E21px;cursor:pointer;"type="button"value="打印课程表"onclick="window.print();"/> </div></div><% conn.close(); pstm.close(); rs.close();%></body></html>7、std_kcxxProc.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"import="java.sql.*"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"""><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title></title></head><body> <% Connectionconn=null; PreparedStatementpstm=null; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Stringurl="jdbc:sqlserver://localhost:1433;databasename=kcglxt"; conn=DriverManager.getConnection(url,"sa","123456"); Stringnum=request.getParameter("num"); Stringsql="deletefromchoosewherecoursenum=?"; pstm=conn.prepareStatement(sql); pstm.setString(1,num); pstm.executeUpdate(); sql="updatecoursesetnowamount=nowamount-1wherenum=?"; pstm=conn.prepareStatement(sql); pstm.setString(1,num); pstm.executeUpdate(); response.sendRedirect("std_kcxx.jsp"); %></body></html>8、std_xgmm.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"""><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Inserttitlehere</title><linkhref="../css/std.css"rel="stylesheet"/><scriptlanguage="javascript"> functioncheckForm1(){ varuser=document.myForm1.username.value; if(user==""){ alert("用户名不能为空!"); document.myForm1.username.focus(); returnfalse; } varpwd=document.myForm1.oldmima.value; if((pwd.length<6)||(pwd.length>10)){ alert("密码长度在6到10位之间!"); returnfalse; } varpwd1=parseInt(document.myForm1.newmima.value); varpwd2=parseInt(document.myForm1.newmima1.value); if(pwd1!=pwd2) { alert("两次输入的密码不相同!"); returnfalse; } } </script></head><body><divclass="bg"> <divclass="div1"> <tableclass="size"> <tr> <tdwidth="95px"align="center"><ahref="std_grxx.jsp">个人信息</a></td> <tdwidth="95px"align="center"><ahref="std_kcxx.jsp">课程信息</a></td> <tdwidth="95px"align="center"><ahref="std_xk.jsp">选 课</a></td> <tdwidth="113px"align="center"><ahref="std_cf.jsp">查 分</a></td> <tdwidth="95px"align="center"><ahref="student.jsp">返回首页</a></td> </tr> </table> </div> <divclass="div2"> 当前位置——修改密码 </div> <divclass="div3"> 欢迎您:<%=(String)session.getAttribute("username")%> <%=(String)session.getAttribute("name")%> <ahref="../login.jsp">注销</a> </div> <divclass="div4"> <formaction="std_xgmmProc.jsp"method="post"name="myForm1"onsubmit="returncheckForm1();"> <tablestyle="color:#11449E"bgcolor="#F2F6FB"border="3"cellpadding="8"cellspacing="3"bordercolor="#C8DEFC"> <tr> <thcolspan="2">修改密码</th> </tr> <tr> <tdalign="center">用户名:</td> <td><inputtype="text"name="username"value=""/></td> </tr> <tr> <tdalign="center">原密码:</td> <td><inputtype="password"name="oldmima"value=""/></td> </tr> <tr> <tdalign="center">新密码:</td> <td><inputtype="password"name="newmima"/></td> </tr> <tr> <tdalign="center">确认密码:</td> <td><inputtype="password"name="newmima1"/></td> </tr> <tr> <tdcolspan="2"align="center"> <inputtype="submit"value="确定"/> <inputtype="reset"value="重置"/> </td> </tr> </table> </form> </div></div></body></html>9、std_xgmmProc.jsp<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"import="java.sql.*"%><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><basehref="<%=basePath%>"><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>MyJSP'xgmmProc.jsp'startingpage</title> <metahttp-equiv="pragma"content="no-cache"> <metahttp-equiv="cache-control"content="no-cache"> <metahttp-equiv="expires"content="0"> <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"> <metahttp-equiv="description"content="Thisismypage"> <!-- <linkrel="stylesheet"type="text/css"href="styles.css"> --></head><body><% request.setCharacterEncoding("utf-8"); Connectionconn=null; PreparedStatementpstm=null; ResultSetrs=null; Stringtpwd=null; PreparedStatementpstm2=null; Stringname=request.getParameter("username"); Stringpwd=request.getParameter("oldmima"); Stringnpwd=request.getParameter("newmima"); Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Stringurl="jdbc:sqlserver://localhost:1433;databasename=kcglxt"; conn=DriverManager.getConnection(url,"sa","123456"); Stringsql="selectpasswordfromstudentwherenum=?"; Stringsql1="updatestudentsetpassword=?wherenum=?"; pstm=conn.prepareStatement(sql); pstm.setString(1,name); pstm2=conn.prepareStatement(sql1); pstm2.setString(1,npwd); pstm2.setString(2,name); rs=pstm.executeQuery(); while(rs.next()){ tpwd=rs.getString("password"); } if(tpwd.equals(pwd)){ pstm2.executeUpdate(); } else response.sendRedirect("error.html"); response.sendRedirect("student.jsp"); %></body></html>10、std_xk.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"import="java.sql.*"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"""><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>课程管理系统——选课</title><linkhref="../css/std.css"rel="stylesheet"/></head><body> <% Connectionconn=null; PreparedStatementpstm1=null; PreparedStatementpstm2=null; ResultSetrs1=null; ResultSetrs2=null; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Stringurl="jdbc:sqlserver://localhost:1433;databasename=kcglxt"; conn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 度农业供应链合同:农副产品
- 度工程借款合同范本
- 设计公司内部培训合同样本
- 标准劳动合同模板合同
- 委托代理合同(公民类)范本
- 饰品定制合同范本
- 短期租赁合同格式
- 地下车库车位承包合同转让协议
- 设备定期保养合同范文
- 大学生创新创业项目合同
- 学校装饰装修工程施工方案
- 2025届东方电气集团校园招聘正式开启笔试参考题库附带答案详解
- 第一单元第2课《生活之美》课件-七年级美术下册(人教版)
- 第2课唐朝建立与“贞观之治”课件-七年级历史下册(统编版)
- 智研咨询发布:2025年中国减速器行业市场现状及投资前景分析报告
- 2025年七下道德与法治教材习题答案
- 部编2024版历史七年级下册第二单元第12课《宋元时期经济的繁荣》检测卷
- 家政服务员(母婴护理员)五级模拟试题及答案
- 2024-2025学年七年级历史下册 13 宋元时期的科技与中外交通说课稿 新人教版
- 2025年湖北省宏泰国有资本投资运营集团有限公司招聘笔试参考题库附带答案详解
- 夜景照明吊绳施工方案
评论
0/150
提交评论