# 基于JAVA语言的图书管理系统 **Repository Path**: Liu-ZhengLong2297358015/java-course-design ## Basic Information - **Project Name**: 基于JAVA语言的图书管理系统 - **Description**: 本系统旨在为重庆城市科技学院的学生和教师提供一个便捷、高效的课程管理工具。系统支持课程信息的增删改查、用户权限分级管理、课程表可视化及打印等功能。通过图形化界面(GUI)和数据库技术,旨在简化课程管理流程,提升教学管理效率与用户体验。 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-15 - **Last Updated**: 2025-09-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, 课设 ## README # 重庆城市科技学院课程管理系统 ## 1. 项目简介 ### 1.1 编写目的 本系统旨在为重庆城市科技学院的学生和教师提供一个便捷、高效的课程管理工具。系统支持课程信息的增删改查、用户权限分级管理、课程表可视化及打印等功能。通过图形化界面(GUI)和数据库技术,旨在简化课程管理流程,提升教学管理效率与用户体验。 ### 1.2 项目背景 传统的课程管理多依赖纸质表格或简单的电子文档,存在数据冗余、操作繁琐、共享困难等问题。本系统基于Java Swing和MySQL数据库,结合面向对象的设计思想,实现课程信息的动态管理和可视化操作,以满足现代教育信息化管理的需求。 --- ## 2. 系统特性 - **用户角色管理**:提供普通用户与管理员两种角色,权限分离。 - **完整的CRUD功能**:对课程信息进行便捷的增加、删除、修改、查询。 - **课程表可视化与打印**:支持按周次查看并打印格式化的课程表。 - **数据安全**:用户密码加密存储,数据访问隔离。 - **跨平台运行**:基于Java开发,可在Windows、macOS、Linux等系统上运行。 --- ## 3. 技术栈 | 层级 | 技术/工具 | 说明 | | :--------------- | :------------------ | :--------------------------- | | **前端界面** | Java Swing | 构建图形化用户界面 | | **后端逻辑** | Java SE 11+ | 核心业务逻辑实现 | | **数据库** | MySQL 8.0 | 数据持久化存储 | | **数据访问** | JDBC | 数据库连接与操作 | | **开发工具** | IntelliJ IDEA | 集成开发环境 | | **数据库工具** | Navicat / MySQL Workbench | 数据库管理与维护 | | **版本控制** | Git | 代码版本管理 | --- ## 4. 功能模块 ### 4.1 用户管理模块 - **用户注册与登录** - 新用户注册,系统进行用户名唯一性校验。 - 用户登录,系统验证凭证后根据权限跳转至不同界面。 - **权限管理** - **普通用户**:管理个人课程表(增删改查自己的课程)。 - **管理员**:管理所有用户账户(增删用户),查看所有课程信息。 ### 4.2 课程管理模块 - **课程增删改查 (CRUD)** - `添加课程`:输入课程名称、教师、时间、地点等信息,系统进行非空校验。 - `删除课程`:支持课程删除操作,并提供确认提示防止误删。 - `修改课程`:编辑已存在课程的各项信息。 - `查询课程`:按课程名称查询详细信息。 - **课程表打印** - 按周次查看课程表,系统自动按天(周一至周日)排序。 ### 4.3 数据库管理模块 - **数据持久化**:使用MySQL存储用户信息和课程数据。 - **数据安全**:用户密码经加密后存储,保障信息安全。 - **数据隔离**:普通用户仅能访问自身课程数据,管理员可访问全部。 --- ## 5. 系统设计 ### 5.1 系统架构 系统采用典型的三层架构: 1. **表示层 (Presentation Layer)**: 由Java Swing组件构建的GUI界面。 - 主要界面:`Login.java` (登录), `Choose.java` (主功能选择), `AddCourse.java` (添加课程), `DelCourse.java` (删除课程), `PrintCourse.java` (打印课表)等。 2. **业务逻辑层 (Business Logic Layer)**: 处理核心业务逻辑。 - 核心类:`UserManager` (处理用户注册、登录、权限验证), `CourseManager` (处理课程的增删改查和校验)。 3. **数据访问层 (Data Access Layer)**: 负责与数据库交互。 - 核心类:`ConnectDB.java` (封装数据库连接、SQL执行), `UserDAO`, `CourseDAO` (数据访问对象)。 ### 5.2 核心流程 - **用户登录流程**:界面输入 -> `UserManager.validateLogin()` -> 数据库验证 -> 权限跳转。 - **添加课程流程**:界面输入 -> `CourseManager.addCourse()` 校验 -> `ConnectDB.executeUpdate()` 保存。 --- ## 6. 安装与部署 ### 6.1 环境要求 - **操作系统**: Windows 10/11, macOS Monterey, Linux Ubuntu 20.04 LTS 或更高版本。 - **Java环境**: **JDK 11** 或更高版本。 - **数据库**: **MySQL 8.0** 或更高版本。 ### 6.2 部署步骤 1. **克隆项目**: ```bash git clone cd course-management-system ``` 2. **数据库配置**: - 安装并启动MySQL服务。 - 使用工具(如Navicat、MySQL Workbench)创建名为 `schooldb` 的数据库。 - 执行项目中的SQL脚本(通常在 `/sql/init_tables.sql`)来创建数据表结构。 3. **配置数据库连接**: - 修改 `src/.../ConnectDB.java` 文件中的数据库连接参数,确保与你的MySQL配置一致。 ```java private static final String URL = "jdbc:mysql://localhost:3306/schooldb?useSSL=false&serverTimezone=UTC"; private static final String USER = "your_username"; // 改为你的数据库用户名 private static final String PASSWORD = "your_password"; // 改为你的数据库密码 ``` 4. **编译运行**: - 使用IDE(如IntelliJ IDEA)导入项目,配置JDK,然后直接运行 `Login.java`。 - 或使用Maven/Gradle打包成可执行JAR文件: ```bash mvn clean package java -jar target/course-management-system-1.0-SNAPSHOT.jar ``` --- ## 7. 使用说明 1. **首次使用**:启动程序后,可通过注册功能创建普通用户账户。第一个管理员账户可能需要直接在数据库中初始化。 2. **普通用户**:使用账号登录后,可进入主界面管理自己的课程。 3. **管理员**:使用管理员账号登录后,可进入用户管理界面操作所有账户。 --- ## 8. 项目结构(简要) course-management-system/ ├── src/ # 源代码目录 │ ├── main/java/ # Java核心代码 │ │ ├── com/example/ # 主包名 │ │ │ ├── ui/ # 界面类 (Login.java, Choose.java, ...) │ │ │ ├── manager/ # 业务逻辑类 (UserManager, CourseManager) │ │ │ ├── dao/ # 数据访问类 (UserDAO, CourseDAO) │ │ │ └── util/ # 工具类 (ConnectDB.java) │ │ └── resources/ # 资源文件 ├── sql/ # 数据库脚本目录 │ └── init_tables.sql # 初始化数据库的SQL脚本 ├── README.md # 项目说明文档 └── pom.xml # Maven依赖配置文件 (如果使用) ## 9. 注意事项 - 请确保MySQL服务已启动,并且数据库连接配置正确,否则程序无法运行。 - 本系统为课程设计项目,请勿用于生产环境。 - 管理员功能需谨慎使用。 ## 10. 开发者 - 开发者:LZL