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

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

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

image.png

目录
相关文章
|
8月前
|
设计模式 消息中间件 传感器
Java 设计模式之观察者模式:构建松耦合的事件响应系统
观察者模式是Java中常用的行为型设计模式,用于构建松耦合的事件响应系统。当一个对象状态改变时,所有依赖它的观察者将自动收到通知并更新。该模式通过抽象耦合实现发布-订阅机制,广泛应用于GUI事件处理、消息通知、数据监控等场景,具有良好的可扩展性和维护性。
626 8
|
8月前
|
移动开发 监控 小程序
java家政平台源码,家政上门清洁系统源码,数据多端互通,可直接搭建使用
一款基于Java+SpringBoot+Vue+UniApp开发的家政上门系统,支持小程序、APP、H5、公众号多端互通。涵盖用户端、技工端与管理后台,支持多城市、服务分类、在线预约、微信支付、抢单派单、技能认证、钱包提现等功能,源码开源,可直接部署使用。
618 24
|
8月前
|
安全 前端开发 Java
使用Java编写UDP协议的简易群聊系统
通过这个基础框架,你可以进一步增加更多的功能,例如用户认证、消息格式化、更复杂的客户端界面等,来丰富你的群聊系统。
311 11
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
Java与生成式AI:构建内容生成与创意辅助系统
生成式AI正在重塑内容创作、软件开发和创意设计的方式。本文深入探讨如何在Java生态中构建支持文本、图像、代码等多种生成任务的创意辅助系统。我们将完整展示集成大型生成模型(如GPT、Stable Diffusion)、处理生成任务队列、优化生成结果以及构建企业级生成式AI应用的全流程,为Java开发者提供构建下一代创意辅助系统的完整技术方案。
413 10
|
8月前
|
人工智能 监控 Java
Java与AI智能体:构建自主决策与工具调用的智能系统
随着AI智能体技术的快速发展,构建能够自主理解任务、制定计划并执行复杂操作的智能系统已成为新的技术前沿。本文深入探讨如何在Java生态中构建具备工具调用、记忆管理和自主决策能力的AI智能体系统。我们将完整展示从智能体架构设计、工具生态系统、记忆机制到多智能体协作的全流程,为Java开发者提供构建下一代自主智能系统的完整技术方案。
1053 4
|
8月前
|
机器学习/深度学习 分布式计算 Java
Java与图神经网络:构建企业级知识图谱与智能推理系统
图神经网络(GNN)作为处理非欧几里得数据的前沿技术,正成为企业知识管理和智能推理的核心引擎。本文深入探讨如何在Java生态中构建基于GNN的知识图谱系统,涵盖从图数据建模、GNN模型集成、分布式图计算到实时推理的全流程。通过具体的代码实现和架构设计,展示如何将先进的图神经网络技术融入传统Java企业应用,为构建下一代智能决策系统提供完整解决方案。
682 0
|
9月前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。
java中获取当前系统日期
java中获取当前系统日期
JAVA 获取系统日期时间
JAVA 获取系统日期时间
445 0
|
Java 应用服务中间件
JAVA 取系统当前日期 少8个小时
        Date now = new Date();          DateFormat data = newjava.text.
953 0