首页 > 其他分享 >在线图书馆系统

在线图书馆系统

时间:2023-06-04 19:02:37浏览次数:28  
标签:scanner 在线 Book 系统 System 图书馆 book println out

以下是一个稍微复杂一些的Java代码,它的作用是实现一个简单的在线图书馆系统,可以添加、删除、借阅、归还和查询图书信息:

import java.util.ArrayList;
import java.util.Scanner;

public class LibrarySystem {
    private ArrayList<Book> books;
    private ArrayList<User> users;
    private Scanner scanner;

    public LibrarySystem() {
        books = new ArrayList<>();
        users = new ArrayList<>();
        scanner = new Scanner(System.in);
    }

    public void run() {
        int choice = 0;
        do {
            System.out.println("Welcome to the Library System!");
            System.out.println("1. Add book");
            System.out.println("2. Remove book");
            System.out.println("3. Borrow book");
            System.out.println("4. Return book");
            System.out.println("5. Search book");
            System.out.println("6. Register user");
            System.out.println("7. Remove user");
            System.out.println("8. Exit");
            System.out.print("Enter your choice: ");
            choice = scanner.nextInt();
            switch (choice) {
                case 1:
                    addBook();
                    break;
                case 2:
                    removeBook();
                    break;
                case 3:
                    borrowBook();
                    break;
                case 4:
                    returnBook();
                    break;
                case 5:
                    searchBook();
                    break;
                case 6:
                    registerUser();
                    break;
                case 7:
                    removeUser();
                    break;
                case 8:
                    System.out.println("Goodbye!");
                    break;
                default:
                    System.out.println("Invalid choice!");
            }
        } while (choice != 8);
    }

    private void addBook() {
        System.out.print("Enter book title: ");
        String title = scanner.next();
        System.out.print("Enter book author: ");
        String author = scanner.next();
        System.out.print("Enter book ISBN: ");
        String isbn = scanner.next();
        Book book = new Book(title, author, isbn);
        books.add(book);
        System.out.println("Book added successfully!");
    }

    private void removeBook() {
        System.out.print("Enter book ISBN: ");
        String isbn = scanner.next();
        for (int i = 0; i < books.size(); i++) {
            Book book = books.get(i);
            if (book.getIsbn().equals(isbn)) {
                books.remove(i);
                System.out.println("Book removed successfully!");
                return;
            }
        }
        System.out.println("Book not found!");
    }

    private void borrowBook() {
        System.out.print("Enter book ISBN: ");
        String isbn = scanner.next();
        System.out.print("Enter user ID: ");
        int userId = scanner.nextInt();
        for (int i = 0; i < books.size(); i++) {
            Book book = books.get(i);
            if (book.getIsbn().equals(isbn)) {
                if (book.isBorrowed()) {
                    System.out.println("Book already borrowed!");
                    return;
                } else {
                    book.setBorrowed(true);
                    book.setBorrowedBy(userId);
                    System.out.println("Book borrowed successfully!");
                    return;
                }
            }
        }
        System.out.println("Book not found!");
    }

    private void returnBook() {
        System.out.print("Enter book ISBN: ");
        String isbn = scanner.next();
        for (int i = 0; i < books.size(); i++) {
            Book book = books.get(i);
            if (book.getIsbn().equals(isbn)) {
                if (book.isBorrowed()) {
                    book.setBorrowed(false);
                    book.setBorrowedBy(-1);
                    System.out.println("Book returned successfully!");
                    return;
                } else {
                    System.out.println("Book not borrowed!");
                    return;
                }
            }
        }
        System.out.println("Book not found!");
    }

    private void searchBook() {
        System.out.print("Enter book title or author: ");
        String keyword = scanner.next();
        for (int i = 0; i < books.size(); i++) {
            Book book = books.get(i);
            if (book.getTitle().contains(keyword) || book.getAuthor().contains(keyword)) {
                System.out.println(book);
            }
        }
    }

    private void registerUser() {
        System.out.print("Enter user ID: ");
        int id = scanner.nextInt();
        System.out.print("Enter user name: ");
        String name = scanner.next();
        User user = new User(id, name);
        users.add(user);
        System.out.println("User registered successfully!");
    }

    private void removeUser() {
        System.out.print("Enter user ID: ");
        int id = scanner.nextInt();
        for (int i = 0; i < users.size(); i++) {
            User user = users.get(i);
            if (user.getId() == id) {
                users.remove(i);
                System.out.println("User removed successfully!");
                return;
            }
        }
        System.out.println("User not found!");
    }
}

这个程序实现了一个简单的在线图书馆系统,用户可以执行以下操作:

  1. 添加图书
  2. 删除图书
  3. 借阅图书
  4. 归还图书
  5. 查询图书
  6. 注册用户
  7. 删除用户
  8. 退出系统

这个程序使用了许多面向对象编程的概念,包括类、对象、继承、封装和多态。它还演示了Java中许多常用类和方法的使用,例如ArrayList、Scanner和switch语句。这个程序比之前的例子更加复杂,但它可以作为一个更高级的Java应用程序的基础。

标签:scanner,在线,Book,系统,System,图书馆,book,println,out
From: https://blog.51cto.com/u_16096459/6411737

相关文章

  • pnpm:无法加载文件 C:\Users\Five\AppData\Roaming\npm\pnpm.ps1 ,因为在此系统
    前言重装完了电脑系统,运行pnpm无法加载文件,pnpm-V也不行解决方案用管理员方式启动powershell输入命令:set-ExecutionPolicyRemoteSigned然后再输入:Y重启代码编辑器 ......
  • 如何选择 CMS – 内容管理系统的技巧
    如果您是企业家或开发人员,您很可能会在某个时候使用内容管理系统(CMS)。在为您的用例选择正确的选项时,了解如何分析CMS选项的众多功能非常重要。在本文中,我将解释CMS存在的原因、它们帮助解决的问题,并且我还将提供有用的指导,帮助您根据需要选择合适的CMS。(更多优质教程:jav......
  • 【Windows】TreeSoft数据库管理系统 TreeDMS 和 TreeNMS
    官方地址:http://www.treesoft.cn/dms.html#learningTreeSoft数据库管理系统TreeDMS支持MySQL,MariaDB,Oracle,PostgreSQL,SQLServer,DB2,MongoDB,Hive,SAPHANA,Sybase,Caché,Informix,Impala,ElasticSearch,clickHouse,cassandra,AmazonRedshift,达梦DM,金仓Kin......
  • 电子公文传输系统实验报告
    目录一.编译与运行页面及代码部分展示二.信息资产的存放与保护保护的信息资产保护形式信息资产的存放三.实现方案方案集合四.根据GMT0054标准实行安全性措施访问控制机密性加密解密五.心得体会一.编译与运行在你的电脑上编译小组项目,提交截图。在你的电脑上运行小组项目,提交......
  • node.js安装及环境配置教程【Windows系统安装包方式】
    一、下载安装包:https://nodejs.org/zh-cn/download/注:根据自己电脑系统及位数选择,我的电脑是Windows系统、64位、想下载稳定版的.msi(LTS为长期稳定版)这里选择windows64位.msi格式安装包。.msi和.zip格式区别:.msi是Windowsinstaller开发出来的程序安装文件,它可以让你安装,修改,......
  • 郑州公交车系统设计结果
    用户故事:作为郑州公交车的乘客,增加公交车辆出行效率,缓解拥挤情况,提高乘客出行便利性。改善公交车站环境,提高乘客出行安全性。我想要郑州公交车系统能够实现地图服务,地图管理,车辆、地名、线路检索,车辆实时显示,轨迹绘制,距离计算,车辆实时监控子功能。根据GPS全球定位系统、智能传感......
  • 【Linux文件系统】文件描述符fd是什么?
    fd是什么?fd是Filedescriptor的缩写,即文件描述符,fd是一个非负证书,本质是一个索引值。当打开一个文件时,内核向进程返回一个文件描述符(open系统调用返回得到),后续read、write这个文件时,只需要用这个文件描述符来标识这个文件,将其作为参数传入read、write。fd的不同值代表什么?0......
  • 智能AI客服系统- 企业AI知识库
    我们都使用过ChatGPT,也能感受得到他的大模型能力。但是,它并不能知道我们企业或个人的私有知识信息。现在,唯一客服系统已经搭配了智能知识库AI,基于ChatGPT和私有数据构建智能知识库,智能辅助客服回复用户消息。可以做到全自动回复,或者辅助客服人工回复。智能AI客服系统+企业AI知......
  • xxx管理系统
    宿舍管理系统图书管理系统学生选课系统在线考试系统学生成绩管理系统人力资源管理系统医院管理系统酒店管理系统购物网站/电子商务系统在线银行系统电影票订购系统基于位置的应用(如餐厅预订系统、出租车叫车应用)社交网络平台在线订餐系统旅游管理系统智能家居控制......
  • PECMD 是一种管理和调试 Windows PE 系统的命令行工具,主要用于在 WinPE 环境下进行系
    PECMD是一种管理和调试WindowsPE系统的命令行工具,主要用于在WinPE环境下进行系统管理、修复和救援等操作。根据资料记录,PECMD已经发布了如下版本:PECMD2003:发布于2003年,适用于WindowsPE1.0版本。PECMD2005:发布于2005年,适用于WindowsPE2.0版本,新增支持更......