标签:imp one ++ for pack 完成 rgs 整数 import
package com.shuzu; import java.util.Scanner; public class Chihuolianmeng_3 { //吃货订餐联盟---老师版 public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("欢迎使用“吃货联盟订餐系统”"); String choose = "";//菜单选择的变量 //初始化数据 int length = 5; String[] names = new String[length];//订餐人 String[] descs = new String[length];//订单餐品信息 int[] dates =new int[length];//送餐日期 String[] addresses = new String[length];//送餐地址 double[] moneys = new double[length];//总价 boolean[] status = new boolean[length];//订餐状态:true:完成;false未完成 int[] nums = new int[length];//订餐数量 double[] prices = new double[10];//单价 String[] foods = new String[10];//菜品信息 int[] zan = new int[10];//点赞数量 zan[0] = 12;zan[2] = 5;zan[4]=25; foods[0] = "黄焖鸡";foods[1] = "东坡肉";foods[2] = "蛋炒饭";foods[3] = "北京烤鸭";foods[4] = "大肘子"; prices[0] = 16.0;prices[1] = 15.5;prices[2] = 8.0;prices[3] = 49.9;prices[4] = 18.8; names[0] = "陈明"; descs[0] = "黄焖鸡"; nums[0] = 2; moneys[0] = 32.0; dates[0] = 7; addresses[0] = "北大青鸟"; status[0] = true; names[1] = "刘铭辉"; descs[1] = "东坡肉"; nums[1] = 3; moneys[1] = 46.5; dates[1] = 8; addresses[1] = "机房8"; status[1] = false; do { System.out.println("******************************"); System.out.println("1、我要订餐 2、查看餐袋 3、签收订单 4、删除订单 5、我要点赞 6、退出系统"); System.out.println("请选择:"); choose = sc.next(); switch (choose) { case "1": System.out.println("****我要订餐****"); int index = -1;//定义要添加的位置下标 for(int i = 0 ;i<length;i++) { //循环找到为空的数组下标 if(names[i]==null) { //如果i数组上的值为空 index = i; //把i赋值给index break; //跳出if } } if(index<0) { //如果index小于0,说明上个循环未找到为空的数组,则 System.out.println("当前餐袋已满!!!"); //提示 }else { System.out.println("请输入订餐人姓名:"); //如果index不小于0,提示输入姓名 names[index] = sc.next(); //订餐人数组index接收控制台输入的值 System.out.println("序号\t菜名\t单价\t点赞数量"); //输出菜名 单价 点赞数量 int max = foods.length; //定义max 把菜品数组最大的下标赋值给它 for(int i = 0;i<foods.length;i++) { //循环找到不为空的菜品数组下标 if(foods[i]==null) { //如果数组下标为空了 把i赋值给max,跳出循环 max = i; break; } System.out.println((i+1)+"\t"+foods[i]+"\t"+prices[i]+"元\t"+zan[i]+"次"); } System.out.println("请选择您要点的菜品编号:"); int id = 0; //定义输入的菜品id do { id = sc.nextInt(); //接收控制台输入的值 if(id<1||id>max) { //如果输入的值小于0或者大于菜品数组不为空的最大下标 System.out.println("不存在此编号菜品,请重新输入:"); //提示 } } while (id<1||id>max); // descs[index] = foods[id-1]; //把菜品数组下标为输入的值减一上的值,赋值给餐品信息数组index上的 System.out.println("请选择您需要的份数:"); int num = sc.nextInt(); //定义份数num 接收控制台输入的数据 nums[index] = num; //把控制台上的数据赋值给数组下标为index的值 System.out.println("请输入送餐时间(送餐时间是10点至20点间整点送餐)"); int date = 0; //定义输入的时间date do { date = sc.nextInt(); //接收 if(date<10||date>20) { //如果输入的时间小于10或者大于20 System.out.println("您的输入有误,请输入10~20间的整数!:"); //提示 } } while (date<10||date>20); // dates[index] = date; //把输入的时间辅助给时间数组下标为index上 System.out.println("请输入送餐地址:"); // addresses[index] = sc.next(); //把输入地址赋值给地址数组下标为index上 double money = prices[id-1]*num; //把菜品的价格乘于份数 赋值给定义的money System.out.println("订餐成功:"); System.out.println("您订的是:"+foods[id-1]+" "+num+"份"); System.out.println("送餐时间:"+date+"点"); double song = 0.0; //定义送餐费 if(money<20) { //如果订餐的价格小于20 song = 3.0; //送餐费增加3.0元 } moneys[index] = money+song; //把定餐的价格和送餐费赋值给总价格数组下标为index上的值 System.out.println("餐费:"+money+"。送餐费:"+song+"元,总计:"+(money+song)+"元"); } break; case "2": System.out.println("****查看餐袋****"); System.out.println("序号\t订餐人\t餐品信息\t\t送餐日期\t\t送餐地址\t\t总金额\t订单状态"); for(int i = 0;i<length;i++) { //循环变量输出订餐的信息 if(names[i]==null) { //如果订餐人数组为空则跳出循环 break; } String canpin = descs[i]+" "+nums[i]+"份"; String zhuangtai = status[i]?"已完成":"已预订"; System.out.println((i+1)+"\t"+names[i]+"\t"+canpin+"\t\t"+dates[i]+"点\t\t"+addresses[i]+"\t\t"+moneys[i]+"元\t"+zhuangtai); } break; case "3": System.out.println("****签收订单****"); System.out.println("请输入要签收的订单编号:"); boolean isTrue = false; // int id = -1; //定义签收订单的编号 do { id = sc.nextInt(); //接收输入的要签收的值 if(id<1||id>descs.length) { //如果订单编号小于1,且大于订餐信息数组的最大下标 isTrue = true; // }else { if(descs[id-1]==null) { //如果订餐信息数组下标“要签收订单编号减一”上的值为空 isTrue = true; }else { isTrue = false; //否则 } } if(isTrue) { System.out.println("不存在此编号的订单信息,请重新输入:"); } } while (isTrue); status[id-1] = true; //把true赋值给 状态数组下标为要签收的订单序号减一 System.out.println("签收完成"); //提示 break; case "4": System.out.println("****删除订单****"); System.out.println("请输入要删除的订单编号:"); int big = length; //定义下标 for(int i = 0;i<length;i++) { //循环找到订餐信息为空的数组下标 if(descs[i]==null) { //如果订餐信息数组为空 big = i; //把下标i赋值给big 跳出 break; } } int no = 0; //输入的值 do { no = sc.nextInt(); //接收输入的要删除的序号 if(no<1||no>big) { //如果输入的值小于1 或大于订餐信息数组不为空的最大的下标 System.out.println("不存在此编号菜品,请重新输入:"); //提示 } } while (no<1||no>big); if(status[no-1]==false) { //如果状态数组下标为要删除的序号减一的值==未完成 System.out.println("订单未完成,不能删除"); //提示 }else { for(int i=no-1;i<length-1;i++) { //循环让要删除的序号减一的下标开始,到最大数组下标减一,依次把后面的值移到前一个数组上 names[i] = names[i+1]; descs[i] = descs[i+1]; nums[i] = nums[i+1]; dates[i] = dates[i+1]; addresses[i] = addresses[i+1]; moneys[i] = moneys[i+1]; status[i] = status[i+1]; } //最后把最后一个数组上的值清空 names[length-1] = null; descs[length-1] = null; nums[length-1] = 0; dates[length-1] = 0; addresses[length-1] = null; moneys[length-1] = 0.0; status[length-1] = false; System.out.println("删除订单成功"); } break; case "5": System.out.println("****我要点赞****"); System.out.println("序号\t菜名\t单价\t点赞数量"); int max = foods.length; //循环遍历菜名 单价 点赞数 for(int i = 0;i<foods.length;i++) { if(foods[i]==null) { max = i; break; } System.out.println((i+1)+"\t"+foods[i]+"\t"+prices[i]+"元\t"+zan[i]+"次"); } System.out.println("请选择您要点赞的菜品编号:"); int bianhao = 0; //定义 do { bianhao = sc.nextInt(); //接收 if(bianhao<1||bianhao>max) { //如果编号为小于1或大于菜单不为空的最大数组下标时 System.out.println("不存在此编号菜品,请重新输入:"); } } while (bianhao<1||bianhao>max); zan[bianhao-1]++; //点赞数组下标输入的编号减一的值自加 System.out.println("点赞成功,谢谢您的反馈"); break; case "6": System.out.println("****退出系统****"); System.out.println("谢谢使用"); break; default: System.out.println("选择错误,请重新选择:"); choose = sc.next(); break; } }while(!"6".equals(choose)); } }
标签:imp one ++ for pack 完成 rgs 整数 import
原文地址:https://www.cnblogs.com/qq993411626------/p/10241028.html