知识点: 1.循环结构的起始条件和结束; 2.递归、输入输出; 3.函数的定义; 4.函数的参数和函数的值; 5.函数的调用; 6.函数的嵌套调用; 7.函数的递归调用; 8.数组作为函数参数: 9.变量作用域; 10.变量存储类别。 第三章实战3:大型C项目的实现 自学内容:拓展项目(见 3.1项目1:程序菜单界面设计 教材) 3.2项目2:典型项目功能需求: 课堂作业: (1)利用数组实现,输入10个整数,打印出最大值和最小值; (2)利用指针实现,输入3个整数,打印出最大值和最小值。 1.汇报网上在线学习情 要求: 况。 (1)建立3个源文件,分别实现主界面、数组功能模块和指针 2.完成基本项目实现。 功能模块;通过头文件暴露数组模块和指针模块接口; 3.实验交流。 (2)在主界面中,编写项目的入口一主函数,通过选择分别 课外作业: 进入数组功能模块和指针功能模块;在数组模块和指针功能模 块,利用函数分别实现数据的输入,最大值和最小值输出。 1.完成本章小结 33项目3:本《项目实战案例》教程提供了八个实战项目。每 2.完成拓展项目的设计 个实战项目又包含有数个基本子项目和扩展项目。如何将 和实现。 这八个实战项目有机整合成一个综合项目?该综合实战项 目框架如何搭建?各个实战项目源代码文件如何组织?如 何设置头文件?各个模块如何有效组织,如何公布接口, 如何调用等等。 知识点: 1.多分支结构,循环结构 2.函数的定义、声明和调用 3.文件包含宏命令,头文件 4.Visual C+或Visual Studio.NET20l3集成开发平台项目组织 与管理 5.C语言代码组织策略、源代码文件及头文件组织策略等 第四章实战4:数组 自学内容:拓展项目(见 4.1项目1:题目描述:N个人围成一圈,从第一个开始报数, 教材) 数到第k时那人出队;下一个人再从1开始报数,依次循 课堂作业: 环,直到最后一个人。要求:(1)用数组存放N个人(N 可设定为某一确定值)(2)用户分别依次输入N个人名(3) 1.汇报网上在线学习情 k由用户输入(4)依次输出退出人的顺序(5)将数组以参 况。 数形式传递给单独的函数进行处理。 2.完成基本项目实现。 42项目2:题目描述:输入一个字符串,统计其中大写字母、 3.实验交流。 13
13 知识点: 1. 循环结构的起始条件和结束; 2. 递归、输入输出; 3. 函数的定义; 4. 函数的参数和函数的值; 5. 函数的调用; 6. 函数的嵌套调用; 7. 函数的递归调用; 8. 数组作为函数参数; 9. 变量作用域; 10. 变量存储类别。 第三章 实战 3:大型 C 项目的实现 3.1 项目 1:程序菜单界面设计 3.2 项目 2:典型项目功能需求: (1)利用数组实现,输入 10 个整数,打印出最大值和最小值; (2)利用指针实现,输入 3 个整数,打印出最大值和最小值。 要求: (1)建立 3 个源文件,分别实现主界面、数组功能模块和指针 功能模块;通过头文件暴露数组模块和指针模块接口; (2)在主界面中,编写项目的入口——主函数,通过选择分别 进入数组功能模块和指针功能模块;在数组模块和指针功能模 块,利用函数分别实现数据的输入,最大值和最小值输出。 3.3 项目 3:本《项目实战案例》教程提供了八个实战项目。每 个实战项目又包含有数个基本子项目和扩展项目。如何将 这八个实战项目有机整合成一个综合项目?该综合实战项 目框架如何搭建?各个实战项目源代码文件如何组织?如 何设置头文件?各个模块如何有效组织,如何公布接口, 如何调用等等。 知识点: 1. 多分支结构,循环结构 2. 函数的定义、声明和调用 3. 文件包含宏命令,头文件 4. Visual C++或 Visual Studio.NET 2013集成开发平台项目组织 与管理 5. C 语言代码组织策略、源代码文件及头文件组织策略等 自学内容:拓展项目(见 教材) 课堂作业: 1. 汇报网上在线学习情 况。 2. 完成基本项目实现。 3. 实验交流。 课外作业: 1. 完成本章小结 2. 完成拓展项目的设计 和实现。 第四章 实战 4:数组 4.1 项目 1:题目描述:N 个人围成一圈,从第一个开始报数, 数到第 k 时那人出队;下一个人再从 1 开始报数,依次循 环,直到最后一个人。要求:(1)用数组存放 N 个人(N 可设定为某一确定值)(2)用户分别依次输入 N 个人名(3) k 由用户输入(4)依次输出退出人的顺序(5)将数组以参 数形式传递给单独的函数进行处理。 4.2 项目 2:题目描述:输入一个字符串,统计其中大写字母、 自学内容:拓展项目(见 教材) 课堂作业: 1. 汇报网上在线学习情 况。 2. 完成基本项目实现。 3. 实验交流
小写字母、数字、空格和其他字符各多少个。要求:(1) 课外作业: 输入任意一个字符串(长度不超出100个字符)(2)用数 组进行处理(3)将数组以参数形式传递给单独的函数进行 1. 完成本章小结 处理。(4)统计结果在main函数中输出。 2.完成拓展项目的设计 4.3项目3:任意输入N个单词,要求对这N个单词排序输出, 和实现。 每个单词的长度不超过某个固定值。 知识点: 1.数据类型、语句、数组、方法; 2.一维数组、二维数组的定义与引用; 3.字符数组及字符串处理函数的应用; 4.掌握几种简单的排序算法,如插入排序,选择排序,冒泡排 序,快速排序等及字符串处理函数的应用: 5.熟悉常用的字符串操作函数,strlen函数、strcmp函数和strcpy 函数等。 第五章实战5:结构体 自半内容:拓展项目(见 5.1项目1:有学生成绩登记表如下表所示: 教材) 成绩 平均 课堂作业: 学号 姓 性 年 名 别 龄 C语 英语 高 成绩 1.汇报网上在线学习情 言 数 况。 2.完成基本项目实现。 20121 刘 85 86 87.7 3.实验交流。 04096 子 男 19 92 01 栋 课外作业: 1.完成本章小结 20121 童 66 82 78.7 04096 雨 女 19 88 2.完成拓展项目的设计 02 嘉 和实现。 20121 杨 93 68 79.7 中: 04096 欣 女 18 78 03 悦 号是 20121 王 77 75 73 长度 04096 子 条 19 67 多 04 12 的数 字字 符组 成; 姓名最大长度10个字符;性别最多允许4个字符;年龄为整数; 成绩包括三项(C语言、英语、数学),均为整数,总成绩允许 有一位小数。 要求: (1)现某班有N名学生(程序运行时,N设定为某一确 14
14 小写字母、数字、空格和其他字符各多少个。要求:(1) 输入任意一个字符串(长度不超出 100 个字符)(2)用数 组进行处理(3)将数组以参数形式传递给单独的函数进行 处理。(4)统计结果在 main 函数中输出。 4.3 项目 3:任意输入 N 个单词,要求对这 N 个单词排序输出, 每个单词的长度不超过某个固定值。 知识点: 1. 数据类型、语句、数组、方法; 2. 一维数组、二维数组的定义与引用; 3. 字符数组及字符串处理函数的应用; 4. 掌握几种简单的排序算法,如插入排序,选择排序,冒泡排 序,快速排序等及字符串处理函数的应用; 5. 熟悉常用的字符串操作函数,strlen 函数、strcmp 函数和 strcpy 函数等。 课外作业: 1. 完成本章小结 2. 完成拓展项目的设计 和实现。 第五章 实战 5:结构体 5.1 项目 1:有学生成绩登记表如下表所示: 其 中: 学 号是 长度 为 12 的数 字字 符组 成; 姓名最大长度 10 个字符;性别最多允许 4 个字符;年龄为整数; 成绩包括三项(C 语言、英语、数学),均为整数,总成绩允许 有一位小数。 要求: (1)现某班有 N 名学生(程序运行时,N 设定为某一确 学号 姓 名 性 别 年 龄 成绩 平均 C 语 成绩 言 英语 高 数 20121 04096 01 刘 子 栋 男 19 92 85 86 87.7 20121 04096 02 童 雨 嘉 女 19 88 66 82 78.7 20121 04096 03 杨 欣 悦 女 18 78 93 68 79.7 20121 04096 04 王 子 濠 男 19 67 77 75 73 …… … … … … … … …… …… … … …… 自学内容:拓展项目(见 教材) 课堂作业: 1. 汇报网上在线学习情 况。 2. 完成基本项目实现。 3. 实验交流。 课外作业: 1. 完成本章小结 2. 完成拓展项目的设计 和实现
定值,并显示在屏幕上以提示操作者)。 (2)用户分别依次输入N个学生的信息。 (3)“平均成绩”项应通过计算获得,不从键盘输入。 (4)输入完成后,给出操作菜单让用户选择操作,菜单项 如下: 请选择排序字段: (1)学号 (2)姓名 (3)性别 (4)年龄 (5)C语言(6)英语 (7)高数 (8)平均分 (9)显示全部原始信息 (0)退出程序 (5)当用户正确选择反序字段后,进一步请用户选择排序 方向,如下: 请选择排序方向: (1)升序 (2)降序 (0)退出程序 (6)此操作可以反复进行,直到用户选择“退出程序”。 5.2项目2:火车订票系统功能需求如下: (1)查询功能:查询车票信息,包括起始地,车次,余票 和票价; (2)订票功能:车票预订; (3)修改功能:修改订票信息; (4)录入管理功能:实现输入车票的基本数据 (5)显示功能:查询到的信息能够显示出来,供用户查看 知识点: 1进一步掌握数组的声明和使用; 2.掌握结构体的声明,结构体变量的声明和赋值; 3.掌握结构体成员的访问; 4.掌握结构体数组的使用; 5.使用结构体处理复杂的数据结构; 6.为了计数结构体对象,掌握带计数器的辅助结构体的声明、 使用,理解其作用; 7.使用结构体处理复杂的数据结构; 8.掌握C+的引用。 第六章实战6:指针 自学内容:拓展项目(见 6.1项目l:Intent实现组件通信任意个人N围成一圈,每个人 教材) 有一个密码k(整数:从第一个人(其密码为k1)开始往 课堂作业: 后计数,数到第k1个人退出;接着,将退出者的密码k2 作为下一个退出的依据,继续从下一个人开始计数,数到 1.汇报网上在线学习情 第k2个人退出;退出者的密码再作为下一个退出的依 况。 据依次循环,直到全部人员出列。 2.完成基本项目实现。 要求: 3.实验交流。 (1)人数N不确定,用户可以输入任意个人 15
15 定值,并显示在屏幕上以提示操作者)。 (2)用户分别依次输入 N 个学生的信息。 (3)“平均成绩”项应通过计算获得,不从键盘输入。 (4)输入完成后,给出操作菜单让用户选择操作,菜单项 如下: 请选择排序字段: -------------------------------------------------- (1)学号 (2)姓名 (3)性别 (4)年龄 (5)C 语言 (6)英语 (7)高数 (8)平均分 (9)显示全部原始信息 (0)退出程序 -------------------------------------------------- (5)当用户正确选择反序字段后,进一步请用户选择排序 方向,如下: 请选择排序方向: -------------------------------------------------- (1)升序 (2)降序 (0)退出程序 -------------------------------------------------- (6)此操作可以反复进行,直到用户选择“退出程序”。 5.2 项目 2:火车订票系统功能需求如下: (1)查询功能:查询车票信息,包括起始地,车次,余票 和票价; (2)订票功能:车票预订; (3)修改功能:修改订票信息; (4)录入管理功能:实现输入车票的基本数据 (5)显示功能:查询到的信息能够显示出来,供用户查看 知识点: 1. 进一步掌握数组的声明和使用; 2. 掌握结构体的声明,结构体变量的声明和赋值; 3. 掌握结构体成员的访问; 4. 掌握结构体数组的使用; 5. 使用结构体处理复杂的数据结构; 6. 为了计数结构体对象,掌握带计数器的辅助结构体的声明、 使用,理解其作用; 7. 使用结构体处理复杂的数据结构; 8. 掌握 C++的引用。 第六章 实战 6:指针 6.1 项目 1:Intent 实现组件通信任意个人 N 围成一圈,每个人 有一个密码 k(整数);从第一个人(其密码为 k1)开始往 后计数,数到第 k1 个人退出;接着,将退出者的密码 k2 作为下一个退出的依据,继续从下一个人开始计数,数到 第 k2 个人退出;退出者的密码再作为下一个退出的依 据……依次循环,直到全部人员出列。 要求: (1)人数 N 不确定,用户可以输入任意个人 自学内容:拓展项目(见 教材) 课堂作业: 1. 汇报网上在线学习情 况。 2. 完成基本项目实现。 3. 实验交流
(2)用户分别依次输入任意个人名,同时输入每个人的密 课外作业: 码k (3)用单向、循环链表处理 1.完成本章小结 (4)输入完成后,给出操作菜单让用户选择操作,菜单项 1.完成拓展项目的设计 如下: 和实现。 请选择操作: (1)显示信息 (2)重新输入每个人的密码 (3)开始“数N退出”游戏 (4)退出程序 (5)此操作可以反复进行,直到用户选择“退出程序”。 6.2项目2:有学生成绩登记表下表所示。 成绩 平均 姓 性 年 学号 名 别 龄 C语 英语 高 成绩 言 数 20121 刘 85 86 87.7 04096 子 19 92 01 栋 20121 童 66 82 78.7 04096 雨 女 19 88 02 嘉 20121 杨 93 68 79.7 04096 欣 女 18 78 03 悦 20121 王 77 75 73 04096 子 男 19 67 04 濠 …… 。。+。。 其中: 学号是长度为12的数字字符组成;姓名最大长度10个字 符;性别最多允许4个字符;年龄为整数;成绩包括三项 (C语言、英语、数学),均为整数,总成绩允许有一位小 数。 要求: (1)学生人数未知,用户任意输入。 (2)“平均成绩”项应通过计算获得,不从键盘输入 16
16 (2)用户分别依次输入任意个人名,同时输入每个人的密 码 k (3)用单向、循环链表处理 (4)输入完成后,给出操作菜单让用户选择操作,菜单项 如下: 请选择操作: =========================== (1)显示信息 (2)重新输入每个人的密码 (3)开始“数 N 退出”游戏 (4)退出程序 =========================== (5)此操作可以反复进行,直到用户选择“退出程序”。 6.2 项目 2:有学生成绩登记表下表所示。 其中: 学号是长度为 12 的数字字符组成;姓名最大长度 10 个字 符;性别最多允许 4 个字符;年龄为整数;成绩包括三项 (C 语言、英语、数学),均为整数,总成绩允许有一位小 数。 要求: (1)学生人数未知,用户任意输入。 (2)“平均成绩”项应通过计算获得,不从键盘输入 学号 姓 名 性 别 年 龄 成绩 平均 C 语 成绩 言 英语 高 数 20121 04096 01 刘 子 栋 男 19 92 85 86 87.7 20121 04096 02 童 雨 嘉 女 19 88 66 82 78.7 20121 04096 03 杨 欣 悦 女 18 78 93 68 79.7 20121 04096 04 王 子 濠 男 19 67 77 75 73 …… … … … … … … …… …… … … …… 课外作业: 1. 完成本章小结 1. 完成拓展项目的设计 和实现
(3)输入完成后,给出操作菜单让用户选择操作,菜单项 如下: 请选择排序字段: (1)学号 (2)姓名(3)性别 (4)年龄 (5)C语言(6)英语 (7)高数(8)平均分 (0)退出程序 (4)当用户正确选择反序字段后,进一步请用户选择排序 方向,如下: 请选择排序方向: (1)升序 (2)降序 (0)退出程序 (6)此操作可以反复进行,直到用户选择“退出程序”。 63项目3:贪吃蛇游戏要求:在一个密闭的围墙空间内有一条 蛇,和随机出现的一个食物,通过按WSAD键控制蛇向上 下左右四个方向移动。如果蛇头碰到食物,表示蛇吃掉食 物,蛇的身体会增长一节;接着又出现新的食物,等待被 蛇吃掉。游戏进行的过程中,蛇身会变的越来越长。如果 蛇在移动过程中,蛇头碰到自己的身体咬到自己,则游戏 结束。 要求: (1)实现蛇的表示:用矩形块表示蛇的一节身体。游戏初 始,蛇只有蛇头,用白色矩形块表示;当吃掉一个食物后, 蛇身增加一节,即增加一个黑色的矩形块。 (2)实现蛇的移动:必须沿蛇头方向在密闭围墙内上下左 右移动;如果游戏者无按键动作,蛇自行沿当前方向前移; 当游戏者按了WSAD键后,需要重新确定蛇每节的位置, 然后移动。 (3)实现根据坐标绘制蛇、食物;食物要求在密闭围墙中 随机生成。 (4)处理上下左右的方向按键。 (5)实现双向链表表示,和单向链表的操作。 知识点: 1.进一步掌握结构体的声明和使用; 2.掌握指针的声明、初始化和赋值; 3.掌握指针与地址的关系: 4.掌握指针的运算; 5.指针的移动; 6.使用指针和结构体处理复杂的数据结构: 7.使用链表实现数据的动态存储; 8.链表的排序; 9.掌握双向链表。 17
17 (3)输入完成后,给出操作菜单让用户选择操作,菜单项 如下: 请选择排序字段: ------------------------------------------------- (1)学号 (2)姓名 (3)性别 (4)年龄 (5)C 语言 (6)英语 (7)高数 (8)平均分 (0)退出程序 ------------------------------------------------- (4)当用户正确选择反序字段后,进一步请用户选择排序 方向,如下: 请选择排序方向: ------------------------------------------------- (1)升序 (2)降序 (0)退出程序 ------------------------------------------------- (6)此操作可以反复进行,直到用户选择“退出程序”。 6.3 项目 3:贪吃蛇游戏要求:在一个密闭的围墙空间内有一条 蛇,和随机出现的一个食物,通过按 WSAD 键控制蛇向上 下左右四个方向移动。如果蛇头碰到食物,表示蛇吃掉食 物,蛇的身体会增长一节;接着又出现新的食物,等待被 蛇吃掉。游戏进行的过程中,蛇身会变的越来越长。如果 蛇在移动过程中,蛇头碰到自己的身体咬到自己,则游戏 结束。 要求: (1)实现蛇的表示:用矩形块表示蛇的一节身体。游戏初 始,蛇只有蛇头,用白色矩形块表示;当吃掉一个食物后, 蛇身增加一节,即增加一个黑色的矩形块。 (2)实现蛇的移动:必须沿蛇头方向在密闭围墙内上下左 右移动;如果游戏者无按键动作,蛇自行沿当前方向前移; 当游戏者按了 WSAD 键后,需要重新确定蛇每节的位置, 然后移动。 (3)实现根据坐标绘制蛇、食物;食物要求在密闭围墙中 随机生成。 (4)处理上下左右的方向按键。 (5)实现双向链表表示,和单向链表的操作。 知识点: 1. 进一步掌握结构体的声明和使用; 2. 掌握指针的声明、初始化和赋值; 3. 掌握指针与地址的关系; 4. 掌握指针的运算; 5. 指针的移动; 6. 使用指针和结构体处理复杂的数据结构; 7. 使用链表实现数据的动态存储; 8. 链表的排序; 9. 掌握双向链表