Java实现简单点餐系统

用Java实现简单点餐系统,供大家参考,具体内容如下

程序控制分析:

1、欢迎页循环:do-while
2、Scanner 控制输入
3、选择页循环:switch-case

要求:

订单信息:String 二维数组
序号、姓名、餐品名称、份数、价格、总价、地址、时间(10-20)、状态(已预定、已完成)、热度(int型)

签收订单:改变订单状态,已预定可以签收,如果已经完成则不能再次签收。

删除订单:不能删除未完成订单,序号要随之改变。

我要点赞:对相应的餐品点赞,并展示。

package Practice;

import java.util.Scanner;

public class Obj {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String dishes[]={"红烧肉","烧熊掌","清蒸鱼","白斩鸡","烤乳鸽"};
        int price[]={58,88,45,56,44};
        int honors[]={50,100,20,12,44};
        int hot[]={5,4,3,2,0};
        String orders[][]=new String[1024][];

        int chose=0;
        System.out. println("欢迎关岭红浪漫餐厅");
        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.println("请选择:");
            chose=sc.nextInt();
//订餐流程-------------------------------------------------------------------------------------
            switch (chose) {

                case 1:
                    System.out.println("***我要订餐***");
                    System.out.println("请输入订餐人姓名:");
                    String name=sc.next();

                    System.out.println("序号     菜品    单价   热度");
                    for (int i = 0; i < dishes.length; i++) {
                        System.out.println(i+1+"\t\t"+dishes[i]+"\t"+price[i]+"元\t"+"\t"+hot[i]);
                    }

                    int dishNum=0;
                    do{
                        System.out.println("菜品编号");
                        dishNum=sc.nextInt();
                        if ((dishNum<1||dishNum>dishes.length)){
                            System.out.println("对不起,输入有误,请重新输入!");
                        }
                    }while (dishNum<1||dishNum>dishes.length);

                    int pcs=0;
                    do {
                        System.out.println("份数");
                        pcs=sc.nextInt();
                        if (pcs<1){
                            System.out.println("对不起,输入有误,请重新输入!");
                        }
                    }while (pcs<1);

                    int time;
                    do {
                        System.out.println("送餐时间");
                        time=sc.nextInt();
                        if (time<10||time>22){
                            System.out.println("对不起,输入有误,请重新输入!");
                        }
                    }while (time<10||time>22);

                    System.out.println("地址");
                    String addres=sc.next();

                    System.out.println("success!");
                    System.out.println(
                            "您定的商品信息是:" +dishes[dishNum]+ "\t" +dishNum+"份");
                    System.out.println("送餐时间为"+time);

                    double cost=price[dishNum-1]*pcs;
                    double sent=cost>50?0:6;
                    double total=cost+sent;
                    System.out.println("餐费共计"+total+" 其中快递费"+sent+"元");

                    for (int i = 0; i < orders.length; i++) {
                        if (orders[i]==null){
                            orders[i]=new String[3];
                            orders[i][0]=name+"\t"+dishes[dishNum-1]+"\t"
                                    +pcs+"份\t"+time+"\t"+addres+"\t"+cost+"元";  //orders第一存储 菜品信息
                            orders[i][1]="已预定";                      //orders第二存储 订单信息
                            break;
                        }
                    }

                    break;
//查看餐袋------------------------------------------------------------------------------
                case 2:
                    System.out.println("***查看餐袋***");
                    System.out.println("序号\t订餐人  餐品信息 时间 地址 总金额    订单状态");
                    for (int i = 0; i < orders.length; i++) {
                        if (orders[i]!=null){
                            System.out.println(i+1+"\t"+orders[i][0]+"\t\t"+orders[i][1]);
                        }else{
                            break;
                        }
                    }
                    break;
//订单签收----------------------------------------------------------------------------
                case 3:
                    System.out.println("***签收订单***");
                    int num;
                    int end=0;
                    System.out.println("序号\t订餐人  餐品信息 时间 地址 总金额    订单状态");
                    for (int i = 0; i < orders.length; i++) {
                        if (orders[i]!=null){
                            System.out.println(i+1+"\t"+orders[i][0]+"\t\t"+orders[i][1]);
                        }else{
                            break;
                        }
                    }

                    do {
                        System.out.println("请输入要签收订单序号:");
                        for (int i = 0; i < orders.length; i++) {
                            if (orders[i]==null){
                                end=i+1;
                                break;
                            }
                        }

                        num=sc.nextInt();

                        if (num<0||num>end){
                            System.out.println("输入有误");
                        }else if ("已预定".equals(orders[num-1][1])){
                            orders[num-1][1]="已完成";
                            System.out.println("订单已完成");
                            break;
                        }else{
                            System.out.println("订单已签收,不能重复签收");
                            break;
                        }

                    }while (num<1||num>end||"已预定".equals(orders[num-1][1]));

                    break;
//删除订单------------------------------------------------------------------------
                case 4:
                    System.out.println("***删除订单***");
                    int n=0;   //输入数字
                    int e=0;  // 订单的最大数量
                    System.out.println("序号\t订餐人 \t餐品信息 \t送餐时间 \t地址 \t总金额 \t状态");
                    for (int i = 0; i < orders.length; i++) {
                        if (orders[i]!=null){
                            System.out.print(i+1+"\t"+orders[i][0]+"\t"+orders[i][1]+"\t");
                            System.out.println("\t  "+orders[i][1]);
                        }else{
                            break;
                        }
                    }

                    do {
                        for (int i = 0; i < orders.length; i++) {        //确定订单的最大数量
                            if (orders[i]==null){
                                e=i;
                                break;
                            }
                        }

                        System.out.println("要删除的订单编号:");
                        n=sc.nextInt();
                    if (n<1||n>e){
                        System.out.println("err");
                    }else if ( ! "已完成".equals(orders[n-1][1])){
                        System.out.println("订单未完成,不能删除");
                        break;
                    }else{
                        boolean isDelete=false;
                        for (int i = n-1; i < orders.length; i++) {
                            if (i==orders.length-1){
                                orders[i]=null;
                                isDelete=true;          //
                            }else{
                                orders[i]=orders[i+1];   //前移
                                if (orders[i]==null){
                                    isDelete=true;
                                    break;
                                }
                            }
                        }
                    }
                    }while (n<1||n>e||"已完成".equals(orders[n][1]));

                    break;
//我要点赞----------------------------------------------------------------------------
                case 5:
                    System.out.println("***我要点赞***");
                    int hp=0;

                    System.out.println("请选择点赞菜品:");
                    hp=sc.nextInt();
                    if (hp<1||hp>dishes.length){
                        System.out.println("对不起,输入有误,请重新输入!");
                    }else{
                        hot[hp-1]++;
                    }

                    break;
//退出系统------------------------------------------------------------------------------------
                default:
                    System.out.println("6、退出系统");

            }
//switch结束--------------------------------------------------------------------------------------
            if (chose>0&&chose<6){
                System.out.println("输入0返回!");
                chose=sc.nextInt();
            }else {
                break;
            }
//-----------------------------------------------------------------------------
        }while (chose==0);
        System.out.println("输入0返回!");
    }

}

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

(0)

相关推荐

  • Java实现KFC点餐系统过程解析

    这篇文章主要为大家详细介绍了java实现KFC点餐系统,模拟肯德基快餐店的收银系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零. 2.基本套餐结算和找零. 3.使用优惠劵购买餐品结算和找零. 4.可在一定时间段参与店内活动(自行设计或参考官网信息). 5.模拟打印小票的功能(写到文件

  • Java ʵս��Ŀ֮���ߵ��ϵͳ��ʵ������

    һ����Ŀ���� ���ܰ����� ǰ̨ʵ�֣��û�����˵�����Ʒ����ɸѡ���鿴�˵��� �顢��ӹ��ﳵ�����ﳵ���㡢��Աȯ�����˶�����ѯ�� �ȡ� ��̨ʵ�֣���ϵ�������Ʒ��������������ϵͳ����� �ϼ���Ա����ȡ� ϵͳ��Ϊ���߻����Ա���˿͡���ʦ������Ա�ȵȡ� ������Ŀ���� �������ã� Jdk1.8 + Tomcat8.5 + mysql + Eclispe (Inte

  • java实现KFC点餐系统

    同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零. 2.基本套餐结算和找零. 3.使用优惠劵购买餐品结算和找零. 4.可在一定时间段参与店内活动(自行设计或参考官网信息). 5.模拟打印小票的功能(写到文件中). 类图: 建立IFood接口实现各类食物信息的打印: public interface IFood { /** * 打印输出食物

  • java实现可视化界面肯德基(KFC)点餐系统代码实例

    一.题目 使用java实现可视化KFC点餐系统. 二.题目分析 根据java中的用户图形界面包中的各个类设计界面.利用JFrame提供最大的容器,然后设计各个面板,各个面板中添加所需要的组件,本程序中需要对按钮组件添加监听者,当按下按钮之后做出相应的相应. 对于程序运行显示的第一个界面由一个继承于JFrame的类run类在构造函数中设计并通过函数setVisible(true)显示在界面上,界面上有一个按钮"点餐饮",当此按钮按下时触发响应函数,进入点餐界面,然后通过点击点餐界面各食物

  • Java实现餐厅点餐系统的实例代码

    学习Java实现餐厅点餐系统,本文实现该系统的功能截图,和数据库设计SQL语句,系统功能图,功能优势等供大家参考 1.点餐管理系统背景 随着科技的发展,去饭店吃饭点餐和结账都是以线上操作的形势完成. a.和现在有的系统比较起来,本系统有餐桌管理,菜系管理,菜名管理,订单管理,订单详情等功能. b.和现有系统比较起来,本系统是B/S结构,一般点餐系统为C/S结构,性能方面不如B/S结构,并且C/S接口需要安装客户端,客户端压力很大,我的系统只需要电脑或者手机具有浏览器,在同一局域网就可以进行订餐.

  • Java前后端分离的在线点餐系统实现详解

    项目功能: 此项目分为两个角色:普通用户和管理员.普通用户有登录注册.浏览商品信息.添加购物车.结算订单.查看个人信息.查看个人订单详情等等功能.管理员有管理所有商品信息.管理所有订单信息.管理所有用户信息.查看收益数据图表等等功能. 应用技术:SpringBoot + VueCli + MySQL + MyBatis + Redis + ElementUI 运行环境:IntelliJ IDEA2019.3.5 + MySQL5.7+ Redis5.0.5 + JDK1.8 + Maven3.6

  • Java Swing实现餐厅点餐系统源码(收藏版)

    本文适合Java初级选手,主要技术是Java和MySQL.主要功能如下: (1)注册功能 (2)管理员可以新增套餐 (3)管理员可以管理套餐 (4)管理员可以处理订单 (5)管理员可以修改密码 (6)顾客可以点餐 (7)顾客可以查看订单信息 (8)顾客可以修改个人信息 下面是项目目录 源码有点多,不太好贴,如果需要源码,可以关注公众号[Java技术迷]回复[2021]编号03即是该系统的源码. 即可获取整套源码,也可以直接扫码关注 下面是系统运行图 如果需要源码,可以关注公众号回复[2021]即

  • Java 实战项目之在线点餐系统的实现流程

    一.项目简述 功能包括: 在线点餐,评论,购物车,下单,支付,管理员,店家多 商家管理,后台评论管理,订单管理,商品管理等等. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ mave

  • Java实现简单点餐系统

    用Java实现简单点餐系统,供大家参考,具体内容如下 程序控制分析: 1.欢迎页循环:do-while2.Scanner 控制输入3.选择页循环:switch-case 要求: 订单信息:String 二维数组序号.姓名.餐品名称.份数.价格.总价.地址.时间(10-20).状态(已预定.已完成).热度(int型) 签收订单:改变订单状态,已预定可以签收,如果已经完成则不能再次签收. 删除订单:不能删除未完成订单,序号要随之改变. 我要点赞:对相应的餐品点赞,并展示. package Pract

  • Java实现简单汽车租赁系统

    本文实例为大家分享了Java实现简单汽车租赁系统的具体代码,供大家参考,具体内容如下 需求如下:  问题分析: 首先应当构建一个MotoVehicle的抽象(abstract)类,类里面包含一个brand属性,表示汽车品牌:还包含一个no属性,表示汽车牌号: package cn.jbit.car; public abstract class MotoVehicle { private String no; private String brand; /** * 无参构造方法 */ public

  • C#实现简单点餐系统

    本文实例为大家分享了C#实现简单点餐系统的具体代码,供大家参考,具体内容如下 实现简单点餐系统剖析 1.设计界面(给菜品的序号(index),名称(name),单价(money)加上Tag以便获取此控件中的数据).设计界面所涉及到的控件(FlowLayoutPAnel,label,button) 2.根据菜品数量来添加对应的菜品序号按钮(有几个菜品添加几个按钮)(用到foreach遍历循环) 3.通过2个foreach遍历控件来获取菜品的序号并将菜品的序号添加到按钮中 4.添加按钮单击事件(代码

  • C#框架winform实现简单点餐系统

    本文实例为大家分享了C#框架winform实现简单点餐系统的具体代码,供大家参考,具体内容如下 一.编程思想 1.构思界面并进行设计 2.思考需要用到的控件以及控件需要更改的属性 3.构思将要触发的事件以及部分业务流程 4.通过点击菜品,进行添加,并计算价格 5.界面的美化以及功能的完善 二.编程核心 1.如何获取控件中的内容 2.点击按钮,查找并添加查找的内容 3.添加按钮对应的点击事件 4.如何一次性取出控件中的内容 5.主要用forEach遍历控件 6.数据类型的转换 7.控件Tag属性的

  • java实现简单银行ATM系统

    本文实例为大家分享了java实现简单银行ATM系统的具体代码,供大家参考,具体内容如下 #ATM系统 ##功能 模拟银行ATM机系统,具有注册.登录功能用户登录后可实现以下功能:1)存款 2)取款 3)转账 4)查询 5)退出 ##设计思路 首先,要进行ATM机操作应该具有银行卡和ATM,所以我们要设计一个ATM类和Bankcard类,ATM具有存取款等操作,Bankcard用来记录用户存取款等操作后的越,其次因为ATM同时为多个用户服务,所以我们应该识别每张卡,这里增加一个Bank类来记录银行

  • java实现简单租车系统

    本文实例为大家分享了java实现租车系统Demo,供大家参考,具体内容如下 这也是参考了mooc上的一个基础项目,所以拿来写一下.不过我的Demo肯定有不好或者错误的地方,欢迎指出 1.项目功能/需求 a.展示所有可租车辆 b.选择车型.租车量 c.展示租车清单,包含:总金额.总载货量.总载客量 2.项目系统UML图 3.项目源码Demo Car类 package Car.rental; public class Car { private String name; private int re

  • Java实现简单图书借阅系统

    本文实例为大家分享了Java实现图书借阅系统的具体代码,供大家参考,具体内容如下 为图书阅览室开发一个图书借阅系统,最多可存50本图书,实现图书的管理.图书借阅系统具备以下主要功能. u功能 Ø借出排行榜 Ø新增图书 Ø查看图书 Ø删除图书 Ø借出图书 Ø归还图书 Ø退出 package com.daiinfo.seninorjava.ken8.implentment.utils; import java.text.SimpleDateFormat; import java.util.Calen

随机推荐