程序设计与算法(三)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.线上算法在计算机科学中,线上算法(也叫在线算法)是能够以串行方式逐个处理其输入的算法,即按照输入被馈送到算法的顺序,而不是从一开始就可获得整个输入。相反,离线算法从一开始就给出了整个问题数据,并且需要输出解决手头问题的答案。 在运筹学中,开发在线算法的领域称为在线优化。定义 因为它不知道整个输入,所以在线https://baike.baidu.com/item/%E7%BA%BF%E4%B8%8A%E7%AE%97%E6%B3%95/22787468
2.在线算法与离线算法在线算法离线算法在线算法是指它可以以序列化的方式一个个的处理输入,也就是说在开始时并不需要已经知道所有的输入。 举例 插入排序感知器贪心算法等 离线算法 定义 离线算法( off line algorithms),是指基于在执行算法前输入数据已知的基本假设,也就是说,对于一个离线算法,在开始时就需要知道问题的所有输入数据,而且在解决一个问https://blog.csdn.net/T_Y_F_/article/details/125010251
3.在线编程语言深度研究探索其应用优势与挑战这个标题涵盖了编程随着互联网的普及,在线编程语言成为了一种便捷、高效的学习和开发工具。本文将深入探索在线编程语言的应用、优势以及面临的挑战,帮助读者全面了解这一领域的发展状况。 一、在线编程语言的应用 在线编程语言为程序员提供了一个无需安装、随时可用的编程环境。用户可以通过浏览器访问在线编程平台,进行代码编写、调试和部署https://my.oschina.net/emacs_7610500/blog/14071106
4.线上学编程的学费一般是多少火星时代的编程课程是一个不错的选择。首先,火星时代的编程课程包含了基础编程语言、编程思想和逻辑、编程工具和技术、数据结构和算法等知识,以及各种应用场景和实战案例,是非常全面的,其次,他们会根据学员的水平和需求提供个性化的学习方案,帮助学员更好地适应未来的职业发展需求,再有,还提供了实时互动、在线答疑等服务https://www.hxsd.com/content/32156/
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.算法笔试模拟题精解之“数组染色”算法笔试模拟题精解之“数组染色” 简介:可以采用链表的思想,定义一个数组temp来存放每个递增的子串,题目需要求出最少的递增子串有多少个,采取的思路是递增的子串越密集越好。 在线编程介绍 阿里云开发者社区在线编程产品,针对广大开发者学习、实践、面试、应聘、考试认证等打造的免费在线刷题神器。题库来自笔试模拟题https://developer.aliyun.com/article/755806
7.计算科学:什么是算法?如何编写代码算法?“算法”这个词今天在计算机科学和编程方面被大量提起 – 但算法到底是什么? 在本文中,我们将研究算法,学习如何创建它们,并讨论算法在现实生活中的使用。 一、什么是算法? 简而言之,算法是用于解决特定问题的一组步骤。 虽然算法经常出现在计算机科学或编码环境中,但算法可以像制作花生酱和果冻三明治的过程一样简单。https://kidscodes.cn/9038.html
8.算法设计与分析第2版李春葆PDF下载Java知识分享网1.6在线编程题/ 第2章递归算法设计技术/ 2.1什么是递归/ 2.1.1递归的定义/ 2.1.2何时使用递归/ 2.1.3递归模型/ 2.1.4递归算法的执行过程/ 2.2递归算法设计/ 2.2.1递归与数学归纳法/ 2.2.2递归算法设计的一般步骤/ 2.2.3递归数据结构及其递归算法设计/ 2.2.4基于归纳思想的递归算法设计/ 2.3递归算法设计示例http://java1234.com/a/javabook/javabase/2022/0303/21906.html
9.怎么使用ai人工智能?什么是AI人工智能写作? AI人工智能写作是指利用人工智能技术来生成和改进文本内容的过程。通过使用自然语言处理(NLP)和机器学习算法,AI写作工具可以模拟人类的写作风格和语言表达能力,并生成高质量的文章、博客、新闻稿等。AI人工智能写作在线使用使得写作者能够更快速地完成内容创作,并且可以根据需求进行定制化的写作。 https://tool.a5.cn/article/show/81407.html
10.C程序设计MOOC中国学习编程包括语言工具、问题求解、实现方法、算法思想、编程抽象、编程范式、设计模式等内容,涉及算法设计、程序实现、计算科学、软件工程、系统开发、学科交叉等方面。本质上,程序是逻辑演绎的形式化表达,反映的是人类对这个世界的数字化理解。因此,提高编程能力可从两点出发:一是以思维训练为中心的编程技能,二是以学科https://www.mooc.cn/course/8804.html
11.单片机原理及应用教程第4版第1章单片机应用基础概述在线免费当PC运行单片机等微处理器开发环境软件时,可以通过PC方便地实现对单片机等微处理器芯片的编程、编译、代码下载及调试,这时的PC通常称为上位机。PC作为上位机与单片机开发板通信如图1-4所示。 图1-4 PC与单片机通信连接 1.2 数制与编码 在计算机中,任何命令和信息都是以二进制数据的形式存储的。计算机所执行的全部操https://fanqienovel.com/reader/7110144623195982860
12.生物信息学简史1970年,Needleman和Wunsch 开发了第一个成对蛋白质序列比对的动态编程算法,80年代早期,做为Needleman-Wunsch算法的推广,第一个多序列比对(MSA)算法首次公布,但是这个算法并没有太大的价值。 多序列比对第一个真正成熟的算法由Da-Fei Feng和Russell F. Doolitle于1987年开发,流行的MSA软件 CLUSTAL 开发于1988年,作为https://www.biowolf.cn/m/view.php?aid=372
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.小知识:什么是「欧几里得算法」腾讯云开发者社区小知识:什么是「欧几里得算法」 问题导入 12 和 18 的最大公约数是多少? 最大公约数:最大公约数,也称最大公因数、最大公因子,指两个或多个整数共有约数中最大的一个。例如:18 与 12 的最大公约数为 6 。 短除法 短除法是求最大公因数的一种方法:先把每个数的因数找出来,然后再找出公因数,最后在https://cloud.tencent.com/developer/article/1428653
15.力扣(LeetCode)全球极客挚爱的技术成长平台海量技术面试题库,拥有算法、数据结构、系统设计等 1000+题目,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode-cn.com/
16.济南小码王C++程序算法济南小码王编程教学 济南小码王前台 济南小码王精选课程 少儿编程 275人已关注 C++程序算法编程课程 校区1¥咨询 267人已关注 Python程序开发课程 校区1¥咨询 276人已关注 Scratch学科编程课程 校区1¥咨询 查看更多>> 济南小码王优势更多> 济南小码王是一家专业的少儿编程培训机构,为贯彻落实中小学编程普及教育,开设的https://www.baijiao.org/school/jinanxiaomawang/
17.赛氪OJ专注于算法竞赛的在线评测系统 为编程爱好者提供专业的算法训练平台 开始刷题参加比赛查看排名 功能特色 智能评测系统 强大的评测引擎支持多种编程语言,毫秒级响应 支持C/C++、Java、Python 等多种语言 实时评测反馈 详细的错误分析 智能判题系统 开始刷题 https://oj.saikr.com/
18.在线算法竞赛上海市青少年算法竞赛YACSnewcode分甲乙丙三组比赛,可以针对性练习,增强编程能力 相关介绍 全国青少年机器人技术等级考试介绍 蓝桥杯大赛青少年组考试介绍 STEMA 蓝桥青少年信息技术等级考试 电子学会C语言等级考试 在线算法竞赛-上海市青少年算法竞赛-YACS 在线算法竞赛-USACO详细介绍! CSP非专业级别的能力认证 https://www.cnblogs.com/myeln/articles/15895970.html
19.算法基础与在线实践带目录完整pdf[31MB]电子书下载算法基础与在线实践下载 投诉报错 书籍大小:31.2MB 书籍语言:简体中文 书籍类型:国产软件 书籍授权:免费软件 书籍类别:编程其它 应用平台:PDF 更新时间:2019-06-21 购买链接:京东异步社区 网友评分: 360通过腾讯通过金山通过 31.2MB 详情介绍 算法是程序设计的灵魂,代表着用系统的方法描述解决问题的策略与机制。《算https://www.jb51.net/books/679145.html
20.牛客竞赛OJACM/NOI/CSP/CCPC/ICPC牛客竞赛是专业的编程算法训练平台,包括ACM校赛、ICPC、CCPC、CSP、信息学省选、NOI等编程比赛提高训练营。适合初级小白编程入门训练,包含CSP入门级提高级赛前集训、ACM区域赛前多校训练营。https://ac.nowcoder.com/acm/contest/vip-index
21.初九编程–STEAM编程教学平台–在线初九编程SaaS技术服务商初九编程 - 在线初九编程SaaS技术服务商 - STEAM编程教学平台 - 初九编程加盟 - Scratch二次开发 - Python二次开发 - 软件开发 - 菏泽初九信息科技有限公司https://www.codejiu.com/
22.推荐8个程序员在线编程神器!51CTO博客我知道对于一个新手来说,可能配运行环境要比上手写代码要难受的多。所以我就抽时间整了一些在线编程测试的网站,虽然推荐了这些网站,但是还是推荐大家平时写代码的时候在本地用IDE写。 这篇文章的意义在于: 工作或者考研的时候,针对特定的算法题在网站上练习; https://blog.51cto.com/u_15671528/5530987
23.信息与计算科学专业解读信息与计算科学专业需要学生热爱思考,喜欢数学,特别是对运用数学解决实际问题感兴趣。同时,这个专业对学生的计算数学理论、数值分析、算法编程和信息数据处理都有要求。 信息与计算科学属于数学类专业,热爱数学是最重要的要求,毕竟这个专业的大部分课程都是以数学理论和知识为主的,除了数学以外的其他课程则是计算机相关课程https://gaokao.chsi.com.cn/zyk/zybk/zyjd/viewPage/uuyy97wfxgponupu