数组详细+吃货联盟订餐系统项目练习

组遍历
for(int i=0;i<nums.length;i++){}
增强for循环:for(int temp:nums){}

组增删改查
String name[]={“张三”,“李四”,“王五”};
String name[]=new String[100];
name[0]=“张三”;
name[1]=“李四”;
name[2]=“王五”;
0 1 2 3
“张三”, “李四”, “王五” “小红”
//1、找到李四的下标
//2、从下标加1往前覆盖
//3、把当前有值的最后一位置空
入算法
70 80 90 100 110 []
插入值85
//1、找到插入位置下标
//2、从最后一位覆盖到下标位置
//3、85覆盖90
rrays
boolean equals(array1,array2)
sort(array)//升序排序
String toString(array)
fill(array,val)
copyOf(array,length)
//要求数组中的元素升序排序
int binarySearch(array,val)

吃货联盟订餐系统

public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String []names=new String[4]; //订餐人姓名
String []dishMegs=new String[4]; //所选菜品信息
int []times=new int[4]; //送餐时间
String []addresses=new String[4];//送餐地址
int []states=new int[4]; //订单状态
double []sumPrices=new double[4];//订单总价
String []dishNames=new String[]{“红烧带鱼”,“鱼香肉丝”,“时令鲜蔬”};
double []prices=new double[]{38.0,20.0,10.0};
int []praiseNums=new int[3]; //点赞数
// 初始化第一条信息
names[0]=“张晴”;
dishMegs[0]=“红烧带鱼2份”;
times[0]=12;
addresses[0]=“天成路207号”;
states[0]=1;
sumPrices[0]=76.0;
//初始化第二条信息
names[1]=“张三”;
dishMegs[1]=“鱼香肉丝2份”;
times[1]=18;
addresses[1]=“天成路207号”;
states[1]=0;
sumPrices[1]=45;
int num=-1; //输入0返回主菜单,否则退出程序
boolean isExit=false; // 标志用户是否退出系统: true:退出系统
System.out.println(“欢迎使用“吃货联盟订餐系统””);
// 循环:显示菜单,根据用户选择的数字执行相应功能
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("
”);
System.out.print(“请选择:”);
boolean isAdd=false;//记录是否可以订餐
boolean flag=false;//找到要签收的订单
boolean flag2=false;//找到要删除的订单
int choose=input.nextInt(); //记录用户选择的功能
// 根据用户选择的功能编号执行相应功能
switch (choose){
case 1:
// 我要订餐
System.out.println(“我要订餐”);
for (int i = 0; i <names.length ; i++) {
if (names[i]==null) { //找到第一个空位置,可以添加订单信息
isAdd=true; //置标志位,可以订餐
System.out.print(“请输入姓名:”);
String name = input.next();
// 显示供选择的菜品信息
System.out.println(“序号\t\t\t菜名\t\t\t单价”);
for (int j = 0; j < dishNames.length; j++) {
String price=prices[j]+“元”;
String praiseNum = (praiseNums[j]) > 0 ? praiseNums[j] + “赞” : “”;
System.out.println((j + 1) + “\t\t\t\t” + dishNames[j] + “\t\t” + price + “\t\t\t” + praiseNum);
}
// 用户点菜
System.out.print(“请选择您要点的菜品编号:”);
int chooseDish = input.nextInt();
System.out.print(“请选择您需要的份数:”);
int number = input.nextInt();
String disMag = (dishNames[chooseDish - 1]) + " " + number + “份”;
double sunPrice = prices[chooseDish - 1] * number;
double deliCharge = (sunPrice > 50) ? 0 : 6;
System.out.println(“请输入送餐时间(送餐时间是10点至20点间整点送餐):”);
int time = input.nextInt();
while (time < 10 || time > 20) {
System.out.println(“对不起,输入的时间有误,请输入10至20的时间”);
time = input.nextInt();
}
System.out.println(“请输入送餐地址:”);
String addresse = input.next();
//显示订单详细
System.out.println(“订餐成功!”);
System.out.println(“您定的是:” + disMag);
System.out.println(“送餐时间:” + time);
System.out.println(“餐费:” + sunPrice + “元” + “送餐费:” + deliCharge + “元” + “总计:” + (sunPrice + deliCharge) + “元”);
//保存数据
names[i] = name;
dishMegs[i] = disMag;
times[i] = time;
addresses[i] = addresse;
sumPrices[i] = sunPrice + deliCharge;
break;
}
}
if (!isAdd){
System.out.println(“对不起,订餐人数已满”);
}
break;
case 2:
System.out.println(“查看餐袋”);
System.out.println(“序号\t订餐人\t\t餐品信息\t\t送餐时间\t\t送餐地址\t\t\t总金额\t订单状态”);
for (int i=0;i<names.length;i++){
if (states[i]==0){
if (names[i]!=null){
System.out.println((i+1)+"\t\t"+names[i]+"\t\t"+dishMegs[i]+"\t\t"+times[i]+"\t\t"+addresses[i]+states[i]+“已预订”);
}
}else if (names[i]!=null){
System.out.println((i+1)+"\t\t"+names[i]+"\t\t"+dishMegs[i]+"\t\t"+times[i]+"\t\t"+addresses[i]+states[i]+“已完成”);
}
}
break;
case 3:
System.out.println(“签收订单”);
System.out.print(“请选择要签收的订单序号:”);
int num1=input.nextInt();
for (int i=0;i<names.length;i++){
if (names[i]!=null && states[i]0&&num1(i+1)){
states[i]=1;
System.out.println(“订单签收完成”);
flag=true;
}else if(names[i]!=null && states[i]1 &&num1i+1){
System.out.println(“您的订单已经签收,不能再次签收”);
flag=true;
}
}
if (!flag){
System.out.println(“查找订单不存在”);
}
break;
case 4: //删除订单
System.out.println(“删除订单”);
System.out.print(“请输入要删除的订单序号:”);
int num2=input.nextInt();
for (int i = 0; i <names.length ; i++) {
//状态值为已完成 序号值为用户输入的序号:可删除
//状态值为已预定 序号值为用户输入的序号:不可删除
if (names[i]!=null && states[i]1 && inum2-1){
flag2=true;
//执行删除操作,删除位置后的元素一次前移
for (int j=num2-1;j<names.length-1;j++){
names[j]=names[j+1];
dishMegs[j]=dishMegs[j+1];
times[j]=times[j+1];
addresses[j]=addresses[j+1];
states[j]=states[j+1];
}
//最后一位清空
names[names.length-1]=null;
dishMegs[names.length-1]=null;
times[names.length-1]=0;
addresses[names.length-1]=null;
states[names.length-1]=0;
System.out.println(“删除成功”);
break;
}else if (names[i]null&&states[i]0&&num2i+1){
System.out.println(“订单未签收,不能删除”);
flag2=true;
break;
}
}
//未找到该序号的订单,不能删除
if (!flag2){
System.out.println(“未找到该序号订单”);
}
break;
case 5:
//我要点赞
System.out.println(“我要点赞”);
//显示菜品信息
System.out.println(“序号\t\t\t菜名\t\t\t单价”);
for (int j = 0; j < dishNames.length; j++) {
String price=prices[j]+“元”;
String praiseNum = (praiseNums[j]) > 0 ? praiseNums[j] + “赞” : “”;
System.out.println((j + 1) + “\t\t\t\t” + dishNames[j] + “\t\t” + price + “\t\t\t” + praiseNum);
}
System.out.print(“选择你想点赞的菜品序号:”);
int num3=input.nextInt();
praiseNums[num3-1]++;
System.out.println(“点赞成功”);
break;
case 6:
//退出程序
isExit=true;
break;
default:
//退出程序
isExit=true;
break;
}
if (!isExit){
System.out.println(“输入0返回”);
num=input.nextInt();
}else {
break;
}
}while (num
0);
System.out.println(“谢谢使用,欢迎下次光临”);
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值