您的位置:首页 > 编程语言 > Java开发

java实现简单购物车,主要用到了集合知识,实现了增删改查

2017-11-30 00:00 519 查看
源代码如下:

商品类:

package org.jsoft.shoppingcar;

public class Goods {
private String name;
private double price;
private int num;
private int ID;
public int getID() {
return ID;
}
public void setID(int iD) {
ID = iD;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
private String guiGe;

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getGuiGe() {
return guiGe;
}
public void setGuiGe(String guiGe) {
this.guiGe = guiGe;
}
public Goods(int ID,String name,double price,int num,String guiGe){
this.ID=ID;
this.name=name;
this.price=price;
this.num=num;
this.guiGe=guiGe;
}
public Goods(){}
public String toString(){
return this.getID()+"."+this.getName()+",价格:"+this.getPrice()+this.getGuiGe()+",数量:"+this.getNum();
}

}
购物类:

package org.jsoft.shoppingcar;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.regex.Pattern;

public class Shopping {
private List<Goods> list1=new ArrayList();//保存已有商品
private List<Goods> list2=new ArrayList();//保存购物车商品
private Map map=new HashMap();

public void menu(){
System.out.println("欢迎来到就要发购物商场!有以下商品供您选购,祝您购物愉快:");
Goods g1 = new Goods(1,"巧克力",20,5,"元/盒");
Goods g2 = new Goods(2,"麦片",25,6,"元/盒");
Goods g3 = new Goods(3,"橘子",1.5,10,"元/斤");
Goods g4 = new Goods(4,"苹果",2,20,"元/斤");
list1.add(g1);
list1.add(g2);
list1.add(g3);
display1(list1);
int choose=0;
Scanner sc = new Scanner(System.in);
while(choose!=5){
System.out.println("请输入您要选择的服务编号:");
System.out.println("1.购买商品 2.删除商品 3.修改已买商品数量 4.查看已买商品 5.去结算");
String str = sc.next();
if(isInteger(str)){
choose=Integer.parseInt(str);
if(choose>=1&&choose<=5){
switch(choose){
case 1:addGoods();break;
case 2:deleteGoods();break;
case 3:changeGoods();break;
case 4:displayGoods();break;
case 5:spendMoney();break;
default:System.out.println("输入数字");
}
}
else{
System.out.println("请输入指定的服务编号!");
}
}
else{
System.out.println("请输入指定的服务编号!");
}
}
System.out.println("欢迎下次再来!");
}
public void addGoods(){//解决重复购买商品数量的增加;购买数量为0时,不添加信息;问题不成立,第一次购买后,要想修改直接用3功能
System.out.println("请输入您要购买的商品编号:");
Scanner sc = new Scanner(System.in);
int ID=sc.nextInt();
Goods good=new Goods();
Goods good1=new Goods();
int i;
for(i=0;i<list1.size();i++){
Object obj = list1.get(i);
good= (Goods)obj;
if(good.getID()==ID){
break;
}
}
System.out.println("请输入购买数量:");
int num;
while(true){//判断输入数量大于已有数量
num=sc.nextInt();
if(num>good.getNum()){
System.out.println("对不起没有这么多存货,请重新输入数量:");
}else{
break;
}
}
if(num==good.getNum()){//把某个商品全部买完,则库存没有该商品
good1.setID(good.getID());
good1.setName(good.getName());
good1.setNum(num);
good1.setPrice(good.getPrice());
list2.add(good1);
list1.remove(i);
System.out.println("购买成功!");
System.out.println("剩余商品:");
display1(list1);
}else if(num==0){
System.out.println("购买成功!");
System.out.println("剩余商品:");
display1(list1);
}else{
good1.setID(good.getID());
good1.setName(good.getName());
good1.setNum(num);
good1.setPrice(good.getPrice());
list2.add(good1);
good.setNum(good.getNum()-num);//每个商品购买完后,修改库存的商品数
list1.remove(i);
list1.add(i, good);
System.out.println("购买成功!");
System.out.println("剩余商品:");
display1(list1);
}
}

public void deleteGoods(){
if(list2.size()==0){
System.out.println("购物车里空空如也!");
}else{
displayGoods();
System.out.println("请输入要删除的商品编号:");
Scanner sc = new Scanner(System.in);
int ID=sc.nextInt();
int i;
for(i=0;i<list2.size();i++){
Object obj = list1.get(i);
Goods good= (Goods)obj;
if(good.getID()==ID){
break;
}
}
list2.remove(i);
System.out.println("删除成功!");
}
}

public void changeGoods(){//如果某个商品的数量为零,则该商品在已购买中去除,完成;
if(list2.size()==0){
System.out.println("购物车里空空如也");
}else{
displayGoods();
System.out.println("请输入要修改的商品编号:");
Scanner sc=new Scanner(System.in);
int ID=sc.nextInt();
System.out.println("请输入要修改的数量:");
int num=sc.nextInt();
for(int i=0;i<list2.size();i++){
Object obj = list2.get(i);
Goods good= (Goods)obj;
if(good.getID()==ID){
if(num==0){
list2.remove(i);
}else{
good.setNum(num);
list2.remove(i);
list2.add(i, good);
}
System.out.println("修改成功!");
}
}
}
}

public void displayGoods(){
System.out.println("您已经购买以下商品:");
if(list2.size()==0){
System.out.println("购物车里空空如也");
}
Goods g=new Goods();
for(int i=0;i<list2.size();i++){
Object obj = list2.get(i);
g= (Goods)obj;
System.out.println(g.getID()+"."+g.getName()+",数量:"+g.getNum());
}
}

public void spendMoney(){
double sum=0;
for(int i=0;i<list2.size();i++){
Object obj = list2.get(i);
Goods good= (Goods)obj;
sum+=good.getPrice()*good.getNum();
System.out.println(good.getName()+",数量:"+good.getNum()+",金额:"+good.getPrice()*good.getNum());
}
if(sum==0){
System.out.println("您还什么都没买");
}else{
System.out.println("共计:"+sum);
System.out.println("请输入支付金额:");
Scanner sc=new Scanner(System.in);
double money=sc.nextDouble();
if(money>sum){
System.out.println("找零:"+(money-sum));
}
System.out.println("支付成功");
}
}
public boolean isInteger(String str) { //判断是不是整数
Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
return pattern.matcher(str).matches();
}
public void display1(List list){
for(int i=0;i<list.size();i++){
Object obj = list.get(i);
Goods good= (Goods)obj;
System.out.println(good);
}
}

}
测试类:

package org.jsoft.shoppingcar;

public class TestShopping {

public static void main(String[] args) {
Shopping shop = new Shopping();
shop.menu();
}
}
运行结果:







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 购物车 集合
相关文章推荐