Java课程设计——图书管理系统

点赞+收藏,首页简介获取源码!!!
点赞+收藏,首页简介获取源码!!!
点赞+收藏,首页简介获取源码!!!

一、需求分析

1、实现登录基本逻辑
2、实现登录后对图书的管理,包括增、删、改、查
3、实现登录后对用户的管理,包括增、删、改、查
4、用户可以借阅处于空闲状态的图书,被借阅后的图书不能再被其他用户借阅,用户可以归还图书,归还后的图书可以再次被借阅

二、技术介绍

2.1相关技术

  • Spring + SpringMVC + MyBatis(SSM)
  • Jsp + JQuery
  • Mysql

2.2开发环境

idea + tomcat

三、功能实现

1、登录

在这里插入图片描述

2、图书管理

2.1图书列表

在这里插入图片描述

2.2添加图书

在这里插入图片描述

2.3修改图书信息

在这里插入图片描述

2.4查询图书信息

在这里插入图片描述

3、用户管理

3.1借阅图书

在这里插入图片描述

3.2修改借阅信息

在这里插入图片描述

3.3归还图书

在这里插入图片描述

4、退出系统

在这里插入图片描述

四、部分代码实现

BookMapper.java

package com.codejams.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.codejams.domain.Book;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;


public interface BookMapper{

    List<Book> findAllBook();

    Book findBookById(int id);

    void update(Book book);

    void save(Book book);

    void delete(int id);

    List<Book> findBookByCondition(String condition);

    void changeStatusToLeisure(String name);

    void changeStatusToNotLeisure(String name);

}

BorrowerController.java

package com.codejams.controller;

import com.codejams.domain.Book;
import com.codejams.domain.Borrower;
import com.codejams.service.BookService;
import com.codejams.service.BorrowerService;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import java.util.List;

@Controller
@RequestMapping("/borrower")
public class BorrowerController {

    private BorrowerService borrowerService = new BorrowerService();
    private BookService bookService = new BookService();


    @RequestMapping("/findAllBorrower")
    public ModelAndView findAllBorrower(){

        ModelAndView modelAndView = new ModelAndView();

        List<Borrower> borrowerList = borrowerService.findAllBorrower();
        List<Book> bookList = bookService.findAllBook();

        //设置视图
        modelAndView.setViewName("/workbench/activity/borrower-list.jsp");
        modelAndView.addObject("borrowerList",borrowerList);
        modelAndView.addObject("bookList",bookList);

        return modelAndView;
    }

    @RequestMapping("/findBorrowerByCondition")
    public ModelAndView findBookByCondition(String condition){

        ModelAndView modelAndView = new ModelAndView();

        System.out.println(condition);
        List<Borrower> borrowerList = borrowerService.findBorrowerByCondition(condition);
        List<Book> bookList = bookService.findAllBook();
        for (Borrower borrower : borrowerList) {
            System.out.println(borrower);
        }


        //设置视图
        modelAndView.setViewName("/workbench/activity/borrower-list.jsp");
        modelAndView.addObject("borrowerList",borrowerList);
        modelAndView.addObject("bookList",bookList);

        return modelAndView;
    }

    @RequestMapping("/save")
    public String save(Borrower borrower){
        System.out.println(borrower);
        borrowerService.save(borrower);

        //保存后将改书的状态改为已借出
        bookService.changeStatusToNotLeisure(borrower.getBook());

        return "redirect:findAllBorrower";
    }

    @RequestMapping("/delete")
    public String delete(int id){
        Borrower borrower = borrowerService.findBorrowerById(id);
        //将对应的书修改为空闲状态
        bookService.changeStatusToLeisure(borrower.getBook());
        borrowerService.delete(id);

        return "redirect:findAllBorrower";
    }

    @RequestMapping("/update")
    public String update(Borrower borrower){
        System.out.println(borrower);
        //修改前先将书的状态改为空闲
        int id = borrower.getId();
        Borrower bor = borrowerService.findBorrowerById(id);
        bookService.changeStatusToLeisure(bor.getBook());

        borrowerService.update(borrower);
        bookService.changeStatusToNotLeisure(borrower.getBook());


        return "redirect:findAllBorrower";
    }

    @RequestMapping(value = "/findBorrower", produces = "application/json;charset=UTF-8")
    @ResponseBody
    public String findBorrower(String id){
        int bid = Integer.parseInt(id);
        System.out.println(bid);

        Borrower borrower = borrowerService.findBorrowerById(bid);
        System.out.println(borrower);

        ObjectMapper objectMapper = new ObjectMapper();

        String json = null;
        try {
            json = objectMapper.writeValueAsString(borrower);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }

        return json;
    }

}

获取源码(可定制)

点赞+收藏,首页简介获取源码!!!
点赞+收藏,首页简介获取源码!!!
点赞+收藏,首页简介获取源码!!!

图书馆管理系统 1.课程设计的目的 目前,随着网络技术的飞速发展,各行各业都在追求信息化,以防在信息时代落伍,而普 通高校也如此,图书馆是高校师生获得知识的一个重要渠道。因此一个健全的图书管理系 统就必不可少,图书管理系统的使用大大的提高了图书馆的工作效率,很好的节省了大量 的人力、物力和财力资源。管理信息系统的开发是一个开发周期长、技术要求高、影响 因素多的复杂系统工程,因此制定一个完善、可行、合理的开发计划,不仅是系统开发成 功的保证,而且可以提高效率、节省时间、降低成本。 由于在过去人们对信息管理的主要方式是基于文本、表格等纸质的手工处理之上的, 而用手工进行图书借阅管理存在多种弊端,其中包括图书过于繁多,包含很多的信息数据 的管理对于图书借阅情况如:借阅天数、超过限定借阅时间等等的统计和核实,往往采用 对借阅卡的人工查询进行,对借阅天数等用人工计算、手抄进行。信息处理工作量大,容 易出错;由于数据繁多,容易丢失,且不易查找。总的来说缺乏系统、规范的管理手段人 们操控起来是很困难的;因此,使用电子化的管理手段将是大势所趋,建立一个图书管理 系统也是图书管理部门提高工作效益的有效手段。系统能够合理高效地利用图书资源,使 得图书借阅更加的科学合理。 2.设计方案论证 2.1需求分析 对于一个图书管理系统来说,图书的查询及数据的维护管理是其中的核心环节。在现 现行的图书管理中存在几个共同的问题: 〔1图书种类过多,数据庞大;这是几乎所有图书馆都会遇到的共同问题,各种不同种 类的图书馆为这些图书入库,进行添加于维护增加了很多的难题,对这些数据的反复输入 ,往往造成庞大的工作量和较低的效率。 〔2查询图书困难,每天的借阅情况,读者借阅的到期、还书情况,各项数据的汇总和统 计情况必须由管理员统计上报,图书库总管理员才能考虑对图书馆的硬件如某类书的需求 数量进行改变已向上级申报。 〔3图书毁坏及图书破损;在借阅过程中难免此类现象的发生,如何及时发现及事后对 毁坏图书进行淘汰和更新也是个需要解决的问题。 〔4不能及时归还图书;经常有读者超过借阅期的情况发生,对此类读者的超期信息提 示也是图书借阅管理工作中必须解决的问题之一。 本软件主要有以下几方面的功能 〔1系统部分:主要完成本系统工程的维护工作〔包括:添加用户、添加员工、修改 密码 〔2图书管理部分:要完成图书基本信息的管理〔包括:添加、修改、查询、删除图 书基本信息 〔3借阅管理部分:主要完成图书借阅的管理〔包括:图书借阅、归还、查询等2.2系 统包含的类及类之间的关系 本系统共包括15个Java源文件和1个辅助文件。类之间的关系如图1所示。 图1 类关系图 <1>AppBook.java 该文件包含主函数入口,旨在创建登录界面对象并在屏幕中居中显示。 <2>FrLogin.java 该文件是登录界面的封装类,定义并设置了登录界面相关组件及显示效果,还定义了登 录、退出按钮的事件监听。功能:点击登录按钮,对填写的信息进行验证并与数据库数据 进行比对,匹配就登录成功进入主界面;取消按钮即可退出系统。 <3>FrMain.java 该文件是主界面的封装类,定义并设置了主界面相关组件及显示效果,还定义了菜单栏 上面各菜单项的监听事件,有系统管理:修改管理员密码、退出,基本操作:添加新读者 、新书入库、借书、还书、续借、读者管理、图书管理,帮助:关于等10个事件的监听。 功能:点击对应的菜单栏就会弹出对应的对话框,并传递需要的参数。 <4>FrChange.java 该文件是修改用户密码界面的封装类,定义并设置了更改密码界面相关组件及显示效 果,还定义了确定、取消按钮的事件监听。功能:点击确定按钮,对输入的信息进行验证 并与数据库数据进行比对,匹配就更新数据库,下次登录使用新密码;取消按钮即关闭修 改密码界面。 <5>FrAddreader.java 该文件是添加新读者界面的封装类,定义并设置了添加新读者界面相关组件及显示效 果,还定义了提交、返回按钮的事件监听。功能:点击提交按钮,对输入的信息进行验证 ,通过就写入数据库然后返回读者的编号,不符合要求就提示重新输入;返回按钮即关闭 添加新读者界面。 <6>FrAddBook.java 该文件是新书入库界面的封装类,定义并设置了新书入库界面相关组件及显示效果,还 定义了提交、退出按钮的事件监听。功能:点击提交按钮,对输入的信息进行验证,通过 就写入数据库然后返回图书添加成功消息,不符合要求就提示重新输入;退出按钮即关闭 新书入库界面。 <7>FrBorrow.java 该文件是借书登记界面的封装类,定义并设置了借书登记界面相关组件及显示效果,还 定义了确定、取消按钮的事件监听。功能:点击确定按钮,对输入的信息进行验证,若输 入的信息满足要求
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

VX_codejams

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值