吃货商场

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
import java.util.Scanner;
 
public class eattingShop {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        //--------------------------------------------------------------------------------------------------------------
        //订餐人
        String names[]= new String[4];
        //订餐信息
        String dishMegs[] = new String[4];
        //时间
        int times[] = new int[4];
        //地址
        String address[] = new String[4];
        //状态
        int status[] = new int[4];//0:完成 1:预定
        //价格
        double prices[] = new double[4];
        //--------------------------------------------------------------------------------------------------------------
        //给数组一个初始值
        names[0] = "张三";
        dishMegs[0] = "鱼香肉丝";
        times[0] = 12;
        address[0] = "半圆";
        status[0] = 1;
        prices[0] = 13;
 
        names[1] = "李四";
        dishMegs[1] = "西红柿炒鸡蛋";
        times[1] = 12;
        address[1] = "教室";
        status[1] = 0;
        prices[1] = 15;
        //--------------------------------------------------------------------------------------------------------------
        //声明菜单数组
        //菜名
        String dishMeg[] = {"红烧带鱼","西红柿炒蛋","剁椒鱼头"};
        //价格
        double price[] = {38,22,56};
        //点赞数量
        int zan[] = new int[4];
        //--------------------------------------------------------------------------------------------------------------
        boolean isExit = false;
        int m;
        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.print("请选择:");
            m=1;
            //isMan代表菜单是否满了,我们给他的默认值是没有。
            boolean isMan = false;
            //定义一个名为isFind的布尔值,默认为false就是找不到编号,如果for中找到了合适的值;则将其赋值ture
            boolean isFind = false;
            //定义布尔值,用来判断case4中如果找不到用户输入数据的情况。
            boolean isDel = false;
 
            int choose = input.nextInt();
            switch (choose){
                //------------------------------------------------------------------------------------------------------
                case 1:
                    System.out.println("**我要订餐**");
                    for (int i=0;i<names.length;i++){
                        //这里需要判断name数组里的满足有没有溢出,如果没有才可以继续
                        if (names[i]==null){
                            isMan = true;
                            System.out.print("请输入订餐人姓名:");
                            String name = input.next();
                            //遍历菜单
                            System.out.println("序号\t菜品\t单价(元)\t点赞数");
                            for (int j=0;j<dishMeg.length;j++){
                                //输出菜单
                                System.out.println((j+1)+"\t"+dishMeg[j]+"\t"+price[j]+"\t"+zan[j]);
                            }
                            System.out.print("请选择菜品编号:");
                            int caiBianHao = input.nextInt();
                            //dish为菜名字
                            String dish = dishMeg[caiBianHao-1];
 
                            //填写份数
                            System.out.print("份数:");
                            int fenShu = input.nextInt();
 
                            //计算价格有两个1:菜价2:运输费
                            double pri = price[caiBianHao-1];
                            double p = pri>50 ? 0 : 5;
 
                            //送餐时间
                            System.out.println("送餐时间(10~20点)");
                            int time = input.nextInt();
                            while (time<10 || time>20){
                                System.out.println("sorry,不在送餐时间内,重新输入:");
                                //重新输入
                                time = input.nextInt();
                            }
 
                            //地址的输入
                            System.out.println("地址:");
                            String addre = input.next();
                            System.out.println("订餐成功");
 
                            //输出填写的菜单信息
                            System.out.println("您定的是:"+dish+fenShu+"份");
                            System.out.println("送餐时间是:"+time+"时");
                            System.out.println("总费用为:"+pri+"快递费为:"+p+"总计:"+(pri+p)+"元");
 
                            //将点单信息添加到餐代数组中
                            names[i] = name;
                            dishMegs[i] = dish;
                            times[i] = time;
                            //默认给1为已预定
                            status[i] = 1;
                            address[i] = addre;
                            prices[i] = pri+p;
                            break;
                        }
                    }
                    //判断如果满了,这里isMan的默认值为false 则取反
                    if (!isMan){
                        System.out.println("不好意思,餐袋已满");
                    }
                    break;
                //------------------------------------------------------------------------------------------------------
                case 2:
                    System.out.println("**查看餐代**");
                    System.out.println("序号\t订餐人\t餐品信息\t送餐日期\t地址\t总金额\t状态");
                    //遍历names数组
                    for (int i=0;i<names.length;i++){
                        if (names[i]!=null){
                            //打印餐代内容
                            String time = times[i]+"时";
                            String pric = prices[i]+"时";
                            String sta = status[i]==0?"已完成":"已预定";
                            System.out.println((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+time+"\t"+address[i]+"\t"+pric+"\t"+sta+"\t");
                        }
                    }
                    break;
                //------------------------------------------------------------------------------------------------------
                case 3:
                    System.out.println("**签收订单**");
                    System.out.println("请输入需要签收的订单序号:");
                    int qianShou = input.nextInt();
                    //遍历names数组找到所有订单的信息判断订单状态输出相应语句
                    for (int i=0;i<names.length;i++){
                        //判断name不为空,且状态是预约状态,并且和输入的签收单号一致
                        if (names[i]!=null && status[i]==1 && qianShou == i+1){
                            isFind = true;
                            System.out.println("签收完成");
                            //else if用来判断订单状态为已签收
                        }else if(names[i]!=null && status[i]==0 && qianShou == i+1){
                            isFind = true;
                            System.out.println("已经签收不可重复签收");
                        }
                    }
                    if (!isFind){
                        System.out.println("不好意思 没找到您需要签收的订单");
                    }
                    break;
                //------------------------------------------------------------------------------------------------------
                case 4:
                    System.out.println("**删除订单**");
                    System.out.println("请输入删除订单的序号:");
                    int del = input.nextInt();
                    //遍历数组的内容
                    for (int i = 0;i<names.length;i++){
                        //判断删除条件,必须是有值,且状态为未完成,且下标要和输入的del-1相对应!
                        if (names[i]!=null && status[i]==0 && del==i+1){
                            //进入if循环就代表已经找到数据了则将isdel赋值为true
                            isDel = true;
                            //删除:从输入的del-1的下标开始到末尾结束length-1
                            for (int j=del-1;j<names.length-1;j++){
                                //将被删除数据的下一个数据挪到被删除数据的下标空间中
                                names[j]=names[j+1];
                                dishMegs[j]=dishMegs[j+1];
                                times[j]=times[j+1];
                                address[j]=address[j+1];
                                status[j]=status[j+1];
                                prices[j]=prices[j+1];
                            }
                            //数据转移结束后,出现倒数第二和倒数第一个数据是一样的,则需要将最后一个数据赋值为空。
                            names[names.length-1]=null;
                            dishMegs[names.length-1]=null;
                            times[names.length-1]=0;
                            address[names.length-1]=null;
                            status[names.length-1]=0;
                            prices[names.length-1]=0;
                            System.out.println("删除成功!");
                            break;
                            //在else if 中需要判断数据状态为未完成时的情况
                        }else if (names[i]!=null && status[i]==1 && del==i+1){
                            isDel = true;
                            System.out.println("订单还未完成!不能删除!");
                            break;
                        }
                    }
                    //判断如果没有找到则输出不存在
                    if (!isDel){
                        System.out.println("您需要删除的订单不存在");
                    }
                    break;
                //------------------------------------------------------------------------------------------------------
                case 5:
                    System.out.println("**我要点赞**");
                    System.out.println("序号\t菜品\t单价(¥)\t点赞数\t");
                    for (int j=0;j<dishMeg.length;j++){
                        System.out.println((j+1)+"\t"+dishMeg[j]+"\t"+price[j]+"\t"+zan[j]+"\t");
                    }
                    System.out.println("请选择需要点赞商品的编号:");
                    int n = input.nextInt();
                    zan[n-1]++;
                    System.out.println("点赞成功!!");
                    break;
                //------------------------------------------------------------------------------------------------------
                case 6:
                    System.out.println("**退出系统**");
                    isExit = true ;
                    break;
                //------------------------------------------------------------------------------------------------------
                default:
                    System.out.println("**退出系统**");
                    isExit = true;
                    break;
            }
            //----------------------------------------------------------------------------------------------------------
            if (!isExit){
                System.out.print("输入0返回(若输入其他数则结束系统):");
                m = input.nextInt();
            }
        }while(m == 0);
    }
}

  

posted @   ttsx123  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示