大湾区大学 · 大二专业必修课 · 课程设计代码仓库
本仓库用于存放大湾区大学《C语言程序设计》课程的课程设计代码及配套说明,供同学们学习、实践与交流。代码将随教学进度逐步更新。
课程面向初次接触编程的学生,以标准 C17 为基础,从理解程序的运行过程出发,逐步学习数据表示、算法设计、结构化编程与调试,并通过实验数据处理等案例,将所学知识用于解决简单的工程与科学问题。
| 项目 | 内容 |
|---|---|
| 课程名称 | C语言程序设计(C Programming) |
| 开课学校与学院 | 大湾区大学 · 先进工程学院 |
| 授课对象 | 大二本科生 |
| 课程性质 | 专业必修课 |
| 任课教师 | 白杨 |
| 学分与学时 | 2 学分,32 学时,其中理论 20 学时、实践 12 学时 |
| 授课安排 | 16 次课,每次 90 分钟 |
| 先修要求 | 无,适合零编程基础学生 |
| 授课语言 | 中文 |
| 编程语言 | C,采用 C17 标准 |
完成课程学习后,希望同学们能够:
- 理解 C 程序从源代码到编译、链接和运行的基本过程,掌握常用语法与程序结构。
- 根据问题明确输入、输出与约束,使用分支、循环和函数设计解决方案。
- 综合运用数组、指针、字符串、结构体和文件操作,编写中小规模程序。
- 利用编译器诊断、调试工具与测试数据定位问题,并清楚说明程序的设计、结果和适用范围。
| 课次 | 主要内容 |
|---|---|
| L01 | 计算机基础、从源代码到运行、第一个 C 程序 |
| L02 | 类型、变量、常量与输入输出 |
| L03 | 表达式、类型转换与可靠计算 |
| L04 | if、switch 与边界条件 |
| L05 | 循环与数据汇总 |
| L06 | 函数、参数、返回值与作用域 |
| L07 | 一维数组与基础统计 |
| L08 | 二维数组、查找与选择排序 |
| L09 | 地址、指针与安全使用 |
| L10 | 指针参数、数组接口与多个结果 |
| L11 | 字符、字符串与可靠输入 |
| L12 | 结构体与结构体数组 |
| L13 | 记录数组、模块分解与系统测试 |
| L14 | 文本文件与错误处理 |
| L15 | 项目整合、调试、测试与程序组织 |
| L16 | 项目汇报、综合复习与反馈 |
课程设计将基础语法与完整的问题求解过程结合起来:明确需求,组织数据,分解功能,实现程序,再通过测试检查结果。
结合课程中的实验测量与离线数据处理案例,一个综合设计方向是实验数据或传感日志分析程序:从文本文件读取记录,检查数据是否合法,完成数量、均值、极值等统计,并输出分析摘要。基础版本可使用固定容量数组、函数和结构体完成,后续再根据需要扩展功能。
项目重点包括功能正确、结构清楚、输入检查与错误处理可靠,以及测试结果能够复现。建议每个项目配套提供:
| 材料 | 说明 |
|---|---|
| 源代码 | 完整的 .c 文件及需要的 .h 文件 |
| 项目说明 | 问题背景、功能范围、数据格式和设计思路 |
| 运行方法 | 编译命令、运行步骤及必要依赖 |
| 示例与测试 | 示例输入、预期输出,以及正常、边界和错误情况的测试 |
| 结果讨论 | 主要结果、已知限制与可改进之处 |
具体选题、提交要求和考核安排以课堂通知及项目说明为准。
下载仓库:
git clone https://github.com/MatMechLab/C-Programming.git
cd C-Programming编译环境需支持 C17,可使用 GCC 或 Clang。代码文件使用 .c 扩展名,并按 C 语言模式编译。
以下是通用编译示例,main.c 为示例文件名;请在代码发布后进入相应项目目录,按其说明替换文件名。
在 Linux、macOS 或 WSL 终端中,单文件程序可按以下方式编译和运行:
gcc -std=c17 -Wall -Wextra -Wpedantic main.c -o program
./program使用 Clang 时,可将命令中的 gcc 替换为 clang。在已配置 GCC 的 Windows PowerShell 中:
gcc -std=c17 -Wall -Wextra -Wpedantic main.c -o program.exe
.\program.exe-std=c17 指定语言标准,-Wall -Wextra -Wpedantic 开启常用警告与标准符合性诊断。编译时应认真阅读诊断信息;运行后还需核对结果是否符合题目要求。
多文件项目的编译方式、输入数据路径和运行参数以各项目说明为准。不同示例若分别包含 main 函数,应分别编译。
- 运行前先阅读题目与代码,预测程序输出,再与实际结果比较。
- 修改输入或条件,观察程序如何处理零值、空数据、容量边界和不合法输入。
- 调试时记录问题、原因与修复方法,修复后重新运行已有测试。
- 在理解示例的基础上独立完成课程任务,能够解释自己的代码与设计选择;引用或改编他人代码时注明来源。
- 谭浩强:《C程序设计》。
- Stephen Prata:C Primer Plus。
- Brian W. Kernighan、Dennis M. Ritchie:The C Programming Language。
阅读不同版本的教材时,注意示例所采用的语言标准;本课程以 C17 为基准。
本仓库采用 MIT License。使用或分发仓库代码时,请保留相应的版权与许可声明。