Warning: WP Redis: Connection refused in /www/wwwroot/cmooc.com/wp-content/plugins/powered-cache/includes/dropins/redis-object-cache.php on line 1433
程序设计与算法(三)C++面向对象程序设计 | MOOC中国 - 慕课改变你,你改变世界

程序设计与算法(三)C++面向对象程序设计

主讲教师在北大信息学院讲授C++课程十七年,并用C++开发了多个畅销的应用软件,如《我爱背单词》等。不论教学经验还是开发经验都十分丰富。因此讲授的内容特别贴合实践,各种样例程序都非常实用,鲜活。作…

国家精品计算机C++
3288 次查看
北京大学
中国大学MOOC
  • 完成时间大约为 14
  • 初级
  • 中文
注:因开课平台的各种因素变化,以上开课日期仅供参考

课程概况

本课程讲授C++程序设计有关的概念和语法,使你能够使用C++语言,以面向对象的方法编写可维护性、可扩充性好的,较大规模的程序。要求学习者已经掌握C语言程序设计。这门课将带你掌握C++语言中类、对象、运算符重载、继承、多态等面向对象的程序设计方法,以及模板、标准模板库STL等泛型程序设计的机制,体会和领悟面向对象程序设计方法和泛型程序设计方法的优势。

授课内容11周,考试1周。安排如下:

1.  从C语言到C++(1周)

2.  类和对象的基本概念和用法(2周)

3.  运算符的重载(1周)

4.  继承和派生(1周)

5.  多态和虚函数(1周)

6.  输入输出和模板(1周)

7.  标准模板库STL(2周)

8.  C++高级主题和C++11特性(1周)

9.  期末考试(1周)

本课程作业和考试题都是在线提交程序,系统自动评测,容不得半点错误,这对学习者是非常严格而且有效的训练,符合当下顶尖IT企业招聘考核的形式,学习效果远胜于书面作业人工批改的形式。期末还有一个大型的游戏模拟程序作业《魔兽世界》,深受北京大学信息学院学生欢迎,能够很好地训练C++面向程序设计的技能。

课程大纲

第一周 从 C 到C++
1. 引用
2. const关键字
3. 动态内存分配
4. 内联函数和重载函数函数参数缺省值
5. 类和对象的基本概念(1)

第一周讲义
Openjudge 在线做题指南

第一周 测验

第二周 类和对象基础
1. 类和对象的基本概念(2)
2. 构造函数
3. 复制构造函数
4. 类型转换构造函数和析构函数
5. 构造函数析构函数调用时机

第二周讲义

第二周测验

第三周 类和对象提高
1. this指针
2. 静态成员变量
3. 成员对象和封闭类
4. 常量对象、常量成员函数
5. 友元

第三周讲义

第三周测验

第四周 运算符重载
1. 运算符重载的基本概念
2. 赋值运算符的重载
3. 运算符重载为友元
4. 可变长数组类的实现
5. 流插入运算符和流提取运算符的重载
6. 类型转换运算符的重载
7. 自增自减运算符的重载

第四周讲义

第四周测验

第五周 继承
1. 继承和派生的基本概念
2. 继承关系和复合关系
3. 覆盖和保护成员
4. 派生类的构造函数
5. 公有继承的赋值兼容规则

第五周讲义
魔兽世界2测试数据

第五周测验

第六周 多态
1. 虚函数和多态的基本概念
2. 多态实例:魔法门之英雄无敌
3. 多态实例:几何形体程序
4. 多态的实现原理
5. 虚析构函数、纯虚函数和抽象类

第六周讲义

第六周测验

第七周 输入输出和模板
1. 输入输出流相关的类
2. 用流操纵算子控制输出格式
3. 文件读写(一)
4. 文件读写(二)
5. 函数模板
6. 类模板
7. 类模板与派生、友元和静态成员变量

第七周讲义-模板

第七周讲义-输入输出和文件操作

第七周测验

第八周 标准模板库STL(一)
1. string 类
2. 标准模板库STL概述(一)
3. 标准模板库STL概述(二)
4. vector,deque和list
5. 函数对象

第八周string类讲义

第八周标准模板库(一)讲义

第八周测验

第九周 标准模板库STL(二)
1. set和multiset
2. map和multimap
3. 容器适配器
4. 算法(一)
5. 算法(二)

第九周讲义

第九周测验

第十周 C++ 11新特性和C++高级主题
1. C++11 新特性(1)
2. C++11 新特性(2)
3. 强制类型转换
4. 异常处理

第十周讲义
魔兽世界大作业
魔兽世界大作业数据
魔兽世界大作业
课本习题解答
《新标准C++程序设计》习题解答

第一周测验答案

第一周测验答案

第二周测验答案

第二周测验答案

第三周测验答案

第三周测验答案

第四周测验答案

第四周测验答案

第五周测验答案

第五周测验答案

第六周测验答案

第六周测验答案

第七周测验答案

第七周测验答案

第八周测验答案

第八周测验答案

第九周测验答案

第九周测验答案

预备知识

要求掌握C语言程序设计。如果没有掌握,请先学《程序设计与算法(一)C语言》

参考资料

清华大学出版社《新标准C++程序设计教程》,郭炜编著 (适用于零基础学习者)
高等教育出版社《新标准C++程序设计》,郭炜编著  (适用于已经掌握了C语言的学习者)

常见问题

C++课程很多,这门课和其他课相比优势是什么?
答:这门课的老师不但在北京大学讲授C++程序设计十五年,深受学生欢迎,还用C++开发了多款商业软件,不但有丰富的教学经验,还有丰富的实际开发经验。因此教学更加贴近实践。
本课程一切围绕着能写程序这个目标来教学,绝不纠缠语法细节。作业全部都是在北京大学在线程序评测平台提交的编程题,要求严格,切切实实地训练编程能力。还有一个大规模的面向对象编程作业《魔兽世界》,充分体现面向对象编程的方法。
2. 我可以零基础学这门课吗?
答:不可以。必须先掌握C语言。如果您零基础,请先学习《程序设计与算法(一)C语言》

千万首歌曲。全无广告干扰。
此外,您还能在所有设备上欣赏您的整个音乐资料库。免费畅听 3 个月,之后每月只需 ¥10.00。
Apple 广告
声明:MOOC中国十分重视知识产权问题,我们发布之课程均源自下列机构,版权均归其所有,本站仅作报道收录并尊重其著作权益。感谢他们对MOOC事业做出的贡献!
  • Coursera
  • edX
  • OpenLearning
  • FutureLearn
  • iversity
  • Udacity
  • NovoEd
  • Canvas
  • Open2Study
  • Google
  • ewant
  • FUN
  • IOC-Athlete-MOOC
  • World-Science-U
  • Codecademy
  • CourseSites
  • opencourseworld
  • ShareCourse
  • gacco
  • MiriadaX
  • JANUX
  • openhpi
  • Stanford-Open-Edx
  • 网易云课堂
  • 中国大学MOOC
  • 学堂在线
  • 顶你学堂
  • 华文慕课
  • 好大学在线CnMooc
  • (部分课程由Coursera、Udemy、Linkshare共同提供)

© 2008-2022 CMOOC.COM 慕课改变你,你改变世界