JAVA基础语法练习项目—吃货联盟订餐管理系统

帖子推荐初学JAVA的新手练习。

学习完java的基础语法写的一个小项目。
用到的知识点:
1.数组的定义和使用操作(一维和二维)
2.利用boolean类型来控制循环
3.重点练习了for循环和if循环的嵌套
4.数组的动态增加和删除以及复制
5.数组内容的替换更新
6.从多个订单中删除某一个订单的操作

以上就是我的这个小项目中的重点练习地方。

删除订单的测试Test

String[][] name = {{"张三","李四","王五"},{"赵六","刘七"},{"虎八","朱大"}};

        for (int i = 0; i < name.length-1; i++) {
            name[i]=name[i+1];
        }
        name = Arrays.copyOf(name,name.length-1);

		//遍历数组
        for (String[] j : name) {
            for (String a : j) {
                System.out.print(a+"  ");
            }
            System.out.println(); //换行
        }

删除数组Test

package com.it.test;

import java.util.Arrays;
import java.util.Scanner;

public class Test2 {
    public static void main(String[] args) {
       int[] i =new int[] {1,2,0,3,5,7,8,9,9,9,9,9,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0};
       System.out.println(i.length);
       i = Arrays.copyOf(i,i.length-1);

       //i[i.length-1] = 3;

       System.out.println(i.length);
    }
}

下面是项目的代码,希望对初学者又用。

package cn.bdqn;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @author lalalalalamo
 * 吃货联盟订餐管理系统
 * @create 2020-03-06 12:32
 */
public class OrderProject {
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        //初始化菜品
        String[] foodNames = {"面条", "米饭", "饺子"};
        //初始化价格
        double[] price = {12.0, 15.0, 11.0};
        //初始化点赞
        int[] praise = {0, 0, 0};
        //定义一个空餐袋
        String[][] order = new String[1][6];


        //控制循环
        boolean flag = true;

        while (flag) {
            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("请选择:");

            int num = input.nextInt();
            switch (num) {
                case 1:
                    System.out.println("我要订餐!");
                    System.out.print("请输入姓名:");
                    //订餐人姓名
                    String name = input.next();
                    System.out.println("序号" + "\t" + "菜名" + "\t" + "单价" + "\t" + "点赞数");
                    for (int j = 0; j < foodNames.length; j++) {
                        System.out.println((j + 1) + "\t" + "\t" + foodNames[j] + "\t" + price[j] + "元" + "\t  " + praise[j]);
                    }

                    System.out.print("请选择你需要的菜品编号:");
                    int foodNum = input.nextInt();
                    if (foodNum <= 0 || foodNum > foodNames.length) {
                        System.out.println("输入不正确,请重新输入!");
                        foodNum = input.nextInt();
                    } else {
                    }

                    System.out.print("请选择您需要的份数:");
                    int foodCount = input.nextInt();

                    System.out.print("请输入送餐时间(送餐时间是当天10:00到22:00之间):");
                    int date = input.nextInt();
                    if (date < 10 || date > 20) {
                        System.out.print("您输入有误,请重新输入!");
                        date = input.nextInt();
                    } else {
                    }

                    System.out.print("请输入送餐地址:");
                    String address = input.next();

                    System.out.println("订餐成功!");
                    System.out.println("您订的是:" + foodNames[foodNum - 1] + " " + foodCount + "份");
                    System.out.println("送餐时间:" + date + "点");

                    //餐费
                    double foodPrice = price[foodNum - 1] * foodCount;
                    //所有总价 = 餐费+派送费
                    double foodPriceSum = 0;
                    if (foodPrice >= 50) {
                        foodPriceSum = foodPrice;
                        System.out.println("餐费:" + foodPrice + " " + "派送费0.0元" + " " + "总计:" + foodPriceSum + "元");
                    } else {
                        foodPriceSum = foodPrice + 5.0;
                        System.out.println("餐费:" + foodPrice + " " + "派送费5.0元" + " " + "总计:" + foodPriceSum + "元");
                    }

                    if (order[0][0] == null) {
                        order[0][0] = name;
                        order[0][1] = foodNames[foodNum - 1] + " " + foodCount + "份";
                        order[0][2] = date + "";
                        order[0][3] = address;
                        order[0][4] = foodPriceSum + "";
                        order[0][5] = "已预定";
                    } else {
                        //当餐袋非空时,动态增加数组
                        order = Arrays.copyOf(order, order.length + 1);
                        //数组长度加一后 给下标最后一位赋值。下标=新的数组长度-1
                        order[order.length - 1] = new String[6];
                        order[order.length - 1][0] = name;
                        order[order.length - 1][1] = foodNames[foodNum - 1] + " " + foodCount + "份";
                        order[order.length - 1][2] = date + "";
                        order[order.length - 1][3] = address;
                        order[order.length - 1][4] = foodPriceSum + "";
                        order[order.length - 1][5] = "已预定";
                    }
                    System.out.print("输入0返回:");
                    int k = input.nextInt();
                    if (k == 0) {
                        System.out.println("返回");
                    } else {
                        System.out.println("谢谢使用");
                        flag = false;
                    }
                    break;


                case 2:
                    System.out.println("***********查看订单************");
                    System.out.println("序号" + "   " + "订餐人" + "   " + "餐品信息" + "   " + "送餐日期" + "   " +
                            "送餐地址" + "   " + "总金额" + "   " + "订单状态");
                    for (int i = 0; i < order.length; i++) {
                        System.out.print((i + 1) + "  ");
                        for (int j = 0; j < order[i].length; j++) {
                            System.out.print(order[i][j] + "\t" + "\t");
                        }
                        System.out.println();
                    }
                    System.out.print("输入0返回:");
                    int h = input.nextInt();
                    if (h == 0) {
                        System.out.println("返回");
                    } else {
                        System.out.println("谢谢使用");
                        flag = false;
                    }
                    break;
                case 3:
                    System.out.println("***********签收订单************");
                    System.out.print("请选择要签收的订单序号:");
                    int orderNum = input.nextInt();

                    if (orderNum > 0 && orderNum <= order.length) {
                        order[orderNum - 1][5] = "已完成";
                        System.out.println("订单签收成功!");
                    } else {
                        System.out.println("编号不正确!");
                    }
                    System.out.print("输入0返回:");
                    int w = input.nextInt();
                    if (w == 0) {
                        System.out.println("返回");
                    } else {
                        System.out.println("谢谢使用");
                        flag = false;
                    }
                    break;
                case 4:
                    System.out.println("***********删除订单************");
                    System.out.print("请选择要删除的订单序号:");
                    int delNum = input.nextInt();

                    if (delNum > order.length || delNum <= 0) {
                        System.out.println("编号不正确!");
                    } else {
                        //输入删除的编号 然后从编号开始 下一位依次往前一位顶,循环一遍
                        for (int i = delNum - 1; i < order.length - 1; i++) {
                            order[i] = order[i + 1];
                        }
                        //复制一个新数组 其新长度=以前长度-已经被顶到最后一位的需要删除的那一项的一个长度
                        order = Arrays.copyOf(order, order.length - 1);
                        System.out.println("删除成功!");
                    }
                    System.out.print("输入0返回:");
                    int c = input.nextInt();
                    if (c == 0) {
                        System.out.println("返回");
                    } else {
                        System.out.println("谢谢使用");
                        flag = false;
                    }
                    break;
                case 5:
                    System.out.println("***********我要点赞************");
                    System.out.println("序号" + "\t" + "菜名" + "\t" + "单价" + "\t" + "点赞数");
                    for (int i = 0; i < foodNames.length; i++) {
                        System.out.println((i + 1) + "\t" + "\t" + foodNames[i] + "\t" + price[i] + "元" + "\t" + praise[i]);
                    }
                    System.out.print("请选择您要点赞的菜品序号:");
                    int praiseNum = input.nextInt();
                    if (praiseNum > praise.length || praiseNum <= 0) {
                        System.out.println("输入的编号不正确,请重新输入!");
                        praiseNum = input.nextInt();
                    } else {
                        praise[praiseNum - 1] = praise[praiseNum - 1] + 1;
                        System.out.println("点赞成功!");
                    }
                    System.out.print("输入0返回:");
                    int a = input.nextInt();
                    if (a == 0) {
                        System.out.println("返回");
                    } else {
                        System.out.println("谢谢使用");
                        flag = false;
                    }
                    break;
                case 6:
                    System.out.println("退出程序");
                    //退出程序
                    //System.exit(0);
                    //通过控制while循环的变量设置循环是否停止
                    flag = false;
                    break;
                default:
                    System.out.println("你输入的不正确!");
            }

        }

    }
}

如果有需要改进的大家多多提出来,毕竟我也是一个新手开车!!!哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值