import java.util.LinkedHashMap
import java.util.Map
import java.util.Map.Entry
import java.util.Scanner
public class Test {
public static void main(String[] args) {
init()//初始化
Map<String,String> map = new LinkedHashMap<>()
while(true){
Scanner in= new Scanner(System.in)
map = buy(in,map)//选择
System.out.println()
System.out.println("还要继续购物吗?(Y/N)")
String jx = in.nextLine()
if(jx.equals("N")){
break
}
}
print(map)
}
public static void print(Map<String, String> m){
System.out.println("\n\n\n******************")
System.out.println(" 购物车清单")
Integer hj = 0
for (Entry<String, String> entry : m.entrySet()) {
String key = entry.getKey()
String value = entry.getValue()
if(key.equals("1")){
hj += Integer.parseInt(value)*3
System.out.println("哇哈哈纯净水: "+value+"件,合计:¥"+Integer.parseInt(value)*3)
}else if(key.equals("2")){
hj += Integer.parseInt(value)*5
System.out.println("康师傅方便面: "+value+"件,合计:¥"+Integer.parseInt(value)*5)
}else if(key.equals("3")){
hj += Integer.parseInt(value)*4
System.out.println("可口可乐: "+value+"件,合计:¥"+Integer.parseInt(value)*4)
}
}
System.out.println("合计金额:¥"+hj)
}
public static void init(){
System.out.println("******************")
System.out.println("\t商品列表\n")
System.out.println(" 商品名称 价格")
System.out.println("1. 哇哈哈纯净水 ¥3")
System.out.println("2. 康师傅方便面 ¥5")
System.out.println("3. 可口可乐 ¥4")
System.out.println("******************")
}
public static Map<String,String> buy(Scanner scan,Map<String,String> m){
System.out.print("请输入编号:")
String bh = scan.nextLine()
System.out.print("请输入购买数量:")
String num = scan.nextLine()
if(m.size()>0 && m.keySet().contains(bh)){
m.put(bh,(Integer.parseInt(bh)+Integer.parseInt(num))+"")
}else{
m.put(bh, num)
}
return m
}
}
用java做一个购物车有三种方法:1.用cookie实现购物车;
2.用session实现购物车;
3.用cookie和数据库(购物车信息持久化)实现购物车。
在购物车中写:购物车一般放到session域中。其中有商品小计,有商品总计的一些求和计算。我记得用Map来弄的。 在购物车中添加map集合。根据放到购物车中的key来判断在map中是否存在,如果存在那就在原有商品上+1,如果不存在,那么就可以添加商品到购物车。