通过本课程的学习,使学生了解面向对象分析、设计和实现的过程和基本方法,通过理论与实践相结合,使学生理解并掌握面向对象程序设计的基本方法和技术。以C++程序设计语言为工具,通过数据抽象的方法,研究数据的逻辑结构、存储结构及相应的算法。为信息类非计算机专业学生建立数据结构和算法设计的基本概念,为后续编程课程奠定基础。
章名称 |
学习目标 |
---|---|
第1章 面向对象的设计方法 |
(1)掌握熟悉面向对象的思想; |
第2章 C++类及其对象的封装性 |
(1)掌握类的定义和使用方法。 |
第3章 友元、重载和引用 |
(1)掌握友元的概念;掌握友元函数、友元成员和友元类;掌握友元的声明和定义; |
第4章 继承与派生 |
(1)理解类的继承与派生; |
第5章 多态性与虚函数 |
(1)重点掌握对象指针; |
第6章 模版 |
(1)理解模板的概念; |
第7章 数据结构概述与 线性表 |
(1)掌握数据结构的基本概念; |
第8章 堆栈与队列 |
(1)熟练掌握堆栈和队列的逻辑结构特性; |
第9章 树 |
(1)理解树、森林和二叉树的基本概念;掌握树型结构的特点; |
第10章 图 |
(1)了解图的相关术语; |
第11章 查找 |
(1)理解查找的相关概念; |
第12章 排序 |
(1)理解排序的相关概念; |
本课程理论教学要点、重难点如下:
知识模块 |
教学要点 |
重点难点 |
学时分配 |
---|---|---|---|
第1章 面向对象的设计方法 |
1、面向对象的基本概念和基本特性 |
重点:面向对象的思想、面向对象的基本概念、面向对象的基本特性;C++比C增强的知识。 |
3 |
第2章 C++类及其对象的封装性 |
1、类的声明和对象的定义 |
重点:类的定义和使用方法;对象的定义和使用方法;构造函数和析构函数。 |
4 |
第3章 友元、重载和引用 |
1、友元 |
重点:友元的概念和使用方法;重载的概念和使用方法;引用的概念和使用方法。 |
4 |
第4章 继承与派生 |
1、派生类的声明方式与构成 |
重点:在不同继承方式下派生类从基类继承成员的访问属性。 |
6 |
第5章 多态性与虚函数 |
1、多态性 |
重点:虚函数的概念;如何用虚函数实现多态。 |
4 |
第6章 模版 |
1、函数模版和模版函数 |
重点:函数模版和模版函数的定义以及使用方法; |
3 |
第7章 数据结构概述与线性表 |
1、数据结构基本概念与抽象数据类型 |
重点:掌握数据结构基本概念,算法的设计方法和算法分析的方法,顺序存储和链式存储两类存储结构的描述方法,以及线性表的各种基本操作的实现; |
4 |
第8章 堆栈与队列 |
1、堆栈的概念及其运算 |
重点:掌握顺序栈、链栈循环队列、链式队列的定义与操作;堆栈和队列线性表的逻辑结构特性。 |
4 |
第9章 树 |
1、树和二叉树的基本概念 |
重点:树和二叉树的二叉链表表示;树和二叉树、森林和二叉树的转换;树和二叉树的各种遍历方法及应用;二叉排序树的建立、插入和删除;掌握赫夫曼树的构造。 |
6 |
第10章 图 |
1、图的基本概念 |
重点:掌握图的基本概念、图的存储结构、图的遍历、图的连通性与最小生成树、普里姆算法与克鲁斯卡尔算法。 |
4 |
第11章 查找 |
1.静态查找表,重点介绍顺序表的查找,有序表的查找 |
重点:掌握查找表的概念、顺序查找,折半查找及索引顺序表的查找、二叉排序树的概念及相关操作、哈希函数的构造方法及处理冲突的方法。 |
3 |
第12章 排序 |
1、插入排序 |
重点:掌握直接插入排序算法、折半插入排序算法、希尔排序快速排序、简单选择算法、堆排序的方法。 |
3 |
本课程实验教学如下
序号 |
实验名称 |
实验学时 |
---|---|---|
实验一 |
C++类及其对象的封装性 |
2 |
实验二 |
友元、重载和引用 |
2 |
实验三 |
继承与派生 |
2 |
实验四 |
多态性和虚函数 |
2 |
实验五 |
线性表 |
2 |
实验六 |
堆栈与队列 |
2 |
实验七 |
树与二叉树 |
2 |
实验八 |
排序 |
2 |