基于控制台的快递管理系统(学习总结)

本文介绍了作者在学习过程中创建的基于控制台的快递管理系统,系统包含两种身份:快递小哥和取件人。通过使用二维数组和ArrayList、Map实现快递的存取、修改和查询功能。作者反思了最初的数组设计方案的不足,并分享了改进思路,强调了在编程时应先明确整体逻辑,再逐步完善细节的重要性。
摘要由CSDN通过智能技术生成

学习过程中写了两版,总结一下收获吧。

大体要求:

有两种身份,分为快递小哥和取快递的人,快递小哥可以存快递,删除快递,修改快递信息,查看当前所有的快递。

原来的思路:(代码被我不小心删了)

存储快递信息,然后取出快递信息,更改快递信息等操作其实一下子就是能想到数组,于是我利用了一个二维数组,模拟快递柜子,里面存放用户输入的快递信息,为了实现快递格子的取件功能,和单号查询功能我再次新建了两个二维数组,然后在给第一个二维数组存信息的时候,给第二第三个数组同步存放单号、取件码。也就是说有三个二维数组,里面分别存了快递信息,取件码,单号,这些数据对应的下标是一致的,但是这种操作的方式会感觉非常麻烦。

修改后的思路:

利用arraylist的set()方法实现快递柜子的空间判断,也实现了取件码取件功能,利用map的key存单号,然后value放那些信息。
附上代码

入口类

public class Main {
   
    private static InputJudge i=new InputJudge();
    private static Date d=new Date();
    public static void main(String[] args) {
   
        //开始
        i.welcome();
        //用户身份判断
        int menu=i.view();
        switch (menu){
   
            case 3:
                break;
            case 1:
                runner();
                break;
            case 2:
                buyer();
                break;
        }
        //结束
        i.end();
    }
    private static void buyer() {
   
        d.finddelivery();
        //找数组中有没有这个取件码
    }
    private static void runner() {
   
        int sight= i.sender();
        //快递小哥目标判断
        all: while(true){
   
            xun: switch (sight) {
   
                case 1: {
   
                    d.adddelivery();
                }
                case 2: {
   
                    //删除快递
                    delete();
                }
                case 3: {
   
                    //修改
                    change();
                }
                case 4: {
   
                    //查看当前所有快递
                    see();
                    break all;
                }
            }
        }
    }
    private static void delete(){
   
        int cas =i.delete();
        switch (cas){
   
            case 1:{
   
                d.deldelivery();
            }
            case 2:{
   
                break;
            }
        }
    }
    private static void change(){
   

        int cas =i.Reput();
        switch (cas){
   
            case 1:{
   
                d.readddelivery();
            }
            case 2:{
   
                break;
            }
        }
    }
    private static void see() {
   

        int cas = i.print();
        switch (cas) {
   
            case 1: {
   
                d.print(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值