题目:选用合适的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);
}}
这段代码我觉得很不合适,如果用循环做的话就只能买固定商品的数量,而且商品数量是一个定值,这显得就很不符合实际。请大家帮我看看吧
我下面的代码是我实现存放商品的功能的
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);
}}
这段代码我觉得很不合适,如果用循环做的话就只能买固定商品的数量,而且商品数量是一个定值,这显得就很不符合实际。请大家帮我看看吧
再写几个对应的方法(增删改查)
如果LZ说想实现购物车,那你可以考虑网上购物这个应用 用你说的JSP
LZ说的是实现购物车的功能,并且给出了原题目:模拟实现超市购物车功能,实现增加商品、移除商品、替换商品、查看商品功能
并且人家存放商品功能的代码已经完成,只是觉得不合适而已这就是个集合类练习题
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();
}
}
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;
}
}
给你一下ajax做的购物车的示例。
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);
}}