java基础项目实战-吃货联盟

java基础项目实战-吃货联盟

项目需求

现今已进入网络时代,人们的日常生活已离不开网络,如网上购物、看新闻、交友等。“只要点点手指,就能送餐上门”,网上订餐越来越受到都是年轻人的青睐。先要求开发一个网上订餐系统,需要实现我要订餐、查看餐袋、签收订单、删除订单、我要点赞和退出系统6个功能。项目运行结果如下所示:
欢迎使用“吃货联盟订餐系统”
***************************************************、
1、我要订餐
2、查看餐袋
3、签收订单
4、删除订单
5、我要点赞
6、退出系统
****************************************************、

项目环境

完成“吃货联盟订餐系统”,对于开发环境的要求如下:
开发工具:IDEA和JDK1.8.0_241
开发语言:java

技能点

程序基本概念:程序、变量、数据类型
流程控制:顺序、选择、循环、跳转语句
数组

代码:

import java.util.*;
/**
 * @Author ZhangPeng
 * @Date 2021/1/13
 * @Description 吃货联盟
 * 注意点:特别谨慎数组下标,防止越界和访问到空指针
 */
public class EatLeague {
    public static void main(String[] args) {
        //欢迎页
        Scanner input = new Scanner(System.in);
        int choose = -1;
        String[] dishes = {"红烧牛肉","开水白菜","福跳墙","蜜汁熊掌"};
        double[] prices = {18,12,68,88};
        int[] honors = {50,100,20,12};
        String[][] orders = new String[1024][];

        do {
            System.out.println("欢迎来到吃货联盟");
            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("请选择:");
            choose = input.nextInt();
            switch (choose){
                case 1:
                    System.out.println("***我要订餐***");
                    System.out.print("请输入订餐人姓名:");
                    String name = input.next();
                    //菜单信息
                    System.out.println("序号\t菜品\t\t单价\t\t点赞数");
                    for (int i  = 0;i < dishes.length;i++){
                        System.out.println(i+1+"\t"+dishes[i]+"\t\t"+prices[i]+"元"+"\t\t" + honors[i]);
                    }
                    int dishnum  = 0;
                    do {
                        System.out.print("请选择你要点的菜品编号:");
                        dishnum  = input.nextInt();
                        if (dishnum < 1 || dishnum > dishes.length){
                            System.out.println("对不起,您的输入有误,请重新输入!");
                        }
                    }while (dishnum < 1 || dishnum > dishes.length);

                    int pcs = 0;
                    do {
                        System.out.print("请输入您要点的份数:");
                        pcs = input.nextInt();
                        if (pcs < 1){
                            System.out.println("对不起,您的输入有误,请重新输入!");
                        }

                    }while (pcs < 1);

                    int time = 0;
                    do {
                        System.out.print("请输入送餐时间(10点到20点整):");
                        time = input.nextInt();
                        if (time < 10 || time > 20){
                            System.out.println("对不起,您的输入有误,请重新输入!");
                        }
                    }while (time < 10 || time > 20);
                    System.out.print("请输入送餐地址:");
                    String addr = input.next();
                    System.out.println("订餐成功!");
                    System.out.println("您定的是:" + dishes[dishnum-1]+"\t"+pcs+"份");
                    System.out.println("送餐时间:" + time + "点");
                    double cost = prices[dishnum-1]*pcs;
                    double sent = cost>50?0:6;
                    double total = cost + sent;
                    System.out.println("餐费:"+cost+"元,送餐费:" + sent + "元,总计:" + total+"元");
                    for (int i = 0;i < orders.length;i++){
                        if (orders[i] == null){
                            orders[i] = new String[2];
                            orders[i][0] = name + "\t" + dishes[dishnum-1] + "\t" + pcs +"份" +"\t"+ time +"点" +"\t"+
                                            addr+"\t"+total+"元";
                            orders[i][1] = "已预订";
                            break;
                        }
                    }
                    break;
                case 2:
                    System.out.println("查看餐袋");
                    System.out.println("序号\t订餐人\t餐品信息\t送餐日期\t送餐地址\t总金额\t订单状态");
                    for (int i = 0;i < orders.length;i++){
                        if (orders[i] != null){
                            System.out.println(i+1+"\t" + orders[i][0] + "\t" + orders[i][1]);
                        }else {
                            break;
                        }
                    }
                    break;
                case 3:
                    System.out.println("***签收订单***");
                    System.out.println("序号\t订餐人\t餐品信息\t送餐日期\t送餐地址\t总金额\t订单状态");
                    for (int i = 0;i < orders.length;i++){
                        if (orders[i] != null){
                            System.out.println(i+1+"\t" + orders[i][0] + "\t" + orders[i][1]);
                        }else {
                            break;
                        }
                    }

                    int num = 0;
                    int end = 0;
                    do {
                        System.out.println("请选择要签收的的订单序号:");
                        for (int i = 0; i < orders.length; i++) {
                            if (orders[i] == null){
                                end = i+1;
                                break;
                            }
                        }
                        num = input.nextInt();
                        if (num < 1 || num >= end){
                            System.out.println("对不起,您的输入有误,请重新输入!");
                        }else if (!("已预订".equals(orders[num-1][1]))){
                            System.out.println("订单已签收,不能重复签收!");
                        }else{
                            orders[num-1][1] = "已完成";
                            break;
                        }

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

                    break;
                case 4:
                    System.out.println("***删除订单***");
                    System.out.println("序号\t订餐人\t餐品信息\t送餐日期\t送餐地址\t总金额\t订单状态");
                    for (int i = 0;i < orders.length;i++){
                        if (orders[i] != null){
                            System.out.println(i+1+"\t" + orders[i][0] + "\t" + orders[i][1]);
                        }else {
                            break;
                        }
                    }

                    int n = 0;
                    int e = 0;
                    do {
                        for (int i = 0; i < orders.length; i++) {
                            if (orders[i] == null){
                                e=i;
                                break;
                            }
                        }
                        System.out.println("请选择要删除的的订单序号:");
                        n = input.nextInt();
                        if (n < 1 || n > e ){
                            System.out.println("对不起,您的输入有误,请重新输入!");
                        }else if (!"已完成".equals(orders[n - 1][1])){
                            System.out.println("未完成订单不能删除!");
                        }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;
                                    }
                                }

                            }
                            if (isDelete){
                                break;
                            }

                        }

                    }while (n < 1 || n > e || !"已完成".equals(orders[n - 1][1]));
                    System.out.println("订单删除成功!");
                    break;
                case 5:
                    System.out.println("***我要点赞***");
                    System.out.println("序号\t菜品\t\t单价\t\t点赞数");
                    for (int i  = 0;i < dishes.length;i++){
                        System.out.println(i+1+"\t"+dishes[i]+"\t"+prices[i]+"元"+"\t" + honors[i]);
                    }

                    int id = 0;
                    do {
                        System.out.println("请输入要点赞的菜品序号:");
                        id = input.nextInt();
                        if (id < 1 || id > honors.length){
                            System.out.println("对不起,您的输入有误,请重新输入!");
                        }else {
                            honors[id - 1] += 1;
                            break;
                        }

                    }while (id < 1 || id > honors.length);
                    System.out.println("点赞成功!!!");
                    break;
                default:
            }
            if (choose > 0 && choose < 6){
                System.out.println("输入0返回:");
                choose = input.nextInt();
            }else {
                break;
            }

        }while (choose == 0);
        System.out.println("谢谢惠顾,下次光临!");
    }
}

效果图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值