程序设计与算法(三)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.C++基础代码—20余种数据结构和算法的实现基本上可以分为两大类,一种是关于数据结构和算法的(例如:RBtree,stack),另一种是关于C++语言本身层面的(例如:reference_count,Uncopyable)。这些类,可以在如今C++标准库或者其它C++库(如:boost)中找到类似的实现,实现它们的目的不是想自己造轮子,而是通过实现,来深入的理解到一些更本质的东西。很多时候,人们往往“http://help.louzhutie.cn/?developer/article/2477584
2.C++中各类常用算法的总结以及使用c++算法C++的std::for_each算法是标准库中的一个迭代器算法,它对容器或范围内的每个元素执行指定的操作。这个算法特别适用于你想要对容器内的每个元素应用同一个操作,但操作本身不需要积累结果(例如累加或查找最大值)的情形。std::for_each返回作用于每个元素的函数对象的副本。 https://blog.csdn.net/weixin_73497355/article/details/140331920
3.C++数据结构与算法的基础知识和经典算法汇总C语言终是到了标志着大二结束的期末考试了,对于《算法设计与分析》这门课,我需要总结一下学过的所有算法的思想以及老师补充的关于两个复杂度和递归的概念思想,以及更深层次的理解,比如用画图的方式表达出来,我觉得可以用博客记录总结一下,分享给大家,希望能有所帮助https://www.jb51.net/article/249531.htm
4.c++编程机器学习算法c++教程编程jkfox的技术博客c++编程机器学习算法 c++教程编程 1 C++初识 1.1 第一个C++程序 编写一个C++程序总共分为4个步骤 创建项目 创建文件 编写代码 运行程序 1.1.1 创建项目 Visual Studio是我们用来编写C++程序的主要工具,我们将它打开,创建项目,创建空项目 1.1.2 创建文件https://blog.51cto.com/u_13479/6432108
5.没学过C语言可以学C语言数据结构与算法吗?首先有个东西你需要了解到,程序 = 算法 + 数据结构,无论我们是学Java、Python、PHP还是C语言,对数据结构都要有一定的了解,如今很多学编程的人,只注重语法上的使用,当然或多或少都有对数据结构有学习过的,而那些根本没学过数据结构的人呢?就只能强行去理解使用。其实数据结构是一门具有艺术性https://zhidao.baidu.com/question/66147385.html
6.C++后端开发学习路线(超级详细)支持后台开发的编程语言有很多,比如 Java、C/C++、GOlang、Python、PHP 等。每个公司都有自己主打的后台开发语言,比如腾讯和百度使用较多的是 C++,阿里和美团使用较多的是 Java。本节给大家介绍的 C/C++ 后台开发学习路线,只是众多后台开发技术体系中的一个。 https://www.bilibili.com/read/cv37615412/
7.编程竞赛宝典C++语言和算法入门希望本书的出版,能够给学有余力的中学生、计算机专业的大学生、程序算法爱好者以及IT行业从业者提供学习计算机科学的帮助。 张新华 2021年5月 第01章 C++语言入门 计算机编程语言能够实现人与计算机之间的沟通与交流,使计算机能够根据人编写的代码一步一步地工作,完成某些特定的任务。C++语言是使用最广泛的编程语言之一https://www.epubit.com/bookDetails?id=UB77a9ce8133887
8.支持C++,Java,Python,Go,JavaScript等多语言版本,从此算法学习《代码随想录》LeetCode 刷题攻略:200道经典题目刷题顺序,共60w字的详细图解,视频难点剖析,50余张思维导图,支持C++,Java,Python,Go,JavaScript等多语言版本,从此算法学习不再迷茫! 来看看,你会发现相见恨晚!https://gitee.com/yuandreams/leetcode-master
9.招聘航天科技集团一院期待你的加入澎湃号·媒体澎湃新闻(二)智能算法设计 岗位职责: 1. 负责博弈对抗、集群协同、深度强化学习、多智能体强化学习等技术方向的应用研究和开发工作; 2. 负责对业界经典智能算法进行本地化改造,实现在航天场景中转化应用; 3. 负责航天飞行器智能算法模型建模、训练、测试与集成。 https://www.thepaper.cn/newsDetail_forward_15833677
10.c语言算法培训班C++程序算法课程C++程序算法课程 中班详询 课程优势:以学生为主体、采用探究式的学习方式、个性化的学习目标和结果标准设置,赋予学生学习的自主性,辅以的课程设计和专业的授课过程 上课方式:面授 上课时段:全日制,白天班,晚班,周末班 ¥ 询价 预约试听 学习能力 设计 编程 https://www.qinxue365.com/course/648986.html
11.C++经典算法集锦一咋一看,我曹感觉复杂,没有关系我们先把第一个操作完成,后面就是递归调用这个操作,你懂的。好吧,接下来让我们徒手写快排吧,如果你能够随时随地写一个快排,那么你对算法应该也已经从入门到精通了。 voidquick_sort(inta[],intleft,intright){if(left>=right){return;}inti=left;intj=right;intkey=a[i];whilehttps://www.jianshu.com/p/35d34fa7eb43
12.深度学习基于web端和C++的两种深度学习模型部署方式深度学习 Author:louwill Machine Learning Lab 本文对深度学习两种模型部署方式进行总结和梳理。一种是基于web服务端的模型部署,一种是基于C++软件集成的方式进行部署。 基于web服务端的模型部署,主要是通过RESTAPI的形式来提供接口方便调用。而基于C++的深度学习模型部署,主要是通过深度学习框架的C++前端版本,将模型集成https://cloud.tencent.com/developer/article/1684510
13.Opencv(C++)学习系列Laplacian拉普拉斯边缘检测算法简介:Opencv(C++)学习系列---Laplacian拉普拉斯边缘检测算法 【1】算法简介 Laplacian(拉普拉斯)算子是一种二阶导数算子,其具有旋转不变性,可以满足不同方向的图像边缘锐化(边缘检测)的要求。通常情况下,其算子的系数之和需要为零。 Laplacian算子具有各方向同性的特点,能够对任意方向的边缘进行提取,具有无方向性的优点https://developer.aliyun.com/article/1461988
14.开立生物医疗科技(武汉)有限公司2024届春季校园招聘3、熟练掌握至少一种深度学习框架,熟练掌握python,c++。有高性能计算经验优先; 4、有医学图像处理背景优先,有超声/内窥镜图像处理背景优先。 工作职责: 1、医疗设备相关的人工智能算法研究; 2、根据产品形态设计开发智能功能、匹配软硬件环境优化部署模型; https://cqu.cqbys.com/campus/view/id/689831