《C语言课程设计》课程教学大纲 一、课程概况 课程代码:04420770 课程名称:C语言课程设计 课程学分:2 课程学时:32(理论学时:0;实验(实践)学时:32) 课程性质:必修(课程性质以2018版人才培养方案的要求为准) 开课部门:信息科学与工程学院 建议修读学期:2 建议先修课程:C语言程序设计 适用专业(方向):软件工程 二、课程地位、作用与任务 本课程是《C语言程序设计》基础部分的后续课程,属项目实训类。课程本着传授知识、 培养能力、提高素质的教学理念,采用项目导向、案例驱动的思想来组织。通过项目案例学 习和实践,综合复习C语言编程的基础知识和基本操作,帮助学生掌握利用C语言进行结 构化程序设计的技术和方法,培养学生利用计算机处理问题的思维方式和程序设计的基本方 法,启发学生主动将计算机引入到其它基础课和专业课。 三、课程目标 (一)教学目标 《C语言课程设计》课程具体要求达到的特定教学目标包括: 1教学目标1.培养学生项目需求分析的能力,能够提出解决方案,并使用所学的技术实现。 (指标点2.2、5.1) 2.教学目标2.培养学生团队协作能力,提高学生团队合作的意识。(指标点9.1、9.2) 3.教学目标3.培养学生自主学习和终身学习的意识。(指标点12.1、122) (二)本课程支撑的毕业要求 1.本课程支撑的毕业要求:2、5、9、12。(毕业要求见2018版人才培养方案) 2.本课程支撑的指标点: (1)指标点22:能够应用基本原理,识别和表达复杂工程问题。 (2)指标点5.1:能够针对复杂问题,选择与使用恰当的技术、资源、现代工程工具和信息 技术工具。 (3)指标点91:能够正确理解个人与团队的关系,理解团队合作的重要性,具备在多学科 背景下团队合作的意识和能力。 18
18 《C 语言课程设计》课程教学大纲 一、课程概况 课程代码:04420770 课程名称:C 语言课程设计 课程学分:2 课程学时:32(理论学时:0;实验(实践)学时:32) 课程性质:必修(课程性质以 2018 版人才培养方案的要求为准) 开课部门:信息科学与工程学院 建议修读学期:2 建议先修课程:C 语言程序设计 适用专业(方向):软件工程 二、课程地位、作用与任务 本课程是《C 语言程序设计》基础部分的后续课程,属项目实训类。课程本着传授知识、 培养能力、提高素质的教学理念,采用项目导向、案例驱动的思想来组织。通过项目案例学 习和实践,综合复习 C 语言编程的基础知识和基本操作,帮助学生掌握利用 C 语言进行结 构化程序设计的技术和方法,培养学生利用计算机处理问题的思维方式和程序设计的基本方 法,启发学生主动将计算机引入到其它基础课和专业课。 三、课程目标 (一)教学目标 《C 语言课程设计》课程具体要求达到的特定教学目标包括: 1.教学目标 1. 培养学生项目需求分析的能力,能够提出解决方案,并使用所学的技术实现。 (指标点 2.2、5.1) 2.教学目标 2. 培养学生团队协作能力,提高学生团队合作的意识。(指标点 9.1、9.2) 3.教学目标 3. 培养学生自主学习和终身学习的意识。(指标点 12.1、12.2) (二)本课程支撑的毕业要求 1. 本课程支撑的毕业要求: 2、5、9、12。(毕业要求见 2018 版人才培养方案) 2. 本课程支撑的指标点: (1)指标点 2.2:能够应用基本原理,识别和表达复杂工程问题。 (2)指标点 5.1:能够针对复杂问题,选择与使用恰当的技术、资源、现代工程工具和信息 技术工具。 (3)指标点 9.1:能够正确理解个人与团队的关系,理解团队合作的重要性,具备在多学科 背景下团队合作的意识和能力
(4)指标点9.2:能够在多学科背景的团队中,与团队成员共同协作,完成所承担的工作。 (5)指标点12.1:能够认识不断探索和学习的必要性和重要性,具有自主学习和终身学习 的意识。 (6)指标点12.2:具备终身学习的知识基础,掌握自主学习的方法,能够通过学习不断提 高、适应信息技术的发展。 通识必修课程教学大纲,此部分内容填写课程教学中如何通过知识单元或若干个知识点的 传授过程来达到何种素质的培养和何种能力的训练说明: 1.独立获取知识的能力一通过C语言课程设计的学习,掌握T新技术的学习方法,特别 是通过网络学习,不断地扩展知识面,增强独立思考和自主学习能力。 2.团队协作能力一—通过小项目的合作开发,激发学生正确理解个人与团队的关系,理解 团队合作的重要性,与团队成员共同协作,完成所承担的工作。 3,分析问题和解决问题的能力一通过对项目的需求分析、设计和实现,提升学生分析问题 和解决问题的能力。 (三)课程教学目标与半业要求对应表 《C语言课程设计》课程教学目标与半业要求的对应表 课程名称:C语言课程设计 任课教师:刘永红、鄢涛 课程性质:专业必修 课程学分:2 课程支撑的半业要求 课程目标、达成途径、评价依据 毕业要求2: 教学目标:培养学生项目需求分析的能力,能够提出解 22能够应用基本原理,识别和 决方案,并使用所学的技术实现。 表达复杂工程问题。 达成途径:通过综合实验项目,训练学生对项目需求分 析的能力,并能够提出有效的解决方案。 评价依据:实验交流、项目设计文档、考试。 半业要求5: 教学目标:培养学生项目需求分析的能力,能够提出解 5.1能够针对复杂问题,选择与 决方案,并使用所学的技术实现。 使用恰当的技术、资源、现代工 达成途径:通过综合实验项目,训练学生使用所学知识 程工具和信息技术工具 和技术,对项目提出的解决方案进行实现。 评价依据:项目实现、项目演示、项目答辩。 毕业要求9: 教学目标:培养学生团队协作能力,提高学生团队合作 91能够正确理解个人与团队的 的意识。 关系,理解团队合作的重要性, 达成途径:所有的实验项目,都以小组协作完成,训练 具备在多学科背景下团队合作的 学生的团队协作能力和合作意识。 意识和能力 评价依据:项目汇报、项目答辩。 毕业要求9: 教学目标:培养学生团队协作能力,提高学生团队合作 92能够在多学科背景的团队 的意识。 中,与团队成员共同协作,完成 达成途径:所有的实验项目,都以小组协作完成,训练 所承担的工作。 学生的团队协作能力和合作意识。 评价依据:项目汇报、项目答辩。 半业要求12: 教学目标:培养学生自主学习和终身学习的意识。 12.1能够认识不断探索和学习 达成途径:通过对实验项目的设计和实现,特别是通过 19
19 (4)指标点 9.2:能够在多学科背景的团队中,与团队成员共同协作,完成所承担的工作。 (5)指标点 12.1:能够认识不断探索和学习的必要性和重要性,具有自主学习和终身学习 的意识。 (6)指标点 12.2:具备终身学习的知识基础,掌握自主学习的方法,能够通过学习不断提 高、适应信息技术的发展。 通识必修课程教学大纲,此部分内容填写课程教学中如何通过知识单元或若干个知识点的 传授过程来达到何种素质的培养和何种能力的训练说明: 1. 独立获取知识的能力——通过 C 语言课程设计的学习,掌握 IT 新技术的学习方法,特别 是通过网络学习,不断地扩展知识面,增强独立思考和自主学习能力。 2. 团队协作能力——通过小项目的合作开发,激发学生正确理解个人与团队的关系,理解 团队合作的重要性,与团队成员共同协作,完成所承担的工作。 3.分析问题和解决问题的能力——通过对项目的需求分析、设计和实现,提升学生分析问题 和解决问题的能力。 (三)课程教学目标与毕业要求对应表 《C 语言课程设计》课程教学目标与毕业要求的对应表 课程名称:C 语言课程设计 任课教师:刘永红、鄢涛 课程性质:专业必修 课程学分:2 课程支撑的毕业要求 课程目标、达成途径、评价依据 毕业要求 2: 2.2 能够应用基本原理,识别和 表达复杂工程问题。 教学目标:培养学生项目需求分析的能力,能够提出解 决方案,并使用所学的技术实现。 达成途径:通过综合实验项目,训练学生对项目需求分 析的能力,并能够提出有效的解决方案。 评价依据:实验交流、项目设计文档、考试。 毕业要求 5: 5.1 能够针对复杂问题,选择与 使用恰当的技术、资源、现代工 程工具和信息技术工具 教学目标:培养学生项目需求分析的能力,能够提出解 决方案,并使用所学的技术实现。 达成途径:通过综合实验项目,训练学生使用所学知识 和技术,对项目提出的解决方案进行实现。 评价依据:项目实现、项目演示、项目答辩。 毕业要求 9: 9.1 能够正确理解个人与团队的 关系,理解团队合作的重要性, 具备在多学科背景下团队合作的 意识和能力 教学目标:培养学生团队协作能力,提高学生团队合作 的意识。 达成途径:所有的实验项目,都以小组协作完成,训练 学生的团队协作能力和合作意识。 评价依据: 项目汇报、项目答辩。 毕业要求 9: 9.2 能够在多学科背景的团队 中,与团队成员共同协作,完成 所承担的工作。 教学目标:培养学生团队协作能力,提高学生团队合作 的意识。 达成途径:所有的实验项目,都以小组协作完成,训练 学生的团队协作能力和合作意识。 评价依据:项目汇报、项目答辩。 毕业要求 12: 12.1 能够认识不断探索和学习 教学目标:培养学生自主学习和终身学习的意识。 达成途径:通过对实验项目的设计和实现,特别是通过
的必要性和重要性,具有自主学 网络课程的学习,训练学生独立获取知识的能力,养成 习和终身学习的意识。 自主学习和终身学习的意识。 评价依据:网上在线学习、课堂交流、项目答辩。 毕业要求12: 教学目标:培养学生自主学习和终身学习的意识。 12.2具备终身学习的知识基础, 达成途径:通过对实验项目的设计和实现,特别是通过 掌握自主学习的方法,能够通过 网络课程的学习,训练学生独立获取知识的能力,养成 学习不断提高、适应信息技术的 自主学习和终身学习的意识。 发展。 评价依据:网上在线学习、课堂交流、项目答辩。 四、课程内容 教学内容 作业要求 第一章实战1:语法及条件结构应用 自学内容:拓展项目(见 1.1项目1:任意输入a,b,c三个实数,判断该三个数能否构成 教材) 三角形。 课堂作业: 1.2项目2:实现一个简单的四则运算的功能,要求输入类似+b 然后回车输出a+b=c的形式,a,b,c都是整数。 1. 汇报网上在线学习情 13项目3:有一只猴子第一天摘下了若干个桃子,当即吃掉了 况。 一半,觉得不过瘾又多吃了一个;第二天又将剩下的桃子 2.完成基本项目实现。 吃掉一半,还不过瘾又多吃了一个;按照这个吃法,每天 3.实验交流。 都吃掉前一天剩下的一半又多一个。到了第10天,就剩下 一个桃子。问:这只猴子第一天摘下了多少个桃子? 课外作业: 知识点: 1.完成本章小结 1.变量的声明和使用; 2.完成拓展项目的设计 2.掌握函数定义、函数调用、函数声明等基本概念; 和实现。 3.掌握双分支选择结构的使用; 4.掌握多分枝选择结构的使用; 5.掌握循环结构的使用。 第二章实战2:递归 自学内容:拓展项目(见 2.1项目1:有一只猴子第一天摘下了若干个桃子,当即吃掉了 教材) 一半,觉得不过瘾又多吃了一个;第二天又将剩下的桃子 课堂作业: 吃掉一半,还不过瘾又多吃了一个;按照这个吃法,每天 都吃掉前一天剩下的一半又多一个。到了第10天,就剩下 1. 汇报网上在线学习情 一个桃子。问:这只猴子第一天摘下了多少个桃子? 况。 2.2项目2:开发环境搭建与介绍古代有一个梵塔,塔内有A, 2.完成基本项目实现。 B,C共3个座,座A上有64个大小不等的盘子,大的在 3.实验交流。 下,小的在上(如下图)。有一个和尚想把这64个盘子从 座A全部移到座C,在移动过程中可以借用座A,座B或 课外作业: 座C,但每次只允许移动一个盘子,并且不允许大盘放在小 1. 完成本章小结 盘的上面。问:(1)每一步应该如何移动?(2)总共需 2.完成拓展项目的设计 要移动多少步? 和实现。 知识点: 1.循环结构的起始条件和结束; 20
20 的必要性和重要性,具有自主学 习和终身学习的意识。 网络课程的学习,训练学生独立获取知识的能力,养成 自主学习和终身学习的意识。 评价依据:网上在线学习、课堂交流、项目答辩。 毕业要求 12: 12.2 具备终身学习的知识基础, 掌握自主学习的方法,能够通过 学习不断提高、适应信息技术的 发展。 教学目标:培养学生自主学习和终身学习的意识。 达成途径:通过对实验项目的设计和实现,特别是通过 网络课程的学习,训练学生独立获取知识的能力,养成 自主学习和终身学习的意识。 评价依据:网上在线学习、课堂交流、项目答辩。 四、课程内容 教学内容 作业要求 第一章 实战 1:语法及条件结构应用 1.1 项目 1:任意输入 a,b,c 三个实数,判断该三个数能否构成 三角形。 1.2 项目 2:实现一个简单的四则运算的功能,要求输入类似 a+b 然后回车输出 a+b=c 的形式,a,b,c 都是整数。 1.3 项目 3:有一只猴子第一天摘下了若干个桃子,当即吃掉了 一半,觉得不过瘾又多吃了一个;第二天又将剩下的桃子 吃掉一半,还不过瘾又多吃了一个;按照这个吃法,每天 都吃掉前一天剩下的一半又多一个。到了第 10 天,就剩下 一个桃子。问:这只猴子第一天摘下了多少个桃子? 知识点: 1. 变量的声明和使用; 2. 掌握函数定义、函数调用、函数声明等基本概念; 3. 掌握双分支选择结构的使用; 4. 掌握多分枝选择结构的使用; 5. 掌握循环结构的使用。 自学内容:拓展项目(见 教材) 课堂作业: 1. 汇报网上在线学习情 况。 2. 完成基本项目实现。 3. 实验交流。 课外作业: 1. 完成本章小结 2. 完成拓展项目的设计 和实现。 第二章 实战 2:递归 2.1 项目 1:有一只猴子第一天摘下了若干个桃子,当即吃掉了 一半,觉得不过瘾又多吃了一个;第二天又将剩下的桃子 吃掉一半,还不过瘾又多吃了一个;按照这个吃法,每天 都吃掉前一天剩下的一半又多一个。到了第 10 天,就剩下 一个桃子。问:这只猴子第一天摘下了多少个桃子? 2.2 项目 2:开发环境搭建与介绍古代有一个梵塔,塔内有 A, B,C 共 3 个座,座 A 上有 64 个大小不等的盘子,大的在 下,小的在上(如下图)。有一个和尚想把这 64 个盘子从 座 A 全部移到座 C,在移动过程中可以借用座 A,座 B 或 座 C,但每次只允许移动一个盘子,并且不允许大盘放在小 盘的上面。问: (1)每一步应该如何移动?(2)总共需 要移动多少步? 知识点: 1. 循环结构的起始条件和结束; 自学内容:拓展项目(见 教材) 课堂作业: 1. 汇报网上在线学习情 况。 2. 完成基本项目实现。 3. 实验交流。 课外作业: 1. 完成本章小结 2. 完成拓展项目的设计 和实现
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. 完成本章小结 3.3项目3:本《项目实战案例》教程提供了八个实战项目。每 2.完成拓展项目的设计 个实战项目又包含有数个基本子项目和扩展项目。如何将 和实现。 这八个实战项目有机整合成一个综合项目?该综合实战项 目框架如何搭建?各个实战项目源代码文件如何组织?如 何设置头文件?各个模块如何有效组织,如何公布接口, 如何调用等等。 知识点: 1.多分支结构,循环结构 2.函数的定义、声明和调用 3.文件包含宏命令,头文件 4.Visual C+或Visual Studio.NET2013集成开发平台项目 组织与管理 5.C语言代码组织策略、源代码文件及头文件组织策略等 第四章实战4:数组 自学内容:拓展项目(见 4.1项目1:题目描述:N个人围成一圈,从第一个开始报数, 教材) 数到第k时那人出队;下一个人再从1开始报数,依次循 课堂作业: 环,直到最后一个人。要求:(1)用数组存放N个人(N 可设定为某一确定值)(2)用户分别依次输入N个人名(3) 1.汇报网上在线学习情 k由用户输入(4)依次输出退出人的顺序(5)将数组以参 况。 数形式传递给单独的函数进行处理。 2.完成基本项目实现。 4.2项目2:题目描述:输入一个字符串,统计其中大写字母、 3.实验交流。 小写字母、数字、空格和其他字符各多少个。要求:(1) 输入任意一个字符串(长度不超出100个字符)(2)用数 课外作业: 21
21 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) 输入任意一个字符串(长度不超出 100 个字符)(2)用数 自学内容:拓展项目(见 教材) 课堂作业: 1. 汇报网上在线学习情 况。 2. 完成基本项目实现。 3. 实验交流。 课外作业:
组进行处理(3)将数组以参数形式传递给单独的函数进行 1.完成本章小结 处理。(4)统计结果在main函数中输出。 2.完成拓展项目的设计 4.3项目3:任意输入N个单词,要求对这N个单词排序输出, 和实现。 每个单词的长度不超过某个固定值。 知识点: 1.数据类型、语句、数组、方法; 2.一维数组、二维数组的定义与引用: 3.字符数组及字符串处理函数的应用; 4.掌握几种简单的排序算法,如插入排序,选择排序,冒泡 排序,快速排序等及字符串处理函数的应用; 5.熟悉常用的字符串操作函数,strlen函数、strcmp函数和 strcpy函数等。 第五章实战5:结构体 自学内容:拓展项目(见 5.1项目1:有学生成绩登记表如下表所示: 教材) 平均 课堂作业: 季号 姓名 性别 C审 高数 成績 1.汇报网上在线学习情 201210409601 刘子 19 85 7.7 况。 201210409602 童雨嘉 19 66 787 2.完成基本项目实现。 201210409603 畅成悦 93 68 797 3.实验交流。 201210409604 王于泽 19 13 课外作业: 1.完成本章小结 2.完成拓展项目的设计 和实现。 其中: 学号是长度为12的数字字符组成;姓名最大长度10个字 符;性别最多允许4个字符;年龄为整数;成绩包括三项(C 语言、英语、数学),均为整数,总成绩允许有一位小数。 要求: (1)现某班有N名学生(程序运行时,N设定为某一确 定值,并显示在屏幕上以提示操作者)。 (2)用户分别依次输入N个学生的信息。 (3)“平均成绩”项应通过计算获得,不从键盘输入。 (4)输入完成后,给出操作菜单让用户选择操作,菜单项 如下: 请选择排序字段: (1)学号 (2)姓名 (3)性别 (4)年龄 (5)C语言(6)英语 (7)高数 (8)平均分 (9)显示全部原始信息 (0)退出程序 (5)当用户正确选择反序字段后,进一步请用户选择排序 22
22 组进行处理(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 设定为某一确 定值,并显示在屏幕上以提示操作者)。 (2)用户分别依次输入 N 个学生的信息。 (3)“平均成绩”项应通过计算获得,不从键盘输入。 (4)输入完成后,给出操作菜单让用户选择操作,菜单项 如下: 请选择排序字段: -------------------------------------------------- (1)学号 (2)姓名 (3)性别 (4)年龄 (5)C 语言 (6)英语 (7)高数 (8)平均分 (9)显示全部原始信息 (0)退出程序 -------------------------------------------------- (5)当用户正确选择反序字段后,进一步请用户选择排序 学号 姓名 性别 年龄 成绩 平均 C 语言 英语 高数 成绩 201210409601 刘子栋 男 19 92 85 86 87.7 201210409602 童雨嘉 女 19 88 66 82 78.7 201210409603 杨欣悦 女 18 78 93 68 79.7 201210409604 王子濠 男 19 67 77 75 73 …… …… …… …… …… …… …… …… 自学内容:拓展项目(见 教材) 课堂作业: 1. 汇报网上在线学习情 况。 2. 完成基本项目实现。 3. 实验交流。 课外作业: 1. 完成本章小结 2. 完成拓展项目的设计 和实现