C++ 语言程序设计
  • 通知:请大家按上机座位表(见网页右上角)上机,谢谢!
基本信息
课程进度
周次 日期 课程资料 上机实践
第 1 周 09.11

课件:第零讲:课程介绍

第一讲:计算机基础知识

课外阅读: IEEE 浮点运算标准

1. 熟悉 C++ IDE 的使用

2. 熟悉上机作业递交方法

3. 练习: Python 简单编程
作业递交链接, due 09.15)

第 2 周 09.18

课件:第二讲:C++ 编程基础

参考资料: C++ 中的关键字C++ 运算优先级

代码:ex02.zip

1. 编程作业选讲

2. 完成第二讲的作业
作业递交链接, due 09.22)

第 3 周 09.25

课件: 第三讲:选择与循环

应用举例: 定积分数值计算 (PPT)

代码:ex03.zip

1. 编程作业选讲

2. 完成第三讲的作业
作业递交链接, due 09.29)

第 4 周 10.02 国庆放假 国庆放假
第 5 周 10.09

课件: 第四讲:函数

代码:ex04.zip

1. 编程作业选讲

2. 完成第四讲的作业(一)1--6
作业递交链接, due 10.13,参考模板

第 6 周 10.16

课件:第四讲:函数(续)

应用举例: 计算定积分的蒙特卡洛方法

视频欣赏: 自然界的斐波那契数列

1. 编程作业选讲

2. 完成第四讲的作业(二)7--11
作业递交链接, due 10.20,参考模板

第 7 周 10.23

课件: 第五讲:数组(一)数值数组

第五讲:数组(二)字符数组(字符串)

代码:ex05.zip

1. 编程作业选讲

2. 完成第五讲:数组(一)的作业
作业递交链接, due 10.27,参考模板

第 8 周 10.30

课件: 第六讲:指针

应用举例: 矩阵乘积快速算法 -- Strassen 算法,   Gauss 消去法

课外阅读: Fast and stable matrix multiplication

内存分配 -- 栈和堆,   Pointers and Memory

代码:ex06.zip

1. 上机小测验

2. 编程作业选讲

3. 完成第六讲的作业
作业递交链接, due 11.03,参考模板

第 9 周 11.06

课件: 第七讲:输入输出与 (C 语言) 文件操作

第八讲:排序算法

课外阅读: 十大经典排序算法,   希尔排序动画演示

代码:ex07.zip,   ex08.zip

1. 编程作业选讲

2. 完成第七讲和第八讲的作业
作业递交链接, due 11.10,
参考模板: hw07t.zip, hw08t.zip

第 10 周 11.13

课件: 第九讲:类与对象 (I) 面向对象基础

代码:ex09.zip

1. 编程作业选讲

2. 完成第九讲的作业
作业递交链接, due 11.17,参考模板

第 11 周 11.20

课件: 第十讲:类与对象 (II) 面向对象进阶

代码:ex10.zip

1. 编程作业选讲

2. 完成第十讲的作业
作业递交链接, due 11.24,参考模板

第 12 周 11.27

课件: 第十一讲:类与对象 (III) 面向对象提高

参考阅读: C++ vector使用方法

视频: C++ String 用法总结 (可以在学完模板后观看)

代码:ex11.zip

1. 上机大测验

2. 编程作业选讲

3. 完成第十一讲的作业
作业递交链接, due 12.01,参考模板

第 13 周 12.04

课件: 第十二讲:运算符重载与自动类型转换

代码:ex12.zip

1. 编程作业选讲

2. 第十二讲的编程练习
作业递交链接, due 12.08,参考模板

第 14 周 12.11

课件: 第十三讲:继承与派生

代码:ex13.zip

1. 编程作业选讲

2. 第十三讲的编程练习
作业递交链接, due 12.15,参考模板

第 15 周 12.18

课件: 第十四讲:多态

第十五讲:文件流与输出输入重载

代码:ex14.zip, ex15.zip

1. 编程作业选讲

2. 第十四讲和第十五讲的编程练习
作业递交链接, due 12.22,参考模板

第 16 周 12.25

课件: 第十六讲:标准模板库

代码:ex16.zip

1. 上机测验

2. 编程作业选讲

C++ 学习资源


C++ 编译器与开发环境
  • C++编译器:
  • GCC/G++ --- GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, and so on
  • Clang --- provides a language front-end and tooling infrastructure for C, C++, Objective C/C++, OpenCL, CUDA, and so on
  • Microsoft Visual C++/MSVC --- 集成在微软的开发工具 Visual Studio 中
  • IDE:
  • Code::Blocks -- 开源的全功能跨平台集成开发环境, 支持 C, C++, Fortran
  • Visual Studio Code/VSCode -- 微软出品的轻量级跨平台编辑器, 支持 C, C++, Python, Fortran
  • Qt Creator -- 跨平台开发环境, 支持 C++ 和 Python
     (Qt 是一个丰富的 C++ 代码库, 为应用程序开发提供一站式解决方案, 包括开发图形用户界面)

C++ 与数值计算
  • Eigen -- A high-level C++ library of template headers for numerical linear algebra
  • xtensor -- a C++ library meant for numerical analysis with multi-dimensional array expressions
  • mtensor -- tensor 计算库, 支持 cuda 的延迟计算
  • FFTW -- 基于 C 语言的快速 Fourier 变换实现
  • GSL -- GNU 科学计算库
  • GMP -- The GNU Multiple Precision Arithmetic Library
参考资料
  • C++ 程序设计 (第三版), Y.D. Liang著, 刘晓光等译, 机械工业出版社, 2015.
  • C++ Primer 中文版 (第5版), S.B. Lippman等编著, 王刚等译, 电子工业出版社, 2013.
  • C++ Primer Plus 中文版 (第6版), S. Prata著, 张海龙等译, 人民邮电出版社, 2012.
  • 深入理解C++11:C++11新特性解析与应用, C++标准委员会成员和IBM XL编译器中国开发团队共同撰写, 机械出版社, 2013.
  • C++程序设计语言(第1-3部分), B. Stroustrup著, 王刚等译, 机械工业出版社, 2016.
  • Effective C++:改善程序与设计的55个具体做法 (第3版), S. Meyers 著, 侯捷译, 电子工业出版社, 2011.
  • 数据结构与算法分析--C++描述 (第4版, 2014), Weiss著, 冯舜玺译, 电子工业出版社, 2016.
  • 算法导论 (第3版), T.H. Cormen等著, 殷建平等译, 机械工业出版社, 2013.
  • 算法设计手册 (第2版) (影印版), S.S. Skiena著, 清华大学出版社, 2009.
  • 计算机体系结构基础, 胡伟武等, 在线更新.
课外阅读
Last modified: July 1, 2022 by J.Y. Pan