首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >图书系统的实现

图书系统的实现

作者头像
景画
发布2025-12-19 13:49:14
发布2025-12-19 13:49:14
460
举报

一.图书系统概论

1.顾名思义,图书系统可以先从图书入手,图书系统的书肯定不止一本,所以要同时定义多组内容可以用数组

2.思考这么多图书该怎么高效利用,所以这时候书架应运而生

3.初始化的时候记得先标记元素个数,为后面做铺垫,即count = 3

4.图书系统又拥有用户,而用户又分为管理员和普通用户

5.用户有名字,不同用户系统又有系统菜单,这时候可以考虑动态绑定

6.这个时候你就会有个问题,什么时候用管理员菜单,什么时候用普通用户菜单?

答:设置按钮选择

7.return返回不同用户(name)后,用User来接收两个new的新对象,并且给父类User初始化

8.不同用户的操作面板不同,需要分别写出来,同时要给用户去选择功能,用choice去返回选择的值

9.接收到用户选择功能的值之后得实现不同的功能,这么多功能该怎么去整合呢?

答:接口可以作为数组帮我们实现

10.我们需要知道怎么样才能将我们的选择告知给编译器?以及定义功能类的时候操作哪个对象?

答:(1)将不同的选择作为下标,将接口里面的功能类做为数组元素来调用

(2)我们要操作的是书,而书作为数组又存储在书架当中,也要讲书架传给功能类

(3)两个用户对象都要调用这个fac方法,所以将这个方法定义在User中,又因为前面已经return了对应的用户,所以当前调用的也是选择的对象的接口当中的不同功能类

(4)我们要将不同功能定义在两种用户系统的构造方法中,这样当第一次选择身份时,也顺便创建了不同的功能类对象,初始值为null

11.想多次运行可以将选择器放到死循环当中,后期专门设置退出功能

二.功能的实现

1.查找功能介绍

(1)我们可以调用书架的元素个数来查找

(2)要注意,用户输入的是书名查找,而书名又是String字符串类型,又是引用类型, 所以用equal 比较

(3)需要注意书架不是数组,要想获得书当中每个下标的具体值,需要调用一些方法,将i的值作为下标来查找具体书籍

(4)代码

代码语言:javascript
复制
package IO_libarary;

import library.Book;
import library.Booklist;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 16:51
 */
public class FindBook implements IO{
    @Override
    public void fib (Booklist booklist) {
        System.out.println("查找书籍!");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();//输入书名
        for (int i = 0; i < booklist.getCount(); i++) {
            Book book = booklist.getBooks(i);//用这个方法获取书架上的书,然后放到book里面
            if(book.getName().equals(name)) {
                System.out.println("成功找到 " + name);
                System.out.println(book);
                return;
            }
        }
        System.out.println("没有找到这本书!");
    }
}

2.展示书名的功能介绍

(1)遍历书整个这个数组

(2)代码

代码语言:javascript
复制
package IO_libarary;

import library.Book;
import library.Booklist;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 18:07
 */
public class ShowBook implements IO{
    @Override
    public void fib(Booklist booklist) {
        for (int i = 0; i < booklist.getCount(); i++) {
            Book book = booklist.getBooks(i);
            System.out.println(book);
        }
    }
}

3.添加书功能介绍

(1)首先用户选择这个功能的时候首先要进行判断书架是否满了,不能用户输完信息才提示

(2)满足条件后要一次按照(书名,坐着,类型,价格)进行赋值,为什么类型和价格要换位置输出呢,为了避免输入价格的时候自动读取回车键,导致类型是空的

(3)进行第二次判断,书架里有不能添加

(4)最后将书放到当前下标后,元素个数要+1,为下一个下标填写留出位置

(5)代码

代码语言:javascript
复制
package IO_libarary;

import library.Book;
import library.Booklist;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 17:03
 */
public class AddBook implements IO{
    @Override
    public void fib (Booklist booklist) {
        //首先判断书架满了没有
        if(booklist.getCount() == booklist.getBook().length) {
            System.out.println("书架已经满了,不能再放!");
            return;
        }
        System.out.println("添加图书");
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你要添加书的名字");
        String name = scanner.nextLine();
        System.out.println("请输入你要添加书的作者");
        String author = scanner.nextLine();
        System.out.println("请输入你要添加书的类型");
        String type = scanner.nextLine();
        System.out.println("请输入你要添加书的价格");
        int price = scanner.nextInt();
        Book newbook = new Book(name,author,price,type);
        for (int i = 0; i < booklist.getCount(); i++) {
            Book book = booklist.getBooks(i);
            //书架有的不能添加,添加过的不能添加
            if(book.getName().equals(name) == true) {
                System.out.println("抱歉书架已经有此书,不能重复添加!");
                return;
            }
        }
        booklist.setBooks(booklist.getCount(), newbook);//将新书放到当前下标位置,然后cout++
        booklist.setCount(booklist.getCount()+1);
    }
}

4.删除书功能介绍

(1)这里用的删除书的方法是覆盖前面的内容

(2)先找到要删除的书的书的下标

(3)每次删除后要进行元素下标减1

(4)没找到也要进行提示

(5)代码

代码语言:javascript
复制
package IO_libarary;

import library.Book;
import library.Booklist;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 18:38
 */
public class DeleBook implements IO{
    @Override
    public void fib(Booklist booklist) {
        //删除图书,是覆盖前面位置的书
        System.out.println("请输入你要删除的图书名字");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        int i = 0;
        for ( i = 0; i < booklist.getCount(); i++) {
            Book book = booklist.getBooks(i);
            //找到该图书的下标
            if(book.getName().equals(name)) {
                for (int j = i; j < booklist.getCount() - 1; j++) {
                    Book book1 = booklist.getBooks(j+1);
                    booklist.setBooks(j,book1);
                }
                //每次成功删除后就元素count减一
                System.out.println("恭喜你删除 "+ name +" 成功");
                booklist.setCount(booklist.getCount()-1);
                return;
            }
        }
        //if(i == booklist.getCount()) {
            System.out.println("抱歉,没有你要删除的书");
            //return;
        //}
    }
}

5.借阅书功能介绍

(1)判断完要借的名字相同时,要判断当前书是否被借出去了,防止重复借阅

(2)当状态时false时可以被借阅,同时将状态改为true

(3)同时要记得没找到书的是由有提示

(4)代码

代码语言:javascript
复制
package IO_libarary;

import library.Book;
import library.Booklist;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 18:13
 */
public class BrowedBook implements IO{
    @Override
    public void fib (Booklist booklist) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你要借阅的图书名称");
        String name = scanner.nextLine();
        int i = 0;
        for ( i = 0; i < booklist.getCount(); i++) {
            Book book = booklist.getBooks(i);
            //先判断名字是否相等
            if(book.getName().equals(name)) {
                if (book.getLook() == true) {
                    //当显示true被借阅,不能重复借阅
                    System.out.println("对不起,该图书已经被借出去了!");
                    System.out.println(book);
                    return;
                }else {
                    //当显示false没有被借阅,可以借阅
                    book.setLook(true);
                    System.out.println("成功借阅 '" + name + "' ,该书状态已被更改");
                    System.out.println(book);
                    return;
                }
            }
        }
        if (i == booklist.getCount()) {
            System.out.println("抱歉书架上没有你要借阅的书!");
        }
    }
}

6.归还书的功能介绍

(1)归还时和借阅恰恰相反,状态是true就可以归还,同时状态改为false

(2)当状态为false时,说明没有被借出去

(3)同时循环走完时判断书架上有没有你要归还的书

(4)代码

代码语言:javascript
复制
package IO_libarary;

import library.Book;
import library.Booklist;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 18:23
 */
public class ReturnBook implements IO{
    @Override
    public void fib (Booklist booklist) {
        System.out.println("请输入你要归还的图书");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        for (int i = 0; i < booklist.getCount(); i++) {
            Book book = booklist.getBooks(i);
            if(book.getName().equals(name)) {
                //当显示true被借阅,可以归还
                if(book.getLook() == true) {
                    book.setLook(false);
                    System.out.println("成功归还 '" + name + "' ,该书状态已被更改");
                    System.out.println(book);
                    return;
                }else {
                    //当显示false没有被借阅,不可以归还
                    System.out.println("不能归还没有被借阅的书!");
                    return;
                }
            }
        }
        System.out.println("书架上没有你要归还的书");
    }
}

7.退出系统的功能

(1)上面我们将图书系统选择界面放到了死循环当中,所以要设置一个可以退出的功能

(2)直接运用编译器自带的工具包来进行退出

(3)代码

代码语言:javascript
复制
package IO_libarary;

import library.Booklist;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 18:10
 */
public class Exitbook implements IO{
    @Override
    public void fib(Booklist booklist) {
        System.out.println("退出图书馆系统成功!");
        System.exit(0);
    }
}

三.画图方式理解

四.所有代码

1.main包

代码语言:javascript
复制
package Main;

import Users.ConcolUser;
import Users.NomolUser;
import Users.User;
import library.Booklist;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 16:23
 */
public class Main {
    public static User fanc() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的姓名");
        String name = scanner.nextLine();
        System.out.println("请选择你的身份,1 :管理员  2 :普通用户");
        int choice = scanner.nextInt();
        if(choice == 1) {
            return new ConcolUser(name);
        }else {
            return new NomolUser(name);
        }
    }

    public static void main(String[] args) {
        User user = fanc();// 用User接受fanc方法

        Booklist booklist = new Booklist();//new一个新对象,调用构造方法初始化书籍
        while (true)
        {
            int choice = user.menu();//运用动态绑定,调用不同菜单}
            user.fac(choice, booklist);
        }
    }
}

2.Users用户包

(1)User
代码语言:javascript
复制
package Users;

import IO_libarary.IO;
import library.Booklist;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 16:28
 */
public abstract class User {
    protected String name;
      IO[] io;
    public User(String name) {
        this.name = name;
    }
    public abstract int menu();//创建抽象菜单
    public void fac(int choice, Booklist booklist) {
        io[choice].fib(booklist);
    }
}
(2)普通用户包NomolUser
代码语言:javascript
复制
package Users;

import IO_libarary.*;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 16:28
 */
public class NomolUser extends User{
    public NomolUser(String name) {
        super(name);
        io = new IO[] {
          new Exitbook(),
          new FindBook(),
          new BrowedBook(),
          new ReturnBook()
        };
    }
    public int menu() {
        //普通用户菜单
        System.out.println("欢迎用户 " + name + " 来到图书馆");
        System.out.println("********普通用户菜单********");
        System.out.println("1.查找图书");
        System.out.println("2.借阅图书");
        System.out.println("3.归还图书");
        System.out.println("0.退出系统");
        System.out.println("**************************");
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的选择");
        int choice = scanner.nextInt();
        return choice;
    }
}
(3)管理员包ConcolUser
代码语言:javascript
复制
package Users;

import IO_libarary.*;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 16:28
 */
public class ConcolUser extends User{

    public ConcolUser(String name) {
        super(name);//给父类的name初始化
        io = new IO[] {
                new Exitbook(),
                new FindBook(),
                new AddBook(),
                new DeleBook(),
                new ShowBook(),
                new BrowedBook(),
                new ReturnBook()
        };
    }

    public int menu() { //管理员菜单
        System.out.println("欢迎管理员 " + name + " 来到图书馆");
        System.out.println("********管理员菜单********");
        System.out.println("1.查找图书");
        System.out.println("2.新增图书");
        System.out.println("3.删除图书");
        System.out.println("4.显示图书");
        System.out.println("5.借阅图书");
        System.out.println("6.归还图书");
        System.out.println("0.退出系统");
        System.out.println("************************");
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的选择");
        int choice = scanner.nextInt();
        return choice;
    }
}

3.图书包library

(1)图书Book包
代码语言:javascript
复制
package library;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 16:06
 */
public class Book {
    private String name;//书名
    private String author;//坐着
    private int price;//价格
    private String type;//类型
    private boolean isLook;//状态

    public Book(String name, String author, int price, String type) {
        this.name = name;
        this.author = author;//写构造方法,创建书的类型
        this.price = price;
        this.type = type;

    }

    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 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 getLook() {
        return isLook;
    }

    public void setLook(boolean look) {
        isLook = look;
    }

    @Override
    public String toString() {   //重写toString方法,便于利用引用直接打印
        return "Book{" +
                "name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", price=" + price +
                ", type='" + type + '\'' +
//                ", isLook=" + isLook +
                ",状态= " + //运用三目操作符来快速判定状态
                ((isLook == false) ? "未借出" : "已借出") +
                '}';
    }
}
(2)书架包Booklist
代码语言:javascript
复制
package library;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 16:16
 */
public class Booklist {
    Book[] books = new Book[10];
    private int count;
    public Booklist(){   //书架里面放书,定义一些书
        books[0] = new Book("三国演义","罗贯中",19,"小说");
        books[1] = new Book("查理九世","雷欧.幻像",20,"探险");
        books[2] = new Book("哈利波特.死亡圣器","罗琳",33,"奇幻");
        count = 3;
    }

    public Book getBooks(int pos) {//获取下标pos的书的信息
        //返回值是Book,代表返回的是下标为pos的书的信息
        return books[pos];
    }

    public void setBooks(int pos,Book book) {//将添加的新书放到下标pos里
        //同样你要的是将新new的书放入数组指定下标pos里,所以这里是Book,而前面new的的书不是数组,不能用Book[]
        this.books[pos] = book;
    }

    public int getCount() {//获取当前元素个数
        return count;
    }

    public void setCount(int count) {//设置当前元素个数
        this.count = count;
    }

    public Book[] getBook() {//为获取数组长度做准备,添加图书的时候用
        return books;
    }
}

4.各种功能包IO-library

(1)接口包IO
代码语言:javascript
复制
package IO_libarary;

import library.Booklist;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 16:49
 */
public interface IO {
    void fib (Booklist booklist);
}
(2)添加书包AddBook
代码语言:javascript
复制
package IO_libarary;

import library.Book;
import library.Booklist;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 17:03
 */
public class AddBook implements IO{
    @Override
    public void fib (Booklist booklist) {
        //首先判断书架满了没有
        if(booklist.getCount() == booklist.getBook().length) {
            System.out.println("书架已经满了,不能再放!");
            return;
        }
        System.out.println("添加图书");
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你要添加书的名字");
        String name = scanner.nextLine();
        System.out.println("请输入你要添加书的作者");
        String author = scanner.nextLine();
        System.out.println("请输入你要添加书的类型");
        String type = scanner.nextLine();
        System.out.println("请输入你要添加书的价格");
        int price = scanner.nextInt();
        Book newbook = new Book(name,author,price,type);
        for (int i = 0; i < booklist.getCount(); i++) {
            Book book = booklist.getBooks(i);
            //书架有的不能添加,添加过的不能添加
            if(book.getName().equals(name) == true) {
                System.out.println("抱歉书架已经有此书,不能重复添加!");
                return;
            }
        }
        booklist.setBooks(booklist.getCount(), newbook);//将新书放到当前下标位置,然后cout++
        booklist.setCount(booklist.getCount()+1);
    }
}
(3)借阅书包BrowedBook
代码语言:javascript
复制
package IO_libarary;

import library.Book;
import library.Booklist;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 18:13
 */
public class BrowedBook implements IO{
    @Override
    public void fib (Booklist booklist) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你要借阅的图书名称");
        String name = scanner.nextLine();
        int i = 0;
        for ( i = 0; i < booklist.getCount(); i++) {
            Book book = booklist.getBooks(i);
            //先判断名字是否相等
            if(book.getName().equals(name)) {
                if (book.getLook() == true) {
                    //当显示true被借阅,不能重复借阅
                    System.out.println("对不起,该图书已经被借出去了!");
                    System.out.println(book);
                    return;
                }else {
                    //当显示false没有被借阅,可以借阅
                    book.setLook(true);
                    System.out.println("成功借阅 '" + name + "' ,该书状态已被更改");
                    System.out.println(book);
                    return;
                }
            }
        }
        if (i == booklist.getCount()) {
            System.out.println("抱歉书架上没有你要借阅的书!");
        }
    }
}
(4)删除书包DeleBook
代码语言:javascript
复制
package IO_libarary;

import library.Book;
import library.Booklist;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 18:38
 */
public class DeleBook implements IO{
    @Override
    public void fib(Booklist booklist) {
        //删除图书,是覆盖前面位置的书
        System.out.println("请输入你要删除的图书名字");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        int i = 0;
        for ( i = 0; i < booklist.getCount(); i++) {
            Book book = booklist.getBooks(i);
            //找到该图书的下标
            if(book.getName().equals(name)) {
                for (int j = i; j < booklist.getCount() - 1; j++) {
                    Book book1 = booklist.getBooks(j+1);
                    booklist.setBooks(j,book1);
                }
                //每次成功删除后就元素count减一
                System.out.println("恭喜你删除 "+ name +" 成功");
                booklist.setCount(booklist.getCount()-1);
                return;
            }
        }
        if(i == booklist.getCount()) {
            System.out.println("抱歉,没有你要删除的书");
            return;
        }
    }
}
(5)退出系统包Exitbook
代码语言:javascript
复制
package IO_libarary;

import library.Booklist;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 18:10
 */
public class Exitbook implements IO{
    @Override
    public void fib(Booklist booklist) {
        System.out.println("退出图书馆系统成功!");
        System.exit(0);
    }
}
(6)查找书包FindBook
代码语言:javascript
复制
package IO_libarary;

import library.Book;
import library.Booklist;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 16:51
 */
public class FindBook implements IO{
    @Override
    public void fib (Booklist booklist) {
        System.out.println("查找书籍!");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();//输入书名
        for (int i = 0; i < booklist.getCount(); i++) {
            Book book = booklist.getBooks(i);//用这个方法获取书架上的书,然后放到book里面
            if(book.getName().equals(name)) {
                System.out.println("成功找到 " + name);
                System.out.println(book);
                return;
            }
        }
        System.out.println("没有找到这本书!");
    }
}
(7)归还书包ReturnBook
代码语言:javascript
复制
package IO_libarary;

import library.Book;
import library.Booklist;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 18:23
 */
public class ReturnBook implements IO{
    @Override
    public void fib (Booklist booklist) {
        System.out.println("请输入你要归还的图书");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        for (int i = 0; i < booklist.getCount(); i++) {
            Book book = booklist.getBooks(i);
            if(book.getName().equals(name)) {
                //当显示true被借阅,可以归还
                if(book.getLook() == true) {
                    book.setLook(false);
                    System.out.println("成功归还 '" + name + "' ,该书状态已被更改");
                    System.out.println(book);
                    return;
                }else {
                    //当显示false没有被借阅,不可以归还
                    System.out.println("不能归还没有被借阅的书!");
                    return;
                }
            }
        }
        System.out.println("书架上没有你要归还的书");
    }
}
(8)展示书的包ShowBook
代码语言:javascript
复制
package IO_libarary;

import library.Book;
import library.Booklist;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 32309
 * Date: 2025-05-10
 * Time: 18:07
 */
public class ShowBook implements IO{
    @Override
    public void fib(Booklist booklist) {
        for (int i = 0; i < booklist.getCount(); i++) {
            Book book = booklist.getBooks(i);
            System.out.println(book);
        }
    }
}

五.总结

1.我们发现上面功能实现时有很多重复的共同点

(1)大多有Book book = booklist.getBooks(i);这个功能,目的是为调用方法来查找数组下标书的信息

(2)大多有book.getName().equals(name),为了判断你查找的的这个书是否和你输入的书名是否一致,用来作为限制条件

(3)大多有if(i == booklist.getCount()),用这个作为你循环结束后仍没有满足条件的尾巴,也是至关重要

2.制作方法

(1)建议先滤清思路,建议看完两边再尝试

(2)第一次我们大部分人写不出来,卡壳卡半天,十分难受,可我们要的就是就是这种感觉,你翻来覆去想不出来时,更增加你的记忆力,一个地方卡壳你可以尝试写其他部分,比如功能部分,能写多少是多少

(3)写不出来的地方要记住因为什么写不出来,然后去看视频回顾

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.图书系统概论
  • 二.功能的实现
    • 1.查找功能介绍
    • 2.展示书名的功能介绍
    • 3.添加书功能介绍
    • 4.删除书功能介绍
    • 5.借阅书功能介绍
    • 6.归还书的功能介绍
  • 三.画图方式理解
  • 四.所有代码
    • 1.main包
    • 2.Users用户包
      • (1)User
      • (2)普通用户包NomolUser
      • (3)管理员包ConcolUser
    • 3.图书包library
      • (1)图书Book包
      • (2)书架包Booklist
    • 4.各种功能包IO-library
      • (1)接口包IO
      • (2)添加书包AddBook
      • (3)借阅书包BrowedBook
      • (4)删除书包DeleBook
      • (5)退出系统包Exitbook
      • (6)查找书包FindBook
      • (7)归还书包ReturnBook
      • (8)展示书的包ShowBook
  • 五.总结
    • 1.我们发现上面功能实现时有很多重复的共同点
    • 2.制作方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档