# keshe **Repository Path**: zzssheng/keshe ## Basic Information - **Project Name**: keshe - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-22 - **Last Updated**: 2025-11-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 教室座位实时查询与预约系统 ## 项目说明 这是一个基于Java Swing的教室座位实时查询与预约系统,提供了学生和管理员两种角色的功能。 ## 功能特点 ### 学生功能 - 用户注册和登录 - 查看教室列表 - 实时查询座位状态(可用/已占用) - 预约空闲座位 - 查看我的预约记录 - 取消预约 ### 管理员功能 - 所有学生功能 - 添加新教室 - 查看所有教室信息 - 管理所有预约记录 - 取消任意用户的预约 ## 技术栈 - **Java SE 8+** (Swing GUI) - **SQLite 3** - 轻量级关系型数据库(持久化存储) - **JDBC** - 数据库连接 ### 依赖库 - `sqlite-jdbc-3.45.0.0.jar` - SQLite JDBC驱动 - `slf4j-api-2.0.9.jar` - SLF4J日志接口 - `slf4j-simple-2.0.9.jar` - SLF4J简单实现 ## 项目结构 ``` ClassroomSeatSystem/ ├── src/ │ ├── Main.java # 程序入口 │ ├── model/ # 实体类 │ │ ├── User.java # 用户实体 │ │ ├── Classroom.java # 教室实体 │ │ ├── Seat.java # 座位实体 │ │ └── Reservation.java # 预约实体 │ ├── dao/ # 数据访问层 │ │ └── DataManager.java # 数据管理器 │ └── ui/ # 界面层 │ ├── LoginFrame.java # 登录界面 │ ├── RegisterDialog.java # 注册对话框 │ ├── MainFrame.java # 主界面 │ ├── SeatQueryPanel.java # 座位查询面板 │ ├── ReservationDialog.java # 预约对话框 │ ├── MyReservationPanel.java # 我的预约面板 │ ├── ClassroomManagePanel.java # 教室管理面板 │ └── ReservationManagePanel.java # 预约管理面板 ├── bin/ # 编译输出目录 └── run.bat # 运行脚本 ``` ## 运行方法 ### 前置要求 - JDK 8 或更高版本 - 已下载必要的依赖库(见下方) ### 下载依赖库 如果`lib`目录下缺少jar文件,请执行以下命令下载: ```bash # 创建lib目录(如果不存在) mkdir lib # 下载SQLite JDBC驱动 curl -o lib\sqlite-jdbc-3.45.0.0.jar https://repo1.maven.org/maven2/org/xerial/sqlite-jdbc/3.45.0.0/sqlite-jdbc-3.45.0.0.jar # 下载SLF4J日志库 curl -o lib\slf4j-api-2.0.9.jar https://repo1.maven.org/maven2/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar curl -o lib\slf4j-simple-2.0.9.jar https://repo1.maven.org/maven2/org/slf4j/slf4j-simple/2.0.9/slf4j-simple-2.0.9.jar ``` **PowerShell用户:** ```powershell # 或使用PowerShell的Invoke-WebRequest Invoke-WebRequest -Uri "https://repo1.maven.org/maven2/org/xerial/sqlite-jdbc/3.45.0.0/sqlite-jdbc-3.45.0.0.jar" -OutFile "lib\sqlite-jdbc-3.45.0.0.jar" Invoke-WebRequest -Uri "https://repo1.maven.org/maven2/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar" -OutFile "lib\slf4j-api-2.0.9.jar" Invoke-WebRequest -Uri "https://repo1.maven.org/maven2/org/slf4j/slf4j-simple/2.0.9/slf4j-simple-2.0.9.jar" -OutFile "lib\slf4j-simple-2.0.9.jar" ``` ### 方式一:使用批处理脚本(推荐) 双击 `run.bat` 即可自动编译并运行 ### 方式二:手动编译运行 1. 打开命令提示符,进入项目目录 2. 编译: ```bash javac -encoding UTF-8 -cp "lib\*" -d bin src\Main.java src\model\*.java src\dao\*.java src\ui\*.java ``` 3. 运行: ```bash java -cp "bin;lib\*" src.Main ``` ## 默认账号 ### 管理员账号 - 用户名: admin - 密码: admin123 ### 测试学生账号 - 用户名: student1 - 密码: 123456 或者可以自己注册新账号 ## 使用说明 1. **登录** - 启动程序后,输入用户名和密码登录 - 也可以点击"注册"按钮创建新账号 2. **查询座位** - 在"座位查询与预约"标签页 - 选择教室,系统会显示该教室的所有座位 - 绿色显示可用座位,灰色显示已占用座位 3. **预约座位** - 点击可用座位的"预约"按钮 - 选择开始时间和结束时间 - 确认预约 4. **查看我的预约** - 在"我的预约"标签页查看所有预约记录 - 可以取消预约 5. **管理员功能**(仅管理员可见) - 教室管理:添加/删除教室 - 预约管理:查看和管理所有用户的预约 - 用户管理:查看所有用户账号信息 ## 注意事项 - 本系统使用SQLite数据库,数据保存在`classroom_system.db`文件中 - 首次运行会自动创建数据库并初始化默认账号 - 预约时间为8:00-22:00之间的整点时间 - 座位特性包括:是否靠窗、是否有电脑 - 请勿删除lib目录下的jar文件(SQLite驱动)