超市购物小票

本文档描述了如何创建一个简单的超市购物小票系统,通过定义GoodsItem类来存储商品信息,包括名称、货号、单价、数量、计价单位和金额。系统采用成员位置定义集合存储商品数据,并实现主干逻辑,包括打印欢迎语句,使用for/while循环以及switch语句来让用户选择输入购买数量、打印小票或退出程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 超市购物小票

步骤:
            定义GoodsItem类(名称,货号,单价,数量,计价单位,金额)
           成员位置定义集合,定义方法向集合中存储所有GoodsItem数据
           实现主干逻辑
           打印欢迎语句
           使用for/while进行循环进行操作
           使用switch给出操作选择:1输入购买数量2打印小票3退出

 

 package javaadvacedday1.receipt;
/**
 * @author :Andy
 * @date :Created in 2019/6/15 16:00
 * @description:定义GoodsItem类(名称,货号,单价,数量,计价单位,金额)
 */
public class GoodsItem {
private String name;
private String goodsNumber;
private double price;
private int num;
private String nuit;
private  float money;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGoodsNumber() {
        return goodsNumber;
    }

    public void setGoodsNumber(String goodsNumber) {
        this.goodsNumber = goodsNumber;
    }

    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;
    }

    public String getNuit() {
        return nuit;
    }

    public void setNuit(String nuit) {
        this.nuit = nuit;
    }

    public float getMoney() {
        return money;
    }

    public void setMoney(float money) {
        this.money = money;
    }

    @Override
    public int hashCode() {
        return super.hashCode();
    }

    @Override
    public boolean equals(Object obj) {
        return super.equals(obj);
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }

    @Override
    public String toString() {
        return super.toString();
    }

    @Override
    protected void finalize() throws Throwable {
        super.finalize();
    }

    public GoodsItem(String name, String goodsNumber, float price, int num, String nuit, float money) {
        this.name = name;
        this.goodsNumber = goodsNumber;
        this.price = price;
        this.num = num;
        this.nuit = nuit;
        this.money = money;
    }

    public GoodsItem(String 少林寺核桃, String goodsNumber, double v, int num, String 个, int money) {
        super();
    }
}
        
package javaadvacedday1.receipt;
import java.util.ArrayList;
import java.util.Map;
import java.util.Scanner;

/**
 * @author :Andy
 * @date :Created in 2019/6/15 16:04
 * @description:添加商品属性
 */
public class ShoppingReceipt {
    /**
     * @Fields data : 成员位置定义集合,存储所有的商品项对象
     */
    static ArrayList<GoodsItem> data = new ArrayList<GoodsItem>();

    public static void main(String[] args) {
        //为集合准备数据
        initData();

        //打印欢迎语句
        System.out.println("欢迎使用超市管理系统!");

        //使用死循环完成反复操作的逻辑
        //for(;;) {}
        while(true) {
            //使用switch给出操作选择:1输入购买数量2打印小票3退出
            //提示信息
            System.out.println("请输入您要进行的操作:1输入购买数量   2打印小票   3退出");

            //通过键盘录入得到数据
            Scanner sc = new Scanner(System.in);
            int optNumber = sc.nextInt();
            //完成switch中三个case的逻辑
            switch (optNumber) {
                case 1:
                    //System.out.println("给所有数据量赋值");
                    //调用给所有数据的数量与金额赋值方法
                    enterNumber();

                    break;
                case 2:
                    //System.out.println("打印购物小票");
                    //调用打印购物小票的方法
                    printReceipt();

                    break;
                case 3:
                    System.out.println("欢迎下次光临");
                    //退出程序
                    System.exit(0);
                default:
                    System.out.println("请输入正确的数字!");
                    break;
            }
        }
    }

    /**
     * @Title: initData
     * @Description: 定义方法,向成员位置的集合赋值
     */
    public static void initData() {
        //创建多个商品项对象
        GoodsItem sls = new GoodsItem("少林寺核桃", "090115", 15.5, 0, "个", 0);
        GoodsItem shk = new GoodsItem("尚康饼干", "090027", 14.5, 0, "个", 0);
        //将多个商品项对象放入集合中
        data.add(sls);
        data.add(shk);
    }


     * @Title: enterNumber
     * @Description: 为所有的数据赋值数量与金额
     */
    public static void enterNumber() {

        //集合的遍历
        for (int i = 0; i <data.size(); i++) {
            //依次获取到集合中每一个元素
            GoodsItem thisGoods = data.get(i);

            //提示用户,输入该商品项的数量
            //获取该商品项名称
            String thisGoodsName = thisGoods.getName();
            System.out.println("请输入"+thisGoodsName+"的购买数量");

            //键盘录入接受商品数量
            Scanner sc = new Scanner(System.in);
            int thisGoodsNumber = sc.nextInt();
            //根据数量计算金额金额 = 单价 * 数量
            double thisGoodsMoney = thisGoods.getPrice() * thisGoodsNumber;

            //为该商品的数量与金额赋值
            thisGoods.setNum(thisGoodsNumber);
            thisGoods.setMoney((float) thisGoodsMoney);
        }
    }

     * @Title: printReceipt
     * @Description: 打印小票方法
     */
    private static void printReceipt() {
        //static ArrayList<GoodsItem> data = new ArrayList<GoodsItem>();
        //票头
        System.out.println("    欢迎光临");
        System.out.println("品名\t售价\t数量\t单位\t金额");
        System.out.println("-------------------------------------------");
        //票体
        //定义变量,记录所有的商品数量
        int totalNumber = 0;
        //定义变量,记录所有的商品金额
        double totalMoney = 0;
        //遍历集合
        for (int i = 0; i <data.size(); i++) {
            //依次获取每一个商品项
            GoodsItem g = data.get(i);
            //打印商品项
            System.out.println(g.getName()+g.getGoodsNumber()+"\t"+g.getPrice()+"\t"+g.getName()+" "+g.getNuit()+"\t"+g.getMoney());

            //累加数量与金额
            totalNumber += g.getNum();
            totalMoney += g.getMoney();
        }
        System.out.println("-------------------------------------------");
        //票脚
        System.out.println("共"+data.size()+"项商品");
        System.out.println("共"+totalNumber+"件商品");
        System.out.println("共"+totalMoney+"元");
        System.out.println();
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值