Java超詳細(xì)教你寫一個網(wǎng)絡(luò)購書系統(tǒng)案例
一、購書系統(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語言編寫一個基于控制臺的購書系統(tǒng),實現(xiàn)購書功能。輸出所有圖書的信息:每本書的編號、書名、單價、庫存。
在顧客購買書時,根據(jù)提示輸入圖書編號來選購需要的書,并根據(jù)提示輸入購買書的數(shù)量。 購買完畢后輸出顧客的訂單信息,包括:訂單號、訂單明細(xì)、訂單總額。
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;
//無參構(gòu)造
public Book() {
}
//帶四個參數(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;
}
}
三、訂單項類(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)絡(luò)原理",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);
}
六、總結(jié)
通過本實例學(xué)會分析“基于控制臺的購書系統(tǒng)”程序任務(wù)實現(xiàn)的邏輯思路,掌握并理解面向?qū)ο蟮某绦蛟O(shè)計,包和訪問控制修飾符的使用。?
到此這篇關(guān)于Java超詳細(xì)教你寫一個購書系統(tǒng)案例的文章就介紹到這了,更多相關(guān)Java 購書系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot?Filter中注入bean無效為null問題
這篇文章主要介紹了Springboot?Filter中注入bean無效為null問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
SpringCloud基于SpringAMQP實現(xiàn)消息隊列及原理解析
Spring AMQP作為Spring框架的一部分,是一套用于支持高級消息隊列協(xié)議(AMQP)的工具,這篇文章主要介紹了SpringCloud基于SpringAMQP實現(xiàn)消息隊列及原理解析,需要的朋友可以參考下2024-04-04
聊聊maven的pom.xml中的exclusions標(biāo)簽的作用
這篇文章主要介紹了maven的pom.xml中的exclusions標(biāo)簽的作用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
Java項目中大批量數(shù)據(jù)查詢導(dǎo)致OOM的解決
本文主要介紹了Java項目中大批量數(shù)據(jù)查詢導(dǎo)致OOM的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
springboot cloud使用eureka整合分布式事務(wù)組件Seata 的方法
這篇文章主要介紹了springboot cloud使用eureka整合分布式事務(wù)組件Seata 的方法 ,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-05-05
Mybatis通過攔截器實現(xiàn)單數(shù)據(jù)源內(nèi)多數(shù)據(jù)庫切換
這篇文章主要為大家詳細(xì)介紹了Mybatis如何通過攔截器實現(xiàn)單數(shù)據(jù)源內(nèi)多數(shù)據(jù)庫切換,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12
如何使用MybatisPlus的SQL注入器提升批量插入性能
本文給大家介紹如何使用MybatisPlus的SQL注入器提升批量插入性能,以實戰(zhàn)視角講述如何利用該特性提升MybatisPlus?的批量插入性能,感興趣的朋友跟隨小編一起看看吧2024-05-05

