文章目录
- 任务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.搭建项目框架
任务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();
}
}
测试:
要求全部可能情况都要测一遍(截图)
当你在控制台输入字符,特殊符号,字符串等等,程序会发生什么?如何处理?
会报错,可以添加异常处理。
添加异常处理后的程序:
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();
}
}
【任务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();
}
}
测试:
要求全部可能情况都要测一遍
如何处理输入非数字字符的情况?
添加异常处理。
程序设计
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();
}
}
测试:
要求全部可能情况都要测一遍
存在哪些可能的bug及修复?
输入非数字字符会报错,添加异常处理即可。