欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java超詳細(xì)教你寫一個(gè)網(wǎng)絡(luò)購書系統(tǒng)案例

 更新時(shí)間:2022年03月29日 10:11:22   作者:不愛生姜不吃醋  
這篇文章主要介紹了怎么用Java來寫一個(gè)購書系統(tǒng),購買書籍主要需要每本書的編號、書名、單價(jià)、庫存屬性,能夠讓客戶通過編號來選書,感興趣的朋友跟隨文章往下看看吧

一、購書系統(tǒng)

1.前言

伴隨著互聯(lián)網(wǎng)的飛速發(fā)展,網(wǎng)絡(luò)購書系統(tǒng)作為電子商務(wù)的一種形式,正以其高效、低成本的優(yōu)勢逐步成為新興的經(jīng)營模式,人們已經(jīng)不再滿足互聯(lián)網(wǎng)的用途僅僅局限于信息的瀏覽和發(fā)布,更渴望著能夠充分享受互聯(lián)網(wǎng)所帶來的更多便利。網(wǎng)絡(luò)購書系統(tǒng)正適應(yīng)了當(dāng)今社會的快節(jié)奏生活,使更多顧客可以足不出戶就能方便快捷地購買自己喜歡的圖書。

2.功能介紹

使用Java語言編寫一個(gè)基于控制臺的購書系統(tǒng),實(shí)現(xiàn)購書功能。輸出所有圖書的信息:每本書的編號、書名、單價(jià)、庫存。

在顧客購買書時(shí),根據(jù)提示輸入圖書編號來選購需要的書,并根據(jù)提示輸入購買書的數(shù)量。 購買完畢后輸出顧客的訂單信息,包括:訂單號、訂單明細(xì)、訂單總額。

3.分析

  • 需要?jiǎng)?chuàng)建三個(gè)實(shí)體類:圖書類、訂單項(xiàng)類、訂單類。
  • 由于購買圖書時(shí),需要選擇圖書的數(shù)量,所以需要在訂單項(xiàng)類里定義獲取圖書對象以及圖書數(shù)量的方法。
  • 由于需要指定訂單項(xiàng)以及獲取訂單的訂單列表、訂單號、訂單總額等信息,所以需要有訂單列表、訂單號、訂單總額指定訂單項(xiàng)等方法。

二、圖書類(Book)

1.類名及屬性

  • 圖書編號(id)
  • 圖書名稱(name)
  • 圖書單價(jià)(price)
  • 庫存數(shù)量(storage)

2.代碼示例

/*
定義圖書類
*/
public class Book {
    private int id;
    private String name;
    private double price;
    private int stock;
    //無參構(gòu)造
    public Book() {
    }
    //帶四個(gè)參數(shù)的構(gòu)造
    public Book(int id, String name, double price, int stock) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.stock = stock;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

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

    public int getStock() {
        return stock;
    }

    public void setStock(int stock) {
        this.stock = stock;
    }
}

三、訂單項(xiàng)類(OrderItem)

1.類名及屬性

  • 圖書(book)
  • 購買數(shù)量(num)

2.代碼示例

/*
定義訂單項(xiàng)類
*/
public class OrderItem {
    private Book book;
    private int num;

    public OrderItem() {
    }
    public OrderItem(Book book, int num) {
        this.book = book;
        this.num = num;
    }

    public Book getBook() {
        return book;
    }

    public void setBook(Book book) {
        this.book = book;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }
}

四、訂單類(Order)

1.類名及屬性

  • 訂單號(orderID)
  • 訂單總額(total)
  • 訂單項(xiàng)列表(items)

2.代碼示例

/*
訂單類
*/
public class Order {
    private String orderID;
    private OrderItem[] items = new OrderItem[3];
    private double totalMoney;

    public Order() {
    }

    public Order(String orderID) {
        this.orderID = orderID;
    }

    public String getOrderID() {
        return orderID;
    }

    public void setOrderID(String orderID) {
        this.orderID = orderID;
    }

    public OrderItem[] getItems() {
        return items;
    }

    public void setItems(int i,OrderItem item) {
        items[i]=item;
    }

    public double getTotalMoney() {
        for (int i = 0; i < items.length; i++) {
            totalMoney += items[i].getNum()*items[i].getBook().getPrice();
        }
        return totalMoney;
    }
}

五、測試類(Test)

1.編寫打印圖書信息的方法

/*
打印圖書信息的方法
*/
    private static void printBooks(Book[] books) {
        books[0]=new Book(1,"Java2實(shí)用教程",10,20);
        books[1]=new Book(2,"計(jì)算機(jī)網(wǎng)絡(luò)原理",20,20);
        books[2]=new Book(3,"概率論數(shù)理統(tǒng)計(jì)",30,20);

        System.out.println("圖書編號\t圖書名稱\t\t\t圖書單價(jià)\t圖書庫存");
        for (int i = 0; i < books.length; i++) {
            Book b=books[i];
            System.out.println("\t"+b.getId() +"\t\t"+b.getName()+"\t\t"+b.getPrice()+"\t\t"+b.getStock());
        }
    }

2.編寫購買圖書的方法

/*
購買圖書的方法
*/
    private static Order buy(Book[] books) {
        Order order = new Order("001");
        Scanner sc=new Scanner(System.in);
        for (int i = 0; i < books.length; i++) {
            System.out.println("請輸入圖書的編號:");
            int id = sc.nextInt();
            System.out.println("請輸入購買的數(shù)量:");
            int num = sc.nextInt();
            OrderItem item = new OrderItem(books[id-1],num);
            order.setItems(i,item);
        }
        return order;
    }

3.編寫打印訂單信息方法

/*
打印訂單信息方法
*/
    private static void printInfo(Order order) {
        System.out.println("訂單編號:"+order.getOrderID());
        System.out.println("圖書名稱\t\t圖書單價(jià)\t購買的數(shù)量");
        OrderItem[] items = order.getItems();
        for (int i = 0; i < items.length; i++) {
            System.out.println(items[i].getBook().getName()+"\t"+items[i].getBook().getPrice()+"\t\t"+items[i].getNum());
        }
        System.out.println("----------------------------------");
        System.out.println("總金額:"+order.getTotalMoney());
    }

4.編寫main方法

    public static void main(String[] args) {
        Book[] books = new Book[3];

        //調(diào)用打印圖書信息的方法
        printBooks(books);

        //調(diào)用購買圖書的方法
        Order order = buy(books);

        //調(diào)用打印訂單信息方法
        printInfo(order);
    }

六、總結(jié)

通過本實(shí)例學(xué)會分析“基于控制臺的購書系統(tǒng)”程序任務(wù)實(shí)現(xiàn)的邏輯思路,掌握并理解面向?qū)ο蟮某绦蛟O(shè)計(jì),包和訪問控制修飾符的使用。?

到此這篇關(guān)于Java超詳細(xì)教你寫一個(gè)購書系統(tǒng)案例的文章就介紹到這了,更多相關(guān)Java 購書系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何對quartz定時(shí)任務(wù)設(shè)置結(jié)束時(shí)間

    如何對quartz定時(shí)任務(wù)設(shè)置結(jié)束時(shí)間

    這篇文章主要介紹了如何對quartz定時(shí)任務(wù)設(shè)置結(jié)束時(shí)間問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java NIO中的零拷貝原理

    Java NIO中的零拷貝原理

    這篇文章主要介紹了Java NIO中的零拷貝原理,零拷貝即Zero-Copy,顧名思義,零拷貝是指的一種非拷貝的方式來減少IO次數(shù)的工作方式,零拷貝的作用就是減少IO,提高IO效率,需要的朋友可以參考下
    2023-11-11
  • SpringBoot預(yù)加載與懶加載實(shí)現(xiàn)方法超詳細(xì)講解

    SpringBoot預(yù)加載與懶加載實(shí)現(xiàn)方法超詳細(xì)講解

    Spring一直被詬病啟動(dòng)時(shí)間慢,可Spring/SpringBoot是輕量級的框架。因?yàn)楫?dāng)Spring項(xiàng)目越來越大的時(shí)候,在啟動(dòng)時(shí)加載和初始化Bean就會變得越來越慢,很多時(shí)候我們在啟動(dòng)時(shí)并不需要加載全部的Bean,在調(diào)用時(shí)再加載就行,那這就需要預(yù)加載與懶加載的功能了
    2022-11-11
  • SpringBoot中@ComponentScan注解過濾排除不加載某個(gè)類的3種方法

    SpringBoot中@ComponentScan注解過濾排除不加載某個(gè)類的3種方法

    這篇文章主要給大家介紹了關(guān)于SpringBoot中@ComponentScan注解過濾排除不加載某個(gè)類的3種方法,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用SpringBoot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-07-07
  • idea環(huán)境下Maven無法正常下載pom中配置的包問題

    idea環(huán)境下Maven無法正常下載pom中配置的包問題

    這篇文章主要介紹了idea環(huán)境下Maven無法正常下載pom中配置的包的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 聊聊java中引用數(shù)據(jù)類型有哪些

    聊聊java中引用數(shù)據(jù)類型有哪些

    這篇文章主要介紹了java中引用數(shù)據(jù)類型有哪些,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • MyBatis詳細(xì)執(zhí)行流程的全紀(jì)錄

    MyBatis詳細(xì)執(zhí)行流程的全紀(jì)錄

    這篇文章主要給大家介紹了關(guān)于MyBatis詳細(xì)執(zhí)行流程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 解決fastjson從1.1.41升級到1.2.28后報(bào)錯(cuò)問題詳解

    解決fastjson從1.1.41升級到1.2.28后報(bào)錯(cuò)問題詳解

    這篇文章主要介紹了解決fastjson從1.1.41升級到1.2.28后報(bào)錯(cuò)問題詳解,需要的朋友可以參考下
    2020-02-02
  • Java BigDecimal使用方法詳解

    Java BigDecimal使用方法詳解

    Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數(shù)進(jìn)行精確的運(yùn)算。雙精度浮點(diǎn)型變量double可以處理16位有效數(shù),但在實(shí)際應(yīng)用中,可能需要對更大或者更小的數(shù)進(jìn)行運(yùn)算和處理
    2022-12-12
  • IDEA 集成 Docker 插件一鍵部署 SpringBoot 應(yīng)用小結(jié)

    IDEA 集成 Docker 插件一鍵部署 SpringBoot 應(yīng)用

    通過本文介紹的方法,我們期望能幫助開發(fā)者更輕松地在IDEA中實(shí)現(xiàn)Spring Boot應(yīng)用的Docker化部署,為現(xiàn)代軟件開發(fā)提供更便捷的解決方案,感興趣的朋友一起看看吧
    2023-11-11

最新評論