【技能实训】DMS数据挖掘项目-Day04

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介: 【技能实训】DMS数据挖掘项目-Day04

任务5

【任务5.3】创建基础匹配实体类

在com.qst.dms.entity下创建MatchedDataBase.java

该类中暂时不用定义任何方法

程序设计

package com.qst.dms.entity;
public class MatchedDataBase {
}

【任务5.3.1】日志数据匹配类,对日志实体数据进行匹配,对同一个用户在同一个IP地址登录登出信息进行匹配。

在com.qst.dms.entity 下创建MatchedLogRec.java,继承MatchedDataBase类

功能要求:

  1. 成员属性及相关方法如下
    private LogRec login;
  private LogRec logout;
  // user用户登录名
  public String getUser() {
    return login.getUser();
  }
  // 登入时刻
  public Date getLogInTime() {
    return login.getTime();
  }
  // 登出时刻
  public Date getLogoutTime() {
    return logout.getTime();
  }
  // 登入记录
  public LogRec getLogin() {
    return login;
  }
  // 登出记录
  public LogRec getLogout() {
    return logout;
  }
  public MatchedLogRec() {
  }
  public MatchedLogRec(LogRec login, LogRec logout) {
}
  1. 构造方法
toString(): login.toString() + " | " + logout.toString()

程序设计

package com.qst.dms.entity;
import java.util.Date;
public class MatchedLogRec extends MatchedDataBase {
    private LogRec login;
    private LogRec logout;
    // user用户登录名
    public String getUser() {
        return login.getUser();
    }
    // 登入时刻
    public Date getLogInTime() {
        return login.getTime();
    }
    // 登出时刻
    public Date getLogoutTime() {
        return logout.getTime();
    }
    // 登入记录
    public LogRec getLogin() {
        return login;
    }
    // 登出记录
    public LogRec getLogout() {
        return logout;
    }
    public MatchedLogRec() {
    }
    public MatchedLogRec(LogRec login, LogRec logout) {
        this.login = login;
        this.logout = logout;
    }
    @Override
    public String toString() {
        return login.toString() + " | " + logout.toString();
    }
}

【任务5.3.2】修改LogRecService类,在该类中增加显示匹配日志信息的showMatchLog方法。

// 匹配日志信息输出
  public void showMatchLog(MatchedLogRec... matchLogs) {
    ……
    }

程序设计

package com.qst.dms.service;
import com.qst.dms.entity.LogRec;
import com.qst.dms.entity.MatchedLogRec;
import java.util.Date;
import java.util.Scanner;
public class LogRecService {
    private Scanner scanner;
    public LogRecService() {
        scanner = new Scanner(System.in);
    }
    public LogRec inputLog() {
        System.out.println("请输入ID标识:");
        int id = scanner.nextInt();
        Date nowDate = new Date();
        System.out.println("请输入地址:");
        String address = scanner.next();
        int type = LogRec.GATHER;
        System.out.println("请输入登录用户名:");
        String user = scanner.next();
        System.out.println("请输入主机IP:");
        String ip = scanner.next();
        int logType;
        while (true) {
            try {
                System.out.println("请输入登录状态(1表示登录,0表示登出):");
                logType = scanner.nextInt();
                if (logType == 0 || logType == 1) {
                    break;
                } else {
                    throw new IllegalArgumentException("非法的登录状态");
                }
            } catch (Exception e) {
                System.out.println("输入错误,请重新输入");
                scanner.nextLine();
            }
        }
        return new LogRec(id, nowDate, address, type, user, ip, logType);
    }
    public void showLog(LogRec... logRecs) {
        System.out.println("日志信息:");
        for (LogRec logRec : logRecs) {
            System.out.println(logRec);
        }
    }
    // 匹配日志信息输出
    public void showMatchLog(MatchedLogRec... matchLogs) {
        System.out.println("匹配日志信息:");
        for (MatchedLogRec matchLog : matchLogs) {
            System.out.println(matchLog);
        }
    }
}

【任务5.4.1】物流数据匹配类,对物流实体数据进行匹配,对发货、送货、签收物流信息进行匹配。

在com.qst.dms.entity 下创建MatchedTransport.java,继承MatchedDataBase类

功能要求:

  1. 成员属性及相关方法如下
    private Transport send;
  private Transport trans;
  private Transport receive;
  public Transport getSend() {
    return send;
  }
  public void setSend(Transport send) {
    this.send = send;
  }
  public Transport getTrans() {
    return trans;
  }
  public void setTrans(Transport trans) {
    this.trans = trans;
  }
  public Transport getReceive() {
    return receive;
  }
  public void setReceive(Transport receive) {
    this.receive = receive;
  1. 构造方法
toString(): send.toString()+"|"+trans.toString()+"|"+receive;

程序设计

package com.qst.dms.entity;
public class MatchedTransport extends MatchedDataBase {
    private Transport send;
    private Transport trans;
    private Transport receive;
    public MatchedTransport(Transport send, Transport tran, Transport rec) {
        this.send=send;
        this.trans=tran;
        this.receive=rec;
    }
    public MatchedTransport() {
    }
    public Transport getSend() {
        return send;
    }
    public void setSend(Transport send) {
        this.send = send;
    }
    public Transport getTrans() {
        return trans;
    }
    public void setTrans(Transport trans) {
        this.trans = trans;
    }
    public Transport getReceive() {
        return receive;
    }
    public void setReceive(Transport receive) {
        this.receive = receive;
    }
    @Override
    public String toString() {
        return send.toString() + " | " + trans.toString() + " | " + receive.toString();
    }
}

【任务5.4.2】修改TransportService类,在该类中增加显示匹配日志信息的showMatchTransport方法。

// 匹配的物流信息输出
public void showMatchTransport(MatchedTransport... matchTrans) {

程序设计

package com.qst.dms.service;
import com.qst.dms.entity.MatchedLogRec;
import com.qst.dms.entity.MatchedTransport;
import com.qst.dms.entity.Transport;
import java.util.Date;
import java.util.Scanner;
public class TransportService {
    private Scanner scanner;
    public TransportService() {
        scanner = new Scanner(System.in);
    }
    public Transport inputTransport() {
        System.out.println("请输入ID标识:");
        int id = scanner.nextInt();
        Date nowDate = new Date();
        System.out.println("请输入地址:");
        String address = scanner.next();
        int type = Transport.GATHER;
        System.out.println("请输入货物经手人:");
        String handler = scanner.next();
        System.out.println("请输入收货人:");
        String reciver = scanner.next();
        int transportType;
        while (true) {
            try {
                System.out.println("请输入物流状态(1表示发货中,2表示送货中,3表示已签收):");
                transportType = scanner.nextInt();
                if (transportType ==1 || transportType == 2 || transportType==3) {
                    break;
                } else {
                    throw new IllegalArgumentException("非法的物流状态");
                }
            } catch (Exception e) {
                System.out.println("输入错误,请重新输入");
                scanner.nextLine();
            }
        }
        return new Transport(id, nowDate, address, type, handler, reciver, transportType);
    }
    public void showTransport(Transport... transports) {
        System.out.println("物流信息:");
        for (Transport transport : transports) {
            System.out.println(transport);
        }
    }
    // 匹配物流信息输出
    public void showMatchTransport(MatchedTransport... matchTrans) {
        System.out.println("匹配物流信息:");
        for (MatchedTransport matchTran : matchTrans) {
            System.out.println(matchTran);
        }
    }
}

【任务5.5】创建测试类,测试任务5.3中的程序,演示日志信息的匹配及打印输出

在com.qst.dms.dos 下创建MatchLogDemo.java

测试要求:

  1. LogRec类数据

id, time, address, type, user, ip,logType

133,2020-7-1,address1,3,lee,10.12.12.124, 1

129,2020-6-29,address1,3,lee,10.12.12.124, 0

127,2020-6-21,address1,3,lee,10.12.12.124, 1

125,2020-6-19,address1,3,lee,10.12.12.124, 0

123,2020-5-1,address1,3,lee,10.12.12.124, 1

  1. 通过LogRec类数据创建MatchedLogRec数据数组
  2. 打印输出MatchedLogRec数据

程序设计

package com.qst.dms.dos;
import com.qst.dms.entity.LogRec;
import com.qst.dms.entity.MatchedLogRec;
import com.qst.dms.service.LogRecService;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MatchLogDemo {
    public static void main(String[] args) {
        // 创建LogRec数据数组
        LogRec[] logRecs = new LogRec[5];
        try {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            logRecs[0] = new LogRec(133, dateFormat.parse("2020-07-01"), "address1", 3,
                    "lee", "10.12.12.124", 1);
            logRecs[1] = new LogRec(129, dateFormat.parse("2020-06-29"), "address1", 3,
                    "lee", "10.12.12.124", 0);
            logRecs[2] = new LogRec(127, dateFormat.parse("2020-06-21"), "address1", 3,
                    "lee", "10.12.12.124", 1);
            logRecs[3] = new LogRec(125, dateFormat.parse("2020-06-19"), "address1", 3,
                    "lee", "10.12.12.124", 0);
            logRecs[4] = new LogRec(123, dateFormat.parse("2020-05-01"), "address1", 3,
                    "lee", "10.12.12.124", 1);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        // 创建MatchedLogRec数据数组
        MatchedLogRec[] matchedLogRecs = new MatchedLogRec[2];
        matchedLogRecs[0] = new MatchedLogRec(logRecs[0], logRecs[1]);
        matchedLogRecs[1] = new MatchedLogRec(logRecs[2], logRecs[3]);
        // 创建LogRecService对象并打印输出MatchedLogRec数据
        LogRecService logRecService = new LogRecService();
        logRecService.showMatchLog(matchedLogRecs);
    }
}

测试

【任务5.6】创建测试类,测试任务5.4中的程序,演示物流信息的匹配及打印输出

在com.qst.dms.dos 下创建MatchTransportDemo.java

测试要求:

  1. Transport类数据数组

id, time, address, type,handler, reciver,transportType

233,2020-7-1,suzhou,3,lee,wang, 1

229,2020-6-29,hangzhou,2,lee,wang, 1

227,2020-6-21,nanjing,4,lee,sun, 2

225,2020-6-19,suzhou,5,lee,liu, 2

223,2020-5-1,nanjing,6,lee,zhang, 3

  1. 通过Transport类数据创建MatchedTransport数据数组
  2. 打印输出匹配的MatchedTransport数据

程序设计

package com.qst.dms.dos;
import com.qst.dms.entity.MatchedTransport;
import com.qst.dms.entity.Transport;
import com.qst.dms.service.TransportService;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MatchTransportDemo {
    public static void main(String[] args) {
        // 创建Transport数据数组
        Transport[] transports = new Transport[5];
        try {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            transports[0] = new Transport(233, dateFormat.parse("2020-07-01"), "suzhou", 3,
                    "lee", "wang", 1);
            transports[1] = new Transport(229, dateFormat.parse("2020-06-29"), "hangzhou", 2,
                    "lee", "wang", 1);
            transports[2] = new Transport(227, dateFormat.parse("2020-06-21"), "nanjing", 4,
                    "lee", "sun", 2);
            transports[3] = new Transport(225, dateFormat.parse("2020-06-19"), "suzhou", 5,
                    "lee", "liu", 2);
            transports[4] = new Transport(223, dateFormat.parse("2020-05-01"), "nanjing", 6,
                    "lee", "zhang", 3);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        // 创建MatchedTransport数据数组
        MatchedTransport[] matchedTransports = new MatchedTransport[2];
        // 创建TransportService对象并打印输出匹配的MatchedTransport数据
        TransportService transportService = new TransportService();
        transportService.showMatchTransport(matchedTransports);
    }
}

测试

目录
相关文章
|
8月前
|
监控 数据挖掘 数据库
【技能实训】DMS数据挖掘项目(完整程序) 1
【技能实训】DMS数据挖掘项目(完整程序)
81 0
|
8月前
|
存储 数据挖掘 测试技术
【技能实训】DMS数据挖掘项目(完整程序)2
【技能实训】DMS数据挖掘项目(完整程序)
55 0
|
8月前
|
数据挖掘 数据库 数据库管理
【技能实训】DMS数据挖掘项目-Day14
【技能实训】DMS数据挖掘项目-Day14
45 1
|
1月前
|
前端开发 Java 数据管理
javaWeb基于SSM框架开发的社区医疗数据管理系统【项目源码+数据库脚本+报告】
javaWeb基于SSM框架开发的社区医疗数据管理系统【项目源码+数据库脚本+报告】
|
1月前
|
数据管理 程序员 人工智能
后台数据管理系统 - 项目架构设计【黑马程序员】
后台数据管理系统 - 项目架构设计【黑马程序员】
180 0
后台数据管理系统 - 项目架构设计【黑马程序员】
|
8月前
|
存储 数据挖掘 Java
【技能实训】DMS数据挖掘项目-Day15
【技能实训】DMS数据挖掘项目-Day15
42 0
|
1月前
|
Web App开发 缓存 数据库
DMS产品常见问题之DMS数据规定失败如何解决
DMS(数据管理服务,Data Management Service)是阿里云提供的一种数据库管理和维护工具,它支持数据的查询、编辑、分析及安全管控;本汇总集中了DMS产品在实际使用中用户常遇到的问题及其相应的解答,目的是为使用者提供快速参考,帮助他们有效地解决在数据管理过程中所面临的挑战。
|
1月前
|
数据管理 数据库 数据安全/隐私保护
数据管理与持久化:深度解析Docker数据卷
Docker 数据卷在容器化应用中扮演着关键角色,它们提供了一种灵活且可持久化的方式来处理应用数据。本文将深入讨论 Docker 数据卷的基本概念、使用方法以及一系列高级应用场景,通过更为丰富和实际的示例代码,帮助大家全面掌握数据卷的使用和管理。
|
6天前
|
SQL 存储 数据管理
数据管理DMS产品使用合集之如何把整个数据库的表和数据全部导出来
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
1月前
|
JavaScript 前端开发 数据管理
扁平数据转树形结构,让数据管理更清晰
扁平数据转树形结构,让数据管理更清晰

热门文章

最新文章