2.数据的修改、插入、删除3.数据查询4.数据排序5.字符数组与字符串6.二维数组的定义、初始化及使用【重点、难点】1.重点:一维数组中数据的计算、插入、删除、查找、排序:使用字符数组和用字符串处理函数对字符串进行处理。2.难点:字符串的处理。【教学方法】1.通过教学项目“工程师工资管理系统”引入数组的概念。2.以计算工程师工资的最大值、最小值、平均值等任务为出发点,引导学生如何使用一维数组处理数据。3.结合处理工程师的姓名,引导学生掌握使用字符数组处理字符串数据的方法。【学习要求】通过本章学习,学生能够编写具有数据输入输出、工资计算与排序等初步功能的“工程师工资管理系统”。【复习与思考】1.分析冒泡排序与选择排序两种算法的不同。2.分析从数组中找最大值、最小值的方法有哪些。【学习资源】1.学习通自建在线课程《高级语言程序设计II》。2.使用在线EduCoder实训平台的实训案例。3.中国MOOC平台浙江大学《C语言程序设计》课程。【思政案例】案例名称:计算并输出中国历年的GDP增长率。GDP增长率是衡量一个国家或地区经济发展状况的重要指标。通过计算GDP增长率,使学生可以了解中国经济的发展趋势和速度,从而加深对国家经济发展战略的理解,培养学生的爱国情怀和对国家发展战略的关注。第二章函数【学习目标】1.理解模块化程序设计思想:掌握模块化程序设计基本方法。2.掌握使用函数实现程序的模块化设计;学会使用函数优化程序结构。18
18 2.数据的修改、插入、删除 3.数据查询 4.数据排序 5.字符数组与字符串 6.二维数组的定义、初始化及使用 【重点、难点】 1.重点:一维数组中数据的计算、插入、删除、查找、排序;使用字符数组和用 字符串处理函数对字符串进行处理。 2.难点:字符串的处理。 【教学方法】 1.通过教学项目“工程师工资管理系统”引入数组的概念。 2.以计算工程师工资的最大值、最小值、平均值等任务为出发点,引导学生如何 使用一维数组处理数据。 3.结合处理工程师的姓名,引导学生掌握使用字符数组处理字符串数据的方法。 【学习要求】 通过本章学习,学生能够编写具有数据输入输出、工资计算与排序等初步功能的 “工程师工资管理系统”。 【复习与思考】 1.分析冒泡排序与选择排序两种算法的不同。 2.分析从数组中找最大值、最小值的方法有哪些。 【学习资源】 1.学习通自建在线课程《高级语言程序设计Ⅱ》。 2.使用在线 EduCoder 实训平台的实训案例。 3.中国 MOOC 平台浙江大学《C 语言程序设计》课程。 【思政案例】 案例名称:计算并输出中国历年的 GDP 增长率。 GDP 增长率是衡量一个国家或地区经济发展状况的重要指标。通过计算 GDP 增 长率,使学生可以了解中国经济的发展趋势和速度,从而加深对国家经济发展战略的 理解,培养学生的爱国情怀和对国家发展战略的关注。 第二章 函数 【学习目标】 1.理解模块化程序设计思想;掌握模块化程序设计基本方法。 2.掌握使用函数实现程序的模块化设计;学会使用函数优化程序结构
【课程内容】1.函数的概念及定义2.函数的调用和返回值3.函数声明4.递归函数【重点、难点】1.重点:函数定义、调用和声明;自顶向下、逐步分解的程序设计方法。2.难点:数组名作函数参数。【教学方法】1.通过案例讲解函数的作用:代码复用、模块化。2.通过教学项目“工程师工资管理系统”讲解对系统进行模块化的方法。3.以工程师工资的输入、计算、排序、输出等任务为出发点,引导学生使用函数实现各个功能模块,并对比使用函数和不使用函数对程序质量的影响。【学习要求】通过本章学习,学生能够编写函数实现“工程师工资管理系统”的菜单、数据输入、工资计算、排序、数据输出等功能【复习与思考】1.理解函数的作用。2.分析函数调用的参数传递方法。【学习资源】1.学习通自建在线课程《高级语言程序设计Ⅱ》。2.使用在线EduCoder实训平台的实训案例。3.中国MOOC平台浙江大学《C语言程序设计》课程。第三章指针【学习目标】1.掌握通过指针访问变量、数组、字符串的方法。2.掌握通过指针实现地址传递的方法。【课程内容】1.指针的概念及定义2.地址传递3.指针与数组4.指针与字符串5.指针与函数19
19 【课程内容】 1.函数的概念及定义 2.函数的调用和返回值 3.函数声明 4.递归函数 【重点、难点】 1.重点:函数定义、调用和声明;自顶向下、逐步分解的程序设计方法。 2.难点:数组名作函数参数。 【教学方法】 1.通过案例讲解函数的作用:代码复用、模块化。 2.通过教学项目“工程师工资管理系统”讲解对系统进行模块化的方法。 3.以工程师工资的输入、计算、排序、输出等任务为出发点,引导学生使用函数 实现各个功能模块,并对比使用函数和不使用函数对程序质量的影响。 【学习要求】 通过本章学习,学生能够编写函数实现“工程师工资管理系统”的菜单、数据输 入、工资计算、排序、数据输出等功能。 【复习与思考】 1.理解函数的作用。 2.分析函数调用的参数传递方法。 【学习资源】 1.学习通自建在线课程《高级语言程序设计Ⅱ》。 2.使用在线 EduCoder 实训平台的实训案例。 3.中国 MOOC 平台浙江大学《C 语言程序设计》课程。 第三章 指针 【学习目标】 1.掌握通过指针访问变量、数组、字符串的方法。 2.掌握通过指针实现地址传递的方法。 【课程内容】 1.指针的概念及定义 2.地址传递 3.指针与数组 4.指针与字符串 5.指针与函数
【重点、难点】1.重点:指针作为函数参数的使用:指针与一维数组。2.难点:指针作为函数参数的使用;指针与一维数组。【教学方法】1.课堂讲解指针的概念、指针与数组、指针与字符串。2.通过教学项目“工程师工资管理系统”讲解使用指针在函数之间传递数据,并通过指针访问主函数中定义的数组。【学习要求】通过本章学习,学生能够编程实现“工程师工资管理系统”的各个函数之间的数据交换。【复习与思考】1.理解指针的作用。2.分析函数调用时地址参数的传递。【学习资源】1.学习通自建在线课程《高级语言程序设计I》。2.使用在线EduCoder实训平台的实训案例。3.中国MOOC平台浙江大学《C语言程序设计》课程。【思政案例】案例名称:绿色出行计算器。为了倡导绿色出行,减少碳排放,设计一个绿色出行计算器,帮助用户计算不同出行方式的碳排放量,从而引导学生选择更环保的出行方式,思考绿色出行的社会意义和个人责任,培养他们的社会责任感和环保意识。第四章结构体【学习目标】1.掌握使用结构体处理表格的方法。2.掌握使用结构体存储、处理数据的基本方法。【课程内容】1.结构体的定义、结构体变量2.结构体数组3.结构体指针4.内存管理5.共用体、typedef【重点、难点】20
20 【重点、难点】 1.重点:指针作为函数参数的使用;指针与一维数组。 2.难点:指针作为函数参数的使用;指针与一维数组。 【教学方法】 1.课堂讲解指针的概念、指针与数组、指针与字符串。 2.通过教学项目“工程师工资管理系统”讲解使用指针在函数之间传递数据,并 通过指针访问主函数中定义的数组。 【学习要求】 通过本章学习,学生能够编程实现“工程师工资管理系统”的各个函数之间的数 据交换。 【复习与思考】 1.理解指针的作用。 2.分析函数调用时地址参数的传递。 【学习资源】 1.学习通自建在线课程《高级语言程序设计Ⅱ》。 2.使用在线 EduCoder 实训平台的实训案例。 3.中国 MOOC 平台浙江大学《C 语言程序设计》课程。 【思政案例】 案例名称:绿色出行计算器。 为了倡导绿色出行,减少碳排放,设计一个绿色出行计算器,帮助用户计算不同 出行方式的碳排放量,从而引导学生选择更环保的出行方式,思考绿色出行的社会意 义和个人责任,培养他们的社会责任感和环保意识。 第四章 结构体 【学习目标】 1.掌握使用结构体处理表格的方法。 2.掌握使用结构体存储、处理数据的基本方法。 【课程内容】 1.结构体的定义、结构体变量 2.结构体数组 3.结构体指针 4.内存管理 5.共用体、typedef 【重点、难点】
1.重点:结构体成员的引用方式:结构体数组。2.难点:结构体数组的使用。【教学方法】1.课堂讲解结构体概念、结构体变量、结构体数组、结构体指针等。2.通过教学项目“工程师工资管理系统”讲解使用结构体描述工程师信息,处理工程师信息的方法。【学习要求】通过本章学习,学生能够使用结构体实现“工程师工资管理系统”的各个功能模块。【复习与思考】1.理解结构体与表格的对应关系。2.理解结构体成员访问方法。【学习资源】1.学习通自建在线课程《高级语言程序设计I》。2.使用在线EduCoder实训平台的实训案例。3.中国MOOC平台浙江大学《C语言程序设计》课程。【思政案例】案例名称:诚信考试系统。在学校的日常管理中,考试是检验学生学习成果的重要手段。然而,近年来考试中学生作弊现象屡禁不止,不仅严重影响了学校的学风和考风,而且损害了学生的个人信誉。为了倡导诚信考试,设计了一个简单的诚信考试系统,用于记录学生的考试信息和诚信状态。通过设置思政讨论问题,以讨论的形式使学生能够在实践中思考技术与社会、道德的关系,增强他们的社会责任感和道德意识。第五章文件【学习目标】1.掌握文件的建立、打开、访问的基本方法。2.掌握使用文件与结构体数组数据交换的基本方法。【课程内容】1.文件的概念及类型2.文本文件的定义、打开、读写、关闭3.二进制文件的定义、打开、读写、关闭【重点、难点】1.重点:文件的打开:文件的读写。21
21 1.重点:结构体成员的引用方式;结构体数组。 2.难点:结构体数组的使用。 【教学方法】 1.课堂讲解结构体概念、结构体变量、结构体数组、结构体指针等。 2.通过教学项目“工程师工资管理系统”讲解使用结构体描述工程师信息,处理 工程师信息的方法。 【学习要求】 通过本章学习,学生能够使用结构体实现“工程师工资管理系统”的各个功能模 块。 【复习与思考】 1.理解结构体与表格的对应关系。 2.理解结构体成员访问方法。 【学习资源】 1.学习通自建在线课程《高级语言程序设计Ⅱ》。 2.使用在线 EduCoder 实训平台的实训案例。 3.中国 MOOC 平台浙江大学《C 语言程序设计》课程。 【思政案例】 案例名称:诚信考试系统。 在学校的日常管理中,考试是检验学生学习成果的重要手段。然而,近年来考试 中学生作弊现象屡禁不止,不仅严重影响了学校的学风和考风,而且损害了学生的个 人信誉。为了倡导诚信考试,设计了一个简单的诚信考试系统,用于记录学生的考试 信息和诚信状态。通过设置思政讨论问题,以讨论的形式使学生能够在实践中思考技 术与社会、道德的关系,增强他们的社会责任感和道德意识。 第五章 文件 【学习目标】 1.掌握文件的建立、打开、访问的基本方法。 2.掌握使用文件与结构体数组数据交换的基本方法。 【课程内容】 1.文件的概念及类型 2.文本文件的定义、打开、读写、关闭 3.二进制文件的定义、打开、读写、关闭 【重点、难点】 1.重点:文件的打开;文件的读写
2.难点:文件的读写。【教学方法】1.课堂讲解文件的概念及读写函数。2.通过教学项目“工程师工资管理系统”讲解使用文件存储工程师信息的方法。【学习要求】通过本章学习,学生能够使用文件读写“工程师工资管理系统”的数据。【复习与思考】1.文本文件与二进制文件的使用场合。2.不同文件读写函数的性能与特性。3.不同文件打开方式的区别。【学习资源】1.学习通自建在线课程《高级语言程序设计II》。2.使用在线EduCoder实训平台的实训案例。3.中国MOOC平台浙江大学《C语言程序设计》课程。五、实践教学安排本课程实践学时为16学时,主要用于项目实践。项目《工程师工资管理系统》覆盖教学内容的所有知识点,提供工资信息录入、工资统计分析、工资查询、工资修改、工资排序、将工资保存到文件等功能,并随着教学过程的进行逐步实现该项目的各个功能。序号学时实践项目名称主要实践内容用一维数组实现,并用循环语句完成对工资1工程师工资管理系统vl4的输入、计算、排序和输出等功能。根据工程师工资进行排序用函数实现项目的各个功能,并用指针实现24工程师工资管理系统v2函数间数据的传递。定义结构体存储工程师的姓名、年龄、工资等数据,并定义结构体数组存放所有工程师3工程师工资管理系统v34的数据。按照结构体的用法重写各个函数的代码。将工程师数据存储于二进制文件中,运行程4工程师工资管理系统v4序时将数据从文件读入结构体数组,退出程序时再将结构体数组中数据保存到文件中。22
22 2.难点:文件的读写。 【教学方法】 1.课堂讲解文件的概念及读写函数。 2.通过教学项目“工程师工资管理系统”讲解使用文件存储工程师信息的方法。 【学习要求】 通过本章学习,学生能够使用文件读写“工程师工资管理系统”的数据。 【复习与思考】 1.文本文件与二进制文件的使用场合。 2.不同文件读写函数的性能与特性。 3.不同文件打开方式的区别。 【学习资源】 1.学习通自建在线课程《高级语言程序设计Ⅱ》。 2.使用在线 EduCoder 实训平台的实训案例。 3.中国 MOOC 平台浙江大学《C 语言程序设计》课程。 五、实践教学安排 本课程实践学时为 16 学时,主要用于项目实践。项目《工程师工资管理系统》 覆盖教学内容的所有知识点,提供工资信息录入、工资统计分析、工资查询、工资修 改、工资排序、将工资保存到文件等功能,并随着教学过程的进行逐步实现该项目的 各个功能。 序号 实践项目名称 学时 主要实践内容 1 工程师工资管理系统 v1 4 用一维数组实现,并用循环语句完成对工资 的输入、计算、排序和输出等功能。根据工 程师工资进行排序 2 工程师工资管理系统 v2 4 用函数实现项目的各个功能,并用指针实现 函数间数据的传递。 3 工程师工资管理系统 v3 4 定义结构体存储工程师的姓名、年龄、工资 等数据,并定义结构体数组存放所有工程师 的数据。按照结构体的用法重写各个函数的 代码。 4 工程师工资管理系统 v4 4 将工程师数据存储于二进制文件中,运行程 序时将数据从文件读入结构体数组,退出程 序时再将结构体数组中数据保存到文件中