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

不论教学经验还是开发经验都十分丰富。因此讲授的内容特别贴合实践,各种样例程序都非常实用,鲜活。作业和考试题都是在线提交程序,系统自动评测,符合当下顶尖IT企业招聘考核的形式,学习效果极好。

——课程团队

课程概述

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

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

本课程作业和考试网址:cxsjsxmooc.openjudge.cn

郭炜老师还在中国大学MOOC开设另外三门好评如潮的4.9分高分课程,请不要错过:

1)程序设计与算法(一)C语言程序设计(国家精品)

0基础学习者应该先学习这门课程

2)程序设计与算法(二)算法基础(国家精品)

3)实用Python程序设计(强烈推荐,Python的百科书式大全课程,入门、提高均非常适合!)

授课目标

1.掌握面向对象程序设计的各种概念、机制及其用法2.掌握C++泛型程序设计,熟练编写各类模板3.熟练使用C++的标准模板库4.初步具备用C++语言和面向对象的方法开发大型程序的能力

课程大纲

01

从C到C++

课时

1.1.引用

1.2.const关键字

1.3.动态内存分配

1.4.内联函数和重载函数函数参数缺省值

1.5.类和对象的基本概念(1)

1.6Openjudge在线做题必读

02

类和对象基础

2.1.类和对象的基本概念(2)

2.2.构造函数

2.3.复制构造函数

2.4.类型转换构造函数和析构函数

2.5.构造函数析构函数调用时机

03

类和对象提高

3.1.this指针

3.2.静态成员变量

3.3.成员对象和封闭类

3.4.常量对象、常量成员函数

3.5.友元

04

运算符重载

4.1.运算符重载的基本概念

4.2.赋值运算符的重载

4.3.运算符重载为友元

4.4.可变长数组类的实现

4.5.流插入运算符和流提取运算符的重载

4.6.类型转换运算符的重载

4.7.自增自减运算符的重载

05

继承

5.1.继承和派生的基本概念

5.2.继承关系和复合关系

5.3.覆盖和保护成员

5.4.派生类的构造函数

5.5.公有继承的赋值兼容规则

06

多态

6.1.虚函数和多态的基本概念

6.2.多态实例:魔法门之英雄无敌

6.3.多态实例:几何形体程序

6.4.多态的实现原理

6.5.虚析构函数、纯虚函数和抽象类

07

输入输出和模板

7.2.用流操纵算子控制输出格式

7.3.文件读写(一)

7.4.文件读写(二)

7.5.函数模板

7.6.类模板

7.类模板与派生、友元和静态成员变量

08

标准模板库STL(一)

8.1.string类

8.2.标准模板库STL概述(一)

8.3.标准模板库STL概述(二)

8.4.vector,deque和list

8.5.函数对象

09

标准模板库STL(二)

9.1.set和multiset

9.2.map和multimap

9.3.容器适配器

9.4.STL算法(一)

9.5.STL算法(二)

10

C++11新特性和C++高级主题

10.1.C++11新特性(1)

10.2.C++11新特性(2)

10.3.强制类型转换

10.4.异常处理

预备知识

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

证书要求

为积极响应国家低碳环保政策,2021年秋季学期开始,中国大学MOOC平台将取消纸质版的认证证书,仅提供电子版的认证证书服务,证书申请方式和流程不变。

认证证书申请注意事项:

2.完成实名认证并支付后,系统将自动生成并发送电子版认证证书。电子版认证证书生成后不支持退费。

参考资料

清华大学出版社《新标准C++程序设计教程》,郭炜编著(适用于零基础学习者)

常见问题

答:这门课的老师不但在北京大学讲授C++程序设计十五年,深受学生欢迎,还用C++开发了多款商业软件,不但有丰富的教学经验,还有丰富的实际开发经验。因此教学更加贴近实践。

本课程一切围绕着能写程序这个目标来教学,绝不纠缠语法细节。作业全部都是在北京大学在线程序评测平台提交的编程题,要求严格,切切实实地训练编程能力。还有一个大规模的面向对象编程作业《魔兽世界》,充分体现面向对象编程的方法。

2.我可以零基础学这门课吗?

答:不可以。必须先掌握C语言。如果您零基础,请先学习《程序设计与算法(一)C语言》

THE END
1.从啥也不会的小白,如何成为合格的算法工程师?算法工程师并且这块也不是重点,框架不会学起来也很快,基础扎实几天就可以有模有样。 所以作为初学者,如果决心做推荐、广告等领域的算法工程师的话,甚至可以连卷积神经网络都不用了解(我甚至没在工作中见过卷积)。把时间省下来去读一些业内的paper,以及做一些比赛练练手,得到的效果会更好。 4、数据处理 很多人在介绍算法https://aiqicha.baidu.com/qifuknowledge/detail?id=10100085880
2.入门必看算法基础知识讲解小白都也能看得懂上一节中提到:算法就是解决某个或者某类问题的办法,但是,这只是对算法的一个笼统的描述。一个真正的算法,包含以下5大特性:输入、输出、有穷性、确定性、可行性。 输入输出:算法具有零个或者多个输入,至少一个或者多个输出。输入可以为零,但是必须存在输出,输出的形式可有为确定的返回值或者日志的的打印等,如果没https://blog.csdn.net/m0_63174618/article/details/138362160
3.零基础学算法(第3版)(戴艳著)高清pdf文字版[13MB]电子书下载零基础学算法(第3版)分为上、下两篇,共10章。上篇用5章的篇幅介绍了算法和数据结构的基础知识,包括基础算法思想、简单数据结构、复杂数据结构、排序和查找算法等内容;下篇用5章的篇幅介绍了用数据结构解决实际问题的相关程序,包括解决数学问题、数据结构问题、算法经典问题等内容以及信息学奥赛部分试题的程序,最后一https://www.jb51.net/books/608081.html
4.零基础学习朴素贝叶斯算法朴素贝叶斯 (Naive Bayers) 是一种基于概率统计的分类方法,它在条件独立假设的基础上,使用贝叶斯定理构建算法,在文本处理领域有广泛的应用。 1 算法原理 要讲清楚算法原理,我们需要先搞清楚贝叶斯定理,它是一个条件概率公式。 1.1 贝叶斯定理 我们来看一下维基百科上一个有意思的例子。警察使用一个假冒伪劣的呼气测https://www.jianshu.com/p/03409af82f99
5.《零基础学机器学习》(黄佳)简介书评在线阅读零基础学机器学习 人工智能教程籍,深入浅出神经网络与深度学习入门,基于python框架算法,机器学习入门小白书,与小冰一起课堂培训丰富的实战案例赠送全书实例源代码、案例数据集。 作者:黄佳出版社:人民邮电出版社出版时间:2020年12月 手机专享价 ¥ 当当价降价通知http://product.dangdang.com/29159728.html
6.吴师兄学算法五分钟学算法吴师兄学算法(www.cxyxiaowu.com)提供许多数据结构与算法学习的基础知识, 涵盖 LeetCode 题解、剑指 Offer 题解、数据结构等内容。https://www.cxyxiaowu.com/
7.零基础学机器学习.pdf黄佳2020年版人民邮电出版社如果你是后者,《零基础学机器学习》是一种轻松打开?AI?世界的方式。—壹心理创始人?黄伟强20年前,黄佳是我算法课上的高才生。廿载光阴荏苒,如白驹过隙。他在国外多年,现在已是世界知名公司的高级顾问。欣闻他在繁忙工作之余,还创作了如此优秀的机器学习书。愿黄佳的新书把更多读者引入人工智能领域,也衷心https://max.book118.com/html/2021/0507/8022027061003100.shtm
8.从零开始:机器学习的数学原理和算法实践本书从数学基础知识入手,通过前3章的介绍,帮助读者轻松复习机器学习涉及的数学知识;然后,通过第4~第13章的介绍,逐步讲解机器学习常见算法的相关知识,帮助读者快速入门机器学习;最后,通过第14章的综合实践,帮助读者回顾本书内容,进一步巩固所学知识。 本书适合对机器学习感兴趣但数学基础比较薄弱的读者学习,也适合作为https://www.epubit.com/bookDetails?id=UB77b8ad3a2522b
9.零基础学机器学习.pptx零基础学机器学习读书笔记01思维导图精彩摘录目录分析内容摘要阅读感受作者简介目录0305020406思维导图学习机器学习机器零基础读者介绍算法这些可以知识了解应用python基本概念进行非常编程一些本书关键字分析思维导图内容摘要内容摘要《零基础学机器学习》是一本为初学者设计的机器学习入门指南。这本书的内容涵盖了机器学习的https://www.renrendoc.com/paper/303555094.html
10.Python零基础到入门Python基础语法篇——运算符学习本文章是【Python零基础到入门专栏】学习的系列文章 Python专栏 传送门 在此:https://blog.csdn.net/zhangay1998/category_11086734.html 本篇文章来说一下Python运算符,也是Python之路上一个必备的操作~ 提示:本文的环境配置是Python3的开发环境,后续教程也都是Python3 https://cloud.tencent.com/developer/article/1979574
11.学习C语言必看的6本书籍2、《零基础学C语言》 第3版 中丨康莉、李宽 编辑推荐丨这本书非常适合无C语言基础或基础薄弱的程序员阅读,并可作为开发人员的参考手册。 内容简介丨这本书循序渐进地讲述了C语言的语法规则和编程思想,从基本概念到具体实践、从入门知识到高阶主题、从语法语义到数据结构和算法都进行了详细的阐述。 http://mip.yuwenmi.com/lizhi/shuji/444353.html
12.不花一分钱自学算法刷题经验(零基础版)适合的人群:纯小白零基础、中文选手、不想花钱、准备笔面试中、有一些自制力+信息收集能力+知识总结能力 不适合的人群: 直接转行找工作:仅做算法学习经验分享,如果转行找工作需要有项目经历,更推荐去了解培训班课程(如果想去重点考查算法的某个著名外包厂,可以按此教程,因为python语法偏简单) 其他语言选手:实际找工作https://www.douban.com/group/topic/294208572/
13.零基雌普:4种简单推荐算法背后的原理大数据平台只是提供了数据获取、存储、计算、应用的技术方案,真正挖掘这些数据之间的关系让数据发挥价值的是各种机器学习算法。在这些算法中,最常见的当属智能推荐算法了。 本文转载自微信公众号「大数据DT」,作者李智慧。转载本文请联系大数据DT公众号。 大数据平台只是提供了数据获取、存储、计算、应用的技术方案,真正挖https://www.51cto.com/article/664660.html
14.详细的「算法与数据结构」基础讲解教程,从零基椽始学习算法「算法通关手册」:超详细的「算法与数据结构」基础讲解教程,从零基础开始学习算法知识,850+ 道「LeetCode 题目」详细解析,200 道「大厂面试热门题目」。 - itcharge/LeetCode-Pyhttps://github.com/itcharge/LeetCode-Py
15.从零开始学算法(基于Python)最新章节李峰著(6)立方阶O(n3):有了平方阶的基础,立方阶O(n3)就更容易理解了,三维数组的遍历的时间复杂度就是O(n3),如下代码表示一个三维数组所有元素求和,时间复杂度是O(n3)。 如果算法的复杂度超过了立方阶,那么在数据量很大的情况下,这个时间复杂度是不可忍受的。 https://m.zhangyue.com/readbook/12675722/8.html