Java基础——第八章 吃货联盟

1. 系统应包含以下功能:

    • 我要订餐:用户可以输入姓名、选择菜品、份数、地址和时间进行订餐,并显示订单信息。
    • 查看餐袋:用户可以输入订单序号查看自己的订单详情。
    • 签收订单:用户可以输入订单序号进行订单签收。
    • 删除订单:用户可以输入订单序号删除已签收的订单。
    • 我要点赞:用户可以为喜欢的菜品点赞,系统显示点赞数。
    • 退出系统:用户可以选择退出系统。

2. 系统应能处理以下数据:

    • 菜品名称和单价。
    • 订单信息,包括姓名、菜品、份数、总价、地址、时间和状态。

3. 系统应具备以下逻辑:

    • 订单未签收时不能删除。
    • 订单状态分为已签收和未签收。
    • 用户点赞后,对应菜品的点赞数增加。

4. 设计思路:

5. 代码如下:

import java.sql.SQLOutput;
import java.util.Scanner;

// 按两次 Shift 打开“随处搜索”对话框并输入 `show whitespaces`,
// 然后按 Enter 键。现在,您可以在代码中看到空格字符。
public class Main {
    public static void main(String[] args) {
        //数据
        String[][] infor = new String[1000][7];   //存储订单信息  0 姓名   1 菜品   2 份数   3 总价  4 地址  5 时间  6 状态
        String[] menu = {"鱼香肉丝", "红烧茄子", "油闷大虾", "糖醋排骨"};  //菜品名称
        double[] price = {25, 26, 27, 28};         //菜品单价
        int[] zan = {0, 0, 0, 0};                  //菜品点赞数
        int z = 0;                              //保存订单序号
        Scanner sc = new Scanner(System.in);
        System.out.println("欢迎使用吃货联盟订餐系统");
        while (true) {
            //显示菜单
            int xz;
            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("请选择:");
            xz = sc.nextInt();
            switch (xz) {
                //订餐
                case 1:
                    System.out.println("***我要订餐***");
                    System.out.println("序号        菜品        单价       点赞");
                    for (int i = 0; i < menu.length; i++) {
                        System.out.println((i + 1) + "        " + menu[i] + "      " + price[i] + "        " + zan[i]);
                    }
                    System.out.print("请输入姓名:");
                    infor[z][0] = sc.next();
                    System.out.print("请选择您要定的菜品序号:");
                    infor[z][1] = sc.next();
                    System.out.print("请选择您要定的菜品份数:");
                    infor[z][2] = sc.next();
                    System.out.print("请选择您要定的菜品地址:");
                    infor[z][4] = sc.next();
                    System.out.print("请选择您要定的菜品时间:");
                    infor[z][5] = sc.next();
                    infor[z][6] = "0";
                    System.out.println("序号      订餐人         菜品       份数       总价       地址       时间     状态");
                    for (int i = z; i <= z;i++){
                        for (int j = 0 ;j < infor[i].length;j++){
                            if(j == 3){
                                //计算总价,由于这里使用的是String数组,所以进行计算的时候需要进行强制类型转换
                                infor[i][3] = "" + (Integer.valueOf(infor[i][2]) * price[Integer.valueOf(infor[i][1]) - 1]);
                                //输出总价
                                System.out.print("        " + infor[i][3]);
                            }else if (j == 0){
                                System.out.print((i + 1) + "         " + infor[i][j]);
                            }else if(j == 1){
                                //menu[Integer.valueOf(infor[i][1]) - 1]  这里由于使用String数组来存储的所选菜品的序号,所以这里也是强制类型转换来获取编号之后,获取菜品名称
                                System.out.print("        " + menu[Integer.valueOf(infor[i][1]) - 1]);
                            } else if (j == infor[i].length -1) {
                                System.out.println("          " + infor[i][j] );
                            } else {
                                System.out.print("       " + infor[i][j]);
                            }
                        }

                    }
                    z++;
                    break;
                case 2:
                    //查看餐袋
                    System.out.println("***查看餐袋***");
                    System.out.println("请输入你要查看餐袋的订单序号:");
                    int i = sc.nextInt();
                    if ("".equals(infor[i-1][0])){
                        System.out.println("您还未点餐或订单已被删除");
                    }else{
                        System.out.println("序号      订餐人         菜品       份数       总价       地址       时间     状态");
//                    for (int i = sc.nextInt(); i <= z;i++) {
                        for (int j = 0; j < infor[i-1].length; j++) {
                            if (j == 3) {
                                infor[i-1][3] = "" + (Integer.valueOf(infor[i-1][2]) * price[Integer.valueOf(infor[i-1][1]) - 1]);
                                System.out.print("        " + infor[i-1][3]);
                            } else if (j == 0) {
                                System.out.print((i) + "         " + infor[i-1][j]);
                            } else if (j == 1) {
                                System.out.print("        " + menu[Integer.valueOf(infor[i-1][1]) - 1]);
                            } else if (j == infor[i].length - 1) {
                                System.out.println("          " + infor[i-1][j]);
                            } else {
                                System.out.print("       " + infor[i-1][j]);
                            }
                        }
                    }

//                    }
                    break;
                case 3:
                    System.out.println("***签收订单***");
                    System.out.println("请输入你要签收的订单序号:");
                    i = sc.nextInt();
                    int len = infor[i-1].length;
                    infor[i-1][len-1] = "1";
                    System.out.println("您的订单已签收!!!");
                    System.out.println("序号      订餐人         菜品       份数       总价       地址       时间     状态");
//                    for (int i = sc.nextInt(); i <= z;i++) {
                    for (int j = 0; j < infor[i-1].length; j++) {
                        if (j == 3) {
                            infor[i-1][3] = "" + (Integer.valueOf(infor[i-1][2]) * price[Integer.valueOf(infor[i-1][1]) - 1]);
                            System.out.print("        " + infor[i-1][3]);
                        } else if (j == 0) {
                            System.out.print((i) + "         " + infor[i-1][j]);
                        } else if (j == 1) {
                            System.out.print("        " + menu[Integer.valueOf(infor[i-1][1]) - 1]);
                        } else if (j == infor[i].length - 1) {
                            System.out.println("          " + infor[i-1][j]);
                        } else {
                            System.out.print("       " + infor[i-1][j]);
                        }
                    }
//                    }
                    break;
                case 4:
                    //删除订单
                    System.out.println("***删除订单***");
                    System.out.println("请输入你要删除的订单序号:");
                    i = sc.nextInt();
                    len = infor[i-1].length;
                    if(!"1".equals(infor[i-1][len-1])){
                        System.out.println("您的订单未签收,还不能删除!!!");
                    }else {
                        for (int j = 0; j < infor[i-1].length; j++) {
                            infor[i-1][j] = "";
                        }
                        System.out.println("您的订单已删除!!!");
                    }
                    break;
                case 5:
                    System.out.println("***我要点赞***");
                    System.out.println("序号        菜品        单价       点赞");
                    for (int l = 0; l < menu.length; l++) {
                        System.out.println((l + 1) + "        " + menu[l] + "      " + price[l] + "        " + zan[l]);
                    }
                    System.out.println("请选择您要点赞的菜品序号");
                    int g = sc.nextInt();
                    zan[g-1]++;
                    System.out.println("点赞成功!!!");
                    break;
                default:
            }
            if (xz == 6) {
                System.out.println("谢谢使用,欢迎下次光临");
                break;
            } else {
                System.out.print("输入0返回:");
//                System.out.println(z);
                xz = sc.nextInt();
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值