图书管理系统的系统设计_图书管理系统设计与实现

图书管理系统的系统设计_图书管理系统设计与实现图书管理系统设计与实现图书馆人员结构复杂,人员数量有限,涉及方面很广,如果还使用手工操作处理图书借阅问题,工作将非常繁琐,需要大量的人力、物理、财力,极大的浪费了资源,对于图书管理人员来说,图书馆管理包括图书信息管理、图书类别管理、借阅信息管理、管理员信息管理等等。而这些项目在过去靠手工操作,需要手工记录这些事情,不但麻烦,还经常出错,给广大用户带来很多不便,因此,开发这样一套图书馆管理系统软件。让管理员方便的管理图书及用户信息,方便用户查找图书。1、本课程设计的目的(1)掌握企业级应用系统的基本

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

作者: IT学长,从事软件开发 努力在IT搬砖路上的技术小白
公众号:IT学长】,分享计算机类毕业设计源码、IT技术文章、游戏源码、网页模板、程序人生等等。公众号回复 【粉丝】进博主技术群,与大佬交流,领取干货学习资料
关于转载:欢迎转载博主文章,转载时表明出处
求赞环节:创作不易,记得 点赞+评论+转发 谢谢你一路支持

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

计算机类毕设源码大全:十几套计算机专业毕业设计文档及源码分享

下载本系统源码后如何运行?请看运行教程:《基于Web的图书管理系统运行教程详细版,可提供技术支持》

关注公众号:IT学长,回复:“图书管理系统” 下载本系统完整源码

在这里插入图片描述

1、本课程设计的目的

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

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

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

3、实现平台及技术

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

4、需求分析

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

5、系统功能模块划分

5.1 系统总体功能模块划分

在这里插入图片描述

5.2 用户登录模块

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

    当用管理员输入用户名和密码后,进行验证,如果用户名和密码其中有一个不正确,则不能登录,并有相应的提示,管理员可以进行个人资料的查询、修改和修改密码,管理员可以对图书信息,读者信息,借阅信息进行查看和管理,对图书进行分类

在这里插入图片描述

5.3 图书信息管理模块

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

5.4 读者管理模块

     管理员对读者信息可以进行进行修改、删除,并且可以主动添加新用户,该模块显示用户借阅天数,天数会自动变化,管理员可以在线监控读者借阅天数,如果到期未还者,账号则不能登录。

在这里插入图片描述

5.5 图书分类管理模块

     管理员在线对图书进行管理,对图书分类进行增加,修改,删除操作。

在这里插入图片描述

5.6 图书借阅信息模块

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

5.7 图书归还信息管理模块

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

5.8 图书查询模块

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

5.9 图书借阅信息模块

     显示当前登录用户借阅的所有图书,以及各个图书的编号,图书名称,借阅日期,还书日期,读者账号,读者名称信息。登录用户可以进行还书操作,还书是否成功有相应的提示。

5.10 借阅历史模块

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

6、数据库设计

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、系统详细设计和实现

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);
}
}

8、源码下载

其它模块设计与实现请查看 公众号:IT学长

完整文档和系统源码下载:

关注公众号:IT学长,回复:“图书管理系统” 下载本系统完整源码,
更多干货等你来拿

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/184096.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 类 InputStreamReader[通俗易懂]

    类 InputStreamReader[通俗易懂]InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。每次调用 InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。

  • java中String\十六进制String\byte[]之间相互转换函数和MD5加密

    java中String\十六进制String\byte[]之间相互转换函数和MD5加密java中String\十六进制String\byte[]之间相互转换函数和MD5加密

  • React 路由跳转后回到页面顶部

    React 路由跳转后回到页面顶部

  • docker网络的配置

    docker网络的配置docker网络的配置Linux内核实现名称空间的创建ipnetns命令可以借助ipnetns命令来完成对NetworkNamespace的各种操作。ipnetns命令来自于iproute安装包,一般系统会默认安装,如果没有的话,请自行安装。注意:ipnetns命令修改网络配置时需要sudo权限。可以通过ipnetns命令完成对NetworkNamespace的相关操作,可以通过ipnetnshelp查看命令帮助信息:[root@localhost~]#ipne

  • 阿里笔试题目「建议收藏」

    阿里笔试题目「建议收藏」题目描述一个淘宝的订单中包含n(10&gt;=n&gt;=1)种商品A1,A2,…,An,每种商品数量分别为a1,a2,…,an个,记做{a1,a2,…,an}(ak&gt;0)。订单在仓库生产过程中,仓库为了提升作业效率,会提前对热门组合商品进行预包装。假设这n个商品有m(9&gt;=m&gt;=1)个商品组合,每个组合bomk包含A1,A2,…,An的数量分别为{b1,b2,…,bn}(bk&…

  • 什么是热拔插?[通俗易懂]

    什么是热拔插?[通俗易懂](1)带电插拔,热插拔功能就是允许用户在不关闭系统,不切断电源的情况下取出和更换损坏的硬盘、电源或板卡等部件,从而提高了系统对灾难的及时恢复能力、扩展性和灵活性等,例如一些面向高端应用的磁盘镜像系统都可以提供磁盘的热插拔功能。(2)具体用学术的说法就是:热替换(Hotreplacement)、热添加(hotexpansion)和热升级(hotupgrade),而热插拔最早出现在服务器领域,…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号