快递 E 栈系统04(数组+面向对象+集合+IO)

写再前面的话:

1,本文为Java学习第五部分第一阶段所有项目回顾(快递e站部分-对应Java体系第一部分第三阶段-11-IO)集合那里我也没有把练习作业写上,当然不止这一个练习作业。哪些作业在网盘里都有对应体现。
2,整体项目系列博客(包括整体快递e站系列)
3,完整的Java体系链接(比你想的更多的Java内容)

需求介绍:

在这里插入图片描述

涉及到的知识点:

上一版:
面向对象+集合
这一版:
面向对象+集合+IO

代码运行成功截图:

查看所有快递

在这里插入图片描述

快递录入

在这里插入图片描述

快递删除

在这里插入图片描述

快递修改

在这里插入图片描述

用户取快递

在这里插入图片描述

思路分析:

上一版的流程图如下:
在这里插入图片描述
以上一个快递 E 栈系统03(数组+面向对象+集合)为基础讲一下这个。
首先:
新增加了一个IO工具类,用来读写文件。(从指定的文件读取数据,写入数据到指定文件)

dao层:
1,创建了整个项目存储数据的文件(静态私有不可变变量),
2,创建了一个对应的静态代码快用来创建存储数据的文件。开始时,确定快递柜大小时初始化文件,IO工具类读取文件。
3,添加/删除快递时,IO工具类写入对应信息。

异常类,test类。main层,view层,bean层都无变化

然后我们迭代一下流程图

在这里插入图片描述

代码

bean层

package com.wyh.rewu.bean;
import java.io.Serializable;

/**
 * 快递实体类
 */
public class Expresss implements Serializable {
   

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

    // 坐标
    public Integer x;
    public Integer y;

    public String getNumber() {
   
        return number;
    }

    public void setNumber(String number) {
   
        this.number = number;
    }

    public String getCompany() {
   
        return company;
    }

    public void setCompany(String company) {
   
        this.company = company;
    }

    public int getCode() {
   
        return code;
    }

    public void setCode(int code) {
   
        this.code = code;
    }

    public Integer getX() {
   
        return x;
    }

    public void setX(Integer x) {
   
        this.x = x;
    }

    public Integer getY() {
   
        return y;
    }

    public void setY(Integer y) {
   
        this.y = y;
    }

    public Expresss() {
   
    }

    public Expresss(String number, String company, int code, Integer x, Integer y) {
   
        this.number = number;
        this.company = company;
        this.code = code;
        this.x = x;
        this.y = y;
    }

    @Override
    public String toString() {
   
        return "Expresss{" +
                "number='" + number + '\'' +
                ", company='" + company + '\'' +
                ", code=" + code +
                ", x=" + x +
                ", y=" + y +
                '}';
    }
}

dao层

package com.wyh.rewu.dao;
import com.wyh.rewu.bean.Expresss;
import com.wyh.rewu.util.IOUtil;
import java.io.EOFException;
import java.io.File;
import java.io.IOException;
import java.io.Serializable;
import java.util.*;

public class ExpressDao{
   

    boolean[][] cabinet = new boolean[10][];            // 二维数组表示快递柜
    HashMap<Integer, Expresss> data = new HashMap<>();   // HashMap代替二维数组表示快递柜
    List<Expresss> expressList = new ArrayList<>(data.values()); // 存放所有的Express对象

    private int size=0; // 当前存储的快递数目(便于判断是否还有空位 否则在随机生成取件码时可能陷入死循环)
    private Random random = new Random();               // 用于生成随机数

    private static final String FILE_NAME = "D:\\eclipse-workspace\\C_XX_HeXinLeiKu\\c_XX_IO\\IO\\express.txt"; // 整个项目存储数据的文件

    static {
   
        System.out.println("静态方法执行");
        File file = new File(FILE_NAME);
        if (!file.exists()){
    // 如果文件不存在,就创建一个
            try {
   
                if(file.createNewFile()){
   
                    System.out.println("第一次启动项目,创建存储文件成功");
                }
            } catch (IOException e) {
   
                //e.printStackTrace();
                System.out.println(e.getMessage());
            }
        }
    }

    {
   
        System.out.println("初始化数据");
        for(int i = 0; i < 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值