第1次任务:购物车程序的面向对象设计

发布于:2022-12-06 ⋅ 阅读:(782) ⋅ 点赞:(0)

小组成员:网络2113 付浩帆 吕威

任务分配:付浩帆:面向对象设计,功能设计,编码规范,前期调查。

                  吕威:制作博客

参考连接:购物车程序的面向对象设计_网络2013何镇宇的博客-CSDN博客

准备实现的功能有:1.查找商品;2.删除购物车内商品;3.添加商品到购物车;4.添加新商品;5.计算购物车内商品总价;6.修改购物车内商品数量。

客户进入主菜单可以查看自己购物车内的商品,删除购物车内不想要的商品,添加自己想要的商品,且可以增加所需商品的数量,还可以搜索程序所原代的商品,还可以添加新商品。

1.前期调查:

京东的购物车中,有商品的名称,可以添加删除商品,还可以修改要购买商品的数量,也可以看到商品的价格,通过勾选所需商品最后能显示出商品的总价。 

2.系统功能结构:

 

 3.系统功能描述。

客户进入主菜单可以查看自己购物车内的商品,删除购物车内不想要的商品,添加自己想要的商品,且可以增加所需商品的数量,还可以搜索程序所原代的商品,还可以添加新商品.

4.功能:

(一)功能1:主菜单界面,代码如下:

class Menu{//菜单显示
    public void display() {
            System.out.println("********菜单界面**********");
            System.out.println("       a.购物车商品显示       ");
            System.out.println("       b.初始化商品内容加入购物车       ");
            System.out.println("       c.删除购物车商品       ");
            System.out.println("       d.结算购物车商品       ");
            System.out.println("       e.购物车商品数量添加       ");
            System.out.println("       f.购物车商品添加       ");
            System.out.println("       g.商品搜索       ");
            System.out.println("请输入选项:       ");
    }
}

(二)功能2:商品属性,代码如下:

class Commidity{//商品属性
    private int id;
    private String name;
    private double price;
    private int num;
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    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 int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    @Override
    public String toString() {
        return "Commidity [id=" + id + ", name=" + name + ", price=" + price + ", num=" + num + "]";
    }
    
    public Commidity(int id, String name, double price, int num) {
        super();
        this.id = id;
        this.name = name;
        this.price = price;
        this.num = num;
    }        

(三)功能3:购物车相关操作,代码如下:

class Cart{//购物车相关操作
    public static ArrayList<Commidity> shoplist = new ArrayList<>(); 
    public void putCart(Commidity s){
        shoplist.add(s);
    }
    public static void delete(int produceID) {
        shoplist.remove(produceID);
    }
    public void search(String n) {
        for (int i = 0;i < shoplist.size();i++) {
            if(n.equals(shoplist.get(i).getName())) {
                System.out.println(shoplist.get(i));
            }
        }
    }
    public static void addNum(String m,int num) {
        for (Commidity c : shoplist) {
            if(m.equals(c.getName()))
                c.setNum(c.getNum()+num);
        }     
    }
    public static void addCommidity(int id,String name,double price,int num) {
        Commidity c = new Commidity(id,name, price, num);
        shoplist.add(shoplist.size(),c );
        
    }
    public static void display() {
        for (Commidity commidity : shoplist) {
            System.out.println("商品编号 = "+commidity.getId()+"商品名称 = "+commidity.getName()+" 商品价格 = "+commidity.getPrice()+" 商品数量 = "+commidity.getNum());
        }
    }
    public static double numPrice() {
        double p = 0;
        for (int i = 0;i<shoplist.size();i++) {
            p+=shoplist.get(i).getPrice()*shoplist.get(i).getNum();
        }
        System.out.println("********商品总价钱 = " + p +"********");
        return p;
    }

四,功能四启动代码,代码如下:

public class Main {

    public static void main(String[] args) {
        Commidity c1 = new Commidity(1,"IPhonex",3690,10);
        Commidity c2 = new Commidity(2,"IPhone11",4199,9);
        Commidity c3 = new Commidity(3,"IPhone12",4699,8);
        Commidity c4 = new Commidity(4,"IPhone13",5299,7);
        Commidity c5 = new Commidity(5,"IPhone14",5999,6);
        Scanner in = new Scanner(System.in);
        int a;
        int num;
        String n;
        String m;
        Cart cart = new Cart();
        Menu menu = new Menu();
        while(in.hasNextLine()) {
            menu.display();
            String choice = in.nextLine();
            switch(choice) 
            {
            case"a":
                cart.display();
            case"b":
                cart.putCart(c1);
                cart.putCart(c2);
                cart.putCart(c3);
                cart.putCart(c4);
                cart.putCart(c5);
                break;
            case"c":
                a = in.nextInt();
                cart.delete(a);
                System.out.println("购物车商品删除成功!!!");
                break;
            case"d":
                double x = cart.numPrice();
                break;
            case"e":
                System.out.println("请输入想要添加的商品数量");
                m = in.nextLine();
                num = in.nextInt();
                cart.addNum(m,num);
                break;
            case"f":
                System.out.println("请输入新加商品编号");
                int ID = in.nextInt();
                System.out.println("请输入新加商品品名");
                String name = in.nextLine();
                System.out.println("请输入新加商品价格");
                double price = in.nextDouble();
                System.out.println("请输入新加商品数量");
                int Num = in.nextInt();
                Cart.addCommidity(ID,name, price, Num);
                break;
            case"g":
                System.out.println("请输入想要搜索的商品名");
                n = in.nextLine();
                cart.search(n);
                break;
            }
        }
        in.close();
    }

 5.源代码:代码如下:

class Cart{//购物车相关操作
    public static ArrayList<Commidity> shoplist = new ArrayList<>(); 
    public void putCart(Commidity s){
        shoplist.add(s);
    }
    public static void delete(int produceID) {
        shoplist.remove(produceID);
    }
    public void search(String n) {
        for (int i = 0;i < shoplist.size();i++) {
            if(n.equals(shoplist.get(i).getName())) {
                System.out.println(shoplist.get(i));
            }
        }
    }
    public static void addNum(String m,int num) {
        for (Commidity c : shoplist) {
            if(m.equals(c.getName()))
                c.setNum(c.getNum()+num);
        }     
    }
    public static void addCommidity(int id,String name,double price,int num) {
        Commidity c = new Commidity(id,name, price, num);
        shoplist.add(shoplist.size(),c );
        
    }
    public static void display() {
        for (Commidity commidity : shoplist) {
            System.out.println("商品编号 = "+commidity.getId()+"商品名称 = "+commidity.getName()+" 商品价格 = "+commidity.getPrice()+" 商品数量 = "+commidity.getNum());
        }
    }
    public static double numPrice() {
        double p = 0;
        for (int i = 0;i<shoplist.size();i++) {
            p+=shoplist.get(i).getPrice()*shoplist.get(i).getNum();
        }
        System.out.println("********商品总价钱 = " + p +"********");
        return p;
    }
    
}

(四)功能四:启动代码,代码如下:

package 购物车程序的面向对象设计;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Scanner;


class Menu{//菜单显示
    public void display() {
            System.out.println("********菜单界面**********");
            System.out.println("       a.购物车商品显示       ");
            System.out.println("       b.初始化商品内容加入购物车       ");
            System.out.println("       c.删除购物车商品       ");
            System.out.println("       d.结算购物车商品       ");
            System.out.println("       e.购物车商品数量添加       ");
            System.out.println("       f.购物车商品添加       ");
            System.out.println("       g.商品搜索       ");
            System.out.println("请输入选项:       ");
    }
}
class Commidity{//商品属性
    private int id;
    private String name;
    private double price;
    private int num;
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    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 int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    @Override
    public String toString() {
        return "Commidity [id=" + id + ", name=" + name + ", price=" + price + ", num=" + num + "]";
    }
    
    public Commidity(int id, String name, double price, int num) {
        super();
        this.id = id;
        this.name = name;
        this.price = price;
        this.num = num;
    }
    
}

class Cart{//购物车相关操作
    public static ArrayList<Commidity> shoplist = new ArrayList<>(); 
    public void putCart(Commidity s){
        shoplist.add(s);
    }
    public static void delete(int produceID) {
        shoplist.remove(produceID);
    }
    public void search(String n) {
        for (int i = 0;i < shoplist.size();i++) {
            if(n.equals(shoplist.get(i).getName())) {
                System.out.println(shoplist.get(i));
            }
        }
    }
    public static void addNum(String m,int num) {
        for (Commidity c : shoplist) {
            if(m.equals(c.getName()))
                c.setNum(c.getNum()+num);
        }     
    }
    public static void addCommidity(int id,String name,double price,int num) {
        Commidity c = new Commidity(id,name, price, num);
        shoplist.add(shoplist.size(),c );
        
    }
    public static void display() {
        for (Commidity commidity : shoplist) {
            System.out.println("商品编号 = "+commidity.getId()+"商品名称 = "+commidity.getName()+" 商品价格 = "+commidity.getPrice()+" 商品数量 = "+commidity.getNum());
        }
    }
    public static double numPrice() {
        double p = 0;
        for (int i = 0;i<shoplist.size();i++) {
            p+=shoplist.get(i).getPrice()*shoplist.get(i).getNum();
        }
        System.out.println("********商品总价钱 = " + p +"********");
        return p;
    }
    
}
public class Main {

    public static void main(String[] args) {
        Commidity c1 = new Commidity(1,"IPhonex",3690,10);
        Commidity c2 = new Commidity(2,"IPhone11",4199,9);
        Commidity c3 = new Commidity(3,"IPhone12",4699,8);
        Commidity c4 = new Commidity(4,"IPhone13",5299,7);
        Commidity c5 = new Commidity(5,"IPhone14",5999,6);
        Scanner in = new Scanner(System.in);
        int a;
        int num;
        String n;
        String m;
        Cart cart = new Cart();
        Menu menu = new Menu();
        while(in.hasNextLine()) {
            menu.display();
            String choice = in.nextLine();
            switch(choice) 
            {
            case"a":
                cart.display();
            case"b":
                cart.putCart(c1);
                cart.putCart(c2);
                cart.putCart(c3);
                cart.putCart(c4);
                cart.putCart(c5);
                break;
            case"c":
                a = in.nextInt();
                cart.delete(a);
                System.out.println("购物车商品删除成功!!!");
                break;
            case"d":
                double x = cart.numPrice();
                break;
            case"e":
                System.out.println("请输入想要添加的商品数量");
                m = in.nextLine();
                num = in.nextInt();
                cart.addNum(m,num);
                break;
            case"f":
                System.out.println("请输入新加商品编号");
                int ID = in.nextInt();
                System.out.println("请输入新加商品品名");
                String name = in.nextLine();
                System.out.println("请输入新加商品价格");
                double price = in.nextDouble();
                System.out.println("请输入新加商品数量");
                int Num = in.nextInt();
                Cart.addCommidity(ID,name, price, Num);
                break;
            case"g":
                System.out.println("请输入想要搜索的商品名");
                n = in.nextLine();
                cart.search(n);
                break;
            }
        }
        in.close();
    }
    /*public static void Join1() {
        for(int i=0;i<s.length;i++) {
            cart.putCart(s[i]);
        }
        cart.display();
    }*/
    /*public static Commidity[] input1(Scanner in) {
        Cart cart = new Cart();
        int n = in.nextInt();
        Commidity[] s = new Commidity[n];
        for(int i =0;i<n;i++){
            String name = in.next();
            double price = in.nextDouble();
            int num = in.nextInt();
            s[i] = new Commidity(name,price,num);
            cart.putCart(s[i]);
            }
        return s;
    }*/
}
开发工具:Eclipse