1.数组完成快递的增删改查

  • 1. 角色切换(快递员和普通用户)
    • 快递员功能:存快递,删除快递,修改快递,查看所有快递
    • 普通用户功能:取快递
  • . 2.取件码使用的随机数生成
package demo6;

import java.util.Random;
import java.util.Scanner;

public class Express {
    static Scanner sc=new Scanner(System.in);
    static String[] courier=new String[50];//快递号
    static String[] company=new String[50];//公司
    static int[] code=new int[50];   //取件码
    static int len=0;//记录数组元素个数

    public static void main(String[] args) {
        identify();

    }

    /**
     * 身份识别
     */
    private static void identify() {
        System.out.println("=====欢迎使用新职课快递柜=======");
        System.out.println("请输入您的身份:1-快递员,2-用户");
        int num = sc.nextInt();
        while(num>2){
            System.out.println("请重新输入正确的编号");
            num=sc.nextInt();
        }
        if (num==1){
            courierOperator();
        }else if(num==2){
            userOperator();
        }
    }

    /**
     * 用户操作
     */
    private static void userOperator() {
        pickUp(); //取快递
    }

    /**
     * 取快递
     */
    private static void pickUp() {
        System.out.println("请输入取件码:");
        int num = sc.nextInt();
        int i;
        for (i = 0; i < len; i++) {
            if (num==code[i]){
                courier=kickOff(courier,i);//删除快递单号
                company=kickOff(company,i);//删除公司
                code=kickOff(code,i);//删除取件码
                len--;//删除后,数组中实际元素个数减一
                System.out.println("取件成功");
            }
        }
        if (i>len) System.out.println("未找到该快递");
        identify();
    }

    /**
     * 快递员操作
     */
    private static void courierOperator() {
        System.out.println("请选择操作:1-存快递 2-删除快递 3-修改快递信息 4-查看所有快递");
        int num = sc.nextInt();
        while(num>4){
            System.out.println("请重新输入正确的编号");
            num=sc.nextInt();
        }
        switch (num){
            case 1:save();break;  //存快递
            case 2:delete();break; //删除快递
            case 3:modify();break;  //修改快递
            case 4:inquire();break; //查看所有信息
        }
    }

    /**
     * 修改快递
     */
    private static void modify() {
        System.out.println("请输入要修改的快递单号");
        String num = sc.next();
        System.out.println("请输入新的快递单号");
        String newNum = sc.next();
        System.out.println("请输入新的公司名称");
        String newCompany = sc.next();
        for (int i = 0; i < len; i++) {
            if (courier[i].equals(num)) {
                courier[i] = newNum;
                company[i] = newCompany;
            }
        }
        System.out.println("修改成功");
        identify();
    }

    /**
     * 查询所有快递
     */
    private static void inquire() {
        System.out.println("所有快递信息如下:");
        System.out.println("快递单号"+"\t"+"公司名称"+"\t"+"取件码");
        for (int i = 0; i < len; i++) {
            System.out.println(courier[i]+"\t"+company[i]+"\t"+"\t"+code[i]);
        }
        identify();
    }

    /**
     * 删除快递
     */
    private static void delete() {
        System.out.println("请输入要删除的快递单号:");
        String num = sc.next();
        int i;
        for ( i = 0; i < len; i++) {
            if (courier[i].equals(num)){
                courier=kickOff(courier,i);//删除快递单号
                company=kickOff(company,i);//删除公司
                code=kickOff(code,i);//删除取件码
                len--;//删除后,数组中实际元素个数减一
                System.out.println("删除成功");
            }
        }
        if (i>len) System.out.println("未找到快递");
        identify();
    }

    /**
     * 具体删除快递方法
     * @param a
     * @param index
     * @return
     */
    private static String[] kickOff(String[] a,int index){
        String[] b=new String[a.length-1]; //新数组
        System.arraycopy(a,0,b,0,index); //将数组下标index之前元素复制到b
        System.arraycopy(a,index+1,b,index,a.length-1-index);//将index后面元素复制到b
        return b;
    }
    private static int[] kickOff(int[] a,int index){
        int[] b=new int[a.length-1]; //新数组
        System.arraycopy(a,0,b,0,index); //将数组下标index之前元素复制到b
        System.arraycopy(a,index+1,b,index,a.length-1-index);//将index后面元素复制到b
        return b;
    }

    /**
     * 存快递
     */
    private static void save() {
        System.out.println("请输入快递单号:");
        courier[len]=sc.next();
        System.out.println("请输入公司名称:");
        company[len]=sc.next();
        int ramdom = new Random().nextInt(1000);
        code[len]=ramdom;
        len++;
        System.out.println("快递已存入,取件码是"+ramdom);
        identify();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值