课程概况
C++是从C语言发展演变而来的一种面向对象的程序设计语言。面向对象的程序设计方法将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体——对象。对同类型对象抽象出其共性,形成类。类通过外部接口,与外界发生关系,对象与对象之间通过消息进行通讯。这样,程序模块间的关系简单,程序模块的独立性、数据的安全性具有良好的保障,通过继承与多态性,使程序具有很高的可重用性,使得软件的开发和维护都更为方便。
由于面向对象方法的突出优点,目前它已经成为开发大型软件时所采用的主要方法。而C++语言是应用最广泛的面向对象的程序设计语言之一。
本课程是一门面向广大初学者的入门课程,自1999年开始在清华大学开设,本课程的教材已经在清华大学等一百多所学校的不同专业中使用,取得了良好的教学效果。
本课程将C++语言作为大学生的计算机编程入门语言,不仅详细介绍语言本身,而且介绍常用的数据结构和算法、面向对象的设计思想和编程方法。课程以面向对象的程序设计方法贯穿始终,每一章都是首先阐述面向对象的程序设计思想和方法,由实际问题入手,然后引出必要的语法知识,在讲解语法时着重从程序设计方法学的角度讲述其意义和用途。
本课程是清华校内同名课程的完整版,内容全面,难度适中,包括了ISO第三版C++标准(C++11)的新内容。
课程分《C++语言程序设计基础》和 《C++语言程序设计进阶》,各8周。
《C++语言程序设计基础》9月11日上线。无先修课程要求,内容包括程序设计基础知识、数据的表示和基本运算、函数与重载、类与对象、数据的共享与保护、数组、指针、字符串。教材:《C++语言程序设计》(第4版)1-6章,《C++语言程序设计(第4版)学生用书》1-6章。
《C++语言程序设计进阶》11月6日上线。要求必须先修《C++语言程序设计基础》或者阅读《C++语言程序设计》(第4版)1-6章。内容包括继承与多态、运算符重载、模板与泛型程序设计、文件I/O、异常处理。教材:《C++语言程序设计》(第4版)7-12章,《C++语言程序设计(第4版)学生用书》7-12章。
课程大纲
第1章 绪论
导学
计算机系统简介
计算机语言和程序设计方法的发展
面向对象的基本概念
程序的开发过程
信息的表示和储存
实验指导
讨论区
第2章 C++简单程序设计(一)
导学
C++语言概述
基本数据类型、常量、变量
运算与表达式
实验二:简单程序设计(上)
讨论区
第2章 C++简单程序设计(二)
数据的输入和输出
选择结构
循环结构
自定义类型
第2章小结
实验二:C++简单程序设计(下)
第2章编程作业
讨论区
选做题(不计分)
第3章 函数
导学
函数定义
函数调用
嵌套与递归
函数的参数传递
引用类型
含有可变参数的函数
内联函数
constexpr函数
带默认参数值的函数
函数重载
C++系统函数
第3章小结
实验三(上)函数的应用
实验三(下)函数的应用
第3章编程作业
选做题
讨论区
第4章 类与对象
导学
面向对象程序的基本特点
类和对象
构造函数
析构函数
类的组合
UML简介
结构体与联合体
枚举类
第4章小结
实验四(上)
实验四(下)
第4章编程作业
讨论区
第5章 数据的共享与保护
导学
标识符的作用域与可见性
对象的生存期
类的静态成员
类的友元
共享数据的保护
多文件结构和预编译命令
第5章小结
实验五
第5章编程作业
讨论区
第6章 数组、指针与字符串(一)
导学
数组的定义与初始化
数组作为函数的参数
对象数组
基于范围的for循环
指针的定义和运算
综合实例
实验六(上)
讨论区
第6章 数组、指针与字符串(二)
指针与数组
指针与函数
对象指针
动态内存分配
智能指针
vector对象
对象复制与移动
字符串
第6章小结
综合实例
实验六(下)
第6章编程作业
选做题
讨论区
参考资料
《C++语言程序设计》(第4版),郑莉等,清华大学出版社;《C++语言程序设计(第4版)学生用书》,郑莉等,清华大学出版社