Java基础应用--吃货联盟订餐系统

总体框架流程图

在这里插入图片描述

Created with Raphaël 2.2.0 开始 弹出主界面, 提示选择输入1~6; 输入数字>=6 结束 跳转到数字n的界面, 输入数字0跳回主界面 输入数字0 yes no

1.我要订餐

Created with Raphaël 2.2.0 开始 弹出菜单列表+价格 提示用户输入信息: 姓名,餐品,份数,时间,送货地址, 弹出订餐结果: 姓名,餐品,份数,时间,送货地址,配送费,合计,状态 (状态后面要改) 结束

1.可以把所有信息挨个用数组存储后输出,然后再输出。
这里只用数组存储餐品,方便输出。然后“姓名、餐品、份数、时间、送货地址、配送费”统一转换成字符串,放到二位数组的第一位;而状态要放到二位数组的第二位(分开用2个一维数组也可以);
2.考虑用户输入错误的问题:餐品序号/时间可能输入错误,错误的话,要跳转回去要求重新输入:
比如餐品序号:

Created with Raphaël 2.2.0 开始 输入餐品序号n n-1未超界 结束 yes no

2.查看餐袋

直接输出1.0里的二维数组即可,输入0返回主界面;

3.签收订单

需要先遍历二维数组,确认非空元素个数,也就是订单个数,防止输入的数字超界;

Created with Raphaël 2.2.0 开始 弹出订餐信息列表 提示输入需要签收 的订单序号n n-1未超界而且 n-1未被签收 更改“已预订”为“已完成” 结束 yes no

4.删除订单

Created with Raphaël 2.2.0 开始 弹出订餐信息列表 提示输入需要删除 的订单序号n n-1未超界而且 n-1已被签收 弹出删除后的订餐信息列表 结束 yes no

5.我要点赞

Created with Raphaël 2.2.0 开始 弹出各菜品现有的点赞数 提示输入要点赞 的菜品序号 n未超界 第n道菜品的点赞数++ 弹出各菜品的现在点赞数 结束 yes no

完整java代码如下:

下面展示一些 内联代码片

import java.util.Scanner;
import java.util.Arrays;
public class Zuoye1 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int cdh=0;
        String[]dishes={"炒方便面","红烧熊掌","干锅鱼翅","爆炒鹅肝"};
        int[]price={100,50,60,66};
        int[]good={100,50,60,40};
        int sent=10;//配送费;
        String[][]list=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("请输入菜单序号:");
            cdh=sc.nextInt();
            switch(cdh){
                case 1:
                    System.out.println("我要订餐");//一次只允许录入一组信息,想要录入下一组,需要返回主界面重新进来
                    for (int i = 0; i < dishes.length; i++) {
                        System.out.println((i+1)+"  "+dishes[i]);
                    }
                    System.out.print("请输入姓名:");
                    String name=sc.next();
                    int num=1;
                    do{
                        System.out.print("请输入餐品序号:");
                        num=sc.nextInt();
                        if(num<1||num>dishes.length){
                            System.out.println("数据输入有误!");
                        }
                    }while(num<1||num>dishes.length);
                    System.out.print("请输入份数:(正整数)");
                    int fenshu=sc.nextInt();
                    int time=0;
                    do {
                        System.out.print("请输入时间:(在10~20之间的整数)");
                        time = sc.nextInt();
                        if(time<10||time>20){
                            System.out.println("数据输入有误!");
                        }
                    }while(time<10||time>20);
                    System.out.print("请输入送货地址:");
                    String address=sc.next();
                    for (int i = 0; i < list.length; i++) {//存储订餐信息
                        if(list[i]==null){
                            list[i]=new String[2];//这一步是啥意思?二维数组中的一维数组在开始时候未指定长度;
                            list[i][0]=(i+1)+"\t"+name+"\t"+dishes[num-1]+"\t"+fenshu+
                                    "\t"+time+"\t"+address;
                            list[i][1]="已预订";
                            break;
                        }
                    }
                    System.out.println("序号\t姓名\t餐品\t份数\t送餐时间\t送货地址\t状态");
                    for (int i = 0; i < list.length; i++) {//输出订餐信息
                        if(list[i]==null){
                            break;
                        }else{
                            System.out.println(list[i][0]+list[i][1]);
                        }
                    }
                    break;
                case 2:
                    System.out.println("查看餐袋");
                    System.out.println("序号\t姓名\t餐品\t份数\t送餐时间\t送货地址\t状态");
                    for (int i = 0; i < list.length; i++) {//输出订餐信息
                        if(list[i]==null){
                            break;
                        }else{
                            System.out.println(list[i][0]+list[i][1]);
                        }
                    }
                    break;
                case 3:
                    System.out.println("签收订单");
                    System.out.println("序号\t姓名\t餐品\t份数\t送餐时间\t送货地址\t状态");
                    for (int i = 0; i < list.length; i++) {//输出订餐信息
                        if(list[i]==null){
                            break;
                        }else{
                            System.out.println(list[i][0]+list[i][1]);
                        }
                    }
                    int changdu=0;
                    for (int i = 0; i < list.length; i++) {//遍历二维数组,确认已有订单的长度;
                        if (Arrays.equals(list[i], null)) {
                            changdu = i;
                            break;
                        }
                    }
                        System.out.println("一共有"+changdu+"个定单");
                    int qianshou=1;
                    do {
                        System.out.println("请输入需要签收的订单号:(请输入正整数)");
                        qianshou=sc.nextInt();
                        if(qianshou<1||qianshou>changdu){
                            System.out.println("数据输入有误!");
                        }else if(list[qianshou-1][1].equals("已完成")){
                            System.out.println("不能签收已完成的订单!");
                        }else{
                            list[qianshou-1][1]="已完成";
                            break;
                        }
                    }while(qianshou<1||qianshou>changdu||list[qianshou-1][1].equals("已完成"));
                    break;
                case 4:
                    System.out.println("删除订单");
                    System.out.println("序号\t姓名\t餐品\t份数\t送餐时间\t送货地址\t状态");
                    for (int i = 0; i < list.length; i++) {//输出订餐信息
                        if(list[i]==null){
                            break;
                        }else{
                            System.out.println(list[i][0]+list[i][1]);
                        }
                    }
                    int changdu2=0;
                    for (int i = 0; i < list.length; i++) {//遍历二维数组,确认已有订单的长度;
                        if (Arrays.equals(list[i], null)) {
                            changdu2 = i;
                            break;
                        }
                    }
                    System.out.println("一共有"+changdu2+"个定单");
                    int shanchu=1;
                    do {
                        System.out.println("请输入需要删除的订单号:(请输入正整数)");
                        shanchu=sc.nextInt();
                        if(shanchu<1||shanchu>changdu2){
                            System.out.println("数据输入有误!");
                        }else if(list[shanchu-1][1].equals("已预订")){
                            System.out.println("不能删除未完成的订单!");
                        }else{
                            if(shanchu==list.length+1){
                                list[shanchu-1]=null;
                            }else{
                                for (int j = shanchu-1; j < list.length-1; j++) {
                                    list[j]=list[j+1];
                                }
                            }
                            break;
                        }
                    }while(shanchu<1||shanchu>changdu2||list[shanchu-1][1].equals("已预定"));
                    System.out.println("序号\t姓名\t餐品\t份数\t送餐时间\t送货地址\t状态");
                    for (int i = 0; i < list.length; i++) {//输出订餐信息
                        if(list[i]==null){
                            break;
                        }else{
                            System.out.println(list[i][0]+list[i][1]);
                        }
                    }
                    break;
                case 5:
                    System.out.println("我要点赞");
                    int dianzan=1;
                    do {
                        for (int i = 0; i < good.length; i++) {
                            System.out.println(i + 1 + "  " + dishes[i] + "  " + good[i]);
                        }
                            System.out.println("请输入要点赞的菜品序号:(正整数)");
                            dianzan=sc.nextInt();
                            if(dianzan<1||dianzan>good.length){
                                System.out.println("数据输入有误!");
                            }else{
                                good[dianzan-1]++;
                                for (int i = 0; i < good.length; i++) {
                                    System.out.println(i + 1 + "  " + dishes[i] + "  " + good[i]);
                                }
                                break;
                            }
                    }while(dianzan<1||dianzan>good.length);

                    break;
                case 6:
                    System.out.println("谢谢光临,欢迎下次再来!");
                    break;
                default:
                    System.out.println("输入错误");
                    break;
            }
            System.out.println("输入0返回主界面,输入其它数字退出点餐系统");
            cdh=sc.nextInt();
        }while(cdh==0);
        System.out.println("您已退出点餐系统,欢迎下次再来!");
    }
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值