2020-09-18

快递e栈

功能介绍

  1. 角色切换(快递员和普通用户)
    快递员功能:存快递,删除快递,修改快递,查看所有快递
    普通用户功能:取快递
  2. 存快递
  3. 删除快递
  4. 修改快递
  5. 查看所有快递
  6. 取快递

任务过程:

  1. 切换用户界面
  2. 快递信息的保存
  3. 各个子功能的实现

涉及知识点:

  1. Java基础语法
  2. Java基础数据类型
  3. 流程控制语句(if、switch、while、do while、for、break与continue)
  4. 数组
 package com.sbs;

import java.util.Scanner;

public class task26 {
 //定义长度为100的数组odd储存快递单号
	static int [] numbers = new int[100];
		 //定义长度为100的数组co储存公司名称
	static String [] companyNames = new String[100];
	     //定义长度为100的数组num储存取件码
	static int [] codes = new int[100];
		 static String companyName;
		 static int number;
		 static int code;
		static int index = -1;
	public static void main(String[] args) {	
		saveData("韵达", 1234);
        saveData("韵达", 1235);
        saveData("韵达", 1236);		
		 //程序结束回到主页面
	while(true) { 
		//打印欢迎语
	     System.out.println("==欢迎使用sbs快递柜==");
	     //接收身份信息
	     System.out.println("请输入您的身份:"+"1.快递员      " +"2.用户");
	     Scanner sc = new Scanner(System.in);
	     int l =sc.nextInt();
	     //快递员操作分支
	    if( l==1) {
	    	//定义布尔变量控制循环
	    	boolean flag = true;
	    	//switch循环结束重新回到选择操作页面
	    	while(flag) {
	    		//接收操作信息
	    		System.out.println("请选择操作"+":"+"1.存快递  " +"2.删除快递  " +"3.修改快递  " +"4.查看所有快递"+"5.返回主页");
	    		Scanner sc2 = new Scanner(System.in);
	    		switch(sc2.nextInt()) {
	    		    //存快递
	    			case 1 : 	    				 
	    					//接收输入的快递信息并储存
	    					System.out.print("请输入单号");			  
	    					Scanner sc3 = new Scanner(System.in);
	    				    number = sc3.nextInt();		 
	    					System.out.print("请输入公司名称");
	    					Scanner sc4 = new Scanner(System.in);
	    					companyName = sc4.next();
	    					saveData(companyName,number);
	    				    System.out.println("存入成功:取件码为"+ codes[index]);	   
	    					 				
	    				break;
	    			case 2 : 
	    				//接收要删除的单号
	    				System.out.println("请输入要删除的快递单号");
	    				Scanner sc5 = new Scanner(System.in);
	    				int num1= sc5.nextInt();
	    				//遍历柜内单号数组,相同则把公司名称数组该单号下标中内容置空
	    				for(int i=0;i<100;i++) {			 
	    					if( numbers[i]== num1){			
	    						companyNames[i] = null ;
	    						System.out.println("删除成功");		    						
	    					}	    				
	    				}
	    				break;		  
	    			case 3:
	    				//接收要修改的单号
	    				System.out.println("请输入要修改的快递单号");
	    				Scanner sc6 = new Scanner(System.in);
	    				int num2 = sc6.nextInt();
	    				//遍历单号数组,相同则提示输入修改信息并储存为该单号下标对应的数组内容
	    				for(int i=0;i<100;i++) {			 
	    					if( numbers[i]== num2){	
	    						System.out.println("请输入新的快递单号");
	    						Scanner sc7 = new Scanner(System.in);
	    						numbers[i] = sc7.nextInt();
	    						System.out.println("请输入 新的快递公司");
	    						Scanner sc8 = new Scanner(System.in);
	    						companyNames[i] =  sc8.next ();
	    						System.out.println("修改成功");		    							    						    						 				 
	    					}
	    					
	    				}
	    				break;	    			
	    			case 4: 
	    				for (int i = 0; i <100; i++) {
	    					if( companyNames[i] != null) {
	    						System.out.print( companyNames[i] + "\t" +  numbers[i] + "\t" +  codes[i]);
	    						System.out.println();
	    					}
	    						    	            	    	        
	    				}
	    				break;
	    			case 5 :
	    				//退出循环
	    				flag = false;
	    				break;
	    		}
	    	}
	    }
	    		
	    	 			
	    	
	    	else  if(l==2 ) {
	    	System.out.println("请输入取件码");
	    	Scanner sc9 = new Scanner(System.in);
	    	int num2 = sc.nextInt();
			for(int i=0;i<100;i++) {			 
				if( numbers[i]== num2){							 
					System.out.println("取件成功");		    						
				}	    				
			}
	    }    	    	
		}
	}
public static boolean saveData(String companyName, int number) {
         //用来存储哪个位置是空的,可以存新的物品的这个下标。
        // 不能是0,0是一个合法的下标,如果找不到还返回0,那就不合理了
        for (int i = 0; i < 100; i++) {
            if (companyNames[i] == null) {
                index = i;
                break;
            }
        }
        if (index != -1) {
            //要知道哪个位置可以放 i ? i=1
            companyNames[index] = companyName;
            numbers[index] = number;
            //随机一个三位数:100-999
            //0-999   100-1099
            //0-899  100-999
            int code = (int) (Math.random() * 9000  + 1000);
            codes[index] = code;
           
            return true;
        }
        else {
            return false;
        }
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值