题目:选用合适的set容器,模拟实现超市购物车功能,实现增加商品、移除商品、替换商品、查看商品功能。
我下面的代码是我实现存放商品的功能的
import java.util.*;public class gouwuche {
public static void main(String[] args) {
HashSet hs = new HashSet();//hs表示购物车
String s[] = new String[50];
System.out.println("请输入您要买的商品");
Scanner in = new Scanner(System.in);
    for(int i = 0; i<3; i++)
    {
     s[i] = in.next();
     hs.add(s[i]);
    }
System.out.println(hs);

}}
这段代码我觉得很不合适,如果用循环做的话就只能买固定商品的数量,而且商品数量是一个定值,这显得就很不符合实际。请大家帮我看看吧

解决方案 »

  1.   

    不可以做成简单界面形式的吗?或用jsp做,通过点击相应按钮来触发是购买还是删除
      

  2.   

    不是key-value的形式么? key 商品名称 value 商品的数量 
    再写几个对应的方法(增删改查) 
      

  3.   

    典型的思想固化了
    如果LZ说想实现购物车,那你可以考虑网上购物这个应用 用你说的JSP
    LZ说的是实现购物车的功能,并且给出了原题目:模拟实现超市购物车功能,实现增加商品、移除商品、替换商品、查看商品功能
    并且人家存放商品功能的代码已经完成,只是觉得不合适而已这就是个集合类练习题
      

  4.   

    就是一个console程序么?实现一个逻辑?回去写给你~~先一下~
      

  5.   

    //商品信息定义
    class Product {
    private String name;
    private int count;
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public int getCount() {
    return count;
    }
    public void setCount(int count) {
    this.count = count;
    }
    public boolean equals(Object other) {
    if (other == this) {
    return true;
    }
    if (other instanceof Product) {
    Product temp = (Product) other;
    return this.getName() == temp.getName()
    || (this.getName() != null && this.getName().equals(
    temp.getName()));
    }
    return false;
    }
    public int hashCode() {
    int result = 17;
    result = 37 * result
    + (getName() == null ? 0 : this.getName().hashCode());
    return result;
    }
    public String toString() {
    StringBuffer sb = new StringBuffer();
    sb.append("商品'");
    sb.append(getName());
    sb.append("':");
    sb.append(count);
    sb.append("件");
    return sb.toString();
    }
    }
      

  6.   

    //购物车,对应你需要的处理
    class Cart {
    private List<Product> cart = new ArrayList<Product>();
    private int index = -1; public void add(Product product) {
    if (contains(product)) {
    Product p = cart.get(index);
    p.setCount(p.getCount() + 1);
    } else {
    product.setCount(1);
    cart.add(product);
    }
    System.out.println("商品(" + product.getName() + ")添加成功,数量为:"
    + product.getCount());
    } public void remove(Product product) {
    System.out.println("商品" + product.getName() + "已移除");
    cart.remove(product);
    } public void replace(Product target, Product result) {
    if (contains(target)) {
    result.setCount(target.getCount());
    cart.remove(index);
    cart.add(result);
    System.out.println("替换成功,商品(" + result.getName() + ")数量为:"
    + result.getCount());
    } else {
    System.out.println("替换失败,商品(" + target.getName() + ")不存在..");
    }
    } public void find(String name) {
    Product p = new Product();
    p.setName(name);
    if (contains(p)) {
    p = cart.get(index);
    System.out.println("商品信息为:"+p);
    }
    System.out.println("商品("+name+")不存在");
    } private boolean contains(Product product) {
    index = cart.indexOf(product);
    return index >= 0;
    }
    }
      

  7.   

    http://download.csdn.net/detail/licip/1908034
    给你一下ajax做的购物车的示例。
      

  8.   

    yanmushi写的太棒了,但是我一个初学者还是不太懂啊,太谢谢你了,不知道怎么给你分,下面是我写的,我发上来,大家帮我看看哪些需要修改
      

  9.   

    import java.util.*;public class gouwuche {
    public static void main(String[] args) {
    HashSet hs = new HashSet();//hs表示购物车
    String s[] = new String[50];
    Scanner in = new Scanner(System.in);

    System.out.println("您要放入商品吗?是y/Y 否其他任意键");
    String d = in.next();
    int jsq = 0;//jsq==计数器
    while(d.equals("y") || d.equals("Y"))//增加功能
    {
    System.out.println("请输入您要购买的商品");
    String gm = in.next();//gm==购买
    hs.add(gm);
    System.out.println("添加成功!");
    jsq++;
    System.out.println("是否继续购买?是y/Y 否其他任意键");
    d = in.next();

    }
        
        System.out.println("如果想替换商品吗?是y/Y 否其他任意键");
        String b = in.next();
        while(b.equals("y") || b.equals("Y"))//替换功能
        {
         System.out.println("请输入要替换的商品");
         String th = in.next();//th==替换 
         if(hs.contains(th))
         {
         hs.remove(th);
         System.out.println("请输入要替换成哪种商品");
         String xsp = in.next();//xsp==新商品
         hs.add(xsp);
         System.out.println("替换成功!");
         System.out.println("继续替换商品请输入y/Y 否其他任意键");
         b = in.next();
         }
         else
         System.out.println("您没有放入此商品");
        
        }
        
        System.out.println("如果想删除商品请输入y/Y,如果不删除请按其他任意键");
        String a = in.next();//a来接收用户输入的是不是y
        int i = 0;
        while((a.equals("y") || a.equals("Y")) && i<jsq)//删除功能
        {
         System.out.println("请输入要删除的商品");
        String h = in.next();//h存放用户要删除的物品
        hs.remove(h);
        System.out.println("删除成功!");
        i++;
        if(i==jsq)
        {
         break;
        }
        System.out.println("还要删除吗?是y/Y 否其他任意键");
        a = in.next();
       
        }
        
        System.out.println("是否启动查看功能?是y/Y 否其他任意键");
        System.out.println("本功能只能查看您是否购买此商品");
        String c = in.next();
        while(c.equals("y") || c.equals("Y"))//查看功能
        {
         System.out.println("请输入您要查看的商品");
         String ck = in.next();//ck==查看
         if(hs.contains(ck))
         {
         System.out.println("您购买了此商品");
         }
         else
         System.out.println("您没有购买此商品");
         System.out.println("是否继续查看?是y/Y 否其他任意键");
         c = in.next();
        }
    System.out.println("您最终买的商品有"+hs);

    }}
      

  10.   

    上面就是我自己写的,写的跟C语言一个样,就没体现出java的特点……………………