1.首先,我列出了我們需要的java類結構。
1)database . Java——模擬商品存儲的數據庫。
2)MC bean . Java-商品實體類,壹個普通的javabean,包含了商品的基本屬性。
3)orderitembean . Java-訂單表單。
4)shopping car . Java——這是主購物車,當然相對簡單。
5)testshoppingcar . Java——這是壹個測試類。
2.具體的代碼和關鍵的註釋貼在下面。
Database.java
公共類數據庫{
/* Map用於存儲商品數據。為什麽?我覺得這個問題需要妳自己去思考。
*整數是Map的鍵值,麥克賓是Map的value值。
*/
私有靜態地圖& lt整數,麥克賓& gtdata = new HashMap & lt整數,麥克賓& gt();
公共數據庫(){
麥克賓·比恩=新麥克賓();
bean . setid(1);
Bean.setName("紅薯");
bean . set price(2.0);
Bean.setInstuction("鮮紅薯");
data.put(1,bean);//將商品放入地圖中
bean =新麥克賓();
bean . setid(2);
bean . set name(" potato ");
bean . set price(1.2);
Bean.setInstuction("又好又大的土豆");
data.put(2,bean);//將商品放入地圖中
bean =新麥克賓();
bean . setid(3);
Bean.setName("絲瓜");
bean . set price(1.5);
Bean.setInstuction("本地絲瓜");
data.put(3,bean);//將商品放入地圖中
}
公共void setMcBean(麥克賓mcBean){
data.put(mcBean.getId(),MC bean);
}
公共麥克賓getMcBean(int nid) {
返回data . get(NID);
}
}
McBean.java
公共類麥克賓{
private int id//商品編號
私有字符串名稱;//商品名稱
私人雙倍價格;//商品價格
私有字符串指令;//商品描述
public int getId() {
返回id;
}
public void setId(int id) {
this.id = id
}
公共字符串getName() {
返回名稱;
}
public void setName(字符串名){
this.name = name
}
public double getPrice() {
退貨價格;
}
公共無效定價(雙倍價格){
this.price =價格;
}
公共字符串getinstruction(){
返回指令;
}
公共void設置指令(字符串指令){
this.instuction = instuction
}
}
ShoppingCar.java
公共類購物汽車{
私人雙倍總價;//購物車中所有商品的總價
私有int totalCount//購物車中所有商品的數量
私人地圖& lt整數,OrderItemBean & gtitemMap//商品編號和訂單項目的鍵值對
公共購物汽車(){
itemMap = new HashMap & lt整數,OrderItemBean & gt();
}
公共無效購買(國際){
OrderItemBean order = item map . get(NID);
麥克賓MB;
if (order == null) {
mb =新數據庫()。getMcBean(NID);
order = new OrderItemBean(mb,1);
itemMap.put(nid,order);
更新(nid,1);
}否則{
order . set count(order . get count()+1);
更新(nid,1);
}
}
公共void刪除(int nid) {
OrderItemBean de order = item map . remove(NID);
total count = total count-de lorder . get count();
total price = total price-de lorder . getthing()。getPrice()* delorder . get count();
}
公共void更新(int nid,int count) {
OrderItemBean up order = item map . get(NID);
total count = total count+count;
total price = total price+up order . getthing()。getPrice()* count;
}
公共void clear() {
item map . clear();
total count = 0;
totalPrice = 0.0
}
公共void show() {
DecimalFormat df =新的DecimalFormat(" #。##");
System.out.println("商品編號\ t商品名稱\ t單價\ t采購數量\ t總價");
set set = item map . keyset();
叠代器it = set . iterator();
while (it.hasNext()) {
OrderItemBean order = item map . get(it . next());
system . out . println(order . getthing()。getId() + "\t "
+ order.getThing()。getName() + "\t "
+ df.format(order.getThing()。getPrice())+" \ t "+order . get count()
+" \ t "+df . format(order . get count()* order . getthing()。getPrice()));
}
System.out.println ("total:總數量:"+df.format(totalCount)+"總價:"+df . format(total price));
system . out . println(" * * * * * * * * * * * * * * * * * * * * * * * * * * *);
}
}
OrderItemBean.java
公共類OrderItemBean {
二等兵麥克賓的事情;//商品的實體
private int計數;//商品數量
public OrderItemBean(麥克賓事物,int count) {
super();
this.thing = thing
this.count = count
}
公共麥克賓獲取(){
還東西;
}
公共空設置(麥克賓的事情){
this.thing = thing
}
public int getCount() {
返回計數;
}
public void setCount(int count) {
this.count = count
}
}
TestShoppingCar.java
包com.shop
公共類TestShoppingCar {
公共靜態void main(String[] args) {
shopping car s = new shopping car();
s . buy(1);//購買商品編號為1的商品。
s . buy(1);
s . buy(2);
s . buy(3);
s . buy(1);
s . show();//顯示購物車信息。
s . delete(1);//刪除商品編號為1的商品。
s . show();
s . clear();
s . show();
}
}
3.打印出結果
商品編號商品名稱單價購買數量總價
1紅薯2 3 6
2土豆1.2 1 1.2
3絲瓜1.5 1 1.5
合計:總數量:5元總價:8.7元
**********************************************
商品編號商品名稱單價購買數量總價
2土豆1.2 1 1.2
3絲瓜1.5 1 1.5
合計:總數量:人民幣2元總價:人民幣2.7元
**********************************************
商品編號商品名稱單價購買數量總價
總計:總數量:0總價:0
**********************************************
4.打字太累,又趕時間,但主要還是看妳懂不懂。什麽不清楚?再提壹次。