外卖订餐管理系统

实验五 外卖订餐管理系统

实验目的

1.理解程序的基本概念——程序、变量、数据结构;

2.学会使用顺序、选择、循环、跳转语句编写程序;

3.学会使用数据和方法。

实验内容

开发一个外卖订餐系统,需要实现“我要订餐”、“查看餐袋”、“签收订单”、“删除订单”、“我要点赞”和“退出系统”六个功能。项目运行结果如图1所示。

图1 外卖订餐系统

三、程序代码及分步功能解析

package Q; import java.util.Scanner; public class OrderingMgr { String[] names= new String[10]; String[] dishMegs= new String[10]; int[] times= new int[10]; String[] addresses= new String[10]; int[] states= new int[10]; double[] sumPrices= new double[10]; String[] dishNames= {"红烧肉","烤鱼","麻辣香锅"}; double[] Prices= {5,25,15}; int[] praiseNums=new int[dishNames.length]; public static void main(String[] args) { OrderingMgr order = new OrderingMgr(); while(true) { order.showMainMenu(); Scanner input = new Scanner(System.in); int choice = input.nextInt(); switch (choice) { case 1: System.out.println("***我要订餐***"); order.placeOrder(); break; case 2: System.out.println("***查看餐袋***"); break; case 3: System.out.println("***签收订单***"); break; case 4: System.out.println("***删除订单***"); break; case 5: System.out.println("***我要点赞***"); break; case 6: System.out.println("感谢使用外卖订餐系统,再见!"); System.exit(0); System.exit(0); break; default: System.out.println("输入错误,请选择1-6之间的数字!"); break; } } } public void showMainMenu(){ System.out.println("欢迎使用“外卖订餐系统”"); System.out.println("*****************************"); System.out.println("1.我要订餐"); System.out.println("2.查看餐袋"); System.out.println("3.签收订单"); System.out.println("4.删除订单"); System.out.println("5.我要点赞"); System.out.println("6.退出系统"); System.out.println("*****************************"); System.out.println("请选择:"); } public void placeOrder(){ boolean flag = false; for (int j = 0; j < names.length; j++) { if (names[j] == null) { // 找到第一个空位置,可以添加订单信息 flag = true; // 置标志位,可以订餐 //输入订餐人的姓名 System.out.print("请输入订餐人姓名:"); Scanner input = new Scanner(System.in); String name=input.next(); //选择的菜品和份数 System.out.println("序号" + "\t" + "菜名" + "\t" + "单价"); for (int i = 0; i < dishNames.length; i++) { String price = Prices[i] + "元"; String praiseNum = (praiseNums[i] > 0) ? praiseNums[i] + "赞" : ""; System.out.println((i + 1) + "\t" + dishNames[i] + "\t" + price + "\t" + praiseNum); } // 用户点菜 System.out.print("请选择您要点的菜品编号:"); int chooseDish = input.nextInt(); System.out.print("请选择您需要的份数:"); int number = input.nextInt(); String dishMeg = dishNames[chooseDish - 1] + " " + number + "份"; //餐费计算 double sumPrice = Prices[chooseDish - 1] * number; // 餐费满50元,免送餐费,否则5元 double deliCharge = (sumPrice >= 50) ? 0 : 5; //输出订单时间 System.out.print("请输入送餐时间(送餐时间是10点至20点间整点送餐):"); int time = input.nextInt(); while (time < 10 || time > 20) { System.out.print("您的输入有误,请输入10~20间的整数!"); time = input.nextInt(); } System.out.print("请输入送餐地址:"); String address = input.next(); System.out.println("订餐成功!"); System.out.println("您订的是:" + dishMeg); System.out.println("送餐时间:" + time + "点"); System.out.println("餐费:" + sumPrice + "元, 送餐费" + deliCharge + "元, 总计:" + (sumPrice + deliCharge) + "元。"); // 添加数据 names[j] = name; dishMegs[j] = dishMeg; times[j] = time; addresses[j] = address; sumPrices[j] = sumPrice + deliCharge; break; } } } }

四、程序调试结果(要求截取详细步骤)


五、实验总结

本次实验开发了外卖订餐系统,实现了订餐、查看订单、签收、删除、点赞和退出六个功能。实验中,我用变量存储订单信息,数组管理订单列表,学会了顺序、选择、循环语句的使用,比如用循环遍历订单,用选择判断订单状态。同时,我还把不同功能写成了单独的方法,让代码更清晰。通过这次实验,我掌握了程序基础概念和基本语法,理解了数据和方法的使用,但在处理订单状态时还有些不熟练,后续会多练习,让代码更完善。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Level 2 → Level 3

用上一关获得的秘密ssh连接ssh -p 2220 bandit2@bandit.labs.overthewire.org使用ls,看到存在一个文件,使用cat ./--* 获得密码

软件缺少vbschs.dll文件 无法启动运行的情况 下载修复

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

Flutter 混合开发实战:从 Add-to-App 到高性能双向通信的全栈集成方案

引言&#xff1a;为什么大厂都在用“混合开发”而非纯 Flutter&#xff1f;尽管 Flutter 具备跨平台能力&#xff0c;但在实际落地中&#xff0c;几乎没有任何大型 App 是 100% 纯 Flutter 构建的。原因显而易见&#xff1a;已有数百万行原生代码&#xff08;iOS/Android&#…

外设与接口:基于内核 gpio-keys 子系统的按键处理

1 基本原理 在 Linux 中&#xff0c;gpio-keys 是一个平台驱动&#xff08;Platform Driver&#xff09;&#xff0c;它充当了物理 GPIO 硬件与 Linux 标准输入子系统&#xff08;Input Subsystem&#xff09;之间的“翻译官”。 整个处理流程自下而上分为四层&#xff1a; 硬件…

sglang 大模型推理框架支持的EAGLE 1,2,3

文章目录EAGLE 系列模型的演进与核心机制关键参数与训练逻辑思考参考来源&#xff1a;https://docs.sglang.com.cn/backend/speculative_decoding.html https://github.com/SafeAILab/EAGLE EAGLE3 https://arxiv.org/pdf/2503.01840 EAGLE 系列模型的演进与核心机制 EAGLE 基…

延凡科技 EMS 智慧云平台:3 万起订阅,中小用能单位的 “云端全能源管家”

延凡科技 EMS 智慧云平台是专为工厂、园区、楼宇、医院等中小用能单位打造的云原生能源管理解决方案&#xff0c;聚焦 “降本节能、碳排合规、云端运维、数据驱动” 核心目标&#xff0c;采用 SaaS 订阅模式&#xff0c;整合物联网感知、云边协同、AI 能效优化算法&#xff0c;…

拦截器注册InterceptorRegistry 实现讲解

1.核心概念InterceptorRegistry 是 Spring MVC 提供的拦截器注册器&#xff0c;用于配置拦截器的拦截规则。2.主要方法addInterceptor(): 添加拦截器 addPathPatterns(): 指定要拦截的路径 excludePathPatterns(): 指定要排除的路径 路径匹配规则 /api/**: 匹配 /api/ 下的所有…

汇编语言全接触-27.工具提示控件

我们将学习工具提示控件:它是什么如何创建和使用.下载例子理论:工具提示是当鼠标在某特定区域上停留时显示的一个矩形窗口.工具提示窗口包含一些编程者想要显示的文本.在这点上,工具提示同状态栏的作用是一样的,所不同的是工具提示当单击或者远离指定区域的时候就会消逝,你可能…

汇编语言全接触-26.启动画面

上一章我们学习了位图的使用.在这一章我们要用上帝赋予我们的创造力来融会贯通上一章我们学到的知识.那就是研究如何用位图来创建启动画面. 你可以在这里下载示范: the example. 理论首先,我们先要搞清楚什么是启动画面.举个简单的例子:我们启动某些作的专业一点的程序时(比如N…

验证IP地址(一)

我们先来看题目描述&#xff1a;给定两个 没有重复元素 的数组 nums1 和 nums2 &#xff0c;其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不…

医院管理|基于springboot 医院管理系统(源码+数据库+文档)

医院管理 目录 基于springboot vue医院管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue医院管理系统 一、前言 博主介绍&#xff1a;✌️大…

浅谈:算法中的斐波那契数(一)

我们先来看题目描述&#xff1a;斐波那契数&#xff0c;通常用 F(n) 表示&#xff0c;形成的序列称为斐波那契数列。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a;F(0) 0, F(1) 1 F(N) F(N - 1) F(N - 2), 其中 N > 1.给…

测试的“元认知”:智能体如何评估自身可靠性?

在软件测试领域&#xff0c;自动化与智能化正以前所未有的速度重塑工作流程。随着人工智能代理&#xff08;智能体&#xff09;广泛应用于测试用例生成、缺陷预测和持续集成&#xff0c;一个关键问题浮出水面&#xff1a;这些智能体如何像人类测试专家一样&#xff0c;对自身行…

10.8 总结

10.8 总结 作业回顾 1.1 索引练习节选 s hello 1 world 2 hello 3 Python # 获取s的长度 print(len(s)) # 30 # 获取第4个字符 print(s[3]) # l # 获取最后一个字符 print(s[-1]) # n # 获取第7个字符 print(s[6]) # 1 # 获取倒数第7个字符 print(s[-7]) # 空格【不显…

【Hadoop+Spark+python毕设】物联网网络安全威胁数据分析系统、计算机毕业设计、包括数据爬取、数据分析、数据可视化、Hadoop、实战教学

&#x1f393; 作者&#xff1a;计算机毕设小月哥 | 软件开发专家 &#x1f5a5;️ 简介&#xff1a;8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 &#x1f6e0;️ 专业服务 &#x1f6e0;️ 需求定制化开发源码提…

9.28总结

9.28总结 知识回顾 # 1. 封装一个函数&#xff1a;获取指定数据的阶乘 【没有指定数据的话默认求10的阶乘】 默认参数 # 阶乘 比如5&#xff01;5*4*3*2*1 # 未知数据 有1个 # 是否需要返回结果 def factorial(num10):result 1for i in range(num, 0, -1):result * ireturn…

零基础学JAVA--Day34(Map接口+HashTable+HashMap+TreeSet+TreeMap+开发中如何选择集合实现类?(重要)) - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

电影院购票|基于springboot 电影院购票系统(源码+数据库+文档)

电影院购票 目录 基于springboot vue电影院购票系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue电影院购票系统 一、前言 博主介绍&#xff1a…

C#+VisionMaster联合开发(二)_操作流程

1、获取方案中的流程列表 // 加载流程列表 ProcessInfoList processInfoList = VmSolutionMain.GetAllProcedureList(); if (processInfoList.nNum > 0) {var processNames = processInfoList.astProcessInfo.ToLis…