新手·小白

快递驿站任务

public static Scanner input=new Scanner(System.in);
	public static String[] numberArr= new String[100];//快递单号数组
	public static String[] companyArr= new String[100];//公司名称数组
	public static int[] codeArr= new int[100];//取件码数组
	public static int index=0;//快递柜中共有多少个快递
	public static Random random=new Random();
	
	public static void main(String[] args) {
		//展示菜单
		while(true) {
		int id=starMenu();
		if(id==0)
			return;
}
	}
	/**
	 * 开始菜单
	 */
	private static int starMenu() {
		System.out.println("============欢迎使用快递柜==========");
		System.out.print("请输入您的身份:1-快递员 2-用户 0-退出");
		int id=0;
		do {
			id=input.nextInt();
			if(id==1) {//快递员——展示快递员的菜单
				deliveymanMenu();
				break;
			}else if(id==2) {//普通用户
				userMenu();
				break;
			}else if(id==0) {
				System.out.println("谢谢使用!");
				 return 0;
			}else {
					System.out.print("选择有误,请重新输入:");
			}
		}while(true);
		return id;
	}
	
	/**
	 * 普通用户菜单
	 */
	public static void userMenu() {
		System.out.print("请输入取件码");
		int code =input.nextInt();
		int codeIndex=isExist(code);
		if(codeIndex==-1) {
			System.out.println("未找到快递");
		}else {
			del(codeIndex);
			System.out.println("取件成功!");
		}
	}
	
	/**
	 * 快递员菜单
	 */
	
		public static void deliveymanMenu() {
			System.out.print("请选择操作:1-存快递  2-删除快递 3-修改快递信息 4-查看所有的快递");
			int id=input.nextInt();
			if(id==1) {
				saveExpress();
			}else if(id==2) {
				delExpress();
			}else if(id==3) {
				System.out.print("请输入要修改的快递单号");
				String number=input.next();
				int updateIndex=findByNumber(number);
				if(updateIndex==-1) {
					System.out.println("未找到快递");
				}else {
					System.out.print("请输入新的快递单号");
					number=input.next();
					System.out.print("请输入新的公司名称");
					String company=input.next();
					numberArr[updateIndex]=number;
					companyArr[updateIndex]=company;
					System.out.println("修改成功!");
				}
			}else if(id==4) {
				printAll();
			}
		}
		/**
		 * 删除快递
		 */
		public static void delExpress() {
			System.out.print("请输入要删除的快递单号");
			String number=input.next();
			int delIndex=findByNumber(number);
			if(delIndex==-1) {
				System.out.println("未找到快递!");
			}else {
				//删除
				del(delIndex);
				System.out.println("删除成功");
			}
		}
		public static void del(int delIndex) {
			if(delIndex !=numberArr.length-1) {
				for(int i=delIndex;i<index;i++) {
					numberArr[i]=numberArr[i+1];
					companyArr[i]=companyArr[i+1];
					codeArr[i]=codeArr[i+1];
				}
			}
			index--;
		}
		
		/**
		 * 查看所有快递
		 */
		public static void printAll() {
			System.out.println("-----所有的快递信息-----");
			System.out.println("快递单号\t取件码");
			for (int i=0;i<index;i++) {
				System.out.println(numberArr[i]+"\t"+companyArr[i]+"\t"+codeArr[i]);
			}
		}
		
		/**
		 * 根据快递单号查找快递
		 * @param number 找到的下标   -1===表示找到
		 * @return
		 */
		public static int findByNumber(String number) {
			for(int i=0;i<index;i++) {
				if(numberArr[i].equals(number)) {
					return i;
				}
			}
			return -1;
		}
		
		/**
		 * 存快递功能
		 */
		private static void saveExpress() {
			System.out.print("请输入快递单号");
			String number=input.next();
			System.out.print("请输入公司名称");
			String company=input.next();
			numberArr[index]=number;
			companyArr[index]=company;
			//自动生成取件码  
			int code=0;
			//保证取件码不重复
			do {
				code=random.nextInt(900)+100;
			}while(isExist(code)!=-1);
			codeArr[index]=code;
			index++;
			System.out.println("快递已存入,取件码是:"+code);
		
	}
		//判断取件码是否重复
		public static int isExist(int code) {
			for (int i = 0;i<index;i++) {//遍历取件码数组
				if(codeArr[i]==code) {//判断是否重复
					return i;
				}
			}
			return -1;
		}
	}

  

posted on 2021-09-25 16:46  新手·小白  阅读(48)  评论(0编辑  收藏  举报

导航