【技能实训】Day01

文章目录

  • 任务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及修复?

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

应用层:万维网WWW

1.万维网WWW 笔记来源&#xff1a; 湖科大教书匠&#xff1a;应用层概述 湖科大教书匠&#xff1a;万维网WWW 声明&#xff1a;该学习笔记来自湖科大教书匠&#xff0c;笔记仅做学习参考 浏览器最重要的部分是渲染引擎&#xff0c;也就是浏览器内核。负责对网页内容进行解析和…

postgresql 数据库 索引 介绍

postgresql 数据库 索引 介绍 文章目录 postgresql 数据库 索引 介绍前言一 什么是索引&#xff1f;二 简介三 索引的种类B-treeHash索引GiST索引GIN 索引BRIN 索引SP-GiST索引 CREATE INDEX1.大纲2.描述3. 参数UNIQUECONCURRENTLYIF NOT EXISTSINCLUDEnameONLYmethodcolumn_na…

Vue3:在 VSCode 中如何成功安装 Mockjs 及成功引入 Mock 的详细过程

Ⅰ、Mock 简介&#xff1a; 1、什么是 Mock&#xff1f; 其一、Mock 的解释一&#xff1a; Mock 服务是指在测试过程中对于某些复杂&#xff08;或者不太好构造&#xff09;的对象&#xff0c;用一个虚拟的对象替代它&#xff1b;对于前端来说&#xff0c;就是后台数据还没有…

RS485或RS232转ETHERCAT连接安川ethercat总线伺服

最近&#xff0c;生产管理设备中经常会遇到两种协议不相同的情况&#xff0c;这严重阻碍了设备之间的通讯&#xff0c;串口设备的数据不能直接传输给ETHERCAT。这可怎么办呢&#xff1f; 别担心&#xff0c;远创智控YC-ECT-RS485/232来了&#xff01;这是一款自主研发的ETHER…

数据结构第一章 绪论——走进数据的世界

名人说&#xff1a;唯一可以确定的是&#xff0c;明天会使我们所有人大吃一惊。——阿尔文托夫勒 本篇笔记整理&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; ✔ 课件资料及视频课程学习&#xff1a;王道 数据结构&#xff08…

Linux 网络延迟排查方法详解

概要 在 Linux 服务器中&#xff0c;可以通过内核调优、DPDK 以及 XDP 等多种方式提高服务器的抗攻击能力&#xff0c;降低 DDoS 对正常服务的影响。在应用程序中&#xff0c;可以使用各级缓存、WAF、CDN 等来缓解 DDoS 对应用程序的影响。 但是需要注意的是&#xff0c;如果 …

Lingo优化软件初步

一、Lingo软件介绍 1、lingo软件的简单介绍 美国芝加哥大学的Linus Schrage教授于1980年左右开发的专门用于求解最优化问题的软件包&#xff0c;后经多年完善与扩充&#xff0c;并成立了LINDO系统公司进行商业运作取得巨大成功。根据 LINDO公司主页&#xff08;http://www.li…

六、HAL_Timer的PWM功能

1、开发环境 (1)Keil MDK: V5.38.0.0 (2)STM32CubeMX: V6.8.1 (3)MCU: STM32F407XGT6 2、PWM简介 2.1、什么是PWM (1)PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用&#xff0c;方波的占空比被调制用来对一个具体模拟信号的电平进行编码。 (2)P…

蓝奥声开发高性价比智能wifi插座进军智能家居

关键词&#xff1a;智能家居、家用插座、WiFi插座、高性价比插座 智能硬件的大潮袭来让智能家居这一并不新鲜的概念再次火热起来&#xff0c;关于智能家居的各种场景的描述给了我们很大的想象空间&#xff0c;然而落到实处真正开始走进生活时却又显得那么骨感&#xff0c;一时间…

(30)精准降落和悬停(IRLock)

文章目录 30.1 概述 30.2 哪里可以买到 30.3 连接到自动驾驶仪 30.4 安装到框架上 30.5 通过任务规划器进行设置 30.6 飞行和测试 30.1 概述 Copter 支持使用 IR-LOCK 传感器(IR-LOCK sensor)和声纳或激光雷达(sonar or lidar)进行精确着陆。使用该系统&#xff0c;当飞行…

基于深度学习的目标检测的介绍(Introduction to object detection with deep learning)

物体检测的应用已经深入到我们的日常生活中&#xff0c;包括安全、自动车辆系统等。对象检测模型输入视觉效果(图像或视频)&#xff0c;并在每个相应对象周围输出带有标记的版本。这说起来容易做起来难&#xff0c;因为目标检测模型需要考虑复杂的算法和数据集&#xff0c;这些…

内存的五大分区

一些套话 一个由C/C编译的程序占用的内存分为以下几个部分&#xff1a;栈区&#xff0c;堆区&#xff0c;全局区&#xff08;静态区&#xff09;&#xff0c;文字常量区&#xff0c;代码区 在执行一个C/C 程序时&#xff0c;此程序拥有唯一的“内存四区”&#xff08;栈区&…

00-C++-ccache使用

ccache使用 前言ccache是什么ccache使用 前言 在编译大型C项目代码时编译时间比较长&#xff0c;那么可以使用ccache来加速代码的编译&#xff0c;一起来学习吧。 ccache是什么 ccache是一个编译器缓存。它通过缓存以前编译的结果并检测何时再次进行相同的编译来加快重新编译…

聊聊不同集群的微服务如何通过feign调用

前言 之前业务部门的某项目微服务调用关系如下图 后因业务改造需要&#xff0c;该项目需要将服务A部署到另外一个集群&#xff0c;但服务A仍然需要能调用到服务B&#xff0c;调用关系如下图 之前调用方式是负责服务B的开发团队提供相应的feign客户端包给到服务A开发团队&…

k8s 第一篇 基础知识

一 k8s 1.1 概念 k8s 是一个能让应用部署到容器中&#xff0c;实现自动部署和管理更加高效 自能化的平台。 也就是说通过k8s&#xff0c;能够进行应用的自动化部署和扩容。 1.2 集群的架构流程 1.3 k8s的核心概念 1.4 k8s 集群规划 从第6集开始看

基于OpenCV 实现车牌号码识别--附免费源码

在本教程中,您将学习如何使用 OpenCV 和 EasyOCR 包自动执行车牌/车牌识别 (LPR/NPR)。 EasyOCR是一个开源 Python 包,用于执行光学字符识别 - OCR(从图像中提取文本)。 该软件包非常易于使用,在撰写本文时,它支持 80 多种语言,包括中文、阿拉伯语、法语、英语、西里尔…

MySQL-SQL全部锁详解(上)

​♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#x…

金山企业版杀毒软件平台“终端安全系统V9”linux客户端不能注册的问题解决方法。

金山企业版杀毒软件平台“终端安全系统V9”&#xff0c;出现部分Linux客户端安装后无法注册到服务器的问题&#xff0c;本文提供了一种问题解决方法。 一、平台版本 平台为金山企业版杀毒软件平台“终端安全系统V9”&#xff1a; 平台端版本为V9.SP2.E1004 客户端安装包&…

50从零开始学Java之万类之王Object是怎么回事?

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在前面的文章中&#xff0c;壹哥跟大家说过&#xff0c;Java是面向对象的编程语言&#xff0c;而在面…

langchain调用chatGLM2纪实

一、科学上网要注意&#xff1a; 域名全代和全局代理&#xff08;网卡&#xff09;&#xff0c;都要打开。这样conda install特别快。 二、安装langchain 1、 conda install langchain 2、 conda install openai 注意&#xff1a; 使用pip install和conda install 是不同…