系统概述
这个酒店管理系统是一个基于Java的控制台应用程序,主要用于管理酒店顾客的基本信息。系统提供了顾客信息的添加、修改、删除和查看功能,实现了基本的CRUD操作。系统采用面向对象的设计思想,将功能模块化,代码结构清晰。
系统架构
系统由四个主要类组成:
- 
Customer:顾客实体类,封装顾客信息
 - 
ArrayUtils:数组工具类,提供数组操作辅助方法
 - 
CustomerView:用户界面类,处理用户交互
 - 
CustomerTest:测试类,启动应用程
 
具体实现代码
核心类详解
1. Customer类
Customer类是系统的核心实体类,用于表示酒店顾客的信息:
            
            
              java
              
              
            
          
          public class Customer {
    private String name;     // 顾客姓名
    private String gender;   // 顾客性别
    private int age;         // 顾客年龄
    private String idCard;   // 顾客身份证号
    private String roomNumber; // 顾客房间号
    
    // 构造函数、Getter和Setter方法
    // toString()方法用于格式化输出顾客信息
}
        特点:
- 
使用私有字段封装顾客属性
 - 
提供完整的Getter和Setter方法
 - 
实现
toString()方法便于信息展示 - 
包含房间号字段,作为顾客的唯一标识之一
 
2. ArrayUtils类
ArrayUtils是一个工具类,提供静态方法帮助处理顾客数组:
            
            
              java
              
              
            
          
          public class ArrayUtils {
    // 根据房间号查找顾客索引
    public static int findIndexByRoomId(Customer[] customers, String roomNumber, int count) {
        // 实现逻辑
    }
    
    // 检查并扩展数组容量
    public static void isEnoughArray(Customer[] customers) {
        // 实现逻辑
    }
}
        方法说明:
- 
findIndexByRoomId():线性搜索数组,根据房间号查找顾客位置 - 
isEnoughArray():检查数组是否已满,满则创建新数组并复制元素(当前实现有bug) 
存在的问题:
- 
isEnoughArray()方法中创建的新数组没有返回,调用者无法获取扩展后的数组 - 
方法命名不够直观(如"isEnoughArray"更像是查询方法而非修改方法)
 
3. CustomerView类
CustomerView是系统的用户界面类,负责与用户交互:
            
            
              java
              
              
            
          
          public class CustomerView {
    private int count;          // 当前顾客数量
    private Customer[] customers; // 顾客数组
    private Scanner scanner;    // 输入扫描器
    
    // 主菜单循环
    public void start() {
        // 实现主菜单逻辑
    }
    
    // 各种操作方法:addCustomer(), updateCustomer(), deleteCustomer(), displayCustomers()
    // 信息验证方法:isValidCustomerInfo()
}
        功能特点:
- 
主菜单系统:提供清晰的文本界面和选项
 - 
输入验证 :
isValidCustomerInfo()方法验证输入格式- 
姓名非空
 - 
性别只能是"男"或"女"
 - 
年龄必须大于0
 - 
身份证号符合正则表达式规则
 - 
房间号非空
 
 - 
 - 
数据展示 :
displayCustomers()以表格形式展示顾客信息 
交互流程:
- 
添加顾客:收集各项信息并验证
 - 
修改顾客:根据房间号查找并更新信息
 - 
删除顾客:根据房间号查找并删除,后续元素前移
 - 
查看顾客:列表展示所有顾客信息
 
4. CustomerTest类
CustomerTest是系统的入口类,非常简单:
            
            
              java
              
              
            
          
          public class CustomerTest {
    public static void main(String[] args) {
        CustomerView view = new CustomerView(50); // 初始容量50
        view.start();
    }
}
        系统亮点
- 
输入验证:对身份证号等关键信息进行格式验证
 - 
用户友好界面:清晰的菜单和提示信息
 - 
基于房间号的管理:使用房间号作为主要查找键
 - 
简单的数组管理:避免了集合框架的复杂性,适合教学
 
总结
这个酒店管理系统虽然简单,但完整地展示了控制台应用程序的基本结构和设计思路。它涵盖了实体类设计、用户交互、数据验证、数组操作等Java编程的核心概念,非常适合作为面向对象编程的示例项目。通过进一步完善和扩展,可以将其发展为功能更全面的酒店管理系统。
对于初学者来说,这个项目很好地演示了:
- 
如何将现实世界的实体抽象为Java类
 - 
如何设计用户交互流程
 - 
如何进行基本的数据验证
 - 
如何使用数组管理对象集合68