iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java实现简单的图书管理系统
  • 951
分享到

java实现简单的图书管理系统

2024-04-02 19:04:59 951人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

本文实例为大家分享了java实现简单的图书管理系统的具体代码,供大家参考,具体内容如下 一、项目分布 Book类: 定义了书的一些属性(书名,作者,价格,分类,状态)并且写了属性的

本文实例为大家分享了java实现简单的图书管理系统的具体代码,供大家参考,具体内容如下

一、项目分布

Book类: 定义了书的一些属性(书名,作者,价格,分类,状态)并且写了属性的get、set方法
Library类: 写了登录函数(1、普通用户,2、管理员,3、退出系统),
Person类:定义的人的属性(姓名,性别,年龄)并且写了属性的get、set方法,定义了一些书。
operate接口:操作的接口,操作方法:查询/查阅,删除/借阅,增加/还书,显示书籍列表
Root类:继承了Person类,实现operate(查阅,删除,增加,显示书籍列表)接口
User类:继承了Person类,实现operate(查询,借阅,还书,显示书籍列表)接口
Main类:Main中的主函数开启整个项目。

模型图:

声明: 本项目只是一个简单的面向对象入门小项目,有一些基础理论需要掌握,比如对象,类,抽象类,接口,继承,实现,数组及数组的操作,for循环,while循环,switch语句,if语句。

二、代码展示

1.Book类


public class Book {
 private String name; //书名
 private String author; //作者
 public double price; //价格
 private String cateGory; //分类
 private boolean state; //状态  true-未借出  false-已借出

 //通过构造函数给定书的属性
 public Book(String name,String author,double price,String category,boolean state){
  this.author = author;
  this.name = name;
  this.price = price;
  this.category = category;
  this.state = state;
 }

 public Book() {  //默认10本书
  this(10);
 }
 public Book(int i) {
  Person.books = new Book[i];
 }

 //属性的获取和设置
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getAuthor() {
  return author;
 }
 public void setAuthor(String author) {
  this.author = author;
 }
 public double getPrice() {
  return price;
 }
 public void setPrice(double price) {
  this.price = price;
 }
 public String getCategory() {
  return category;
 }
 public void setCategory(String category) {
  this.category = category;
 }
 public boolean getState() {
  return state;
 }
 public void setState(boolean state) {
  this.state = state;
 }
}

2.Library类


import java.util.Scanner;

public class Library {
 Scanner sc = new Scanner(System.in);
 //登录函数:显示登录界面进行选择登录
 public void login() {
  int count = 0;
  Person p = null;
  while (count < 2) {
   System.out.println("===============jewel图书管理系统===============");
   System.out.println("欢迎讨论指正! qq505791225"+"\n");
   System.out.println("请登录:1.普通用户  2.管理员登录  3.退出系统");

   int n = sc.nextInt();
   //通过输入的值进行登录判断
   if (n == 3) {
    return;
   }
   switch (n) {
    case 1:
     System.out.println("请输入姓名:");
     String Uname = sc.next();
     System.out.println("请输入性别:");
     String Usex = sc.next();
     System.out.println("请输入年龄:");
     int Uage = sc.nextInt();

     p = new User(Uname,Usex,Uage); //构造普通用户对象

     System.out.println("登录成功!");
     System.out.println("当前普通用户:"+"姓名:" + p.getName() + " "+"性别:" + p.getSex() + " "+"年龄"+ p.getAge());
     //普通用户循环操作
     while (true) {
      System.out.println("请输入你的操作: 1.查询书籍 2.借阅书籍 3.归还书籍 4.显示书籍列表 5.退出");
      int i = sc.nextInt();
      if (i == 5) {
       System.out.println("您已成功退出!");
       break;
      }else {
       p.operate();  //调用普通用户的操作方法
      }
     }
     break;
    case 2:
     System.out.println("请输入管理员姓名:");
     String Rname = sc.next();
     System.out.println("请输入性别:");
     String Rsex = sc.next();
     System.out.println("请输入年龄:");
     int Rage = sc.nextInt();

     p = new Root(Rname,Rsex,Rage);//构造管理员对象

     System.out.println("登录成功!");
     System.out.println("当前管理员:"+"姓名:" + p.getName() + " "+"性别:" + p.getSex() + " "+"年龄" + p.getAge());
     while (true) {
      System.out.println("请输入你的操作: 1.整理书籍 2.查阅书籍 3.增加书籍 4.删除书籍 5.显示书籍列表 6.退出");
      int j = sc.nextInt();
      if (j == 6) {
       System.out.println("您已成功退出!");
       break;
      }else{
       p.operate();//调用管理员的操作方法
      }
     } break;
   }
  }
 }
}

3.Person类(抽象类)


abstract class Person {
 public String name;
 public String sex;
 public int age;
 
 public static Book[] books = new Book[]{
   new Book("西游记", "吴承恩", 10, "名著", true),
   new Book("红楼梦", "曹雪芹", 20, "名著", true),
   new Book("三国演义", "罗贯中", 15, "名著", true),
   new Book("小茗同学", "小明", 5, "杂志", true),
   new Book("C与指针", "马老师", 35, "计算机", true),
   new Book("Java编程思想", "王老师", 55, "计算机", true),
   new Book("新世界", "陈宇", 15, "杂志", true),
   new Book("阿衰与大头妹", "阿衰", 5, "漫画", true),
   new Book("一个人就一个人", "刘同", 35, "小说", true),
   new Book("活着", "陈彤", 36, "小说", true),
   new Book(),
   new Book(),
   new Book(),
 };

 public Person(String name, String sex, int age) {
  this.age = age;
  this.name = name;
  this.sex = sex;
 }

 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getSex() {
  return sex;
 }
 public void setSex(String sex) {
  this.sex = sex;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 
 public abstract void operate();
}

4.operate接口


public interface operate{  //操作的接口
    void select(Book[] books); //查询,查阅
    void delete(Book[] books);//删除,借阅
    void add(Book[] books); //增加,还书
    void list(Book[] books); //显示书列表
}

5.Root类


import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class Root extends Person implements Operate {
 //继承了人的类,需要重写它的抽象方法operate,实现了operate接口,需要重写接口内的方法
 
 public Root(String name, String sex, int age) {
  //调用人基类的构造函数
  super(name, sex, age);
 }

 Scanner sc = new Scanner(System.in);

 
 @Override
 public void operate() {
  System.out.print("请输入确认操作:");
  int i = sc.nextInt();
  switch (i) {
   case 1:
    //整理
    sort(books);
    break;
   case 2:
    //查
    select(books);
    break;
   case 3:
    //加
    add(books);
    break;
   case 4:
    //删
    delete(books);
    break;
   case 5:
    //列表
    list(books);
    break;
   default:
    System.out.println("输入有误!");
    break;

  }
 }

 
 public void sort(Book[] books) {
  System.out.println("图书馆中的书按价格整理如下:" + "\n" + "【书名】—— 【作者】——【价格】——【分类】——状态");
  Arrays.sort(books, new Comparator<Book>() {
   @Override
   public int compare(Book o1, Book o2) {
    return (int) (o1.getPrice() - o2.getPrice());
   }
  });
  //遍历数组打印书的列表
  for (int i = 0; i < books.length; i++) {
   if (books[i].price != 0) {
    System.out.println(
      "【" + books[i].getName() + "】—— 【" + books[i].getAuthor() + "】——【" + books[i].getPrice()
        + "】——【" + books[i].getCategory() + "】——" + books[i].getState());
   }
  }
 }

 @Override
 public void select(Book[] books) {
  System.out.println("请输入书名进行查询:");
  String name = sc.next();
  if (name != null) {
   boolean flag = false;
   int bookNum = 0;
   for (int i = 0; i < books.length; i++) {
    if (books[i].getName() != null && name.equals(books[i].getName())) {
     flag = true;
     bookNum = i;
     break;
    }
   }
   if (!flag) {
    System.out.println("未查询到此书籍!");
   } else {
    System.out.println("书籍信息为:" + "\n" + "【书名】—— 【作者】——【价格】——【分类】——状态");
    System.out.println(
      "【" + books[bookNum].getName() + "】—— 【" + books[bookNum].getAuthor() + "】——【" + books[bookNum]
        .getPrice() + "】——【" + books[bookNum].getCategory() + "】——" + books[bookNum]
        .getState());
   }
  }
 }

 @Override
 public void delete(Book[] books) {
  System.out.println("请输入要删除的书名:");
  String str = sc.next();
  if (str != null) {
   for (int i = 0; i < books.length; i++) {
    if (books[i].getName().equals(str)) {
     books[i] = null;
     System.out.println("删除成功!");
     break;
    }
   }
  }

 }

 @Override
 public void add(Book[] books) {
  System.out.println("请输入书名:");
  String name = sc.next();
  System.out.println("请输入作者:");
  String author = sc.next();
  System.out.println("请输入价格:");
  double price = sc.nextDouble();
  System.out.println("请输入分类:");
  String category = sc.next();

  boolean flag = false;
  for (int i = 0; i < books.length; i++) {
   if (books[i].getName() == null) {
    flag = true;
    books[i].setName(name);
    books[i].setAuthor(author);
    books[i].setPrice(price);
    books[i].setCategory(category);
    books[i].setState(true);
    System.out.println("添加成功");
    break;
   }
  }
  if (!flag) {
   System.out.println("【警告】数组预留buffer最多只能添加3本新书,没有位置放置新书了,如需添加多余3本,需要在‘Person'类中添加buffer!" + "\n");
  }

 }

 @Override
 public void list(Book[] books) {
  System.out.println("图书列表如下:" + "\n" + "【书名】—— 【作者】——【价格】——【分类】——状态");  //打印Book数组
  for (int i = 0; i < books.length; i++) {
   if (books[i] != null) {
    if (books[i].price != 0) {
     System.out.println(
       "【" + books[i].getName() + "】—— 【" + books[i].getAuthor() + "】——【" + books[i].getPrice()
         + "】——【" + books[i].getCategory() + "】——" + books[i].getState());

    }
   }
  }
 }
}

6.User类


import java.util.Scanner;

public class User extends Person implements Operate {   //user类继承了人的类,  实现operate接口

 public User(String name, String sex, int age) {
  //调用人基类的构造函数(派生类不继承基类的构造函数)
  super(name, sex, age);
 }

 Scanner sc = new Scanner(System.in);

 @Override
 public void operate() {  //普通用户的操作

  System.out.print("请输入确认操作:");
  int i = sc.nextInt();
  switch (i) {
   case 1:
    //查
    select(books);
    break;
   case 2:
    //借
    delete(books);
    break;
   case 3:
    //还
    add(books);
    break;
   case 4:
    //书列表
    list(books);
    break;
   default:
    System.out.println("输入有误!");
    break;
  }
 }

 @Override
 public void select(Book[] books) {
  System.out.println("请输入书名进行查询:");
  String name = sc.next();
  if (name != null) {
   boolean flag = false;
   int bookNum = 0;
   for (int i = 0; i < books.length; i++) {
    if (books[i].getName() != null && name.equals(books[i].getName())) {
     flag = true;
     bookNum = i;
     break;
    }
   }
   if (!flag) {
    System.out.println("未查询到此书籍!");
   } else {
    System.out.println("书籍信息为:" + "\n" + "【书名】—— 【作者】——【价格】——【分类】——状态");
    System.out.println(
      "【" + books[bookNum].getName() + "】—— 【" + books[bookNum].getAuthor() + "】——【" + books[bookNum]
        .getPrice() + "】——【" + books[bookNum].getCategory() + "】——" + books[bookNum]
        .getState());
   }
  }
 }

 @Override
 public void delete(Book[] books) {
  System.out.println("请输入要借阅的书名:");
  String name = sc.next();
  if (name != null) {
   for (int i = 0; i < books.length - 1; i++) {
    if (books[i].getName().equals(name)) {
     //借走书时设置状态为false
     if (!books[i].getState()) {
      System.out.println("【" + name + "】" + "已经被借出!");
     } else {
      books[i].setState(false);
      System.out.println("借阅成功!");
     }
     break;
    }
   }
  }
 }

 @Override
 public void add(Book[] books) {

  System.out.println("请输入要还的书名:");
  String name = sc.next();

  if (name != null) {
   boolean flag = true;
   int i = 0;
   while (flag) {
    if (books[i].getName().equals(name)) {
     if (!books[i].getState()) {
      books[i].setState(true);
      System.out.println("还书成功!");
      flag = false;
     } else {
      System.out.println("该书籍已经被还回!");
      break;
     }
    }
    i++;
   }
  }
 }


 @Override
 public void list(Book[] books) {
  System.out.println("图书列表如下:" + "\n" + "【书名】—— 【作者】——【价格】——【分类】——状态");  //打印Book数组
  for (int i = 0; i < books.length; i++) {
   if (books[i] != null) {
    if (books[i].price != 0) {
     System.out.println(
       "【" + books[i].getName() + "】—— 【" + books[i].getAuthor() + "】——【" + books[i].getPrice()
         + "】——【" + books[i].getCategory() + "】——" + books[i].getState());

    }
   }
  }
 }
}

7.Main类


public class Main {
    public static void main(String[] args) {
        Library library = new Library(); //构造Library对象
        library.login(); //调用对象的登录方法。
    }
}

三、实现结果

1.登录界面

普通用户登录

2.普通用户:查询、借阅、归还 、显示列表



3.管理员登录,按图书价格整理书籍

4.管理员添加书籍

5.管理员删除书籍

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: java实现简单的图书管理系统

本文链接: https://www.lsjlt.com/news/130633.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java实现简单图书管理系统
    本文实例为大家分享了java实现简单图书管理系统的具体代码,供大家参考,具体内容如下 JAVA练习的作业,题目如下: 设计一个图书管理系统类和用户类,要求具有以下功能: (1). 查...
    99+
    2024-04-02
  • java实现简单的图书管理系统
    本文实例为大家分享了java实现简单的图书管理系统的具体代码,供大家参考,具体内容如下 一、项目分布 Book类: 定义了书的一些属性(书名,作者,价格,分类,状态)并且写了属性的...
    99+
    2024-04-02
  • Python实现简单的图书管理系统
    本文实例为大家分享了Python实现图书管理系统的具体代码,供大家参考,具体内容如下 题目要求: 利用Python写一个简易的图书管理系统 需求: 图书管理系统 1.查询图书2.增加...
    99+
    2024-04-02
  • C++实现简单版图书管理系统
    本文实例为大家分享了C++实现简单版图书管理系统的具体代码,供大家参考,具体内容如下 1、系统需求 图书管理系统是一个可以记录图书借记和存储的工具。 本教程主要利用C++来实现一个图...
    99+
    2024-04-02
  • C++实现简单图书馆管理系统
    本文实例为大家分享了C++实现简单图书馆管理系统的具体代码,供大家参考,具体内容如下 写了一个小项目,图书馆系统,功能如下: 1,添加书籍2,删除书籍(可删除还没外借的书籍)3,读者...
    99+
    2024-04-02
  • 简单的图书管理系统(mysql)
    一、数据库结构设计 1.E-R图 2. 数据库创建语句 create database if not exists tsjy; use tsjy; 3. 表结构设计说明 借阅人表是一个实体表,它存储了借阅人的基本信息,如证件号、姓名、类别...
    99+
    2023-09-15
    数据库 mysql sql
  • Java实现简易版的【图书管理系统】
    目录 🌎1.分析图书管理系统的功能 🌍 2.在IDEA中进行功能类的创建 🦄2.1  创建一个名为book的包,里面存放书相关的 🦄 2.2 创建一个名为Operation...
    99+
    2023-09-11
    java
  • Java Web实现简易图书管理系统
    本文实例为大家分享了Java Web实现简易图书管理系统的具体代码,供大家参考,具体内容如下 前言 首先实现的是用户的登录注册,注册成功后自动跳转到图书列表页面,之后实现图书的增删改...
    99+
    2024-04-02
  • java实现简单的图书借阅系统
    本文实例为大家分享了java实现简单图书借阅系统的具体代码,供大家参考,具体内容如下 直接看代码: package ttt; import java.awt.BorderLayout...
    99+
    2024-04-02
  • java实现图书管理系统
    本文通过实例为大家分享了java实现图书管理系统的具体代码,供大家参考,具体内容如下 一、背景介绍 通过一段时间java编程的学习,需要一个比较综合的实例来进行编程的练习,是一个对前...
    99+
    2024-04-02
  • Java实现简单图书借阅系统
    本文实例为大家分享了Java实现图书借阅系统的具体代码,供大家参考,具体内容如下 为图书阅览室开发一个图书借阅系统,最多可存50本图书,实现图书的管理。图书借阅系统具备以下主要功能。...
    99+
    2024-04-02
  • Python实现简易的图书管理系统
    本文实例为大家分享了Python实现简易图书管理系统的具体代码,供大家参考,具体内容如下 首先展示一下图书管理系统的首页: 这是图书管理系统的发布图书页面: 最后是图书管理系统的...
    99+
    2024-04-02
  • python实现简易图书管理系统
    本文实例为大家分享了python实现简易图书管理系统的具体代码,供大家参考,具体内容如下 一、设计需求 1.添加书籍2.查询数据3.借书 存储方式 ,用excel保存到硬盘上或者用....
    99+
    2024-04-02
  • 如何用C++实现简单图书馆管理系统
    这篇文章主要介绍“如何用C++实现简单图书馆管理系统”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何用C++实现简单图书馆管理系统”文章能帮助大家解决问题。功能如下:1,添加书籍2,删除书籍(可删...
    99+
    2023-06-29
  • C语言链表实现简单图书管理系统
    本文实例为大家分享了C语言链表实现图书管理系统的具体代码,供大家参考,具体内容如下 实现功能: 用C语言制作图书管理系统,实现图书进行登记书籍,浏览书籍,借阅书籍,归还书籍,书籍排序...
    99+
    2024-04-02
  • C语言怎么实现简单的图书管理系统
    实现一个简单的图书管理系统可以使用C语言来实现,以下是一个简单的示例代码: #include <stdio.h> #in...
    99+
    2024-03-08
    c语言
  • C++实现简易图书馆管理系统
    本文实例为大家分享了C++实现简易图书馆管理系统的具体代码,供大家参考,具体内容如下 思路 在本程序中共有四个类: book类:此类有书的基本信息:书名,编号,作者,价格等,和基本的...
    99+
    2024-04-02
  • 用Java实现简易的图书管理系统(超详细)
    目录 1.设计背景 2.设计思路 3.模块展示及代码演示 3.1 Book类的实现 3.2 BookList类的实现(书架) 3.3 异常类的实现(OperationException) 3.4 用户类的实现 3.5 操作接口的实现(定义...
    99+
    2023-09-01
    java 开发语言
  • C++实现图书管理系统简易版
    本文实例为大家分享了C++实现图书管理系统的具体代码,供大家参考,具体内容如下 包括管理员端和学生端,可以对图书进行借阅,归还,还可以修改账号登陆密码等 #include<io...
    99+
    2024-04-02
  • Mysql实战练习之简单图书管理系统
    目录一、梳理功能二、准备数据库三、构造和数据库相关的实体类书籍用户NormalUser类四、封装数据库相关操作数据库链接操作针对书籍表操作针对用户表的操作编写主逻辑(main方法和l...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作