java综合实验-图书管理系统

二、实验项目内容(实验题目)

1. 使用Java编程语言进行实验。

2. 采用面向对象的思想进行系统设计。

3. 实现基本的图书管理功能,包括添加图书、删除图书、查询图书信息等。

4. 要求有良好的用户交互界面。

步骤参考:

步骤一:需求分析

1. 确定系统的基本功能和界面设计。

2. 定义图书类(Book)及其属性和方法。

3. 定义图书管理系统类(LibrarySystem)及其属性和方法。

步骤二:系统设计与实现

1. 创建一个图书类(Book),包含图书名称、作者、出版社等属性,并实现相关的get和set方法。

2. 创建一个图书管理系统类(LibrarySystem),包含添加图书、删除图书、查询图书信息等方法。

3. 在LibrarySystem类中,使用集合(如ArrayList)来存储图书信息。

4. 实现用户交互界面,可以使用命令行或者图形界面。

步骤三:测试与优化

1. 编写测试代码,验证图书管理系统的功能是否正常。

2. 运行程序,进行测试,并根据测试结果进行优化和修改。

参考效果如下:

四、源程序调试过程和(或)实验分析

完整的代码

Book

package Two;

public class Book {

    private String name;

       private String author;

       private String publisher;

     

       private boolean borrowed;

       public Book(String name, String author, String publisher, double price) {

       this.name = name;

       this.author = author;

       this.publisher = publisher;

      

       this.borrowed = false;

   }

   public String getName() {

       return name;

   }

   public String getAuthor() {

       return author;

   }

   public String getPublisher() {

       return publisher;

   }

  

   public boolean isBorrowed() {

       return borrowed;

   }

   public void setBorrowed(boolean borrowed) {

       this.borrowed = borrowed;

   }

   @Override

   public String toString() {

       return "名称:" + name + ",作者:" + author + ",出版社:" + publisher + ",状态:" + (borrowed ? "借出" : "未借出");

   }

   }

LibrarySystem

package Two;

import java.util.ArrayList;

import java.util.Scanner;

public class LibrarySystem {

    private static ArrayList<Book> books = new ArrayList<Book>();

    private static Scanner input = new Scanner(System.in);

   private static Object name;

   private static boolean found;

    public static void main(String[] args) {

        boolean running = true;

        while (running) {

            System.out.println("\n欢迎使用图书管理系统");

          

            System.out.print("请选择操作:");

            System.out.println("1. 添加书籍");

            System.out.println("2. 删除书籍");

            System.out.println("3. 查询书籍");

            System.out.println("4. 查看所有书籍");

           

            System.out.println("0. 退出系统");

            int choice = input.nextInt();

            input.nextLine();

            switch (choice) {

                case 1:

                    addBook();

                    break;

                case 2:

                    removeBook();

                    break;

                case 3:

                    searchBook();

                    break;

                case 4:

                    borrowBook();

                    break;

                case 0:

                    running = false;

                    System.out.println("感谢使用图书管理系统!");

                    break;

                default:

                    System.out.println("无效的选择,请重新选择!");

                    break;

            }

        }

    }

    private static void addBook() {

        System.out.print("请输入书名:");

        String name = input.nextLine();

        System.out.print("请输入作者:");

        String author = input.nextLine();

        System.out.print("请输入出版社:");

        String publisher = input.nextLine();

       

        Book book = new Book(name, author, publisher, 0);

        books.add(book);

        System.out.println("添加成功!");

    }

    private static void removeBook() {

        System.out.print("请输入要删除的书名:");

        String name = input.nextLine();

        boolean found = false;

        for (Book book : books) {

            if (book.getName().equals(name)) {

                books.remove(book);

                found = true;

                System.out.println("删除成功!");

                break;

            }

        }

        if (!found) {

            System.out.println("未找到该图书!");

        }

    }

    private static void searchBook() {

        System.out.print("请输入要查找的书名:");

        String name = input.nextLine();

        boolean found = false;

        for (Book book : books) {

            if (book.getName().equals(name)) {

                System.out.println("信息如下:");

                System.out.println(book);

                found = true;

                break;

            }

        }

     

        if (!found) {

            System.out.println("无信息!");

        }

    }

//所有

   private static void borrowBook() {

       System.out.print("书名\t"+"作者\t"+"出版社\t");

       for (Book book : books) {

             if (book.getName().equals(name)) {

                 System.out.println("信息如下:");

                 System.out.println(book);

                 found = true;

                 break;

             }

         }

 

if (!found) {

      System.out.println("无信息!");

   }

       

      

        

 

}

}

   

 

效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/277628.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

访谈型软文写作方式,媒介盒子告诉你

访谈型软文一般用于维护企业形象&#xff0c;分享品牌故事。但是许多企业在写访谈型软文时经常容易跑偏或者写来写去没有逻辑&#xff0c;今天媒介盒子就来和大家分享访谈型软文的写作方式&#xff0c;看完这四点&#xff0c;小白也能写好访谈型软文&#xff01; 一、 访谈对象…

leetcode 69. x 的平方根(优质解法)

代码&#xff1a; class Solution {public int mySqrt(int x) {long left0;long rightx;while (left<right){long midleft(right-left1)/2;//注意乘法操作和加法操作都很容易发生溢出if(mid*mid<x){leftmid;}else {rightmid-1;}}return (int)left;} } 题解&#xff1a;…

全域营销趋势下,品牌如何让流量变留量?

2023年已开始倒计时。 回望过去三年&#xff0c;社媒直播电商经历了从“野蛮生长”到“有序生长”的快速发展时期。 罗永浩的“真还传”、新东方向东方甄选的转型、董洁直播出圈翻红&#xff0c;命运的齿轮在不断转动&#xff0c;新的故事在不断抒写着。 伴随着头部达人的快速更…

【SpringBoot】配置文件

配置文件官网 1. 配置方式 application.propertiesapplication.yml / application.yaml 2. 自定义配置信息 将实体类中的本应该写死的信息写在属性配置文件中。 可以使用 Value("${键名}") 获取&#xff0c;也可以使用 ConfigurationProperties(prefix"前…

gitlab下载,离线安装

目录 1.下载 2.安装 3.配置 4.启动 5.登录 参考&#xff1a; 1.下载 根据服务器操作系统版本&#xff0c;下载对应的RPM包。 gitlab官网&#xff1a; The DevSecOps Platform | GitLab rpm包官网下载地址: gitlab/gitlab-ce - Results in gitlab/gitlab-ce 国内镜像地…

Spring上下文之注解模块ConfigurationMethod

博主介绍:✌全网粉丝5W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌ 博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+…

管理类联考——英语二——考点+记忆篇——大作文——表格

大作文Remarkablechangesconcerning主题词havebeenwitnessedinTheabovechartthoroughlyrevealedthefascinatingissue.Onecanseethat年份1,事物1wasonly数字1.ButwithinashortdurationofXyears,事物1bumpedto数字2in年份2.Apartfromthat,事物2hasenjoyedaslightdeclineduringthe…

Python移动未标注的图片数据集

Python移动未标注的图片数据集 前言前提条件相关介绍实验环境Python移动未标注的图片数据集情况一&#xff1a;有图&#xff0c;无标注文件代码实现输出结果 情况二&#xff1a;有图&#xff0c;有标注文件&#xff0c;但标注信息为空代码实现输出结果 情况一与情况二同时都考虑…

c++ 中多线程的相关概念与多线程类的使用

1、多线程相关概念 1.1 并发、并行、串行 并发&#xff08;Concurrent&#xff09;&#xff1a;并发是指两个或多个事件在同一时间间隔内运行。在操作系统中&#xff0c;是指一个时间段中有几个程序都处于已启动运行到运行完毕之间&#xff0c;且这几个程序都是在同一个处理机…

gRPC框架

1、gRPC 与 Protobuf 介绍 微服务架构中&#xff0c;由于每个服务对应的代码库是独立运行的&#xff0c;无法直接调用&#xff0c;彼此间 的通信就是个大问题gRPC 可以实现微服务&#xff0c; 将大的项目拆分为多个小且独立的业务模块&#xff0c; 也就是服务&#xff0c; 各服…

根文件系统(一):基础

本文主要探讨210根文件系统相关知识。 根文件系统 存储设备(flash等)是分块(扇区),访问存储设备是按块号 (扇区号)来访问,文件系统(软件)对存储设备扇区进行管理,将对扇区的访问变成对目录和文件名的访问 根文件系统init进程的应用程序和其他应用程序,提供根目…

6年级学生C++零基础,学过Scratch少儿编程,学习CSP-J的年度计划表

我是一个6年级学生C零基础&#xff0c;只学过一些Scratch少儿编程知识&#xff0c;准备明年参加信息学奥赛的CSP-J比赛&#xff0c;请为我写个学习计划&#xff0c;以下是一个针对学生的情况制定的学习计划&#xff1a; **学习目标&#xff1a;** 1. 掌握C编程语言的基本语法和…