Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

C 语言课程设计:图书馆管理系统

这是我大一上学期完成的 C 语言课程设计项目,主题是 图书馆管理系统。项目最初使用 Code::Blocks 编写,后来我将其迁移到 VS Code 中进行查看、运行和整理,并上传到 GitHub 作为学习记录。

项目简介

本项目使用 C 语言实现了一个基础的图书馆管理系统,主要通过控制台菜单进行交互。程序使用结构体数组保存用户信息和图书信息,并通过文件读写实现基础的数据保存。

项目主要涉及以下 C 语言知识点:

  • 结构体 struct
  • 数组与字符串
  • 函数封装
  • 条件判断与循环
  • 文件读写
  • 控制台菜单交互
  • 简单的用户与图书信息管理

主要功能

本项目大致包含以下功能:

  • 用户注册与登录
  • 管理员与普通用户区分
  • 图书信息添加
  • 图书信息查询
  • 图书借阅
  • 图书归还
  • 图书数据保存
  • 用户数据保存

项目文件说明

文件 / 文件夹 说明
main.c 项目核心源代码
library.cbp Code::Blocks 项目配置文件
books.dat 程序运行时生成的图书数据文件
users.dat 程序运行时生成的用户数据文件
bin/ Code::Blocks 编译生成目录
obj/ Code::Blocks 编译中间文件目录
main.exe 编译生成的可执行文件
main.o 编译生成的目标文件

其中,真正需要重点学习和修改的是:

main.c

.exe.obin/obj/ 等文件属于编译生成文件,不是手写源码,通常不需要上传到 GitHub。

在 VS Code 中运行

由于本项目是 C 语言控制台项目,可以直接使用 gcc 编译运行。

如果当前终端已经进入项目目录,可以使用:

gcc main.c -o main.exe
.\main.exe

如果出现中文乱码,可以根据终端编码情况使用下面的命令:

chcp 936
gcc -finput-charset=UTF-8 -fexec-charset=GBK main.c -o main.exe
.\main.exe

其中:

  • chcp 936 表示将 Windows 终端切换到 GBK / 简体中文代码页
  • -finput-charset=UTF-8 表示源代码文件使用 UTF-8 编码
  • -fexec-charset=GBK 表示程序运行时字符串按 GBK 输出

编码问题记录

这个项目最初来自 Code::Blocks,属于比较典型的老式中文 C 语言课程设计项目。迁移到 VS Code 时,我遇到了中文乱码问题。

通过排查,我理解到乱码通常分为两类:

  1. 代码编辑区乱码

    这是因为 VS Code 使用了错误的编码方式打开文件。 解决方式是:

    右下角编码 → Reopen with Encoding → 选择 UTF-8 或 GBK
    
  2. 终端运行输出乱码

    这是因为程序输出的字符串编码和 Windows 终端显示编码不一致。 可以通过 chcpgcc 的编码参数解决。

这次整理让我理解了:

源代码编码
→ 编译器处理编码
→ 终端显示编码

这三者需要匹配,否则中文就可能出现乱码。

⭐⭐⭐本次上传过程中曾遇到 VS Code 与 GitHub 网络握手失败的问题,排查后发现主要与 VPN / 代理连接不稳定有关。⭐⭐⭐

学习过程记录

这次整理项目的重点不只是上传代码,而是学习如何把以前写过的课程设计项目重新整理成一个可以放到 GitHub 上的项目。

我主要完成了以下过程:

  1. 使用 VS Code 打开原 Code::Blocks 项目文件夹
  2. 区分源码文件、数据文件、项目配置文件和编译生成文件
  3. 识别 main.c 是项目核心源代码
  4. 理解 books.datusers.dat 是程序运行时的数据文件
  5. 理解 main.exemain.obin/obj/ 是编译生成文件
  6. 处理 VS Code 中的中文编码问题
  7. 使用 gcc 在终端中编译运行项目
  8. 编写 .gitignore,避免上传无意义的编译产物
  9. 编写 README,记录项目功能和学习过程
  10. 使用 Git 将项目上传到 GitHub

个人总结

这个项目是我大一上学期学习 C 语言时完成的课程设计。现在重新整理它,一方面是为了保存自己的学习成果,另一方面也是为了练习如何使用 VS Code、Git 和 GitHub 管理自己的代码。

通过这个项目,我不仅复习了 C 语言基础,也开始理解一个项目中不同文件的作用,以及如何把本地项目规范地上传到 GitHub。

后续如果继续完善,可以考虑:

  • 拆分多个 .c.h 文件
  • 优化菜单交互
  • 增加输入合法性检查
  • 改进文件保存格式
  • 添加更清晰的用户权限管理
  • 将控制台程序升级为图形界面程序

About

C 语言课程设计:图书馆管理系统,包含 Code::Blocks 到 VS Code 的迁移、编码处理和 GitHub 学习记录。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages