图书管理系统(面向对象的编程练习)

news/2024/9/20 5:59:14 标签: java

图书管理系统(面向对象的编程练习)

  • 1.系统演示
  • 2.设计框架讲解
  • 3.代码的详细讲解
    • 3.1 多本书籍的实现
    • 3.2 不同操作人员的实现
    • 3.3 不同work操作的实现

1.系统演示

下面主要展示系统的删除图书功能和显示图书功能,帮助大家在开始写代码前先了解图书管理系统的相关内容。
在这里插入图片描述

2.设计框架讲解

图书管理系统

  • 如上述演示可以看出图书管理系统中涉及到多本书籍的操作,如《小王子》、《人生海海》、《人间信》等,所以应该创建数组储存这些书籍。(book类以一本书为对象描述书的名字、作者、价格等等)
  • 不同的操作人员进行的操作是不同的,如上述演示中管理者有新增图书的操作,而使用者有借阅图书的操作。

在这里插入图片描述

3.代码的详细讲解

3.1 多本书籍的实现

由于这一部分比较简单,所以不在此赘述,直接上代码!!!

1、创建book类

java">public class book {
    protected String bookName;
    protected String author;
    protected int price;
    protected String type;
    protected boolean condition;

    public book(String bookName, String author, int price, String type, boolean condition) {
        this.bookName = bookName;
        this.author = author;
        this.price = price;
        this.type = type;
        this.condition = condition;
    }

    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
     public boolean isCondition() {
        return condition;
    }

    public void setCondition(boolean condition) {
        this.condition = condition;
    }

}

2、创建booklist类

java">public class bookList {

    private book[] list=new book[10];
    private int number=3;

    public bookList() {
        this.list[0]= new book("小王子","安托万",17,"小说",true);
        this.list[2]= new book("人生海海","麦家",39,"小说",true);
        this.list[3]= new book("人间信","麦家",39,"小说",true);

    }

}

3.2 不同操作人员的实现

1、创建父类people

在这里插入图片描述

2、创建子类manager
在这里插入图片描述
3、创建子类user

(和上述manager相似,不做过多解释)

在这里插入图片描述
4、目前为止的演示(主要检查不同操作人员的多态实现)

main函数

java">public class Main {
    public static people login() {
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入你的名字:");
        String name = scanner.nextLine();
        System.out.println("请选择:");
        System.out.println("******1.管理者**");
        System.out.println("******2.使用者**");
        int choice = scanner.nextInt();
        if (choice == 1) {
            return new managers(name);
        } else {
            return new user(name);
        }
    }

    public static void main(String[] args) {
        bookList b=new bookList();
        people p= login();
        p.menu();
        p.work();
    }
}

结果展现
在这里插入图片描述

3.3 不同work操作的实现

1、创建IOPeration接口

在这里插入图片描述
2、演示上述代码(重新顺一下思路)

在这里插入图片描述
3、具体功能的实现
(以删除图书和展示图书为例)

java">//删除图书
public class Del implements IOPeration{
    @Override
    public void work(bookList b) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入您要删除的图书的名字:");
        String name=scanner.nextLine();
        int pos=-1;
        int i=0;
        //找书
        for ( ; i < b.number; i++) {
            if(b.list[i].getBookName().equals(name)){
                pos=i;
                break;
            }
        }
        if(b.number==i){
            System.out.println("这里没有你要找的书");
            return;
        }
        //删书
        for (int i1 = pos; i1 < b.number-1; i1++) {
            b.list[pos]=b.list[pos+1];
        }
        b.number--;
        System.out.println("删除成功");
    }
}

java">//展示图书
public class Show implements IOPeration{
    @Override
    public void work(bookList b) {
        System.out.println("显示图书.....");
        for (int i = 0; i < b.number; i++) {
            System.out.println(b.list[i].getBookName()+"  "
                    +b.list[i].getAuthor()+"  " +
                    b.list[i].getType()+"  "+
                    b.list[i].getPrice()+"  "+
                    b.list[i].isCondition());
        }

    }
}

这里以删除和展示图书为例,大家可以自行实现其他功能,有什么问题大家可以评论区交流呦~~~


http://www.niftyadmin.cn/n/5666675.html

相关文章

记一次kafka消息丢失问题排查

背景 我写了一个 自定义分区器 &#xff0c;自测发送了一些简单的如Hello world 之类的消息成功了&#xff0c;并且日志现实确实调用了我自己的分区器&#xff0c;然后我自认为已经完美了。 后来我发现很多消息消费者没有消费&#xff0c; 且发送完成回调&#xff08;CallBa…

2024 go-zero社交项目实战

背景 一位商业大亨&#xff0c;他非常看好国内的社交产品赛道&#xff0c;想要造一款属于的社交产品&#xff0c;于是他找到了负责软件研发的小明。 小明跟张三一拍即合&#xff0c;小明决定跟张三大干一番。 社交产品MVP版本需求 MVP指&#xff1a;Minimum Viable Product&…

网络编程:掌握TCP Socket和UDP Socket

IP地址&#xff1a; 两台计算机通信&#xff0c;双方都必须有IP地址。 IPV4地址有32位&#xff0c;由四个8位二进制组成&#xff0c;因为不好记所以我们把二进制转化为十进制&#xff0c;比如192.168.0.20&#xff0c;这称为点分十进制。 IPV6有128位&#xff0c;由8个16位的…

Java项目实战II基于Java+Spring Boot+MySQL的房屋租赁管理系统的设计与实现

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着城市租…

1网络安全的基本概念

文章目录 网络安全的基本概念可以总结为以下几个方面&#xff1a; 网络安全的需求&#xff1a; 信息安全的重要性&#xff1a;信息安全是计算机、通信、物理、数学等领域的交叉学科&#xff0c;对于社会的发展至关重要。信息安全的目标&#xff1a;主要包括保密性、完整性、可用…

数据库系统原理(第一章 数据库概述)

文章目录 1.数据1.1数据的概念1.2数据与信息的关系1.3数据使用 2.数据管理3.数据库与数据库管理系统3.1数据库3.2数据库管理系统 4.数据库系统4.1数据库系统组成4.2 数据库系统的特点4.3数据库系统体系结构4.3.1内部体系结构4.3.2外部体系结构 本文首先从数据讲起&#xff0c;然…

深度解析ElasticSearch:构建高效搜索与分析的基石原创

引言 在数据爆炸的时代&#xff0c;如何快速、准确地从海量数据中检索出有价值的信息成为了企业面临的重要挑战。ElasticSearch&#xff0c;作为一款基于Lucene的开源分布式搜索和分析引擎&#xff0c;凭借其强大的实时搜索、分析和扩展能力&#xff0c;成为了众多企业的首选。…

tomcat,el表达式执行带参数命令,字符串数组,String[],el表达式注入

准备环境: docker pull tomcat:8;docker run --name tomcat8 -p 808:8080 -v /tmp/CC:/usr/local/tomcat/webapps/ -d tomcat:8;如下为 /tmp/CC/app/index.jsp <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8…