# hallofbooks **Repository Path**: diamond0910/hallofbooks ## Basic Information - **Project Name**: hallofbooks - **Description**: Alexándreia,亚历山大——既指那座古代世界最大的图书馆,也象征“人类的守护与求索。 全C语言构建的图书管理系统,非常适合C语言入门项目练习,目前我也在做中学,所以并不是完全完美,非常大家提建议和共同参与构建。 - **Primary Language**: C - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-12-04 - **Last Updated**: 2025-12-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Αλεξάνρεια / Alexandria 📚🕯️ > 让卷轴在终端里展开,让文字在比特中永生。 > 这是一座用 C 语言砌成的图书馆,没有火焰能烧毁,没有岁月能侵蚀。 ## 神话与重生 公元前 48 年,亚历山大图书馆在战火中坍圮,70 万卷羊皮卷与莎草纸化作飞灰,人类文明的灯塔一度熄灭。千年后的今天,我们以键盘为凿、代码为石,在二进制的世界里重建这座智慧殿堂: - 让内存成为永恒的书架,CSV 化作不朽的借阅档案 - 以 `main()`为新的法罗斯灯塔,为知识的航船指引方向 - 用指针与结构体编织馆藏,让算法守护文明的火种 ## 架构蓝图 目前工程以 `main.c`为核心骨架,后续将逐步拆解为模块化结构: ``` alexandria/ ├── main.c # 核心入口:图书馆总控逻辑 ├── src/ # 功能模块(待实现) │ ├── bookshelf/ # 书架管理:藏书检索与存储(待实现) │ ├── records/ # 借阅系统:用户与借阅记录(待实现) │ └── scroll/ # 文本处理:卷轴解析与展示(待实现) └── data/ # 数据档案:CSV存储与备份(待实现) ``` ## 核心使命 我们不只是复刻一座图书馆,更是用代码重构「知识永存」的信仰—— 让每个函数都成为廊柱,每条语句化作铭文,在 0 与 1 的星河中,让文明永不落幕。 --- _Built with C, powered by curiosity._ ##### 技术思想构架流程: ```txt 现在是11月30号,现在我决定了,使用一次内存读取使用的技术路线,原本是想要都放到csv里面去的,一开始还是txt,但是txt的话,搞格式太麻烦了,所以还是csv了,这样后续数据也通用一点。 一次性先读取到内存当中,然后在内存中操作,这样子性能更高,然后后续实现相关的搜索算法啥的也会更加方便,然后就是需要注意保存,要不然一下子没保存到csv里面去的话,就相当于是白操作了,所以代码确实是需要想想该这么写的,何况我现在还是个小白,这也算是我第一次写c语言的大项目吧。 加油吧! ``` ## 系统架构分析 ### 1. 三层架构设计 **text** ``` ┌─────────────────┐ │ 表示层 (UI) │ ← 用户界面 (maincontrol, showDashboard) ├─────────────────┤ │ 业务逻辑层 │ ← 核心功能 (借书、还书、查询等) ├─────────────────┤ │ 数据访问层 │ ← 文件读写 (load/save_data_from_csv) └─────────────────┘ ``` ### 2. 数据结构关系 **text** ``` 用户 (User) ──── 借阅关系 (Lend_relation) ──── 图书 (Book) │ │ │ └─ book_count ├─ bookid ├─ is_available ├─ userid └─ is_canlend └─ dates ``` ### 3. 用户类型与权限 - **游客 (0)** : 只能查询图书 - **读者 (1)** : 可借书、还书、查看自己记录 - **管理员 (2)** : 可管理图书、用户、借阅关系