学生成绩管理系统设计报告的主要内容
大作业设计报告的书写:
学生成绩管理系统的设计
一、系统设计
1、系统功能模块分析
学生成绩管理系统通常包括学生基本信息管理、学校所开设课程情况和成绩的管理。设计学生管理系统的目的就是利用计算机的快速浏览、维护、查询、统计功能,替代管理人员对数据的手工处理。
用计算机对学生的各种信息进行日常管理时,经常要进行数据的:浏览、查询、修改、添加、删除、统计、和打印等操作。针对上述要求,设计的成绩管理系统应包括实现这些功能的模块
2、系统功能模块设计
在系统分析的基础上,结合操作上的方便性,学生信息管理应用程序包括系统主模块和查询、维护、统计和打印等几大功能模块,每个功能模块的子模块如图所示:
画出系统功能结构图 (见课件第8章一、分析系统要求,确定系统功能模块)
)
简单叙述各功能模块的功能:
例:
(1)系统主模块
提供了学生信息管理的主界面,作为进入系统的唯一入口。在系统主界面中,不仅提供了用于调用系统各功能模块的操作方法,而且还需要对使用系统的用户进行合法性检验等相应操作。
(2)维护模块
(3)查询模块:提供了用于对数据进行查询操作的操作界面,用户可以按学号或姓名查找某人信息、某学生所选课的情况;也可以按专业进行查询;也可以按开课学期查找课程情况等
(4)维护模块:
(5)统计模块:
(6)退出模块:
二、数据库设计与实现
1、数据库的设计
涉及到一个数据库Xscjxt.dbc 和四个数据表:Xsda.dbf、Xscj.dbf 、Kc.dbf 、Password.dbf
数据表结构:(抓图)
比如:
Password.DBF的数据表结构如下图:
2、数据库的实现:
(1)创建项目管理
(2)创建数据库及四个数据表的结构、建立相关的索引、表间的关联等
表与表之间的关联(打开数据库设计器抓图 )
三、系统功能模块的详细设计
采用模块化程序设计方法,可以将一个复杂系统的设计转化为多个简单系统设计,便于修改和维护,也便于多人同时开发系统。
1、设计系统登录界面(主界面.SCX)
设计系统登录界面 (主界面.Scx)
要求设计如图所示的界面。由Label、Command、Combo1 和Timer(计时器)控件组成,其中,定时器主要用于控制实现欢迎文字的从左向右滚动
设计步骤:打开表单设计器,建立一个新的表单,添加相应的控件、设置其属性、及相关代码
表单对象的属性设置:
在数据环境中增加Password.dbf
Form1: caption (登录系统) , MaxButtom(.f.),Minbutton(.f.) &&最大化、最小化按钮
Label1: Caption(学生信息管理统),
Fontsize=20,Alignment=2-中央
Label2: Caption(用户名), Fontsize=12
Label3: 密码, Fontsize=12
Label4:Caption(欢迎使用学生信息管理系统) ,Fontsize=11
Forecolor=RGB(255,0,0)
Command1:Caption(确认)
Command2:Caption(取消)
Text1: PasswordChar (*) 指定占位字符
Combo1: ReadOnly (.F.)
RowSource (Password.用户名)
RowSourceType (6-字段)
系统登录界面对象的事件过程代码如下:
按钮对象Command1(确认)的Click事件过程代码如下:
Private mPassword,username && 保存用户密码变量,隐藏型内存变量,与主程序中的同名变量不冲突
Select password
username=alltrim(Thisform.combo1.value)
mPassword=alltrim(thisform.text1.value)
locate for alltrim(用户名)=username
If found() and mPassword=alltrim(密码)
Thisform.visible=.f. &&form1不可见
do xscjmenu.mpr &&执行主菜单xscjmenu.mpr
else
messagebox("用户名或密码错误,请重新输入!")
Thisform.Text1.setfocus &&光标移动到Text1中
Endif
按钮对象Command2(取消)的Click事件过程代码:
Thisform.Combo1.Value=“”
ThisForm.Text1.Value=“”
Thisform.Text1.SetFocus &&光标移动到Text1中
运行主界面.SCX
用户名:user0001 &&(在组合列表中选择)
密码:user01 &&输入密码
即可显示学生信息管理菜单窗,通过菜单可以选择你所需要的功能,完成用计算机管理学生信息
2、编辑功能模块的设计(只介绍编辑学生记录.SCX的设计过程,即设计步骤)
编辑学生记录界面如下:
描述设计步骤:
3、维护功能模块的设计(只介绍维护学生成绩.SCX的设计过程)抓图显示维护学生成绩表单执行后的界面,界面如下:
描述设计步骤:
4、查询功能模块的设计( 重点介绍一到两个模块) 抓图
查询功能的菜单界面如下:
重点介绍一到两个模块的设计步骤(界面要抓图)
比如: 按编号查询表单的设计步骤以及按专业查询成绩表单的设计步骤
5、统计模块的设计 (同上)
6、退出
7、菜单的设计(主菜单文件名为: Xscjmenu.mpr)
只要列出表格即可 比如:
注意:保存菜单文件名为: Xscjmenu.Mnx,
存盘后系统生成一个.mnx的菜单文件(menu.mnx),它不是一个可执行程序,需要用它生成一个菜单源程序代码,才可以执行。
生成菜单程序–在菜单设计器中选择“菜单”---“生成”
xscjmenu.mpr( 参考课件)
抓图: 运行菜单后的Window窗口图
四、设计主程序及连编
1、主程序的设计 (命令文件的文件名及文件中的相关代码)注意要设置成主程序
1)应用系统的主程序
开发数据库应用程序时,在完成了各个
功能模块的设计之后,应为整个应用系
统设计一个启动程序文件(又称主程序)。
主程序文件通常可以是一个程序文件
(.PRG)、一个表单文件(.SCX)或者是一个
菜单程序文件,主程序文件在整个系统
中的作用:
2)主程序的设计(xscjmain.prg)
set talk off
clear all
close all
set safety off
set exclusive on && 以独享方式打开数据表、数据结构非只读
_screen.autocenter=.t. &&居中
_screen.windowstate=2 &&窗口最大化 _screen系统变量
do form 主界面.scx &&执行系统登录界面
read events
set talk on
最后在[代码]选项卡中选择XsglMain.prg文件,然后单击鼠标右键,设[设置主文件]命令,便可将其设置为主文件。
如需要启动整个应用程序,选择XscjMain.Prg 后单击运行按钮
2、如何连编成应用程序系统
在项目管理器中,单击“连编”,选定“重新编译全部文件”复选框,及“连编可执行文件”单选项,系统开始连编,生成一个扩展名为EXE的文件Xscjxt.exe (改名为学生成绩 管理.exe)
若询问是否移去某些文件,请按“Yes”
退出FVP环境,运行Xsglxt.exe (或学生信息管理.exe)即可执行学生信息管理主程序。
五、总结
运行效果、心得体会等
第二篇:学生信息管理系统设计报告 jsp
学生信息管理系统
1 课题规划
1.1软件功能
通过对该系统的设计实现对用户登录信息的查看,对学生信息的管理:查看 ,添加,查找,修改,删除
1.2 程序流程
1.3 数据库设计
数据库:student
表:students : person:
2 程序实现
2.1 首页模块 (index.jsp)
代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<head><title>信息管理系统</title>
<style type="text/css">
<!--
body {
background-image: url(image/dan.jpg);
}
-->
</style>
</head><center><td hight="100" ><h1 align="center">学生信息管理系统 ――<font size="7" face="华文隶书" > JSP</font></h1>
<hr></td></center>
<body>
 <font size="4"> </font><font face="隶书" size="4">指导老师:刁文广<br>
<br><br><br></font><br><br><br <a href="login.jsp">点击进入</a>
<br><br> <a href="end.jsp">退出</a>; <font size="5"><font color="#000080">制作:王文玉<br></font> <font color="#000080">Z08050605</font><br></font></font>
</body>
</html>
2.2 登录模块 (login.jsp ,login_conf.jsp,login_success.jsp)
Login.jsp login_conf.jsp到login_success.jsp的跳转
①Login.jsp 代码如下
<body>
<table width="400" border="1" cellspacing="0" cellpadding="0" bgcolor="#080ffee">
<td><form name="form1" method="post" action="login_conf.jsp">
<center><h2>用户登陆</h2></center>
<hr size=2 bgcolor=#dce3f5></hr>
<table align="center" cellspacing="15" cellpadding="0"> <tr bgcolor=#dce3f5><td>用户名:</td>
<td><input type="text" name="id"></input></td>
<tr bgcolor=#c6f5be>
<td>密码:</td>
<td><input type="password" name="password" style="*"></input></td>
</tr><tr bgcolor=#dce3f5>
<td><input type="submit" value="登陆"></input></td>
<td><input type="reset" value="重填"></input></td></tr> </table></form></td></tr></table></body>
②Login_conf.jsp 代码:
<body><br><%!
String DBDRIVER = "com.mysql.jdbc.Driver" ;
String DBURL = "jdbc:mysql://127.0.0.1:3306/student" ;
String DBUSER = "root" ;
String DBPASSWORD = "root" ;
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rs = null ;
%>
<%// 声明一个boolean变量,用于保存用户是否合法的状态
boolean flag = false ;// 接收参数
String id = request.getParameter("id") ;
String password = request.getParameter("password") ;
%>
<%String sql = "SELECT name FROM person WHERE id=? and password=?" ;
try{
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,id) ;
pstmt.setString(2,password) ;
rs = pstmt.executeQuery() ;
if(rs.next())
{ // 用户合法 flag = true ;
// 将用户名保存在session之中
session.setAttribute("uname",rs.getString(1)) ;
}else{// 保存错误信息
request.setAttribute("err","错误的用户名及密码!!!") ;}
rs.close() ;
pstmt.close() ;
conn.close() ; }
catch(Exception e) {}%>
<%// 跳转if(flag) {// 用户合法%>
<jsp:forward page="login_success.jsp"/>
<%}else{// 用户非法
%><jsp:forward page="login.jsp"/>
<%}%>
③Login_success.jsp 代码如下:
<br><%if(session.getAttribute("uname")!=null)
{// 用户已登陆%> <h2>登陆成功</h2>
<h2>欢迎<font color="red" size="12">
<%=session.getAttribute("uname")%>
</font>光临学生信息管理程序</h2>
<h3><a href="main.jsp">进入学生信息管理页面</a></h3>
<%}else{ // 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2;URL=login.jsp") ;
%> 您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<% } %> </body>
2.3 信息功能列表模块(main.jsp)
main.jsp 代码如下:
<body>
<center><h1><font size="7" color="#730039" face="隶书"><b>欢迎你的登陆</b></font>
</h1> <br><br> <h2><font face="华文新魏"><a href="dchakan.jsp">登陆信息查看</a><font face="华文新魏"><a href="result.jsp">学生信息查询</a></font></font></h2><h2><font face="华文新魏"><font face="华文新魏"><a href="list_notes.jsp">学生信息一览</a> <a href="up.jsp">学生信息修改</a></font></font></h2><h2><font face="华文新魏"><font face="华文新魏"><a href="insert.jsp"> 学生信息添加</a> <a href="delete.jsp">学生信息删除</a> <br></font></font></h2><h2><a href=“http://www.4399.com/flash/1380.htm”>轻松一刻</a> <a href="end.jsp"> 退出系统</a>
2.4 登录信息查看模块(dchakan.jsp)
代码如下:
<body > <center> <br> <br><h1 style="font-weight: normal;"><font color="#ff00ff"><strong><font face="华文仿宋">欢迎您的登录</font></strong></font></h1><h2> </h2><td width="%100">
<table width="383" border="2" bordercolor="#6ff2f9" cellspacing="10" height="180"> <tr> <td bgcolor="#98fcae">
<h3><font size="3">欢迎:<%=session.getAttribute("uname")%></font></h3></td> </tr>
<tr><td bgcolor="#bdcffd">
<h3><font size="3">你的登陆地址为:<%=request.getRemoteAddr() %></font></h3></td></tr> <tr>
<td bgcolor="#98fcae"><h3><font size="3">你的登陆时间为:20##-6-23</font></h3></td>
</tr> </table> </td> <tr><td>
<table cellpadding="0" cellspacing="0" width="376" height="160">
<tr><td><center><font face="华文行楷" size="5">
</font></center><center >
<font size="5" color="#FF0EFF" face="华文行楷">08级网络六班<br>王文玉<br>Z08050605<br></font></center><center>
<center ><font size="5" color="#FF0EFF" face="华文行楷">地址:中国河南洛阳理工学院 </font></center>
</td></tr></table></td></tr>
<h3> <a href="main.jsp">回到功能列表页</a></h3>
</body>
2.5 查看全部学生信息(list_notes.jsp )
代码如下:
<body>
<center><h1><font face="华文琥珀">学生信息一览表</font></h1>
<%// 编码转换
request.setCharacterEncoding("GB2312") ;
if(session.getAttribute("uname")!=null)
{// 用户已登陆%>
<%!String DBDRIVER = "com.mysql.jdbc.Driver" ;
String DBURL = "jdbc:mysql://127.0.0.1:3306/student" ;
String DBUSER = "root" ;
String DBPASSWORD = "root" ;
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rs = null ; %>
<%// 如果有内容,则修改变量i,如果没有,则根据i的值进行无内容提示
int i = 0 ;
String sql = null;
String keyword = request.getParameter("keyword") ;
// out.println(keyword) ;
if(keyword==null)
{// 没有任何查询条件
sql = " SELECT num,name,sex,score,indate FROM students " ;
}else
{// 有查询条件
sql = " SELECT num,name,sex,score,indate FROM students WHERE num like ? or name like ? or score like ? " ;
}
try{
Class.forName(DBDRIVER) ;
Conn= DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
pstmt = conn.prepareStatement(sql) ;
// 如果存在查询内容,则需要设置查询条件
if(keyword!=null)
{// 存在查询条件
pstmt.setString(1,"%"+keyword+"%") ;
pstmt.setString(2,"%"+keyword+"%") ;
pstmt.setString(3,"%"+keyword+"%") ;
pstmt.setString(4,"%"+keyword+"%") ;
pstmt.setString(5,"%"+keyword+"%") ;}
rs = pstmt.executeQuery() ; %>
<table width="400" border="1" height="163"> <tr>
<td>学号</td><td>姓名</td><td>性别</td><td>成绩</td><td>入学时间</td>
</tr><%while(rs.next())
{i++ ;// 进行循环打印,打印出所有的内容,以表格形式
// 从数据库中取出内容
String num = rs.getString(1) ;
String name = rs.getString(2) ;
String sex = rs.getString(3) ;
String score = rs.getString(4) ;
String indate = rs.getString(5) ;
if(keyword!=null) {// 需要将数据返红
num = num.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ;
name = name.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ;
sex = sex.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ;
score = score.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ;
indate = indate.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ; }%>
<tr><td><%=num%></td>
<td><%=name%></td>
<td><%=sex%></td>
<td><%=score%></td>
<td><%=indate%></td><td></td></tr><%}
// 判断i的值是否改变,如果改变,则表示有内容,反之,无内容
if(i==0) {// 进行提示%><tr>
<td colspan="5">没有任何内容!!!</td></tr><%}%></table>
<%rs.close() ; pstmt.close() ; conn.close() ;
}catch(Exception e){}%>
<%}else{// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2;URL=login.jsp") ;
%>您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%}%><h3> <a href="main.jsp">回到功能列表页</a></h3>
</center></body>
2.6学生信息添加模块(insert.jsp insert_do.jsp)
①insret.jsp代码如下:
<body><center><br>
<%if(session.getAttribute("uname")!=null) {// 用户已登陆%>
<form action="insert_do.jsp" method="post"><table>
<tr><td colspan="1">添加新信息</td></tr><tr><tr>
<td>姓名:</td><td><input type="text" name="name"></td></tr><tr>
<td>性别:</td><td><input type="text"name="sex"></td></tr><tr>
<td>成绩:</td><td><input type="text"name="score"></td></tr><tr>
<td>入学日期:</td><td><input type="text"name="indate"></td></tr>
<tr><td colspan="2"><input type="submit" value="添加">
<input type="reset" value="重置"></td></tr></table></form>
<h3> <a href="main.jsp">回到功能列表页</a></h3>
<%}else{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2;URL=login.jsp") ;
%>您还未登陆,请先登陆!!!<br>两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br><%}%>
</center></body>
Insert_do.jsp
②Insert_do.jsp代码如下:
<body><center><br><%// 进行乱码处理
request.setCharacterEncoding("GB2312") ; %>
<%if(session.getAttribute("uname")!=null)
{// 用户已登陆%>
<%! String DBDRIVER = "com.mysql.jdbc.Driver" ;
String DBURL = "jdbc:mysql://127.0.0.1:3306/student" ;
String DBUSER = "root" ;
String DBPASSWORD = "root" ;
Connection conn = null ;
PreparedStatement pstmt = null ; %>
<%// 声明一个boolean变量
boolean flag = false ; // 接收参数
String name = request.getParameter("name") ;
String sex = request.getParameter("sex") ;
String score = request.getParameter("score") ;
String indate = request.getParameter("indate") ;
%>
<%// 现在note表中的主键是sequence生成
String sql = " insert into students (name,sex,score,indate) values(name,sex,score,indate) " ;
Try{Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,name);
pstmt.setString(2,sex);
pstmt.setString(3,score);
pstmt.setString(4,indate);
pstmt.executeUpdate() ; pstmt.close() ; conn.close() ;
// 如果插入成功,则肯定能执行到此段代码
flag = true ; }catch(Exception e) {}%>
<%response.setHeader("refresh","2;URL=main.jsp") ;
if(flag) {%>信息添加成功,两秒后跳转到功能列表页!!!<br>
如果没有跳转,请按<a href="main.jsp">这里</a>!!!
<%}else{%>信息添加失败,两秒后跳转到信息列表页!!!<br>
如果没有跳转,请按<a href="main.jsp">这里</a>!!!
<%}%>
<%}else{// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2;URL=login.jsp") ; %>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%}%></center></body>
2.7 学生信息查询模块(result.Jsp,commom.jsp)
①result.jsp代码如下:
<body><center>
<br><blockquote><h2><font face="华文新魏">查询学生信息</font></h2></blockquote><br><br><br>
<form action="common.jsp" method="post">
输入查询学号: <input type="text" name="num" /><br><br>
<input type="submit" name="button" value="查询" />
<input type="reset" name="reset" value="重置" />
</form><h3> <a href="main.jsp">回到功能列表页</a></h3></body>
②common.jsp代码如下:
<body>
<center><br><%if(session.getAttribute("uname")!=null)
{// 用户已登陆%>
<%!String DBDRIVER = "com.mysql.jdbc.Driver" ;
String DBURL = "jdbc:mysql://127.0.0.1:3306/student" ;
String DBUSER = "root" ;
String DBPASSWORD = "root" ;
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rs = null ; int id ; %>
<%// 接收参数try
{id = Integer.parseInt(request.getParameter("num")) ; }
catch(Exception e) {}%>
<%String sql = " SELECT num,name,sex,major,score,indate FROM students WHERE num = ? " ; try{
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
pstmt = conn.prepareStatement(sql) ;
// 设置查询条件pstmt.setInt(1,id);
rs = pstmt.executeQuery() ; %>
<%if(rs.next())
{// 进行循环打印,打印出所有的内容,以表格形式// 从数据库中取出内容
String num = rs.getString(1) ;
String name = rs.getString(2) ;
String sex = rs.getString(3) ;
String score = rs.getString(4) ;
String indate = rs.getString(5) ;
%><form action="" method="post"><table><tr>
<td colspan="2"><center>查询信息显示</center> </td></tr>
<tr><td>学号:</td><td><input type="text" name="num" value="<%=num%>"></td></tr>
<tr><td>姓名:</td><td><input type="text" name="name" value="<%=name%>"></td></tr>
<tr><td>性别:</td><td><input type="text" name="sex" value="<%=sex%>"></td></tr>
<tr><td>成绩:</td>
<td><input type="text" name="score" value="<%=score%>"></td></tr>
<tr><td>入学日期:</td><td><input type="text" name="indate" value="<%=indate%>"></td></tr>
</table></form>
<%}else{%>没有发现,要查找的内容!!<br>
请确认要查找的信息是否存在!!<br>
<%}%>
<%rs.close() ; pstmt.close() ; conn.close() ; }
catch(Exception e) {}%>
<h3> <a href="result.jsp">重新输入</a><br><br>
<a href="main.jsp">回到功能列表页</a></h3>
<%}else{// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2;URL=login.jsp") ; %>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%}%></center></body>
2.8、学生信息修改模块(up.jsp ,update.Jsp update_do.jsp)① up.Jsp代码如下:
<body><center>
<br><br><font face="华文彩云" color="#00ff40"><br></font><h1><font face="华文彩云" color="#8000ff">学 生 信 息 的 修 改</font></h1>
<form action="update.jsp" method="post"><h4><strong><font face="华文楷体">
请输入你要修改的学生学号:</font></strong>
<input type="text" name="num">
</h4><br>
<input type="submit" name="button" value="修改" />
<input type="reset" name="reset" value="重置" />
</form>
<h3> <a href="main.jsp">回到功能列表页</a></h3>
</body>
②Update.jsp,代码如下:
<body>
<center><h1><font face="楷体_GB2312" color="#ff00ff">修改学生信息</font></h1>
<%if(session.getAttribute("uname")!=null) {// 用户已登陆
%> <%!
String DBDRIVER = "com.mysql.jdbc.Driver" ;
String DBURL = "jdbc:mysql://127.0.0.1:3306/student" ;
String DBUSER = "root" ;
String DBPASSWORD = "root" ;
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rs = null ;
int id ;
%><%// 接收参数try{
id = Integer.parseInt(request.getParameter("num")) ;
}catch(Exception e)
{}%>
<% String sql = " SELECT num,name,sex,score,indate FROM students WHERE num = ? " ;
try{Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
pstmt = conn.prepareStatement(sql) ;
// 设置查询条件pstmt.setInt(1,id);
rs = pstmt.executeQuery() ;
%><%if(rs.next())
{// 进行循环打印,打印出所有的内容,以表格形式
// 从数据库中取出内容
String num = rs.getString(1) ;
String name = rs.getString(2) ;
String sex = rs.getString(3) ;
String score = rs.getString(4) ;
String indate = rs.getString(5) ;%>
<form action="update_do.jsp" method="post">
<table><tr><td colspan="2"><center>修改学生信息</td></tr>
<tr><td>学号:</td><td><input type="text" name="num" value="<%=num%>"></td></tr>
<tr><td>姓名:</td><td><input type="text" name="name" value="<%=name%>"></td></tr>
<tr><td>性别:</td><td><input type="text" name="sex" value="<%=sex%>"></td></tr>
<tr><td>成绩:</td><td><input type="text" name="score" value="<%=score%>"></td></tr>
<tr><td>入学日期:</td><td><input type="text" name="indate" value="<%=indate%>"></td></tr>
<tr><td colspan="2"><input type="submit" value="更新">
<input type="reset" value="重置">
</td></tr></table></form>
<%}else{%>没有发现,要更新的内容!!<br>
请确认要更新的信息是否存在!!<br>
<%}%><%rs.close() ;
pstmt.close() ;
conn.close() ; }
catch(Exception e) {}%>
<h3><a href="main.jsp">回到功能列表页</a></h3>
<%}else{// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2;URL=login.jsp") ; %>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%}%></center></body>
③update_do.jsp代码如下:
<body>
<center><%// 进行乱码处理
request.setCharacterEncoding("GB2312") ;
%><%if(session.getAttribute("uname")!=null)
{// 用户已登陆%>
<%!String DBDRIVER = "com.mysql.jdbc.Driver" ;
String DBURL = "jdbc:mysql://127.0.0.1:3306/student" ;
String DBUSER = "root" ;
String DBPASSWORD = "root" ;
Connection conn = null ;
PreparedStatement pstmt = null ;
%><%// 声明一个boolean变量
boolean flag = true ;
// 接收参数
String num = request.getParameter("num") ;
String name = request.getParameter("name") ;
String sex = request.getParameter("sex") ;
String score = request.getParameter("score") ;
String indate = request.getParameter("indate") ;
int id = 0 ;
try{id = Integer.parseInt(num) ; }
catch(Exception e) {}
%><%// 更新note表中的数据
String sql = " update students set num =?,name =?,sex =?,score =?,indate =? where num = ? " ;
try{Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setInt(1,id);
pstmt.setString(2,name);
pstmt.setString(3,sex);
pstmt.setString(4,score);
pstmt.setString(5,indate);
pstmt.setInt(6,id);
pstmt.executeUpdate() ;
pstmt.close() ;
conn.close() ;
// 如果修改成功,则肯定能执行到此段代码
flag = true ;
}catch(Exception e) {}
%><%response.setHeader("refresh","2;URL=main.jsp") ;
if(flag) {%>
信息修改成功,两秒后跳转到功能列表页!!!<br>
如果没有跳转,请按<a href="main.jsp">这里</a>!!!
<%}else{%>
信息修改失败,两秒后跳转到功能列表页!!!<br>
如果没有跳转,请按<a href="main.jsp">这里</a>!!!
<%}%>
<%}else{// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2;URL=login.jsp") ; %>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%}%></center></body>
2.9学生信息删除模块(delete,jsp delete_do.jsp)
①delete.jsp代码如下:
<body>
<center><br><%// 编码转换
request.setCharacterEncoding("GB2312") ;
if(session.getAttribute("uname")!=null)
{// 用户已登陆%>
<%!String DBDRIVER = "com.mysql.jdbc.Driver" ;
String DBURL = "jdbc:mysql://127.0.0.1:3306/student" ;
String DBUSER = "root" ;
String DBPASSWORD = "root" ;
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rs = null ; %>
<%// 如果有内容,则修改变量i,如果没有,则根据i的值进行无内容提示
int i = 0 ;
String sql = null;
String keyword = request.getParameter("keyword") ;
// out.println(keyword) ;
if(keyword==null)
{// 没有任何查询条件
sql = " SELECT num,name,sex,score,indate FROM students " ; }
else{// 有查询条件
sql = " SELECT num,name,sex,score,indate FROM students WHERE num like ? or name like ? or score like ? " ;
} try{
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
pstmt = conn.prepareStatement(sql) ;
// 如果存在查询内容,则需要设置查询条件
if(keyword!=null) {// 存在查询条件
pstmt.setString(1,"%"+keyword+"%") ;
pstmt.setString(2,"%"+keyword+"%") ;
pstmt.setString(3,"%"+keyword+"%") ;
pstmt.setString(4,"%"+keyword+"%") ;
pstmt.setString(5,"%"+keyword+"%") ; }
rs = pstmt.executeQuery() ; %>
<table width="600" border="1" height="212">
<tr><td>学号</td><td>姓 名</td><td>性别</td><td>成绩</td><td>入学时间</td><td>操作</td></tr>
<%while(rs.next())
{i++ ; // 进行循环打印,打印出所有的内容,以表格形式
// 从数据库中取出内容
String num = rs.getString(1) ;
String name = rs.getString(2) ;
String sex = rs.getString(3) ;
String score = rs.getString(4) ;
String indate = rs.getString(5) ;
if(keyword!=null)
{// 需要将数据返红
num = num.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ;
name = name.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ;
sex = sex.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ;
score = score.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ;
indate = indate.replaceAll(keyword,"<font color=\"red\">"+keyword+"</font>") ;
}
%><tr><td valign="top"><br><%=num%><br></td>
<td><%=name%><br></td>
<td><%=sex%><br></td>
<td><%=score%><br></td>
<td><%=indate%><br></td>
<td><a href="delete_do.jsp?num=<%=num%>">删除</a>
</td></tr>
<%}// 判断i的值是否改变,如果改变,则表示有内容,反之,无内容
if(i==0) {// 进行提示
%><tr><td valign="top"><br></td><td valign="top"><br></td><td colspan="5">没有任何内容!!!</td></tr>
<%}%></table>
<%rs.close() ;
pstmt.close() ;
conn.close() ;
}catch(Exception e) {}%>
<%}else{// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2;URL=login.jsp") ;%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%}%>
<h3> <a href="main.jsp">回到功能列表页</a></h3>
</center></body>
②Delete_do.jsp代码如下:
<body><center><br>
<%if(session.getAttribute("uname")!=null)
{// 用户已登陆%>
<%! String DBDRIVER = "com.mysql.jdbc.Driver" ;
String DBURL = "jdbc:mysql://127.0.0.1:3306/student" ;
String DBUSER = "root" ;
String DBPASSWORD = "root" ;
Connection conn = null ;
PreparedStatement pstmt = null ; %>
<%// 接收参数
int id = 0 ;
try{id = Integer.parseInt(request.getParameter("num")) ;}
catch(Exception e) {}%>
<%String sql = " delete from students where num = ? " ;
boolean flag = false ;
try{
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
pstmt = conn.prepareStatement(sql) ;
// 设置删除条件
pstmt.setInt(1,id) ;
pstmt.executeUpdate() ;
pstmt.close() ;
conn.close() ;
flag = true ; }
catch(Exception e) {}%> <%response.setHeader("refresh","2;URL=list_notes.jsp") ;
if(flag) {%>
信息删除成功,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!
<%}else{%>
信息删除失败,两秒后跳转到留言列表页!!!<br>
如果没有跳转,请按<a href="list_notes.jsp">这里</a>!!!
<%}%>
<%}else{
// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2;URL=login.jsp") ;
%>您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="login.jsp">这里</a>!!!<br>
<%}%>
<h3> <a href="main.jsp">回到功能列表页</a></h3>
</center></body>
2.10 结束模块(end.jsp)
代码如下:
<body> <h6><br><br><br><br><br><br><br><br><div align="center"><blockquote><h6><br><strong></strong></h6><h6><br></h6><h6><br></h6><h6><br></h6>
<h6><font size="7" face="华文新魏" color="#00ff00">谢谢您的查看</font><br></h6></h6><h6><br><font color="#0000ff"><strong></strong></font></h6><h6><br></h6>
<h6 align="center"><font face="华文隶书" color="#0000ff"><strong><font size="7">B y e b y e</font></strong></font></h6><br><br><br><br><div align="center"><br></div><br><br><br> <br>
<br><br></body>
3 总结
3.1 程序功能总结
该系统仅仅完成了基本的信息的查看 修改 添加 删除 其中的(修改)查找不能很好的利用各个信息进行查找(修改) 该系统还有很多可以完善的地方可是我能力有限。我个人还是有很多欠缺。
3.2 实习总结
通过对该系统的设计使我了解到课设的过程是艰辛的,但是收获是巨大的。首先,我们再一次的加深巩固了对已有的知识的理解及认识 其次,我们第一次将课本知识运用到了实际设计,使得所学知识在更深的层次上得到了加深。再次,因为这次课程设计牵扯了许多我们没有详细讲的jsp内容,这些方面确实存有一定难度,这对我们来讲都是一种锻炼,培养了我们集体合作的能力以及自学、查阅搜集资料的能力;再有,程序设计中,我们曾经面临过失败、品味过茫然,同时我们也学会了什么是坚持做学问真的没什么笨与不笨之分 ,只要勤于看书·向别人提问,许多东西都可以由不会变到会的 关键在自己 只要我们坚持下来,就没什么不可以!看着程序一次次的运行错误我们真的有些失望 ,但当我们一次次得把错误改正我们又是那么的激动,我们看着自己把原来的程序改的面目全非又改回来其中的乐趣怕是只有我们自己才能体会,我们不是怕失败,我们怕的是失败后依然不成功。这就是我们意志、耐力的胜利,在今后的日子里,它必将成为我们的宝贵财富。