Javaコード簡単シミュレーションショッピングモールカート

65910 ワード

純Javaコードシミュレーション単純ショッピングカート機能
1.Productクラス

import java.util.Objects;

public class Product implements Comparable{

    private Integer id;
    private String name;
    private double price;


    public Product() {
    }

    public Product(Integer id, String name, double price) {
        this.id = id;
        this.name = name;
        this.price = price;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Product product = (Product) o;
        return Double.compare(product.price, price) == 0 &&
                Objects.equals(id, product.id) &&
                Objects.equals(name, product.name);
    }

    @Override
    public int hashCode() {
        return this.id/10;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer 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;
    }

    @Override
    public String toString() {
        return "{" +
                "    :" + id +
                ",     :" + name + '\'' +
                ",     :" + price +
                '}'+"
"
; } @Override public int compareTo(Object o) { Product product = (Product)o; int this_id = this.id; int p_id = product.getId(); return this_id > p_id?1:-1; } }

2.ShoppingCar類
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;

public class ShoppingCar  {

    private Map<Product,Integer> cars;
    private double totalPrice;

    public ShoppingCar(){

        cars = new HashMap<>();

    }

    //               
    public void addProducts(Product p,Integer num){
        if (num<=0){
            System.out.println("        1!");
            return;
        }

        if (cars.containsKey(p)){
            //                                  
            int productcount_before = cars.get(p);
            int productcount_after = productcount_before + num;
            cars.put(p,productcount_after);
            System.out.println("      !");
        }else {
            //                      
            cars.put(p,num);
            System.out.println("      !");
        }
        double price = (p.getPrice())*num;
        totalPrice = totalPrice + price;
    }

    //           
    public void addProducts(Product product){
        addProducts(product,1);
        System.out.println("        !");
    }

    //      (    )
    public void removeProducts(Product product,Integer deletenum){
        if (!cars.containsKey(product)){
            System.out.println("          !");
            return;
        }
        //                          
        int productNum = cars.get(product);
        if (deletenum>productNum){
            System.out.println("                !");
            return;
        }
        //                 
        //key   value  
        int afterDelete = productNum - deletenum;
        //                               
        if (productNum == deletenum){
            cars.remove(product);
            System.out.println("      !");
        }else {
            cars.put(product,afterDelete);
            System.out.println("      !");
        }
        //       
        double price = (product.getPrice()) * deletenum;
        totalPrice = totalPrice - price;
    }

    //        
    public void deleteClassProduct(Product product){
        if (!cars.containsKey(product)){
            System.out.println("       !");
            return;
        }
        cars.remove(product);
        System.out.println("        !");
    }

    //           
    public void deleteAproduct(Product product){
        this.removeProducts(product,1);
    }

    //     
    public void clearShoppingCar(){
        if (cars.size()<=0){
            System.out.println("             ~"+"
"
); return; } cars.clear(); totalPrice = 0.0; System.out.println(" !"); } // public void checkOut() throws Exception{ if (cars.size()<=0){ System.out.println(" ~"+"
"
); return; }else { System.out.println(" ··········"); Thread.sleep(3000); StringBuilder sb = new StringBuilder(); sb.append("\t\t :"+"

"
); sb.append("へへへへへへへへへへへへへへへへへへへへへへへへへへへへへへへへへへへへへ
"
); for (Map.Entry<Product,Integer> me : cars.entrySet()){ int num = me.getValue(); Product product = me.getKey(); int pid = product.getId(); String pname = product.getName(); double price = product.getPrice(); sb.append("\t\t :"+pid+"\t :"+pname+"\t :"+price+"\t :"+num+"
"
); } sb.append("
"
); sb.append("\t\t\t\t\t :"+totalPrice+"

"
); sb.append("\t\t , !"); System.out.println(sb.toString()); clearShoppingCar(); } } // public void lookCars(){ if (cars.size()<=0){ System.out.println(" ~"+"
"
); return; }else { StringBuilder sb = new StringBuilder(); sb.append("\t\t ↓ ↓ ↓ ↓ ↓:"+"

"
); for (Map.Entry<Product,Integer> me : cars.entrySet()){ int num = me.getValue(); Product product = me.getKey(); int pid = product.getId(); String pname = product.getName(); double price = product.getPrice(); sb.append("\t\t :"+pid+"\t :"+pname+"\t :"+price+"\t :"+num+"
"
); } System.out.println(sb.toString()); } } public Map<Product, Integer> getCars() { return cars; } public void setCars(Map<Product, Integer> cars) { this.cars = cars; } public double getTotalPrice() { return totalPrice; } public void setTotalPrice(double totalPrice) { this.totalPrice = totalPrice; } @Override public String toString() { return "Shoppcar{" + "cars=" + cars + ", totalPrice=" + totalPrice + '}'; } }

3.Testクラス
import java.util.Scanner;

public class Test {

    static {

    }
    public static void main(String[] args)throws  Exception{

        Product[] products = new Product[4];
        Product p1 = new Product(100,"   ",5.6);
        Product p2 = new Product(200,"   ",7.8);
        Product p3 = new Product(300,"   ",3.2);
        Product p4 = new Product(400,"  ",3.2);

        products[0] = p1;
        products[1] = p2;
        products[2] = p3;
        products[3] = p4;

        Scanner scanner = new Scanner(System.in);

        System.out.println("      ?(Y/N)");
        String confirm = scanner.nextLine();
        if (confirm.equals("Y") || confirm.equals("y")){
            ShoppingCar shoppcar = new ShoppingCar();
            System.out.println("\t\t      :");
            show();
            while (true){
                System.out.println("       :");
                System.out.println("1:         ");
                System.out.println("2:         ");
                System.out.println("3:     ");
                System.out.println("4:         ");
                System.out.println("5:  ");
                System.out.println("6:    ");
                int choose = scanner.nextInt();
                if (choose == 1){
                    System.out.println("             ");
                    int productNum = scanner.nextInt();
                   Product p =  getProduct(productNum,products);
                   if (p != null){
                       System.out.println("             ");
                       int addCount = scanner.nextInt();
                       shoppcar.addProducts(p,addCount);
                   }else {
                       System.out.println("         !");
                   }
                }
                if (choose == 2){
                    System.out.println("             ");
                    int productNum = scanner.nextInt();
                    Product p =  getProduct(productNum,products);
                    if (p != null){
                        System.out.println("             ");
                        int delCount = scanner.nextInt();
                        shoppcar.removeProducts(p,delCount);
                    }else {
                        System.out.println("         !");
                    }
                }
                if (choose == 3){
                    shoppcar.clearShoppingCar();
                }if (choose == 4){
                    shoppcar.lookCars();
                }
                if (choose == 5){
                    shoppcar.checkOut();
                }if (choose == 6){
                    System.out.println("      ,      !");
                    break;
                }


            }
        }
        else {
            System.exit(0);
        }


    }
    public static void show(){
        Product p1 = new Product(100,"   ",5.6);
        Product p2 = new Product(200,"   ",7.8);
        Product p3 = new Product(300,"   ",3.2);
        Product p4 = new Product(400,"  ",3.2);
        System.out.println(p1);
        System.out.println(p2);
        System.out.println(p3);
        System.out.println(p4);
    }

    //               
    public static Product getProduct(int num,Product[] products){

        for (int i=0 ;i<products.length;i++){
            int id = products[i].getId();
            if (id == num){
                return products[i];
            }
        }
        return null;
    }

}