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

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

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

一、購書系統(tǒng)

1.前言

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

2.功能介紹

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

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

3.分析

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

二、圖書類(Book)

1.類名及屬性

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

2.代碼示例

/*
定義圖書類
*/
public class Book {
    private int id;
    private String name;
    private double price;
    private int stock;
    //無參構造
    public Book() {
    }
    //帶四個參數(shù)的構造
    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;
    }
}

三、訂單項類(OrderItem)

1.類名及屬性

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

2.代碼示例

/*
定義訂單項類
*/
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)
  • 訂單項列表(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實用教程",10,20);
        books[1]=new Book(2,"計算機網(wǎng)絡原理",20,20);
        books[2]=new Book(3,"概率論數(shù)理統(tǒng)計",30,20);

        System.out.println("圖書編號\t圖書名稱\t\t\t圖書單價\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圖書單價\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];

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

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

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

六、總結

通過本實例學會分析“基于控制臺的購書系統(tǒng)”程序任務實現(xiàn)的邏輯思路,掌握并理解面向對象的程序設計,包和訪問控制修飾符的使用。?

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

相關文章

  • Springboot?Filter中注入bean無效為null問題

    Springboot?Filter中注入bean無效為null問題

    這篇文章主要介紹了Springboot?Filter中注入bean無效為null問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • SpringBoot測試junit遇到的坑及解決

    SpringBoot測試junit遇到的坑及解決

    這篇文章主要介紹了SpringBoot測試junit遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • SpringCloud基于SpringAMQP實現(xiàn)消息隊列及原理解析

    SpringCloud基于SpringAMQP實現(xiàn)消息隊列及原理解析

    Spring AMQP作為Spring框架的一部分,是一套用于支持高級消息隊列協(xié)議(AMQP)的工具,這篇文章主要介紹了SpringCloud基于SpringAMQP實現(xiàn)消息隊列及原理解析,需要的朋友可以參考下
    2024-04-04
  • 聊聊maven的pom.xml中的exclusions標簽的作用

    聊聊maven的pom.xml中的exclusions標簽的作用

    這篇文章主要介紹了maven的pom.xml中的exclusions標簽的作用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java項目中大批量數(shù)據(jù)查詢導致OOM的解決

    Java項目中大批量數(shù)據(jù)查詢導致OOM的解決

    本文主要介紹了Java項目中大批量數(shù)據(jù)查詢導致OOM的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • springboot cloud使用eureka整合分布式事務組件Seata 的方法

    springboot cloud使用eureka整合分布式事務組件Seata 的方法

    這篇文章主要介紹了springboot cloud使用eureka整合分布式事務組件Seata 的方法 ,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05
  • 關于Springboot的日志配置

    關于Springboot的日志配置

    Spring Boot默認使用LogBack日志系統(tǒng),如果不需要更改為其他日志系統(tǒng)如Log4j2等,則無需多余的配置,LogBack默認將日志打印到控制臺上,需要的朋友可以參考下
    2023-05-05
  • Java實現(xiàn)LeetCode(組合總和)

    Java實現(xiàn)LeetCode(組合總和)

    這篇文章主要介紹了Java實現(xiàn)LeetCode(組合總數(shù)),本文通過使用java實現(xiàn)leetcode的組合總數(shù)題目和實現(xiàn)思路分析,需要的朋友可以參考下
    2021-06-06
  • Mybatis通過攔截器實現(xiàn)單數(shù)據(jù)源內多數(shù)據(jù)庫切換

    Mybatis通過攔截器實現(xiàn)單數(shù)據(jù)源內多數(shù)據(jù)庫切換

    這篇文章主要為大家詳細介紹了Mybatis如何通過攔截器實現(xiàn)單數(shù)據(jù)源內多數(shù)據(jù)庫切換,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-12-12
  • 如何使用MybatisPlus的SQL注入器提升批量插入性能

    如何使用MybatisPlus的SQL注入器提升批量插入性能

    本文給大家介紹如何使用MybatisPlus的SQL注入器提升批量插入性能,以實戰(zhàn)視角講述如何利用該特性提升MybatisPlus?的批量插入性能,感興趣的朋友跟隨小編一起看看吧
    2024-05-05

最新評論

社会| 奇台县| 衡阳市| 泰安市| 三河市| 塘沽区| 保德县| 兴和县| 滁州市| 岱山县| 开化县| 台安县| 兴国县| 磐安县| 安达市| 达拉特旗| 法库县| 普兰店市| 新建县| 运城市| 城固县| 隆化县| 合江县| 东阿县| 新民市| 尼勒克县| 巴楚县| 大冶市| 建湖县| 西吉县| 酒泉市| 汤阴县| 石嘴山市| 阳山县| 琼中| 安西县| 上饶市| 天全县| 东光县| 泰安市| 海原县|