资源描述
学生管理工作是学校教育工作一个重要组成部分,随着国家教育发展、学校规模扩大、学生人数增加等,学生管理工作信息量大幅度增加,对学生各种信息汇总、统计、分析等管理工作面临着很大困难。因此,充分利用网络资源,建设“学生信息管理系统”,提高学生教育、管理服务水平和工作效率,使学生工作科学化、现代化,已经成为学校学生管理工作面临一个新课题。
本论文论述了学生信息管理系统基本原理及实现技术,并采用B/S结构,使用Tomcat做为前台应用服务器,SQL Server做为后台应用数据库设计、开发出一套学生信息管理系统,运用到技术有JSP、Html、SQL Server、Java 、JavaScript和CSS等。
该学生学籍管理系统主要对学生学籍信息、成绩信息进行管理,提供一个平台,供学籍管理人员增删改查学生信息、学生成绩信息。系统分为学生信息管理、学生成绩管理、信息查询等几个模块。学籍管理人员登录成功后可以对学生信息管理、学生成绩管理、信息查询等模块进行操作,如学生信息添加、修改、删除和查询;学生成绩登记、修改、删除和查询;查询信息等。
29 / 34
摘 要
第1章 引 言 1
1.1 系统开发背景 1
1.2 系统简介 1
1.3 系统使用范围 1
1.3.1 JSP动态网站开发技术 2
1.3.2 HTML超文本标记语言 2
1.3.3 SQL Server数据库技术 2
1.3.4 Java面向对象程序设计语言 2
1.3.5 JavaScript网页特效技术 3
1.3.6 CSS层叠样式表单技术 3
1.4 系统开发工具 3
1.4.1 Tomcat应用服务器 3
1.4.2 Dreamweaver网页制作工具 3
1.4.3 Photoshop平面设计工具 4
第2章 系统需求分析 5
2.1 系统开发实现方式 5
2.2 系统开发技术支持 5
2.3 系统功能分析 5
2.4 系统数据流图 5
第3章 系统概要设计 6
3.1数据库设计 6
3.2.1 管理员角色模块 8
3.2.2 教师角色模块 8
3.2.3 学生角色模块 9
3.3 数据库设计 9
3.3.1 数据库应用分析 9
3.3.2 系统连接数据库实现 9
第4章 系统详细设计 12
4.1 系统公共模块设计及实现 12
4.1.1 系统首页 12
4.1.2 系统欢迎页面 15
4.1.3 系统应用页面 18
4.1.4 系统留言板页面 18
第5章 结束语 21
致 谢
参考文献
第1章 引 言
1.1 系统开发背景
随着科学发展,教育重视程度不断提高,学生人数逐年上升,传统学生信息管理己暴露出很多效率和经济上弊端。学生信息管理已在学校经济和人力支出中占了很大比例,严重影响了学校教学质量提高及教学进度发展,改善学校学生信息管理方法己成为当务之急。
学生信息管理系统和其他信息管理系统一样是当今管理信息不可缺少系统,它对学校决策者和管理者以及学校学生来说都有着重要作用和价值。正因如此学生信息管理系统应该为用户提供充足信息资源和快捷查询手段。无论是对学生还是学生管理者来说都是一种体力劳动减负。为老师和管理者留出更多时间,让他们把心思都花在怎样教学和自己学习上。同时也可以为学校节约经费。
学生信息管理系统具有手工管理所无法比拟优点。如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息管理效率。
因此,开发这样一个低成本高效率管理系统是十分必要。
1.2 系统简介
系统名称为学生信息管理系统,简称SIMS(Student Information Management System)。本系统能够实现学生信息管理。
“学生信息管理”可以实现对学生信息录入、查询、修改和删除等功能。学生信息包括学生基本信息和学生入学信息,学生基本信息涵盖该学生身份信息、家庭信息和基本情况记录等,学生入学信息包含该学生入学时间、学历层次、院部、专业和学号等信息。通过学生信息录入可以把学生相关信息添加到系统中,通过学生信息查询可以查看学生基本信息和入学信息,通过学生信息修改和删除可以对该学生信息进行修改和删除操作。
1.3 系统使用范围
本系统设计考虑了系统通用性,可以应用于教育系统各种类型院校。系统开发技术
1.3.1 JSP动态网站开发技术
JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参及一起建立一种动态网页技术标准。JSP技术是在传统网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发Web应用是跨平台,能够在多种操作系统上运行。JSP技术使用Java编程语言编写类XMLtags和scriptlets,来封装产生动态网页处理逻辑。网页还能通过tags和scriptlets访问存在于服务端资源应用逻辑。
1.3.2 HTML超文本标记语言
HTML(Hyper Text Markup Language)即超文本标记语言,用于建立web页面和其他超级文本语言,是WWW描述语言。
HTML文本是由HTML命令组成描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。HTML结构包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需信息,而主体则包含所要说明具体内容。
1.3.3 SQL Server数据库技术
SQL Server 是一个关系数据库管理系统,采用SQL(Structured Query Language,结构化查询语言)语言标准。
SQL Server 2000 是Microsoft 公司推出SQL Server 数据库管理系统,该版本继承了SQL Server 7.0 版本优点,同时又比它增加了许多更先进功能。具有使用方便可伸缩性好及相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 膝上型电脑到运行Microsoft Windows 2000 大型多处理器服务器等多种平台使用。
1.3.4 Java面向对象程序设计语言
Java是由Sun Microsystems公司于1995年5月推出Java程序设计语言(以下简称Java语言)和Java平台总称。用Java实现HotJava浏览器(支持Java applet)显示了Java魅力:跨平台、动态Web、Internet计算。
Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。
1.3.5 JavaScript网页特效技术
Javascript是由 Netscape公司开发一种脚本语言(scripting language),或者称为描述语言。在HTML基础上,使用Javascript可以开发交互式Web网页。
JavaScript 使网页增加互动性。JavaScript 使有规律地重复HTML文段简化,减少下载时间。JavaScript 能及时响应用户操作,对提交表单做即时检查,无需浪费时间交由 CGI 验证。
1.3.6 CSS层叠样式表单技术
CSS是CascadingStyleSheets(层叠样式表)缩写。是用于(增强)控制网页样式并允许将样式信息及网页内容分离一种标记性语言。
加在head部分<style type="text/css">和</style>分别被浏览器识别为CSS开始和结束。CSS作用是定义网页外观(例如字体,颜色等等),它也可以和javascript等浏览器端脚本语言合作做出许多动态效果。
1.4 系统开发工具
1.4.1 Tomcat应用服务器
Tomcat 服务器是一个免费开放源代码Web 应用服务器,是Apache 软件基金会(Apache Software Foundation)Jakarta 项目中一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。
Tomcat运行时占用系统资源小,扩展性好,支持负载平衡及邮件服务等开发应用系统常用功能。Tomcat 是一个小型轻量级应用服务器,在中小型系统和并发访问用户不是很多场合下被普遍使用,是开发和调试JSP 程序首选。
1.4.2 Dreamweaver网页制作工具
Dreamweaver是美国 Macromedia公司开发集网页制作和管理网站于一身所见即所得网页编辑器,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制充满动感网页。
使用网站地图可以快速制作网站雏形、设计、更新和重组网页。改变网页位置或档案名称,Dreamweaver 会自动更新所有连结。使用支援文字、HTML码、HTML属性标签和一般语法搜寻及置换功能使得复杂网站更新变得迅速又简单。
1.4.3 Photoshop平面设计工具
Photoshop是Adobe公司旗下最为出名图像处理软件之一。使用Photoshop可以进行图像编辑、图像合成、校色调色及特效制作等工作,是网页制作和系统开发美工伴侣。
第2章 系统需求分析
2.1 系统开发实现方式
本系统采用B/S(Browser/Server,浏览器/服务器模式)结构,前台部署使用Tomcat应用服务器,后台数据库使用SQL Server数据库。应用开发工具为Dreamweaver网页制作工具、Photoshop平面设计工具、UltraEdit开发环境和Visio流程图、表制作工具。
2.2 系统开发技术支持
本系统在开发中应用到了JSP动态网站开发技术、Java面向对象程序设计语言和SQL结构化查询语言,在系统页面展现上使用了HTML超文本标记语言、JavaScript网页特效技术和CSS层叠样式表单技术。
2.3 系统功能分析
本“学生信息管理系统”分为三个模块:教务部门、教师、学生三大模块。
教务部门:拥有对所有表查询更新及删除权利(分类信息属于查询结果除外);
教师:可对教师、专业以及院系信息,分类信息,学生情况进行查询,对成绩单进行查询、更新以及删除等所有操作;
学生:只可对所有模块信息进行查询,同时可对自己部分学生情况进行一定修改及更新。
2.4 系统数据流图
数据流图:简称DFD,就是采用图形方式来表达系统逻辑功能、数据在系统内部逻辑流向和逻辑变换过程,是结构化系统分析方法主要表达工具及用于表示软件模型一种图示方法。
数据流程图中有以下几种主要元素,如图2-1所示:
图2-1 数据流图元素
本学生信息管理系统数据流图如图2-2所示。
图2-2 学生信息管理系统数据流图
第3章 系统概要设计
3.1数据库设计
学生基本信息表
系部类别信息表
留言信息表
管理员信息表
1. 数据库连接
应用程序访问数据库首先要进行是连接数据库,数据库连接应用于密码验证、信息显示、信息录入及信息更改等应用中,本系统应用程序采用JDBC(Java DataBase Connectivity)技术来实现数据库连接访问,JDBC驱动程序可以从网上下载,本系统采用驱动程序“Microsoft SQL server 2000 FOR JDBC”。
2. 系统帮助
系统帮助页面通过应用页面上“使用帮助”菜单连接而展现出来,在帮助页面左侧有树形菜单,点击其中一个节点便会在页面右侧展现该节点对应内容。
3.2.1 管理员角色模块
管理员角色是本系统中权限最高用户,可以对系统中用户及信息等进行查询、打印、增加、修改和删除等,其中教师和学生所拥有权限管理员都具备。
学籍管理人员登录成功后可以对学生信息管理、学生成绩管理、信息查询等模块进行操作,如学生信息添加、修改、删除和查询;学生成绩登记、修改、删除和查询;查询信息等。管理员角色功能图示如图3-1。
学生学籍管理系统
学生
管理员
添加
修改
删除
统计
排序
查询
学生学籍管理系统
查询
图3-1 管理员角色功能图示
3.2.2 教师角色模块
系部名称
系部代号
系部
图3-2 系部角色E-R图
3.2.3 学生角色模块
学生角色在本系统中权限时最低,只能对成绩进行查询
学学生角色E-R图如图3-3。
图3-3 学生角色E-R图
3.3 数据库设计
3.3.1 数据库应用分析
本系统数据库应用采用Microsoft SQL Server 2005创建student数据库,需要数据表有四个,liuyan表、stuinfo表、userinfo表、xibuinfo表。
3.3.2 系统连接数据库实现
本系统连接数据库采用JDBC-ODBC Bridre技术,创建完ODBC数据源后,在系统程序页面中应用如下代码便可以及数据库进行连接,进而实现对数据查询、修改、插入和删除操作。
package dao;
import java.sql.*;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class Connecter {// static String driverName ="com.mysql.jdbc.Driver"; //MySql数据库用这个
// static String connectionString = "jdbc:mysql://117.79.94.209:3306/student"; //MySql数据库用这个
static String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
static String connectionString = "jdbc:sqlserver://localhost:1433;DatabaseName=student";
DataSource ds = null;
private Connection connection=null ;
ResultSet rs;
static
{
try{
Class.forName(driverName).newInstance();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public Connection getConnenction()
{
try
{ /* InitialContext ctx = new InitialContext();
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/NorthWind");*/
connection =DriverManager.getConnection(connectionString,"sa","123456");
}
catch (Exception e)
{
e.printStackTrace();
}
return connection;
}
public ResultSet executeQuery(String sql) throws Exception
{
try
{
sql=new String(sql.getBytes("GBK"),"ISO8859_1");
Connection con=getConnenction();
Statement stmt=con.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.out.println("sql.executeQuery:"+ex.getMessage());
}
return rs;
}
}
第4章 系统详细设计
4.1 系统公共模块设计及实现
4.1.1 系统首页
package stuservlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dll.StuDll;
import dll.UserInfoDll;
public class Login extends HttpServlet {
public Login() {
super();
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=GB2312");//设置响应MIME类型
PrintWriter out = response.getWriter();
request.setCharacterEncoding("gb2312");
String role= request.getParameter("role");
String sno = request.getParameter("username");
String pwd= new String(request.getParameter("password"));
if(role.equals("0")){ //管理员登陆
int i=new UserInfoDll().getUser(sno, pwd);
if(i==0){
//登陆成功
request.getSession().setAttribute("customerId",sno);
response.sendRedirect("/StudentManage/index.jsp");
return ;
}else if(i==-1){
//用户不存在
request.setCharacterEncoding("gb2312");
out.print("<script language='javascript'>alert('!!用户不存在');window.location.href='/StudentManage/login.jsp';</script>");
return;
}
else if(i==1){
//密码错误
request.setCharacterEncoding("gb2312");
out.print("<script language='javascript'>alert('!!密码错误');window.location.href='/StudentManage/login.jsp';</script>");
return;
}
}
else{ //学生登陆
System.out.println(sno+" sss");
int i=new StuDll().getStu(sno, pwd);
if(i==0){
//登陆成功
response.sendRedirect("/StudentManage/stuinfo.jsp?sno="+sno+"");
return ;
}else if(i==-1){
//用户不存在
out.print("<script language='javascript'>alert('!!用户不存在');window.location.href='/StudentManage/login.jsp';</script>");
return;
}
else if(i==1){
//密码错误
out.print("<script language='javascript'>alert('!!密码错误');window.location.href='/StudentManage/login.jsp';</script>");
return;
}
}
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
public void service(HttpServletRequest request,HttpServletResponse response)throws javax.servlet.ServletException,java.io.IOException {
doGet(request,response);
}
}
4.1.2 系统欢迎页面
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=GB2312");//设置响应MIME类型
PrintWriter out = response.getWriter();
request.setCharacterEncoding("gb2312");
String type2=getS(request.getParameter("type2"));
if(type2.trim().equals("addstu")){
StuInfo suser=new StuInfo();
String address=request.getParameter("address").trim();
String tel=request.getParameter("tel").trim();
String zhuanye=request.getParameter("zhuanye").trim();
if(address.equals(""))address="未填写";
if(tel.equals(""))tel="未填写";
if(zhuanye.equals(""))zhuanye="未填写";
suser.setSno(request.getParameter("sno").trim());
suser.setSname(request.getParameter("sname").trim());
suser.setSex(request.getParameter("sex").trim());
suser.setSid(request.getParameter("sid").trim());
// suser.setPhoto(request.getParameter("photo").trim());
suser.setAddress(address);
suser.setTel(tel);
suser.setScore(Integer.parseInt(request.getParameter("score").trim()));
suser.setGoodstu(request.getParameter("goodstu").trim());
suser.setPrise(request.getParameter("prise").trim());
suser.setXibu(request.getParameter("xibu").trim());
suser.setZhuanye(zhuanye);
if(new StuDll().addStu(suser)){
out.print("<script language='javascript'>alert('添加成功');window.location.href='/StudentManage/stuinfo.jsp?sno="+suser.getSno()+"';</script>");
return;
}else{
out.print("<script language='javascript'>alert('添加失败!!重新添加');window.location.href='/StudentManage/addstu.jsp';</script>");
}
}
if(type2.trim().equals("addxibu")){
request.setCharacterEncoding("gb2312");
String xno = request.getParameter("xno").trim();
String xname=request.getParameter("xname").trim();
System.out.println("s输出"+xno+xname);
XiBu xuser=new XiBu();
xuser.setXno(xno);
xuser.setXname(xname);
if(new XibuDll().addXiBuDll(xuser)){
out.print("<script language='javascript'>alert('添加系部信息成功!!');window.location.href='/StudentManage/fenyeshow.jsp';</script>");
//out.println("<script>alert('添加系部信息成功!!')</script>");
// response.sendRedirect("/StudentManage/addxibu.jsp");
}else{
out.print("<script language='javascript'>alert('!!添加系部失败');window.location.href='/StudentManage/fenyeshow.jsp';</script>");
}
}
if(type2.trim().equals("updatastu")){
System.out.println("123456");
StuInfo suser=new StuInfo();
suser.setSno(request.getParameter("sno").trim());
suser.setSname(request.getParameter("sname").trim());
suser.setSex(request.getParameter("sex").trim());
suser.setSid(request.getParameter("sid").trim());
// suser.setPhoto(request.getParameter("photo").trim());
suser.setAddress(request.getParameter("address").trim());
suser.setTel(request.getParameter("tel").trim());
suser.setScore(Integer.parseInt(request.getParameter("score").trim()));
suser.setGoodstu(request.getParameter("goodstu").trim());
suser.setPrise(request.getParameter("prise").trim());
suser.setXibu(request.getParameter("xibu").trim());
suser.setZhuanye(request.getParameter("zhuanye").trim());
if(new StuDll().updataStuInfo(suser)==0){
out.print("<script language='javascript'>alert('修改成功!!返回查看修改后信息');window.location.href='/StudentManage/stuinfo.jsp?sno="+suser.getSno()+"';</script>");
}else{
out.print("<script language='javascript'>alert('修改失败!!重新修改该学生信息');window.location.href='/StudentManage/updatastu.jsp?sno="+suser.getSno()+"';</script>");
}
}
if(type2.trim().equals("liuyan")){
request.setCharacterEncoding("gb2312");
LiuYan liuyan=new LiuYan();
liuyan.setLname(request.getParameter("lname"));
liuyan.setTel(request.getParameter("tel"));
liuyan.setEmail(request.getParameter("email"));
liuyan.setTheme(request.getParameter("theme"));
liuyan.setMessage(request.getParameter("message"));
if(new LiuYanDll().insertStu(liuyan)){
out.print("<script language='javascript'>alert('留言成功,谢谢你参及!!返回首页');window.location.href='/StudentManage/index.jsp';</script>");
}else{
out.print("<script language='javascript'>alert('!!留言失败!!重新留言');window.location.href='/StudentManage/index.jsp';</script>");
}
}
if(type2.trim().equals("upload")){
TheBean=new ();
TheBean.setSavePath("e:\\");
System.out.print("上传成功!!");
response.sendRedirect("/StudentManage/addxibu.jsp");
TheBean.doUpload(request);
4.1.3 系统应用页面
4.1.4 系统留言板页面
package dao;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import model.LiuYan;
public class LiuYanDao {
private Connection conn = new Connecter().getConnenction();
Statement sta = null;
public boo
展开阅读全文