帖子推荐初学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("你输入的不正确!");
}
}
}
}
如果有需要改进的大家多多提出来,毕竟我也是一个新手开车!!!哈哈