“℃语言程序设计“课程教学大纲 课程英文名称:C Language Programming 课程类 总学时: 48+32 学 分:4 适用对象:软件工程专业本科生 先修课程: 无 使用教材及参考书 教 材: 《C程序设计》,谭浩强编,清华大学出版社,2010年,第四版 参考书:《C程序设计题解与上机指导》,谭浩强编,清华大学出版社,2005年 《数据结构(C语言版)》,严蔚敏等编,清华大学出版社,2014年 《C Primer Plus中文版》,Stephen Prata编,人民邮电出版社,2005年,第 五版 一、课程性质、目的和任务 《C语言程序设计》是大 一新生的第一门高级语言程序设计课,属于计算机专业本科基础教学中 门必修的专业基础课程。通过该课程 利用计算机处理问题 二、教学基本要求 多媒体实验室 三、教学纳容及要求 第一章 程序设计和C语言 1.1什么是计算机程序 1.2什么是计算机语言 1.3C语言的发展及其特点 1.4最简单的C语言程序 1.4.1最简单的C语言程序举例 1.4.2C语言程序的结构 1.5运行C程序的步骤与方法 1.6程序设计的任务 基本要求: 1、了解计算机程序和计算机语言。 2、知道C语言的发展历史及特点 3、堂握简单的C程序。 4、熟练掌握C程序运行环境及上机步骤 第二章 算法 程序的灵魂 2.1什么是算法 2.2简单的算法举例 2.3算法的特性 2.4怎样表示一个算法 2.4.1用自然语言表示算法 2.4.2用流程图表示算法 2.4.3 三种基本结构和改进的流程图 2.4.4 用N-S流程图表示算法 2.4.5用伪代码表示算法 2.4.6用计算机语言表示算法
"C语言程序设计"课程教学大纲 课程英文名称:C Language Programming 课程编号:260204 课程类 型:专业核心课 总 学 时: 48+32 学 分:4 适用对象:软件工程专业本科生 先修课程:无 使用教材及参考书 教 材:《C程序设计》,谭浩强编,清华大学出版社,2010年,第四版 参 考 书:《C程序设计题解与上机指导》,谭浩强编,清华大学出版社,2005年 《数据结构(C语言版)》,严蔚敏等编,清华大学出版社,2014年 《C Primer Plus 中文版》,Stephen Prata编,人民邮电出版社,2005年,第 五版 一、课程性质、目的和任务 《C语言程序设计》是大一新生的第一门高级语言程序设计课,属于计算机专业本科基础教学中 第一层次的课程,是一门必修的专业基础课程。通过该课程的学习,培养学生利用计算机处理问题 的思维方式和程序设计的基本方法,启发学生主动将计算机引入到其它基础课和专业课。 二、教学基本要求 多媒体实验室 三、教学内容及要求 第一章 程序设计和C语言 1.1 什么是计算机程序 1.2 什么是计算机语言 1.3 C语言的发展及其特点 1.4 最简单的C语言程序 1.4.1 最简单的C语言程序举例 1.4.2 C语言程序的结构 1.5 运行C程序的步骤与方法 1.6 程序设计的任务 基本要求: 1、了解计算机程序和计算机语言。 2、知道C语言的发展历史及特点。 3、掌握简单的C程序。 4、熟练掌握C程序运行环境及上机步骤。 第二章 算法——程序的灵魂 2.1 什么是算法 2.2 简单的算法举例 2.3 算法的特性 2.4 怎样表示一个算法 2.4.1 用自然语言表示算法 2.4.2 用流程图表示算法 2.4.3 三种基本结构和改进的流程图 2.4.4 用N-S流程图表示算法 2.4.5 用伪代码表示算法 2.4.6 用计算机语言表示算法
2.5结构化程序设计方法 基本要求: 1、了解算法的含义及特性。 2、掌握算法的不同种表示方法:自然语言、流程图、N-S图、计算机语言 3、理解结构化程序设计方法 第三章 最简单的C程序设计 顺序程序设计 3.1顺序程序设计举例 3.2数据的表现形式及其运算 3.2.1常量和变量 3.2.2 数据类型 3.2.3整型数据 3.2.4 字符型数 3.2.5浮点型数据 3.2.6 怎样确定常量的类型 3.2.7 运算符和表达式 3.3C语句 3.3.1C语句的作用和分类 3.3.2最基本的语句 赋值语句 3.4数据的输入输出 3.4.1 输入输出举例 3.4.2有关数据输入输出的概念 3.4.3用printf函数输出数据 3.4.4用scanf函数命入数据 3.4.5 字符数据的输入输出 基本要求: 1、掌握C的几种基本数据类型 2、掌握标识符的概念,熟悉变量和常量先定义后使用的特点。 3、熟练堂握(长)整型、短整型、无符号整型数据的定义与存储特点 4、熟练掌握单精度、双精度浮点数的定义与存储特点 5、熟练掌握字符型数据的定义与存储特点,并熟悉整型数据与字符型数据间的关系。 6、掌握定义变量的同时,赋初值的方法 7、掌握各种运算符和表达式的含义与使用要点。 8、掌握不同类型数据间的混合运算规则。 9、了解C语言程序特点:C程序由若干个源程序文件组成,体现函数核心思想。 10、C程序的三种基本结构:掌握顺序结构、选择结构、循环结构。 1山、掌握赋值语句构成与使用要点 12、熟练掌握格式输入/输出函数的使用方法 13、能编写简单的顺序结构程序。 第四章 选择结构程序设计 4.1选择结构和条件判断 4.2用if语句实现选择结构 4.2.1用if语句处理选择结构举例 4.2.2if语句的一般形式 4.3关系运算符和关系表达式 4.3.1关系运算符及其优先次序
2.5结构化程序设计方法 基本要求: 1、了解算法的含义及特性。 2、掌握算法的不同种表示方法:自然语言、流程图、N-S图、计算机语言。 3、理解结构化程序设计方法。 第三章 最简单的C程序设计——顺序程序设计 3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 3.2.1 常量和变量 3.2.2 数据类型 3.2.3 整型数据 3.2.4 字符型数据 3.2.5 浮点型数据 3.2.6 怎样确定常量的类型 3.2.7 运算符和表达式 3.3 C语句 3.3.1 C语句的作用和分类 3.3.2 最基本的语句——赋值语句 3.4 数据的输入输出 3.4.1 输入输出举例 3.4.2 有关数据输入输出的概念 3.4.3 用printf函数输出数据 3.4.4 用scanf函数输入数据 3.4.5 字符数据的输入输出 基本要求: 1、掌握C的几种基本数据类型。 2、掌握标识符的概念,熟悉变量和常量先定义后使用的特点。 3、熟练掌握(长)整型、短整型、无符号整型数据的定义与存储特点。 4、熟练掌握单精度、双精度浮点数的定义与存储特点。 5、熟练掌握字符型数据的定义与存储特点,并熟悉整型数据与字符型数据间的关系。 6、掌握定义变量的同时,赋初值的方法。 7、掌握各种运算符和表达式的含义与使用要点。 8、掌握不同类型数据间的混合运算规则。 9、了解C语言程序特点:C程序由若干个源程序文件组成,体现函数核心思想。 10、C程序的三种基本结构:掌握顺序结构、选择结构、循环结构。 11、掌握赋值语句构成与使用要点。 12、熟练掌握格式输入/输出函数的使用方法。 13、能编写简单的顺序结构程序。 第四章 选择结构程序设计 4.1 选择结构和条件判断 4.2 用if语句实现选择结构 4.2.1 用if语句处理选择结构举例 4.2.2 if语句的一般形式 4.3 关系运算符和关系表达式 4.3.1 关系运算符及其优先次序
4.3.2关系表达式 4.4逻辑运算符和逻辑表达式 4.4.1逻辑运算符及其优先次序 4.4.2逻辑表达式 4.4.3逻辑型变量 4.5条件运算符和条件表达式 4.6选择结构的嵌套 4.7用switch语句实现多分支选择结构 4.8选择结构程序综合举例 基本要求: 熟练掌握if选择语句的三种形式,掌握if语句的基本结构以及if选择语句的嵌套,并能 将条件运算符给出的语句转化成选择语句的形式。 ,逻辑、条件运算符)和不同表达式(关系、逻辑、条件表达 3、掌握switchi语句的一般形式,并能把复杂的分支选择性结构化成switchi语句来解决问 题。 、掌握选择结构的嵌套,总结常用的选择程序算法特点及设计方法,并能编写相应的选择 结构程序 第五章 循环结构程序设计 5.1 为什么需要循环控制 5.2用while语句实现循环 5.3用do.while语句实现循环 5.4用for语句实现循环 5.5循环的张套 5.6几种循环的比较 5.7改变循环执行的状态 5.7.1用breaki语句提前终止循环 5.7.2用continue语句提前结束本次循环 5.7.3 breaki语句和continue语句的区别 5.8循环程序举例 基本要求: 1、掌握whilei语句与do.whilei语句的结构与使用方法。 2、掌握for语句的结构,熟练学握其使用方法。 3、会使用常见的循环嵌套形式 4、能正确区分for句、do.while语句与while语句三者的不同。 5、学握breaki语句和continuef的应用及其区别 程序、选择结构、循环结构程序设计,分析总结常用的程序设计方法及算法特 第六章 利用数组处理批量数据 6.1怎样定义和引用一维数组 6.1,1怎样定义一维难数组 6.1.2怎样引用一维数组元素 6.1.3 一维数组的初始化 6.1.4一维数组程序举例 6.2怎样定义和引用二维数组 6.2.1怎样定义二维数组
4.3.2 关系表达式 4.4 逻辑运算符和逻辑表达式 4.4.1 逻辑运算符及其优先次序 4.4.2 逻辑表达式 4.4.3 逻辑型变量 4.5 条件运算符和条件表达式 4.6 选择结构的嵌套 4.7 用switch语句实现多分支选择结构 4.8 选择结构程序综合举例 基本要求: 1、熟练掌握if选择语句的三种形式,掌握if语句的基本结构以及if选择语句的嵌套,并能 将条件运算符给出的语句转化成if选择语句的形式。 2、掌握不同运算符(关系、逻辑、条件运算符)和不同表达式(关系、逻辑、条件表达 式)的使用特点、清楚每种运算符的优先级与结合性。 3、掌握switch语句的一般形式,并能把复杂的分支选择性结构化成switch语句来解决问 题。 4、掌握选择结构的嵌套,总结常用的选择程序算法特点及设计方法,并能编写相应的选择 结构程序。 第五章 循环结构程序设计 5.1 为什么需要循环控制 5.2 用while语句实现循环 5.3 用do.while语句实现循环 5.4 用for 语句实现循环 5.5 循环的嵌套 5.6 几种循环的比较 5.7 改变循环执行的状态 5.7.1 用break语句提前终止循环 5.7.2 用continue语句提前结束本次循环 5.7.3 break语句和continue语句的区别 5.8 循环程序举例 基本要求: 1、掌握while语句与do.while语句的结构与使用方法。 2、掌握for语句的结构,熟练掌握其使用方法。 3、会使用常见的循环嵌套形式。 4、能正确区分for句、do.while语句与while语句三者的不同。 5、掌握break语句和continue的应用及其区别。 6、整理顺序程序、选择结构、循环结构程序设计,分析总结常用的程序设计方法及算法特 点,并能编写相应的程序。 第六章 利用数组处理批量数据 6.1 怎样定义和引用一维数组 6.1.1 怎样定义一维数组 6.1.2 怎样引用一维数组元素 6.1.3 一维数组的初始化 6.1.4 一维数组程序举例 6.2 怎样定义和引用二维数组 6.2.1 怎样定义二维数组
6.2.2怎样引用二维数组的元素 6.2.3 二维数组的初始化 6.2.4 二维数组程序举例 6.3字符数组 6.3.1 怎样定义字符数组 6.3.2字符数组的初始化 6.3.3 怎样引用字符数组中的元素 6.3.4 字符串和字符串结束标志 6.3.5字符数组的输入给出 6.3.6使用字符串处理函数 6.3.7字符数组应用举例 基本要求: 1、掌握一维数组的定义,数组元素的引用方法。 2、掌握二维数组的定义,数组元素的引用,了解其实际意义 3、掌握字符数组与字符串的概念与定义方法,熟悉常用的字符串处理函数。 4、掌握应用数组进行应用程序设计的一般方法与典型算法。 第七章 用函数实现模块化程序设计 7.1为什么要用函数 7.2怎样定义函数 7.2.1为什么要定义函数 7.2.2定义函数的方法 7.3调用函数 7.3.1函数调用的形式 7.3.2 函数调用时的数据传递 7,3.3函数调用的讨过程 734 函数的返回值 7.4对被调用函数的声明和函数原 7,5函数的嵌套调用 7.6函数的递归调用 7.7数组作为函数参数 7.7.1 数组元素作函数实参 7.7.2 数组名作函数参数 7.7.3多维数组名作函数参数 7.8局部变量和全局变量 7.8.1局部变量 7.8.2全局变量 7.9变量的存储方式和生存期 7.9.1动态存储方式与静态存储方式 7.9.2局部变量的存储类别 7.9.3全局变量的存储类别 7.9.4存储类别小结 7.10关于变量的声明和定义 7.11内部函数和外部函数 7.11.1内部函数 7.11.2外部函数
6.2.2 怎样引用二维数组的元素 6.2.3 二维数组的初始化 6.2.4 二维数组程序举例 6.3 字符数组 6.3.1 怎样定义字符数组 6.3.2 字符数组的初始化 6.3.3 怎样引用字符数组中的元素 6.3.4 字符串和字符串结束标志 6.3.5 字符数组的输入输出 6.3.6 使用字符串处理函数 6.3.7 字符数组应用举例 基本要求: 1、掌握一维数组的定义,数组元素的引用方法。 2、掌握二维数组的定义,数组元素的引用,了解其实际意义。 3、掌握字符数组与字符串的概念与定义方法,熟悉常用的字符串处理函数。 4、掌握应用数组进行应用程序设计的一般方法与典型算法。 第七章 用函数实现模块化程序设计 7.1 为什么要用函数 7.2 怎样定义函数 7.2.1 为什么要定义函数 7.2.2 定义函数的方法 7.3 调用函数 7.3.1 函数调用的形式 7.3.2 函数调用时的数据传递 7.3.3 函数调用的过程 7.3.4 函数的返回值 7.4 对被调用函数的声明和函数原型 7.5 函数的嵌套调用 7.6 函数的递归调用 7.7 数组作为函数参数 7.7.1 数组元素作函数实参 7.7.2 数组名作函数参数 7.7.3 多维数组名作函数参数 7.8 局部变量和全局变量 7.8.1 局部变量 7.8.2 全局变量 7.9 变量的存储方式和生存期 7.9.1 动态存储方式与静态存储方式 7.9.2 局部变量的存储类别 7.9.3 全局变量的存储类别 7.9.4 存储类别小结 7.10 关于变量的声明和定义 7.11 内部函数和外部函数 7.11.1 内部函数 7.11.2 外部函数
基本要求: 1、理解函数的功能。 2、掌握函数定义的一般形式。 3、掌握函数形参与实参的对应关系、参数传递方法及函数返回值的概念。 4、掌握函数调用的几种形式 5、堂握函数嵌瓷调用的一般讨过程」 了解函数递归调用的几种形式 7、掌握数组名作为函数参数的一些特点。 8、堂握局部变量与全局变量的概念及它们的使用特点, 9、掌握动态存储变量与静态存储变量的含义,会正确识别和使用 10、了解内部函数与外部函数的含义。 第八章 善于利用指针 8.1指针是什么 8.2指针变量 8.2.1使用指针变量的例子 8.2.2怎样定义指针变量 8.2.3怎样引用指针变量 8.2.4指针恋量作为函数参都 8.3通讨指针引用数组 8.3.1数组元素的指针 8.3.2 在引用数组元素时指针的运算 8.3.3 通过指针引用数组元素 8.3.4 用数组名作函数参数 835 通过指针引用多维数组 8.4通过指针引用字符串 8.4.1字符串的引用方式 8.4.2 字符指针作函数参数 8.4.3使用字符指针变量和字符数组的比较 8.5指向函数的指针 8.5.1什么是函数指针引 85.2 用函数指针变量调用函数 8.5.3 怎样定义和使用指向函数的指针变量 8.5.4用指向函数的指针作函数参数 8.6返回指针值的函数 8.7指针数组和多重指针 8.7.1什么是指针数组 8.7.2 指向指针数据的指针 8.7.3指针数组作main函数的形参 8.8动态内存分配与指向它的指针变量 8.8.1什么是内存的动态分配 8.8.2怎样建立内存的动态分配 8.8.3void指针类型 8.9有关指针的小结 基本要求: 1、深刻理解并掌握指针的概念
基本要求: 1、理解函数的功能。 2、掌握函数定义的一般形式。 3、掌握函数形参与实参的对应关系、参数传递方法及函数返回值的概念。 4、掌握函数调用的几种形式。 5、掌握函数嵌套调用的一般过程。 6、了解函数递归调用的几种形式。 7、掌握数组名作为函数参数的一些特点。 8、掌握局部变量与全局变量的概念及它们的使用特点。 9、掌握动态存储变量与静态存储变量的含义,会正确识别和使用。 10、了解内部函数与外部函数的含义。 第八章 善于利用指针 8.1 指针是什么 8.2 指针变量 8.2.1 使用指针变量的例子 8.2.2 怎样定义指针变量 8.2.3 怎样引用指针变量 8.2.4 指针变量作为函数参数 8.3 通过指针引用数组 8.3.1 数组元素的指针 8.3.2 在引用数组元素时指针的运算 8.3.3 通过指针引用数组元素 8.3.4 用数组名作函数参数 8.3.5 通过指针引用多维数组 8.4 通过指针引用字符串 8.4.1 字符串的引用方式 8.4.2 字符指针作函数参数 8.4.3 使用字符指针变量和字符数组的比较 8.5 指向函数的指针 8.5.1 什么是函数指针 8.5.2 用函数指针变量调用函数 8.5.3 怎样定义和使用指向函数的指针变量 8.5.4 用指向函数的指针作函数参数 8.6 返回指针值的函数 8.7 指针数组和多重指针 8.7.1 什么是指针数组 8.7.2 指向指针数据的指针 8.7.3 指针数组作main函数的形参 8.8 动态内存分配与指向它的指针变量 8.8.1 什么是内存的动态分配 8.8.2 怎样建立内存的动态分配 8.8.3 void指针类型 8.9 有关指针的小结 基本要求: 1、深刻理解并掌握指针的概念
2、堂据指针变量的定义和应用,指针变量作为函数参数的用法。 3、掌握指向数组的指针与指向数组的指针变量的概念、定义和应用 4、掌握指向字符串的指针的定义和应用。 5、理解指向函数的指针的定义和用法。 6、了解返回指针值的函数的定义和应用,了解它与指向函数的指针变量的区别 了解指针数组的定义和应用,掌握指针的指针的定义和应用,了解它指针数组与指向数 组的指针变量的区别。 第九章 用户自己建立数据类型 9.1定义和使用结构体变量 9.1.1自己建立结构体类型 9.1.2 定义结构体类型变量 9.1.3结构体变量的初始化和引用 9.2使用结构体数组 9.2.1 定义结构体数组 9.2.2结构体数细的应用举伤 9.3结构体指针 9.3.1指向结构体变量的指针 9.3.2 指向结构体数组的指针 9.3.3用结构体变量和结构体变量的指针作函数参数 9.4用指针处理链表 9.4.1什么是链表 9.4.2建立简单的静态链表 9.4.3 建立动态链表 9.4.4输出链表 9.5共用体类型 9.5.1什么是共用体类型 9.5.2引用共用体变量的方式 9.5.3 共用体类型数据的特点 9.6使用枚举类型 9.7用typedef声明新类型名 基本要求: 1、理解结构体的含义 2、掌握结构体类型变量的定义方法。 3、草握结构体类型变量的用方法。 4、掌握结构体类型变量如何在定义的同时初始化 5、理解共同体的含义,掌握共同体类型变量的定义方法。 6 了解结构体数组的定义和数组元素的引用。 、了解指向结构体类型数据的指针的概念及使用。 8、了解裤表结点的结构形式,链表的基本操作 9、了解枚举类型的定义,及枚举类型的输入输出 l0、了解typedef的作用 第十章 对文件的输入输出 10.1C文件的有关基本知识 10.1.1什么是文件 10.1.2文件名 10.1.3文件的分类
2、掌握指针变量的定义和应用,指针变量作为函数参数的用法。 3、掌握指向数组的指针与指向数组的指针变量的概念、定义和应用。 4、掌握指向字符串的指针的定义和应用。 5、理解指向函数的指针的定义和用法。 6、了解返回指针值的函数的定义和应用,了解它与指向函数的指针变量的区别。 7、了解指针数组的定义和应用,掌握指针的指针的定义和应用,了解它指针数组与指向数 组的指针变量的区别。 第九章 用户自己建立数据类型 9.1 定义和使用结构体变量 9.1.1 自己建立结构体类型 9.1.2 定义结构体类型变量 9.1.3 结构体变量的初始化和引用 9.2 使用结构体数组 9.2.1 定义结构体数组 9.2.2 结构体数组的应用举例 9.3 结构体指针 9.3.1 指向结构体变量的指针 9.3.2 指向结构体数组的指针 9.3.3 用结构体变量和结构体变量的指针作函数参数 9.4 用指针处理链表 9.4.1 什么是链表 9.4.2 建立简单的静态链表 9.4.3 建立动态链表 9.4.4 输出链表 9.5 共用体类型 9.5.1 什么是共用体类型 9.5.2 引用共用体变量的方式 9.5.3 共用体类型数据的特点 9.6 使用枚举类型 9.7 用typedef声明新类型名 基本要求: 1、理解结构体的含义。 2、掌握结构体类型变量的定义方法。 3、掌握结构体类型变量的引用方法。 4、掌握结构体类型变量如何在定义的同时初始化。 5、理解共同体的含义,掌握共同体类型变量的定义方法。 6、了解结构体数组的定义和数组元素的引用。 7、了解指向结构体类型数据的指针的概念及使用。 8、了解链表结点的结构形式,链表的基本操作。 9、了解枚举类型的定义,及枚举类型的输入输出。 10、了解typedef的作用。 第十章 对文件的输入输出 10.1 C文件的有关基本知识 10.1.1 什么是文件 10.1.2 文件名 10.1.3 文件的分类
10.1.4文件缓冲区 10.1.5立文件类型指 10.2打开与关闭文件 10.2.1用fopeni函数打开数据文件 10.2.2用fclose函数关闭数据文件 10.3顺序读写数据文件 10.3.1怎样向文件读写字符 10.3.2 怎样向文件读写一个字符串 10.3.3用格式化的方式读写文件 10.3.4用二进制方式向文件读写一组数据 10.4随机读写数据文件 10.4.1文件位置标记及其定位 10.4.2随机读写 10.5文件读写的出错检测 基本要求: 1、了解文件的概念 2、了解文件类型指针的定义和含义。 3、掌握文件操作的相关标准函数。 4、了解文件定位的操作及相关的标准函数: 5、了解出错检测函数的作用。 四、教学重点与难点 第一章程序设计和C语言 币占:简单的C孕常书写 难点:C程序运行环境及程序调试、运行 第二章算法一 一程序的灵魂 重点:算法的不同种表示方法 难点:算法的不同种表示方法 第三章最简单的C程序设计 -顺序程序设计 重点:C的几种基本数据类型、不同类型数据间的混合运算规则 难点:格式输入/输出函数的使用方法 第四章 选择结构程序设计 重点:if选择语句的三种形式,选择结构的嵌套,switch语句的一般形式 难点:不同运算符和不同表达式的使用、每种运算符的优先级与结合性 第五章循环结构程序设计 重点:while语句与for语句的结构、使用方法,break和continuei语句 难点:顺序程序、选择结构、循环结构程序设计方法及算法特点 第六章利用数组处理批量数据 重点: 维数组 二维数组 字符数组的定义,数组元素的引用方法 难点:应用数组进行程序设计 第七章用函数实现模块化程序设计 重点:函数定义、函数形参与实参、函数参数传递及函数返回值、函数调用(嵌套和递归) 难点:局部变量与全局变量、动态存储变量与静态存储变量、内部函数与外部函数 第八章 善于利用指针 重点:指针变量的定义和应用,指向数组、字符串、函数的指针的定义和应用 难点:指针数组定义和应用,指针的指针的定义和应用,返回指针值的函数的定义和应用
10.1.4 文件缓冲区 10.1.5 文件类型指针 10.2 打开与关闭文件 10.2.1 用fopen函数打开数据文件 10.2.2 用fclose函数关闭数据文件 10.3 顺序读写数据文件 10.3.1 怎样向文件读写字符 10.3.2 怎样向文件读写一个字符串 10.3.3 用格式化的方式读写文件 10.3.4 用二进制方式向文件读写一组数据 10.4 随机读写数据文件 10.4.1 文件位置标记及其定位 10.4.2 随机读写 10.5 文件读写的出错检测 基本要求: 1、了解文件的概念。 2、了解文件类型指针的定义和含义。 3、掌握文件操作的相关标准函数。 4、了解文件定位的操作及相关的标准函数。 5、了解出错检测函数的作用。 四、教学重点与难点 第一章 程序设计和C语言 重点:简单的C程序书写 难点:C程序运行环境及程序调试、运行 第二章 算法——程序的灵魂 重点:算法的不同种表示方法 难点:算法的不同种表示方法 第三章 最简单的C程序设计——顺序程序设计 重点:C的几种基本数据类型、不同类型数据间的混合运算规则 难点:格式输入/输出函数的使用方法 第四章 选择结构程序设计 重点:if选择语句的三种形式,选择结构的嵌套,switch语句的一般形式 难点:不同运算符和不同表达式的使用、每种运算符的优先级与结合性 第五章 循环结构程序设计 重点:while语句与for语句的结构、使用方法,break和continue语句 难点:顺序程序、选择结构、循环结构程序设计方法及算法特点 第六章 利用数组处理批量数据 重点:一维数组、二维数组、字符数组的定义,数组元素的引用方法 难点:应用数组进行程序设计 第七章 用函数实现模块化程序设计 重点:函数定义、函数形参与实参、函数参数传递及函数返回值、函数调用(嵌套和递归) 难点:局部变量与全局变量、动态存储变量与静态存储变量、内部函数与外部函数 第八章 善于利用指针 重点:指针变量的定义和应用,指向数组、字符串、函数的指针的定义和应用 难点:指针数组定义和应用,指针的指针的定义和应用,返回指针值的函数的定义和应用
第九章用户自己建立数据类型 重点:结构体类型变量的定义引用,结构体数组的定义和数组元素的引用,共同体类型、枚举类 型变量的定义与引用, 难点:链表的类型与基本操作 第十章对文件的输入输出 重点:文件类型指针的定义、文件操作标准函数 文件指针定位 难点:文件顺序读写与随机读写,文件读写出错检测 五、实践环节 (实验总学时:32学时 实验教学基本要求: 1.掌握程序设计的一般方法 (1)掌握C语言的基本控制结构和基本控制语句及相关的语法规范: (2)具备熟练运用C语言进行顺序、选择和循环结构程序设计的能力 (3)掌握结构化程序设计和模块化设计方法的基本思想,掌握必要的程序测试和程序调试技 巧。 2,数据结构课程的基础 些常用的算法实现,如求最大最小值、排序、查找、插入、删除等,具备熟练运用 的能 力: (2)掌握链表和用户自己建立数据类型的各种基本操作,为数据结构课程学习打下基础。 实验内容及要求一览表: 序 实验项目名 实验内容 实验类型 」学时 演示验证 分配 1 2 2 L 先择结物程 坛算符和表大式的使用 序沿社 循环控制 whi1e语句,do-while语句和 for语句的使用和嵌套使用 5 数组 维数组、 维数组、字符数 4 组的使田 6 函数 函数定义与调用 6 7 指十 不同类型指针的定义和使用 6 8 结构体和共 结构体类型和共用体类型的定 用体 义与使用,链表操作 9 文件 √ 总学时 六、学时分配 总学时:80学时 其中:课堂教学:48学时:实验教学:32学时 课堂教学学时分配一览表: 节 内 容 学时数 月一1 程序设计和C语置 算法一 一程序的灵魂 最简单的C程序设计一顺序程序设计 第四 选择结构程序设计
第九章 用户自己建立数据类型 重点:结构体类型变量的定义引用,结构体数组的定义和数组元素的引用,共同体类型、枚举类 型变量的定义与引用,typedef使用 难点:链表的类型与基本操作 第十章 对文件的输入输出 重点:文件类型指针的定义、文件操作标准函数、文件指针定位 难点:文件顺序读写与随机读写,文件读写出错检测 五、实践环节 (实验总学时:32学时) 实验教学基本要求: 1.掌握程序设计的一般方法 (1)掌握C语言的基本控制结构和基本控制语句及相关的语法规范; (2)具备熟练运用C语言进行顺序、选择和循环结构程序设计的能力; (3)掌握结构化程序设计和模块化设计方法的基本思想,掌握必要的程序测试和程序调试技 巧。 2.数据结构课程的基础 (1)掌握一些常用的算法实现,如求最大最小值、排序、查找、插入、删除等,具备熟练运用 这些算法解决实际问题的能力; (2)掌握链表和用户自己建立数据类型的各种基本操作,为数据结构课程学习打下基础。 实验内容及要求一览表: 序 号 实验项目名 称 实验内容 实验类型 学时 演示 验证 分配 1 最简单的C程 序设计 编辑简单C程序,掌握程序编 译、连接、调试、运行基本过 程 √ 2 2 数据类型、 运算符和表 达式 掌握基本数据类型、运算符、 表达式的使用方法和一般格式 控制 √ 2 3 选择结构程 序设计 运算符和表达式的使用,if语 句switch语句的使用 √ 2 4 循环控制 while语句,do-while语句和 for语句的使用和嵌套使用 √ 2 5 数组 一维数组、二维数组、字符数 组的使用 √ 4 6 函数 函数定义与调用 √ 6 7 指针 不同类型指针的定义和使用 √ 6 8 结构体和共 用体 结构体类型和共用体类型的定 义与使用,链表操作 √ 4 9 文件 文件打开、关闭、读、写等文 件操作 √ 4 总学时 32 六、学时分配 总学时:80学时 其中:课堂教学:48学时;实验教学:32学时 课堂教学学时分配一览表: 章 节 内 容 学时数 第一章 程序设计和C语言 2 第二章 算法——程序的灵魂 2 第三章 最简单的C程序设计—顺序程序设计 4 第四章 选择结构程序设计 2
第五章 循环结构程序设计 A 第六章 利用数组处理批量数据 6 第七章 用函数实现模块化程序设计 8 第八草 普于利用指针 第九 用户自己建立数据类型 6 第十竟 对文件的输入输出 总复习 2 总学时 48 七、考核方式 1.日常课程教学安排和教学建议 讨论及分享。 (2)为落实动手能力的培养,每堂课均安排学生练习,每章节均有一个阶段性的验证性实验项 目,以巩固章节技术点。学生根据要求在课上课下练习完成项目,成绩作为平时作业成绩。 2.期末考核 考核相结合的方式,平时作业占总成绩的30%:笔 制定者:杨兴 审核者:阿里甫·库尔班 校对者:孙华 新疆大学“程序设计课程实践1(C语言)”专业生产实习教学大纲 实训课程名称 "程序设计课程实践1(C语言)“专业生产实习 实训周数:2周 实川学分:2学分 目的与要求 通过实训实验项目,进一步巩固《C语言程序设计》课程教学成果,深入掌握结构体、指 针、链表、动态分配内存和文件操作等C语言程序设计中的中高级技术,培养学生良好的编程习惯, 培养利用计算机处理问题的思维方式和程序设计基本方法,学习一般实验报告的撰写方法。 二、项目内容与时间安排 (一)项目内容: 实验指导教师参照讲解相关项目实例,介绍基本的项目设计思路和开发方法。学生以项目实例为 符合C 每队至多3人其 R 分组名单上报至实验指导老师,指 导老师确认后给各组分配组号, 项目完成后 程序检查以各 组依次答辩的方式进行,根据每组的整体成绩及每个组员的个人分工与贡献,分别给定每个学生的 答舞成绩。对行完成较好的项目,学生可在实训末申请公开答辩,答辩成绩可获优(90分以上)。 (二)时间安排: 课时 主要完成内容 ”展内容 ]三、实习 (1)课程设计要求,根据项目实例(需求分析、概要 MFC、动态分配(实训)报 设计 详细设计等)给出实验设试 项界面设计,创建能类单界面。 内存、指针、 告(作业) 链表等 要求 8 记录排序、统 每组以 计等功能 项目基础, 定程群的可 提交一个压 4 核 缩包, 命名 (2)学生上报题目名称并根据所选题目进行系统开 小组 发,进行系统功能测试,并加以完善。 生名 学生项目设计实现+指导教师答疑 学生项目设计实现+指导教师答疑+小组答辩
课时 主要完成内容 扩展内容 4 (1)课程设计要求,根据项目实例(需求分析、概要 设计、详细设计等)给出实验设计思路。 (2)项目界面设计:创建项目功能菜单界面。 MFC、动态分配 内存、指针、 链表等 8 (1)项目基本功能:实现文件保存、读取功能,实现 增删改查、退出等功能,通过菜单调用对应函数。 (2)学生分组+自主练习 记录排序、统 计等功能 4 (1)学生调研进行项目可行性研究、确定项目题目, 确定程序的系统框架,指导教师答疑对项目进行审核。 (2)学生上报题目名称并根据所选题目进行系统开 发,进行系统功能测试,并加以完善。 4 学生项目设计实现+指导教师答疑 4 学生项目设计实现+指导教师答疑+小组答辩 第五章 循环结构程序设计 4 第六章 利用数组处理批量数据 6 第七章 用函数实现模块化程序设计 8 第八章 善于利用指针 8 第九章 用户自己建立数据类型 6 第十章 对文件的输入输出 4 总复习 2 总学时 48 七、考核方式 1.日常课程教学安排和教学建议 (1)由于课程知识要点较多,教师给出课程阶段性内容实验训练题目,课上以手把手实践方式 为主,师生可利用各种通信手段进行答疑、讨论及分享。 (2)为落实动手能力的培养,每堂课均安排学生练习,每章节均有一个阶段性的验证性实验项 目,以巩固章节技术点。学生根据要求在课上课下练习完成项目,成绩作为平时作业成绩。 2.期末考核 本课程期末采用平时作业与集中笔试、机试考核相结合的方式,平时作业占总成绩的30%;笔 试、机试根据教学大纲统一命题,两者占总成绩的70%。 制定者:杨兴耀 审核者:阿里甫·库尔班 校对者:孙华 新疆大学"程序设计课程实践1(C语言)"专业生产实习教学大纲 实训课程名称:"程序设计课程实践1(C语言)"专业生产实习 实训周数:2周 实训学分:2学分 一、目的与要求 通过实训实验项目,进一步巩固《C语言程序设计》课程教学成果,深入掌握结构体、指 针、链表、动态分配内存和文件操作等C语言程序设计中的中高级技术,培养学生良好的编程习惯, 培养利用计算机处理问题的思维方式和程序设计基本方法,学习一般实验报告的撰写方法。 二、项目内容与时间安排 (一)项目内容: 实验指导教师参照讲解相关项目实例,介绍基本的项目设计思路和开发方法。学生以项目实例为 基础,任选一符合C语言程序设计要求的题目,在班级范围内组队完成,每队至多3人其中1人任队 长。分组名单上报至实验指导老师,指导老师确认后给各组分配组号。项目完成后,程序检查以各 组依次答辩的方式进行,根据每组的整体成绩及每个组员的个人分工与贡献,分别给定每个学生的 答辩成绩。对于完成较好的项目,学生可在实训末申请公开答辩,答辩成绩可获优(90分以上)。 (二)时间安排: 三、实习 (实训)报 告(作业) 要求 每组以 项目基础, 提交一个压 缩包,命名 规则:小组 成员姓名 (班级), 例如:张三
4小组答辩 (9)、李四 4公开答辩 包括源代码、可执行文件 玉缩 测试过程安生 系方式邮件和电话)和各自分工介绍: 3实验报告,0rd版并以项日名称命 名,实验报告内容(包含但不限于)要求如下 1、封面:设计题目、学生姓名、指导教师评语、报告成绩、完成日期等。 2、任务书:设计内容及要求、进度要求、参考资料、说明等。 3、目录、摘要。 4、设计内容、任务及具体要求。 、系统概要设计:系统框架和功能模块描述,特别是对扩展功能进行详细描述,采用框图、流 程图等」 一体设计:对主要模块功能、输入输出功能等进行详细设计,功能测试、主 7、总结、致谢、参考文献。 8、附实验源代码及相关说明 四、实习(实训)考核与成绩评定 实验总成绩分 }为3剖 鱼员的个人分工与西被绩修:其中容辩形式分为如下两种,学生任法其一(两种均老驱 辩成绩 占总成绩的: (3) 排在 成绩。 五、参考书与资料 1、工资管理系统、通讯录、计算器等项目实例 2、《C语言实训》,周丰等编,清华大学出版社,2008年 3、《数据结构(C语言版)》,严蔚敏等编,清华大学出版社,2014年 4、0程序设计 浩强编,清华大学出版社,2010年,第四 5、《C Primer Plus中文版》,Stephen Prata编,人民邮电出版社,2005年,第五版 六、其它 去馨目银装实所有成员必有相应的分工,不得抄表、芳贝。几发现不同组的程序霜同实
4 小组答辩 4 公开答辩 (9)、李四 (7).rar。 压缩包中包 含3个文件:(1)源程序文件夹,以"源程序"3个字命名,包括源代码、可执行文件、测试过程中生 成的文本文件等相关文件;(2)组员名单,文本文件以"组员名单"四个字命名,内容为组员班级、 学号、姓名、联系方式(邮件和电话)和各自分工介绍;(3)实验报告,Word版并以项目名称命 名,实验报告内容(包含但不限于)要求如下: 1、封面:设计题目、学生姓名、指导教师评语、报告成绩、完成日期等。 2、任务书:设计内容及要求、进度要求、参考资料、说明等。 3、目录、摘要。 4、设计内容、任务及具体要求。 5、系统概要设计:系统框架和功能模块描述,特别是对扩展功能进行详细描述,采用框图、流 程图等。 6、系统具体设计:对主要模块功能、输入输出功能等进行详细设计,功能测试、主要问题及难 点说明。 7、总结、致谢、参考文献。 8、附实验源代码及相关说明。 四、实习(实训)考核与成绩评定 每个学生实验总成绩分数分为3部分:(1)答辩成绩,由实验指导老师逐组验收后根据每组的整体成绩及每个 组员的个人分工与贡献,分别给定每个学生的答辩成绩,占总成绩的40%;(2)考勤成绩,占总成绩的30%;(3) 实验报告成绩,占总成绩的30%。其中答辩形式分为如下两种,学生任选其一(两种均参加者按高分数记): 1、小组答辩:安排在实训第6-7次课,程序演示为5分钟左右。程序演示主要验证主要功能的正确性以及对提 问进行回答。实验指导教师现场检查提问,并根据项目完成功能、项目难度、创新性等指标给出项目成绩及每位学 生答辩成绩。 2、公开答辩:安排在实训第8次课,面向班级和指导教师进行程序公开演示,时间5分钟左右。答辩小组成员 根据现场提问进行回答,实验指导教师根据项目完成功能、项目难度、创新性等指标给出项目成绩及每位学生答辩 成绩。 五、参考书与资料 1、工资管理系统、通讯录、计算器等项目实例 2、《C语言实训》,周丰等编,清华大学出版社,2008年 3、《数据结构(C语言版)》,严蔚敏等编,清华大学出版社,2014年 4、《C程序设计》,谭浩强编,清华大学出版社,2010年,第四版 5、《C Primer Plus中文版》,Stephen Prata编,人民邮电出版社,2005年,第五版 六、其它 实验项目由小组成员独立完成,所有成员必须有相应的分工,不得抄袭、拷贝。凡发现不同组的程序雷同或实 验报告雷同,直接取消本次实训成绩