使用Java变成完成一个简易的点餐系统

import java.util.Scanner;
	
	/**
	*吃货联盟系统
	*/
public class GoodForNothing{
	
	public  static void main (String [] args) {
		
		//准备一个菜单数组//遍历
		String [][] menus = new String[5][4];
		menus[0][0] = "1";menus[0][1] = "宫保鸡丁";menus[0][2] = "30";menus[0][3] = "0";
		menus[1][0] = "2";menus[1][1] = "开水白菜";menus[1][2] = "120";menus[1][3] = "0";
		menus[2][0] = "3";menus[2][1] = "酸菜鱼";menus[2][2] = "40";menus[2][3] = "0";
		menus[3][0] = "4";menus[3][1] = "辣子找鸡";menus[3][2] = "80";menus[3][3] = "0";
		menus[4][0] = "5";menus[4][1] = "鱼香肉丝";menus[4][2] = "20";menus[4][3] = "0";
		//准备一个订单数组20行10列
		String [][] orders = new String[20][10];
		//订单编号变量
		int odn = 1;
		
		Scanner input = new Scanner(System.in);
		//循环保证一级菜单能够反复提示 直到用户选择退出系统
		do {
			//显示系统一级菜单
			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("您的选择:");
			int opt = input.nextInt();
			switch(opt) {
				case 1:
					String ans = "y";
					do{
						System.out.println("========菜品选择========");
						for ( int row =0 ; row < 5 ;row++) {
							for (int col = 0; col < 4 ;col++ ) {
								System.out.print(menus[row][col]+" ");
							}
							System.out.println();
						}
						System.out.print("请选择您需要的菜品:");
						int menuOpt = input.nextInt();
						System.out.print("请输入购买数量:");
						int buynum = input.nextInt();
						System.out.print("请输入收货人:");
						String man = input.next();
						System.out.print("请输入联系电话:");
						String tel = input.next();
						System.out.print("请输入收货地址:");
						String addr = input.next();
						
						//搜索空行存放对应的订单
						for ( int row=0;row < orders.length;row++ ) {
							if ( orders[row][0] == null) {
								orders[row][0] = (odn)+"";
								orders[row][1] = menus[menuOpt-1][1];
								orders[row][2] = buynum+"";
								orders[row][3] = addr;
								orders[row][4] = man;
								orders[row][5] = tel;
								orders[row][6] = menus[menuOpt-1][2];
								//Integer.parseInt(字符串) ==> 将字符串转成数字
								orders[row][7] = buynum*Integer.parseInt(menus[menuOpt-1][2])+"";
								orders[row][8] = "已发货";
								orders[row][9] = "0";
								odn++;
								break;
							}	
						}
						
						System.out.println("您已经下单,稍后请注意查收");
						System.out.println("您是否需要继续进行购买菜品(y/n)");
						ans = input.next();
					}while(ans.equals("y"));
					break;
					
				case 2:
					
					System.out.println("================您的订单================");
					for ( int row=0;row < orders.length;row++ ) {
						if( orders[row][0]==null ) {
							break;
						}
						for (int col=0;col < orders[row].length;col++) {
							System.out.print(orders[row][col]+"\t");
						}
						System.out.println();
						
				    }
					break;
				case 3:
					System.out.println("================您要签收的订单================");
					for ( int row=0;row < orders.length;row++ ) {
						if( orders[row][0]==null ) {
							break;
						}
						for (int col=0;col < orders[row].length;col++) {
							System.out.print(orders[row][col]+"\t");
						}
						System.out.println();	
				    }
					System.out.println("您的选择:");
					int ordOpt = input.nextInt();
					//先搜索订单的位置(行数)数组下标
					int pos = -1;
					for ( int i=0; i < orders.length && orders[i][0]!=null;i++ ) {
						if( ordOpt == Integer.parseInt(orders[i][0])) {
							pos = i;
						}
					}
					//修改第ordOpt-1行的第9个单元格数据 
					//验证用户输入的数字必须小于订单的最大数量
					if ( pos!=-1 ) {
						orders[ordOpt-1][8]="已签收";
						
					} else{
						System.out.println("请输入正确的订单号");
					}
					break;
				case 4:
					System.out.println("================您要删除的订单================");
					for ( int row=0;row < orders.length;row++ ) {
						if( orders[row][0]==null ) {
							break;
						}
						for (int col=0;col < orders[row].length;col++) {
							System.out.print(orders[row][col]+"\t");
						}
						System.out.println();	
				    }
					System.out.println("您的选择:");
					int od = input.nextInt();
					//先搜索订单的位置(行数)数组下标
					int pos1 = -1;
					for ( int i=0; i < orders.length && orders[i][0]!=null;i++ ) {
						if( od == Integer.parseInt(orders[i][0])) {
							pos1 = i;
						}
					}
					//判断订单首先是否在范围内
					if ( pos1!=-1 ) {
						//判断订单是否能删除
						if ("已签收".equals(orders[od-1][8])) {
							System.out.println(od+"号订单已经签收不能删除");
						}else{
							//删除订单
							for ( int i = od-1;i< orders.length-1;i++) {
								orders[i]=orders[i+1];
							}
							orders[orders.length-1]=null;
							//扣减一个订单数量
							
						}
					} else{
						System.out.println("请输入正确的订单号");
					}
					break;
				case 5:
					System.out.println("================您要点赞的订单================");
					for ( int row=0;row < orders.length;row++ ) {
						if( orders[row][0]==null ) {
							break;
						}
						for (int col=0;col < orders[row].length;col++) {
							System.out.print(orders[row][col]+"\t");
						}
						System.out.println();	
				    }
					System.out.println("您要为哪个订单点赞:");
					String ordno = input.next();
					//搜索订单在数组中的位置
					int pos2 = -1;
					for ( int i=0; i < orders.length && orders[i][0]!=null;i++ ) {
						if( ordno.equals( orders[i][0])) {
							pos2 = i;
						}
					}
					if ( pos2!=-1) {
						//点赞数+1 订单表点赞
						orders[pos2][9]=(Integer.parseInt(orders[pos2][9])+1)+"";
						//同时在菜单表上对对应菜品添加点赞数
						//搜索菜品的名称
						String foodName = orders[pos2][2];
						//搜索菜单表中对应菜品的位置
						int fnPos = -1;
						for ( int i=0;i<menus.length.i++) {
							if ( foodName.equals(menus[i][1])) {
								menus[i][3]=(Integer.parseInt(menus[i][3])+1)+"";
								break;
							}
						}
					}else {
						System.out.println("未找到对应订单");
					}
					break;
				default:
					System.out.println("感谢使用吃货联盟系统");
					System.exit(0);
			}
		}while(true);
		
	}
}

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值