程序设计与算法(三)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.编程的多种方式组成编程方式分为,编程方式的多样性,编程方式分类编程,作为现代科技的核心,已经渗透到我们生活的方方面面,无论是手机应用、网页游戏,还是大型的软件开发、人工智能算法,都离不开编程的支撑,编程方式多种多样,各有其特点和适用场景,本文将详细介绍编程的几种主要方式组成。 编程的基本方式 1、命令式编程 http://www.skypure.com.cn/post/32601.html
2.码农在线,编程领域的卓越交流与学习平台同创投资码农在线作为编程领域的卓越平台,为广大编程爱好者提供了丰富的学习资源和实践机会,在未来,码农在线将继续创新发展,为学习者提供更多优质资源和服务,助力编程爱好者实现职业梦想,让我们共同期待码农在线的未来发展,携手共创编程领域的美好未来。http://www.huayiii.com/post/15276.html
3.AI技术深度解析:从基础到应用的全面介绍要上手机器学习技术,首先需要了解相关的数学和编程基础。掌握线性代数、概率论和统计学等数学概念,以及熟悉Python等编程语言是必要的。接下来,可以学习机器学习的基础知识和常用算法,如线性回归、逻辑回归、支持向量机等。通过实践项目来应用所学知识,如构建简单的分类或回归模型,逐步提升自己的实践能力。此外,参加在线课程https://developer.aliyun.com/article/1645526
4.人工智能算法的分类与应用人工智能 (AI) 是当前科技领域的热门话题,其核心是各种算法的灵活运用。AI算法不仅实现了智能预测、分类,还在数据挖掘、自然语言处理和推荐系统等领域发挥着重要作用。接下来,我们将以科普的视角,带您深入了解 AI 的主要算法及其广泛应用。 一、监督学习 https://mp.weixin.qq.com/s?__biz=MzI3MzQ1NjMwOA==&mid=2247549220&idx=4&sn=25aa18da4b1e2824371e552b0ca3c8e6&chksm=eb214cffdc56c5e9303367ae4087102996613151dfa3c11fafe88950b683dbc8dadedd63bcaa&scene=27
5.在线算法竞赛始祖Topcoder国际编程比赛比赛流程Topcoder是一个知名的在线编程大赛平台,是在线算法学术活动的始祖,引入了颜色,Challenge,Virtual Participation,Room等概念,由Jack Hughes在2001年4月创立,后被Appirio和Wipro相继收购。 Topcoder起初为大学学生举办SRM(每场时长1.5小时的算法学术活动),后来在逐渐的发展下,平台在Topcoder挑战的基础上开始举办TCO(Topcodehttps://www.linstitute.net/archives/540611
6.数说好课CSC3100数据结构:编程与算法的实践之旅香港中文在2023年秋季学期,CSC3100教授团队邀请了一批拥有丰富编程竞赛经验的学生与USTF(本科生助教)团队合作,精选了100道来自USACO、Codeforces、洛谷等知名竞赛平台的高质量题目,涵盖堆栈、队列、树、图等课程核心概念。这些题目上传至学校的Online Judge (OJ)在线平台:http://oj.cuhk.edu.cn/,供全校学生随时访问和挑战。 https://sds.cuhk.edu.cn/article/1771
7.算法基础MOOC中国A: 不需要,是算法课,不是数学课。有高中数学知识足矣。 Q: 这门课的程序用什么语言编写? 学这门课是否一定要会C++? A: 课堂的例程都是用C++编写的,要看懂需要一定C++的知识。至于完成作业,用C, C++, Java,Pascal语言都可以。 Q: 还是不明白算法到底有什么用。会各种编程语言不就行了吗? https://www.mooc.cn/course/1516.html
8.怎么使用ai人工智能?什么是AI人工智能写作? AI人工智能写作是指利用人工智能技术来生成和改进文本内容的过程。通过使用自然语言处理(NLP)和机器学习算法,AI写作工具可以模拟人类的写作风格和语言表达能力,并生成高质量的文章、博客、新闻稿等。AI人工智能写作在线使用使得写作者能够更快速地完成内容创作,并且可以根据需求进行定制化的写作。 https://tool.a5.cn/article/show/81407.html
9.C#刷遍Leetcode面试题系列连载(1)入门与工具简介于是想进入上述大厂,定期做 LeetCode 题目很有必要。即使没打算进这些大厂,坚持做LeetCode,个人的算法水平、编程能力也会有较大提升。本文主要介绍 .NET 开发者如何入手刷 LeetCode 面试题。 刷LeetCode有哪些好处? 计算机中有很多抽象的数据结构,比如: List、Stack(栈)、Linked List(链表)、Hash Table(哈希表)、https://www.shangyexinzhi.com/article/258758.html
10.牛客网在线编程算法面试在线编程 搜索 牛客题霸-经典高频面试题库 01 链表 链表 BM1 反转链表 思路简单38.56% 视频题解 BM2 链表内指定区间反转 思路中等24.68% 视频题解 BM4 合并两个排序的链表 思路简单31.64% 视频题解 BM5 合并k个已排序的链表 思路较难31.24% 视频题解https://www.nowcoder.com/exam/oj
11.学堂在线《程序设计基础》习题.docx想预览更多内容,点击免费在线预览全文 免费在线预览全文 学堂在线《程序设计基础》习题(作业部分) 第一章编程初步--语法自测 单选题(1分) 若要使用数学函数,应该包含以下哪个头文件 cmath iostream memory stdio 正确答案:A 单选题(1分) 程序主函数的名字是 https://max.book118.com/html/2024/0102/7166043151006024.shtm
12.单片机原理及应用教程第4版第1章单片机应用基础概述在线免费当PC运行单片机等微处理器开发环境软件时,可以通过PC方便地实现对单片机等微处理器芯片的编程、编译、代码下载及调试,这时的PC通常称为上位机。PC作为上位机与单片机开发板通信如图1-4所示。 图1-4 PC与单片机通信连接 1.2 数制与编码 在计算机中,任何命令和信息都是以二进制数据的形式存储的。计算机所执行的全部操https://fanqienovel.com/reader/7110144623195982860
13.产品中心::SUPERPRO/IS01西尔特::SUPERPRO编程器烧录器IS01 是一款专业的多功能在线编程器/在线烧录器/在线烧写器,依托Xeltek强大的器件算法库,支持几乎各种串行协议的可编程器件;体积小、速度快、可靠性高,满足工业应用的长线驱动能力;DLL/API支持用户与ICT/ATE等设备集成,构成电路板ICT/ATE+ISP一体机或进行其他二次开发;通过USB2.0或ATE接口进行联机运行;借助SD卡、LCDhttps://www.xeltek-cn.com/in-system-programmers/advanced-isp-programmer-superpro-is01.html
14.少儿班少儿编程少儿编程在线教育数据分析编程 计算思维课 20节 C6 互联网应用编程 计算思维课 20节 C7 高级算法编程 上 计算思维课 20节 C8 高级算法编程 下 计算思维课 20节 C1| Python基础与智能硬件编程 上 PC编程与智能硬件编程相结合,让孩子扎扎实实打牢Python语言基础。 A+系列 https://www.ybccode.com/ybc-home
15.赛氪OJ专注于算法竞赛的在线评测系统 为编程爱好者提供专业的算法训练平台 开始刷题参加比赛查看排名 功能特色 智能评测系统 强大的评测引擎支持多种编程语言,毫秒级响应 支持C/C++、Java、Python 等多种语言 实时评测反馈 详细的错误分析 智能判题系统 开始刷题 https://oj.saikr.com/
16.CSDN据豆包大模型团队介绍,HybridFlow 采用混合编程模型,将单控制器的灵活性与多控制器的高效性相结合,解耦了控制流和计算流。基于 Ray 的分布式编程、动态计算图、异构调度能力,通过封装单模型的分布式计算、统一模型间的数据切分,以及支持异步 RL 控制流,HybridFlow 能够高效地实现和执行各种 RL 算法,复用计算模块和支持https://www.csdn.net/
17.小知识:什么是「欧几里得算法」腾讯云开发者社区小知识:什么是「欧几里得算法」 问题导入 12 和 18 的最大公约数是多少? 最大公约数:最大公约数,也称最大公因数、最大公因子,指两个或多个整数共有约数中最大的一个。例如:18 与 12 的最大公约数为 6 。 短除法 短除法是求最大公因数的一种方法:先把每个数的因数找出来,然后再找出公因数,最后在https://cloud.tencent.com/developer/article/1428653
18.初九编程–STEAM编程教学平台–在线初九编程SaaS技术服务商初九编程 - 在线初九编程SaaS技术服务商 - STEAM编程教学平台 - 初九编程加盟 - Scratch二次开发 - Python二次开发 - 软件开发 - 菏泽初九信息科技有限公司https://www.codejiu.com/
19.EA交易的自我优化:进化与遗传算法进化式计算构成了人工智能的一部分,当使用这种方法创建人工智能系统时,重点是基于它可能改变(进化)的规则建立初始化模型,同时,模型可以通过各种不同方法来创建,例如,可以通过神经网络或者设置一系列逻辑规则,退火,遗传算法,PSO, ACO, 以及与主进化方法相关的遗传编程。 与明确的数学编程方法不同,进化方法允许在合理时间https://www.mql5.com/zh/articles/2225