快递E栈
创建三个数组:快递单号、快递公司名称、取件码
// 创建快递信息存储数组(假定存储有3个快递)
// 快递单号
String[] ordersId = new String[3];
// 快递公司名称
String[] names = new String[3];
// 取件码
int[] codes = new int[3];
对两个选择操作分别使用两个switch语句
System.out.println("\n请输入您的身份信息: 1-快递员 2-用户");
int num = sc.nextInt();
switch(num) {
case 1: // 表示这是快递员在操作
System.out.println("请选择操作: A-存快递 B-删除快递 C-修改快递信息 D-查看所有快递信息");
String num2 = sc.next();
switch(num2){
case "A":
case "B":
case "C":
case "D":
}
break;
case 2: // 表示这是用户在操作
System.out.println("请输入取件码:");
int code1 = sc.nextInt();
int index4 = -1;
// 寻找匹配的取件码
for(int i= 0;i if(codes[i] !=0 && codes[i] == code1) { index4 = i; break; } } if(index4 == -1) { System.out.println("未找到该快递"); }else { // 取快递 ordersId[index4] = null; // 这两个可删可不删 names[index4] = null; codes[index4] = 0; System.out.println("您已取件成功!"); } break; } 对于快递员的存快递操作: case "A": // 存快递 // 遍历数组查找是否还有空位置,进行添加 int index = -1; // 该变量用来判断快递柜是否存满 for(int i = 0 ; i < ordersId.length; i++) { if(ordersId[i] == null) { index = i; break;//遇到一个就跳出循环 } } // 判断快递柜是否存满,并进行相关操作 if(index == -1) { System.out.println("快递柜已满,无法继续存入"); }else { // 如果有空位置 ,则存入以下数据: // index 可以换成 i // 录入单号 System.out.println("请输入快递单号:"); String number = sc.next(); ordersId[index] = number; // 录入公司名称 System.out.println("请输入公司名称:"); String company = sc.next(); names[index] = company; // 随机生成 1-1000的取件码 ,其中 Math.random()*1000 表示0-999个数据 int code = (int)( Math.random()*1000) +1; codes[index] = code; System.out.println("此快递已经存入,取件码是: "+ code); } break; 对于快递员的删除快递操作: case"B"://删除快递 System.out.println("请输入要删除的快递单号:"); Stringnumber2=sc.next(); intindex1=-1;//该变量用来判断是否匹配到对应快递单号 for(inti=0;i if(ordersId[i].equals(number2)){ index1=i; break;//匹配到就直接跳出循环 } } //判断是否匹配到快递单号,并进行相关操作 if(index1==-1){ System.out.println("该快递单号不存在!"); }else{ //清空数组中对应的值 ordersId[index1]=null; //这两个可删可不删,因为前面都是依据ordersId是否为null判断 names[index1]=null; codes[index1]=0; System.out.println("已删除该快递单号"); } break; 对于快递员的修改快递信息 操作: case"C"://修改快递信息 System.out.println("请输入要修改的快递单号:"); Stringnumber3=sc.next(); intindex2=-1;//该变量用来判断是否匹配到对应快递单号 for(inti=0;i if(ordersId[i].equals(number3)){ index2=i; break;//匹配到就直接跳出循环 } } //判断是否匹配到快递单号,并进行相关操作 if(index2==-1){ System.out.println("该快递单号不存在!"); }else{ //修改对应的快递信息 //将新快递单号赋值给数组中对应位置 System.out.println("请输入新的快递单号:"); Stringnewnumber=sc.next(); ordersId[index2]=newnumber; //将新公司名称赋值给数组中对应位置 System.out.println("请输入新的公司名称:"); Stringnewcompany=sc.next(); names[index2]=newcompany; //将新的取件码赋值给数组中对应位置 intnewcode=(int)(Math.random()*1000)+1; codes[index2]=newcode; System.out.println("您已修改成功!"+"新的取件码:"+newcode); } break; 对于快递员的查看操作: case"D"://查看操作 int index3=-1;//该变量用来判断快递柜是否全空 for(inti=0;i if(ordersId[i]!=null){ index3=0;//这里可以赋予任何不为-1的值 break;//只要有一个,说明快递柜不为空就立即跳出 } } if(index3==-1){ System.out.println("快递柜为空,暂无快递"); }else{ System.out.println("所有快递信息如下:"); System.out.println("快递单号\t公司名称\t取件码"); for(inti=0;i if(ordersId[i]!=null){ System.out.println(ordersId[i]+"\t"+names[i]+"\t"+codes[i]); } } } break; //结束case"D",跳出switch(num2)语句 对于用户的取件操作: case2://表示这是用户在操作 System.out.println("请输入取件码:"); intcode1=sc.nextInt(); intindex4=-1; //寻找匹配的取件码 for(inti=0;i if(codes[i]!=0&&codes[i]==code1){ index4=i; break; } } if(index4==-1){ System.out.println("未找到该快递"); }else{ //取快递 ordersId[index4]=null; //这两个可删可不删 names[index4]=null; codes[index4]=0; System.out.println("您已取件成功!"); } break;