JAVA 小型点餐系统 文章中含有源码

发布于:2023-07-04 ⋅ 阅读:(99) ⋅ 点赞:(0)

Dish.java

package cn.tx.demo;

/*
* 菜品类
* 提供有参数的构造方法
* */

public class Dish {
    // 编号
    int id;
    //菜的名称
    String name;
    //价格
    double price;

    //生成构造方法  alt+insert 生成构造方法
    public Dish(int id, String name, double price) {
        this.id = id;
        this.name = name;
        this.price = price;
    }

    @Override
    public String toString() {
        return "Dish{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", price=" + price +
                '}';
    }
}

DishApp.java

在这里插入代码片package cn.tx.demo;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * 点菜的程序
 */
public class DishApp {
    //提前主备一些菜品,可以展示给用户,同时用户可以点菜
    //定义一个集合(表示这个小饭店所有的菜品)
    //Todo.1.   **  泛型  **: <Dish>,初始化一个集合,里面只能存储dish对象,不能存储其他的
    // 如果是<String>,则表示只能存储字符串(String)
    static List<Dish> dishList=new ArrayList<>();
    //用户已点菜品集合
    static List<Dish> PersonDish=new ArrayList<>();

    public static void main(String[] args) {
        //Todo.1.1.1. new一个对象后面调用service里面的方法
        // sevice usr=new sevice();

        //先初始化一些初始菜品
        initDish();
        //小饭店就会做五个菜

        //创建一个扫描器(Scanner)对象,获取控制台输入的内容
        Scanner sc1=new Scanner(System.in);
        while (true){
            //给用户展示一个主菜单
            showMenu();
            //获取内容,拿到一个num数字
            int num =sc1.nextInt();
            //判断用户输入的数字
            switch (num){
                case 1:
                    while (true){
                        //把饭店的菜单展示给用户
                        showdishMenu();

                        //获取用户输入的内容
                        int id=sc1.nextInt();
                        //判断
                        if(id==0){
                            break;
                        }
                        //从饭店集合中获取到菜品的对象 1 2 3 4 5
                        //集合索引 0 1 2 3 4    所以id-1
                        Dish dish= dishList.get(id-1);
                        System.out.println("亲,您点了:"+dish.name+"菜");
                        PersonDish.add(dish);
                        //用户点一个,我们存一个
//                        for (Dish dish1 : PersonDish) {
//                            if(dish.name.equals(dish1.name)){
//                                dish1.id+= 1;
//                            }
//                            else{
//                                PersonDish.add(dish);
//                            }
//                        }


                    }

                case 2:
                    showPersonMenu();
                    break;
                case 3:
                    //买单
                    buy();
                    return;
            }
        }
    }

    /**
     * 展示饭店菜单
     */
    public static void showdishMenu(){
        System.out.println("请您点菜!");
        //遍历集合     [数组遍历]for (int i = 0; i < arrs.length; i++)
        for (int i = 0; i < dishList.size(); i++) {
            //从集合中使用i获取每一个菜品对象
            Dish dish=dishList.get(i);
//            System.out.println(dish);
            System.out.println(dish.id+"\t"+dish.name+"\t"+dish.price);
        }
        System.out.println("===输入序号点菜,按0 返回上一级===");
    }

    /**
     * 客户点了什么菜
     */
    public static void showPersonMenu(){
        System.out.println("您已点菜品!!");
        //遍历集合
        for (Dish personDish : PersonDish) {
            System.out.println(personDish.id+"\t"+personDish.name+"\t"+personDish.price);
        }
    }

    /**
     * 客户买单
     */
    public static void buy(){
        System.out.println("===亲稍等,正在结算===");
        double total=0f;
        //遍历已点的菜品
        for (Dish dish : PersonDish) {
            total+=dish.price;
        }
        System.out.println("亲,您本次共消费了"+total+"元");
    }

    /**
     * 展示主菜单
     */
    public static void showMenu(){
        System.out.println("--------主菜单---------------");
        System.out.println("菜单\t\t\t 1");
        System.out.println("已点菜品\t\t 2");
        System.out.println("买单\t\t\t 3");
        System.out.println("=====根据编号选择服务:=========");


    }

    /**
     * 初始化一些菜品
     */
    public static void initDish(){
        Dish dish1=new Dish(1,"香辣肉丝",29);
        dishList.add(dish1);
        Dish dish2=new Dish(2,"炖王八",69);
        dishList.add(dish2);
        Dish dish3=new Dish(3,"红烧鸡块",39);
        dishList.add(dish3);

        //存放菜品
        dishList.add(new Dish(4,"红烧肉",99));
        dishList.add(new Dish(5,"地三鲜",24));


    }
}

在这里插入图片描述
代码来源于B站,侵权请联系删除

本文含有隐藏内容,请 开通VIP 后查看