资源描述
面向对象程序设计课程设计方案
一、 课程基本说明
课程对象: 西安电大系统开放教育试点计算机科学与技术专业( 专科起点本科) 学生
课程学时: 72学分
课程学分: 4学分
课程的基本特点: 是计算机科学与技术专业的基础必修课, 对学生进行基础性的、 面向对象的程序设计训练, 为后续的数据结构、 计算机网络、 数据库、 软件工程等课程奠定基础。
二、 课程的内容体系及教学要求
第一部分程序设计基础
教学知识点:
C++语言特点和程序的基本结构。
上机输入、 编辑、 连接、 运行一个C++程序的过程。
整数、 字符、 实数、 逻辑等标准数据类型的含义。
各种常量的字面表示和符号表示, 变量的定义与使用。
常见运算符的表示、 优先级与结合性。
表示式的分类和使用。
教学要求:
了解C++语言程序结构和上机调试程序的全过程。
掌握: 各种数据类型、 数据常量、 表示式、 运算符等的表示与含义; 简单语句和复合语句的格式和作用。
应用: 能够编写简单的程序, 能完成简单数据和表示式的输入和输出, 能利用变量存放输入数据、 临时数据和计算结果, 能利用符号常量存放固定数据, 能根据数值计算和数据处理的要求选择合适的常量或变量表示, 能利用运算符进行算术、 比较( 即关系) 和逻辑运算, 能把一般数学算式、 不等式或条件表示成相应的C++表示式。
第二部分流程控制语句与程序模块的基本结构
教学知识点:
if语句、 switch语句、 for语句、 while语句、 do语句、 break语句、 continue语句、 return语句等的定义格式、 执行过程与作用。
教学要求:
理解: 各种语句的格式、 执行过程与作用, 语句之间相互嵌套的概念。
应用:
(1) 能够分析含有if和switch分支类语句的程序模块并给出功能或执行结果, 能够按照分支处理的要求编写出相应的分支程序。
(2) 能够分析含有for、 while和do循环类语句的程序模块并给出功能或执行结果, 能够按照循环处理的要求编写出相应的循环程序, 如累加计算、 数据统计、 求最大值、 求平均值等程序。
(3) 能够实现if和switch语句之间的转换, 能够实现for、 while和do循环语句之间的转换。
综合应用: 运用各种流程控制语句和其它语句等已有知识进行比较复杂的程序分析与设计, 如双重或三重循环的程序分析与设计。
第三部分函数
教学知识点:
模块化程序设计的概念, 多文件结构的程序。
函数的定义、 声明与调用格式, 静态函数的含义。
函数定义中值参数、 指针参数、 数组参数、 引用参数、 常量参数的声明格式及作用;
函数中带默认值参数的说明与作用。
函数调用中的实参与函数定义中的形参之间的结合过程。
函数返回值的一般类型、 指针类型和引用类型的作用。
变量的作用域和生存期, 静态变量的特点。
内联函数的定义格式及作用。
递归函数的设计方法和调用过程。
函数重载的含义和作用。
函数模板的定义格式及作用。
教学要求:
理解:
(1) 模块化程序设计与函数的关系, 函数的定义格式与声明格式, 函数调用表示式的格式及执行过程, 带默认值参数的含义与用法。
(2) 全局变量、 局部变量、 静态变量的含义。
(3) 内联函数和函数模板的定义与声明格式, 函数模板的实例化, 重载函数的作用。
应用:
(1) 能够分析已知函数, 给出所能实现的功能或运行结果。
(2) 能够根据处理问题的需要合理地设置函数参数、 函数的返回值类型以及编写出函数体。
(3) 利用递归函数来简化程序设计。
(4) 利用函数重载来优化程序设计。
(5) 利用函数模板来设计能够处理任何数据类型的通用程序。
第四部分数组、 结构、 指针和引用
教学知识点:
一维数组的概念、 定义和初始化。
二维及多维数组的概念、 定义和初始化。
一维和二维数组元素的下标访问方式。
字符串与字符数组的区别与联系, 字符串的输入与输出。
常见字符串函数( 如strlen,strcpy,strcmp,strcat等) 的调用格式与作用。
结构类型的定义格式和作用, 结构变量的定义格式和初始化。
结构成员的表示和使用。
指针的概念、 定义及初始化。
针对指针的各种运算操作。
数组名的指针含义, 数组元素的下标与指针方式的表示及转换。
数组形参与指针形参之间的等价表示与转换。
引用的定义和初始化, 引用参数与值参数的区别。
一般变量与数组的存储空间的动态分配与释放。
考核要求:
理解:
(1) 数组、 字符串、 结构、 指针、 引用等的概念、 表示和作用。
(2) 数组的存储空间分配, 数组元素的地址计算, 数组元素的下标访问方式和指针访问方式。
(3) 字符串的存储格式, 字符串的输入输出方式, 字符串函数的调用。
(4) 数据空间的动态分配与释放, 链表的结构与访问结点的过程。
应用:
(1) 能够分析和设计在一维数组上的顺序查找、 选择排序、 插入排序等算法。
(2) 能够分析和设计在二维数组上的矩阵加、 减、 转置、 乘等运算的算法。
(3) 能够分析和设计利用字符串函数进行字符串处理的算法。
(4) 能够分析和设计动态生成的链表, 在链表头或尾插入或删除结点的算法, 以及遍历链表的算法。
(5) 能够分析和设计对顺序或链接表示的栈或队列进行插入或删除元素( 结点) 的算法。
(6) 能够使用引用类型作为函数的参数类型和返回值类型。
综合应用: 运用数组、 字符串、 结构、 指针、 引用等数据类型进行程序设计。
第五部分类与对象
教学知识点:
面向对象程序设计的概念。
类的定义, 类与结构的区别和联系。
类成员的访问控制与访问方式。
内联与非内联成员函数的声明与定义。
对象的生成和初始化。
类的作用域。
类的构造函数与析构函数。
类的拷贝构造函数和赋值重载函数。
静态数据成员和静态成员函数。
对象成员和一般成员的初始化方式。
友元函数与友元类。
this指针。
用数组和链表实现队列类和栈类。
教学要求:
理解:
(1) 面向对象程序设计的有关概念。
(2) 类的定义, 类成员的访问权限, 构造函数与析构函数的定义格式及作用。
(3) 静态数据成员定义、 初始化与作用, 静态函数成员的定义格式与特性。
(4) 友元函数和友元类的声明与作用。
应用:
(1) 能够分析和设计含有简单类定义的程序。
(2) 能够使用数组或链表建立队列类和栈类。
综合应用:
(1) 能够根据程序要求构造合适的类。在构造过程中充分考虑构造函数和析构函数的使用、 成员访问控制的运用、 内联函数的运用、 静态成员的选用。
(2) 能够根据要求构造多个类完成所要求的程序设计任务, 多个类之间能够发生一定的关系, 如一个类作为另一个类的成员或友元、 一个类使用另一个类的服务等。
第六部分继承与多态性
教学知识点:
结构化程序设计和面向对象程序设计思想的不同。
继承( 单继承与多继承) 的含义, 派生类的定义和使用。
派生类中构造函数和析构函数的执行过程。
对派生类和基类中同名成员的访问方式。
静态联编与动态联编的各自含义和区别。
静态联编与函数重载, 动态联编与虚函数, 多态性。
虚基类, 抽象类, 纯虚函数。
教学要求:
理解:
(1) 类继承的概念和作用, 派生类的定义格式。
(2) 派生类对基类的继承方式, 派生类对基类成员的访问权限。
(3) 静态联编和动态联编的含义, 函数重载和虚函数的作用。
应用:
(1) 能分析含有派生类的程序。
(2) 能够根据要求构造类的继承层次, 并完成一定的程序设计。
综合应用: 能够利用继承、 虚函数、 动态联编( 即多态性) 等机制完成面向对象的程序设计。
第七部分运算符重载
教学知识点:
运算符重载的概念与函数定义格式。
一般函数的运算符重载和成员函数的运算符重载。
引用在运算符重载中的作用。
作为友元函数的运算符重载。
单目和双目算术运算符的重载。
增1和减1运算符的重载。
插入运算符和抽取运算符的重载。
圆括号运算符和中括号运算符作为成员函数的重载。
教学要求:
理解:
(1) 运算符重载的概念及作用。
(2) 引用在运算符重载中的作用。
(3) 运算符重载作为一般函数和成员函数在参数上的区别。
应用: 能够分析和设计带有运算符重载的函数或类。
三、 教学媒体资源
文字主教材《C++面向对象程序设计》王萍编著清华大学出版社出版
实验教材《面向对象程序设计实验》徐孝凯等编中央广播电视大学出版社出版
录象教材 16讲王萍主讲中央广播电视大学音像出版社出版
直播课堂 4讲唐龙老师主讲中央广播电视大学音像出版社出版
复习资料《面向对象程序设计期末复习指导》中央电大教育杂志社出版发行
作业练习《面向对象程序设计形成性考核作业册》中央电大教育杂志社出版发行
网上辅导在电大在线计算机科学与技术《面向对象程序设计》课程网页上发表
文字主教材是课程教学内容的最基本和最主要的载体, 按照该课程教学大纲编写, 是制作其它所有配套教学媒体的依据。
实验教材是学生做课程实验的依据, 学生应按照要求完成每个实验, 从而巩固所学的理论教学知识, 提高动手能力和解决实际问题的能力。
课程教学总学时数为72学时, 4学分, 其中讲授学时48, 实验24, 教学和实验学时如下表所示。
教学内容
讲授学时
实验学时
一、 C++编程基础
1
二、 基本C++程序结构
2
三、 数据类型
3
四、 程序流程控制
5
4
五、 函数
6
4
六、 简单程序设计
2
七、 数组与结构
4
4
八、 指针和引用
5
2
九、 面向对象程序设计方法
2
十、 类与对象
4
十一、 构造函数与析构函数
4
4
十二、 静态成员、 友元
3
十三、 运算符重载
3
2
十四、 继承
4
4
录象教材是配合主教材的辅助教学媒体, 讲授教学的基本内容, 讲解根据问题进行程序设计的思路和方法, 能够发挥主讲老师的讲课艺术和良好的视听教学效果, 能够更好地启发和引导学生自学, 帮助学生更好地掌握课程内容体系和教学要求。
录象课共16讲, 每讲50分钟, 各讲内容如下表所示:
讲次
教学内容
一
C++程序结构6
二
基本数据类型与输入输出
三
表示式与语句
四
语句与程序流程,
五
函数, 程序结构初步
六
结构化程序设计
七
数组、 指针、 引用
八
结构与类
九
类与对象
十
继承
十一
重载与虚函数
十二
C++内存管理、 I/O系统
十三
面向对象程序设计
十四
模板与异常处理
十五
面向对象的程序设计环境
十六
课程内容回顾与总结
直播课堂给出阶段性的学习辅导和小结, 帮助学生整理学习思路, 解答学生在学习过程中可能遇到的共性问题。
直播课堂共4讲, 每讲50分钟, 前三讲为对教学重点、 难点, 对教学过程中反映的共性问题和有代表性的问题进行辅导, 后一讲为复习辅导和有关考试说明。各讲内容如下表所示:
序号
内容
1
结构化程序设计辅导
2
面向对象程序设计辅导
3
函数函数与模板类辅导
4
期末复习考试指导
复习资料是学生进行期末复习的依据, 给出了较丰富的课程综合练习题, 能够全面提高学生掌握和运用综合知识的能力, 争取能够在课程考试中取得良好成绩。
作业练习是课程形成性成绩的主要参考, 经过阶段性作业练习, 能够自检学习效果, 看到差距和不足, 督促学习。
网上辅导是教学补充媒体, 有利于学生进行网上学习。给出了一些教学辅导文章、 练习题等内容。同时在网页上还给出了教学大纲、 考核说明、 教师介绍等信息, 有利于学生进行自主学习。
四、 教学过程的组织、 监督与管理
中央电大按照教学计划要求, 提供必要的课程教学资源供办学实体选用。我们提倡各教学管理点, 按5-8人分为若干学习小组, 经常开展( 至少两周一次) 学习交流和讨论, 互帮互助, 共同进步, 每个小组要有指定的专业联系教师, 解答学生的问题和批改作业, 必要时进行面授辅导。
五、 教学安排建议
面授辅导次数: 15次
面授辅导内容: 因电视录像课较少, 不能够讲解全部教学内容, 因此, 使用面授辅导是完全必要的, 是保证教学进度、 提高教学质量的有力保证, 建议尽可能地安排较多的面授辅导课, 最好每周能够安排一次, 同时, 有些应在机房连同实验一起上。
六、 教学联系方式
经过电子邮件方式、 传真或电话联系
1、 主持教师( 中央电大) ---徐孝凯
Email地址:
电话: ( O)
2、 主讲教师( 清华) ---唐龙
Email地址:
电话:
3、 清华计算机系联系人---王建章
Email地址:
电话:
展开阅读全文