2501_92668054 2025-07-21 17:45 采纳率: 25%
浏览 17
已结题

制造一个简单前台系统

如何用Java11+Eclipse2019制造一个具有房间管理、人员管理和预订管理简单的酒店前台系统,要详细步骤,关于毕业设计的

  • 写回答

7条回答 默认 最新

  • 檀越@新空间 2025-07-21 17:46
    关注

    下午好🌅🌅🌅
    本答案参考通义千问

    要使用 Java 11 + Eclipse 2019 制作一个简单的酒店前台系统,包括房间管理、人员管理和预订管理功能,可以按照以下详细步骤进行。这个系统将是一个控制台应用程序(即没有图形界面),适合作为毕业设计的基础项目。


    一、开发环境准备

    1. 安装 Java 11

    2. 安装 Eclipse 2019 (Eclipse IDE for Java Developers)


    二、创建 Java 项目

    1. 新建 Java 项目

    • 打开 Eclipse
    • File → New → Java Project
    • 输入项目名称:如 HotelManagementSystem
    • 确保 JRE 使用 Java 11
    • 完成

    2. 创建包结构

    • 右键项目 → New → Package
    • 创建如下包:
      • com.hotel.model
      • com.hotel.service
      • com.hotel.ui
      • com.hotel.util

    三、设计系统模块

    1. 模型类(Model)

    这些是系统的核心数据对象。

    1.1 房间类 Room.java

    package com.hotel.model;
    
    public class Room {
        private int roomId;
        private String roomType; // 单人间、双人间等
        private double pricePerNight;
        private boolean isAvailable;
    
        public Room(int roomId, String roomType, double pricePerNight) {
            this.roomId = roomId;
            this.roomType = roomType;
            this.pricePerNight = pricePerNight;
            this.isAvailable = true;
        }
    
        // Getters and Setters
        public int getRoomId() { return roomId; }
        public void setRoomId(int roomId) { this.roomId = roomId; }
    
        public String getRoomType() { return roomType; }
        public void setRoomType(String roomType) { this.roomType = roomType; }
    
        public double getPricePerNight() { return pricePerNight; }
        public void setPricePerNight(double pricePerNight) { this.pricePerNight = pricePerNight; }
    
        public boolean isAvailable() { return isAvailable; }
        public void setAvailable(boolean available) { isAvailable = available; }
    }
    

    1.2 人员类 Person.java

    package com.hotel.model;
    
    public class Person {
        private String name;
        private String idNumber;
        private String phone;
    
        public Person(String name, String idNumber, String phone) {
            this.name = name;
            this.idNumber = idNumber;
            this.phone = phone;
        }
    
        // Getters and Setters
        public String getName() { return name; }
        public void setName(String name) { this.name = name; }
    
        public String getIdNumber() { return idNumber; }
        public void setIdNumber(String idNumber) { this.idNumber = idNumber; }
    
        public String getPhone() { return phone; }
        public void setPhone(String phone) { this.phone = phone; }
    }
    

    1.3 预订类 Booking.java

    package com.hotel.model;
    
    import java.time.LocalDate;
    
    public class Booking {
        private int bookingId;
        private Room room;
        private Person person;
        private LocalDate checkInDate;
        private LocalDate checkOutDate;
        private double totalCost;
    
        public Booking(int bookingId, Room room, Person person, LocalDate checkInDate, LocalDate checkOutDate) {
            this.bookingId = bookingId;
            this.room = room;
            this.person = person;
            this.checkInDate = checkInDate;
            this.checkOutDate = checkOutDate;
            this.totalCost = calculateTotalCost(room.getPricePerNight(), checkInDate, checkOutDate);
        }
    
        private double calculateTotalCost(double pricePerNight, LocalDate checkIn, LocalDate checkOut) {
            long days = java.time.temporal.ChronoUnit.DAYS.between(checkIn, checkOut);
            return pricePerNight * days;
        }
    
        // Getters and Setters
        public int getBookingId() { return bookingId; }
        public void setBookingId(int bookingId) { this.bookingId = bookingId; }
    
        public Room getRoom() { return room; }
        public void setRoom(Room room) { this.room = room; }
    
        public Person getPerson() { return person; }
        public void setPerson(Person person) { this.person = person; }
    
        public LocalDate getCheckInDate() { return checkInDate; }
        public void setCheckInDate(LocalDate checkInDate) { this.checkInDate = checkInDate; }
    
        public LocalDate getCheckOutDate() { return checkOutDate; }
        public void setCheckOutDate(LocalDate checkOutDate) { this.checkOutDate = checkOutDate; }
    
        public double getTotalCost() { return totalCost; }
        public void setTotalCost(double totalCost) { this.totalCost = totalCost; }
    }
    

    四、服务类(Service)

    4.1 房间管理类 RoomService.java

    package com.hotel.service;
    
    import com.hotel.model.Room;
    import java.util.ArrayList;
    import java.util.List;
    
    public class RoomService {
        private List<Room> rooms = new ArrayList<>();
    
        public void addRoom(Room room) {
            rooms.add(room);
        }
    
        public List<Room> getAllRooms() {
            return rooms;
        }
    
        public Room findRoomById(int roomId) {
            for (Room room : rooms) {
                if (room.getRoomId() == roomId) {
                    return room;
                }
            }
            return null;
        }
    
        public void updateRoomAvailability(int roomId, boolean available) {
            Room room = findRoomById(roomId);
            if (room != null) {
                room.setAvailable(available);
            }
        }
    }
    

    4.2 预订管理类 BookingService.java

    package com.hotel.service;
    
    import com.hotel.model.Booking;
    import java.util.ArrayList;
    import java.util.List;
    
    public class BookingService {
        private List<Booking> bookings = new ArrayList<>();
    
        public void addBooking(Booking booking) {
            bookings.add(booking);
        }
    
        public List<Booking> getAllBookings() {
            return bookings;
        }
    
        public Booking findBookingById(int bookingId) {
            for (Booking booking : bookings) {
                if (booking.getBookingId() == bookingId) {
                    return booking;
                }
            }
            return null;
        }
    
        public void cancelBooking(int bookingId) {
            bookings.removeIf(b -> b.getBookingId() == bookingId);
        }
    }
    

    五、用户界面(UI)

    5.1 主菜单类 MainUI.java

    package com.hotel.ui;
    
    import com.hotel.model.Room;
    import com.hotel.model.Person;
    import com.hotel.model.Booking;
    import com.hotel.service.RoomService;
    import com.hotel.service.BookingService;
    
    import java.time.LocalDate;
    import java.util.Scanner;
    
    public class MainUI {
        private static RoomService roomService = new RoomService();
        private static BookingService bookingService = new BookingService();
    
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
    
            // 初始化一些房间
            roomService.addRoom(new Room(101, "单人间", 200));
            roomService.addRoom(new Room(102, "双人间", 300));
    
            while (true) {
                System.out.println("\n=== 酒店前台管理系统 ===");
                System.out.println("1. 查看所有房间");
                System.out.println("2. 添加新房间");
                System.out.println("3. 查看所有预订");
                System.out.println("4. 新增预订");
                System.out.println("5. 取消预订");
                System.out.println("6. 退出系统");
                System.out.print("请选择操作: ");
                int choice = scanner.nextInt();
                scanner.nextLine(); // 清除缓冲区
    
                switch (choice) {
                    case 1:
                        showAllRooms();
                        break;
                    case 2:
                        addNewRoom(scanner);
                        break;
                    case 3:
                        showAllBookings();
                        break;
                    case 4:
                        addNewBooking(scanner);
                        break;
                    case 5:
                        cancelBooking(scanner);
                        break;
                    case 6:
                        System.out.println("感谢使用本系统!");
                        return;
                    default:
                        System.out.println("无效选项,请重新选择!");
                }
            }
        }
    
        private static void showAllRooms() {
            System.out.println("\n=== 所有房间信息 ===");
            for (Room room : roomService.getAllRooms()) {
                System.out.println("房间号: " + room.getRoomId() +
                                   ", 类型: " + room.getRoomType() +
                                   ", 价格: " + room.getPricePerNight() +
                                   ", 是否可用: " + room.isAvailable());
            }
        }
    
        private static void addNewRoom(Scanner scanner) {
            System.out.print("请输入房间号: ");
            int roomId = scanner.nextInt();
            scanner.nextLine();
    
            System.out.print("请输入房间类型: ");
            String type = scanner.nextLine();
    
            System.out.print("请输入每晚价格: ");
            double price = scanner.nextDouble();
            scanner.nextLine();
    
            roomService.addRoom(new Room(roomId, type, price));
            System.out.println("房间添加成功!");
        }
    
        private static void showAllBookings() {
            System.out.println("\n=== 所有预订信息 ===");
            for (Booking booking : bookingService.getAllBookings()) {
                System.out.println("预订号: " + booking.getBookingId() +
                                   ", 房间号: " + booking.getRoom().getRoomId() +
                                   ", 客人姓名: " + booking.getPerson().getName() +
                                   ", 入住日期: " + booking.getCheckInDate() +
                                   ", 离店日期: " + booking.getCheckOutDate() +
                                   ", 总费用: " + booking.getTotalCost());
            }
        }
    
        private static void addNewBooking(Scanner scanner) {
            System.out.print("请输入客人姓名: ");
            String name = scanner.nextLine();
    
            System.out.print("请输入身份证号: ");
            String id = scanner.nextLine();
    
            System.out.print("请输入电话号码: ");
            String phone = scanner.nextLine();
    
            Person person = new Person(name, id, phone);
    
            System.out.print("请输入房间号: ");
            int roomId = scanner.nextInt();
            scanner.nextLine();
    
            Room room = roomService.findRoomById(roomId);
            if (room == null || !room.isAvailable()) {
                System.out.println("该房间不可用或不存在!");
                return;
            }
    
            System.out.print("请输入入住日期 (YYYY-MM-DD): ");
            LocalDate checkIn = LocalDate.parse(scanner.nextLine());
    
            System.out.print("请输入离店日期 (YYYY-MM-DD): ");
            LocalDate checkOut = LocalDate.parse(scanner.nextLine());
    
            Booking booking = new Booking(bookingService.getAllBookings().size() + 1, room, person, checkIn, checkOut);
            bookingService.addBooking(booking);
            roomService.updateRoomAvailability(roomId, false);
            System.out.println("预订成功!总费用为: " + booking.getTotalCost());
        }
    
        private static void cancelBooking(Scanner scanner) {
            System.out.print("请输入要取消的预订号: ");
            int bookingId = scanner.nextInt();
            scanner.nextLine();
    
            Booking booking = bookingService.findBookingById(bookingId);
            if (booking == null) {
                System.out.println("未找到该预订记录!");
                return;
            }
    
            bookingService.cancelBooking(bookingId);
            roomService.updateRoomAvailability(booking.getRoom().getRoomId(), true);
            System.out.println("预订已取消!");
        }
    }
    

    六、运行与测试

    1. 在 Eclipse 中右键 MainUI.java → Run As → Java Application
    2. 按照提示操作,进行房间管理、人员管理和预订管理。
    3. 可以通过修改代码添加更多功能,例如:
      • 数据持久化(保存到文件)
      • 更复杂的查询功能
      • 增加管理员登录验证

    七、毕业设计建议

    1. 项目结构清晰

    • 包含 Model、Service、UI 层
    • 采用面向对象的设计思想

    2. 文档说明

    • 编写《需求分析》《系统设计》《数据库设计》《测试报告》
    • 附上源代码和运行截图

    3. 扩展性建议

    • 可以使用 JDBC 连接 MySQL 数据库实现数据持久化
    • 使用 Swing 或 JavaFX 实现图形界面
    • 添加日志记录功能

    八、总结

    | 步骤 | 内容 | |------|------| | 1 | 安装 Java 11 和 Eclipse 2019 | | 2 | 创建 Java 项目及包结构 | | 3 | 设计房间、人员、预订等模型类 | | 4 | 实现房间管理、预订管理的服务类 | | 5 | 开发控制台 UI 界面,实现交互功能 | | 6 | 测试系统,确保功能完整 |


    如果你需要我帮你生成完整的项目结构、打包成 .zip 文件,或者提供更详细的毕业设计文档模板,也可以告诉我,我可以进一步帮助你!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 8月4日
  • 已采纳回答 7月27日
  • 专家已采纳回答 7月25日
  • 创建了问题 7月21日