先设计Customer类封装客户信息,再用ArrayList存储数据并实现按ID或姓名查询功能,最后通过控制台菜单交互,完成一个简易客户查询系统。

做一个简易的客户查询系统,核心是管理客户信息并支持按条件查找。用Java实现时,不需要数据库或图形界面也能快速搭建一个控制台版本的系统。下面一步步说明怎么做。
1. 设计客户类(Customer)
每个客户的信息可以用一个类来封装,比如包含ID、姓名、电话、邮箱等字段。
public class Customer {
private int id;
private String name;
private String phone;
private String email;
public Customer(int id, String name, String phone, String email) {
this.id = id;
this.name = name;
this.phone = phone;
this.email = email;
}
// Getter方法(便于打印和查询)
public int getId() { return id; }
public String getName() { return name; }
public String getPhone() { return phone; }
public String getEmail() { return email; }
@Override
public String toString() {
return "ID: " + id + ", 姓名: " + name + ", 电话: " + phone + ", 邮箱: " + email;
}}
2. 构建客户管理系统(CustomerSystem)
这个类负责存储客户数据,并提供添加、查询功能。使用ArrayList保存客户列表。
立即学习“Java免费学习笔记(深入)”;
import java.util.ArrayList; import java.util.Scanner;public class CustomerSystem { private ArrayList
customers; private Scanner scanner; public CustomerSystem() { customers = new ArrayListzuojiankuohaophpcnyoujiankuohaophpcn(); scanner = new Scanner(System.in); initTestData(); // 初始化一些测试数据 } // 添加测试数据方便演示 private void initTestData() { customers.add(new Customer(1, "张三", "13800138001", "zhangsan@email.com")); customers.add(new Customer(2, "李四", "13800138002", "lisi@email.com")); customers.add(new Customer(3, "王五", "13800138003", "wangwu@email.com")); }
接着在同一个类中添加查询方法:
// 按姓名模糊查询
public void searchByName(String keyword) {
System.out.println("搜索结果:");
boolean found = false;
for (Customer c : customers) {
if (c.getName().contains(keyword)) {
System.out.println(c);
found = true;
}
}
if (!found) {
System.out.println("未找到匹配的客户。");
}
}
// 按ID精确查询
public void searchById(int id) {
for (Customer c : customers) {
if (c.getId() == id) {
System.out.println("找到客户:" + c);
return;
}
}
System.out.println("未找到ID为 " + id + " 的客户。");
}再写一个运行主菜单的方法:
public void run() {
while (true) {
System.out.println("\n--- 客户查询系统 ---");
System.out.println("1. 按ID查询");
System.out.println("2. 按姓名查询");
System.out.println("3. 退出");
System.out.print("请选择操作:");
int choice = scanner.nextInt();
scanner.nextLine(); // 吃掉换行符
switch (choice) {
case 1:
System.out.print("请输入客户ID:");
int id = scanner.nextInt();
scanner.nextLine();
searchById(id);
break;
case 2:
System.out.print("请输入客户姓名关键词:");
String name = scanner.nextLine();
searchByName(name);
break;
case 3:
System.out.println("再见!");
return;
default:
System.out.println("无效选择,请重试。");
}
}
}3. 编写主程序入口
创建Main类启动系统。
public class Main {
public static void main(String[] args) {
CustomerSystem system = new CustomerSystem();
system.run();
}
}
4. 运行效果示例
运行后控制台会显示菜单:
--- 客户查询系统 --- 1. 按ID查询 2. 按姓名查询 3. 退出 请选择操作:2 请输入客户姓名关键词:张 搜索结果: ID: 1, 姓名: 张三, 电话: 13800138001, 邮箱: zhangsan@email.com
这个系统虽然简单,但结构清晰,适合学习Java基础语法、类设计和集合操作。
如果想扩展功能,可以考虑加入添加客户、删除客户、保存到文件等功能。但现在这样已经能完成基本的查询任务了。
基本上就这些,不复杂但容易忽略细节,比如scanner.nextLine()的使用时机。照着写一遍就能掌握。










