使用集合实现快递管理系统!

在这里插入图片描述
首先写一个快递类,将快递的属性和方法写写,这有手就行吧!

package homework.test4;

public class Express {
    //快递单号
    private int expressNum;
    //快递公司名称
    private String companyName;
    //柜子号码
    private int boxNum;
    //取件码
    private int  getExpressNum;
    //用来判断柜子是否存放了东西
    boolean []tag =  new boolean[25];

    @Override
    public String toString() {
        return "Case{" +
                "expressNum=" + expressNum +
                ", companyName='" + companyName + '\'' +
                ", boxNum=" + boxNum +
                ", getExpressNum=" + getExpressNum +
                '}';
    }

    public Express() {
    }

    public Express(int expressNum, String companyName, int boxNum, int getExpressNum) {
        this.expressNum = expressNum;
        this.companyName = companyName;
        this.boxNum = boxNum;
        this.getExpressNum = getExpressNum;
    }

    public int getExpressNum() {
        return expressNum;
    }

    public void setExpressNum(int expressNum) {
        this.expressNum = expressNum;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public int getBoxNum() {
        return boxNum;
    }

    public void setBoxNum(int boxNum) {
        this.boxNum = boxNum;
    }

    public int getGetExpressNum() {
        return getExpressNum;
    }

    public void setGetExpressNum(int getExpressNum) {
        this.getExpressNum = getExpressNum;
    }
}

再写一个管理员类:

package homework.test4;



import java.io.IOException;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

public class Courier extends Express {
    public Courier() {
    }
    //继承父类的数据
    public Courier(int expressNum, String companyName, int getExpressNum, int boxNum) {
        super(expressNum, companyName, getExpressNum, boxNum);
    }

    //快递的录入
    public void add(ArrayList<Express> array) throws IOException {
        int box=0;
        int q = 0;

        //系统自动生成取件码
        Random r = new Random();
        StringBuilder result = new StringBuilder();
        for (int i=0;i<6;i++){
            result.append(r.nextInt(10));
        }
        setGetExpressNum(Integer.parseInt(result.toString()));


        //系统自动生成柜子号码
        for(int i=0;i<tag.length;i++){
            box = r.nextInt(25);
            if(!tag[box]){
                setBoxNum(box);
                /*System.out.println("快递信息已录入。");
                System.out.println("-------感谢使用-------");*/
                tag[box] = true;
                break;
            }
        }
        String b =String.valueOf(box);

        //用户输入快递单号和公司名称,写入集合
        System.out.println("请输入快递单号:");
        Scanner input = new Scanner(System.in);
        int expressNum = input.nextInt();

        for (int i=0;i<array.size();i++){
            Express c = array.get(i);
            if(c.getExpressNum()==expressNum){
                System.out.println("输入的快递单号有重复,请检查后重新输入!");
                q++;
                break;
            }
        }
        if(q==0){
            System.out.println("请输入快递公司名:");
            String companyName = input.next();
            Express c = new Express();
            c.setExpressNum(expressNum);
            c.setBoxNum(box);
            c.setCompanyName(companyName);
            c.setGetExpressNum(getGetExpressNum());
            array.add(c);
            System.out.println("快递添加成功!");
            System.out.println("取件码为:"+getGetExpressNum());
        }
    }


    //管理员的删除操作
    void delete(ArrayList<Express> array){
        Scanner input = new Scanner(System.in);
        System.out.println("请输入要删除的快递单号:");
        int expressNum = input.nextInt();
        for (int i=0;i<array.size();i++){
            Express c = array.get(i);
            if(c.getExpressNum()==expressNum){
                array.remove(i);
                System.out.println("删除该快递成功!");
                break;
            }else if(i==array.size()-1){
                System.out.println("没有找到该快递,请检查快递单号的输入是否正确!");
                break;
            }
        }
    }

    //管理员的快递信息修改操作
    void change(ArrayList<Express> array){
        Scanner input = new Scanner(System.in);
        System.out.println("请输入要修改的快递单号:");
        int expressNum = input.nextInt();
        for (int i=0;i<array.size();i++){
            Express c = array.get(i);
            if(c.getExpressNum()==expressNum){
                System.out.println("请输入要修改的内容");
                System.out.println("1.快递单号  2.快递公司名称");
                String q = input.next();
                System.out.println("请输入修改后的内容:");
                String date = input.next();
                switch (q){
                    case "1":c.setExpressNum(Integer.valueOf(date));
                        System.out.println("修改成功!");
                        break;
                    case "2":c.setCompanyName(date);
                        System.out.println("修改成功!");
                        break;
                }
            }else if(i==array.size()-1){
                System.out.println("没有找到该快递,请检查快递单号的输入是否正确!");
                break;

            }
        }

    }


    //管理员的查看所有快递信息操作
    void lookup(ArrayList<Express> array){
        if(array.size()==0){
            System.out.println("暂时没有快递!");
        }else {
            System.out.println();
            for (int i=0;i<array.size();i++){
                Express c = array.get(i);
                System.out.println("柜子号:"+c.getBoxNum());
                System.out.println("快递单号:"+c.getExpressNum());
                System.out.println("公司名称:"+c.getCompanyName());
                System.out.println("取件码:"+c.getGetExpressNum());
            }
        }
    }
}

用户类:

package homework.test4;



import java.util.ArrayList;
import java.util.Scanner;

public class Uesr extends Express {
    public Uesr() {
    }

    public Uesr(int expressNum, String companyName, int boxNum, int getExpressNum) {
        super(expressNum, companyName, boxNum, getExpressNum);
    }

    //客户取件
    public void getexpress(ArrayList<Express> array){
        System.out.println("--------------");
        Scanner input = new Scanner(System.in);
        System.out.println("欢迎取件,请输入6位取件码");
        /*String expressNum = input.next();
        int ex = Integer.parseInt(expressNum);*/
        int expressNum = input.nextInt();
        //flag定义的是一个有25个长度的布尔类型的数组,用来标记存入柜子的类型
        boolean flag = true;
        for(int i=0;i<array.size();i++){
            Express c = array.get(i);
            if(c.getExpressNum()!=0){
                if(c.getExpressNum()==expressNum){
                    System.out.println("您的快递单号为:"+c.getExpressNum()+",在第:"+c.getBoxNum()+"号柜,快递柜已经成功打开");
                    tag[i] = false;
                    flag = false;
                    System.out.println("------欢迎下次使用------");
                }
            }
        }
        if(flag){
            System.out.println("未找到指定快递,请尝试重新输入或联系快递公司");
        }
    }
}



实现类:

package homework.test4;


import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;

public class Demo {
    public static void main(String[] args) throws IOException {

        ArrayList<Express> array = new ArrayList<Express>();

        while(true){
            System.out.println("请输入你的身份:1.管理员,2.用户,3.退出");
            Scanner input = new Scanner(System.in);
            int a = input.nextInt();
            if(a==1){
                Courier co = new Courier();
                System.out.println("请选择管理员功能:1.快递录入,2.删除快递,3.修改快递,4.查看所有快递,5.退出");
                while (true) {
                    int b = input.nextInt();
                    if (b == 1) {
                        co.add(array);
                        break;
                    } else if (b == 2) {
                        co.delete(array);
                        break;
                    } else if (b == 3) {
                        co.change(array);
                        break;
                    } else if (b == 4) {
                        co.lookup(array);
                        break;
                    }else {
                        break;
                    }
                }
            }else if(a==2){
                Uesr cu = new Uesr();
                cu.getexpress(array);
            }else if(a==3){
                System.out.println("再见!");
                break;
            }else {
                System.out.println("您输入的号码有误,请重新输入!");
            }
        }

    }
}



在这里插入图片描述
废话时间:

如果客官觉得食用合适可不可以给一个免费的赞!谢谢谢了!慢走客官!建议打包收藏,下次再来。店小二QQ:309021573,欢迎骚扰!

猜你喜欢

转载自blog.csdn.net/AzirBoDa/article/details/113179290