图书管理系统设计与实现—看这篇就够了

图书管理系统设计与实现

图书馆人员结构复杂,人员数量有限,涉及方面很广,若是还使用手工操做处理图书借阅问题,工做将很是繁琐,须要大量的人力、物理、财力,极大的浪费了资源,对于图书管理人员来讲,图书馆管理包括图书信息管理、图书类别管理、借阅信息管理、管理员信息管理等等。而这些项目在过去靠手工操做,须要手工记录这些事情,不但麻烦,还常常出错,给广大用户带来不少不便,所以,开发这样一套图书馆管理系统软件。让管理员方便的管理图书及用户信息,方便用户查找图书。css

一、本课程设计的目的

(1)掌握企业级应用系统的基本开发流程;
(2)培养开发者掌握应用系统设计的基本思路和方法;
(3)培养开发者分析、解决问题的能力;html

二、系统要实现的功能概述

(1)用户登陆。管理员或会员根据用户名和密码进行身份验证登陆系统。
(2)图书管理。根据图书编号、图书名称查询图书基本信息添加、修改、删除图书。
(3)读者管理。根据帐号、姓名查询读者基本信息。添加、修改、删除读者信息。
(4)图书分类管理。根据分类名称查询图书分类信息。添加、修改、删除图书分类。
(5)图书借阅。展现全部正在借阅图书的信息。
(6)图书归还。展现全部已归还图书的信息。
(7)修改和查询我的信息。java

三、实现平台及技术

(1)JAVA语言
(2)MYSQL数据库
(3)WINDOWS 10操做系统
(4)JAVAEE 技术
(5)Servlet技术
(6)Eclipse工具
(7)Html、css、JavaScriptmysql

四、需求分析

    系统的主要目的是实现一个图书管理系统。系统有2类用户分别为管理员、 读者会员。管理员经口令认证进人系统后,管理员可完成维护系统的功能,包括管理图书和管理会员。读者会员则完成查询图书、修改我的资料、查询我的借阅信息、归还借阅图书的功能,工做完成后能够退出系统。web

五、系统功能模块划分

5.1 系统整体功能模块划分

在这里插入图片描述

5.2 用户登陆模块

    当用普通用户输入用户名和密码后,进行验证,若是用户名和密码其中有一个不正确,则不能登陆,并有相应的提示,若是用户没有帐号,能够在登陆页面进行注册,普通用户能够进行我的资料的查询、修改和修改密码,普通用户能够查询图书信息并借阅和退还,在首页面会展现图书借阅信息和借阅历史信息。sql

    当用管理员输入用户名和密码后,进行验证,若是用户名和密码其中有一个不正确,则不能登陆,并有相应的提示,管理员能够进行我的资料的查询、修改和修改密码,管理员能够对图书信息,读者信息,借阅信息进行查看和管理,对图书进行分类数据库

在这里插入图片描述

5.3 图书信息管理模块

    管理员对图书的数量,图书号,图书类型,图书名称等进行修改、删除管理,若是普通用户在线借书,图书总数会相应减小。
在这里插入图片描述websocket

5.4 读者管理模块

     管理员对读者信息能够进行进行修改、删除,而且能够主动添加新用户,该模块显示用户借阅天数,天数会自动变化,管理员能够在线监控读者借阅天数,若是到期未还者,帐号则不能登陆。session

在这里插入图片描述

5.5 图书分类管理模块

     管理员在线对图书进行管理,对图书分类进行增长,修改,删除操做。数据结构

在这里插入图片描述

5.6 图书借阅信息模块

     管理员能够在线管理借阅信息,能够主动帮读者还书。

5.7 图书归还信息管理模块

     显示归还图书的详细信息。

5.8 图书查询模块

     用户访问图书查询模块时显示当前能够借阅图书,有按图书名称查询图书信息的功能,能够进行借书操做。

5.9 图书借阅信息模块

     显示当前登陆用户借阅的全部图书,以及各个图书的编号,图书名称,借阅日期,还书日期,读者帐号,读者名称信息。登陆用户能够进行还书操做,还书是否成功有相应的提示。

5.10 借阅历史模块

     显示当前登陆用户的图书借阅记录。

六、数据库设计

6.1 数据库的 E-R 图

Admin(用户)表 E-R 图

Book(图书)表 E-R 图
在这里插入图片描述
BookType(图书类型)表 E-R 图
在这里插入图片描述
History(历史)表 E-R 图
在这里插入图片描述

6.2 数据库数据结构设计

    数据库采用的是的mysql数据库,系统主要须要维护4张数据表:

用户表信息(admin):
在这里插入图片描述
图书表信息(book):
在这里插入图片描述
图书类型表信息(bookType):
在这里插入图片描述
图书历史表信息(history):
在这里插入图片描述

七、系统详细设计和实现

7.1 用户登陆

    用户登陆主要是在登录窗体中实现身份验证。用户经过输入用户名和密码,进入图 5-1,判别用户名是否存在和密码是否正确。经过系统验证证后才能进入主界面;验证失败,则跳转登录界面返回错误信息,如登录帐号为空、登录密码为空、用户名和密码不匹配等并请从新输入。此登录页面图书管理员和普通用户进入时同样的,经过查询数据库status状态来判断用户属于哪种,从而进行不一样的跳转。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
主要代码:

package com.rain.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.websocket.Session;
import com.rain.bean.AdminBean;
import com.rain.dao.AdminDao;
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public LoginServlet() {
        super();    
}
Protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
}
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //登陆的判断
        PrintWriter out = response.getWriter();
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        //获取帐号和密码
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        AdminDao userdao = new AdminDao();
        //对帐号和密码进行判断
        boolean result = userdao.Login_verify(username, password);
        HttpSession session = request.getSession();
        //判断输入正确
        if (result) {
            AdminBean adminbean = new AdminBean();
            AdminDao admindao = new AdminDao();
            //更加帐号和密码查找出读者的信息
            adminbean = admindao.getAdminInfo(username, password);
            //将aid存入session中
            session.setAttribute("aid", "" + adminbean.getAid());
            //设置session的失效时间
            session.setMaxInactiveInterval(6000);
            //根据status的值来判断是管理员,仍是读者,status=1为读者
            if (adminbean.getStatus() == 1) {
                response.sendRedirect("/books/index2.jsp");
            } else {
                response.sendRedirect("/books/admin.jsp");
            }
        } else {
            //没有找到对应的帐号和密码,返回从新登陆
            session.setAttribute("state", "密码错误");
            response.sendRedirect("/books/login.jsp");
        }
    }
}
7.2 图书查询

    管理员能够经过根据图书号 、图书名称,做者名称,出版社等查询图书信息。
在这里插入图片描述
主要代码:

package com.rain.servlet;
import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.rain.bean.BookBean;
import com.rain.dao.BookDao;
@WebServlet("/selectServlet")
public class selectServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public selectServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        //由于在管理员界面和读者界面都有查找功能,为了将查找的结果返回正确的页面,设置了tip,tip=1表示管理员界面
        int tip = Integer.parseInt(request.getParameter("tip"));
        String name = request.getParameter("name");
        BookDao bookdao = new BookDao();
        ArrayList<BookBean> data = bookdao.getLikeList(name);
        //将获取的结果存入请求中
        request.setAttribute("data", data);
        String url = "";
        //转发不一样的界面
        if (tip == 1) {
            url = response.encodeURL("admin_book.jsp");
        } else {
            url = response.encodeURL("select.jsp");
        }
        //将请求转发
        request.getRequestDispatcher(url).forward(request, response);
    }
}
7.3 添加图书

在这里插入图片描述
主要代码:

package com.rain.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.rain.dao.BookDao;
@WebServlet("/AddBookServlet")
public class AddBookServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public AddBookServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置编码类型
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        //获取要添加图书的信息
        String card = request.getParameter("card");
        String name = request.getParameter("name");
        String type = request.getParameter("type");
        String autho = request.getParameter("autho");
        String press = request.getParameter("press");
        int num = Integer.parseInt(request.getParameter("num"));
        BookDao bookdao = new BookDao();
        //调用函数,存入图书
        bookdao.addBook(card, name, type, autho, press, num);
        response.sendRedirect("/books/admin_book.jsp");
    }
}
7.4 图书信息修改

在这里插入图片描述
主要代码:

package com.rain.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.rain.dao.BookDao;
@WebServlet("/updateBookServlet")
public class updateBookServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public updateBookServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //修改图书信息
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        String card = request.getParameter("card");
        String name = request.getParameter("name");
        String type = request.getParameter("type");
        String autho = request.getParameter("autho");
        String press = request.getParameter("press");
        int num = Integer.parseInt(request.getParameter("num"));
        Int bid = Integer.parseInt(request.getParameter("updatebid"));
        BookDao bookdao = new BookDao();
        bookdao.updateBook(bid, card, name, type, autho, press, num);
        response.sendRedirect("/books/admin_book.jsp");
    }
}
7.5 图书删除

主要代码:

package com.rain.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.rain.dao.BookDao;
@WebServlet("/deleteServlet")
public class deleteServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public deleteServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //删除图书信息
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        int bid = Integer.parseInt(request.getParameter("bid"));
        BookDao bookdao = new BookDao();
        bookdao.deleteBook(bid);
        response.sendRedirect("/books/admin_book.jsp");
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }
}

其它模块设计与实现请查看 公众号:C you again

完整文档和系统源码下载:
关注公众号:C you again 或扫描下方二维码,回复:“图书管理系统” 免费获取,
更多干货等你来拿
在这里插入图片描述

好用记得点赞分享哦!!!! 注:此系统不是本人原创,在原系统基础上进行修改,加以创新。 侵权请联系删除

相关文章
相关标签/搜索