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

news2025/1/10 10:17:27

文章目录

  • 任务1 项目准备
    • 一、开发环境
    • 二、系统简介
    • 三、项目创建
  • 任务2
    • 【任务2.1】菜单项设计及其测试
    • 【任务2.2】使用数组存储采集的数据
    • 【任务2.3】控制显示采集的数据

任务1 项目准备

一、开发环境

1.JDK8下载及其环境变量配置(JDK8以上版本)
2.IDE :Eclipse 或其他IDE
3.IDE的设置(可选):背景设置、编码设置等
4.数据库安装(MySQL)

二、系统简介

1.系统描述

DMS数据挖掘项目是一个基于C/S(Client/Server,客户/服务器)架构的系统,由DMS客户端和DMS服务器端两部分组成:
●DMS 客户端作为系统的一部分,其主要任务是对数据进行采集、分析和匹配,并将匹配成功的数据发送到DMS服务器端。
●DMS 服务器端用于接收DMS客户端发送来的数据,并将数据保存到数据库中,DMS服务器端对接收的数据提供监控功能。
DMS数据挖掘项目可以对多种数据类型进行采集,例如:日志数据信息的采集、物流数据信息的采集等,多种数据信息都是基于继承关系。

2.系统结构图

3.数据处理流程图

4.系统主要功能界面

三、项目创建

任务1:

1.创建项目dms_学号
2.搭建项目框架
1

任务2

【任务2.1】菜单项设计及其测试

在com.qst.dms.dos 下创建MenuDriver.java并进行测试

功能要求:

1.在控制台输出提示


  • 1、数据采集 2、数据匹配 *
  • 3、数据保存 4、数据显示(匹配数据) *
  • 5、数据发送 6、数据显示(原始数据) *
  • 0、退出应用 *

请输入菜单项(0-6):

2.依据提示,分别输入0-6后,打印输出相应提示,比如:输入1,打印“数据采集”等;当输入非0-6数据时,提示“请输入正确的菜单项(0-6)!”

程序设计

package com.qst.dms.dos;

import java.util.Scanner;

public class MenuDriver {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int choice;

        do {
            System.out.println("*************************");
            System.out.println("* 1、数据采集   2、数据匹配           *");
            System.out.println("* 3、数据保存   4、数据显示(匹配数据) *");
            System.out.println("* 5、数据发送   6、数据显示(原始数据) *");
            System.out.println("* 0、退出应用 *");
            System.out.println("*************************");
            System.out.print("请输入菜单项(0-6):");

            choice = scanner.nextInt();

            switch (choice) {
                case 1:
                    System.out.println("数据采集");
                    break;
                case 2:
                    System.out.println("数据匹配");
                    break;
                case 3:
                    System.out.println("数据保存");
                    break;
                case 4:
                    System.out.println("数据显示(匹配数据)");
                    break;
                case 5:
                    System.out.println("数据发送");
                    break;
                case 6:
                    System.out.println("数据显示(原始数据)");
                    break;
                case 0:
                    System.out.println("退出应用");
                    break;
                default:
                    System.out.println("请输入正确的菜单项(0-6)!");
                    break;
            }

        } while (choice != 0);

        scanner.close();
    }
}

测试:
要求全部可能情况都要测一遍(截图)

2

当你在控制台输入字符,特殊符号,字符串等等,程序会发生什么?如何处理?

会报错,可以添加异常处理。

添加异常处理后的程序:

package com.qst.dms.dos;

import java.util.InputMismatchException;
import java.util.Scanner;

public class MenuDriver {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int choice;

        do {
            try {
                System.out.println("*************************");
                System.out.println("* 1、数据采集   2、数据匹配           *");
                System.out.println("* 3、数据保存   4、数据显示(匹配数据) *");
                System.out.println("* 5、数据发送   6、数据显示(原始数据) *");
                System.out.println("* 0、退出应用 *");
                System.out.println("*************************");
                System.out.print("请输入菜单项(0-6):");

                choice = scanner.nextInt();

                switch (choice) {
                    case 1:
                        System.out.println("数据采集");
                        break;
                    case 2:
                        System.out.println("数据匹配");
                        break;
                    case 3:
                        System.out.println("数据保存");
                        break;
                    case 4:
                        System.out.println("数据显示(匹配数据)");
                        break;
                    case 5:
                        System.out.println("数据发送");
                        break;
                    case 6:
                        System.out.println("数据显示(原始数据)");
                        break;
                    case 0:
                        System.out.println("退出应用");
                        break;
                    default:
                        System.out.println("请输入正确的菜单项(0-6)!");
                        break;
                }
            } catch (InputMismatchException e) {
                System.out.println("请输入正确的菜单项(0-6)!");
                scanner.nextLine(); // 清空输入缓冲区
                choice = -1; // 设置一个无效的菜单项,使循环继续
            }
        } while (choice != 0);

        scanner.close();
    }
}

3

【任务2.2】使用数组存储采集的数据

在com.qst.dms.dos 下创建DataInputDemo.java并进行测试

功能要求:

1.在控制台输出提示,接收10个数据

请输入第1个采集数据:
……
请输入第10个采集数据:

2.输出采集的10个数据

程序设计

package com.qst.dms.dos;

import java.util.Scanner;

public class DataInputDemo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int[] data = new int[10];

        System.out.println("请输入10个采集数据:");
        for (int i = 0; i < 10; i++) {
            System.out.print("请输入第" + (i + 1) + "个采集数据:");
            data[i] = scanner.nextInt();
        }

        System.out.println("采集的10个数据为:");
        for (int i = 0; i < 10; i++) {
            System.out.println("第" + (i + 1) + "个采集数据:" + data[i]);
        }

        scanner.close();
    }
}

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

4

如何处理输入非数字字符的情况?

添加异常处理。

程序设计

package com.qst.dms.dos;

import java.util.InputMismatchException;
import java.util.Scanner;

public class DataInputDemo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int[] data = new int[10];

        System.out.println("请输入10个采集数据:");
        for (int i = 0; i < 10; i++) {
            try {
                System.out.print("请输入第" + (i + 1) + "个采集数据:");
                data[i] = scanner.nextInt();
            } catch (InputMismatchException e) {
                System.out.println("请输入一个整数!");
                scanner.nextLine(); // 清空输入缓冲区
                i--; // 重新输入当前数据
            }
        }

        System.out.println("采集的10个数据为:");
        for (int i = 0; i < 10; i++) {
            System.out.println("第" + (i + 1) + "个采集数据:" + data[i]);
        }

        scanner.close();
    }
}

【任务2.3】控制显示采集的数据

在com.qst.dms.dos 下创建DataShow.java并进行测试

功能要求:

1.在控制台输出提示,接收10个数据

请输入第1个采集数据:
……
请输入第10个采集数据:

2.每行显示5个数据,输出采集的10个数据

程序设计

package com.qst.dms.dos;

import java.util.InputMismatchException;
import java.util.Scanner;

public class MenuDriver {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int choice;


        do {
            try {
                System.out.println("*************************");
                System.out.println("* 1、数据采集   2、数据匹配           *");
                System.out.println("* 3、数据保存   4、数据显示(匹配数据) *");
                System.out.println("* 5、数据发送   6、数据显示(原始数据) *");
                System.out.println("* 0、退出应用 *");
                System.out.println("*************************");
                System.out.print("请输入菜单项(0-6):");

                choice = scanner.nextInt();

                switch (choice) {
                    case 1:
                        System.out.println("数据采集");
                        break;
                    case 2:
                        System.out.println("数据匹配");
                        break;
                    case 3:
                        System.out.println("数据保存");
                        break;
                    case 4:
                        System.out.println("数据显示(匹配数据)");
                        break;
                    case 5:
                        System.out.println("数据发送");
                        break;
                    case 6:
                        System.out.println("数据显示(原始数据)");
                        break;
                    case 0:
                        System.out.println("退出应用");
                        break;
                    default:
                        System.out.println("请输入正确的菜单项(0-6)!");
                        break;
                }
            } catch (InputMismatchException e) {
                System.out.println("请输入正确的菜单项(0-6)!");
                scanner.nextLine(); // 清空输入缓冲区
                choice = -1; // 设置一个无效的菜单项,使循环继续
            }
        } while (choice != 0);

        scanner.close();
    }
}

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

5

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

输入非数字字符会报错,添加异常处理即可。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

马可·坎图 (Marco Cantú) 荣获尼克劳斯·沃斯奖 (Niklaus Wirth Award) Pascal最具价值贡献者奖

我们非常高兴地宣布&#xff0c;我们自己的Marco Cant荣获由西班牙萨拉曼卡大学主办的国际Pascal大会颁发的Niklaus Wirth奖。 评审团的引文最后这样一句话&#xff1a;“ Marco Cant 是Pascal社区最杰出、最原创、最杰出的人物之一”。我不认为我们自己可以说得更好。 国际Pa…

rabbitmq使用笔记

前言 mq的优点&#xff1a;异步提速、解耦、流量削峰 mq的缺点&#xff1a; mq宕机可能导致消息丢失、消费者未成功消费如果保证整个系统架构的事务安全、消息可能被重复消费出现幂等问题、消息未被消费到引发死信问题、消息出现消费延迟或消费异常引发的顺序消费错乱问题...…

Linux 修改网卡 MAC 地址

使用 iproute2 修改网卡 MAC 地址 1. 使用如下命令查看当前所有网卡及其 MAC 地址&#xff1b; sudo ip link show2. 如笔者这里想要修改网卡 ens224 的 MAC 地址&#xff0c;先使用如下命令关闭该网卡&#xff1b; sudo ip link set dev ens224 down3. 设置该网卡的 MAC 地…

阿里云:机器学习平台及OpenSearch

机器学习流程 相关项目 BladeDISC-AI编译优化 EasyRec-推荐算法库 EasyCV-视觉图像算法库 EasyNLP-NLP/多模态算法库 模型开发中算法团队面临的工程挑战 Develop platform OpenSearch 向量检索库

亚马逊云科技迁移只需5个简单步骤(2023年迁移到云)

您是否正在考虑亚马逊云科技迁移&#xff0c;并将本地项目迁移到云中&#xff1f; 但是不知道从哪里开始以及如何去做&#xff1f; 在这篇文章中&#xff0c;我将指导您完成亚马逊云科技迁移。 什么是亚马逊云科技&#xff1f; 亚马逊云科技或亚马逊网络服务是最受欢迎的云平…

jar程序部署的外部依赖和按名传参和shellUtil传参json串及返回pid问题

文章目录 指定jar程序运行的外部依赖指定参数名称传参给程序shellUtil命令传参JSON串shellUtil获取回调nohub启动程序后的pid 指定jar程序运行的外部依赖 nohup java -Djava.ext.dirs./lib/ -cp DataSourceAccessPage.jar com.sitech.adapter.JsonAdapter arg0 arg1java -cp 命…

10_SPI_Flash 连续写实验

10_SPI_Flash 连续写实验 1. 实验目标2. 连续写方法3. 操作时序4. 流程框图4.1 顶层模块4.2 连续写模块 5. 波形图6. RTL6.1 flash_seq_wr_ctrl6.2 spi_flash_seq_wr 7. Testbench 1. 实验目标 使用页写指令&#xff0c;将串口发送过来的连续不定量数据写入 Flash。本实验中&a…

Linux开发环境的搭建

文章目录 系统安装工具软件安装Xshell远程登录VScode远程登录Linux 下GCC安装 系统安装 &#xff08;虚拟机安装、云服务器&#xff09;Ubuntu18.04 网络类型&#xff1a;桥接模式网络、NAT&#xff08;network access transation)网络地址转换模式、仅主机模式 注意&#xff…

模拟电压与数字脉冲占空比控制的应用与发展前景

摘要&#xff1a;本文将讨论模拟电压控制和数字脉冲占空比控制在嵌入式控制方面的应用场景、共同点和不同点&#xff0c;并探讨它们在未来发展中的前景。 引言&#xff1a; 模拟电压控制和数字脉冲占空比控制都是嵌入式系统中常用的控制方式。模拟电压控制将电压作为控制信号&…

electron 应用优雅的配置 about 信息

使用 electron 的 dialog tray 托盘栏菜单优雅简单的配置 about 关于本应用的信息&#xff0c;效果下图所示。 项目依赖 {"electron": "^24.4.1","electron-builder": "^23.6.0","electron-builder-squirrel-windows": &q…

线程那些事

线程锁 线程锁&#xff08;Thread Lock&#xff09;&#xff0c;也被称为互斥锁&#xff08;Mutex Lock&#xff09;&#xff0c;是一种用于多线程编程中的同步机制。它用于保护共享资源在多个线程之间的访问&#xff0c;以避免出现竞态条件&#xff08;Race Condition&#x…

企业内容建站系统 ModStartCMS v6.8.0 内容页面自定义模板,内容区块功能增强

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议&#xff0c;免费且不限制商业使用。 功能特性 丰富的模块市…

【状态估计】一维粒子滤波研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

虚函数表的地址

结论 1. c多态的实现是靠虚函数表来实现的&#xff0c;有虚函数的类有虚函数表&#xff0c;没虚函数的类就没有虚函数表 2. 虚函数表是类的所有对象共用&#xff0c;切记是共同所有&#xff0c;不是一个对象所有 3. 每个虚函数成员占据虚函数表的一行&#xff0c;是个指针&a…

机械设计制造及其自动化专业向PLC方向发展的可行性

是的&#xff0c;机械设计制造及其自动化专业往PLC&#xff08;可编程逻辑控制器&#xff09;方向发展是可行的。PLC是一种用于控制和自动化各种机械设备和工业过程的计算机控制系统。它被广泛应用于工业自动化领域&#xff0c;包括制造业、能源行业、交通运输等。 我这里刚好…

001- database - 数据库

1、新的数据库进入默认有四个数据库&#xff0c;一般不要轻易删除&#xff1b; -- 创建数据库 CREATE DATABASE 数据库名 -- 查询所有数据库 SHOW DATABASES -- 使用数据库 -- USE 数据库名 -- 查询当前使用的数据库 SELECT DATABASE() -- 删除数据库 DROP DATABASE 数据库名

Rdkit|分子3D构象生成与优化

github; 地址 文章目录 Rdkit|分子3D构象生成与优化构象生成算法概述基于距离&#xff08;distance-based&#xff09;代码示例 距离几何算法生成3D结构距离几何ETKDG生成3D构象距离几何ETKDG生成多构象将Conformer类转为Mol类手动对齐 距离几何ETKDGMMFF生成3D构象距离几何ETK…

Sevlet规范:HttpServlet类 和 HttpServletRequest接口 源码解析

1. HTTP协议解读 什么是协议&#xff1f; 协议实际上是某些人&#xff0c;或者某些组织提前制定好的一套规范&#xff0c;大家都按照这个规范来&#xff0c;这样可以做到沟通无障碍。 协议就是一套规范&#xff0c;就是一套标准。由其他人或其他组织来负责制定的。 我说的话你…

PyCharm 自动添加作者信息、创建时间等信息

PyCharm 自动添加作者信息、创建时间等信息‘ 第一步 找到settings 第二步&#xff0c;找到下图所示位置输入下面代码&#xff0c;作者改成你自己的缩写&#xff0c;你也可以添加其他的 Project &#xff1a;${PROJECT_NAME} File &#xff1a;${NAME}.py IDE &…

【iOS】编译与链接

前言 计算机语言分为机器语言、汇编语言和高级语言。 可以将高级语言分为两种&#xff1a;编译语言和解释型语言&#xff08;直译式语言&#xff09;。 解释型语言&#xff08;逐步进行解释执行&#xff09; 解释语言编写的程序在每次运行时都需要通过解释器对程序进行动态…