JAVA项目源码分析—快递E栈_java 快递信息解析

1、 分支结构
2、 数组

二、源码解析

第一步,先创建三个数组:快递单号、快递公司名称、取件码

// 创建快递信息存储数组(假定存储有3个快递)
// 快递单号
   String[] ordersId = new String[3];
// 快递公司名称
   String[] names = new String[3];
// 取件码
   int[] codes = new int[3];
        

第二步,对两个选择操作分别使用两个switch语句

其中,第一个switch(num){} 是对 快递员 和 用户 这两者的选择

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){
                       //此处A,B,C,D为简写,详细代码在下文
                        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<ordersId.length;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;
            }

操作选择

第二个语句 switch(num2){} 是对快递员的四个操作进行选择,分别是:

A- 存快递 :

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;

存快递

B- 删除快递:

case"B"://删除快递
		System.out.println("请输入要删除的快递单号:");
		Stringnumber2=sc.next();
		intindex1=-1;//该变量用来判断是否匹配到对应快递单号
		for(inti=0;i<ordersId.length;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;

删除

C- 修改快递信息操作:

case"C"://修改快递信息
        System.out.println("请输入要修改的快递单号:");
		Stringnumber3=sc.next();
		intindex2=-1;//该变量用来判断是否匹配到对应快递单号
		


### 最后

小编综合了阿里的面试题做了一份前端面试题PDF文档,里面有面试题的详细解析



![](https://img-blog.csdnimg.cn/img_convert/45f2869b91b538dd3bb3290ba13bc806.png)  

![](https://img-blog.csdnimg.cn/20210419193354991.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0tlcGxlcl9JSQ==,size_16,color_FFFFFF,t_70)

虽只说了一个公司的面试,但我们可以知道大厂关注的东西并举一反三,通过一个知识点延伸到另一个知识点,这是我们要掌握的学习方法,小伙伴们在这篇有学到的请评论点赞转发告诉小编哦,谢谢大家的支持!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值