java 小票打印

public class Storage {
    private String sno ;
    private String name ;
    private double price;
    private int number ;
    private double money=0.00;
    public String getSno() {
        return sno;
    }
    public void setSno(String sno) {
        this.sno = sno;
    }
    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 getNumber() {
        return number;
    }
    public void setNumber(int number) {
        this.number = number;
    }
    public double getMoney() {
        money=price*number;
        return money;
    }
    public Storage(String sno,String name, double price) {
        this.sno=sno;
        this.name = name;
        this.price = price;
    }
    @Override
    public String toString() {
        return "" + name + "\t" + price + "\t*" + number + "\r\n(" +sno+ "  )=\t"+getMoney() + "\t";
    }
}

自己理解写的简易超市小票

import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;

public class Interface {
    static int storageNum = 0;// 商品数量
    static int allNumber = 0;// 总数:
    static double allMoney = 0;// 总计
    static double outPocket = 0;// 实付
    static double changeNote = 0;// 找零
    static int unit = 001;// 个位:
    static int decade = 001;// 十位:
    static int hundreds = 001;// 百位:
    static ArrayList<Storage> storageGoods = null;
    static Storage st = null;
    static Scanner sc = null;

    public static void init() {
        storageNum = 0;
        allNumber = 0;
        allMoney = 0;
        outPocket = 0;
        changeNote = 0;
        // String sno,String name, double price, int number
        storageGoods = new ArrayList<>();
        Storage st1 = new Storage("090115", "核桃酥", 15.50);
        Storage st2 = new Storage("090128", "QQ糖", 16.00);
        Storage st3 = new Storage("090127", "牡丹饼", 14.50);
        storageGoods.add(st1);
        storageGoods.add(st2);
        storageGoods.add(st3);
    }

    public static void selectShoping() {
        int shopNum = 0;
        while (shopNum != 2) {
            System.out.println("购买物品请输入1\r\n结束购物请输2");
            shopNum = sc.nextInt();
            switch (shopNum) {
            case 1:
                inputShopping();
                break;
            case 2:
                System.out.println("结束购物!");
                break;

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

    public static void inputShopping() {
        String sno;
        int index = 1;
        System.out.println("请输入你要购买物品的编号:");
        sno = sc.next();
        for (int i = 0; i < storageGoods.size(); i++) {
            if (storageGoods.get(i).getSno().equals(sno)) {
                System.out.println("请输入你要购买的数量:");
                int number = sc.nextInt();
                number = number + storageGoods.get(i).getNumber();
                storageGoods.get(i).setNumber(number);
                index--;
            }
        }
        if (index == 1) {
            System.out.println("你输入的编号不存在!");
        }
    }

    public static void statistics() {// 统计
        for (int i = 0; i < storageGoods.size(); i++) {
            if (storageGoods.get(i).getNumber() != 0)
                allNumber = allNumber + storageGoods.get(i).getNumber();
            allMoney = allMoney + storageGoods.get(i).getNumber() * storageGoods.get(i).getPrice();
        }
        System.out.println("你一共消费:" + allMoney + "\r\n请付款:");
        outPocket = sc.nextDouble();
        changeNote = outPocket - allMoney;
        while (changeNote < 0) {
            System.out.println("你还需要付款:" + ((-1) * changeNote));
            double note = sc.nextDouble();
            changeNote = changeNote + note;
            outPocket = outPocket + note;
        }
    }

    public static void printer() {
        for (int i = 0; i < storageGoods.size(); i++) {
            if (storageGoods.get(i).getNumber() != 0) {
                storageNum++;//统计购买了多少项物品
                System.out.println(storageGoods.get(i).toString());
            }
        }
        if (storageNum == 0)
            System.out.println("不好意思,你没有购买商品,不能打印小票!");
        else {
            statistics();
            System.out.println("\t欢   迎   光   临\r\n品名\t售价\t数量\t金额\r\n------------------------");
            for (int i = 0; i < storageGoods.size(); i++) {
                if (storageGoods.get(i).getNumber() != 0) {
                    System.out.println(storageGoods.get(i).toString());
                }
            }
            System.out.println("------------------------\r\n" + storageNum + "项商品\t共计:" + allNumber + "件");
            System.out.println("总计:" + allMoney + "\r\n" + "实付:" + outPocket + "\t找零" + changeNote);
            String sunit = unit + "";
            String sdecade = decade + "";
            String shundreds = hundreds + "";
            for (int i = 0; i < 2; i++) {
                if (sunit.length() < 3)
                    sunit = "0" + sunit;
                if (sdecade.length() < 3)
                    sdecade = "0" + sdecade;
                if (shundreds.length() < 3)
                    shundreds = "0" + shundreds;
            }
            cycleCounter();
            Date date = new Date();
            DateFormat df = DateFormat.getDateTimeInstance();
            System.out.println(df.format(date) + "-" + shundreds + "-" + sdecade + "-" + sunit);
            System.out.println("凭此小票换取发票!");
            unit++;
        }
    }

    public static void cycleCounter() {
        if (unit == 1000) {
            decade++;
            unit = 001;
        }
        if (decade == 1000) {
            hundreds++;
            decade = 001;
        }
        if (hundreds == 1000) {
            hundreds = 001;
        }
    }

    public static void main(String[] args) {
        sc = new Scanner(System.in);
        int step = 0;
        storageGoods =new ArrayList<>();
        while (step != 3) {
            System.out.println("请输入你需要的操作\r\n1.输入购买物品\r\n2.打印小票\r\n3.退出");
            step = sc.nextInt();
            switch (step) {
            case 1:
                init();
                selectShoping();
                break;
            case 2:
                printer();
                break;
            case 3:
                System.out.println("谢谢使用");
                break;
            default:
                System.out.println("操作输入错误,请重新输入!");
                break;
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_42866384/article/details/81569105