jsp课程设计学生管理系统_第1页
jsp课程设计学生管理系统_第2页
jsp课程设计学生管理系统_第3页
jsp课程设计学生管理系统_第4页
jsp课程设计学生管理系统_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计报告课程: jsp 学号: : 班级: 教师: 徐州师范大学电脑科学与技术学院课程设计任务书姓 名 学 号 班 级 课程名称数据库系统概论课程性质课程设计同组成员 分工学生选课操作、教师管理操作两部分功能的实现设计时间 设计名称学生选课管理信息系统的设计与实现设计要求系统功能基本要求:教师信息,包括教师编号、教师、性别、年龄、学历、职称、毕业院校,健康状况等。学生信息,包括学号、所属院系、已选课情况等。教室信息,包括,可容纳人数、空闲时间等。选课信息,包括课程编号、课程名称、任课教师、选课的学生情况等。成绩信息,包括课程编号、课程名称、学分、成绩。按一定条件可以查询,并将结果打印输出。

2、设计思路与设计过程设计思路:,本系统结合数据库和JSP编程实现了学生选课管理系统。学生选课管理系统分为三个子模块:第一模块是学生选课的页面操作,包括个人信息,密码修改,查询成绩,选课,退选五个功能;第二模块是教师操作页面,包含个人信息,密码修改,录入成绩,查询选课情况,查看教室信息;第三模块是管理员,包含学生信息管理增加、修改、删除、查询,教师信息管理增加、修改、删除、查询,管理员信息管理增加、修改、删除、查询。计划与进度构思整个系统的框架,在数据库中建表主要对学生选课的一些操作进行jsp编码主要对教师的相关操作进行jsp编码整合整个实验,并进行修改写课程设计的报告任课教师意 见说 明学生选课

3、管理系统一系统需求分析学生选课系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。随着科学技术的不断提高,电脑科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为电脑应用的一部分,使用电脑对选课信息进行管理,有着手工管理所无法比拟的优点。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。 因此,开发这样一套软件成为很有必要的事情,在下面的各章中我们将以开发一套学生选课系统为例,谈谈其开发过程和所涉及到的问题及解决方

4、法。 本实验实现的学生选课管理系统主要包括以下功能:1完成数据的录入和修改,并提交数据库保存。其中的数据包括:学生信息、课程设置、学生成绩以及操作员信息等; 2.设计实现学生信息查询,选课管理、退选管理、分数查询,课程的浏览教师信息查询、教室空闲时间查询等JSP页面 。 3具备一定的安全性管理功能。包括操作员的权限设置、修改密码设置、注销和等功能。二系统总概括本系统结合数据库和JSP编程实现了学生选课管理系统。学生选课管理系统分为三个子模块:第一模块是学生选课的页面操作,包括个人信息,密码修改,查询成绩,选课,退选五个功能;第二模块是教师操作页面,包含个人信息,密码修改,录入成绩,查询选课情况

5、,查看教室信息;第三模块是管理员,包含学生信息管理增加、修改、删除、查询,教师信息管理增加、修改、删除、查询,管理员信息管理增加、修改、删除、查询。学生选课教师管理管理员学生选课管理系统图1 系统的功能模块图2数据库设计数据库概念结构设计本系统主要有三个实体,其中有学生和课程两个实体集,一个学生可以选修假设干门课程,一门课程也可以被多个学生选修,这两个实体集之间是多对多联系,还有教师和课程两个实体,一个老师可以教授假设干门课程,一门课程却只能有一个老师教授,这两个实体集之间是一对多联系。通过选课成绩将老师和学生联系在一起。为保证系统的安全性,设置了操作员这一实体集,用来存放合法用户的编号、密码

6、。本系统的E-R图如下:学生学号密码院系性别 地址选修成绩课程教授教师编 编号毕业院校健康状况学历密码院系年龄性别职称MNM1编 课程号编 课程名编 教师号编 学分编 学时编 地点编 总人数编 已选数编 院系管理员编号密码图2 系统的E-R图数据库逻辑结构设计根据关系模型的转换原则,上面的ER图可转换为如下所示的关系模型:student(sId,sName,sPass,dId)含义分别为:学生学号,,密码,所在系的编号stuDetailuserID,userSex,userMobil,useraddress含义分别为:学生信息学号,性别, ,地址 teachertId,tPame,tPass,

7、dId含义分别为:教师学号,,密码,所在系的编号teaDetailuserID,userSex,userAge,useredu,usertitle,usersch,userhealth含义分别为:教师信息学号,性别,年龄,学历,职称,毕业院校,健康状况course(cId,cName,tId,credit,period,cPlace,cNumall,cNum,dId)含义分别为:课程课程号,名称,教师号,学分,学时,上课地点,总人数,已选人数,院系号choosecourse(cId,sId, Grade)含义分别为:选修学号,课程代码,成绩roomroomname,roomnum,roomti

8、me含义分别为:教室教室名,容纳人数,空闲时间admin(aId,aPass)含义分别为:管理员管理员编号, departmentdId,dName含义分别为:院系院系编号,院系名 根据上面的E-R图设计及关系模型的设计,得出数据表的设计,在本系统中主要的数据表如下:表1 学生表Student的表结构主码列 名数据类型宽度小数位空否备 注PksIdChar10 N学号 sNameChar20 Y sPassChar2 Y密码 dIdChar20 Y所在系号表2 学生信息表StuDetail的表结构主码列 名数据类型宽度小数位

9、空否备 注PkuserIDChar10 N学号 userSexChar10 Y性别 userMobilChar30 Y  userAddressChar50 Y地址表3 教师表teacher的表结构主码列 名数据类型宽度空否备 注PktIdChar10N编号 tNameChar20Y tPassChar2Y密码 dIdChar20Y所在系号表4 教师信息表teadetail的表结构主码列 名数据类型宽度空否备 注PkuserIDChar10N学号 userSexChar10Y性别

10、60;userAgeChar50Y  usereduChar30Y学历usertitleChar30Y职称userschChar30Y毕业院校 UserhealthChar50Y健康状况表5 课程信息表Course的表结构主码列 名数据类型宽度空否备 注PkcIdChar10N课程号 coNameChar20Y课程名称 tIdChar10Y教师号 creditChar8Y学分periodChar8Y学时cPlaceChar10Y上课地点cNumAllChar4Y总人数cNumChar4Y已选人数dIdChar10Y院系号表6 选课成绩表choosecou

11、rse的表结构主码列 名数据类型宽度空否备 注PkcIdChar5N课程代码sIdChar3N学号 gradeDecimal5Y成绩表7 教室信息表room的表结构主码列 名数据类型宽度空否备 注PkroomnameChar10N教室名roomnumChar10N容纳人数 roomtimeChar10Y空闲时间 表8 管理员表admin的表结构主码列 名数据类型宽度空否备 注PkaIdChar10N管理员编号 aPassChar10Y管理员 表9 院系表department的表结构主码列 名数据类型宽度空否备 注PkdIdChar10N院系号 dName

12、Char10Y院系名下面在系统实施阶段就可以物理实现数据库了,本系统使用前面实验已经建好的服务器端SQL Server数据库xuanke,具体创建方法见前面实验。三系统实现本实验是用JSP结合数据库实现的,其中包含了三个主页面,一是学生登录页面,二是教师登录页面,三是管理员登录页面。其中每个页面中都会有菜单进行相应的操作。3.1 JSP文件代表的操作(1)主界面操作:Index.jsp/登录界面包含学生、教师、管理员三个选项Login.jsp/密码验证(2)学生选课 (a)学生选课界面:student.jps/菜单显示studentIndex.html/欢送界面studentMessage.j

13、sp (b)个人信息:studMessSel.jsp/个人信息的页面显示 (c)密码修改:stuM.jsp/在数据库中修改密码 stuMessMod.jsp/修改密码界面 stuMessModSuc.jsp/修改成功(3)教师管理 (a)教师管理界面teacherIndex.html/欢送界面teacherMessage.jsp (b)个人信息:teacherMessSel.jsp/个人信息的页面显示 (c)密码修改:teacherM.jsp/在数据库中修改密码 teacherMod.jsp/修改密码界面 teaMessModSuc.jsp/修改成功3.2 数据库的连接举例:验证用户类型和密码

14、时的数据库连接<body><%String name=(String)request.getParameter("username");String pass=(String)request.getParameter("userpass");String s=(String)request.getParameter("userselect");Connection conn=null;Statement stmt=null;ResultSet rs=null;String loginNum="0"

15、session.setAttribute("lnum",loginNum);tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");conn=DriverManager.getConnection("jdbc:odbc:xk","sa","");if(s.equals("1")String sql="select * from student where sId='"+name+"' an

16、d sPass='"+pass+"'"stmt=conn.createStatement();rs=stmt.executeQuery(sql);if(rs.next() loginNum="1"session.setAttribute("lnum",loginNum);session.setAttribute("name",name);out.print(name+"登陆成功,页面跳转.");response.sendRedirect("student/st

17、udentIndex.html");else out.print("用户名或密码有误.");response.sendRedirect("index.jsp");if(s.equals("2")String sql="select * from teacher where tId='"+name+"' and tPass='"+pass+"'"stmt=conn.createStatement();rs=stmt.executeQue

18、ry(sql);if(rs.next() loginNum="2"session.setAttribute("lnum",loginNum);session.setAttribute("name",name);out.print(name+"登陆成功,页面跳转.");response.sendRedirect("teacher/teacherIndex.html");else out.print("用户名或密码有误.");response.sendRedirect("

19、;index.jsp"); if(s.equals("3")String sql="select * from admin where aId='"+name+"' and aPass='"+pass+"'"stmt=conn.createStatement();rs=stmt.executeQuery(sql);if(rs.next()loginNum="3"session.setAttribute("lnum",loginNum)

20、;session.setAttribute("name",name);out.print("管理员"+name+"登陆成功,页面跳转.");response.sendRedirect("admin/adminIndex.html");elseout.print("用户名或密码有误.");out.print("<a href=index.jsp>登陆页面</a>");catch(Exception e)out.print(e);/response.sen

21、dRedirect("index.jsp");%></body>3.3 具体操作(1)学生选课操作(a)登录页面图1.1 学生登录页面主要代码:<body><form name="loginform" method="post" action="login.jsp"><br><br><br><br><table width="500" height="150" border=&qu

22、ot;0" align="center"> <tr> <td align="center"><font size="5" color="#FFFFFF">欢送您使用学生选课系统</font></td> </tr> <tr></table><table width="294" border="0" align="center"> <

23、;tr> <td colspan="3">&nbsp;</td> </tr> <tr> <td width="79">用户名:</td> <td width="148"><input name="username" type="text" size="20" size="20" maxlength="30"></td>

24、; <td width="53" rowspan="2"><img src="image/logo_img.gif" width="37" height="40" onClick="loginclick()"> </td> </tr> <tr> <td>密码:</td> <td><input name="userpass" type="passw

25、ord" size="20" size="20" maxlength="30"> </td> </tr> <tr> <td>用户类型:</td> <td> <select name="userselect"> <option value="1" selected>学生</option> <option value="2">教师</opt

26、ion> <option value="3">管理员</option> </select> </td> <td>&nbsp;</td> </tr></table></form></body>(b)菜单操作图1.2 学生选课系统的界面主要代码:<table width="100%" border="0" cellpadding="0" cellspacing="1&qu

27、ot; bgcolor="#000000"> <tr> <td height="40" align="center" bgcolor="#00509F"><div align="center"><font color="#FFFFFF" size="4">学生选课系统</font></div></td> </tr> <tr> <td he

28、ight="40" align="center" bgcolor="#FFFFFF"><div align="left"><img src="image/index_01.gif" width="20" height="17"><a href="studMessSel.jsp" target="rightFrame"><font color="#0000FF&

29、quot; size="3">个人信息</font></a></div></td> </tr> <tr> <td height="40" align="center" bgcolor="#FFFFFF"><div align="left"><img src="image/index_01.gif" width="20" height="17

30、"><a href="stuMessMod.jsp" target="rightFrame"><font color="#0000FF" size="3">密码修改</font></a></div></td> </tr> <tr> <td height="40" align="center" bgcolor="#FFFFFF"><

31、;div align="left"><img src="image/index_01.gif" width="20" height="17"><a href="gradeSelect.jsp" target="rightFrame"><font color="#0000FF"size="3" >成绩查询</font></a></div></td>

32、</tr> <tr> <td height="40" align="center" bgcolor="#FFFFFF"><div align="left"><img src="image/index_01.gif" width="20" height="17"><a href="courseSelect.jsp" target="rightFrame"

33、><font color="#0000FF"size="3" >选课查询以及退选</font></a></div></td> </tr> <tr> <td height="40" align="center" bgcolor="#FFFFFF"><div align="left"><img src="image/index_01.gif"

34、 width="20" height="17"><a href="choosecourse.jsp" target="rightFrame"><font color="#0000FF" size="3">选课</font></a></div></td> </tr> <tr> <td height="40" align="center&quo

35、t; bgcolor="#FFFFFF"><div align="left"><img src="image/index_01.gif" width="20" height="17"><a href="zhuxiao.jsp" target="_top"><font color="#0000FF" size="3">注销</font></a>

36、;</div></td> </tr></table>(c)个人信息显示学生进入后可以在菜单里进行相应的操作,点击个人信息时,就会出现该学生的信息.如下列图所示:图1.2 学生信息显示的界面主要代码:从数据库中读出相应的信息:tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");conn=DriverManager.getConnection("jdbc:odbc:xk","sa","");String sql="s

37、elect * from student where student.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");String sql1="select * from

38、 stuDetail where userID ='"+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");Connection connd=null;St

39、atement stmtd=null;ResultSet rsd=null;connd=DriverManager.getConnection("jdbc:odbc:xk","sa","");stmtd=connd.createStatement();rsd=stmtd.executeQuery("select dName from department where dId='"+dId+"'");if(rsd.next()dName=rsd.getString("dN

40、ame");catch(Exception e)out.println(e);%> <form name="form1" method="post"><table width="350" border="0" align="center" cellpadding="0" cellspacing="2" class="border"> <td height="25" ali

41、gn="center"><strong><font size="5" color="#FFFFFF" >学生个人信息</font></strong></td></table><table border="10" align="center" width="500" height="150"> <tr> <Td width="60"

42、> <fontsize="4" color="#FFFFFF">学号</font></Td><td width="100"> <fontsize="3" color="#FFFFFF"><%=sId%></font></td> <td width="60"> <fontsize="4" color="#FFFFFF"&

43、gt;</font></td><td width="100"> <fontsize="3" color="#FFFFFF"><%=sName%></font></td> <td width="60"> <fontsize="4" color="#FFFFFF">性别</font></td><td width="100"&

44、gt; <fontsize="3" color="#FFFFFF"><%=Sex%></font></td></tr><tr> <td> <fontsize="4" color="#FFFFFF">院系</font></td><td> <fontsize="3" color="#FFFFFF"><%=dName%><

45、/font></td> <td> <fontsize="4" color="#FFFFFF"> </font></td><td> <fontsize="3" color="#FFFFFF"><%=Mobil%></font></td> <td> <fontsize="4" color="#FFFFFF">地址</font&

46、gt;</td><td> <fontsize="3" color="#FFFFFF"><%=Addr%></font></td> </tr> </table></form>(d)密码修改举例:将0826006学号的密码该为:6666其显示如下:图1.3 修改密码修改提交后数据库中的结果如下,可见密码已修改图1.4 数据库中修改后的student表主要代码:数据库中修改该学生的密码的代码String sPass=(String)request.get

47、Parameter("sPass");Connection conn=null;Statement stmt=null;tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");conn=DriverManager.getConnection("jdbc:odbc:xk","sa","");String sql2="update student set sPass='"+sPass+"' where sId=&

48、#39;"+name+"'"stmt=conn.createStatement();stmt.executeUpdate(sql2);stmt.close();response.sendRedirect("stuMessModSuc.jsp");function checkBig() if (document.form1.sPass.value="") alert("密码不能为空!"); document.form1.sPass.focus(); return false; else if (do

49、cument.form1.sPassagn.value="") alert("再次输入密码!"); document.form1.sPassagn.focus(); return false; else if (document.form1.sPass.value!=document.form1.sPassagn.value) alert("两次密码不同!"); document.form1.sPass.focus(); return false; out.print("修改成功");(e)成绩查询根据教授该门课的

50、老师是否提交成绩,学生可以查到自己相应课程的成绩,其查询结果如下: 图1.5 查询成绩的页面主要代码:tryStatement stmtc=null;ResultSet rsc=null;Connection connc=null;Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");connc=DriverManager.getConnection("jdbc:odbc:xk","sa",""); String sqlc="select * from chooseC

51、ourse where sId='"+name+"'"stmtc=connc.createStatement();rsc=stmtc.executeQuery(sqlc);while(rsc.next()String coId=rsc.getString("coId");float grade=rsc.getFloat("grade");String grademess=null;Statement stmt=null;ResultSet rs=null;Connection conn=null;conn=D

52、riverManager.getConnection("jdbc:odbc:xk","sa",""); String sql="select coName from course where coId='"+coId+"'"stmt=conn.createStatement();rs=stmt.executeQuery(sql);if(rs.next() if(grade>0)out.print(grade); else out.print("未提交")

53、;(f)课程查询及退选可以通过对应课程后面的退选选项进行课程的退选图1.6 查询选课情况的页面主要代码:<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td align="center" valign="top"> <p class="style8"> <%=nam

54、e%>选课选择情况</p> <table width="600" border="0" cellpadding="0" cellspacing="1" bgcolor="#000000"> <tr><td width="100" align="center" bgcolor="#FFCCFF"><div align="center"><stron

55、g><font color="blue"> 课程名称</font></strong></div></td> <td width="60" align="center" bgcolor="#FFCCFF"><div align="center"><strong><font color="blue"> 学分</font></strong><

56、;/div></td> <td width="60" align="center" bgcolor="#FFCCFF"><div align="center"><strong><font color="blue"> 学时</font></strong></div></td> <td width="80" align="center" bg

57、color="#FFCCFF"><div align="center"><strong><font color="blue"> 上课地点</font></strong></div></td> <td width="91" height="30" align="center" bgcolor="#FFCCFF"><div align="cen

58、ter"><strong><font color="blue"> 教师</font></strong></div></td> <td width="139" align="center" bgcolor="#FFCCFF"><strong><font color="blue">操作选项</font></strong></td> </

59、tr> while(rsc.next()String coId=rsc.getString("coId");float grade=rsc.getFloat("grade");String grademess=null;Statement stmt=null;ResultSet rs=null;Connection conn=null;conn=DriverManager.getConnection("jdbc:odbc:xk","sa",""); String sql="sel

60、ect * from course where coId='"+coId+"'"stmt=conn.createStatement();rs=stmt.executeQuery(sql);if(rs.next() String coName=rs.getString(2); String tId=rs.getString(3); float credit=rs.getFloat(4); float period=rs.getFloat(5); String cPlace=rs.getString(7); Connection connt=null;

61、 Statement stmtt=null; ResultSet rst=null; connt=DriverManager.getConnection("jdbc:odbc:xk","sa","");String sqlt="select tName from teacher where tId='"+tId+"'"stmtt=connt.createStatement();rst=stmtt.executeQuery(sqlt);if(rst.next()out.print(

62、rst.getString(1); rsc.close();stmtc.close(); %> </table> </td> </tr></table>(f)选课界面中已通过数据库将所有的课程列出来,学生可以通过前面的选择标志进行选课。图1.7 选课信息的页面及选课操作选课后,相应数据库中的choosecourse表增加了一行选课记录主要代码:<form action="choose.jsp" method="post"><table width="90%" bo

63、rder="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td align="center" valign="top"><br> <br> <table width="800" border="0" cellpadding="0" cellspacing="1" bgco

64、lor="#000000"> <tr> <td width="40" height="30" align="center" bgcolor="#FFCCFF"><div align="center"><strong>选择</strong></div></td> <td width="100" align="center" bgcolor=&q

65、uot;#FFCCFF"><div align="center"><strong>课程名称</strong></div></td> <td width="60" align="center" bgcolor="#FFCCFF"><div align="center"><strong>学分</strong></div></td> <td widt

66、h="60" align="center" bgcolor="#FFCCFF"><div align="center"><strong>学时</strong></div></td> <td width="80" align="center" bgcolor="#FFCCFF"><div align="center"><strong>上课

67、地点</strong></div></td> <td width="91" height="30" align="center" bgcolor="#FFCCFF"><div align="center"><strong>教师</strong></div></td> <td width="70" align="center" bgcolor=&

68、quot;#FFCCFF"><strong>剩余可选人数</strong></td> </tr> <% while(rs.next() String coId=rs.getString(1); String coName=rs.getString(2); String tId=rs.getString(3); float credit=rs.getFloat(4); float period=rs.getFloat(5); String cPlace=rs.getString(6); int cNumAll=rs.getInt(7); int cNum=rs.getInt(8); int num=cNumAll-cNum;%> <tr bgcolor="#FFCCFF" class="tdbg"> <td width="40" height="22" bgcolor="#FFFFFF"><div align="center"> <input type="radio" name="ch

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论