任务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及修复?
输入非数字字符会报错,添加异常处理即可。