2739
备注:
|
← 于2008-02-23 15:34:53修订的的版本16 ⇥
11907
converted to 1.6 markup
|
删除的内容标记成这样。 | 加入的内容标记成这样。 |
行号 1: | 行号 1: |
[[TableOfContents]] | = 温州大学课程教案 = * 学院:计算机科学与学院 * 课程名称:面向对象程序设计 * 学时:36 * 教材:C++面向对象程序设计 * 授课教师:陈忠克 * 授课对象:计算机本科 |
行号 21: | 行号 28: |
* 基础知识 * 参考书 * 如何学习C++和面向对象编程 * 结构化的程序设计 * 面向对象程序设计基本原理 * 面向对象的三个特点 * 面向对象程序设计的作用 * 计算机语言的发展 * 程序设计范式 * 程序执行方式 * 为什么选择C++ * C++语言的发展历史 * C++开发环境 * 常用集成开发环境 * C++程序开发流程 |
|
行号 25: | 行号 46: |
7课时 == 授课类型: == 理论课 == 授课题目: == C++面向过程程序设计 == 本授课单元教学目标: == 让学生掌握C++的新注释;掌握基本的I/O流与cin、cout用法;掌握引用类型的使用,理解函数的引用参数传递;掌握内联函数、带默认形参值的函数的语法和适用场合;掌握函数重载的用途、定义。 == 本授课单元教学重点和难点: == * 重点:函数重载、C++输入输出 * 难点:引用类型的使用 == 本授课单元教学过程设计: == |
2课时 == 授课类型: == 理论课 == 授课题目: == C++面向过程程序设计1:从C语言到C++ == 本授课单元教学目标: == 让学生掌握C++与C语言的不同,包括注释、输入输出、命名空间。 == 本授课单元教学重点和难点: == * 重点:C++输入输出 * 难点:命名空间 == 本授课单元教学过程设计: == 1. 简单的C++程序实例 1. 第一个C++程序 输出Hello world 1. 第二个C++程序 求两数之和 1. 第三个C++程序 求两个数中较大的一个 1. 引出C++的新的注释风格 1. 引出名字空间语法,为什么需要名字空间 1. 引出C++的头文件习惯 1. 引出C++的输入输出,介绍相对于C语言输入输出的好处 1. 练习使用C++的输入输出 |
行号 45: | 行号 75: |
10课时 == 授课类型: == 理论课 == 授课题目: == C++基于对象程序设计概述 == 本授课单元教学目标: == == 本授课单元教学重点和难点: == == 本授课单元教学过程设计: == |
2课时 == 授课类型: == 理论课 == 授课题目: == C++面向过程程序设计:引用 == 本授课单元教学目标: == 掌握引用类型的使用,理解函数的引用参数传递,返回引用类型 == 本授课单元教学重点和难点: == * 重点:引用参数传递 * 难点:引用返回类型 == 本授课单元教学过程设计: == 1. 引用的定义 1. 由swap函数引出引用参数的定义和用途 1. 引用返回类型的定义和用途 1. const引用的定义和用途 1. 定义常量 1. 强制类型转换 1. bool类型 1. 定义变量 1. 结构体 |
行号 69: | 行号 111: |
C++面向对象程序设计 == 本授课单元教学目标: == 让学生了解计算机程序设计语言的发展;理解面向对象的概念和方法;理解程序的开发过程和面向对象程序的开发过程。 == 本授课单元教学重点和难点: == 面向对象的方法 == 本授课单元教学过程设计: == |
C++面向过程程序设计:函数 == 本授课单元教学目标: == 掌握内联函数、带缺省参数的函数的语法和适用场合;掌握函数重载的用途、定义。 == 本授课单元教学重点和难点: == * 重点:函数重载、缺省参数 * 难点: == 本授课单元教学过程设计: == * 函数的声明与定义 * 由带参数宏引出内联函数 * 由很多参数的函数引出代缺省参数的函数 * 重载函数 |
行号 87: | 行号 134: |
C++面向过程程序设计:其它语法 == 本授课单元教学目标: == 掌握C++内存分配、bool类型、string类型、变量定义规则、新型强制类型转换语法、const常量定义。 == 本授课单元教学重点和难点: == * 重点:string类型 * 难点:内存分配 == 本授课单元教学过程设计: == * 介绍const常量定义 * 介绍bool类型 * 介绍四种强制类型转换 * 介绍C++变量可以在多种地方定义 * 对比C语言和C++语言的内存分配 * 对比C语言的字符串和C++的string类 = 第六课 = == 授课时间: == 2课时 == 授课类型: == 理论课 == 授课题目: == C++基于对象程序设计:类和对象 == 本授课单元教学目标: == 掌握面向对象程序设计的基本概念,牢固掌握类的声明,类成员的访问控制,类的成员函数,对象的声明等类与对象的基本语法内容 == 本授课单元教学重点和难点: == 重点:成员函数 难点:成员函数、访问权限 == 本授课单元教学过程设计: == 1. 用例子说明C语言中定义自定义类型的方法:用C语言结构体定义自定义类型,用函数实现操作结构体的方法 1. 将C语言的结构体和操作结构体的函数结合在一起,引出C++类的概念 1. 举例说明C++类的语法 1. 举例说明对象的定义方法 1. 练习类和对象的使用 1. 举例说明类成员的访问权限控制 = 第七课 = == 授课时间: == 4课时 == 授课类型: == 理论课 == 授课题目: == C++基于对象程序设计:对象的构造和析构 == 本授课单元教学目标: == 牢固掌握构造函数和析构函数,拷贝构造函数的概念和写法 == 本授课单元教学重点和难点: == * 重点:构造函数 * 难点:拷贝构造函数 == 本授课单元教学过程设计: == 1. 举例说明构造函数的作用 1. 介绍构造函数的定义语法 1. 举例说明构造函数可以重载 1. 举例说明调用构造函数定义对象的方法 1. 组合对象的构造 1. 举例说明对象的析构函数的作用 1. 举例说明拷贝构造函数的作用 1. 练习构造函数、拷贝构造函数、析构函数的使用 = 第八课 = == 授课时间: == 2课时 == 授课类型: == 理论课 == 授课题目: == C++基于对象程序设计:类和对象的其它方面 == 本授课单元教学目标: == 牢固掌握静态数据成员的定义,掌握静态成员函数的定义和使用;理解并掌握友元函数和友元类,friend保留字;理解并掌握常引用、常对象和常成员函数。 == 本授课单元教学重点和难点: == * 重点: * 难点:静态成员 == 本授课单元教学过程设计: == 1. 举例说明静态数据成员的用途 1. 举例说明静态成员函数的用途 1. 练习使用静态成员 1. 举例说明友员函数的作用 1. 举例说明友员类的作用 1. 举例说明常成员函数的用法 1. 举例说明常对象的用法 = 第九课 = == 授课时间: == 2课时 == 授课类型: == 理论课 == 授课题目: == C++面向对象程序设计:继承 == 本授课单元教学目标: == 掌握派生类的声明,派生的访问控制;理解派生类的构造和析构函数。 == 本授课单元教学重点和难点: == * 重点:继承的概念,派生类定义方法,派生类的构造 * 难点:派生类的权限 == 本授课单元教学过程设计: == 1. 举实例说明继承的概念 1. 派生类的定义方法 1. 举例说明派生类的初始化方法,构造函数的定义 1. 举例说明派生类的析构函数 1. 举例说明派生类的权限控制 = 第十课 = == 授课时间: == 2课时 == 授课类型: == 理论课 == 授课题目: == C++面向对象程序设计:多继承 == 本授课单元教学目标: == 掌握多基类的派生类的声明,掌握虚基类的定义 == 本授课单元教学重点和难点: == * 重点: * 难点:虚基类的构造 == 本授课单元教学过程设计: == 1. 举实例说明多继承的定义方法 1. 举例说明虚基类的用途和使用方法 1. 虚基类的构造方法 = 第十一课 = == 授课时间: == 2课时 == 授课类型: == 理论课 == 授课题目: == C++面向对象程序设计:虚函数 == 本授课单元教学目标: == 掌握多态的概念,掌握虚函数的定义 == 本授课单元教学重点和难点: == * 重点:虚函数 * 难点:虚析构函数 == 本授课单元教学过程设计: == 1. 举例说明多态的概念 1. 举例说明多态的实现方法,引出虚函数 1. 说明实现多态的必备条件 1. 练习使用虚函数 1. 介绍虚析构函数的用途 = 第十二课 = == 授课时间: == 2课时 == 授课类型: == 理论课 == 授课题目: == C++面向对象程序设计:纯虚函数 == 本授课单元教学目标: == 掌握纯虚函数的定义,掌握抽象类的概念 == 本授课单元教学重点和难点: == * 重点:纯虚函数 * 难点: == 本授课单元教学过程设计: == 1. 举例说明纯虚函数的用途 1. 介绍抽象类的概念 1. 介绍接口类的概念 1. 介绍面向对象的设计方法 = 第十三课 = == 授课时间: == 2课时 == 授课类型: == 理论课 == 授课题目: == C++运算符重载:运算符重载概述 == 本授课单元教学目标: == == 本授课单元教学重点和难点: == * 重点: * 难点:二元运算符和一元运算符的区别 == 本授课单元教学过程设计: == * 没有运算符重载的情况下,类是使用的(complex类、string类) * 定义运算符后,类的使用得到简化 * 定义运算符的一般规则 * 定义二元运算符的规则 * 定义一元运算符的规则 * 使用运算符重载的完整的例子(complex类) * 练习:定义分数类 = 第十四课 = == 授课时间: == 2课时 == 授课类型: == 理论课 == 授课题目: == C++运算符重载:特殊运算符重载 == 本授课单元教学目标: == 掌握模板函数、模板类的定义和用途。 == 本授课单元教学重点和难点: == * 重点:模板函数、模板类 * 难点 == 本授课单元教学过程设计: == 1. <<和>>运算符的重载 1. = 运算符的重载 1. 类型转换 运算符的重载 1. [ ] 运算符的重载 1. () 运算符的重载 1. ++和-- 运算符的重载 1. -> 运算符的重载 1. new, delete 运算符的重载 1. string类的例子 = 第十五课 = == 授课时间: == 2课时 == 授课类型: == 理论课 == 授课题目: == |
|
行号 90: | 行号 392: |
让学生了解计算机程序设计语言的发展;理解面向对象的概念和方法;理解程序的开发过程和面向对象程序的开发过程。 == 本授课单元教学重点和难点: == 面向对象的方法 == 本授课单元教学过程设计: == = 第六课 = == 授课时间: == 2课时 == 授课类型: == 理论课 == 授课题目: == C++标准库 == 本授课单元教学目标: == 让学生了解计算机程序设计语言的发展;理解面向对象的概念和方法;理解程序的开发过程和面向对象程序的开发过程。 == 本授课单元教学重点和难点: == 面向对象的方法 == 本授课单元教学过程设计: == |
掌握模板函数、模板类的定义和用途。 == 本授课单元教学重点和难点: == * 重点:模板函数、模板类 * 难点:函数模板参数的推导 == 本授课单元教学过程设计: == 1. 为什么需要函数模板 1. 函数模板如何定义 1. 函数模板如何使用 1. 函数模板出现歧异 1. 函数模板的重载 1. 为什么需要类模板 1. 类模板如何定义 1. 类模板如何使用 = 第十六课 = == 授课时间: == 2课时 == 授课类型: == 理论课 == 授课题目: == C++标准库:输入输出流库 == 本授课单元教学目标: == 掌握基本的文件流和字符串流的使用 == 本授课单元教学重点和难点: == * 重点:流的概念,文件操作 * 难点:字符串流的使用 == 本授课单元教学过程设计: == * 文件输入流ofstream使用举例 * 文件输出流ifstream使用举例 * 字符串输出流ostringstream使用举例 * 字符串输出流istringstream使用举例 = 第十七课 = == 授课时间: == 2课时 == 授课类型: == 理论课 == 授课题目: == C++标准库:容器 == 本授课单元教学目标: == 掌握简单容器的使用 == 本授课单元教学重点和难点: == 重点:vector和list的使用 难点:跌代子的理解和使用 == 本授课单元教学过程设计: == * vector的使用举例 * 用vector作为栈使用的例子 * list的使用举例 * 常用泛型函数的使用举例 |
温州大学课程教案
- 学院:计算机科学与学院
- 课程名称:面向对象程序设计
- 学时:36
- 教材:C++面向对象程序设计
- 授课教师:陈忠克
- 授课对象:计算机本科
第一课
1. 授课时间:
2课时
2. 授课类型:
理论课
3. 授课题目:
面向对象程序设计概述
4. 本授课单元教学目标:
让学生了解计算机程序设计语言的发展;理解面向对象的概念和方法;理解程序的开发过程和面向对象程序的开发过程。
5. 本授课单元教学重点和难点:
面向对象的方法
6. 本授课单元教学过程设计:
- 基础知识
- 参考书
- 如何学习C++和面向对象编程
- 结构化的程序设计
- 面向对象程序设计基本原理
- 面向对象的三个特点
- 面向对象程序设计的作用
- 计算机语言的发展
- 程序设计范式
- 程序执行方式
- 为什么选择C++
- C++语言的发展历史
- C++开发环境
- 常用集成开发环境
- C++程序开发流程
第二课
1. 授课时间:
2课时
2. 授课类型:
理论课
3. 授课题目:
C++面向过程程序设计1:从C语言到C++
4. 本授课单元教学目标:
让学生掌握C++与C语言的不同,包括注释、输入输出、命名空间。
5. 本授课单元教学重点和难点:
- 重点:C++输入输出
- 难点:命名空间
6. 本授课单元教学过程设计:
- 简单的C++程序实例
- 第一个C++程序 输出Hello world
- 第二个C++程序 求两数之和
- 第三个C++程序 求两个数中较大的一个
- 引出C++的新的注释风格
- 引出名字空间语法,为什么需要名字空间
- 引出C++的头文件习惯
- 引出C++的输入输出,介绍相对于C语言输入输出的好处
- 练习使用C++的输入输出
第三课
1. 授课时间:
2课时
2. 授课类型:
理论课
3. 授课题目:
C++面向过程程序设计:引用
4. 本授课单元教学目标:
掌握引用类型的使用,理解函数的引用参数传递,返回引用类型
5. 本授课单元教学重点和难点:
- 重点:引用参数传递
- 难点:引用返回类型
6. 本授课单元教学过程设计:
- 引用的定义
- 由swap函数引出引用参数的定义和用途
- 引用返回类型的定义和用途
- const引用的定义和用途
- 定义常量
- 强制类型转换
- bool类型
- 定义变量
- 结构体
第四课
1. 授课时间:
2课时
2. 授课类型:
理论课
3. 授课题目:
C++面向过程程序设计:函数
4. 本授课单元教学目标:
掌握内联函数、带缺省参数的函数的语法和适用场合;掌握函数重载的用途、定义。
5. 本授课单元教学重点和难点:
- 重点:函数重载、缺省参数
- 难点:
6. 本授课单元教学过程设计:
- 函数的声明与定义
- 由带参数宏引出内联函数
- 由很多参数的函数引出代缺省参数的函数
- 重载函数
第五课
1. 授课时间:
2课时
2. 授课类型:
理论课
3. 授课题目:
C++面向过程程序设计:其它语法
4. 本授课单元教学目标:
掌握C++内存分配、bool类型、string类型、变量定义规则、新型强制类型转换语法、const常量定义。
5. 本授课单元教学重点和难点:
- 重点:string类型
- 难点:内存分配
6. 本授课单元教学过程设计:
- 介绍const常量定义
- 介绍bool类型
- 介绍四种强制类型转换
- 介绍C++变量可以在多种地方定义
- 对比C语言和C++语言的内存分配
- 对比C语言的字符串和C++的string类
第六课
1. 授课时间:
2课时
2. 授课类型:
理论课
3. 授课题目:
C++基于对象程序设计:类和对象
4. 本授课单元教学目标:
掌握面向对象程序设计的基本概念,牢固掌握类的声明,类成员的访问控制,类的成员函数,对象的声明等类与对象的基本语法内容
5. 本授课单元教学重点和难点:
重点:成员函数 难点:成员函数、访问权限
6. 本授课单元教学过程设计:
- 用例子说明C语言中定义自定义类型的方法:用C语言结构体定义自定义类型,用函数实现操作结构体的方法
- 将C语言的结构体和操作结构体的函数结合在一起,引出C++类的概念
- 举例说明C++类的语法
- 举例说明对象的定义方法
- 练习类和对象的使用
- 举例说明类成员的访问权限控制
第七课
1. 授课时间:
4课时
2. 授课类型:
理论课
3. 授课题目:
C++基于对象程序设计:对象的构造和析构
4. 本授课单元教学目标:
牢固掌握构造函数和析构函数,拷贝构造函数的概念和写法
5. 本授课单元教学重点和难点:
- 重点:构造函数
- 难点:拷贝构造函数
6. 本授课单元教学过程设计:
- 举例说明构造函数的作用
- 介绍构造函数的定义语法
- 举例说明构造函数可以重载
- 举例说明调用构造函数定义对象的方法
- 组合对象的构造
- 举例说明对象的析构函数的作用
- 举例说明拷贝构造函数的作用
- 练习构造函数、拷贝构造函数、析构函数的使用
第八课
1. 授课时间:
2课时
2. 授课类型:
理论课
3. 授课题目:
C++基于对象程序设计:类和对象的其它方面
4. 本授课单元教学目标:
牢固掌握静态数据成员的定义,掌握静态成员函数的定义和使用;理解并掌握友元函数和友元类,friend保留字;理解并掌握常引用、常对象和常成员函数。
5. 本授课单元教学重点和难点:
- 重点:
- 难点:静态成员
6. 本授课单元教学过程设计:
- 举例说明静态数据成员的用途
- 举例说明静态成员函数的用途
- 练习使用静态成员
- 举例说明友员函数的作用
- 举例说明友员类的作用
- 举例说明常成员函数的用法
- 举例说明常对象的用法
第九课
1. 授课时间:
2课时
2. 授课类型:
理论课
3. 授课题目:
C++面向对象程序设计:继承
4. 本授课单元教学目标:
掌握派生类的声明,派生的访问控制;理解派生类的构造和析构函数。
5. 本授课单元教学重点和难点:
- 重点:继承的概念,派生类定义方法,派生类的构造
- 难点:派生类的权限
6. 本授课单元教学过程设计:
- 举实例说明继承的概念
- 派生类的定义方法
- 举例说明派生类的初始化方法,构造函数的定义
- 举例说明派生类的析构函数
- 举例说明派生类的权限控制
第十课
1. 授课时间:
2课时
2. 授课类型:
理论课
3. 授课题目:
C++面向对象程序设计:多继承
4. 本授课单元教学目标:
掌握多基类的派生类的声明,掌握虚基类的定义
5. 本授课单元教学重点和难点:
- 重点:
- 难点:虚基类的构造
6. 本授课单元教学过程设计:
- 举实例说明多继承的定义方法
- 举例说明虚基类的用途和使用方法
- 虚基类的构造方法
第十一课
1. 授课时间:
2课时
2. 授课类型:
理论课
3. 授课题目:
C++面向对象程序设计:虚函数
4. 本授课单元教学目标:
掌握多态的概念,掌握虚函数的定义
5. 本授课单元教学重点和难点:
- 重点:虚函数
- 难点:虚析构函数
6. 本授课单元教学过程设计:
- 举例说明多态的概念
- 举例说明多态的实现方法,引出虚函数
- 说明实现多态的必备条件
- 练习使用虚函数
- 介绍虚析构函数的用途
第十二课
1. 授课时间:
2课时
2. 授课类型:
理论课
3. 授课题目:
C++面向对象程序设计:纯虚函数
4. 本授课单元教学目标:
掌握纯虚函数的定义,掌握抽象类的概念
5. 本授课单元教学重点和难点:
- 重点:纯虚函数
- 难点:
6. 本授课单元教学过程设计:
- 举例说明纯虚函数的用途
- 介绍抽象类的概念
- 介绍接口类的概念
- 介绍面向对象的设计方法
第十三课
1. 授课时间:
2课时
2. 授课类型:
理论课
3. 授课题目:
C++运算符重载:运算符重载概述
4. 本授课单元教学目标:
5. 本授课单元教学重点和难点:
- 重点:
- 难点:二元运算符和一元运算符的区别
6. 本授课单元教学过程设计:
- 没有运算符重载的情况下,类是使用的(complex类、string类)
- 定义运算符后,类的使用得到简化
- 定义运算符的一般规则
- 定义二元运算符的规则
- 定义一元运算符的规则
- 使用运算符重载的完整的例子(complex类)
- 练习:定义分数类
第十四课
1. 授课时间:
2课时
2. 授课类型:
理论课
3. 授课题目:
C++运算符重载:特殊运算符重载
4. 本授课单元教学目标:
掌握模板函数、模板类的定义和用途。
5. 本授课单元教学重点和难点:
- 重点:模板函数、模板类
- 难点
6. 本授课单元教学过程设计:
- <<和>>运算符的重载
- = 运算符的重载
- 类型转换 运算符的重载
- [ ] 运算符的重载
- () 运算符的重载
- ++和-- 运算符的重载
-> 运算符的重载
- new, delete 运算符的重载
- string类的例子
第十五课
1. 授课时间:
2课时
2. 授课类型:
理论课
3. 授课题目:
C++泛型程序设计
4. 本授课单元教学目标:
掌握模板函数、模板类的定义和用途。
5. 本授课单元教学重点和难点:
- 重点:模板函数、模板类
- 难点:函数模板参数的推导
6. 本授课单元教学过程设计:
- 为什么需要函数模板
- 函数模板如何定义
- 函数模板如何使用
- 函数模板出现歧异
- 函数模板的重载
- 为什么需要类模板
- 类模板如何定义
- 类模板如何使用
第十六课
1. 授课时间:
2课时
2. 授课类型:
理论课
3. 授课题目:
C++标准库:输入输出流库
4. 本授课单元教学目标:
掌握基本的文件流和字符串流的使用
5. 本授课单元教学重点和难点:
- 重点:流的概念,文件操作
- 难点:字符串流的使用
6. 本授课单元教学过程设计:
- 文件输入流ofstream使用举例
- 文件输出流ifstream使用举例
- 字符串输出流ostringstream使用举例
- 字符串输出流istringstream使用举例
第十七课
1. 授课时间:
2课时
2. 授课类型:
理论课
3. 授课题目:
C++标准库:容器
4. 本授课单元教学目标:
掌握简单容器的使用
5. 本授课单元教学重点和难点:
重点:vector和list的使用 难点:跌代子的理解和使用
6. 本授课单元教学过程设计:
- vector的使用举例
- 用vector作为栈使用的例子
- list的使用举例
- 常用泛型函数的使用举例