《C 程序设计》教学大纲
《C程序设计》教学大纲

理论课程教学大纲《C程序设计基础》教学大纲课程编号:110041总学时:64(其中,讲课:48;实验:16)学分:3实践教学:0.5周修读专业:信息工程大纲文本一、课程的主要内容第1章C语言概述1.1C语言出现的历史背景1.2C语言的特点1.3简单的C程序设计1.4C程序的上机步骤重点:C语言特点;简单的C程序难点:C程序及其上机步骤第2章数据类型、运算符与表达式2.1 C的数据类型2.2 常量和变量2.2.1 常量和符号常量2.2.2 变量2.3 整型数据2.3.1整形常量的表示方法2.3.2整形变量2.3.3整形常量的类型2.4 实型数据2.4.1 实型常量的表示方法2.4.2 实型变量2.4.3 实型常量的类型2.5 字符型数据2.5.1 字符常量2.5.2 字符变量2.5.3 字符数据在内存中的存储形式及其使用方法2.5.4 字符串常量2.6 变量赋初值2.7 各类数值型数据间的混合运算2.8 算术运算符和算术表达式2.8.1 C运算简介2.8.2 算术运算符和算术表达式2.9 赋值运算符和赋值表达式2.10 逗号运算符和逗号表达式重点:数据类型、运算符与表达式的知识难点:各种数值型数据间的混合运算以及各运算符的优先级第3章最简单的C程序设计—顺序程序设计3.1 C语言概述3.2 程序的三种基本结构3.3 赋值语句3.4 数据的输入输出的概念及在C语言中的实现3.5 字符数据的输入输出3.5.1 putchar函数(字符输出函数)3.5.2 getchar函数(字符输入函数)3.6 格式输入和输出3.6.1 printf函数(格式输出函数)3.6.2 scanf 函数(格式输入函数)3.7 顺序结构程序设计举例重点:程序的三种基本结构;格式输入输出;字符数据的输入输出;简单的顺序结构程序设计难点:格式控制字符以及scanf应该注意的一些细节问题第4章逻辑运算和判断选取控制4.1 关系运算符和关系表达式4.1.1 关系运算符及其优先次序4.1.2 关系表达式4.2 逻辑运算符和逻辑表达式4.2.1 逻辑运算符及其优先次序4.2.2 逻辑表达式4.3 if语句4.3.1 if语句的三种形式4.3.2 if语句的嵌套4.3.3 条件运算符4.4 switch语句4.5 程序举例重点:if语句的使用;switch语句的使用;选择结构程序设计难点:多分支语句用if和switch语句实现第5章循环控制5.1 概述5.2 goto语句以及用goto语句构成循环5.3 while语句5.4 do-while语句5.5 for语句5.6 循环的嵌套5.7 几种循环的比较5.8 break语句和continue语句5.8.1 break 语句5.8.2 continue 语句5.9 程序举例重点:循环结构的概念及其使用;for循环的使用;while循环的使用;do-while循环的使用;循环结构程序的编写难点:三种循环的比较;用C语言实现几种循环第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 字符数组应用举例重点:一维数组定义和使用;字符数组的定义和使用难点:二维数组的定义和使用第7章函数7.1 概述7.2掌握函数定义的一般形式7.3 函数参数和函数的值7.3.1 形式参数和实际参数7.3.2 函数的返回值7.4掌握函数几种调用7.4.1 函数调用的一般形式7.4.2 函数调用的方式7.4.3 对被调用函数的声明和函数原型7.5 函数的嵌套调用7.6 函数的递归调用7.7 数组作为函数参数7.8 局部变量和全局变量7.8.1 局部变量7.8.2 全局变量7.9掌握几种变量类型的区别和存储类别7.9.1 动态存储方式与表态存储方式7.9.2 auto 变量7.9.3 用static声明局部变量7.9.4 register 变量7.9.5 用extern 声明外部变量7.9.6 用static 声明外部变量7.9.7 关于变量的声明和定义7.9.8 存储类别小结7.10 内部函数和外部函数7.10.1 内部函数7.10.2 外部函数7.11 如何运行一个多文件的程序重点:函数的基础知识及其使用难点:变量的存储类别;数组作为函数参数;函数的综合使用等第8章预处理命令8.1掌握宏定义8.1.1 不带参数的宏定义8.1.2 带参数的宏定义8.2掌握文件包含8.3了解条件编译重点:几种预处理功能第9章指针9.1掌握指针的概念9.2 变量的指针和指向变量的指针变量9.2.1 定义一个指针变量9.2.2 指针变量的引用9.2.3 指针变量作为函数参数9.3 数组的指针和指向数组的指针变量9.3.1 指向数组元素的指针9.3.2 通过指针引用数组元素9.3.3 用数组名作函数参数9.3.4指向多维数组的指针和指针变量9.4 字符串的指针和指向字符串的指针变量9.4.1 字符串的表示形式9.4.2 字符串指针作函数参数9.4.3 对使用字符指针变量和字符数组的讨论9.5 函数的指针和指向函数的指针变量9.5.1 用函数指针变量调用函数9.5.2 用指向函数的指针作函数参数9.6 返回指针值的函数9.7 指针数组和指向指针的指针9.7.1 指针数组的概念9.7.2 指向指针的指针9.7.3 指针数组作main函数的形参9.8 有关指针的数据类型和指针运算的小结9.8.1 有关指针的数据类型的小结9.8.2 指针运算小结9.8.3 void指针类型重点:指针的基本知识及使用;难点:多重指针的使用第10章结构体与共用体10.1 概述10.2 定义结构体类型变量的方法10.3 结构体变量的引用10.4 结构体变量的初始化10.5 结构体数组10.5.1 定义结构体数组10.5.2 结构体数组的初始化10.5.3 结构体数组应用举例10.6 指向结构体类型数据的指针10.6.1 指向结构体变量的指针10.6.2 指向结构体数组的指针10.6.3 用结构体变量和指向结构体的指针作函数参数10.7 用指针处理链表10.7.1链表概述10.7.2 简单链表10.7.3 处理动态链表所需的函数10.7.4 建立动态链表10.7.5 输出链表10.7.6 对链表的删除操作10.7.7 对链表的插入操作10.7.8 对链表的综合操作10.8 共用体10.8.1 共用体的概念10.8.2 共用体变量的引用方式10.8.3 共用体类型数据的特点10.9 枚举类型10.10用typedef定义类型重点:结构体与共同体的基本知识与使用难点:结构体数组的使用;指针处理链表第11章位运算11.1 位运算符和位运算11.1.1 “按位与”运算符(&)11.1.2 按位或运算符(|)11.1.3 “异或”运算符(∧)11.1.4 “取反”运算符(~)11.1.5 左移运算符(<<)11.1.6 右移运算符(>>)11.1.7 位运算赋值运算符11.1.8 不同长度的数据进行位运算11.2 位运算举例11.3 位段重点:位运算的基本知识与运用第12章常见错位和程序调试12.1 常见错误分析12.2 程序调试重点:常见错误及其程序调试的一些知识难点:一些错误分析的方法;程序调试的基础知识二、实验实验一运行一个简单的C程序实验二数据类型、运算符和表达式实验三顺序结构程序设计实验四选择结构程序设计实验五循环结构程序设计实验六一维数组的定义和引用、二维数组的定义和引用实验七字符数组、字符串实验八函数的定义、函数的调用、函数的嵌套调用实验九函数的递归调用、局部变量和全局变量、变量的存储类别, 内部函数和外部函数和编译预处理命令实验十指针的定义及运算,指针作函数参数实验十一指针与数组实验十二字符指针与字符串实验十三结构体、共用体和枚举类型实验十四链表实验十五综合实验三、实习(一)学生成绩排名先采用冒泡法,将学生成绩从高到低进行排序,再输入一个学生的成绩,将此成绩按照排序规律插入已排好序的学生成绩数组,最后将排好序的成绩单进行反序存放。
《C程序设计》教学大纲

《C程序设计》教学大纲一、课程概述《C 程序设计》是一门面向计算机及相关专业学生的基础课程,旨在培养学生的程序设计思维和基本编程能力。
通过本课程的学习,学生将掌握 C 语言的基本语法、数据类型、控制结构、函数、数组、指针、结构体等重要概念和编程技巧,能够运用 C 语言解决实际问题,并为后续学习其他编程语言和专业课程打下坚实的基础。
二、课程目标1、知识目标掌握 C 语言的基本语法规则和数据类型。
理解程序设计中的控制结构,如顺序、选择和循环。
熟悉函数的定义、调用和参数传递。
了解数组、指针、结构体等复杂数据类型的使用。
2、能力目标能够运用 C 语言编写简单的程序,解决实际问题。
具备良好的程序设计思维和逻辑推理能力。
能够阅读和理解他人编写的 C 程序代码。
具有一定的程序调试和错误处理能力。
3、素质目标培养学生的创新意识和团队合作精神。
提高学生的自主学习能力和解决问题的能力。
培养学生严谨的科学态度和良好的编程习惯。
三、课程内容1、 C 语言基础C 语言的发展历程和特点。
C 程序的基本结构和编译运行环境。
数据类型(整型、浮点型、字符型等)。
变量和常量的定义与使用。
2、控制结构顺序结构程序设计。
选择结构(if 语句、switch 语句)。
循环结构(for 循环、while 循环、dowhile 循环)。
嵌套的控制结构。
3、函数函数的定义和调用。
函数的参数传递(值传递和地址传递)。
函数的返回值。
函数的递归调用。
4、数组一维数组和二维数组的定义、初始化和使用。
数组作为函数参数。
字符数组和字符串处理函数。
5、指针指针的概念和定义。
指针与变量的关系。
指针与数组的关系。
指针作为函数参数。
6、结构体结构体的定义和使用。
结构体数组和结构体指针。
7、文件操作文件的打开与关闭。
文件的读写操作。
四、教学方法1、课堂讲授通过讲解、演示和案例分析,向学生传授 C 语言的基本概念和编程技巧。
2、实践教学安排实验课程,让学生通过实际编程练习,巩固所学知识,提高编程能力。
C语言程序设计教学大纲

C语言程序设计教学大纲一、课程介绍1.1课程名称:C语言程序设计1.2课程目标:掌握C语言的基本语法和程序设计思想,能够编写简单的C语言程序。
1.3先修知识:计算机基础知识1.4授课方式:理论授课和实践操作相结合二、教学内容2.1C语言概述2.1.1C语言的历史和发展2.1.2C语言的特点和优势2.1.3C语言的应用领域2.2程序的基本结构2.2.1程序的组成部分2.2.2程序的编译和运行过程2.2.3注释与格式规范2.3基本数据类型和运算符2.3.1C语言的基本数据类型2.3.2常量和变量2.3.3运算符和表达式2.4控制语句2.4.1条件语句2.4.2循环语句2.4.3跳转语句2.5数组与字符串2.5.1数组的定义和初始化2.5.2数组的访问和操作2.5.3字符串的定义和处理2.6函数和库函数2.6.1函数的定义和调用2.6.2函数的参数和返回值2.6.3常用库函数的介绍2.7结构体和指针2.7.1结构体的定义和使用2.7.2指针的基本概念2.7.3指针与数组的关系2.8文件操作2.8.1文件的打开和关闭2.8.2文件的读写和定位2.8.3文件的处理和使用三、教学方法3.1理论授课:通过讲授基本概念、原理和语法规则,帮助学生建立正确的知识框架。
3.2实践操作:通过编写C语言程序练习,巩固学习内容,并培养学生的实际操作能力。
3.3课堂讨论:通过课堂互动和问题解答,激发学生的思考能力和自主学习能力。
四、教学评价4.1平时作业:每周布置一定数量的编程作业,评价学生的代码质量和理解程度。
4.2实验报告:通过完成实验操作和撰写实验报告,考察学生的实践能力和文档写作能力。
4.3考试评测:定期组织考试,考察学生对知识的整体掌握程度和应用能力。
4.4课堂表现:课堂参与和表现,包括问题解答、课堂讨论和小组合作等。
五、参考教材5.1《C程序设计语言》(第2版)-薛宇潇5.2 《C Primer Plus》(第6版)- Stephen Prata六、教学进度安排6.1第1-4周:C语言概述和程序基本结构6.2第5-8周:基本数据类型和运算符6.3第9-12周:控制语句和循环结构6.4第13-16周:数组与字符串6.5第17-20周:函数和库函数6.6第21-24周:结构体和指针6.7第25-28周:文件操作6.8第29周:复习和总结以上是C语言程序设计教学大纲,通过系统的学习和实践,学生将能够掌握C语言的基本语法和程序设计思想,能够编写简单的C语言程序,并为进一步学习其他高级语言打下坚实的基础。
2024版C程序设计教程教与学教学大纲

结构体与联合体模块
结构体的定义与使用
01
了解结构体的概念和定义方式,掌握结构体成员的访问和结构
体变量的操作。
联合体的定义与使用
02
了解联合体的概念和定义方式,掌握联合体成员的访问和联合
体变量的操作。
枚举类型与typedef
03
学习枚举类型的定义和使用,了解typedef的作用和使用方法。
课时安排及进度计划
05
考核评价与反馈机制
平时成绩评定标准
课堂表现
包括学生出勤率、课堂参与度、 回答问题准确性等。
作业完成情况
根据作业难度、完成质量、提交 时间等因素进行评定。
阶段性测试
针对重要知识点进行阶段性测试, 检验学生掌握情况。
期末考试形式及内容
考试形式
闭卷考试,采用笔试形式进行。
考试内容
涵盖本课程所有重要知识点,包括基本概念、语法规则、算法设 计等。
学生意见收集渠道
课堂调研
通过课堂调研了解学生对本课程的意见和建议。
课后反馈
鼓励学生课后向教师反馈学习情况和问题,以便 教师及时改进教学。
线上交流平台
利用线上交流平台收集学生意见和建议,加强与 学生的沟通和互动。
06
教师团队建设与培训
师资队伍现状介绍
1 2 3
现有教师数量、结构和特点 包括教师的年龄、学历、职称、专业背景等方面 的介绍,以及教师队伍的整体优势和不足。
掌握C语言对于理解 计算机底层原理、培 养编程思维具有重要 意义。
教学目标与要求
掌握C语言的基本语法、 数据类型、运算符和表达 式。
学会使用数组、函数、指 针等高级特性编写程序。
理解程序控制结构,如顺 序、选择、循环结构。
完整版)C语言程序设计教学大纲

完整版)C语言程序设计教学大纲本课程旨在引导学生进入计算机程序设计的广阔空间,培养学生的逻辑思维能力、抽象能力和基本的计算机程序设计能力。
C语言作为载体,使学生对计算机程序设计有一个初步的正确的认识,学会阅读用计算机程序设计语言编写的简单应用程序,掌握结构化程序设计的基本方法和用计算机解决实际问题的基本步骤,训练学生的逻辑思维能力,培养其严谨的思维方式和良好的程序设计风格,为进一步研究其它专业基础课程和专业课程打下良好的基础。
第一章:程序设计和C语言本章主要介绍C语言的历史、特点,以及运行C程序的步骤和方法。
学生将了解C语言的发展和特点,掌握C语言的运行环境,初步了解运行一个C语言程序的过程。
教学重点是C语言的特点和C程序的上机步骤。
第二章:算法-程序的灵魂本章主要介绍算法的概念和特点,以及如何表示一个算法。
学生将掌握用流程图、N-S流程图、伪代码表示算法,理解结构化程序设计方法的概念。
教学重点是用流程图、N-S流程图、伪代码表示算法。
第三章:最简单的C程序设计-顺序程序设计本章主要介绍顺序程序设计的举例,数据的表现形式及其运算,C语句和数据的输入输出。
学生将了解顺序程序设计的基本概念和方法,掌握C语言的基本语句和数据的输入输出。
教学重点是数据的表现形式及其运算。
审定者。
批准者。
校对者:在我们的日常生活中,我们会遇到许多挑战和困难。
有时候我们会感到无法应对这些挑战,但是这不意味着我们应该放弃。
相反,我们应该寻找方法来克服这些困难,变得更加坚强。
生活中的挑战不仅仅是身体上的,也有心理上的。
这些挑战可能来自于我们的工作、家庭、朋友或者其他方面。
但是无论挑战来自哪里,我们都需要找到解决方法。
有时候,这可能需要我们寻求帮助或者寻找支持。
当我们面对挑战时,我们需要保持积极的态度。
我们需要相信自己,相信我们有能力克服任何困难。
我们可以通过思考和行动来找到解决方案,也可以向他人寻求建议和支持。
最后,我们需要记住,挑战和困难是我们成长的机会。
c语言程序设计教学大纲

C语言程序设计教学大纲目标本教学大纲旨在通过C语言程序设计的学习,使学生掌握C语言的基本语法和常用程序设计技巧,能够独立完成简单的C语言程序编写,为学生后续学习更高级的编程语言奠定基础。
课程安排本教学大纲将C语言程序设计分为以下几个模块,每个模块包含若干课时。
第一模块:基本概念•课时一:C语言简介与开发环境搭建(1课时) C语言的历史 C语言的特点开发环境的选择与搭建•课时二:C语言的基本结构和数据类型(2课时) C语言程序结构基本数据类型和变量常量的使用运算符和表达式第二模块:控制流程•课时三:条件语句和循环结构(2课时) if语句和switch 语句 while循环和do-while循环 for循环和嵌套循环•课时四:函数和参数传递(2课时)函数的定义和调用函数的参数传递函数的返回值递归函数的应用第三模块:数组和指针•课时五:数组的使用和操作(2课时)数组的定义和初始化数组元素的访问和修改数组的遍历和排序•课时六:指针的概念和应用(2课时)指针的定义和初始化指针的运算和操作指针与数组的关系指针的应用:动态内存分配和字符串处理第四模块:文件操作•课时七:文件的读写操作(2课时)文件的打开和关闭文件的读取和写入文件指针的定位和移动•课时八:文件的管理和应用(2课时)目录的创建和删除文件的复制和移动文件的查找和排序评估方式学生的成绩将通过以下方式进行评估:•作业:每个模块结束后布置作业,作为学生掌握程度的评估•实践项目:要求学生完成几个实践项目,考察学生将所学知识应用于实际问题的能力•期末考试:综合考察学生对整个C语言程序设计过程的理解和掌握程度参考教材•《C Primer Plus》(第6版) - Stephen Prata•《C程序设计语言》(第2版) - Brian W. Kernighan, Dennis M. Ritchie总结通过本教学大纲的学习,学生将掌握C语言的基本理论知识,培养编程思维和解决实际问题的能力。
《C语言程序设计》教学大纲

《C语言程序设计》教学大纲C语言程序设计教学大纲一、课程概述1.课程名称:C语言程序设计2.适用对象:计算机科学与技术等相关专业的本科生3.培养目标:通过本课程的学习,使学生能够掌握C语言的基本语法和编程思想,具备独立编写简单C语言程序的能力,并为进一步学习高级编程语言打下基础。
二、课程内容和教学安排1.第一章:课程介绍与概述(2课时)-介绍C语言的背景和重要性-简要介绍C语言的发展历程和特点-介绍课程的目标和安排2.第二章:C语言基础(8课时)-介绍C语言的基本数据类型和变量-讲解C语言的运算符和表达式-介绍C语言的控制结构(分支语句和循环语句)-引导学生编写简单的C语言程序3.第三章:函数和数组(8课时)-介绍C语言的函数的定义和使用-讲解C语言的数组的定义和使用-引导学生编写带有函数和数组的C语言程序4.第四章:指针和字符串(10课时)-介绍C语言的指针的基本概念和使用方法-讲解C语言中的字符串处理函数-引导学生编写带有指针和字符串处理的C语言程序5.第五章:结构体和文件IO(8课时)-介绍C语言中结构体的定义和使用-讲解文件的读写操作-引导学生编写能够处理结构体和文件操作的C语言程序6.第六章:动态内存分配和常用库函数(8课时)-介绍C语言中动态内存分配的概念和使用方法-讲解C语言中常用的库函数的使用-引导学生编写能够使用动态内存分配和常用库函数的C语言程序7.第七章:综合实践项目(8课时)-提供一个综合实践项目,要求学生运用所学知识编写一个较为复杂的C语言程序-引导学生进行项目的需求分析、程序设计和实现8.第八章:复习与考试(4课时)-综合复习前几章的内容-进行期末考试三、教学方法和评价方式1.教学方法:-理论教学结合实践教学,讲解C语言的基本概念和语法规则,并通过编写简单程序进行实践演示和练习-注重培养学生的编程思维和解决问题的能力,进行一定的编程实践和案例分析-鼓励学生通过阅读相关资料和主动思考,提高独立学习和解决问题的能力2.评价方式:-平时成绩(作业、实验报告等)占60%,期末考试占40%-通过课堂互动、作业和实验等方式对学生的学习情况进行评价-关注学生的自主学习和实践能力,鼓励学生积极参与讨论和思考四、教学资源和参考书目1.教学资源:计算机实验室、电子教案、教学PPT等2.参考书目:-《C语言程序设计教程》(谭浩强著)- 《C语言程序设计:现代方法》(King C. K著)。
2024年《C语言程序设计》课程教学大纲

课程结构采用理论与实践相结 合的方式,包括课堂讲授、实 验操作和课后作业等环节。
通过案例分析、算法实现等方 式,加深学生对C语言的理解 和掌握。
6
02 C语言基础知识
2024/2/29
7
C语言概述
C语言的历史与发展
介绍C语言的起源、发展历程以及在 计算机科学领域的重要地位。
C语言编程环境搭建
2024/2/29
选择结构
介绍C语言中的条件判断语句( if语句、switch语句),以及它 们的使用方法和注意事项。
循环结构
阐述C语言中的循环控制语句( for语句、while语句、dowhile语句),以及循环嵌套的 实现方法。
控制语句的转移
讲解C语言中的break语句、 continue语句以及goto语句等
通过改进代码实现方式提高性 能,如避免不必要的函数调用 、减少全局变量的使用、使用 位运算替代算术运算等。
25
利用多核CPU或GPU进行并行 计算,可以显著提高程序运行 速度。需要注意的是,并行计 算需要合理设计算法和数据结 构,以避免竞态条件和死锁等 问题。
07 课程总结与展望
2024/2/29
深入剖析二叉树的遍历方法,包括 前序遍历、中序遍历和后序遍历等 ,以及遍历算法的实现和应用。
19
05 文件操作与数据存储管理
2024/2/29
20
文件基本概念及操作
文件定义与分类
阐述文件在计算机中的概念,包括文 本文件、二进制文件等类型。
文件指针与文件操作函数
介绍如何在C语言中使用文件指针进 行文件的打开、关闭、读写等操作。
常见错误类型及调试方法
01 02
语法错误
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C++程序设计》教学大纲一.课程基本信息课程编号:中文名称:C++程序设计英文名称:C++ Programming课程类别:专业基础课适用专业:计算机科学与技术专业、软件工程专业开课学期:秋总学时:64 授课:32 上机: 32总学分:4预修课程:《计算机导论》、《C语言程序设计》、《数据结构》并修课程:无课程简介:“面向对象程序设计”是计算机科学与技术专业、软件工程专业的一门专业基础课。
面向对象软件开发方法是吸收了软件工程领域有益的概念和有效的方法而发展起来的一种软件开发方法。
它把数据和对数据的操作封装起来,集抽象性、封装性、继承性和多态性于一体,可以帮助人们开发出模块化、数据抽象程度高的、体现信息隐蔽、可复用、易修改、易扩充等特性的程序。
面向对象程序设计方法及技术是对面向对象方法及思想的基本体现。
《C++程序设计》主要介绍C++语言的基本概念、语法规则和面向对象的程序设计方法及思想,以 C++ 语言中的面向对象机制为主。
学习者在学习过程中可以通过大量的程序实例和相关练习,逐步掌握 C++ 的面向对象的功能,从而掌握面向对象程序设计的基本知识和基本技能,学会利用C++语言进行一般面向对象程序的设计,解决一般应用问题,并为后续专业课程的学习奠定程序设计基础。
建议教材:邵兰洁.《C++程序设计》.北京:北京邮电大学出版社,2009。
参考书:[1] 谭浩强.《C++面向对象程序设计》.北京:清华大学出版社,2006。
[2] 谭浩强.《C++面向对象程序设计题解与上机指导》.北京:清华大学出版社,2006年。
[3] 谭浩强.《C++程序设计实践指导》.北京:清华大学出版社,2005年。
[4] 郭有强.《C++面向对象程序设计》.北京:清华大学出版社,2009年。
[5] 杜茂康.《C++面向对象程序设计》.北京:电子工业出版社,2007年。
[6] 皮德常.《C++程序设计教程》.北京:机械工业出版社,2009年。
[7] 李春葆.《C++程序设计教程》(第3版).北京:清华大学出版社,2007年。
[8] 钱能.《C++程序设计教程》(第2版).北京:清华大学出版社,2005年。
二.课程教育目标C++是得到广泛应用的面向对象程序设计语言,现代的面向对象软件设计思想在其中得到生动的体现。
本课程基于面向对象语言C++中诸如类和对象、友元、模板等面向对象的基本成分,重点介绍面向对象程序设计的基本思想及基本概念:抽象、封装、继承、多态性,C++语言面向对象编程的技术:函数重载、运算符重载、内联函数、虚函数、友元函数,并通过若干实例的分析,使学生了解并掌握C++面向对象程序设计的基本内容和方法,会编写应用“继承”和“多态性”机制的面向对象的C++ 程序,并初步认识VC++ 应用程序设计方法及过程。
三、教学形式:(1)课堂授课采用多媒体教室,理论知识讲授与程序验证相结合,以便学生加深印象。
(2)C++程序设计语言课程是一门实践性很强的课程,必须通过上机操作才能掌握所学的知识,所以要特别强调讲授与上机操作相结合,要保证学生有充分的上机条件,达到学必用、学即用。
(3)为了配合课程的理论教学,除了保证学生有充分的上机条件,应重点加强课程实验教学环境和内容的建设,同时布置一个规模较大课外编程练习,让学生在自由上机的开放环境中完成。
从而达到理论联系实际的目的,使得课程教学更趋完备。
(4)针对所留作业,可以组织讨论,以便学生掌握面向对象程序设计思想。
(5)不定期课堂测验。
四、理论教学内容与要求第1章面向对象程序设计概述(2学时)(一) 教学内容1.1 面向过程程序设计1.2 面向对象程序设计1.3 面向对象的软件开发1.4 学生信息管理系统的面向对象分析与设计(二) 教学要求领会面向过程程序设计和面向对象程序设计的编程思想及各自的优缺点;掌握面向对象程序设计的基本概念;了解面向对象的软件开发步骤。
第2章 C++基础知识(4学时)(一) 教学内容2.1 从C语言到C++2.2 简单C++程序2.3 C++对C语言的扩充2.4 C++程序的编写和实现(二) 教学要求了解C++语言的特点及简单C++程序的构成;掌握C++对C语言的扩充以及C++程序的编辑、编译、链接和运行的过程。
第3章类和对象(8学时)(一) 教学内容3.1 类的声明和对象的定义3.2 类的成员函数3.3 对象成员的访问3.4 构造函数和析构函数3.5 对象数组3.6 对象指针3.7 对象与const3.8 对象的动态建立和释放3.9 对象的赋值和复制3.10 向函数传递对象3.11 学生信息管理系统中类的声明和对象的定义(二) 教学要求掌握类和对象的概念及其关系;掌握类的声明方式;声明和定义成员函数的方法;访问类的数据成员和成员函数的方法;理解保护数据如何屏蔽外部访问的原理,使得对类的封装有更好的认识;掌握定义构造函数和析构函数的意义,能够根据要求正确定义和重载构造函数;掌握构造函数和析构函数的调用顺序;掌握对象数组、对象的指针及其使用方法;const 型数据的使用;掌握对象的动态建立和释放,对象的赋值与复制。
第4章继承与组合(6学时)(一) 教学内容4.1 继承与派生的概念4.2 派生类的声明方式4.3 派生类的构成4.4 派生类成员的访问属性4.5 派生类的构造函数和析构函数4.6 多重继承4.7 基类与派生类的转换4.8 继承与组合4.9 继承在软件开发中的重要意义(二) 教学要求掌握继承和派生的概念;派生类的声明方式;派生类的构成;公有继承;私有继承;保护继承;派生类的构造函数和析构函数;多重继承的声明方法;虚基类的作用和用法;类的组合。
第5章多态性与虚函数(4学时)(一) 教学内容5.1 什么是多态性5.2 向上类型转换5.3 功能早绑定和晚绑定5.4 实现功能晚绑定——虚函数5.5 纯虚函数和抽象类5.6 学生信息管理系统中的多态性(二) 教学要求掌握多态性的概念;虚函数的作用及使用方法;静态关联和动态关联的概念和用法;纯虚函数和抽象类的概念和用法。
第6章面向对象的妥协(2学时)(一) 教学内容6.1 封装的破坏——友元6.2 对象机制的破坏——静态成员(二) 教学要求掌握友元的概念和使用,理解友元的局限性;掌握静态类数据成员和成员函数的定义和使用方法。
第7章运算符重载(4学时)(一) 教学内容7.1 为什么要进行运算符重载7.2 运算符重载的方法7.3 重载运算符的规则7.4 运算符重载函数作为类成员函数和友元函数7.5 重载双目运算符7.6 重载单目运算符7.7 重载流插入运算符和流提取运算符7.8 不同类型数据间的转换(二) 教学要求掌握运算符重载的概念;运算符重载的方法;重载运算符的规则;运算符重载为类成员函数;运算符重载为友元函数;转换构造函数的使用方法;类型转换函数。
第8章模板(2学时)(一) 教学内容8.1 为什么需要模板8.2 函数模板8.3 类模板8.4 STL简介(二) 教学要求掌握函数模板和类模板的概念、定义与使用方法,了解STL的有关内容。
第9章输入/输出流(自学)(一) 教学内容9.1 C++的输入和输出概述9.2 C++的标准输入/输出流9.3 输入运算符和输出运算符及其重载9.4 C++格式输入和输出9.5 文件操作与文件流9.6 学生信息管理系统中的文件操作(二) 教学要求掌握C++流的概念,标准预定义流对象cin、cout 、cerr和clog的含义,文件操作,文件流的定义和使用,字符流的定义和使用,了解输入输出的格式控制及专门操作。
第10章异常处理(自学)(一) 教学内容10.1 异常处理的概念及C++异常处理的基本思想10.2 异常处理的实现10.3 学生信息管理系统中的异常处理(二) 教学要求掌握C++的异常处理机制和使用方法;会在实际系统中应用异常处理机制。
五、上机内容与要求实验一、C++程序的运行环境和运行C++程序的方法(2学时)(1)熟悉VC++集成开发环境。
(2)掌握在VC++集成开发环境下编辑、编译、连接和运行一个C++程序的步骤。
(3)通过运行简单的C++程序,初步了解C++源程序的结构和特点。
实验二、C++对C的扩充(4学时)(1)了解在面向过程程序设计中C++对C语言的扩充与增强,并善于在编写程序过程中应用这些新的功能。
(2)进一步熟悉在所用的VC++集成开发环境下编辑、编译、连接和运行C++程序的方法。
(3)进一步熟悉C++程序的结构和编程方法。
实验三、类和对象(10学时)(1)掌握声明类的方法,类和类的成员的概念以及定义对象的方法。
(2)初步掌握用类和对象编制基于对象的程序。
(3)学习检查和调试基于对象的程序。
(4)掌握类的构造函数和析构函数的概念和使用方法。
(5)掌握对象数组、对象的指针及其使用方法。
(6)掌握共用数据的保护实验四、继承与组合(6学时)(1)了解继承在面向对象程序设计中的重要作用。
(2)进一步理解继承与派生的概念。
(3)掌握通过继承派生出一个新的类的方法。
(4)了解虚基类的作用和用法。
(5)掌握类的组合实验五、多态性与虚函数(4学时)(1)了解多态性的概念。
(2)了解虚函数的作用及使用方法。
(3)了解静态关联和动态关联的概念和用法。
(4)了解纯虚函数和抽象类的概念和用法。
实验六、面向对象的妥协(2学时)(1)掌握友元的概念、友元函数的定义与使用方法。
(2)掌握静态数据成员与静态成员函数的定义与使用方法。
实验七、运算符重载(2学时)(1)掌握运算符重载的规则。
(2)掌握几种常用的运算符重载的方法。
(3)了解转换构造函数的使用方法。
(4)了解在Visual C++6.0环境下进行运算符重载要注意的问题。
实验八、模板(2学时)(1)函数模板的定义与调用。
(2)掌握类模板的声明与使用方法。
实验九、输入输出流(自学)(1)深入理解C++的输入输出的含义与其实现方法。
(2)掌握标准输入输出流的应用,包括格式输入输出。
(3)掌握对文件的输入输出操作。
实验十、异常处理(自学)(1)学会使用C++的异常处理机制进行程序的编制。
(2)学会使用命名空间解决名字冲突。
七、作业:为了配合课程的理论教学,拟布置一定数量习题为宜,并安排时间上习题课,同时布置一个规模较大课外编程练习,让学生在自由上机的开放环境中完成,从而达到理论联系实际的目的,使得课程教学更趋完备。
各章节习题量分布如下:作业成绩占本课程总成绩的5%。
迟交或缺交的作业次数应少于作业总次数的1/4,否则将影响作业成绩的评定。
八、考核方式平时考核、期中考试、期末考试相结合。
课程结束后,安排一次120分钟的期末考试,采取开卷考试形式。
具体考试时间至少提前一周通知学生。
平时考核包括考勤、作业和实验。