清华大学视频课件:面向对象程序设计(C++)(自主模式)

清华大学视频课件:面向对象程序设计(C++)(自主模式)

课程简介

C++是从C语言发展演变而来的一种面向对象的程序设计语言。面向对象的程序设计方法将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体——对象。对同类型对象抽象出其共性,形成类。类通过外部接口,与外界发生关系,对象与对象之间通过消息进行通讯。这样,程序模块间的关系简单,程序模块的独立性、数据的安全性具有良好的保障,通过继承与多态性,使程序具有很高的可重用性,使得软件的开发和维护都更为方便。
由于面向对象方法的突出优点,目前它已经成为开发大型软件时所采用的主要方法。而C++语言是应用最广泛的面向对象的程序设计语言之一。
本课程是一门面向广大初学者的入门课程,自1999年开始在清华大学开设,本课程的教材已经在清华大学等一百多所学校的不同专业中使用,取得了良好的教学效果。
本课程将C++语言作为大学生的计算机编程入门语言,不仅详细介绍语言本身,而且介绍常用的数据结构和算法、面向对象的设计思想和编程方法。课程以面向对象的程序设计方法贯穿始终,每一章都是首先阐述面向对象的程序设计思想和方法,由实际问题入手,然后引出必要的语法知识,在讲解语法时着重从程序设计方法学的角度讲述其意义和用途。
本课程是清华校内同名课程的完整版,内容全面,难度适中,包括了ISO第三版C++标准(C++11)的新内容。

徐明星,博士,副教授。国家级精品课程“程序设计基础”课程负责人、国家级精品资源共享课“计算机语言与程序设计”建设负责人。主讲《程序设计基础》、《面向对象程序设计基础》、《信号处理原理》等计算机专业基础课程。作为主要成员参与编写的《程序设计基础(第3版)》(清华大学出版社出版)评为普通高等教育“十二五”规划教材。曾获北京市高等教育教学优秀成果一等奖、清华大学青年教师教学优秀奖、清华大学清韵烛光“学生最喜爱的老师”称号。主要研究兴趣包括:语音识别与理解、情感计算和跨媒体计算等。目前,作为项目负责人承担国家自然科学基金面上项目1项;作为项目骨干或子课题负责人参与国家973项目1项、自然科学基金重点项目1项、社会科学基金重点项目1项、863项目1项。

课程章节

直接点击博客网页连接就可以进入下载页面,点击后可能会多次弹出广告页面,请量解,点击普通下载。点击普通下载。

将网址复制粘贴到浏览器地址栏,点击后可能会有广告,请量解,点击普通下载。

http://it-trump.lofter.com/

http://itmooc.blog.163.com/

第一讲 课程简介与编程环境

1.0 课程定位、教学内容  https://u7765370.pipipan.com/fs/7765370-228351118

1.1.1 程序结构与编译链接  https://u7765370.pipipan.com/fs/7765370-228351663

1.1.2 源程序拆分  https://u7765370.pipipan.com/fs/7765370-228352041

1.1.3 多文件编译链接的方法  https://u7765370.pipipan.com/fs/7765370-228353368

1.2 main函数的命令行参数  https://u7765370.pipipan.com/fs/7765370-228354105

作业一   https://u7765370.pipipan.com/fs/7765370-228485605

第二讲 基础语法(1)

2.1 变量定义  https://u7765370.pipipan.com/fs/7765370-228355259

2.2 变量的初始化、类型推导与基于范围的循环   https://u7765370.pipipan.com/fs/7765370-228356551

2.3 函数重载  https://u7765370.pipipan.com/fs/7765370-228357250

2.4 函数参数的缺省值与追踪返回类型的函数  https://u7765370.pipipan.com/fs/7765370-228359875

2.5 类的定义  https://u7765370.pipipan.com/fs/7765370-228360654

2.6 类成员的访问权限与友元   https://u7765370.pipipan.com/fs/7765370-228361227

作业二   https://u7765370.pipipan.com/fs/7765370-228486428

第三讲 基础语法(2)

3.1 构造函数析构函数  https://u7765370.pipipan.com/fs/7765370-228362750

3.2 赋值运算符重载   https://u7765370.pipipan.com/fs/7765370-228363683

3.3 流运算符重载   https://u7765370.pipipan.com/fs/7765370-228364764

3.4 函数运算符重载  https://u7765370.pipipan.com/fs/7765370-228365649

3.5 下标运算符与自增减运算符重载  https://u7765370.pipipan.com/fs/7765370-228366774

3.6 静态成员与常量成员  https://u7765370.pipipan.com/fs/7765370-228367793

3.7 对象组合  https://u7765370.pipipan.com/fs/7765370-228368302

3.8. 1移动构造函数  https://u7765370.pipipan.com/fs/7765370-228368964

3.8.2 移动构造函数  https://u7765370.pipipan.com/fs/7765370-228371021

3.9 default修饰符   https://u7765370.pipipan.com/fs/7765370-228371529

作业三  https://u7765370.pipipan.com/fs/7765370-228486779

第四讲 基础语法(3)

4.1 继承  https://u7765370.pipipan.com/fs/7765370-228373652

4.2 函数重写  https://u7765370.pipipan.com/fs/7765370-228381839

4.3.1 虚函数  https://u7765370.pipipan.com/fs/7765370-228386263

4.3.2 虚函数  https://u7765370.pipipan.com/fs/7765370-228387312

4.4 自动类型转换   https://u7765370.pipipan.com/fs/7765370-228493544

4.5 禁止自动类型转换  https://u7765370.pipipan.com/fs/7765370-228389611

4.6 强制类型转换   https://u7765370.pipipan.com/fs/7765370-228391146

4.7 函数模板   https://u7765370.pipipan.com/fs/7765370-228392318

4.8 类模板   https://u7765370.pipipan.com/fs/7765370-228393693

4.9 成员函数模板  https://u7765370.pipipan.com/fs/7765370-228394650

4.10 模板特化  https://u7765370.pipipan.com/fs/7765370-228377905

作业四  https://u7765370.pipipan.com/fs/7765370-228492195

第五讲 找到对象,确定接口

5.0 引言  https://u7765370.pipipan.com/fs/7765370-228396029

5.1 从FOP到OOP  https://u7765370.pipipan.com/fs/7765370-228396777

5.2 对象在哪里  https://u7765370.pipipan.com/fs/7765370-228397689

5.3 接口在哪儿  https://u7765370.pipipan.com/fs/7765370-228398076

5.4 实现接口  https://u7765370.pipipan.com/fs/7765370-228398545

5.5 变与不变:多态的威力  https://u7765370.pipipan.com/fs/7765370-228399521

5.x小结  https://u7765370.pipipan.com/fs/7765370-228493760

第六讲 算法横向拆分,分离步骤

6.0 引言  https://u7765370.pipipan.com/fs/7765370-228417067

6.1 从负载监视器的设计开始  https://u7765370.pipipan.com/fs/7765370-228417107

6.2 接口的分离与单一责任原则  https://u7765370.pipipan.com/fs/7765370-228417219

6.3 委托与接口的进一步分解   https://u7765370.pipipan.com/fs/7765370-228417271

6.4 分离不同层面的可变性  https://u7765370.pipipan.com/fs/7765370-228417372

6.X 小结  https://u7765370.pipipan.com/fs/7765370-228494837

第七讲 算法纵向拆分,分离表示

7.0 引言  https://u7765370.pipipan.com/fs/7765370-228417409

7.1 迭代器  https://u7765370.pipipan.com/fs/7765370-228417459

7.2 迭代器的实现  https://u7765370.pipipan.com/fs/7765370-228417497

7.3 迭代器与模板  https://u7765370.pipipan.com/fs/7765370-228417578

7.4 算法与数据的解耦  https://u7765370.pipipan.com/fs/7765370-228417659

7.5 抽象结构与类模板  https://u7765370.pipipan.com/fs/7765370-228417725

7.6 函数对象与算法分解  https://u7765370.pipipan.com/fs/7765370-228417805

7.7 基于模板的策略模式  https://u7765370.pipipan.com/fs/7765370-228417844

7.X 小结  https://u7765370.pipipan.com/fs/7765370-228495204

第八讲 基于接口组合,应对复杂变化

8.0 引言  https://u7765370.pipipan.com/fs/7765370-228417922

8.1 已有资源的组合  https://u7765370.pipipan.com/fs/7765370-228418163

8.2 适当引入接口  https://u7765370.pipipan.com/fs/7765370-228418518

8.3 接口不变时的功能变化  https://u7765370.pipipan.com/fs/7765370-228418941

8.4 装饰  https://u7765370.pipipan.com/fs/7765370-228420942

8.5 责任的传递与责任链  https://u7765370.pipipan.com/fs/7765370-228422756

8.X 小结   https://u7765370.pipipan.com/fs/7765370-228425751

第九讲 增加抽象层级,隔离复杂变化

9.0 引言  https://u7765370.pipipan.com/fs/7765370-228426223

9.1 通过封装增加隔离、应对变化  https://u7765370.pipipan.com/fs/7765370-228426984

9.1.1 通过封装增加隔离、应对变化   https://u7765370.pipipan.com/fs/7765370-228427938

9.2.1 增加抽象层,应对变化  https://u7765370.pipipan.com/fs/7765370-228429881

9.2.2 增加抽象层,应对变化  https://u7765370.pipipan.com/fs/7765370-228433060

9.3 相互关联对象的创建  https://u7765370.pipipan.com/fs/7765370-228439558

9.4 示例:自动组卷系统设计  https://u7765370.pipipan.com/fs/7765370-228441274

9.5 设计思路(上) https://u7765370.pipipan.com/fs/7765370-228448170

9.6 设计思路(中) https://u7765370.pipipan.com/fs/7765370-228450593

9.7 设计思路(下) https://u7765370.pipipan.com/fs/7765370-228454583

9.X 小结  https://u7765370.pipipan.com/fs/7765370-228458890

课程总结  https://u7765370.pipipan.com/fs/7765370-228471533

QQ:2774494285 。

时间: 2024-10-14 13:47:57

清华大学视频课件:面向对象程序设计(C++)(自主模式)的相关文章

清华大学视频课件:基于Linux的C++(自主模式)

基于Linux的C++(自主模式) 课程简介 Linux操作系统开源的特性使得其获得越来越重要的地位,而Linux系统编程也向C++程序设计者提出了更高的要求.本课程由C/C++语言的共性与特性出发,在深入学习程序设计语言的基础上,进一步强调程序设计语言的适用性,并与Linux系统编程紧密结合,通过大力培养学习者的抽象思维能力和计算思维能力,将学习者对语言作为工具的基本认知转化为动手实践能力,完成从具象到抽象再到具象的思维能力转变.课程内容主要涵盖C++程序设计基本概念.数据组织与算法设计.程序

4.4 类的方法(Methods)- 摘自 《SAP ABAP面向对象程序设计:原则、模式及实践》

<SAP ABAP面向对象程序设计:原则.模式及实践> https://book.douban.com/subject/30317853/ http://www.duokan.com/shop/tbt/book/179473 https://item.jd.com/12423999.html https://e.jd.com/30429611.html 4.4 类的方法(Methods) 类的方法(Methods),指明类具有的功能.数据和服务包成了一个整体,能够有一系列的行为和动作. 类的方

5.4 SAP ABAP 面向对象概念 - 多态 - 摘自 《SAP ABAP面向对象程序设计:原则、模式及实践》

<SAP ABAP面向对象程序设计:原则.模式及实践> https://book.douban.com/subject/30317853/ http://www.duokan.com/shop/tbt/book/179473 https://item.jd.com/12423999.html https://e.jd.com/30429611.html 5.4 多态 5.4.1 多态的概述 多态是一个生物学和化学中的专有名词,被面计算机科学家引用到面向对象的程序设计中. 我们用柯林斯英语词典看

设计模式李建忠(面向对象程序设计部分)

面向对象 面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流.面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围.如数据库系统.交互式界面.应用结构.应用平台.分布式系统.网络管理结构.CAD技术.人工智能等领域.       谈到面向对象,这方面的文章非常多.但是,明确地给出对象的定义或说明对象的定义的非常少——至少我现在还没有发现.其初,“面向对象”是专指在程序设计中采用封装.继承.抽象等设计方法.可是,这个定义显然不能再适

2018面向对象程序设计(Java)第一周

2018面向对象程序设计(Java) 第1周学习指导及要求(2018.8.24-2018.9.2)   学习目标 了解课程上课方式及老师教学要求,掌握课程学习必要的软件工具: 简单了解Java特点及历史: 理解JVM.JRE与JDK等概念,学会下载.安装.测试JDK: 掌握PATH.CLASSPATH的系统变量作用并会设置: 掌握命令行编译并运行Java程序的步骤: 掌握Java Application 程序结构特点: 掌握JDK命令行方式下开发运行Java程序的步骤. 初步使用Elipse,学

2018面向对象程序设计(Java)第7周学习指导及要求

第7周学习指导及要求(2018.10.11-2018.10.14)   学习目标 深入理解OO程序设计的特征:继承.多态: 熟练掌握Java语言中基于类.继承技术构造程序的语法知识: 利用继承定义类设计程序,能够设计开发含有1个主类.2个以上用户自定义类的应用程序. 学习资源 1.教材第5章 2.第5章教学课件 3. corejava.zip 4. Eclipse简明教程.pdf 5. 实验七任务书 6.MOOC & 视频 浙江大学 翁恺老师:面向对象程序设计--java语言  第四周 学习任务

20182329 2019-2020-1 《数据结构与面向对象程序设计》第1周学习总结

20182329 2019-2020-1 <数据结构与面向对象程序设计>第1周学习总结 教材学习内容总结 git代码托管代码 Java的基本编程 jdb代码调试 教材学习中的问题和解决过程 问题1:在课本自学过程中,有一题是Java中有什么是不可能被识别的,我做错了一道(12345)可以被识别. 问题1解决方案:后来询问学长数字不与命令相匹配时不是有效的标识符,且标识符不能以数字为开头. 问题2:在自己对于课本代码编译时,发现自己main处显示错误 问题2解决方案:一开始我以为是我main的方

面向对象程序设计(JAVA) 第8周学习指导及要求

2019面向对象程序设计(Java)第8周学习指导及要求 (2019.10.18-2019.10.21)  学习目标 掌握接口定义方法: 掌握实现接口类的定义要求: 掌握实现了接口类的使用要求: 理解程序回调设计模式: 掌握Comparator接口用法: 掌握对象浅层拷贝与深层拷贝方法: 掌握Lambda表达式语法: 了解内部类的用途及语法要求. 学习资源 1.教材第6章 2.第6章教学课件 3. corejava.zip 4. Eclipse简明教程.pdf 5. 实验七任务书 6.MOOC

201871010123-吴丽丽 《面向对象程序设计(Java)》第八周学习总结

201871010123-吴丽丽<面向对象程序设计(Java)>第八周学习总结 项目 内容   这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/   这个作业要求在哪里  https://www.cnblogs.com/nwnu-daizh/p/11703678.html 作业的学习目标  掌握接口定义方法: 掌握实现接口类的定义要求: 掌握实现了接口类的使用要求: 理解程序回调设计模式: 掌握Comparator接口用法: 掌握对象浅层拷贝与深层拷贝