import
java.util.Vector
public
class
gouwuche
{
/**
*
@param
args
*/
private
static
Vector
vec
=
new
Vector()
public
static
void
gw(String
name,int
price,int
sum)
{
gouwuchebean
bean
if(vec.size()>0)
{
//说明购物车内有物品
进来比对
看是否有一样的东西
有的话让数量+sum
bean
=
new
gouwuchebean()
int
j=0//用来计数
for(int
i=0i<vec.size()i++)
{
gouwuchebean
bean1
=
(gouwuchebean)vec.get(i)
if(bean1.getName().equals(name))
{
j++
bean.setName(name)
bean.setPrice(price)
bean.setSum(sum+bean1.getSum())
vec.remove(i)//去掉原来的数据
vec.add(bean)//放入新的数据
}
}
if(j==0)
{
bean.setName(name)
bean.setPrice(price)
bean.setSum(sum)
vec.add(bean)
}
}
else
{
//如果集合是空的说明购物车内没有重复的
直接放入即可
bean
=
new
gouwuchebean()
bean.setName(name)
bean.setPrice(price)
bean.setSum(sum)
vec.add(bean)
}
}
public
static
void
show()
{
System.out.println("=============购物车当前物品==============")
int
sum
=
0//用来计一共有几件物品
int
pric
=
0//用来计共消费金额
for(int
i=0i<vec.size()i++)
{
gouwuchebean
bean
=
(gouwuchebean)vec.get(i)
sum
=
sum+bean.getSum()
pric
=
pric+(bean.getPrice()*bean.getSum())
System.out.println("*第"+(i+1)+"种物品-----名称:"+bean.getName()+"---数量是:"+bean.getSum()+"---单价是:"+bean.getPrice()+"元----共计"+(bean.getSum()*bean.getPrice()+"元"))
}
System.out.println("物品共计"+sum+"件
共计金额是:"+pric+"元")
System.out.println("=============欢迎使用购物车==============")
}
public
static
void
main(String[]
args)
{
//
TODO
Auto-generated
method
stub
gw("电视机",100,1)//选择购买物品
价格和数量还有名字
gw("可口可乐",100,9)
gw("电视机",100,9)
gw("西瓜",10,5)
gw("电动车",3000,2)
gw("奥迪A6",4000000,2)
show()
}
}
测试结果
package Testimport 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
}
}
查询的资料,找到三种方法:1.用cookie实现购物车;
2.用session实现购物车;
3.用cookie和数据库(购物车信息持久化)实现购物车;
=========================================================================
分析一下这三种方法的优缺点:
1.单纯有cookie实现购物车,这样的购物车不是很理想,设想一下,如果客户端的浏览器把cookie给禁用了,
这种方法就会在这里流产...
2.session中保存购物车的信息,这个只是在一个会话中可用,如果用户没有登录,或者说登录了以后,添加购物车,在关闭浏览器
或者登出后,之前所添加的购物车通通都流产啦...
其实每次遇到不会的都来求助是很不方便的
如果你想了解和学习更多的JAVA编程,成为一名真正的JAVA高手,你可以来这个裙,前面三个数是四二六 中间是三九六 后面是二八四
把这串数字连起来就可以了,这是一个高手的学习裙,在这里你可以学习到书上学不到的知识,还有大牛相互讨论并指导你解答哦!
3.我这里要说就是这种方法啦.....
主要的流程:
A.用户登录前的数据流:用户在没有登录系统的时候,对喜欢的商品进行添加购物车,那么这个时候,我们可以把购物车信息保存
到cookie中,这里会涉及到cookie的添加,修改 *** 作;也即如果之前在cookie中不存对应的cookie,则就对cookie进行添加 *** 作。
如果在cookie中存在对应的cookie,那么,这时候,就要对cookie进行修改 *** 作了(这里涉及到用户对同一个商品进行多次添加购物车的情况)。
B.用户登录后的数据流:用户在登录后,系统首先做的第一件事就是去获取对应的cookies,如果存在相关的购物车cookies,那么就对该购物车
信息进行相应用户User的持久化 *** 作,要么添加,要么修改。(添加 *** 作:该用户所对应的购物车如果没有相应的信息进行添加 *** 作;修改 *** 作:类似的,
如果存在对应用户的购物车信息,就进行修改 *** 作)。用户登录后,也可以进行购物车的添加 *** 作,不过,这里不是添加到cookie中,而是直接持久化到
数据库中。注:用户登录后的数据都是和数据库打交道。
===========================================
以上就是我的见解 如果有什么不懂可以问我 想学习的童鞋秒懂 供参考 满意请采纳
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)