本课程作为大学生学习计算机编程的入门语言,系统地介绍C++语言的基本概念,主要包括:C++基本数据类型、流程控制、函数、数组、指针、结构体、文件操作、类的基础部分、类的高级部分、继承、多态、虚函数、异常处理,课程设计等等。使学生能够掌握常用数据结构、算法以及面向对象程序设计的基本方法,能够对中等规模的问题及其解决方法用计算机语言进行描述。
C++语言是在C语言的基础上发展起来的,它继承了C语言的很多优点,而又加入了面向对象程序设计的特性,大大提高了程序开发和维护的效率。
本课程的实验环境是:一台计算机、安装相应的软件(操作系统:如Windows等;C++编程环境:如Visual C++ 6.0、VS2010、DevC++等)。
程序设计是一门实践性很强的课程,该课程的学习有其特点,必须通过大量的编程训练,在实践中掌握编程知识,培养编程能力,并逐步理解和掌握面向对象的程序设计的思想和方法。在这里所提供的,只是基础的知识讲解,程序设计的方法,要想真正学会编程,还需要更多的时间去练习。
通过对典型语言基本语法现象的剖析,让学生理解、掌握面向对象程序设计的规则原理,懂得用计算机指令的逻辑思维分析和求解问题,并在计算机上实现一定规模的程序。使学生掌握程序设计的基础理论,具有较强的应用能力。通过本课程的学习,培养学生的逻辑思维和编程能力,为后续课程学习打下坚实的基础。
第1章 C++程序设计基础
1.1 简单的C++程序举例
1.2 变量与常量
1.3 文字常量
1.4 C++运算符
1.5 位运算
1.6 cin和cout基本操作
1.7 枚举类型的基本应用
第2章 C++流程控制
2.7 break与continue语句
2.1 算法的基本概念和表示方法
2.2 选择结构程序设计(if-else)
2.3 选择结构程序设计(switch)
2.4 循环结构程序设计(while语句)
2.5 循环结构程序设计(do-while语句)
2.6 循环结构程序设计(for语句)
第3章 函数
3.1 函数的定义和调用
3.2 函数的参数传递和返回值
3.3 局部变量和全局变量
3.4 变量的存储类别
3.5 默认参数及内联函数
3.6 函数重载
3.7 函数模板
3.8 函数的递归调用
3.9 编译预处理
第4章 数组
4.1 一维数组
4.2 多维数组
4.3 数组做函数参数
4.4 一维数组应用-排序算法
4.5 一维数组应用-查找算法
4.6 一维数组的其他应用
4.7 二维数组应用
4.8 字符数组与字符串
4.9 处理字符与字符串(处理字符的宏)
4.10 处理字符与字符串(处理C风格的字符串的函数)
4.11 处理字符与字符串(自定义字符串处理函数)
4.12 标准C++的string类
第5章 指针
5.1 指针的概念及指针变量的定义
5.2 指针与一维数组
5.3 指针与二维数组
5.4 指针与函数(指针类型做函数参数)
5.5 指针与函数(返回指针的函数及指向函数的指针)
5.6 指针数组与指向指针的指针
5.7 内存的动态分配和释放
5.8 void和const修饰指针变量
5.9 对容易混淆的指针概念的总结
第6章 结构体与链表
6.1 结构体的定义
6.2 结构体的应用
6.3 用typedef定义类型
6.4 链表的建立
6.5 链表的遍历
6.6 链表的插入及有序链表的建立
6.7 链表的删除
第7章 文件操作
7.1 文件的打开与关闭
7.2 文本文件输入输出
7.3 文件出错检测方法
7.4 多文件操作
7.5 操作简单二进制文件
7.6 读写结构体文件
7.7 随机访问文件
第8章 类的基础部分
8.1 类的基本概念
8.2 类的多文件组织方式
8.3 构造函数与析构函数
8.4 重载构造函数
第9章 类的高级部分
9.1 静态成员
9.2 静态函数成员
9.3 友元函数
9.4 对象赋值
9.5 什么是拷贝构造函数
9.6 调用拷贝构造函数的三种情况
9.7 赋值运算符重载和this指针
9.8 +运算符重载
9.9 ++运算符重载
9.10 关系运算符重载
9.11 流操作符重载
9.12 类型转换运算符重载
9.13 重载[ ]运算符
第10章 继承、多态和虚函数
10.1 继承
10.2 保护成员和类的访问
10.3 继承下的构造函数与析构函数
10.4 初始化列表的作用
10.5 覆盖
10.6 虚函数和纯虚函数
10.7 多重继承和多继承
10.8 类模版
第11章 异常处理
11.1 异常
本门课程的先修课程是《计算机科学导论》或者类似课程,了解计算机的基本知识即可。学生通过学习《计算机科学导论》课程,可以掌握计算机工作的基本原理、基本操作和简单的理论知识。作为第一门程序设计课程,本课程也可以零基础学习。
(1)教辅材料:皮德常主编,《C++程序设计实验与课程设计指导》,机械工业出版社
(2) C++ 语言的创建者 Bjarne Stroustrup 所著的《 The C++ Programming Language 》;
(3) Andrew Koenig 和 Barbara E. Moo 所著的《 Accelerated C++ 》。采用 C++ 之父 Bjarne 的话评论该书: “ 对于有经验的程序员学习 C++ 而言,这本书可能是世界上最好的一本书 ” ;
(4) Stanley B.Lippman 和 Josee Lajoie 所著的《 C++ Primer 》。是一本 “ 从入门到精通 ” 的 C++ 教程;
(5 Stephen C. Dewhurst所著的《C++程序设计陷阱》,本书汇集了作者的99条编程方面的真知灼见,愈深入C++编程者必读。
Q:我需要配备什么样的计算机?
A:配备一台台式机或笔记本计算机就可以用于C++语言编程,操作系统安装常用的Windows即可,同类操作系统均可。
Q:我需要安装什么软件才能做这门课的作业?
A:任何C++语言的开发工具都可以。课程演示使用VS2010,但是你使用任何其他开发工具都不会影响做作业的正确性。可以使用的其他工具包括如Visual C++ 6.0、VS2010及以上、DevC++等均可。
Q:每周会发布多少时间的视频?我需要花多少时间来学习?
A:我们按照10分钟左右的授课时间来设计课程,每周大约发布大约一个半小时左右的视频。我们设计课程需要约1:3的课后学习时间,这包括预习、作业、练习和复习的时间,所以每周大约需要花费四小时的学习时间。