package cn.bdqn.demo03;

import java.util.Scanner;

public class 吃货联盟01 {

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];  //总金额
        
        //初始化两条订单信息
        names[0] ="赵臣豪";
        dishMegs[0]="澳洲龙虾";
        times[0]=11;
        addresses[0]="公投创智";
        states[0]=1; //已完成
        sumPrices[0]=45000.0;
        
        names[1] ="梁晓龙";
        dishMegs[1]="烤全羊";
        times[1]=11;
        addresses[1]="公投创智";
        states[1]=0;
        sumPrices[1]=1888.0;
        
        String[] dishnames={"澳洲龙虾","烤全羊","地锅鸡"};
        double[] prices={45.0,1888.0,70.0};
        int[] praiseNums=new int[3];
        
        
        /*循环用do-while循环
         * 循环操作:
         * 显示主菜单
         * 提示用户输入功能编号,并执行相应功能
         * 提示输入0返回
         * 循环条件:
         * 输入0                  
         */
        
        Scanner sc=new Scanner(System.in);
        int num=-1;  //记录用户输入的数字
        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("请选择");
            int choose=sc.nextInt();
            
            boolean isAdd=false;    //true记录找到一个空的位置,可译插入;false表示没有找到
            switch(choose){
            case 1:   //1我要订餐
                System.out.println("1.我要订餐");
                //1查找要插入的位置
                for (int i = 0; i < names.length; i++) {
                    //如果找到空的位置,记录下来
                    if(names[i]==null){
                        isAdd= true;
                        //执行插入操作
                    //a.显示所有可提供的餐品信息
                        System.out.println("序号\t餐品名\t单价\t点赞数");
                for (int j = 0; j < dishnames.length; j++) {
                    String price=prices[j]+"元";
                    String praise=praiseNums[j]+"赞";
                            System.out.println((j+1)+"\t"+dishnames[j]+"\t"+price+"\t"+praise);
                    
                }
                //a输入所选餐品编号和份数
                System.out.println("请选择所订的餐品序号:");
                int chooseDish=sc.nextInt();
                System.out.println("请选择所订份数");
                int number=sc.nextInt();
                String dishMeg= dishnames[chooseDish-1]+" "+number+"份 ";
                
                //b输入订餐人姓名
                System.out.println("请输入订餐人姓名");
                String name=sc.next();
                
                //c输入送餐时间
                System.out.println("请输入送餐时间 10-23点整点送餐");
                int time=sc.nextInt();
                //如果输入错了,请重新输入
                if(time<10||time>23){
                    System.out.println("对不起,您输入有误。请输入10-23点送餐时间");
                    time=sc.nextInt();
                }
                
                //d:输入送餐地址
                System.out.println("请输入送餐地址");
                String address=sc.next();
                
                //e:计算餐费
                double sumPrice=prices[chooseDish-1]*number;
                //送餐费:但达到50元时免配送费6元
                double deliCharge=sumPrice>=50?0.0:6.0;
                
                //显示订单信息
                System.out.println("订单成功");
                System.out.println("您订的是:"+dishMeg);
                System.out.println("订餐人"+name);
                System.out.println("送餐时间"+time+"点 ");
                System.out.println("送餐地址"+address);
                System.out.println("餐费"+sumPrice+",送餐费"+deliCharge+"元");
                System.out.println("总金额:"+(sumPrice+deliCharge)+" 元");
                
                //保存数据
                names[i]=name;
                dishMegs[i]=dishMeg;
                times[i]=time;
                addresses[i]=address;
                sumPrices[i]=sumPrice+deliCharge;
            
                        break;
                    }     
                }
                if(!isAdd){
                    System.out.println("对不起,您的餐袋已满");
                }
                
                break;
            case 2:        //2查看餐袋
                System.out.println("------查看餐袋------");
                System.out.println("序号\t订餐人\t所订餐品信息\t送餐时间\t送餐地址\t总金额\t状态");
                //遍历数组
                for (int j = 0; j < names.length; j++) {
                    if(names[j]!=null){
                    String time=times[j]+"点";
                    String sumPrice=sumPrices[j]+"元";
                    String state=states[j]==0?"已预定":"已完成";
                    System.out.println((j+1)+"\t"+names[j]+"\t"+dishMegs[j]+"\t\t"+time+"\t"+addresses[j]+"\t"+sumPrice+"\t"+state);
                }
                
                }
                
                break;    
            case 3:            //3签收订单
                    System.out.println("------签收订单------");
                //用户输入一个签收的订单序号
                    System.out.print("请输入要签收的订单序号");
                int sigOrderId=sc.nextInt();
                boolean isFind=false;        //记录是否找到了这条订单 true:已找到 false:没有找到 查找这条订单(循环遍历)
                for (int j = 0; j < names.length; j++) {
                    //找到,状态是已完成(已经签收完毕),提示不能再次签收
                    //找到,状态是已预定(没有完成签收),可以签收
                    if(names[j]!=null && states[j]==1 && sigOrderId==j+1){                    
                        System.out.println("对不起,您选择的订单已经完成签收,不能再次签收");
                        isFind=true;
                        break;
                    }else if(names[j]!=null && states[j]==0 && sigOrderId==j+1){
                        states[j]=1;        
                        System.out.println("订单签收成功");
                        isFind=true;
                        break;
                    }
                }
                //条件判断:如果没有找到这条顶单,才去提示没有找到
                //3没找到,提示信息没有找到
                
                if(!isFind){
                    System.out.println("对不起,此订单不存在");
                }
                
                break;
            case 4:        //4删除订单
                //1输入要删除的订单序号(从1开始)
                    System.out.println("------删除订单------");
                    System.out.println("请输入你要删除的订单序号:");
                int delId=sc.nextInt();
                int delIndex=-1;        //删除订单的下标
                
                boolean isDelFind=false;
                //2.循环查找这条订单
                for (int i = 0; i < names.length; i++) {
                    //找到此订单,已签收,执行删除操作(先记录要删除的订单序号)    
                    //找到此订单,且未签收:提示信息
                    if(names[i]!=null && states[i]==1 && delId==i+1){
                        delIndex=i;
                        isDelFind=true;
                        break;
                        
                    }else if(names[i]!=null && states[i]==0 && delId==i+1){
                        System.out.println("您选择的订单未签收,不能删除");
                        isDelFind=true;
                        break;
                    }
                    
                }
                //    未找到此订单,提示信息
                if(!isDelFind){
                    System.out.println("对不起,此条订单不存在");
                }
                //执行删除操作
                if(delIndex!=-1){
                    //删除操作(循环移位)
                    //从要删除的元素后面一个开始,到数组最后一个元素一次向前移动一位
                for (int i = delIndex+1; i <= names.length-1; i++) {
                    names[i-1]=names[i];
                    dishMegs[i-1]=dishMegs[i];
                    times[i-1]=times[i];
                    addresses[i-1]=addresses[i];
                    states[i-1]=states[i];
                    
                }
                //最后一位清空
                    names[names.length-1]=null;
                    dishMegs[names.length-1]=null;
                    times[names.length-1]=0;
                    addresses[names.length-1]=null;
                    states[names.length-1]=0;
                    System.out.println("删除订单成功");
                    
                }
                
                break;
                
            case 5:        //5我要点餐
                //1.我要点赞
                System.out.println("------我要点赞------");
                //2.显示供点赞的餐品列表
                System.out.println("序号\t餐品名\t单价\t点赞数");
                
            
                        
                    
                        
                for (int j = 0; j < dishnames.length; j++) {
                    String price=prices[j]+"元";
                    String praise=praiseNums[j]+"赞";
                    System.out.println((j+1)+"\t"+dishnames[j]+"\t"+price+"\t"+praise);
                            
                            
                        }
                //3.输入要点赞的餐品序号
                System.out.println("请输入要点赞的餐品序号");
                    int dishId=sc.nextInt();
                //4.该序号的餐品点赞数加1
                praiseNums[dishId-1]++;
                //5.显示
                System.out.println("点赞成功");
                System.out.println(dishnames[dishId-1]+" " +praiseNums[dishId-1]+"赞");
                
                break;
            case 6:        //退出系统
                break;
                
                default:
                    break;
            
            
        }
            if(choose>=6){
                System.out.println("谢谢使用,欢迎下次光临");
            }
            System.out.println("输入0返回:");
                num=sc.nextInt();
                
        }while(num==0);

}

}

Java实现一个订餐外卖系统相关推荐

  1. 基于JAVA的网上订餐外卖系统(Java+MySQL)

    基于JAVA的网上订餐外卖系统(Java+MySQL)-编号:jsp0812 美食是人类永恒的话题,无论是在古代还是现代人们对美食都有一种非常的热爱在里面,但是随着时代的发展,人们可能没有更多的时间去 ...

  2. 基于JAVA的网上订餐外卖系统-计算机毕业设计

    项目介绍 美食是人类永恒的话题,无论是在古代还是现代人们对美食都有一种非常的热爱在里面,但是随着时代的发展,人们可能没有更多的时间去研究美食,很多时候人们在下班或者放学之后更希望通过网络来进行订餐,为 ...

  3. Java项目:基于JAVA的网上订餐外卖系统(计算机毕业设计)

    美食是人类永恒的话题,无论是在古代还是现代人们对美食都有一种非常的热爱在里面,但是随着时代的发展,人们可能没有更多的时间去研究美食,很多时候人们在下班或者放学之后更希望通过网络来进行订餐,为此我开发了 ...

  4. Java毕设项目校园外卖系统Web端计算机(附源码+系统+数据库+LW)

    Java毕设项目校园外卖系统Web端计算机(附源码+系统+数据库+LW) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ ...

  5. 用Java模拟一个银行ATM系统

    用Java模拟一个银行ATM系统 系统功能介绍: 全部代码 示例截图 系统功能介绍: 使用面向对象的编程思想,尽可能模拟真实世界中的银行ATM业务流程. main方法里通过调用一行代码,完成整个业务流 ...

  6. 用java实现一个汽车租赁系统

    用java实现一个汽车租赁系统 题目如下 1.汽车租赁信息表如下 2.类和属性 3.运行效果图如下: 实现过程如下 1.首先把类创建好,并且把成员属性设置好 如下图 2.然后因为座位数和型号是客车类和 ...

  7. Java开发的校园外卖系统源码小程序app

    校园外卖系统的基本流程和功能模块: 校园外卖系统一般包含用户端和商家端两个应用,它们可以联合起来实现校园餐饮的订餐和配送等服务.其中,用户端通常支持在线浏览餐厅信息.选择菜品.下单.支付.评价等功能, ...

  8. 用Java编写一个工资支付系统

    工资支付系统: 要求:为某公司编写一个工资支付系统,用于计算某一类员工的月薪.该公司共有四类员工:领固定月薪的(SalariedEmployee):计时取酬的(HourlyEmployee,如果一月工 ...

  9. 计算机毕业设计中用Java编写一个订餐系统(JAVA SWING)

    一. 开发技术 JDK:JDK1.8,JDK是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+J ...

最新文章

  1. C++中MessageBox的常见用法
  2. 用Ajax 构建关键任务的企业级Web 应用 ——《深入 Ajax :架构与最佳实践》
  3. OpenGL 网格Mesh
  4. 高一计算机组装,高中生计算机组装与维护,呼市新华互联网学校
  5. 励遍图块中的实体_如何删除CAD中的顽固图层?【AutoCAD教程】
  6. Java程序在命令行的编译运行
  7. RabbitMQ教程总结
  8. Arrays工具、二维数组以及LeetCode练习题
  9. 快速理解 IdentityServer4 中的认证 授权
  10. L2-016 愿天下有情人都是失散多年的兄妹 (25 分)深度优先遍历
  11. 响应式Web设计:HTML5和CSS3实战
  12. 音频处理贤内助--libsndfile
  13. 从键盘输入某年某月某日,判断这一天是这一年的第几天啊?
  14. 每日一题:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
  15. excel 中vb组合框_Excel数据验证组合框代码
  16. 硬件使用74hc138的C语言程序,【Arduino教程】第三十一讲:74HC138实验
  17. macos U盘引导安装
  18. 从零开始学android:Android中的基本控件(上)
  19. 自己总结的HTMLcss
  20. android实现gif背景透明,透明GIF在Android ImageView

热门文章

  1. 计算机音乐的感想,音乐教师工作心得体会(精选7篇)
  2. MFC应用的菜单,工具栏和状态栏(vs2019)
  3. UltraEdit 注册码
  4. Lottie- 让Android动画实现更简单
  5. 【老生谈算法】matlab算法离合器——离合器
  6. python中的socketserver模块与多线程
  7. 姜数学模型——包饺子案例
  8. Day213.讲师详细页、课程列表页面、课程详细页、阿里云视频播放测试、阿里云云视频播放器 -谷粒学院
  9. 宝马将自动驾驶和打车服务结合,最快明年在德国上路
  10. 麦克风阵列声音定位简介【转】