学生信息管理系统设计文档jsp
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生管理工作是学校教育工作的一个重要组成部分,随着国家教育的发展、学校规模的扩大、学生人数的增加等,学生管理工作信息量大幅度增加,对学生各种信息的汇总、统计、分析等管理工作面临着很大的困难。
因此,充分利用网络资源,建设“学生信息管理系统”,提高学生教育、管理的服务水平和工作效率,使学生工作科学化、现代化,已经成为学校学生管理工作面临的一个新课题。
本论文论述了学生信息管理系统的基本原理及实现技术,并采用B/S结构,使用Tomcat做为前台应用的服务器,SQL Server做为后台应用的数据库设计、开发出一套学生信息管理系统,运用到的技术有JSP、Html、SQL Server、Java 、JavaScript和CSS等。
该学生学籍管理系统主要对学生学籍信息、成绩信息进行管理,提供一个平台,供学籍管理人员增删改查学生信息、学生成绩信息。
系统分为学生信息管理、学生成绩管理、信息查询等几个模块。
学籍管理人员登录成功后可以对学生信息管理、学生成绩管理、信息查询等模块进行操作,如学生信息添加、修改、删除和查询;学生成绩登记、修改、删除和查询;查询信息等。
摘要
第1章引言 (1)
1.1系统开发背景 (1)
1.2系统简介 (1)
1.3系统使用范围 (1)
1.3.1JSP动态网站开发技术 (2)
1.3.2HTML超文本标记语言 (2)
1.3.3SQL Server数据库技术 (2)
1.3.4Java面向对象程序设计语言 (2)
1.3.5JavaScript网页特效技术 (3)
1.3.6CSS层叠样式表单技术 (3)
1.4系统开发工具 (3)
1.4.1Tomcat应用服务器 (3)
1.4.2Dreamweaver网页制作工具 (3)
1.4.3Photoshop平面设计工具 (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)
致谢
参考文献
I
第1章引言
1.1系统开发背景
随着科学的发展,教育的重视程度不断提高,学生人数逐年上升,传统的学生信息管理己暴露出很多效率和经济上的弊端。
学生信息管理已在学校经济和人力支出中占了很大比例,严重影响了学校教学质量的提高与教学进度的发展,改善学校学生信息管理的方法己成为当务之急。
学生信息管理系统和其他信息管理系统一样是当今管理信息不可缺少系统,它对学校的决策者和管理者以及学校的学生来说都有着重要的作用和价值。
正因如此学生信息管理系统应该为用户提供充足的信息资源和快捷的查询手段。
无论是对学生还是学生管理者来说都是一种体力劳动的减负。
为老师和管理者留出更多的时间,让他们把心思都花在怎样教学和自己的学习上。
同时也可以为学校节约经费。
学生信息管理系统具有手工管理所无法比拟的优点。
如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生信息管理的效率。
因此,开发这样一个低成本高效率的管理系统是十分必要的。
1.2系统简介
系统的名称为学生信息管理系统,简称SIMS(Student Information Management System)。
本系统能够实现学生信息的管理。
“学生信息的管理”可以实现对学生信息的录入、查询、修改和删除等功能。
学生信息包括学生基本信息和学生入学信息,学生基本信息涵盖该学生的身份信息、家庭信息和基本情况记录等,学生入学信息包含该学生的入学时间、学历层次、院部、专业和学号等信息。
通过学生信息的录入可以把学生的相关信息添加到系统中,通过学生信息的查询可以查看学生的基本信息和入学信息,通过学生信息的修改和删除可以对该学生的信息进行修改和删除操作。
1.3系统使用范围
本系统的设计考虑了系统的通用性,可以应用于教育系统的各种类型院校。
系统开发技术
- 1 -
1.3.1JSP动态网站开发技术
JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的,能够在多种操作系统上运行。
JSP技术使用Java 编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
1.3.2HTML超文本标记语言
HTML(Hyper Text Markup Language)即超文本标记语言,用于建立web页面和其他超级文本语言,是WWW的描述语言。
HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。
HTML的结构包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。
1.3.3SQL 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.4Java面向对象程序设计语言
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应用程序就可运行。
2
- -
1.3.5JavaScript网页特效技术
Javascript是由 Netscape公司开发的一种脚本语言(scripting language),或者称为描述语言。
在HTML基础上,使用Javascript可以开发交互式Web网页。
JavaScript 使网页增加互动性。
JavaScript 使有规律地重复的HTML文段简化,减少下载时间。
JavaScript 能及时响应用户的操作,对提交表单做即时的检查,无需浪费时间交由 CGI 验证。
1.3.6CSS层叠样式表单技术
CSS是CascadingStyleSheets(层叠样式表)的缩写。
是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。
加在head部分的<style type="text/css">和</style>分别被浏览器识别为CSS的开始和结束。
CSS的作用是定义网页的外观(例如字体,颜色等等),它也可以和javascript等浏览器端脚本语言合作做出许多动态的效果。
1.4系统开发工具
1.4.1Tomcat应用服务器
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。
Tomcat运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能。
Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
1.4.2Dreamweaver网页制作工具
Dreamweaver是美国 Macromedia公司开发的集网页制作和管理网站于一身的所见即所得网页编辑器,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。
使用网站地图可以快速制作网站雏形、设计、更新和重组网页。
改变网页位置或档案名称,Dreamweaver 会自动更新所有连结。
使用支援文字、HTML码、HTML 属性标签和一般语法的搜寻及置换功能使得复杂的网站更新变得迅速又简单。
- 3 -
1.4.3Photoshop平面设计工具
Photoshop是Adobe公司旗下最为出名的图像处理软件之一。
使用Photoshop 可以进行图像编辑、图像合成、校色调色及特效制作等工作,是网页制作和系统开发的美工伴侣。
4
- -
第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所示。
- 5 -
图2-2 学生信息管理系统数据流图
第3章系统概要设计3.1数据库设计
学生基本信息表
6
- -
系部类别信息表
留言信息表
管理员信息表
1.数据库连接
应用程序访问数据库首先要进行的是连接数据库,数据库的连接应用于密码验证、信息显示、信息录入及信息更改等应用中,本系统的应用程序采用JDBC(Java DataBase
- 7 -
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数据库用这个
- 9 -
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.sq l.ResultSet.CONCUR_READ_ONLY);
10
- -
rs=stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.out.println("sql.executeQuery:"+ex.getMessage());
}
return rs;
}
}
- 11 -
第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 erInfoDll;
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);
12
- -
}
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+"");
- 13 -
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);
}
}
14
- -
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);
- 15 -
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());
16
- -
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>");
}
- 17 -
}
if(type2.trim().equals("upload")){
FileUploadBean TheBean=new FileUploadBean();
TheBean.setSavePath("e:\\");
System.out.print("上传成功!!");
response.sendRedirect("/StudentManage/addxibu.jsp");
TheBean.doUpload(request);
4.1.3系统应用页面
4.1.4系统留言板页面
18
- -
package dao;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import model.LiuYan;
public class LiuY anDao {
private Connection conn = new Connecter().getConnenction();
Statement sta = null;
public boolean insertStu(LiuYan liuyan)
{
if (liuyan.getLname() == null) return false; //必须填写的不能为空
if(liuyan.getEmail()==null){ liuyan.setEmail("未填写");
if(liuyan.getTheme()==null) liuyan.setTheme("未填写");
if(liuyan.getMessage()==null) liuyan.setMessage("未填写");
}
Statement sta = null;
String insertOrderSQL = "insert into liuyan(lname,tel,email,theme,message) " + "values('"+liuyan.getLname()
+"','"+liuyan.getTel()+"','"+liuyan.getEmail()+"','"+liuyan.getTheme()+"','"+liuyan.getMessag e()+"')";
try
{
- 19 -
sta = conn.createStatement();
sta.execute(insertOrderSQL);
}catch (SQLException e)
{
e.printStackTrace();
return false;
}
return true;
}
}
20
- -
第5章结束语
经过不懈的努力“学生信息管理系统”已经开发完成,软件文档“学生信息管理系统设计”的撰写也完成,在此期间不仅提高了我们的软件开发能力也规范了我们软件文档的编写。
本学生信息管理系统设计合理、界面美观、操作方便、功能完善、运行稳定,可以应用于教育系统的各种类型院校,但是由于开发时间和个人能力有限,所以本系统还有许多待优化的地方,如缺少成绩打印模块及学生选课模块。
即将走出校园、步入社会,虽然身不在学校,但是学习的道路尚未结束,在以后的生活中我会不断提高自己的技术和水平。
- 21 -
致谢
本次软件文档经过两周的时间终于完成了,在此期间我们也遇到了很多困难。
但经过大家的共同努力,我们的学生信息管理系统,通过jsp+SqlServer2005以及div+css技术开发完成。
通过学习软件工程与软件文档写作这门课程,规范了我对软件文档的写作。
在此期间感谢姚海军老师的耐心指导及定期提问,让我们从中发现问题和不足并及时改正。
此文档的编写花费时间最多的就是系统详细设计部分,需要布局网页及个模块的代码编写。
在此感谢我们的团队正确分工,这样提高了软件开发的速度。
22
- -
北方民族大学学士学位论文
- - 23
参考文献
[1]软件工程与软件文档写作 文斌 刘长青 田原 编著
[2]JSP 动态WEB 技术实例教程 聂哲 主编
[3]Sqlserver2000数据库原理与应用 仝春灵 沈祥玖 主编。