Java超詳細教你寫一個網(wǎng)絡購書系統(tǒng)案例
一、購書系統(tǒng)
1.前言
伴隨著互聯(lián)網(wǎng)的飛速發(fā)展,網(wǎng)絡購書系統(tǒng)作為電子商務的一種形式,正以其高效、低成本的優(yōu)勢逐步成為新興的經(jīng)營模式,人們已經(jīng)不再滿足互聯(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];
//調(diào)用打印圖書信息的方法
printBooks(books);
//調(diào)用購買圖書的方法
Order order = buy(books);
//調(diào)用打印訂單信息方法
printInfo(order);
}
六、總結
通過本實例學會分析“基于控制臺的購書系統(tǒng)”程序任務實現(xiàn)的邏輯思路,掌握并理解面向?qū)ο蟮某绦蛟O計,包和訪問控制修飾符的使用。?
到此這篇關于Java超詳細教你寫一個購書系統(tǒng)案例的文章就介紹到這了,更多相關Java 購書系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot預加載與懶加載實現(xiàn)方法超詳細講解
Spring一直被詬病啟動時間慢,可Spring/SpringBoot是輕量級的框架。因為當Spring項目越來越大的時候,在啟動時加載和初始化Bean就會變得越來越慢,很多時候我們在啟動時并不需要加載全部的Bean,在調(diào)用時再加載就行,那這就需要預加載與懶加載的功能了2022-11-11
SpringBoot中@ComponentScan注解過濾排除不加載某個類的3種方法
這篇文章主要給大家介紹了關于SpringBoot中@ComponentScan注解過濾排除不加載某個類的3種方法,文中通過實例代碼介紹的非常詳細,對大家學習或者使用SpringBoot具有一定的參考學習價值,需要的朋友可以參考下2023-07-07
idea環(huán)境下Maven無法正常下載pom中配置的包問題
這篇文章主要介紹了idea環(huán)境下Maven無法正常下載pom中配置的包的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
解決fastjson從1.1.41升級到1.2.28后報錯問題詳解
這篇文章主要介紹了解決fastjson從1.1.41升級到1.2.28后報錯問題詳解,需要的朋友可以參考下2020-02-02
IDEA 集成 Docker 插件一鍵部署 SpringBoot 應用
通過本文介紹的方法,我們期望能幫助開發(fā)者更輕松地在IDEA中實現(xiàn)Spring Boot應用的Docker化部署,為現(xiàn)代軟件開發(fā)提供更便捷的解決方案,感興趣的朋友一起看看吧2023-11-11

