C++ 语言程序设计
    • 提醒:提交作业时要确认:(1) 全部提交;(2) 每个程序第一行有注解语句: // 机号-学号-姓名
基本信息
课程进度
周次 日期 课程资料 上机实践
第 1 周 09.09

课件:第零讲:课程介绍

第一讲:计算机基础知识

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

1. 熟悉 C++ IDE 的使用

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

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

第 2 周 09.14
(09.16)

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

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

代码:ex02.zip

1. 编程作业选讲

2. 完成第二讲的作业(练习 2.1, 2.2, 2.3)
作业递交链接, due 09.20)

第 3 周 09.23

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

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

代码:ex03.zip

1. 编程作业选讲

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

第 4 周 09.30

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

代码:ex04.zip

1. 编程作业选讲

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

第 5 周 10.12
(10.07)

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

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

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

1. 编程作业选讲

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

第 6 周 10.14

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

代码:ex05.zip

1. 编程作业选讲

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

第 7 周 10.21

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

第六讲:指针(一)

课外阅读: 内存分配 -- 栈和堆

Pointers and Memory

代码:ex06.zip

1. 上机小测验

2. 编程作业选讲

3. 完成第六讲的作业 6.1, 6.4, 6.5, 6.6
作业递交链接, due 11.01,参考模板

第 8 周 10.28

课件: 第六讲:指针(二)

应用举例: 矩阵乘积快速算法 -- Strassen 算法

Gauss 消去法

课外阅读: Fast and stable matrix multiplication

1. 编程作业选讲

2. 完成第六讲的作业 6.2, 6.3, 6.7, 6.8, 6.9 (可选)
作业递交链接, due 11.01,参考模板

第 9 周 11.04

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

代码:ex07.zip

1. 编程作业选讲

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

第 10 周 11.11

课件: 第八讲:排序算法

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

代码:ex08.zip

1. 编程作业选讲

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

第 11 周 11.18

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

代码:ex09.zip

1. 编程作业选讲

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

第 12 周 11.25

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

代码:ex10.zip

1. 编程作业选讲

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

第 13 周 12.02

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

参考阅读: C++ array 类,   C++ vector 类,   C++ string 类

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

代码:ex11.zip

1. 编程作业选讲

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

第 14 周 12.09

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

代码:ex12.zip

1. 上机大测验

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

第 15 周 12.16

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

代码:ex13.zip

1. 编程作业选讲

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

第 16 周 12.23

课件: 第十四讲:多态

代码:ex14.zip

1. 编程作业选讲

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

第 17 周 12.30

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

第十六讲:标准模板库

代码:ex15.zip,   ex16.zip

1. 编程作业选讲

2. 第十五讲的编程练习

第 18 周 01.06

课件: C++ 11 新增功能(部分)

代码:ex17.zip

1. 上机小测验

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