JavaEE笔记——快递管理系统架构

目录

 

代码模块分析:MVC

视图层

dao层

调度层

Express对象


代码模块分析:MVC

1.V 视图展示(欢迎,菜单,子菜单)

2.M 数据存储(快递数据)

3.C 调度逻辑(根据视图接收到的用户输入内容,调度数据存取)

视图层

主界面视图

1.读取用户输入流:要用private来修饰权限

2.欢迎语:void类型,打印欢迎语

3.结束语:void类型,打印结束语

4.选择身份菜单menu:返回int类型,无参;返回的是用户输入的数字。

  • 打印功能序号与对应内容

  • 做一些错误输入的异常处理或限制

  • 错误输入则递归返回menu函数

  • 返回数字

快递员界面视图

5.快递员菜单cmenu:逻辑同menu。

6.快递员录入快递提示视图:返回Express快递信息储存对象,无参;

  • 打印录入快递信息的提示语

  • 接收并存储用户输入的内容

  • 使用对象的setxx()方法设置对象的内容,内容为用户输入的内容。

  • 返回Express对象

7.查询单号视图 :返回String类型的数字,无参;

  • 打印提示信息

  • 接收并存储用户输入的内容

  • 返回用户输入的内容

8.显示快递信息视图:void类型,参数为Express对象。仅打印提示语和快递信息(用对象调用方法)。

9.修改快递信息视图:void类型,参数为Express对象。

  • 打印输入快递信息的提示语

  • 接收并存储用户输入的内容

  • 使用对象的setxx()方法设置对象的内容,内容为用户输入的内容。

10.询问是否删除快递视图:返回int类型,无参;返回的是用户输入的数字。

  • 打印功能序号与对应内容

  • 做一些错误输入的异常处理或限制

  • 错误输入则递归返回delete函数

  • 返回数字

11.打印所有快递信息视图:void类型,参数为二维数组。仅打印

  • 两层for循环暴力搜索每个二维数组的元素。如果非空,打印信息

  • 如果都是空的,没有快递信息,打印相应的提示语。

用户界面视图

12.用户输入取件码视图:逻辑同menu

其他视图(类型为void,功能为仅打印)

13.提示快递单号已存在视图

14.提示快递单号不存在视图

15.打印取件码视图

16.打印操作成功视图

dao层

1.初始化相关变量,对象:数组,已存储的数组统计量size,随机码对象等

2.存储快递add():返回Boolean型,表示是否成功存储快递。参数为Express对象。

  • 如果size=100,数组已满,返回false,存储失败

  • 如果size<100

    • 随机生成二维数组下标

    • 生成取件的随机码

3.生成取件随机码 :private int 类型,无参,返回的是取件的随机码

  • 生成随机数字

  • while死循环

    • 用取件码查询快递,返回一个二维数组对象

      • 如果对象为空,则表示生成的取件码在已生成的取件码中不存在的,则返回刚刚生成的取件码

      • 否则循环到有空对象为止。

     

4.根据单号查询快递:返回二维数组对象,参数为string型的整数。

  • 用参数设置Express 对象

  • 用两层for循环暴力搜索二维数组

  • 将对象与二维数组用equals来比较其内容是否相同。必须用Express e.equals(data[i[j)

    • 如果相同,则返回data[i[j].否则返回null.

5.根据取件码查询快递:与根据单号查询快递逻辑类似,但参数是int类型的随机码。并且判断条件更改为:data[i[j.getCode() == code

6.修改快递信息:void类型,两参数(旧快递信息对象,新快递信息对象)

  • 删除旧对象

  • 使用存储快递的add函数添加新对象

7.删除快递信息:void类型,参数为Express对象。

  • 两层for暴力搜索

    • 如果二维数组非空,并且用e.equals(data[i[j)作为条件,

      • 满足,则令data[i[j==null,并退出最外层for循环

8.返回所有快递:返回类型为二维数组,无参。返回整个data

调度层

1.初始化视图对象view和dao层对象。

2.欢迎语

3.弹出身份选择菜单:

  • 死循环

    • 初始化主菜单

    • switch()选择和调用

4.快递员客户端:大框架与身份选择菜单相同

  • 录入快递

    • 打印提示信息

    • 根据单号判断快递是否储存过

      • 储存过,打印快递单号已存在视图

      • 未储存过,用add()方法存储并打印显示快递信息视图

  • 删除快递

    • 输入快递单号

    • 根据单号查找快递对象

      • 对象为空,打印快递单号不存在视图

      • 对象不为空

        • 打印快递对象信息

        • 调用删除delete方法。

  • 修改快递

    • 输入快递单号

    • 根据单号查找快递对象

    • 打印快递信息

      • 对象为空,打印快递单号不存在视图

      • 对象不为空,打印显示快递信息视图

    • 提示修改(v.update(e))

  • 打印所有

    • 返回所有(dao层)

    • 打印所有(view层)

5.用户客户端

  • 取件码获取

  • 根据取件码取出快递

    • 如果取件码为空,打印快递单号不存在视图

    • 如果取件码不为空

      • 打印操作成功视图

      • 打印显示快递信息视图

      • 删除快递信息

 

Express对象

private String num; //快递单号
private String company;//快递公司
private  int code;//快递取件码

 

@Override
public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    Express express = (Express) o;
    return Objects.equals(num, express.num);
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值