在java中实现订餐系统_Java实现简单订餐系统-程序员宅基地

技术标签: 在java中实现订餐系统  

本文实例为大家分享了Java实现简单订餐系统的具体代码,供大家参考,具体内容如下

import java.util.Scanner;

import java.util.*;

public class OrderingMsg {

public static void main(String[] args) {

// 数据主体:一组订单信息

String[] names = new String[4]; // 订餐人名称

String[] dishMegs = new String[4]; // 所选菜品

int[] times = new int[4]; // 送餐时间

String[] addresses = new String[4]; // 送餐地址

int[] states = new int[4]; // 订单状态: 0:已预定 1:已完成

double[] sumPrices = new double[4]; // 总金额

//初始化2个订单信息

names[0] = "张晴";

dishMegs[0] = "红烧带鱼 2份";

times[0] = 12;

addresses[0] = "天成路207号";

sumPrices[0] = 76.0;

states[0] = 1;

names[1] = "张晴";

dishMegs[1] = "鱼香肉丝 2份";

times[1] = 18;

addresses[1] = "天成路207号";

sumPrices[1] = 20.0;

// 供选择的菜品信息

String[] dishNames = { "红烧带鱼", "鱼香肉丝", "时令鲜蔬" }; // 菜品名称

double[] prices = new double[] { 38.0, 20.0, 10.0 }; // 菜品单价

int[] praiseNums = new int[3];

Scanner input = new Scanner(System.in);

int num = -1; // 用户输入0返回主菜单,否则退出系统

boolean isExit = false; // 标志用户是否退出系统: true:退出系统

System.out.println("\n欢迎使用“吃货联盟订餐系统”");

// 循环:显示菜单,根据用户选择的数字执行相应功能

do {

// 显示菜单

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.print("请选择:");

int choose = input.nextInt(); // 记录用户选择的功能编号

boolean isAdd = false; //记录是否可以订餐

boolean isSignFind = false; //找到要签收的订单

boolean isDelFind = false; //找到要删除的订单

// 根据用户选择的功能编号执行相应功能

switch (choose) {

case 1:

// 我要订餐

System.out.println("***我要订餐***");

System.out.print("请输入订餐人姓名:");

String name=input.next();

isAdd=true;

int j = 0;

for (; j < names.length; j++) {

//todo

if(names[j]==null){

names[j]=name;

break;

}

else {

isAdd=true;

}

}

if(!isAdd){

System.out.println("对不起,您的餐袋已满!");

}

else {

System.out.println("序号"+"\t"+"菜品名"+"\t"+"价格");

for(int i=0;i

System.out.print(i+1+"\t"+dishNames[i]+"\t"+prices[i]+"\n");

}

System.out.print("请输入菜品编号:");

int dishNum=input.nextInt();

System.out.print("请输入菜品数量:");

int dishCnt=input.nextInt();

String dishMeg=dishNames[dishNum-1]+dishCnt+"份";

dishMegs[j]=dishMeg;

System.out.print("请输入收货地址:");

String Addr=input.next();

addresses[j]=Addr;

System.out.print("请输入收货时间:");

int time=input.nextInt();

times[j]=time;

double sumPrice=prices[dishNum-1]*dishCnt;

double deliCharge=(sumPrice>50)?0:5;

System.out.println("餐费:"+sumPrice+"元,送餐费:"+deliCharge+"元,总计:"+(sumPrice+deliCharge)+"元。");

sumPrices[j]=sumPrice+deliCharge;

}

break;

case 2:

// 查看餐袋

System.out.println("***查看餐袋***");

System.out.println("序号\t订餐人\t餐品信息\t\t送餐日期\t送餐地址\t\t总金额\t订单状态");

//todo

for(int i=0;names[i]!=null;i++) {

String sta=(states[i]==1)?"已完成":"已预定";

System.out.print((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+times[i]+"\t"+addresses[i]+"\t"+sumPrices[i]+"\t"+sta+"\n");

}

break;

case 3:

// 签收定单

System.out.println("***签收定单***");

//todo

System.out.println("序号\t订餐人\t餐品信息\t\t送餐日期\t送餐地址\t\t总金额\t订单状态");

for(int i=0;names[i]!=null;i++) {

String sta=(states[i]==1)?"已完成":"已预定";

System.out.print((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+times[i]+"\t"+addresses[i]+"\t"+sumPrices[i]+"\t"+sta+"\n");

}

System.out.print("请选择要签收的订单序号:");

int n=input.nextInt();

states[n-1]=1;

System.out.println("序号\t订餐人\t餐品信息\t\t送餐日期\t送餐地址\t\t总金额\t订单状态");

for(int i=0;names[i]!=null;i++) {

String sta=(states[i]==1)?"已完成":"已预定";

System.out.print((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+times[i]+"\t"+addresses[i]+"\t"+sumPrices[i]+"\t"+sta+"\n");

}

break;

case 4:

// 删除订单

System.out.println("***删除订单***");

System.out.println("序号\t订餐人\t餐品信息\t\t送餐日期\t送餐地址\t\t总金额\t订单状态");

for(int i=0;i<4;i++) {

String sta=(states[i]==1)?"已完成":"已预定";

System.out.print((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+times[i]+"\t"+addresses[i]+"\t"+sumPrices[i]+"\t"+sta+"\n");

}

System.out.print("请输入要删除的订单序号:");

//todo

int m=input.nextInt();

for(int k=m; k<4;k++)

{

names[k-1]=names[k];

dishMegs[k-1]=dishMegs[k];

times[k-1]=times[k];

addresses[k-1]=addresses[k];

sumPrices[k-1]=sumPrices[k];

states[k-1]=states[k];

}

System.out.println("序号\t订餐人\t餐品信息\t\t送餐日期\t送餐地址\t\t总金额\t订单状态");

for(int i=0;i<4;i++) {

String sta=(states[i]==1)?"已完成":"已预定";

System.out.print((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+times[i]+"\t"+addresses[i]+"\t"+sumPrices[i]+"\t"+sta+"\n");

}

break;

case 5:

// 我要点赞

System.out.println("***我要点赞***");

// 显示菜品信息

System.out.println("序号" + "\t" + "菜名"+"\t"+"单价");

for(int i=0;i

System.out.print(i+1+"\t"+dishNames[i]+"\t"+prices[i]+"\t"+praiseNums[i]+"赞"+"\n");

}

//todo

System.out.print("请输入点赞序号:");

int number=input.nextInt();

praiseNums[number-1]=praiseNums[number-1]+1;

System.out.println("序号" + "\t" + "菜名"+"\t"+"单价");

for(int i=0;i

System.out.print(i+1+"\t"+dishNames[i]+"\t"+prices[i]+"\t"+praiseNums[i]+"赞"+"\n");

}

break;

case 6:

// 退出系统

isExit = true;

break;

default:

//退出系统

isExit = true;

break;

}

if (!isExit) {

System.out.print("输入0返回:");

num = input.nextInt();

} else {

break;

}

} while (num == 0);

System.out.println("谢谢使用,欢迎下次光临!");

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_29487179/article/details/114876173

智能推荐

【Arma3脚本教程】一、基本介绍_arma3源码-程序员宅基地

文章浏览阅读3.5k次,点赞7次,收藏16次。想必看到此文章的人想要学习Arma3的地图编辑,不过国内很少有人研究这个,即使会的也不是专业程序员,即使是专业程序员,也需要花不少时间学习它的特定写法。如果你高中以上学历,英语及格,逻辑水平还行,应该可以看懂本教程。另外欢迎加群讨论:762195010。废话不多说开始。_arma3源码

删除oracle中的一列数据,Oracle删除表数据-程序员宅基地

文章浏览阅读6k次。本篇文章帮大家学习Oracle删除表数据,包含了Oracle删除表数据使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。在本教程中将学习如何使用Oracle DELETE语句从表中删除一行或多行数据记录。要从表中删除一行或多行,请按如下所示使用Oracle DELETE语句:DELETEFROMtable_nameWHEREcondition;在这个语句中,首先,指定要从..._oracle清空某一列数据

Verilog数字系统设计教程[第4版]夏宇闻——第三部分练习三_夏宇闻verilog第三版和第四版一样吗-程序员宅基地

文章浏览阅读234次。Verilog数字系统设计教程[第4版]夏宇闻——第三部分练习三_夏宇闻verilog第三版和第四版一样吗

VS2017 boost环境配置与报错解决_boost msvc版本不一致报错-程序员宅基地

文章浏览阅读303次,点赞5次,收藏5次。libboost_random 缺少的是 random 这个文件,如果你报错缺少的是libboost_data_time或者别的,只要把命令中random改成相应的关键字即可。vc141 对应的是你的vs对应的msvc版本,比如我装的是vs2017,对应的msvc版本就是msvc-14.1,你报错的版本不一样就把命令中的14.1替换成你报错的版本。address-model=64 这里对应的是64位开发环境,你报错的是32就把命令中64改成32。如果出现了类似的报错(最后的1_78为boost的版本)_boost msvc版本不一致报错

linux内核网络初始化,Linux内核网络数据包发送(一)-程序员宅基地

文章浏览阅读137次。1. 前言本文首先从宏观上概述了数据包发送的流程,接着分析了协议层注册进内核以及被socket的过程,最后介绍了通过 socket 发送网络数据的过程。2. 数据包发送宏观视角从宏观上看,一个数据包从用户程序到达硬件网卡的整个过程如下:使用系统调用(如 sendto,sendmsg 等)写数据数据穿过socket 子系统,进入socket 协议族(protocol family)系统协议族处理:数..._linux网络相关的第一个初始化函数

阿里云DataV功能及案例_datav案例-程序员宅基地

文章浏览阅读1.4k次。一、功能特性1、多种场景模板,解决您的设计难题数据可视化的设计难点不在于图表类型的多,而在于如何能在简单的一页之内让人读懂数据之间的层次与关联,这就关系到色彩、布局、图表的综合运用。DataV 提供指挥中心、地理分析、实时监控、汇报展示等多种场景模版,即便没有设计师,您的可视化作品也有显现出高设计水准。2、多种图表组件,支撑多种数据类型的分析展示除针对业务展示优化过的常规图表外,还能够绘制包括海量数据的地理轨迹、地理飞线、热力分布、地域区块、3D 地图、3D 地球,地理数据的多层叠加。此_datav案例

随便推点

julia ---- 语言底层实现 @code_native, @code_typed 和 @code_llvm 区别-程序员宅基地

文章浏览阅读1k次。目录概述Lowered code.Typed codeLLVM IR.Native code.注: 这篇文章在翻译的时候,有些地方我也不是太理解,因为很多地方涉及到了语言编译的底层内容,如果有兴趣可以查阅原文。不过通过这篇文章,还是可以简单了解到Julia的底层编译实现。概述Python的标准CPython实现解析源代码,并对其进行一些预处理和简化(也称为“low...

Media.Metrics简介-程序员宅基地

文章浏览阅读2.5k次。背景前几日分析遇到一个客户问题:客户长时间Monkey 煲机,发现一个叫media.metrics进程,该进程的内存一直增长到160+M左右后才稳定。所以简单分析了下该进程。codePath/frameworks/av/services/mediaanalytics//frameworks/av/media/libmediametrics/使用方法module → MediaAnalyticsItem → media.metrics server用法step:module 可通过new_media.metrics

结构体内嵌比较函数bool operator < (const 结构体名 &x) const {}_bool operator <(const point &x) const { return dd -程序员宅基地

文章浏览阅读1.1k次,点赞3次,收藏4次。bool operator < (const 结构体名 &x) const {}结构体内嵌比较函数的作用:一般来说比较函数写在结构体内会比写在外部快_bool operator <(const point &x) const { return dd > x.dd; }

openwrt中搭建VRRP_openwrt vrrp-程序员宅基地

文章浏览阅读4.3k次。openwrt中搭建VRRP_openwrt vrrp

基于MATLAB的身份证号码的识别算法-程序员宅基地

文章浏览阅读828次,点赞2次,收藏5次。基于MATLAB的身份证号码的识别算法课题介绍为快速识别身份证号码,以计算机视觉系统为技术手段,以第二代居民身份证为研究对象,从身份证 号码图像中提取号码数字0—9的空间分布特征和结构特征,采用相似系数最大和结构特征一致准则,应用 MATLAB软件编程实现了身份证号码的快速识别.运用图像处理和模式识别技术,实现了身份证号码图像的 预处理、图像分割、号码图像的修正、号码体的定位、号码体的识别等算法,..._基于matlab的身份证号码的识别算法

爆杀双指针算法 ---【训练篇】-程序员宅基地

文章浏览阅读369次,点赞8次,收藏12次。本篇为双指针算法题的题解汇总,也可以作为刷题训练的指南。整体难度从低到高排序更多题目持续更新中。