运用JAVA设计超市收银系统

img

如有帮助,请采纳。点击我回答右上角【采纳】按钮

//shop类
public class Shop {//门店类
    private String shopName;
    private String shopTelephone;
    public Shop() {
    }
    
    public Shop(String shopName, String shopTelephone) {
        this.shopName = shopName;
        this.shopTelephone = shopTelephone;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public String getShopTelephone() {
        return shopTelephone;
    }

    public void setShopTelephone(String shopTelephone) {
        this.shopTelephone = shopTelephone;
    }

    @Override
    public String toString() {
        return "门店名称:" + shopName + "\n门店电话:" + shopTelephone;
    }

}


//Commodity类
public class Commodity {//商品类
    
    private String commodityName;
    private Double commodityValue;
    private Double commodityNumber;
    public Commodity() {
    }
    
    public Commodity(String commodityName, Double commodityValue, Double commodityNumber) {
        this.commodityName = commodityName;
        this.commodityValue = commodityValue;
        this.commodityNumber = commodityNumber;
    }

    public String getCommodityName() {
        return commodityName;
    }

    public void setCommodityName(String commodityName) {
        this.commodityName = commodityName;
    }

    public Double getCommodityValue() {
        return commodityValue;
    }

    public void setCommodityValue(Double commodityValue) {
        this.commodityValue = commodityValue;
    }

    public Double getCommodityNumber() {
        return commodityNumber;
    }

    public void setCommodityNumber(Double commodityNumber) {
        this.commodityNumber = commodityNumber;
    }

    @Override
    public String toString() {
        return "Commodity [commodityName=" + commodityName + ", commodityValue=" + commodityValue + ", commodityNumber="
                + commodityNumber + "]";
    }

}

//Method方法类
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;



public class Method {
    private String payingMethod;
    private Double money = 0.00;
    private String cashRegisterNumber = "3671";//收款机编号
    
    Scanner scanner = new Scanner(System.in);
    Shop shop = new Shop();
    //Commodity commodity = new Commodity();
    List<Commodity> listCommodity = new ArrayList<>();
    
    
    //功能一:设置门店信息
    public Shop SetUpShopMessage() {
        System.out.println("请输入门店名称:");
        String shopName = scanner.next();
        System.out.println("请输入门店联系电话:");
        String shopTelephone = scanner.next();
        shop.setShopName(shopName);
        shop.setShopTelephone(shopTelephone);
        return shop;
    }
    
    //功能二主模块:
    public void MainFunction() {
        while (true) {
            System.out.println("1.添加商品 2.付款方式 3.生成小票 4.收款金额 5.回主菜单");
            System.out.println("请按功能菜单选择序号:");
            int select = scanner.nextInt();
            switch (select) {
            case 1:
                Commodity commodity = new Commodity();
                commodity = addCommodity();
                listCommodity.add(commodity);
                break;
            case 2:
                payingMethod();
                break;
            case 3:
                Receipt();
                break;
            case 4:
                collectMoney();
                break;
            case 5:
                listCommodity.clear();
                return;

            default:
                System.out.println("输入错误,请重新输入");
                break;
            }
            
        }
        
    }
    
    //功能二模块组成1添加商品功能
    private Commodity addCommodity() {
        System.out.println("请输入商品名称:");
        String commodityName = scanner.next();
        System.out.println("请输入商品单价:");
        double commodityValue = scanner.nextDouble();
        System.out.println("请输入购买数量:");
        double commodityNumber = scanner.nextDouble();
        Commodity commodity = new Commodity();
        commodity.setCommodityName(commodityName);
        commodity.setCommodityValue(commodityValue);
        commodity.setCommodityNumber(commodityNumber);
        
        return commodity;
        
    }
    
    //功能二模块组成2付款方式
    private void payingMethod() {
        System.out.println("请选择付款方式:1(支付宝) 2(微信) 3(现金)");
        int choose = scanner.nextInt();
        if (choose == 1) {
            payingMethod = "支付宝";
        } else if(choose == 2) {
            payingMethod = "微信";
        } else if(choose == 3) {
            payingMethod = "现金";
        }else {
            System.out.println("输入错误,请重新输入");
        }
    }
    
    //功能二模块组成3生成小票
    private void Receipt() {
        double value = 0;
        for (Commodity commodity : listCommodity) {
            value += commodity.getCommodityValue() * commodity.getCommodityNumber();
        }
        String num = String.format("%.2f", value);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
        String numbering = sdf.format(new Date());
        System.out.println(shop.getShopName());
        System.out.println("订单编号(OUT TRADE NO):");
        System.out.println(numbering + cashRegisterNumber);
        System.out.println("****************************");
        System.out.println("欢迎光临         TEL:" + shop.getShopTelephone());
        System.out.println("品名    售价    数量    金额");
        System.out.println("----------------------------");
        for (Commodity commodity : listCommodity) {
            System.out.println(commodity.getCommodityName() + "=    " + commodity.getCommodityValue() + "  *  " +commodity.getCommodityNumber() + "    " + String.format("%.2f", commodity.getCommodityValue() * commodity.getCommodityNumber()));
        }
        System.out.println("----------------------------");
        System.out.println("共计" + listCommodity.size() + "项商品");
        System.out.println("购物总金额:" + num);
        System.out.println(payingMethod + "实付:" + money);
        System.out.println("找零:" + String.format("%.2f", (money - value)));
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String time = sdf1.format(new Date());
        System.out.println("付款时间:" + time);
        System.out.println("收款机:" + cashRegisterNumber);
        listCommodity.clear();
    }
    
    
    //功能二模块组成4收款金额
    private void collectMoney() {
        System.out.println("请输入客户付款金额");
        money = scanner.nextDouble();
    }

}

//Main方法
import java.util.Scanner;

public class TestMain {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Method method = new Method();
        //List<Shop> listShop = new ArrayList<Shop>();
        Shop shop = new Shop();
        
        while (true) {
            System.out.println("----------欢迎使用蓝欧超市收银系统----------");
            System.out.println("1.设置门店信息");
            System.out.println("2.顾客结账");
            System.out.println("3.退出系统");
            System.out.println("请按序号选择要使用的功能:");
            int choose = scanner.nextInt();
            switch (choose) {
            case 1:
                shop = method.SetUpShopMessage();
                System.out.println(shop);
                System.out.println("门店信息设置成功!");
                break;
            case 2:
                method.MainFunction();
                break;
            case 3:
                System.out.println("系统已成功退出!");
                scanner.close();
                return;

            default:
                System.out.println("输入错误,请重新输入");
                break;
            }
        }
    }

}

public class Market {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        List<MarketPojo> list = new ArrayList<>();
        double totalPrice = 0.0;
        while (true) {
            System.out.println("输入商品单价:");
            double up = s.nextDouble();

            if (up < 0.0) {
                System.out.println("商品录入结束:");
                for (MarketPojo mp0 : list) {
                    totalPrice += mp0.getUnitPrice() * mp0.getCount();
                }
                System.out.println("这些商品总价是:" + totalPrice + "打5折后价格是:" + (totalPrice * 0.5));
                System.out.println("您本次应支付:" + (totalPrice * 0.5) + "元");
                double shouldPay = s.nextDouble();
                if (shouldPay == (totalPrice * 0.5)) {
                    System.out.println("钱数正好,欢迎下次光临");
                    break;
                } else if (shouldPay > (totalPrice * 0.5)) {
                    System.out.println("钱给多了,找你" + (shouldPay - (totalPrice * 0.5)) + "元,欢迎下次光临");
                    break;
                } else if (shouldPay < (totalPrice * 0.5)) {
                    System.out.println("钱给少了,合计啥呢,再交" + ((totalPrice * 0.5) - shouldPay) + "元,不然报警");
                    break;
                }
            }

            System.out.println("输入商品数量:");
            int co = s.nextInt();
            MarketPojo mp = new MarketPojo(up, co);
            list.add(mp);
            System.out.println("刚输入的商品单价:" + up + "数量:" + co + "该商品总价:" + (up * co));
        }
    }
}
public class MarketPojo {
    private Double unitPrice;
    private Integer count;

    public Double getUnitPrice() {
        return unitPrice;
    }

    public void setUnitPrice(Double unitPrice) {
        this.unitPrice = unitPrice;
    }

    public Integer getCount() {
        return count;
    }

    public void setCount(Integer count) {
        this.count = count;
    }

    public MarketPojo(Double unitPrice, Integer count) {
        this.unitPrice = unitPrice;
        this.count = count;
    }
}

img

img