国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JAVA】 圖書管理系統(tǒng)(javaSE簡易版 內(nèi)含畫圖分析) | 期末大作業(yè)&課程設計

這篇具有很好參考價值的文章主要介紹了【JAVA】 圖書管理系統(tǒng)(javaSE簡易版 內(nèi)含畫圖分析) | 期末大作業(yè)&課程設計。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

作者主頁:paper jie 的博客

本文作者:大家好,我是paper jie,感謝你閱讀本文,歡迎一建三連哦。

本文錄入于《JAVA》專欄,本專欄是針對于大學生,編程小白精心打造的。筆者用重金(時間和精力)打造,將javaSE基礎知識一網(wǎng)打盡,希望可以幫到讀者們哦。

其他專欄:《算法詳解》《C語言》《javaSE》等

內(nèi)容分享:本期將會使用javase來制作一個簡易版本的圖書管理系統(tǒng)

目錄

設計需求

?設計思路

設計的具體過程及源碼展示

book包?

Book類

Booklist類

user包

User類

AdminUser類

NormalUser類

operation包

IOoperation接口

Addoperation類

Deloperation類

Borrowoperation類

Exitoperation類

Findoperation類

Returnoperation類

Showoperation類

?Main類

效果展示?

圖書管理系統(tǒng)的畫圖分析


設計需求

我們需要通過使用javase來實現(xiàn)一個簡易版本的圖書管理系統(tǒng),它需要具備以下幾個功能:

1 首先需要有兩個模式,一個是管理員模式,一個是普通用戶模式

2 需要具有 新增圖書,刪除圖書,查找圖書,顯示圖書,借閱圖書,歸還圖書,退出系統(tǒng)這些功能

3.需要將上面的功能分成兩部分,新增,刪除,顯示,查找,退出為管理員的權(quán)限,而查找,借閱,歸還,退出為普通用戶的權(quán)限

【JAVA】 圖書管理系統(tǒng)(javaSE簡易版 內(nèi)含畫圖分析) | 期末大作業(yè)&課程設計,JAVA,java

?設計思路

1 我們首先需要將我們的用戶分為兩個部分,一個為管理員,一個為普通用戶,在使用的時候根據(jù)不同的需求展現(xiàn)不同的界面和功能,這里我們可以通過繼承,多態(tài),向上轉(zhuǎn)型給他們一個父類來實現(xiàn)

2 我們需要實現(xiàn)多個類來實現(xiàn)刪除圖書,查找圖書,顯示圖書,借閱圖書,歸還圖書,退出系統(tǒng)這些功能

3 我們通過創(chuàng)建一個接口,讓功能類來實現(xiàn)這個接口,再用一個類型為創(chuàng)建的接口類型的數(shù)組來存放功能類的new出的對象,這樣子就可以進行統(tǒng)一管理了

4 我們還需要創(chuàng)建書和書架類,將書的屬性封裝,書架類存放的就是書,會用一個書架類型的數(shù)組來存放

設計的具體過程及源碼展示

為了讓程序去復雜化,易修改這里將用三個包和一個主類來搭建這個框架會有book包,里面存放書類和書架類。operation包存放各個功能類和接口。user包中放著父類User類和普通用戶類,管理員類,最后還有一個主類Main

【JAVA】 圖書管理系統(tǒng)(javaSE簡易版 內(nèi)含畫圖分析) | 期末大作業(yè)&課程設計,JAVA,java

book包?

Book類

book類起到的作用就是將book類封裝起來,后面容易放入書架中。 這里的構(gòu)造方法,getandset方法以及toString方法可以通過編譯器生成,速度很快的。在toString方法中我們需要改動一下編譯器生成的,我們可以用三目操作符來確定是true還是false來打印是已借出還是未接出

package book;


public class Book {
    private String name;
    private String author;
    private int price;
    private String type;
    //默認flose 未被借出
    private boolean isBorrowed;
    //get 和 set方法設置和返回成員變量
    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 isBorrowed() {
        return isBorrowed;
    }

    public void setBorrowed(boolean borrowed) {
        isBorrowed = borrowed;
    }
    //打印
    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", price=" + price +
                ", type='" + type + '\'' +
                ", " + ((isBorrowed == true) ? "已經(jīng)借出" : "未接出") +
                '}';
    }
}

Booklist類

這里也可以使用編譯器生成需要的代碼,這里要注意的是books數(shù)組,它是用來存放book書本的。在構(gòu)造方法中要對它進行初始化,可以存放幾本,已進放進去的書的內(nèi)容。

package book;


public class Booklist {
    //書架
    private Book[] books;
    //記錄使用書的位置
    private int usedsize;
    private static final  int DEFAULT_CAPACITY = 10;
    public Booklist() {
        //對書架初始化
        this.books = new Book[DEFAULT_CAPACITY];
        //放書
        this.books[0] = new Book("三國演義", "羅貫中", 10, "小說");
        this.books[1] = new Book("西游記", "吳承恩", 20, "小說");
        this.books[2] = new Book("紅樓夢", "曹雪芹", 30, "小說");
        this.usedsize = 3;
    }

    public int getUsedsize() {
        return usedsize;
    }

    public void setUsedsize(int usedsize) {
        this.usedsize = usedsize;
    }

    public Book getBook(int pos) {
        return books[pos];
    }

    public void setBook(int pos, Book book) {
        books[pos] = book;
    }

    public Book[] getBooks() {
        return books;
    }
}

user包

這個包里放的是一個父類和兩個子類,企圖通過繼承和多態(tài)來實現(xiàn)管理員和普通用戶的切換

User類

這里要注意的是IOoperation這個數(shù)組,它會在User類的子類中進行初始化,來存放需要功能類的對象。而dooperation方法則是通過IOoperations數(shù)組里的成員的work方法來實現(xiàn)需要的操作

package user;

import book.Booklist;
import operation.IOoperation;


public abstract class User {
    protected String name;
    protected IOoperation[] iOoperations;

    public User(String name) {
        this.name = name;
    }
    public abstract int menu();

    public void dooperation(int choise, Booklist booklist) {
        iOoperations[choise].work(booklist);
    }
}

AdminUser類

它和NormalUser都是User的子類,這里面的構(gòu)造方法就對父類的成員進行了IOoperation初始化,且實現(xiàn)的菜單界面,menu方法的返回值就是你選擇需要使用的功能

package user;

import operation.*;

import java.util.Scanner;


public class AdminUser extends User{

    public AdminUser(String name) {
        super(name);
        this.iOoperations = new IOoperation[]{new Exitoperation(),new Addopertaion(),
                            new Deloperation(), new Showoperation(),new Findoperation()};
    }

    public int menu() {
        System.out.println("*********************** 管理員用戶 ***************************");
        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("************************************************************");
        System.out.println("請輸入你的操作:");
        Scanner scanner = new Scanner(System.in);
        int choice = scanner.nextInt();
        return choice;
    }
}

NormalUser類

實現(xiàn)思路和AdminUser一樣

package user;

import operation.*;

import java.util.Scanner;


public class NormalUser extends User {

    public NormalUser(String name) {
        super(name);
        this.iOoperations = new IOoperation[]{new Exitoperation(),new Findoperation(),
                            new Borrowoperation(), new Returnoperation()};
    }

    public int menu() {
        System.out.println("*************************** 普通用戶 ****************************");
        System.out.println("1. 查找圖書");
        System.out.println("2. 借閱圖書");
        System.out.println("3. 歸還圖書");
        System.out.println("0. 退出系統(tǒng)");
        System.out.println("**************************************************************");
        System.out.println("請輸入你的操作:");
        Scanner scanner = new Scanner(System.in);
        int choice = scanner.nextInt();
        return choice;
    }
}

operation包

這個包里需要實現(xiàn)需要的功能類和一個將他們都串起來的接口

IOoperation接口

所有的功能類都要實現(xiàn)這個接口,從而重寫work方法,來統(tǒng)一使用work這個名字

package operation;

import book.Booklist;


public interface IOoperation {
    public void work(Booklist booklist);
}

Addoperation類

新增圖書功能:

package operation;

import book.Book;
import book.Booklist;

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: sun杰
 * Date: 2023-08-25
 * Time: 10:43
 */
public class Addopertaion implements IOoperation{
    @Override
    public void work(Booklist booklist) {
        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 book = new Book(name, author, price, type);
        int pos = booklist.getUsedsize();
        for (int i = 0; i < pos; i++) {
            Book book1 = booklist.getBook(i);
            if(book1.getName().equals(name)) {
                System.out.println("已有這本書,不再存放");
                return;
            }
        }
        if(pos == booklist.getBooks().length) {
            System.out.println("書架滿了");
        }else {
            booklist.setBook(pos, book);
            booklist.setUsedsize(pos + 1);
        }
    }
}

Deloperation類

刪除圖書功能:

import book.Booklist;

import java.util.Scanner;


public class Deloperation implements IOoperation{
    @Override
    public void work(Booklist booklist) {
        System.out.println("刪除圖書:");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        int size = booklist.getUsedsize();
        for (int i = 0; i < size; i++) {
            Book book = booklist.getBook(i);
            if(book.getName().equals(name)) {
                int pos = i;
                int j = 0;
                for ( j = pos; j < size - 1; j++) {
                    Book book1 = booklist.getBook(j+1);
                    booklist.setBook(j, book1);
                }
                booklist.setBook(j, null);
                booklist.setUsedsize(size - 1);
                System.out.println("刪除成功");
                return;
            }
        }
        System.out.println("不存在這本書");

    }
}

Borrowoperation類

借閱圖書功能:

package operation;

import book.Book;
import book.Booklist;

import java.util.Scanner;

public class Borrowoperation implements IOoperation {
    @Override
    public void work(Booklist booklist) {
        System.out.println("借閱圖書:");
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入你要借閱的圖書:");
        String name = scanner.nextLine();
        int size = booklist.getUsedsize();
        for (int i = 0; i < size; i++) {
            Book book = booklist.getBook(i);
            if(book.getName().equals(name)) {
                book.setBorrowed(true);
                System.out.println(book);
                System.out.println("借閱成功");
                return;
            }
        }
        System.out.println("該書不存在");
    }
}

Exitoperation類

退出系統(tǒng)功能:

package operation;

import book.Booklist;


public class Exitoperation implements IOoperation{
    @Override
    public void work(Booklist booklist) {
        System.out.println("退出系統(tǒng)");
        System.exit(0);
    }
}

Findoperation類

查找圖書功能:

package operation;

import book.Book;
import book.Booklist;
import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;

import javax.imageio.metadata.IIOMetadataController;
import java.util.Scanner;


public class Findoperation implements IOoperation{
    @Override
    public void work(Booklist booklist) {
        System.out.println("查找圖書:");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        int size = booklist.getUsedsize();
        for (int i = 0; i < size; i++) {
            Book book = booklist.getBook(i);
            if(book.getName().equals(name)) {
                System.out.println("找到了,信息如下:");
                System.out.println(book);
                return;
            }

        }
        System.out.println("上述不存在");
    }
}

Returnoperation類

歸還圖書功能:

package operation;

import book.Book;
import book.Booklist;

import java.util.Scanner;


public class Returnoperation implements IOoperation{
    @Override
    public void work(Booklist booklist) {
        System.out.println("歸還圖書:");
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入你要歸還的圖書:");
        String name = scanner.nextLine();
        int size = booklist.getUsedsize();
        for (int i = 0; i < size; i++) {
            Book book = booklist.getBook(i);
            if(book.getName().equals(name)) {
                book.setBorrowed(false);
                System.out.println(book);
                System.out.println("歸還成功");
                return;
            }
        }
        System.out.println("該書不存在");
    }
}

Showoperation類

顯示圖書功能:

package operation;

import book.Book;
import book.Booklist;


public class Showoperation implements IOoperation {
    @Override
    public void work(Booklist booklist) {
        System.out.println("顯示圖書:");
        int size = booklist.getUsedsize();
        for (int i = 0; i < size; i++) {
            Book book = booklist.getBook(i);
            System.out.println(book);
        }
    }
}

?Main類

通過Main類來組織程序執(zhí)行:

import book.Book;
import book.Booklist;
import user.AdminUser;
import user.NormalUser;
import user.User;

import java.util.Scanner;


public class Main {
    public static User login() {
        System.out.println("請輸入你的姓名:");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        System.out.println("請輸入你的身份:1.管理員 2.普通用戶");
        int choice = scanner.nextInt();
        if(choice == 1) {
            //管理員
            return new AdminUser(name);
        }else {
            //普通用戶
            return new NormalUser(name);
        }
    }

    public static void main(String[] args) {
        Booklist booklist = new Booklist();
        //這里發(fā)生了向上轉(zhuǎn)型
        User user = login();
        while(true) {
            int choice = user.menu();
            //choice來決定調(diào)用哪個方法類
            user.dooperation(choice, booklist);
        }

    }
}

效果展示?

【JAVA】 圖書管理系統(tǒng)(javaSE簡易版 內(nèi)含畫圖分析) | 期末大作業(yè)&課程設計,JAVA,java

圖書管理系統(tǒng)的畫圖分析

【JAVA】 圖書管理系統(tǒng)(javaSE簡易版 內(nèi)含畫圖分析) | 期末大作業(yè)&課程設計,JAVA,java

【JAVA】 圖書管理系統(tǒng)(javaSE簡易版 內(nèi)含畫圖分析) | 期末大作業(yè)&課程設計,JAVA,java文章來源地址http://www.zghlxwxcb.cn/news/detail-705516.html


到了這里,關(guān)于【JAVA】 圖書管理系統(tǒng)(javaSE簡易版 內(nèi)含畫圖分析) | 期末大作業(yè)&課程設計的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關(guān)文章

  • 圖書管理借閱系統(tǒng)【Java簡易版】Java三大特征封裝,繼承,多態(tài)的綜合運用

    圖書管理借閱系統(tǒng)【Java簡易版】Java三大特征封裝,繼承,多態(tài)的綜合運用

    前言 前幾篇文章講到了Java的基本語法規(guī)則,今天我們就用前面學到的數(shù)組,類和對象,封裝,繼承,多態(tài),抽象類,接口等做一個圖書管理借閱系統(tǒng)。 Java語言是面向?qū)ο蟮?,所以首先要分析完成這個圖書管理系統(tǒng),有哪些對象: ??使用者User ??書Book ??操作Operation 使用者

    2024年02月14日
    瀏覽(24)
  • 【JAVASE】圖書管理系統(tǒng)

    【JAVASE】圖書管理系統(tǒng)

    ? 作者:小胡_不糊涂 ?? 作者主頁:小胡_不糊涂的個人主頁 ?? 收錄專欄:淺談Java ?? 持續(xù)更文,關(guān)注博主少走彎路,謝謝大家支持 ?? 圖書管理系統(tǒng)的使用者有兩類,一類是圖書管理員,一類是借書用戶。 他們在管理系統(tǒng)中的需求與操作是不同的,所以要分別進行設計

    2024年02月07日
    瀏覽(18)
  • JavaSE:圖書管理系統(tǒng)

    JavaSE:圖書管理系統(tǒng)

    目錄 一、前言 二、內(nèi)容需求 三、類的設計 (一)圖書類 1.Book 類 ?2.BookList 類 ?(二)操作類 1.添加圖書AddOperation類 2.借閱圖書BorrowOperation類 3.刪除圖書DelOperation類 4.顯示圖書ShowOperation類 5.退出系統(tǒng)ExitOperation類 6.查找圖書FindOperation類 7.歸還圖書ReturnOperation類 8.IOperation接口

    2024年04月09日
    瀏覽(16)
  • 【JavaSE語法】圖書管理系統(tǒng)實現(xiàn)詳解

    【JavaSE語法】圖書管理系統(tǒng)實現(xiàn)詳解

    ????????在學完JavaSE語法后,我們就可以去嘗試寫一個簡單的圖書管理系統(tǒng)來進一步提升我們面對對象編程的思想。在該系統(tǒng)中會涉及到數(shù)組,接口,封裝,繼承,多態(tài)等等語法知識,希望能夠幫助到大家! 目錄 ?導言 1,需求分析 (1)找對象 (2)功能設計 2,創(chuàng)建對象

    2024年01月21日
    瀏覽(22)
  • 運用JavaSE知識實現(xiàn)圖書管理系統(tǒng)

    這篇圖書管理系統(tǒng)是對JavaSE知識總結(jié)復習的一個小作業(yè),檢測自己對知識的掌握程度。 以上就是圖書管理系統(tǒng)的所有知識,有些地方還是需要思考去巧妙地設計使得文章更加簡潔明了。冰凍三尺,非一日之寒。水滴石穿,非一日之功。堅持把每一個知識點搞清楚,并進行總結(jié)

    2024年02月04日
    瀏覽(17)
  • 圖書管理系統(tǒng)(簡易版)

    圖書管理系統(tǒng)(簡易版)

    目錄 一、該圖書管理系統(tǒng)涉及Java的知識點 二、該圖書管理系統(tǒng)包含的功能 數(shù)組的增刪查 抽象類 接口 面向?qū)ο蟮姆庋b、繼承和多態(tài) 圖書管理系統(tǒng)的使用人群分為兩種:①管理人員,②普通用戶 具體實現(xiàn):抽象類的繼承 User類(父類): AdminUser類(管理員) ?NormalUser類(普通用

    2024年02月08日
    瀏覽(24)
  • 用python實現(xiàn)簡易圖書管理系統(tǒng)

    用python實現(xiàn)簡易圖書管理系統(tǒng)

    很多圖書館都有自己的圖書管理系統(tǒng),它主要擔負的功能有 借書和還書 ,以及圖書管理員對圖書的操作等。 用戶登錄/注冊—借書/還書/查看圖書----(管理員)添加、修改圖書信息 txt文件 首先,在任意位置創(chuàng)建一個文件夾,創(chuàng)建以下幾個txt文件: bookISDN,ISDN.txt :存儲書籍的

    2024年02月08日
    瀏覽(25)
  • 前后端分離項目-基于springboot+vue的圖書館管理系統(tǒng)的設計與實現(xiàn)(內(nèi)含代碼+文檔+報告)

    前后端分離項目-基于springboot+vue的圖書館管理系統(tǒng)的設計與實現(xiàn)(內(nèi)含代碼+文檔+報告)

    博主介紹:?全網(wǎng)粉絲10W+,前互聯(lián)網(wǎng)大廠軟件研發(fā)、集結(jié)碩博英豪成立工作室。專注于計算機相關(guān)專業(yè)畢業(yè)設計項目實戰(zhàn)6年之久,選擇我們就是選擇放心、選擇安心畢業(yè)? ?? 由于篇幅限制,想要獲取完整文章或者源碼,或者代做,拉到文章底部即可看到個人VX。 ?? 2023年

    2024年02月07日
    瀏覽(21)
  • JavaWeb階段案例--簡易版管理圖書系統(tǒng)(增刪改查)

    JavaWeb階段案例--簡易版管理圖書系統(tǒng)(增刪改查)

    ? 在WEB-INF下創(chuàng)建一個lib包,并導入以下jar包:(導入后,鼠標右鍵選中l(wèi)ib文件夾,單擊“add as lib...” ?注:使用Lombok包時,除了需要導入jar包還需要從idea中下載Lombok插件 file -- setting -- plugins -- 搜Lombok -- 勾選上 -- Apply -- OK file -- setting -- Build Exec.....? -- Compiler -- Annotation Pro

    2024年02月08日
    瀏覽(18)
  • django的簡易的圖書管理系統(tǒng)jsp書店進銷存源代碼MySQL

    django的簡易的圖書管理系統(tǒng)jsp書店進銷存源代碼MySQL

    本項目為前幾天收費幫學妹做的一個項目,Java EE JSP項目,在工作環(huán)境中基本使用不到,但是很多學校把這個當作編程入門的項目來做,故分享出本項目供初學者參考。 django的簡易的圖書管理系統(tǒng) 系統(tǒng)有1權(quán)限:管理員 用所技術(shù) python3.10 django mysql5.6 注冊登錄和書籍信息的增刪

    2024年02月11日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包