用java程式碼寫一個簡單的網上購物車程式
需求:1、寫一個商品類,有商品編號、商品名稱、商品分類、商品單價屬性。2、寫一個商品條目資訊類,有商品和數量兩個屬性,有商品總價格方法。
3、寫一個購物車類,有新增商品方法、檢視訂單資訊,刪除商品,修改商品,清空購物車,求購物車中所有商品總金額方法。4、寫一個測試類,測試上述方法。
商品類:
商品條目資訊類:public class Product { private int productId;// 商品編號 private String productName;// 商品名稱 private String category;// 商品分類 private double price;// 單價 public Product() {// 無參構造 super(); } public Product(int productId, String productName, String category, double price) { super(); this.productId = productId; this.productName = productName; this.category = category; this.price = price; } public String toString() { return "Product [productId=" + productId + ", productName=" + productName + ", category=" + category + ", price=" + price + "]"; } public int getProductId() { return productId; } public void setProductId(int productId) { this.productId = productId; } public String getProductName() { return productName; } public void setProductName(String productName) { this.productName = productName; } public String getCategory() { return category; } public void setCategory(String category) { this.category = category; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } }
public class ProductItem { private Product product;//購買的商品 private int count;//商品數量 public double totalMoney(){//小計 double price=product.getPrice();//獲取商品單價 return price*count; } public ProductItem() { super(); } public ProductItem(Product product, int count) { super(); this.product = product; this.count = count; } public Product getProduct() { return product; } public void setProduct(Product product) { this.product = product; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } }
購物車類:
import java.util.Collection; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; public class ShoppingCart {//購物車 //key:商品編號 value:商品條目 private Map<Integer,ProductItem> map=new LinkedHashMap<Integer,ProductItem>(); public void addProduct(Product p){//新增商品 int productId=p.getProductId(); if(map.containsKey(productId)){ ProductItem productItem=map.get(productId); productItem.setCount(productItem.getCount()+1); }else{ map.put(productId, new ProductItem(p,1)); } } public void showAll(){//檢視訂單資訊 Collection<ProductItem> productItems = map.values(); Iterator<ProductItem> iterator = productItems.iterator(); while(iterator.hasNext()){ ProductItem productItem = iterator.next(); Product product = productItem.getProduct(); System.out.println("商品編號:"+product.getProductId()+",商品名稱:" +product.getProductName()+",單價:"+product.getPrice()+",數量:"+productItem.getCount() +",小計:"+productItem.totalMoney()); } } public boolean deleteProduct(int productId){//刪除商品 if(map.containsKey(productId)){ map.remove(productId); return true; } return false; } public boolean modifyProduct(int productId,int count){//修改 if(map.containsKey(productId)){ if(count>=1){ ProductItem productItem = map.get(productId); productItem.setCount(count); return true; }else if(count==0){//刪除該商品 deleteProduct(productId); return true; } } return false; } public void clearCart(){//清空購物車 map.clear(); } public double totalAllMoney(){//商品總錢數 double total=0; Collection<ProductItem> productItems = map.values(); Iterator<ProductItem> iterator = productItems.iterator(); while(iterator.hasNext()){ ProductItem productItem = iterator.next(); double money=productItem.totalMoney(); total+=money; } return total; } }
測試類:
public class ShoppingCartTest {
public static void main(String[] args) {
ShoppingCart cart=new ShoppingCart();
Product p1=new Product(101,"華碩筆記本","筆記本",4599);
Product p2=new Product(102,"蘋果","水果",5.9);
Product p3=new Product(103,"彩電","家電",2799);
Product p4=new Product(104,"秋褲","服裝",128);
Product p5=new Product(105,"華為手機","手機",2998);
Product p6=new Product(101,"華碩筆記本","筆記本",4599);//測試買兩件商品的情況
cart.addProduct(p1);
cart.addProduct(p2);
cart.addProduct(p3);
cart.addProduct(p4);
cart.addProduct(p5);
cart.addProduct(p6);
cart.showAll();
System.out.println("############");
boolean flag=cart.deleteProduct(p2.getProductId());
if(flag){
System.out.println("商品編號為:"+p2.getProductId()+"的商品刪除成功!");
}else{
System.out.println("刪除失敗");
}
cart.showAll();
System.out.println("############");
boolean flag2=cart.modifyProduct(p3.getProductId(), 2);
if(flag2){
System.out.println("商品編號為:"+p3.getProductId()+"的商品修改成功!");
}else{
System.out.println("修改失敗");
}
cart.showAll();
//cart.clearCart();
//cart.showAll();
System.out.println("商品總價錢為:"+cart.totalAllMoney());
}
}
執行效果圖:
相關推薦
用java程式碼寫一個簡單的網上購物車程式
需求:1、寫一個商品類,有商品編號、商品名稱、商品分類、商品單價屬性。2、寫一個商品條目資訊類,有商品和數量兩個屬性,有商品總價格方法。 3、寫一個購物車類,有新增商品方法、檢視訂單資訊,刪除商品,修改商品,清空購物車,求購物車中所有商品總金額方法。4、寫一個測試類,測試上
用Java程式碼寫一個判斷兩個二叉樹是否相同
判斷兩個二叉樹是否相同,我覺得應該從三個方面來判斷: 1、若兩個二叉樹都是空樹,則返回true,可認為兩個二叉樹相同; 2、若兩個二叉樹一個為空,一個不為空樹,則兩個二叉樹不相同,返回false; 3、若兩個二叉樹都不為空樹,則判斷兩個節點所指的值是否相同,若相同,則用遞迴
用120行Java程式碼寫一個自己的區塊鏈
區塊鏈是目前最熱門的話題,廣大讀者都聽說過比特幣,或許還有智慧合約,相信大家都非常想了解這一切是如何工作的。這篇文章就是幫助你使用 Java 語言來實現一個簡單的區塊鏈,用不到 120 行程式碼來揭示區塊鏈的原理! “用不到120行 Java 程式碼就能實現一個
用Java GUI做一個簡單的管理系統
java 管理系統 gui 1.先完成主頁面MainUI(代碼如下)package com.pag_1; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.
python學習(8)實例:寫一個簡單商城購物車的代碼
商品 流程圖 index blog pen 什麽 author 數字 git 要求: 1、寫一段商城程購物車序的代碼2、用列表把商城的商品清單存儲下來,存到列表 shopping_mail3、購物車的列表為shopping_cart4、用戶首先輸入工資金額,判斷輸入為數字5
用Java制作一個簡單的圖片驗證碼
err 一個 graphic opera login new pri buffer image //Java實現簡單驗證碼功能 package project; import java.awt.Color; import java.awt.Font;import java.
用python語言寫一個簡單的計算器
ali pla ket 列表 調用 語言 括號 lac 跳出循環 假如我們有這樣一個式子: 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )思
用Java自己寫一個反轉字串的方法
關於反轉字串的方法,Java中的StringBuffer類中有現成的方法,自己寫一個是為了提高自己的程式設計能力。 挺簡單的,主要是用了String類的構造方法,Java的自動拆裝箱機制,剩下的就是基本的迴圈了,供朋友們參考
用socket寫一個簡單的聊天程式
服務端程式碼: # 建立socket物件:socket.socket()——>繫結IP地址和埠:bind——>監聽:listen——># 得到請求:accept——>接收請求:recv——>傳送資訊:send——>關閉close i
用android studio寫一個簡單並且bug奇多的計算器
思路:先佈局,在將相應的按鍵例項化,建立監聽器,計算。可以說是非常簡單了。 貼一下程式碼: 佈局程式碼: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas
用C語言寫一個簡單的三子棋,實現玩家與電腦的對戰
原始碼: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <windows.h> #include <time.h> /* 用 C 寫一個三子棋 */ //邏輯: //1. 畫
用C語言寫一個簡單的掃雷小遊戲
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <windows.h> #include <time.h> /* 用 C 語言寫一個簡單的掃雷遊戲 */ // 1.寫一個遊戲選單 M
用 Java 手把手寫一個“二叉搜尋樹”,支援泛型
一、二叉搜尋樹 先說一下二叉樹,二叉樹是一種至多隻有左右兩個子結點的樹形結構。 二叉搜尋樹是二叉樹的一種,對於任意一個結點 x,其左子樹的任一結點的值都不大於 x 的值,其右子樹的任一結點的值都不小於 x 的值。 二叉搜尋樹上的基本操作有 查詢 (search)、最小值
python進階-用Tkinter/mysqldb寫一個簡單的酒店預定GUI介面
學了python的部分庫和基本語法後,結合資料庫操作,做一個簡單的使用者友好介面實現一個簡單的酒店預訂小系統。 準備姿勢 tkinter的元件轉換 tkinter按鈕元件詳解 Python連線資料庫操作 資料庫準備 在本地資料庫新建一個hotel_data的資料庫,建立四張表。
(3) 用java編譯器實現一個簡單的編譯器-語法分析
轉載地址:http://blog.csdn.net/tyler_download/article/details/50708807 視訊地址:http://study.163.com/course/courseLearn.htm?courseId=1002830012#/l
用java程式碼寫的圖片輪播,方便呼叫
package com.sxt.view; import java.util.List; import com.sxt.net.img.ImageLoad; import android.content.Context; import android.graphics.Bi
用Java程式碼刪除一個已排好序連結串列中重複的數字
題目是:一直一個已排好序的連結串列,刪除其中重複的數字,我的想法是重新建一個連結串列,存沒有重複數字並且是已排好序的數字。 演算法思想是: 首先要考慮該連結串列是否為空或者只有一個節點 重新建立一個連結串列,將原來連結串列的頭節點設為新連結串列的頭節點,然後依次比較原來連結
Java面試題:如何用java程式碼寫一個堆疊
原文引用自http://www.jobui.com/mianshiti/it/java/7882/點選開啟連結 public class Stack { int[] data; int maxSize; int top; public Stack(int maxSize)
用C#程式碼生成一個簡單的PDF檔案(轉)
using System; using System.IO; using System.Text; using System.Collections; namespace PDFGenerator { /// /// Application : Generation of PDF file from
用java se寫一個超市購物系統
這是一個用java se寫的超市購物系統,能夠根據客戶選擇完成一些功能,程式碼如下:package com.Test6; import java.util.Scanner; public class Test6_5 { //鍵盤錄入數字方法 public int input