From ff7758924fc2f89a8ba70abc27e21d158e6b743b Mon Sep 17 00:00:00 2001 From: LHY20 <3364451258@qq.com> Date: Sun, 20 Jul 2025 16:43:53 +0800 Subject: [PATCH] Add comprehensive README documentation for C learning repository --- .gitignore | 1 - README.md | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 238 insertions(+), 1 deletion(-) create mode 100644 README.md diff --git a/.gitignore b/.gitignore index 31bcf8a..f74e040 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ # 排除可执行文件 -*.exe *.out *.o diff --git a/README.md b/README.md new file mode 100644 index 0000000..01dee3c --- /dev/null +++ b/README.md @@ -0,0 +1,238 @@ +# C语言学习代码库 + +## 项目简介 +这是一个完整的C语言学习代码库,包含了从基础语法到高级项目的全面学习内容。代码库涵盖了翁凯老师C语言课程的所有章节练习、课堂代码实践以及完整的项目实战。 + +## 项目结构 + +### 📚 翁凯C语言/ +翁凯老师C语言课程的完整代码实现,按章节组织: + +- **第1章** - C语言入门 + - Hello World程序 + - 基础数学运算 + - 猜数游戏 + - 数组倒序排列 + +- **第2章** - 循环与判断 + - 硬币兑换问题 + - 阶乘计算(多种实现) + - 求和算法 + - 最大公约数(辗转相除法) + - 整数分解 + - 素数判断 + +- **第3章** - 数据类型与运算 + - 字符类型处理 + - 数字朗读程序 + - 九九乘法表 + - 水仙花数 + - 浮点数精度 + - 逻辑运算 + - 分式约分 + +- **第4章** - 函数 + - 函数定义与使用 + - 参数传递机制 + - 递归函数 + - 局部变量作用域 + +- **第5章** - 数组 + - 一维数组操作 + - 二维数组与矩阵 + - 冒泡排序算法 + - 素数筛选 + - 杨辉三角 + - 矩阵运算 + +- **第6章** - 指针 + - 指针基础概念 + - 指针与数组 + - 动态内存分配 + - 函数指针 + - 指针数组 + +- **第7章** - 字符串 + - 字符串基础操作 + - 字符串函数(strlen, strcpy, strcmp) + - 字符串数组 + - 回文字符串 + +- **第8章** - 结构体 + - 结构体定义与使用 + - 结构体与函数 + - 嵌套结构体 + - 动态链表 + - 枚举类型 + - 联合体 + +- **第9章** - 程序结构 + - 全局变量 + - 静态变量 + - 头文件使用 + - 宏定义 + - 大型程序组织 + +- **第10章** - 文件操作 + - 文件输入输出 + - 格式化读写 + - 二进制文件处理 + +- **第11章** - 位运算 + - 按位运算符 + - 移位运算 + - 位段操作 + +- **第12章** - 动态数据结构 + - 可变数组实现 + - 自动增长机制 + - 数据访问优化 + +- **第13章** - 链表 + - 单向链表实现 + - 链表函数封装 + - 链表搜索算法 + +### 🎯 课上代码练习/ +课堂实践代码,包含基础练习和项目实战: + +#### 基础练习(1.1.1 - 1.1.7) +- C语言初识 +- 数值处理(最大值、求和) +- 字符函数应用 +- 大小写转换 +- 条件判断 +- BMI计算器 + +#### 🎮 五子棋项目 +完整的五子棋人机对战系统,技术特点: +- **AI算法**:α-β剪枝优化的极小极大算法 +- **棋盘支持**:5x5到25x25可调尺寸 +- **智能评估**:完整的棋型评估系统 +- **游戏功能**:复盘系统、胜负判断 +- **用户体验**:清晰的界面显示 + +详细文档请查看:[五子棋项目README](课上代码练习/五子棋/README.md) + +### 📝 草稿/ +临时代码和实验性代码: +- 测试代码片段 +- 算法草稿 +- 文档模板 + +## 技术栈 + +- **编程语言**:C语言(C99标准) +- **编译器**:GCC +- **开发环境**:支持Windows/Linux/macOS +- **特殊库**:数学库(-lm) + +## 编译说明 + +### 单文件编译 +```bash +gcc filename.c -o output +``` + +### 需要数学库的程序 +```bash +gcc filename.c -o output -lm +``` + +### 多文件项目(如五子棋) +```bash +cd 课上代码练习/五子棋 +gcc "五子棋 copy 3.c" -o gomoku -lm +``` + +## 学习路径建议 + +### 🔰 初学者路径 +1. **基础语法**:从翁凯C语言第1-3章开始 +2. **函数理解**:学习第4章函数概念 +3. **数组掌握**:重点练习第5章数组操作 +4. **指针突破**:深入理解第6章指针概念 + +### 🚀 进阶路径 +1. **字符串处理**:第7章字符串操作 +2. **数据结构**:第8章结构体和第13章链表 +3. **文件操作**:第10章文件处理 +4. **项目实战**:五子棋AI项目 + +### 💡 高级应用 +1. **位运算优化**:第11章位操作 +2. **动态内存**:第12章可变数组 +3. **程序架构**:第9章大型程序设计 + +## 代码特色 + +### ✨ 编码规范 +- 统一的代码风格和注释 +- 清晰的变量命名 +- 完整的错误处理 + +### 🛠️ 实用功能 +- 跨平台兼容性(Windows/Linux) +- UTF-8编码支持 +- 用户友好的交互界面 + +### 📊 算法实现 +- 经典排序算法 +- 搜索算法 +- 数学计算算法 +- AI决策算法 + +## 项目亮点 + +### 🎯 五子棋AI系统 +- **智能对战**:实现了具有挑战性的AI对手 +- **算法优化**:使用α-β剪枝提升搜索效率 +- **完整功能**:包含复盘、胜负判断等完整游戏体验 + +### 📚 完整学习体系 +- **循序渐进**:从基础到高级的完整学习路径 +- **实战结合**:理论学习与项目实践相结合 +- **代码质量**:注重代码规范和最佳实践 + +## 使用说明 + +1. **克隆仓库**: + ```bash + git clone https://github.com/LHY0125/Learn_C.git + cd Learn_C + ``` + +2. **选择学习内容**: + - 基础学习:进入`翁凯C语言/`对应章节 + - 项目实战:进入`课上代码练习/五子棋/` + - 快速练习:查看`课上代码练习/`基础练习 + +3. **编译运行**: + ```bash + gcc 文件名.c -o 输出名 + ./输出名 + ``` + +## 贡献指南 + +欢迎提交Issue和Pull Request来改进这个学习资源! + +### 贡献方式 +- 🐛 报告Bug +- 💡 提出改进建议 +- 📝 完善文档 +- ✨ 添加新的学习案例 + +## 许可证 + +本项目采用MIT许可证,详情请查看LICENSE文件。 + +## 联系方式 + +如有问题或建议,欢迎通过GitHub Issues联系。 + +--- + +**Happy Coding! 🚀** + +> 这个代码库记录了C语言学习的完整历程,从基础语法到复杂项目,希望能帮助更多人掌握C语言编程技能。 \ No newline at end of file