“班级学生成绩管理系统”包含如下项目:项目1项目菜单设计,项目2学生成绩的输入与计算,项目3项目菜单的选择执行,项目4项目的整体框架设计,项目5项目中数组的应用,项目6项目中指针的应用,项目7项目中自定义数据类型,项目8项目中学生数据的存储与重用。
吕新平主编的这本《C语言程序设计项目教程》将这8个项目作为8个章标题,“班级学生成绩管理系统”采用“循序渐进”的原则,分为21个任务实施。各项目以1~4个任务为驱动,围绕完成任务设计必备的知识与理论进行讲解,使学习与应用融为一体。通过学习的深入逐步完善程序的功能,最后形成一个较为完整的程序。随着学习的逐步深入,学习者也可以自己增加新的模块,使程序逐步完善、实用。
除通过本书的项目开发可以培养学习者项目开发的技能外,本书各章后包含的大量习题,可使学习者很好掌握所学知识与技能。习题的形式采用与全国计算机等级考试类似的题型,因此该书也可作为全国计算机等级考试(二级C语言)的参考书目。
吕新平主编的《C语言程序设计项目教程》讲述C语言程序设计的基本理论、基础知识、实用方法,以“班级学生成绩管理系统”软件项目的开发为主线,将该项目开发过程中要用到的知识、技能分解到各个章节,并将该项目的开发划分为若干个与章节知识点密切相关的若干个任务,在学习完相应章节的知识、技能后,完成该项目的开发。
《C语言程序设计项目教程》的讲解深入浅出、易学易懂、取舍合理,并适宜教学,并以C语言的最新标准C99为依据编写。《C语言程序设计项目教程》可以作为高等院校/高等职业院校计算机及相关专业学生学习C语言程序设计的教材,也可作为参加有关考试和自学的参考书。
项目1 项目菜单设计
1.1 任务1:用输入/输出函数初步设计项目菜单
1.2 必备知识与理论
1.2.1 计算机程序设计语言
1.2.2 高级程序设计语言的开发过程
1.2.3 C语言标准
1.2.4 C语言的特点
1.2.5 使用Microsoft Visual C++6.0开发C语言程序
1.3 扩展知识与理论
1.3.1 函数
1.3.2 函数的组成部分
1.3.3 语句
1.3.4 名字与声明
1.3.5 变量及其赋值
1.3.6 算术运算
习题1
项目2 学生成绩的输入与计算
2.1 任务2:学生成绩的输入/输出
2.2 任务3:总分与平均分的计算
2.3 必备知识与理论
2.3.1 定点数与浮点数的表示
2.3.2 整数的有符号类型与无符号类型
2.3.3 类型宽度与取值范围
2.3.4 整型常量
2.3.5 实型常量
2.3.6 字符类型及其常量
2.3.7 符号常量
2.3.8 变量的定义
2.3.9 变量的初始化
2.3.10 数据类型的自动转换
2.3.11 强制类型转换
2.4 扩展知识与理论
2.4.1 printf()函数
2.4.2 scanf()函数
2.4.3 字符输入/输出函数getchar()与putchar()
习题2
项目3 项目菜单的选择执行
3.1 任务4:用if语句实现菜单的选择执行
3.2 必备知识与理论
3.2.1 算法的概念
3.2.2 算法的表示方法
3.2.3 结构化程序设计
3.2.4 命题与C语言中的逻辑值
3.2.5 关系运算符与关系表达式
3.2.6 逻辑运算符与逻辑表达式
3.3 扩展知识与理论
3.3.1 if(表达式)语句
3.3.2 if...else结构
3.3.3 if...else if结构
3.4 任务5:用switch语句实现菜单的选择执行
3.5 必备知识与理论
3.6 扩展知识与理论
3.7 任务6:用循环语句实现菜单的选择执行
3.8 必备知识与理论
3.8.1 while语句
3.8.2 dowhile结构
3.8.3 for结构
3.9 扩展知识与理论
3.9.1 break语句
3.9.2 continue语句
习题3
项目4 项目的整体框架设计
4.1 任务7:整体项目菜单函数
4.2 任务8:子项目菜单函数
4.3 任务9:系统实现的主函数
4.4 必备知识与理论
4.4.1 设计C语言程序就是设计函数
4.4.2 函数结构
4.4.3 函数定义与函数声明
4.4.4 函数调用
4.4.5 函数的递归调用
4.5 扩展知识与理论
4.5.1 变量的作用域和生存期
4.5.2 C语言中变量的存储类型
4.5.3 “文件包含”处理
4.5.4 宏定义
习题4
项目5 项目中数组的应用
5.1 任务10:使用数组查找学生最高、最低成绩
5.2 任务11:使用数组查找成绩不合格的学生
5.3 任务12:使用数组对学生的成绩进行排序
5.4 必备知识与理论
5.4.1 一维数组定义及数组元素引用
5.4.2 一维数组的初始化
5.4.3 一维数组元素的查找与排序
5.4.4 数组与函数
5.4.5 字符数组与字符串
5.4.6 字符串的输入与输出
5.4.7 字符串处理函数
5.5 扩展知识与理论
5.5.1 二维数组的定义与引用
5.5.2 二维数组的初始化
5.5.3 向函数传递二维数组
习题5
项目6 项目中指针的应用
6.1 任务13:使用指针查找学生最高、最低成绩
6.2 任务14:使用指针查找成绩不合格的学生
6.3 任务15:使用指针对学生的成绩进行排序
6.4 必备知识与理论
6.4.1 地址与指针
6.4.2 指针变量的定义、初始化与赋值
6.4.3 指针变量的引用
6.4.4 指针的运算
6.4.5 指向指针变量的指针与多级指针
6.4.6 指向void类型的指针
6.4.7 数组元素的指针引用
6.4.8 多字符串的存储与处理
6.4.9 内存的动态分配与动态数组的建立
6.5 扩展知识与理论
6.5.1 指针参数与函数的地址传送调用
6.5.2 带参数的主函数
6.5.3 返回指针值的函数
6.5.4 指向函数的指针
习题6
项目7 项目中自定义数据类型
7.1 任务16:学生记录的增加
7.2 任务17:学生记录的删除
7.3 任务18:学生记录的修改
7.4 任务19:学生记录的显示
7.5 必备知识与理论
7.5.1 结构体类型及其定义
7.5.2 定义结构体类型变量及对变量的初始化
7.5.3 结构体变量的操作
7.5.4 嵌套结构体类型
7.5.5 位段
7.5.6 结构体数组的定义与初始化
7.5.7 对结构体数组元素的操作
7.5.8 指向结构体变量的指针
7.5.9 指向结构体数组的指针
7.6 扩展知识与理论
7.6.1 链表的概念
7.6.2 链表结点的定义与链接关系的建立
7.6.3 动态链表的建立
7.6.4 结构体变量作为函数参数
7.6.5 用指向结构体变量的指针作函数参数
7.6.6 返回结构体类型值的函数
7.6.7 共用体的特点
7.6.8 共用体变量的应用
7.6.9 枚举类型数据
7.6.10 用Typedef定义类型
习题7
项目8 项目中学生数据的存储与重用
8.1 任务20:学生信息的保存
8.2 任务21:学生信息文件的打开
8.3 必备知识与理论
8.3.1 文件及其分类
8.3.2 文件名
8.3.3 文件的位置指针与读写方式
8.3.4 FILE类型指针
8.3.5 流
8.3.6 文件的打开与关闭——流的创建与撤销
8.3.7 文件的字符读/写
8.3.8 文件的字符串读/写
8.3.9 文件的格式化读/写
8.3.10 文件的记录读/写
8.4 扩展知识与理论
8.4.1 文件位置指针的定位函数
8.4.2 文件随机读写程序的应用
8.4.3 ferror函数
8.4.4 fclearerr函数
习题8
“班级学生成绩管理系统”项目
总结
附录1 常用字符与ASCII码对照表(附表1)
附录2 C语言运算符的优先级与结合性(附表2)
附录3 C语言中的关键字
参考文献