近期复习数据结构,由于很长一段时间没有写程序了,有点生疏,正好借此机会从头过一遍C++。
关于C++的复习,我想还是听网络课程的效率会高一些。特地在中国大学MOOC上找到了计算机程序设计(C++)这门课程,接下来我就按照这门课程的教学进度进行复习,关于这个课程涉及到的代码我都会在接下来的时间中做好汇总和实现,一方面作为代码的记录,一方面便于自己以后复习。
之后的博客会按照课程大纲进行代码上传,下面是这门课程的大纲。
本课程以C++语言为载体,讲授计算机程序设计,为更好地利用计算机解决工程实践、科学研究和日常生活中的问题打下基础。
从程序设计方法角度分,计算机语言有面向过程的和面向对象的。面向过程的思想是将任务分解成一系列的函数,函数通过相互调用联系起来完成任务。面向对象的思想是将任务分解成一系列对象,对象具有功能。对象间通过消息传递信息,触发事件,完成任务。面向对象的语言被认为具有更好的重用性、可维护性和可扩展性。C++是面向对象的语言。但也要注意,面向过程和面向对象不是截然分开的,不是对立的。面向过程是面向对象的基础。本课程前半部分的编程思想仍是面向过程的,这对初学者更容易入门;后半部分是面向对象的,为进一步学习奠定基础。
学习程序设计,要学习语言的语法,更重要的是求解问题的算法思想。语法的学习需要多尝试,算法的学习需要多思考。学习程序设计,就要多编程。
课程大纲:
第1周编程作业
1.1 程序设计和C++
1.2计算机语言的分类
1.3HelloWorld和编程环境
1.4程序错了怎么办
1.5实例:生日贺卡
1.6实例:加法计算器
1.7实例:计算存款本息
1.8C++程序的基本要素
本周课件和推荐阅读
第1周单元测试
2.1数据类型
2.2常量和变量
2.3算术运算和自增自减运算
2.4关系运算
2.5逻辑运算符
2.6位运算
2.7特殊运算符(赋值运算符、字节数运算符、条件运算符和逗号运算符)
2.8混合运算的类型转换
2.9实例:计算三角形的面积
2.10实例:构造5位数的反序数
2.11实例:加密解密
重点难点:整数、字符和字符串
重点难点:转义符
本周课件
小技巧:设置运行窗口颜色为白底黑字
第2周单元测试
第2周编程作业
第3周 运算的流程控制
3.1程序流程控制
3.2单路和双路分支
3.3多路分支
3.4已知次数循环
3.5已知条件循环
3.6实例:解一元二次方程
3.7实例:简单计算器
3.8实例:寻找自幂数
重要技巧:程序调试方法——加输出语句
重要技巧:程序调试方法——单步跟踪
本周课件
第3周单元测试
第3周编程作业
补充练习题
第1周补充练习
本单元没有教学内容,专门提供课外编程练习题,可以在线评测,开课期间不关闭,期末不计分(尽管有分值)。
第2周补充练习
第3周补充练习
第4周补充练习
第4周 复杂信息的表达与处理
4.1一维数组
4.2二维数组
4.3结构体
4.4枚举(实例三色球组合)
4.5实例:冒泡排序
4.6实例:文字信息统计
4.7实例:使用string字符串
4.8实例:矩阵乘法
4.9实例:取子字符串
4.10实例:词频统计
本周课件
第4周单元测试
第4周编程作业
第5周 问题的模块化求解
5.1 模块化程序设计
5.2 函数的定义
5.3 函数的声明
5.4 函数的调用格式
5.5 参数的传递方式
5.6 为形参指定默认值
5.7 数组名作为函数的参数
5.8 结构体变量作为函数的参数
5.9 实例讲解
第5周课件
第5周单元测试
第5周编程作业
第6周 问题的模块化求解(2)——特殊函数
6.1 递归函数
6.2 内联函数
6.3 函数重载
6.4 变量的作用域和存储类型
6.5实例讲解(Hanoi问题,Fibonacci序列递归求解,二分查找的递归实现,排序函数重载)
第6周课件及课程学习建议
补充——图解汉诺塔
第6周单元测试
第6周编程作业
第7周 按址操作(1)——指针、变量和函数
7.1 什么是指针
7.2指针和变量的关系
7.3指针作为函数的参数
7.4返回指针的函数
7.5指向函数的指针
7.6实例讲解(利用指针实现三个数的排序、返回字符指针的去掉字符串首部空格函数、通过指针同时返回圆的面积和周长(扩展-多功能函数)、通定积分函数)
第7周单元测试
第7周编程作业
第8周 按址操作(2)——指针与数组、字符串、结构体,动态数组
8.1数组与指针、指针的算术运算
8.2指针的关系运算、通过指针访问数组元素
8.3二维数组与指针
8.4指向一维数组指针(行指针)、字符串指针
8.5 字符指针应用、指针数组
8.6结构体与指针
8.7动态数组
8.8实例讲解(数组元素逆序(指针和动态数组实现)、字符串排序(指针和动态数组实现)、32位二进制IP地址转换为十进制点分IP地址(带合法性检验))
第8周单元测试
第8周编程作业
第9周 数据的抽象与封装——类与对象(1)
9.1 类的概念
9.2 类的定义
9.3对象的声明与使用
9.4 类的私有、公有与保护成员
9.5 日期类的设计
9.6 结构化和面向对象的程序设计思想
9.7 可鸣笛、运动和播放MP3的汽车类的设计
9.8 圆类的设计
9.9 实例讲解
第9周单元测试
第9周编程作业
第10周 数据的抽象和封装——类(2)——构造函数、析构函数和指向对象的指针
10.1 构造函数的定义
10.2 重载构造函数
10.3 析构函数的定义
10.4 实例:整数翻译函数
10.5 实例:实际意义的析构函数
10.6 实例:Person类的设计
10.7 对象与指针
10.8 this指针
10.9 实例讲解
10.10 难点解析1——this指针
第10周单元测试
第10周编程作业
第11周 取其精华 发挥优势——继承
11.1具有行走听说功能的“人”类的设计
11.2为什么需要继承
11.3派生类的定义
11.4基类与派生类
11.5继承方式
11.6派生类的构造函数与析构函数
11.7从点到圆再到圆柱体的派生类设计
11.8从U盘到MP3的派生类设计
11.9实例讲解
第11周单元测试
第11周编程作业
第12周 统一接口 不同实现——多态性
12.1多态的概念
12.2派生类对象替换基类对象
12.3虚函数
12.4抽象类
12.5运算符的重载
12.6实例1水果类与虚函数
12.7实例2日期类与比较运算符的重载
12.8实例3分数类与加减运算符的重载
12.9实例4数组类与插入运算符(<<)的重载< span="">
12.10补充内容:虚析构函数
12.11补充内容:浅拷贝和深拷贝
第12周单元测试
第12周编程作业
第13周 标准输入输出与文件操作
13.1流的概念和流类的结构
13.2标准输入流
13.3标准输出流
13.4文件操作基础
13.5文本文件读写
13.6二进制文件的读写
13.7文件操作实例(随机发牌、统计词频、MP3赋值、成绩管理)
13.8补充内容:const用法总结
第13周单元测试
第13周编程作业
第14周 模板和标准模板库简介
14.1 函数模板
14.2 类模板
14.3 STL 简介
14.4 vector容器
14.5 vector上的迭代器
14.6 vector上应用算法
14.7 序列型容器概览
14.8 关联容器概览
14.9 map容器
14.10 容器适配器概览
第14周PPT课件
第14周单元测试
课程代码&spm=1001.2101.3001.5002&articleId=80544088&d=1&t=3&u=0d164430a30e4c739702a648d08a4c7a)
1430

被折叠的 条评论
为什么被折叠?



