程序设计与算法(三)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.编程的50种基础算法代码,编程常用算法有哪些编程必背50个代码编程的50种基础算法代码,编程常用算法有哪些 1、哈希表(散列表) hash_map基于hash table(哈希表)。哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间;而代价仅仅是消耗比较多的内存。然而在当前可利用内存越来越多的情况下,用空间换时间的做法是值得的。另外,编码比较容易也是https://blog.csdn.net/s13166803785/article/details/128095489
2.编程的50种基础算法编程是现代社会中一项非常重要的技能。无论是在科技行业,金融领域,还是其他各个行业中,编程都扮演着关键的角色。而算法则是编程的基础,是解决问题的关键步骤。在本文中,我们将介绍50种基础算法代码,帮助读者更好地理解和应用这些算法。编程的50种基础算法 1. 二分查找算法:用于在有序数组中查找特定元素的算法https://baijiahao.baidu.com/s?id=1781505364709418582&wfr=spider&for=pc
3.28个不得不看的经典编程算法发起人的描述:《来自圣经的证明》收集了数十个简洁而优雅的数学证明,迅速赢得了大批数学爱好者的追捧。如果还有一本《来自圣经的算法》,哪些算法会列入其中呢? ***名:Union-find 严格地说,并查集是一种数据结构,它专门用来处理集合的合并操作和查询操作。并查集巧妙地借用了树结构,使得编程复杂度降低到了令人难以置https://mobile.51cto.com/news-455988.htm
4.游戏编程算法与技巧带目录完整pdf[41MB]电子书下载游戏编程算法与技巧 带目录完整pdf[41MB] 游戏编程算法与技巧下载投诉报错 书籍大小:41.2MB 书籍语言:简体中文 书籍类型:国产软件 书籍授权:免费软件 书籍类别:编程其它 应用平台:PDF 更新时间:2018-08-15 购买链接: 京东 异步社区 网友评分: 360通过 腾讯通过 金山通过 41.2MB https://www.jb51.net/books/631728.html
5.编程的32个算法澄心元素编程的32个算法 1.A* 搜索算法——图形搜索算法,从给定起点到给定终点计算出路径。其中使用了一种启发式的估算,为每个节点估算通过该节点的最佳路径,并以之为各个地点排定次序。算法以得到的次序访问这些节点。因此,A*搜索算法是最佳优先搜索的范例。 Graph search algorithm that finds a path from a given https://www.cnblogs.com/cxys85/p/10052476.html
6.编程之算法时间复杂度这种方法可行,但不是一个好的方法。该方法有两个缺陷:一是要想对设计的算法的运行性能进行评测,必须先依据算法编制相应的程序并实际运行;二是所得时间的统计量依赖于计算机的硬件、软件等环境因素,有时容易掩盖算法本身的优势。 事前分析估算的方法 因事后统计方法更多的依赖于计算机的硬件、软件等环境因素,有时容易https://www.jianshu.com/p/89f4f0831d6c
7.Scratch编程算法ppt教学课件(共9份)Scratch编程-算法ppt教学课件(共9份) 2024/1/3 13:33:39 发布浏览量:344下载量:1 更多 版权异议挑错建议 共149页 第1课:赋值与四则运算 学习大纲 第一章 学习目标 第二章 编码实现 第三章 每课一练 第四章 总结拓展 编程 CONTENTS 第五节 创新作业 2 1、学习目标 项目演示 知识点 1 如何在scratchhttps://www.zxxk.com/soft/42654805.html
8.牛客网在线编程算法笔试牛客网在线编程算法笔试-笔试必刷TOP101提供超多数据结构,系统设计,编程学习,练习题等,为技术求职者提供能力提升解决方案,同时为企业级用户提供更高效的招聘解决方案,帮助求职者与企业搭建人才招募和人才培养渠道https://www.nowcoder.com/link/pc_csdncpt_tzdxlm_sf
9.网络工程专业人才培养方案(2022)3. 工程基础知识。掌握从事网络工程专业所需的数字电路与逻辑设计、计算机组成原理、程序设计、算法与数据结构、软件工程概论、数据库原理与技术等基础知识。 4. 网络工程专业知识。掌握从事网络工程专业所需的计算机网络原理与技术、操作系统、信息安全导论、物联网技术基础、网络安全技术、网络互连技术、无线网络技术、网https://www.csust.edu.cn/jtxy/info/1148/20900.htm
10.程序员应该如何学习算法?第一阶段:基于语言去学习数据结构 首先从最熟悉的编程语言入手,推荐Java或C++,去初窥算法。所谓初窥算法https://www.zhihu.com/question/19981544/answer/404479684
11.编程开发问答编程开发问答栏目主要提供以下内容:1.编程技术问题答疑,如语法、算法、框架、库等方面的问题解答。2.开发工具使用问题解决,如IDE、代码编辑器、版本控制工具等。3.项目开发过程中遇到的问题解答,如代码调试、测试、优化等。https://www.yutu.cn/soft/tag_15740.html
12.算法I~IV(C++实现)――基础数据结构排序和搜索(第三版)(豆瓣)Robert Sedgewick完全重写了他的著作,对它进行了充分的扩展和更新,涵盖了目前重要的算法和数据结构。Christopher Van Wyk和Sedgewick开发的新实现采用的是C++语言,这种实现不仅能够直接地表达算法,而且给编程者提供了实践的方法,以便在真正的应用中测试这些算法。 新的版本提供了很多新算法,而且对每个算法的解释也比以前的https://book.douban.com/subject/1143801/
13.码农的数学和算法入门腾讯云开发者社区一流程序员靠数学,二流靠算法,三流靠逻辑,四流靠SDK,五流靠Google和StackOverFlow,六流靠百度和CSDN。 虽然是段子,但其实也挺写实的,因为你打开各大招聘网站,会发现越是高薪的IT岗位,对数学的要求越高。其实,我曾经也不太明白数学为什么对程序员很重要,不明白为什么在大学里初入编程之门时,老师却要求你去看《https://cloud.tencent.com/developer/article/1821198