资源描述
目 录
小型图书管理系统设计与实现
目 录
1、 引言 3
1.1选题 3
1.2开发计划 3
1.3开发工具与环境配置 3
2、 系统概述 4
2.1需求分析 4
2.2系统的架构 4
3、 详细设计 5
3.1功能结构图 5
3.2数据库设计 5
3.3页面的结构和关系图 6
3.4模块设计 7
4. 系统实现 18
5.结束语 20
1、 引言
1.1选题
为了实现图书管理的自动化,现对其设计相应的系统。与图书馆管理信息系统不同,本系统为小型图书管理系统,用于个人对所拥有的图书进行管理,具有管理员登录以及图书的增删改查功能。
1.2开发计划
设计一个小型图书管理系统,该系统由登录模块和功能模块组成。登录模块实现管理员登录,功能模块分为图书查询、图书入库、图书删除、图书修改四个部分。
1.3开发工具与环境配置
操作系统:Windows 7
数据库服务器:SQL server 2000(采用ODBC数据源连接)
Web服务器:Tomcat
开发工具:eclipse6.0
环境配置
JDK安装路径:C:\jdk
Tomcat服务器安装路径:D:\java软件\tomcat\apache-tomcat-7.0.37-windows-x86\apache-tomcat-7.0.37
环境变量设置JAVA_HOME=D:\jdk CLASSPATH=%JavaHome%\lib\dt.jar;%JavaHome%\lib\tools.jar
PATH变量添加的部分:%JAVA_HOME%\bin
2、 系统概述
2.1需求分析
2.1.1 图书管理系统需求概述
图书管理系统的开发主要涉及到管理员登录和图书信息管理。图书信息管理包括:添加新进图书、删除旧图书、修改图书信息、图书查询。图书管理员可以浏览、查询、添加、删除、修改图书的基本信息。
2.1.2 功能需求
(1)管理员登录——只有管理员才能对图书信息进行操作
(1)图书信息浏览——对入库的图书按编号进行浏览;
(2)图书查询——根据书名对图书进行快速查询;
(3)图书管理——对图书馆的书籍进行管理,添加、删除以及修改信息;
2.1.3 性能需求
可靠性和可用性需求:
(1)系统中的软件可以每天使用24小时,每年使用365天;
(2)系统中的软件故障率小于等于5%。
2.2系统的架构
考虑到本系统简单、容易实现,故没有采用传统的MVC模式,而是以纯JSP页面来实现各模块之间的跳转。
3、 详细设计
3.1功能结构图
登录界面
图书管理面板
编辑图书
查询图书
删除图书
添加图书
图1 图书管理系统功能结构图
3.2数据库设计
根据系统分析,设计图书信息管理系统的数据库(tsgl)表有:管理员信息表(表1)、图书信息表(表2)。表结构如下:
表1:gly_id
字段
说明
类型
长度
主键
备注
username
用户名
varchar
50
no
password
密码
varchar
30
no
表2:t_book
字段
说明
类型
长度
主键
备注
id
图书编号
char
11
yes
name
书名
varchar
50
no
author
作者
char
10
publish
出版社
varchar
50
no
price
图书价格
char
11
no
登录界面
login.jsp
3.3页面的结构和关系图
验证valid.jsp
密码错误
图书管理面板bookList.jsp
保存修改操作SavaBookEdit.jsp
保存插入操作SaveBookAdd.jsp
修改操作
bookEdit.jsp
删除操作
bookDel.jsp
插入操作bookAdd.jsp
查询
操作
图书管理面板bookList.jsp
密码正确
3.4模块设计
3.4.1登录模块
登录页面:Login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录图书管理系统 </title>
<style type="text/css">
<!--
.STYLE1 {
font-size: 36px;
font-weight: bold;
}
-->
</style>
</head>
<body bgcolor=cyan>
<form method="post" action="valid.jsp">
<table width="400" height="120" border="1" align="center">
<caption>
<span class="STYLE1">登录图书管理系统</span>
</caption>
<tr>
<td width="166">用户名:</td>
<td width="318"><input name="username" type="text" id="username"></td>
</tr>
<tr>
<td>密码:</td>
<td><input name="password" type="password" id="password"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="Submit" value="登录">
<input type="reset" name="Submit2" value="取消">
</td>
</tr>
</table>
</form>
</body>
</html>
验证程序:valid.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>判断登录</title>
</head>
<body>
<%
String user=request.getParameter("username");
String pass=request.getParameter("password");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:JDBC-ODBC","sa","sa");
PreparedStatement ps =con.prepareStatement("select * from gly_id where username=? and password=?");
ps.setString(1,user);
ps.setString(2,pass);
ResultSet rs = ps.executeQuery();
if(rs.next()){response.sendRedirect("bookList.jsp");}
else response.sendRedirect("Login.jsp");
%>
</body>
</html>
3.4.2图书管理模块
(1)图书浏览&&查询页面:bookList.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>图书管理面板</title>
<style type="text/css">
<!--
.STYLE1 {
font-size: 36px;
font-weight: bold;
}
-->
</style>
</head>
<body>
<form name="form1" method="get" action="bookList.jsp">
<table width="600" border="1" align="center" bgColor="#ffffff">
<br>
<caption>
<span class="STYLE1">图书信息一览表</span>
</caption>
<br>
<center>请输入书名:<input type="text" name="name" size="16" maxlength="25"><input type="submit" name="submit" value="查询"></center>
<br>
<tr>
<td width="98" bgColor="#808000">编号</td>
<td width="118" bgColor="#808000">书名</td>
<td width="118" bgColor="#808000">作者</td>
<td width="108" bgColor="#808000">出版社</td>
<td width="78" bgColor="#808000">价格</td>
<td width="60" bgColor="#808000">编辑</td>
<td width="60" bgColor="#808000">删除</td>
</tr>
<%
String name=null;
String sql="";
ResultSet rs=null;
if(request.getParameter("name")!=null)
name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
if (name==null)
sql="select * from t_book order by id";
else
sql="select * from t_book where name like'%"+name+"%' order by id";
System.out.print(name);
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:JDBC-ODBC","sa","sa");
Statement st=con.createStatement();
rs=st.executeQuery(sql);
while(rs.next()){
String ID=rs.getString("id");
%>
<tr>
<td><%=ID %></td>
<td><%=rs.getString("name") %></td>
<td><%=rs.getString("author") %></td>
<td><%=rs.getString("publish") %></td>
<td><%=rs.getString("price") %></td>
<td><a href="bookEdit.jsp?id=<%=ID%>">修改</a></td>
<td><a href="BookDel.jsp?id=<%=ID%>">删除</a></td>
</tr>
<%
}
st.close();
con.close();
}catch(Exception e){
e.printStackTrace();
}
%>
<tr>
<td colspan="7" align="center" bgcolor="#ff8000">
<input name="add" type="button" value="添加图书" onClick="location='BookAdd.jsp'">
</td>
</tr>
</table>
</form>
</body>
</html>
(2) 图书添加页面:BookAdd.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>添加图书信息</title>
<style type="text/css">
<!--
.STYLE1 {
font-size: 36px;
font-weight: bold;
}
-->
</style>
</head>
<body>
<form name="form1" method="post" action="bookSaveAdd.jsp">
<div align="center" class="STYLE1">添加图书信息 </div>
<table width="300" height="120" border="1" align="center">
<tr>
<td>编号:</td>
<td><input type="text" name="id" ></td>
</tr>
<tr>
<td width="74">书名:</td>
<td width="210"><input type="text" name="name"></td>
</tr>
<tr>
<td>作者:</td>
<td><input type="text" name="author" ></td>
</tr>
<tr>
<td>出版社:</td>
<td><input type="text" name="publish" ></td>
</tr>
<tr>
<td>价格:</td>
<td><input type="text" name="price" ></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="Submit1" value="提交">
<input type="reset" name="Submit2" value="重置">
</td>
</tr>
</table>
</form>
保存添加程序:SaveBookAdd.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>图书管理面板</title>
<style type="text/css">
<!--
.STYLE1 {
font-size: 36px;
font-weight: bold;
}
-->
</style>
</head>
<body>
<form name="form1" method="get" action="bookList.jsp">
<table width="600" border="1" align="center" bgColor="#ffffff">
<br>
<caption>
<span class="STYLE1">图书信息一览表</span>
</caption>
<br>
<center>请输入书名:<input type="text" name="name" size="16" maxlength="25"><input type="submit" name="submit" value="查询"></center>
<br>
<tr>
<td width="98" bgColor="#808000">编号</td>
<td width="118" bgColor="#808000">书名</td>
<td width="118" bgColor="#808000">作者</td>
<td width="108" bgColor="#808000">出版社</td>
<td width="78" bgColor="#808000">价格</td>
<td width="60" bgColor="#808000">编辑</td>
<td width="60" bgColor="#808000">删除</td>
</tr>
<%
String name=null;
String sql="";
ResultSet rs=null;
if(request.getParameter("name")!=null)
name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
if (name==null)
sql="select * from t_book order by id";
else
sql="select * from t_book where name like'%"+name+"%' order by id";
System.out.print(name);
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:JDBC-ODBC","sa","sa");
Statement st=con.createStatement();
rs=st.executeQuery(sql);
while(rs.next()){
String ID=rs.getString("id");
%>
<tr>
<td><%=ID %></td>
<td><%=rs.getString("name") %></td>
<td><%=rs.getString("author") %></td>
<td><%=rs.getString("publish") %></td>
<td><%=rs.getString("price") %></td>
<td><a href="bookEdit.jsp?id=<%=ID%>">修改</a></td>
<td><a href="BookDel.jsp?id=<%=ID%>">删除</a></td>
</tr>
<%
}
st.close();
con.close();
}catch(Exception e){
e.printStackTrace();
}
%>
<tr>
<td colspan="7" align="center" bgcolor="#ff8000">
<input name="add" type="button" value="添加图书" onClick="location='BookAdd.jsp'">
</td>
</tr>
</table>
</form>
</body>
</html>
(3) 删除操作:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="refresh" content="3;URL=bookList.jsp">
<title>删除图书</title>
</head>
<body>
<%
String strId = request.getParameter("id");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:JDBC-ODBC","sa","sa");
PreparedStatement ps = con.prepareStatement("delete from t_book where id=?");
ps.setString(1,strId);
ps.execute();
con.close();
%>
正在删除图书,3秒后自动跳转......
</body>
</html>
(4) 修改操作:bookEdit.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>编辑图书信息</title>
<style type="text/css">
<!--
.STYLE1 {
font-size: 36px;
font-weight: bold;
}
-->
</style>
</head>
<body>
<%
String strId = request.getParameter("id");//获取传过来的参数(网络上传输的只能是字符串)
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:JDBC-ODBC","sa","sa");
PreparedStatement ps =con.prepareStatement("select * from t_book where id=?");
ps.setString(1,strId);
ResultSet rs=ps.executeQuery();
if(rs.next()){
String ID=rs.getString("id");
%>
<form name="form1" method="post" action="bookSaveEdit.jsp">
<input type="hidden" name="id" value="<%=ID%>">
<div align="center" class="STYLE1">编辑图书信息</div>
<table width="300" height="120" border="1" align="center">
<tr>
<td>编号:</td>
<td><input name="id" type="text" value="<%=ID%>"></td>
</tr>
<tr>
<td width="74">书名:</td>
<td width="210"><input type="text" name="name" value="<%=rs.getString("name") %>"></td>
</tr>
<tr>
<td width="74">作者:</td>
<td width="210"><input type="text" name="author" value="<%=rs.getString("author") %>"></td>
</tr>
<tr>
<td>出版社:</td>
<td><input type="text" name="publish" value="<%=rs.getString("publish") %>"></td>
</tr>
<tr>
<td>价格:</td>
<td><input type="text" name="price" value="<%=rs.getString("price") %>"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="Submit" value="确定修改">
<input type="reset" name="Submit2" value="取消">
</td>
</tr>
</table>
</form>
<%
}
con.close();
%>
</body>
</html>
保存修改程序:SavaBookEdit.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>保存编辑</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
String name=request.getParameter("name");
String author=request.getParameter("author");
String pub=request.getParameter("publish");
String price=request.getParameter("price");
String id=request.getParameter("id");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:JDBC-ODBC","sa","sa");
PreparedStatement ps =con.prepareStatement("update t_book set name=?,author=?,publish=?,price=? where id=?");
ps.setString(1,name);
ps.setString(2,author);
ps.setString(3,pub);
ps.setString(4,price);
ps.setString(5,id);
ps.execute();
con.close();
response.sendRedirect("bookList.jsp");
%>
</body>
</html>
4. 系统实现
登录页面:
图书预览页面:
图书修改页面:
图书查询页面:
5.结束语
从上面的演示中可以看出,此系统可以完成用户登录和图书管理两大功能。在本系统的应用下可以实现图书管理员按照书名查询书库的藏书,方便的增添图书,删除图书,修改图书信息。测试阶段一方面发现了系统的各种错误,另外一方面验证了修改后的系统能够实现提高图书管理工作效率的预期目的。
不知不觉中,课程设计快接近尾声。回顾这几天,短暂而充实。经过这一个学期的学习,使我对java web开发有了一定的了解,从开始的j2se到后来的j2ee,一步一步的前进,一点一点的积累,最后完成了该图书管理系统的设计与实现。也是由于时间比较紧张只有五天时间,所以该系统功能比较简单,暂且留待日后在完善。
目 录
第一章 总 论 1
展开阅读全文