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

文章目录

  • 任务3
    • 【任务3.1】实现日志实体类
    • 【任务3.2】创建日志业务类,实现日志信息的采集及打印输出
    • 【任务3.3】创建日志测试类,测试任务3.2中的程序,演示日志信息的采集及打印输出
  • 任务4
    • 【任务4.1】物流实体信息类
    • 【任务4.2】创建物流业务类,实现物流信息的采集及打印输出
    • 【任务4.3】创建物流测试类,测试任务4.2中的程序,演示物流信息的采集及打印输出

任务3

【任务3.1】实现日志实体类

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

功能要求:

  1. 成员属性如下
    // ID标识private int id;// 时间private Date time;// 地点private String address;// 状态private int type;/*** 登录用户名*/private String user;/*** 登录用户主机IP地址*/private String ip;/*** 登录状态:登录、登出*/private int logType;/*** 登录常量LOG_IN、登出常量LOG_OUT*/public static final int LOG_IN = 1;public static final int LOG_OUT = 0;// 状态常量(公共的静态常量)public static final int GATHER = 1;// "采集"public static final int MATHCH = 2;// "匹配";public static final int RECORD = 3;// "记录";public static final int SEND = 4;// "发送";public static final int RECIVE = 5;// "接收";public static final int WRITE = 6;// "归档";public static final int SAVE = 7;// "保存";
  1. 构造方法、get/set方法、toString()。
  2. 实现toArray()方法,将对象的属性数据,转换为字符数组。

程序设计

package com.qst.dms.entity;import java.util.Date;public class LogRec {// ID标识private int id;// 时间private Date time;// 地点private String address;// 状态private int type;/*** 登录用户名*/private String user;/*** 登录用户主机IP地址*/private String ip;/*** 登录状态:登录、登出*/private int logType;/*** 登录常量LOG_IN、登出常量LOG_OUT*/public static final int LOG_IN = 1;public static final int LOG_OUT = 0;// 状态常量(公共的静态常量)public static final int GATHER = 1;// "采集"public static final int MATCH = 2;// "匹配";public static final int RECORD = 3;// "记录";public static final int SEND = 4;// "发送";public static final int RECEIVE = 5;// "接收";public static final int WRITE = 6;// "归档";public static final int SAVE = 7;// "保存";public static final String LogTypeArray[]=new String[]{"LogOut","LogIn"};public LogRec(int id, Date time, String address, int type, String user, String ip, int logType) {this.id = id;this.time = time;this.address = address;this.type = type;this.user = user;this.ip = ip;this.logType = logType;}public LogRec() {}public int getId() {return id;}public void setId(int id) {this.id = id;}public Date getTime() {return time;}public void setTime(Date time) {this.time = time;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public int getType() {return type;}public void setType(int type) {this.type = type;}public String getUser() {return user;}public void setUser(String user) {this.user = user;}public String getIp() {return ip;}public void setIp(String ip) {this.ip = ip;}public int getLogType() {return logType;}public void setLogType(int logType) {this.logType = logType;}@Overridepublic String toString() {return "LogRec:" +"\nid=" + id +"\ntime=" + time +"\naddress='" + address +"\ntype=" + type +"\nuser='" + user +"\nip='" + ip +"\nlogType=" + LogTypeArray[logType] +"\n";}public String[] toArray() {String[] arr = new String[7];arr[0] = String.valueOf(id);arr[1] = String.valueOf(time);arr[2] = address;arr[3] = String.valueOf(type);arr[4] = user;arr[5] = ip;arr[6] = String.valueOf(LogTypeArray[logType]);return arr;}}

【任务3.2】创建日志业务类,实现日志信息的采集及打印输出

在com.qst.dms.service 下创建LogRecService.java

功能要求:

  1. 实现inputLog方法
public LogRec inputLog() {……}
        // 提示用户输入ID标识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();// 提示用户输入主机IPSystem.out.println("请输入 主机IP:");// 接收键盘输入的字符串信息String ip = scanner.next();// 提示用户输入登录状态、登出状态System.out.println("请输入登录状态:1是登录,0是登出");int logType = scanner.nextInt();

在inputLog方法中实现,在控制台模拟接收数据,并返回日志数据对象

  1. 实现showLog方法,可打印输出日志信息
public void showLog(LogRec... logRecs) {……}

程序设计

package com.qst.dms.service;import com.qst.dms.entity.LogRec;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);}}
}

【任务3.3】创建日志测试类,测试任务3.2中的程序,演示日志信息的采集及打印输出

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

功能要求:采集2组日志信息,放到数组中,再打印输出

package com.qst.dms.dos;import com.qst.dms.entity.LogRec;
import com.qst.dms.service.LogRecService;public class LogRecDemo {public static void main(String[] args) {LogRecService logRecService = new LogRecService();// 采集日志信息LogRec logRec1 = logRecService.inputLog();LogRec logRec2 = logRecService.inputLog();// 放到数组中LogRec[] logRecArray = {logRec1, logRec2};// 打印输出logRecService.showLog(logRecArray);}
}

测试:
要求全部可能情况都要测一遍
1

存在哪些可能的bug及修复?

当登陆状态输入非0非1的其他字符时,程序会报错,应该通过异常处理当用户输入非0非1的其他字符时,提醒用户重新输入。

任务4

【任务4.1】物流实体信息类

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

功能要求:

  1. 成员属性如下
    // ID标识private int id;// 时间private Date time;// 地点private String address;// 状态private int type;/*** 经手人*/private String handler;/*** 收货人*/private String reciver;/*** 物流状态*/private int transportType;/*** 物流状态常量:发货中, 送货中, 已签收*/public static final int SENDDING = 1;// 发货中public static final int TRANSPORTING = 2;// 送货中public static final int RECIEVED = 3;// 已签收// 状态常量public static final int GATHER = 1;// "采集"public static final int MATHCH = 2;// "匹配";public static final int RECORD = 3;// "记录";public static final int SEND = 4;// "发送";public static final int RECIVE = 5;// "接收";public static final int WRITE = 6;// "归档";public static final int SAVE = 7;// "保存";
  1. 构造方法、get/set方法、toString()
  2. 实现toArray()方法,将对象的属性数据,转换为字符数组。

程序设计

package com.qst.dms.entity;import java.util.Date;public class Transport {private int id;private Date time;private String address;private int type;private String handler;private String reciver;private int transportType;public static final int SENDDING = 1;public static final int TRANSPORTING = 2;public static final int RECIEVED = 3;public static final int GATHER = 1;public static final int MATHCH = 2;public static final int RECORD = 3;public static final int SEND = 4;public static final int RECIVE = 5;public static final int WRITE = 6;public static final int SAVE = 7;public static final String TransportArray[]=new String[]{null,"SENDDING","TRANSPORTING","RECIEVED"};public Transport() {}public Transport(int id, Date time, String address, int type, String handler, String reciver, int transportType) {this.id = id;this.time = time;this.address = address;this.type = type;this.handler = handler;this.reciver = reciver;this.transportType = transportType;}public int getId() {return id;}public void setId(int id) {this.id = id;}public Date getTime() {return time;}public void setTime(Date time) {this.time = time;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public int getType() {return type;}public void setType(int type) {this.type = type;}public String getHandler() {return handler;}public void setHandler(String handler) {this.handler = handler;}public String getReciver() {return reciver;}public void setReciver(String reciver) {this.reciver = reciver;}public int getTransportType() {return transportType;}public void setTransportType(int transportType) {this.transportType = transportType;}public String[] toArray() {String[] arr = new String[8];arr[0] = String.valueOf(id);arr[1] = String.valueOf(time);arr[2] = address;arr[3] = String.valueOf(type);arr[4] = handler;arr[5] = reciver;arr[6] = TransportArray[transportType];return arr;}@Overridepublic String toString() {return "Transport:" +"\nid=" + id +"\ntime=" + time +"\naddress=" + address +"\ntype=" + type +"\nhandler=" + handler +"\nreciver=" + reciver +"\ntransportType=" + TransportArray[transportType]+"\n";}
}

【任务4.2】创建物流业务类,实现物流信息的采集及打印输出

在com.qst.dms.service 下创建TransportService.java

功能要求:

  1. 实现inputTransport方法
public Transport inputTransport() {……
}

在inputTransport方法中实现,在控制台模拟接收数据,并返回物流数据

        // 提示用户输入ID标识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();// 提示用户输入主机IPSystem.out.println("请输入 收货人:");// 接收键盘输入的字符串信息String reciver = scanner.next();// 提示用于输入物流状态System.out.println("请输入物流状态:1发货中,2送货中,3已签收");// 接收物流状态int transportType = scanner.nextInt();
  1. 实现showTransport方法,可打印输出物流信息
public void showTransport(Transport... transports) {……
}

程序设计

package com.qst.dms.service;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);}}
}

【任务4.3】创建物流测试类,测试任务4.2中的程序,演示物流信息的采集及打印输出

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

功能要求:采集2组物流信息,放到数组中,再打印输出

package com.qst.dms.dos;import com.qst.dms.entity.Transport;
import com.qst.dms.service.TransportService;public class TransportDemo {public static void main(String[] args) {TransportService transportService = new TransportService();// 采集物流信息Transport transport1 = transportService.inputTransport();Transport transport2 = transportService.inputTransport();// 放到数组中Transport[] transportArray = {transport1, transport2};// 打印输出transportService.showTransport(transportArray);}
}

测试:
要求全部可能情况都要测一遍

2

存在哪些可能的bug及修复?

当物流状态输入非1非2非3的其他字符时,程序会报错,应该通过异常处理当用户输入非1非2非3的其他字符时,提醒用户重新输入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/14724.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python一行命令搭建HTTP服务器并外网访问+-+内网穿透

文章目录 1.前言2.本地http服务器搭建2.1.Python的安装和设置2.2.Python服务器设置和测试 3.cpolar的安装和注册3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 转载自远程内网穿透的文章:【Python】快速简单搭建HTTP服务器并公网访问「cpolar内网穿透…

SQL高级教程

SQL TOP 子句 TOP 子句 TOP 子句用于规定要返回的记录的数目。 对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。 注释:并非所有的数据库系统都支持 TOP 子句。 SQL Server 的语法: SELECT TOP number|percent column_name(s) F…

JMeter元件

【测试计划–线程组/Threads(Users)】 模拟大量用户负载的情况,线程组可以设置运行的线程数(多少线程就代表多少用户); 【测试计划–线程组–取样器/sampler】 用来模拟用户操作,向服务器发出http请求、Webservice请求、java请求等&#xf…

node搭建本地https和wss服务(SSL证书安全)

node 后台 app.js配置 const express require(express) //加载express资源 const bodyParserrequire("body-parser")//一个Express中间件,用于解析HTTP请求体,获得请求的数据const app express() //返回一个express服务器对象 const https require(https) const …

Django_视图中的request对象详解(八)

目录 Request 属性 方法 QueryDict 源码等资料获取方法 Request 当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并创建一个包含请求元数据的 HttpRequest 对象 传入该函数的第一个参数,常用request表示。 HttpRequest实…

第 353 场LeetCode周赛

A 找出最大的可达成数字 签到题 class Solution { public:int theMaximumAchievableX(int num, int t) {return numt*2;} };B 达到末尾下标所需的最大跳跃次数 动态规划: 定义 p i p_i pi​为跳至 i i i处所需的最大跳跃次数, 有状态转移方程 p i m a x { p j 1 ∣ 0 ≤ j &…

3D 旋转木马

在工作中我们常用到3D装换和3D位移 主要知识点 3D位移:transale3d(x,y,z)3D旋转:rotate3d(x,y,z)透视:perspective3D呈现 transfrom-style 1、 transale3d translform: translform:translateX(100px):仅仅是在x轴上移动translform:transl…

HBuilder:开发者之梦的实现

目录 引言关于HBuilderHBuilder的优点:HBuilder的缺点:HBuilder使用的简单示例总结 Hbuilder 官网 引言 在当今数字化时代,移动应用程序开发已经成为了一个全球热门的领域。伴随着智能手机和移动设备的普及,人们对于移动应用的需求…

python使用代理ip——案例

python爬虫是指使用Python编写的程序,通过网络爬取信息并提取有效数据。它通过模拟浏览器请求,获取网页数据,并通过解析HTML/XML等文档结构,从中提取数据。 Python爬虫常用的库和工具包括: Requests:用于…

UE4/5 GAS技能系统入门

Unreal的GAS技能系统是针对游戏技能管理的一套逻辑封装方案,这套方案考虑面较广,包括了Cooldowns技能冷却、允许多技能同时释放、GameplayTags的使用、特殊的事件触发等,今天就来学习一下。 1.激活插件与C部分配置 1.1 创建测试工程&#x…

【简单认识LVS及LVS-NAT负载均衡群集的搭建】

文章目录 一、LVS群集简介1、群集的含义2、性能扩展方式3、群集的分类4、负载均衡群集架构1、负载均衡的结构 5、三种负载调度工作模式1、NAT模式2、TUN模式3、DR模式 二、LVS虚拟服务器1、Linux Virtual Server简介2、启用LVS虚拟服务3、LVS调度算法(1)…

基于单片机的教室智能照明台灯控制系统的设计与实现

功能介绍 以51单片机作为主控系统;LCD1602液晶显示当前时间、年月日、时分秒、前教室人数;2路红外探头用来感应当前教室进出人数;按键可以设置当前时间、自动手动模式、开启和关闭教室灯光时间;在手动模式下,可以通过按…