From 495ae0c6ac0ca9ff3f4ef46d483fce7616dca8a6 Mon Sep 17 00:00:00 2001 From: gitee-bot Date: Mon, 24 Nov 2025 14:30:39 +0000 Subject: [PATCH] Add README.md --- README.en.md | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 144 insertions(+) create mode 100644 README.en.md create mode 100644 README.md diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..126fe45 --- /dev/null +++ b/README.en.md @@ -0,0 +1,72 @@ +# Delivery Order Management System + +## Project Overview + +This is a Java-based delivery order management system that implements core functionalities such as order status management, automatic saving, timeout detection, and data persistence. The system supports user operations including order creation, order assignment, and status changes, and provides two interactive interfaces: a graphical user interface (GUI) and a command-line interface (CLI). + +Key functional modules include: +- **Order State Machine**: Supports order status transitions (Pending, In Transit, Picked Up, Completed, Cancelled) +- **User Management**: Supports two user types: students and delivery personnel +- **Order Scheduling**: Automatically assigns orders to delivery personnel based on priority +- **Data Persistence**: Supports saving and loading of order and user data +- **Automatic Saving and Timeout Detection**: Periodically saves data and detects overdue orders + +## Technical Architecture + +The project employs an object-oriented design pattern with core components including: +- **GUI Module**: Implements the graphical interface using Swing +- **Business Logic Module**: Handles order status, user management, and data persistence +- **Testing Module**: Contains unit tests and state machine tests + +## Usage Instructions + +### System Requirements +- Java 8 or higher +- Support for Swing GUI + +### Launch Methods + +#### Graphical Interface Mode +1. Compile the project: `javac -d out src/GUI/MainFrame.java` +2. Run the main program: `java -cp out GUI.MainFrame` + +#### Command-Line Mode +1. Compile the project: `javac -d out src/Main.java` +2. Run the main program: `java -cp out Main` + +### Core Features +- **User Management**: Create accounts for students and delivery personnel +- **Order Creation**: Students can create delivery orders +- **Order Assignment**: System automatically assigns orders based on priority +- **Status Changes**: Supports order status updates and cancellations +- **Data Persistence**: Supports saving and loading of order and user data +- **Automatic Saving**: Periodically saves system data +- **Timeout Detection**: Automatically detects and handles overdue orders + +## Development and Testing + +### Unit Tests +The project includes multiple unit test classes to verify core functionalities: +- `OrderStateTest.java`: Validates order status transition logic +- `StateMachineTest.java`: Validates the legitimacy of the order state machine +- `OrderSerializationTest.java`: Validates serialization and deserialization of order data + +### Running Tests +1. Compile test classes: `javac -d out -cp "lib/*" src/StateMachineTest.java` +2. Run tests: `java -cp "out:lib/*" org.junit.platform.console.ConsoleLauncher --select-class=StateMachineTest` + +## Project Structure +``` +src/ +├── GUI/ # GUI module +├── Manager/ # Management module (data management, auto-save, timeout detection) +├── Order/ # Order-related classes (state pattern implementation) +├── User/ # User-related classes (students, delivery personnel, user factory) +├── Exception/ # Exception classes +├── TableModel/ # Table data model classes +├── test/ # Test classes +``` + +## License + +This project is licensed under the MIT License. For more details, see the [LICENSE](LICENSE) file. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..6e3fe48 --- /dev/null +++ b/README.md @@ -0,0 +1,72 @@ +# 跑腿订单管理系统 + +## 项目简介 + +这是一个基于Java的跑腿订单管理系统,实现了订单状态管理、自动保存、超时检测、数据持久化等核心功能。系统支持用户创建、订单分配、订单状态变更等操作,并提供了图形界面(GUI)和命令行界面(CLI)两种交互方式。 + +主要功能模块包括: +- **订单状态机**:支持订单状态转换(待接单、配送中、已取货、已完成、已取消) +- **用户管理**:支持学生和跑腿员两种用户类型 +- **订单调度**:根据优先级分配订单给跑腿员 +- **数据持久化**:支持订单、用户数据的保存和加载 +- **自动保存与超时检测**:定时保存数据并检测超时订单 + +## 技术架构 + +项目采用面向对象设计模式,核心组件包括: +- **GUI模块**:基于Swing实现图形界面 +- **业务逻辑模块**:处理订单状态、用户管理、数据持久化 +- **测试模块**:包含单元测试和状态机测试 + +## 使用说明 + +### 系统要求 +- Java 8 或更高版本 +- 支持Swing图形界面 + +### 启动方式 + +#### 图形界面模式 +1. 编译项目:`javac -d out src/GUI/MainFrame.java` +2. 运行主程序:`java -cp out GUI.MainFrame` + +#### 命令行模式 +1. 编译项目:`javac -d out src/Main.java` +2. 运行主程序:`java -cp out Main` + +### 核心功能 +- **用户管理**:创建学生和跑腿员账户 +- **订单创建**:学生可以创建跑腿订单 +- **订单分配**:系统根据优先级自动分配订单 +- **状态变更**:支持订单状态的变更和撤销 +- **数据持久化**:支持订单和用户数据的保存和加载 +- **自动保存**:定时保存系统数据 +- **超时检测**:自动检测并处理超时订单 + +## 开发与测试 + +### 单元测试 +项目包含多个单元测试类,用于验证核心功能: +- `OrderStateTest.java`:验证订单状态转换逻辑 +- `StateMachineTest.java`:验证订单状态机的合法性 +- `OrderSerializationTest.java`:验证订单数据的序列化和反序列化 + +### 测试执行 +1. 编译测试类:`javac -d out -cp "lib/*" src/StateMachineTest.java` +2. 运行测试:`java -cp "out:lib/*" org.junit.platform.console.ConsoleLauncher --select-class=StateMachineTest` + +## 项目结构 +``` +src/ +├── GUI/ # 图形界面模块 +├── Manager/ # 管理模块(数据管理、自动保存、超时检测) +├── Order/ # 订单相关类(状态模式实现) +├── User/ # 用户相关类(学生、跑腿员、用户工厂) +├── Exception/ # 异常类 +├── TableModel/ # 表格数据模型类 +├── test/ # 测试类 +``` + +## 许可证 + +本项目使用MIT许可证。更多详情请参阅 [LICENSE](LICENSE) 文件。 \ No newline at end of file -- Gitee