当前位置: 首页 > news >正文

外卖订餐管理系统

实验五 外卖订餐管理系统

实验目的

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.cnnetsun.cn/news/53092.html

相关文章:

  • 我不是这样
  • 10.8 总结
  • 列车售票|基于springboot 列车售票系统(源码+数据库+文档)
  • AI驱动的手动测试变革:赋能而非替代
  • 【奶茶Beta专项】【LVGL9.4源码分析】09-core-group
  • 网络安全异想天开(不定期更新)
  • 《CAPL脚本实现CANOE工具 Bus-Off自动恢复(含重试机制)》
  • 力扣1965-丢失信息的雇员
  • Flutter 测试全栈指南:从单元测试到黄金路径验证的工程化实践
  • EtherCAT 逐帧报文解析:配置SM/FMMU
  • Springboot连锁火锅店餐饮管理系统h2dg0(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • Windows系统文件wavemsp.dll丢失或损坏的问题 下载修复
  • Windows系统文件wdi.dll缺失或损坏问题 下载修复
  • 基于风险演进的智能测试策略设计
  • 论文查重焦虑成流量密码?虎贲等考 AI 直接用免费模式,打破行业游戏规则
  • vue基于Spring Boot的高职院校贫困生困难生智慧关爱系统的开发_f0txl8vu
  • AI 写论文哪家强?虎贲等考 AI!毕业论文全链路 “超级哇塞”,开题到答辩一路开挂~
  • Coze平台指南(1):coze平台概览与测试应用展望
  • 生物识别系统的测试安全性与漏洞防护实践
  • 我终于停止写 JUnit 了!用 JavaParser + GPT-4 自动生成 90% 覆盖率的单元测试
  • 源码读不下去?阿里架构师教你“三步走”阅读法,彻底告别“打开源码就犯困”
  • 大梵公考:国考省考每一年的岗位一样吗?
  • 大梵公考:国考和省考二选一怎么选?
  • Java中如何检测死锁?如何预防和避免线程死锁?
  • Day32 类的定义和方法
  • 自动化测试-关键数据记录(日志+截图+页面源码)
  • IPv4地址与IPv6地址
  • 探索非线性电液伺服系统:从PID到反步控制的奇妙之旅
  • 使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 33--基础知识 8--切换窗口句柄
  • 某安全so库深度解析