最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)圖書管理系統(tǒng)的示例代碼

 更新時間:2022年11月21日 16:40:05   作者:謙虛的荊南芒果  
這篇文章將通過Java實現(xiàn)一個簡答的圖書管理系統(tǒng),本圖書管理系統(tǒng)用對象數(shù)組的方式來提供操作方法,比較特別,建議新手學習,這對理解Java面向?qū)ο笥泻艽髱椭?/div>

User類

首先創(chuàng)建一個抽象類User,屬性為姓名,提供了構(gòu)造方法和get方法(因為本系統(tǒng)不需要修改名字,所以沒有設置set方法),有一個able方法,讓子類管理員和普通用戶實現(xiàn)不同的界面和操作。

public abstract class User {
    private String name;
 
    public User(String name){
        this.name=name;
    }
    abstract void able();
 
    public String getName() {
        return name;
    }
}

管理員和普通用戶類

這里定義了一個管理員和普通用戶類繼承User類,able方法里是菜單,可選擇界面里的操作

public class AdminUser extends User{
 
 
    public AdminUser(String name) {
        super(name);
    }
 
    @Override
    void able() {
        BookList bookList=new BookList();
        while (true) {
            System.out.println("***********************");
            System.out.println("歡迎 "+getName()+" 登錄圖書管理系統(tǒng)");
            System.out.println("1.添加圖書");
            System.out.println("2.查看全部圖書");
            System.out.println("3.修改圖書");
            System.out.println("4.刪除圖書");
            System.out.println("0.退出系統(tǒng)");
            System.out.println("請輸入您的選擇");
            Scanner sc=new Scanner(System.in);
            int i=sc.nextInt();
            Operate.operates[i].work(bookList);
        }
 
    }
 
}
public class normalUser extends User{
    public normalUser(String name) {
        super(name);
    }
 
    @Override
    void able() {
        BookList bookList=new BookList();
        while (true) {
            System.out.println("***********************");
            System.out.println("歡迎 "+getName()+" 登錄圖書管理系統(tǒng)");
            System.out.println("1.查找圖書");
            System.out.println("2.借出圖書");
            System.out.println("3.歸還圖書");
            System.out.println("0.退出系統(tǒng)");
            System.out.println("請輸入您的選擇");
            Scanner sc=new Scanner(System.in);
            int i=sc.nextInt();
            Operate.operates[i].work(bookList);
        }
    }
}

Book類

書類,屬性有:書名,價格,狀態(tài)(已借出/未被借出)

告訴大家一個快速生成JavaBean的小技巧,點擊右上角file->Settings->  Plugins->輸入ptj,下載好之后,右鍵點擊下面的PTJ to Javabean,就可以快速生成啦

package BOOK;
 
public class Book {
    private String name;
    private int prize;
    private boolean isBorrowed;
 
    public Book() {
    }
 
    public Book(String name, int prize) {
        this.name = name;
        this.prize = prize;
    }
 
    /**
     * 獲取
     * @return name
     */
    public String getName() {
        return name;
    }
 
    /**
     * 設置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }
 
    /**
     * 獲取
     * @return prize
     */
    public int getPrize() {
        return prize;
    }
 
    /**
     * 設置
     * @param prize
     */
    public void setPrize(int prize) {
        this.prize = prize;
    }
 
    /**
     * 獲取
     * @return isBorrowed
     */
    public boolean IsBorrowed() {
        return isBorrowed;
    }
    public void setNoBorrowed(){
        isBorrowed=false;
    }
    public void setYesBorrowed(){
        isBorrowed=true;
    }
 
    /**
     * 設置
     * @param isBorrowed
     */
    public void setIsBorrowed(boolean isBorrowed) {
        this.isBorrowed = isBorrowed;
    }
 
    public String toString() {
        return "Book{name = " + name + ", prize = " + prize + ", isBorrowed = "  +
                (isBorrowed==false?"未被借出":"已借出")+"}";
    }
}

BookList類

書架類,定義了一個能放10本書的數(shù)組,提供了一些操作方法,具體請看注釋

package BOOK;
 
public class BookList {
    private Book[] books=new Book[10];
    private int size;//書的數(shù)量
    \\構(gòu)造方法,默認放三本書進去
    public BookList() {
        books[0]=new Book("三國", 100000);
        books[1]=new Book("駱駝祥子", 10);
        books[2]=new Book("西游記", 90);
        this.size = 3;
    }
    \\添加方法
    public void add(Book book){
        books[size]=book;
        size++;
    }
    \\獲取有多少本書
    public int getSize(){
        return size;
    }
    \\獲取書架
    public Book[] getBooks(){
        return books;
    }
    \\返回書架上索引為index的書
    public Book getBook(int index){
        return books[index];
    }
    \\往索引index插入已初始化的book
    public void setBook(int index,Book book){
        books[index]=book;
    }
    \\刪除書架上索引為index的書
    public void removeBook(int index){
        books[index]=null;
    }
    \\改變書的數(shù)量為i
    public void setSize(int i){
        size=i;
    }
 
}

Operate類

只是一個管理員的操作類,作為其他操作的父類,里面初始化一個操作數(shù)組,按照管理員類里輸入的數(shù)字,再比照數(shù)組里操作的索引來實現(xiàn)不同的功能

work方法讓子類去重寫,來實現(xiàn)不同的功能

package Ac;
 
import BOOK.BookList;
 
public class Operate {
    static public Operate[] operates={
             new exitOperate(),\\退出系統(tǒng)
             new addOperate(),\\添加圖書
            new showOperate(),\\展示所有圖書
            new updateOperate(),\\修改某一本書
            new removeOperate()\\刪除圖書
     };
     public void work(BookList bookList){
     }
}

只是一個普通用戶的操作類,和上面的一樣,不在此過多贅述

package Pc;
 
import BOOK.BookList;
 
public class Operate {
    static public Operate[] operates={
            new exitOperate(),\\退出系統(tǒng)
            new findOperate(),\\查找圖書
            new borrowBook(),\\借書
            new returnBook()\\歸還圖書
    };
    public void work(BookList bookList){
    }
}

退出系統(tǒng)

我相信不用多講,各位dddd

package Ac;
 
import BOOK.BookList;
 
public class exitOperate extends Operate{
 
 
    @Override
    public void work(BookList bookList) {
        System.out.println("退出成功");
        System.exit(0);
    }
}

addOperate 添加書籍(管理員)

package Ac;
 
import BOOK.Book;
import BOOK.BookList;
 
import java.util.Scanner;
 
public class addOperate extends Operate{
 
    @Override
    public void work(BookList bookList) {
        System.out.println("請輸入書名");
        Scanner sc=new Scanner(System.in);
        String name=sc.next();
        \\查找書名,相同則錄入失敗
        for (int i = 0; i < bookList.getSize(); i++) {
            Book[] books=bookList.getBooks();
            if (bookList.getBook(i).getName().equals(name)){
                System.out.println("已有此書,錄入失敗");
                return;
            }
        }
        System.out.println("請輸入價格");
        int prize=sc.nextInt();
        \\把書放入書架
        Book book=new Book(name,prize);
        bookList.add(book);
        System.out.println("錄入成功");
    }
}

展示所有圖書(管理員)

很簡單,遍歷書架上所有書就完事了

package Ac;
 
import BOOK.BookList;
 
public class showOperate extends Operate{
    @Override
    public void work(BookList bookList) {
        if (bookList.getSize()==0){
            System.out.println("沒有書");
        }
        for (int i = 0; i < bookList.getSize(); i++) {
            System.out.println(bookList.getBook(i));
        }
    }
}

修改圖書 (管理員)

package Ac;
 
import BOOK.Book;
import BOOK.BookList;
 
import java.util.Scanner;
 
public class updateOperate extends Operate{
    @Override
    public void work(BookList bookList) {
 
        System.out.println("請輸入您要修改的書的名字");
        Scanner sc=new Scanner(System.in);
        String name=sc.next();
        \\查找錄入的書
        int i=findBook(bookList,name);
        if (i!=-1){
            \\錄入書名,如果書名存在則錄入失敗
            System.out.println("請輸入修改后書名");
            String newName=sc.next();
            for (int j = 0; j < bookList.getSize(); j++) {
                Book[] books=bookList.getBooks();
                if (bookList.getBook(j).getName().equals(newName)){
                    System.out.println("已有此書,錄入失敗");
                    return;
                }
            }
 
            System.out.println("請輸入修改后價格");
            int prize=sc.nextInt();
            \\添加書到書架
            Book book=new Book(newName,prize);
            bookList.setBook(i,book);
            System.out.println("修改成功");
            return;
        }
 
    }
    public int findBook(BookList bookList,String name){
        for (int i = 0; i < bookList.getSize(); i++) {
            Book[] books=bookList.getBooks();
            if (bookList.getBook(i).getName().equals(name)){
                return i;
            }
        }
        System.out.println("沒有此書?。⌒薷氖?);
        return -1;
    }
}

刪除圖書(管理員)

與修改差不多,在此不過多贅述

package Ac;
 
import BOOK.Book;
import BOOK.BookList;
 
import java.util.Scanner;
 
public class removeOperate extends Operate{
    @Override
    public void work(BookList bookList) {
        System.out.println("請輸入要刪除的圖書");
        Scanner sc=new Scanner(System.in);
        String name=sc.next();
        int i=findBook(bookList,name);
        if(i!=-1){
            for (int j = i; j < bookList.getSize()-1; j++) {
                Book book=bookList.getBook(j+1);
                bookList.setBook(j,book);
            }
            bookList.setSize(bookList.getSize()-1);
            bookList.removeBook(bookList.getSize());
            System.out.println("刪除成功");
        }
 
    }
    public int findBook(BookList bookList,String name){
        for (int i = 0; i < bookList.getSize(); i++) {
            Book[] books=bookList.getBooks();
            if (bookList.getBook(i).getName().equals(name)){
                return i;
            }
        }
        System.out.println("沒有此書!!刪除失敗");
        return -1;
    }
}

查找某一本書(普通用戶)

package Pc;
 
import BOOK.Book;
import BOOK.BookList;
 
import java.util.Scanner;
 
public class findOperate extends Operate{
    @Override
    public void work(BookList bookList) {
        System.out.println("請輸入您要查找的書名");
        Scanner sc=new Scanner(System.in);
        String name=sc.next();
        findBook(bookList,name);
    }
    public void findBook(BookList bookList,String name){
        for (int i = 0; i < bookList.getSize(); i++) {
            Book[] books=bookList.getBooks();
            if (bookList.getBook(i).getName().equals(name)){
                System.out.println("找到了??!");
                System.out.println(bookList.getBook(i));
                return;
            }
        }
        System.out.println("沒有此書!!");
 
    }
}

借出圖書(普通用戶)

借書原理很簡單,芝士把某一本書拿出來修改狀態(tài)再塞回書架

package Pc;
 
import BOOK.Book;
import BOOK.BookList;
 
import java.util.Scanner;
 
public class borrowBook extends Operate{
    @Override
    public void work(BookList bookList) {
        System.out.println("請輸入您要借書的書名");
        Scanner sc=new Scanner(System.in);
        String name=sc.next();
        int i=findBook(bookList,name);
        if (i!=-1){
            bookList.getBook(i).setYesBorrowed();;
            System.out.println("成功借出");
            return;
        }
 
    }
    public int findBook(BookList bookList,String name){
        for (int i = 0; i < bookList.getSize(); i++) {
            Book[] books=bookList.getBooks();
            if (bookList.getBook(i).getName().equals(name)){
                return i;
            }
        }
        System.out.println("沒有此書!!");
        return -1;
    }
}

歸還圖書(普通用戶)

與上面的借書操作原理相同

package Pc;
 
import BOOK.Book;
import BOOK.BookList;
 
import java.util.Scanner;
 
public class returnBook extends Operate{
    @Override
    public void work(BookList bookList) {
        System.out.println("請輸入您要歸還的書名");
        Scanner sc=new Scanner(System.in);
        String name=sc.next();
        int i=findBook(bookList,name);
        if (i!=-1){
            bookList.getBook(i).setNoBorrowed();;
            System.out.println("成功歸還");
            return;
        }
 
    }
    public int findBook(BookList bookList,String name){
        for (int i = 0; i < bookList.getSize(); i++) {
            Book[] books = bookList.getBooks();
            if (bookList.getBook(i).getName().equals(name)) {
                return i;
            }
        }
        System.out.println("沒有此書?。?);
        return -1;
    }
}

到此這篇關(guān)于Java實現(xiàn)圖書管理系統(tǒng)的示例代碼的文章就介紹到這了,更多相關(guān)Java圖書管理系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mybatis實現(xiàn)查詢操作及獲得添加的ID

    mybatis實現(xiàn)查詢操作及獲得添加的ID

    這篇文章主要介紹了mybatis實現(xiàn)查詢操作及獲得添加的ID,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-11-11
  • Java進行Appium自動化測試的實現(xiàn)

    Java進行Appium自動化測試的實現(xiàn)

    這篇文章主要介紹了Java進行Appium自動化測試的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Java并發(fā)框架:Executor API詳解

    Java并發(fā)框架:Executor API詳解

    這篇文章主要介紹了Java并發(fā)框架:Executor API詳解,隨著當今處理器中可用的核心數(shù)量的增加, 隨著對實現(xiàn)更高吞吐量的需求的不斷增長,多線程 API 變得非常流行。 Java 提供了自己的多線程框架,稱為 Executor 框架,需要的朋友可以參考下
    2019-07-07
  • @TransactionalEventListener的使用和實現(xiàn)原理分析

    @TransactionalEventListener的使用和實現(xiàn)原理分析

    這篇文章主要介紹了@TransactionalEventListener的使用和實現(xiàn)原理分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • IDEA報錯:java:無效的源發(fā)行版21解決方式

    IDEA報錯:java:無效的源發(fā)行版21解決方式

    這篇文章主要給大家介紹了關(guān)于IDEA報錯:java:無效的源發(fā)行版21的解決方式,這個錯誤是因為你的項目使用的Java版本與你的IDEA使用的Java版本不一致導致的,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2024-06-06
  • java解析json復雜數(shù)據(jù)的方法詳解

    java解析json復雜數(shù)據(jù)的方法詳解

    這篇文章主要為大家詳細介紹了java解析json復雜數(shù)據(jù)的兩種常用方法,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的小伙伴可以了解下
    2024-01-01
  • 淺談Spring-boot事件監(jiān)聽

    淺談Spring-boot事件監(jiān)聽

    這篇文章主要介紹了淺談Spring-boot事件監(jiān)聽,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Java中ArrayList類用法詳解

    Java中ArrayList類用法詳解

    這篇文章主要給大家介紹了關(guān)于Java中ArrayList類用法的相關(guān)資料,ArrayList是Java中的一種常見的數(shù)據(jù)結(jié)構(gòu),它實現(xiàn)了List接口,是線程不安全的動態(tài)數(shù)組,需要的朋友可以參考下
    2023-09-09
  • java批量采集豌豆莢網(wǎng)站Android應用圖標和包名

    java批量采集豌豆莢網(wǎng)站Android應用圖標和包名

    這篇文章主要介紹了java批量采集豌豆莢網(wǎng)站Android應用圖標和包名,主要用在做主題時替換這些常見應用的圖片,需要的朋友可以參考下
    2014-06-06
  • java反射應用詳細介紹

    java反射應用詳細介紹

    本篇文章依舊采用小例子來說明java反射應用,因為我始終覺的,案例驅(qū)動是最好的,需要的朋友可以參考下
    2012-11-11

最新評論

托里县| 遂溪县| 石家庄市| 广州市| 岳阳市| 济南市| 兖州市| 江源县| 信宜市| 墨竹工卡县| 黔西| 黔西| 平谷区| 古田县| 灵川县| 景洪市| 丘北县| 河曲县| 金华市| 双鸭山市| 文安县| 广灵县| 大理市| 诸暨市| 昔阳县| 西吉县| 新泰市| 梅河口市| 通山县| 万年县| 南涧| 临沧市| 松江区| 门头沟区| 霍城县| 和政县| 湖北省| 介休市| 兴业县| 武安市| 桦川县|