千家信息网

如何使用Java实现简单点餐系统

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,小编给大家分享一下如何使用Java实现简单点餐系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!程序控制分析:1、欢迎页循
千家信息网最后更新 2024年11月24日如何使用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返回!");    }}

以上是"如何使用Java实现简单点餐系统"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0