J013_简易商家外卖系统

一、需求描述

1、完成菜品的上架功能

2、完成菜品的浏览功能

二、开发设计

1、需要设计一个菜品类,用于创建菜品对象

2、需要一个菜品操作类,用于封装菜品上架和菜品浏览功能

3、测试程序

三、代码实现

3.1 Food类

package com.itheima.arraylist;

public class Food {
    private String name;//菜品名称
    private double price;//菜品价格
    private String info;//菜品描述信息

    public Food() {
    }

    public Food(String name, double price, String info) {
        this.name = name;
        this.price = price;
        this.info = info;
    }

    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 String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }
}

3.2 FoodOperator类

package com.itheima.arraylist;

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

public class FoodOperator {
    //菜品操作类,负责上架和浏览菜品
    //定义一个ArrayList集合对象,负责存储菜品对象信息
    private ArrayList<Food> foodlist = new ArrayList<>();

    //上架菜品功能
    public void addFood(){
        //创建一个菜品对象
        Food f = new Food();

        //录入菜品信息
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入菜品名称:");
        String name = sc.next();
        f.setName(name);

        System.out.println("请输入菜品价格");
        double price = sc.nextDouble();
        f.setPrice(price);

        System.out.println("请输入菜品描述");
        String desc = sc.next();
        f.setInfo(desc);

        //添加信息到集合
        foodlist.add(f);
        System.out.println("上架成功");
    }

    //浏览菜品功能
    public void showAllFoods(){
        if (foodlist.size() == 0){
            System.out.println("还没有菜品哦,请先去上架");
        }
        for (int i = 0; i < foodlist.size(); i++) {
            Food f = foodlist.get(i);
            System.out.println(f.getName());
            System.out.println(f.getPrice());
            System.out.println(f.getInfo());
            System.out.println("--------------------");
        }
    }

    public void start(){
        Scanner sc = new Scanner(System.in);
        while (true){
            System.out.println("请选择功能:");
            System.out.println("1-上架菜品");
            System.out.println("2-展示菜品");
            System.out.println("3-退出");
            System.out.println("请输入你的选择:");
            String command = sc.next();
            switch (command){
                case "1":
                    addFood();
                    break;
                case "2":
                    showAllFoods();
                    break;
                case "3":
                    System.out.println("欢迎下次再来");
                    return;
                default:
                    System.out.println("您输入的命令不存在,请您重新输入!!!");
            }
        }
    }
}

3.2 test

package com.itheima.arraylist;

import java.util.ArrayList;

public class ArrayListDemo2 {
    public static void main(String[] args) {
        //商家菜品上菜操作
        //涉及一个菜品类food,负责创建菜品对象,封装菜品数据
        FoodOperator operator = new FoodOperator();
        operator.start();
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/428793.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue中如何进行非父子组件通信?

当谈及Vue中非父子组件通信时&#xff0c;我们通常会考虑使用Event Bus或者Vuex来实现。以下是我为您准备的一些面试题内容和示例代码&#xff1a; 面试题&#xff1a;“Vue中如何进行非父子组件通信&#xff1f;” 在Vue中&#xff0c;父子组件之间的通信通常是通过props和e…

【小迪安全】2022年全栈渗透测试工程师培训视频

&#x1f6ab; 禁止任何非授权的网络攻击&#xff01; &#x1f693; 谨记双刃剑之道&#xff0c;以防引火烧身&#xff01; 观看地址 【小迪安全】2022年全栈渗透测试工程师培训视频 说明 资料均收集自互联网&#xff0c;本站不对任何视频资源进行出售&#xff01;感谢视频…

Vue.js+SpringBoot开发音乐偏好度推荐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.1.1 音乐档案模块2.1.2 我的喜好模块2.1.3 每日推荐模块2.1.4 通知公告模块 2.2 用例图设计2.3 实体类设计2.4 数据库设计 三、系统展示3.1 登录注册3.2 音乐档案模块3.3 音乐每日推荐模块3.4 通知公告模…

关于docker容器存储问题

一、容器的存储可以分为两大类&#xff1a; 一种是与镜像相关的即容器层Copy-On-Write特性。默认情况下&#xff0c;在容器内创建的所有文件都存储在可写容器层上&#xff0c;这种直接将文件存储在容器层的方式数据难以持久化和共享&#xff0c;由于依赖存储驱动与使用直接写入…

139.乐理基础-一四五八度为何用纯?

上一个内容&#xff1a;138.乐理基础-等音、等音程的意义-CSDN博客 上一个内容里练习的答案&#xff1a; 以乐理里写的知识&#xff0c;没办法完全解释透彻 一四五八度为何用纯&#xff1f;这个问题&#xff0c;要透彻的话要从各个文明怎么发现音高、发明音高、制定规则等&…

javascript学习快速入门

JavaScript 基本语法 快速入门 数据类型 123 // 整数123 123.1 //浮点数123.1 1.123e3 //科学计数法-99//复数 NaN// not a numberInfinity //表示无限大注意点 NaNNaN&#xff0c;这个与所有的数值都不相等&#xff0c;包括自 己 只能通过isNaN(NaN)来判断这个数是否是Na…

第1章:绪论 1.1数据库系统概述

文章目录 1.1 数据库系统概述1.1.1 数据库的4个基本概念1.1.2 数据管理技术的产生和发展1.1.3 数据库系统的特点 1.1 数据库系统概述 1.1.1 数据库的4个基本概念 数据(Data) 是数据库中存储的基本对象 数据的定义&#xff1a;描述事物的符号记录 数据的种类&#xff1a;文本、…

双重检验锁

双重检验锁&#xff1a;设计模式中的单例模式&#xff0c;细分为单例模式中的懒加载模式。 单例模式 单例模式&#xff1a;指的是一个类只有一个对象。最简单的实现方式是设一个枚举类&#xff0c;只有一个对象。缺点是当对象还没有被使用时&#xff0c;对象就已经创建存在了…

MATLAB读取txt文本数据及可视化指南

MATLAB读取txt文本数据的说明指南 目录 MATLAB读取txt文本数据的说明指南摘要1. 数据准备2. 读取数据3. 绘制图形4. 小结 摘要 在MATLAB中&#xff0c;读取txt文本格式文件数据是一项基本的操作&#xff0c;特别是在数据分析和可视化方面。本文将介绍如何使用MATLAB读取txt文本…

【代码随想录算法训练营Day35】435.无重叠区间;763.划分字母区间;56.合并区间

文章目录 ❇️Day 36 第八章 贪心算法 part05✴️今日任务❇️435. 无重叠区间自己的思路自己的代码&#xff08;✅通过81.59%&#xff09;随想录思路随想录代码 ❇️763.划分字母区间自己的思路自己的代码&#xff08;✅通过55.30%&#xff09;随想录思路随想录代码 ❇️56. 合…

利用Python自动化日常任务

在快节奏的现代生活中&#xff0c;时间就是一切。幸运的是&#xff0c;Python提供了一系列强大的库和工具&#xff0c;可以帮助我们自动化那些乏味且重复的任务&#xff0c;从而释放我们的时间&#xff0c;让我们可以专注于更有创造性和有意义的工作。下面&#xff0c;我们将探…

【网站项目】158企业人事管理系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

chatgpt-next-web搭建教程,超低成本部署属于自己的ChatGPT

随着AI的应用变广&#xff0c;各类AI程序已逐渐普及&#xff0c;尤其是在一些日常办公、学习等与撰写/翻译文稿密切相关的场景&#xff0c;大家都希望找到一个适合自己的稳定可靠的ChatGPT软件来使用。 ChatGPT-Next-Web就是一个很好的选择。它是一个Github上超人气的免费开源…

加密与安全_探索签名算法

文章目录 概述应用常用数字签名算法CodeDSA签名ECDSA签名小结 概述 在非对称加密中&#xff0c;使用私钥加密、公钥解密确实是可行的&#xff0c;而且有着特定的应用场景&#xff0c;即数字签名。 数字签名的主要目的是确保消息的完整性、真实性和不可否认性。通过使用私钥加…

2000-2021年全国各省市城乡平均受教育年限数据(分城镇和农村)(含原始数据+计算过程+计算结果)

2000-2021年全国各省市城乡平均受教育年限数据&#xff08;分城镇和农村&#xff09; 1、时间&#xff1a;2000-2021年 2、范围&#xff1a;全国及31省 3、来源&#xff1a;人口与就业统计年鉴 4、指标包括&#xff1a;城乡平均受教育年限 、6岁以上总人口 未上过学、…

【卡尔曼滤波】图文结合带你详细推导卡尔曼滤波(超详解)

大家好&#xff0c;好久不见&#xff0c;我是小政。读研期间&#xff0c;我的研究方向是协作定位&#xff0c;涉及到多机器人分布式融合&#xff0c;主要用到了卡尔曼滤波&#xff0c;CI融合等概念。卡尔曼滤波我也是研究了很久&#xff0c;一直在思考的问题就是&#xff0c;卡…

Redis核心数据结构之SDS(一)

数据结构与对象 简单动态字符串 概述 Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组&#xff0c;简称C字符串)&#xff0c;而是自己构建了一种名为简单动态字符串(Simple Dynamic String, SDS)的后向类型&#xff0c;并将SDS用作Redis的默认字符串表示。在…

代码复现错误

1. 问题&#xff1a; torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 64.00 MiB (GPU 0; 39.59 GiB total capacity; 37.72 GiB already allocated; 38.19 MiB free; 37.83 GiB reserved in total by PyTorch) If reserved memory is >> allocat…

《TCP/IP详解 卷一》第11章 DNS

目录 11.1 引言 11.2 DNS名称空间 11.2.1 DNS命名语法 11.3 名称服务器和区域 11.4 DNS缓存 11.5 DNS 协议 11.5.1 DNS消息格式 11.5.2 DNS 扩展格式&#xff08;EDNS0&#xff09; 11.5.3 UDP 或 TCP 11.5.4 问题&#xff08;查询&#xff09;和区域区段格式 11.5.…

什么是SpringCloud,有哪些组件?

spring Cloud 是基于spring boot的分布式系统开发工具,它提供了一系列开箱即用的,针对分布式系统开发的特性和组件。用于帮助开发人员快速构建和管理云原生应用程序。 Spring Cloud 的主要目标是解决分布式系统中的常见问题,例如服务发现,负载均衡,配置管理,断路器,消息总…