JAVA基础语法实战——快递E栈 源码解析

JAVA基础语法实战——快递E栈 源码解析

快递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;

猜你喜欢

东菱面包机做面包
365bet官网网址

东菱面包机做面包

09-14 1470
国泰航空的股份,到底是国航还是太古(英资)控股?
当年的塞班系统流畅度堪比iOS,占用内存也不大,为何还会被市场淘汰?
如何延长色带的使用寿命 针式打印机色带能用多久
尿尿次数多是怎么回事?是肾不好吗?
HTC 10美国开始发货 国行还要等多久?
365bet官网网址

HTC 10美国开始发货 国行还要等多久?

08-17 1218