课程编码:043858
课程类别:专业基础课(必修), 专业课(必修),
先修课程:程序设计基础
适用专业:计算机科学与技术,软件工程(卓越计划班),网络工程,信息与计算科学,
开课院部:计算机与网络安全学院
课程负责人:
《面向对象程序设计》是计算机专业本科生的一门必修课程。它集抽象性、封装性、继承性和多态性于一体,可以开发出数据抽象程度高的、能体现信息隐蔽、可复用、易修改、易扩充等特性的程序。本课程主要介绍面向对象程序设计的方法和C++语言的基本概念。以C++语言中的面向对象机制为主,使学生在学习过程中通过大量的程序实例和相关练习,逐步掌握C++的面向对象程序设计的功能,从而掌握面向对象程序设计的基本知识和基本技能。
教学方式分课堂教学、课程实验和课外项目三部分。其中,课堂教学主要采用启发式教学方法进行,以项目实例为中心,围绕具体的问题进行分析、设计、实现从而讲解面向对象的分析方法、设计方法与实现过程;然后以课程实验和课外项目分组的形式让学生根据课堂上的内容、过程进行自己的分析与设计,使学生既有一个具体的目标,又有可参考的对象,同时培养学生分工合作的团队精神。
表1 理论教学进程表
周
次
教学主题
要点与重点
要求
学时
1
面向对象程序设计及C++语言概述
面向过程与面向对象概述;面向对象的基本概念及特性:C++语言概述;C++程序及其开发
了解面向过程与面向对象两种程序设计方法的基本思想及基本概念;掌握C++程序的开发环境。
2
C++对C的改进及扩展
C++函数中一些基本控制的区别;有关函数的区别;新增引用方式;动态内存管理;C++的异常处理
掌握C++对C的一些重要改进和扩展,并能编程使用。
4
3
类与对象(一)
类与对象的定义;构造函数和析构函数;深拷贝与浅拷贝
掌握类与对象的定义方法;掌握构造函数和析构函数的原理与编程;掌握深拷贝与浅拷贝的原理与编程
类与对象(二)
对象的使用;友元;程序实例—学生信息管理系统
掌握对象编程的多种使用方式;掌握友元的含义与编程
5
习题课
C++改进与扩展习题与类与对象习题
巩固类与对象的相关知识
6
类中数据的共享与保护(一)
静态数据成员;静态成员函数;共享数据的保护;
掌握静态数据成员和成员函数的定义和使用方法;掌握类中共享数据的保护(包括:常数据成员、常成员函数和常对象的使用)
7
类中数据的共享与保护(二);
类与类之间的关系(一)
类中数据共享与保护的综合程序实例—学生信息管理系统;类的组合与类的依赖
掌握类中数据共享与保护方法及其应用;掌握类与类之间的组合关系、依赖关系的编程应用
8
类与类之间的关系(二)
继承与派生:派生类的构造和析构函数;访问控制;同名冲突;赋值兼容
理解类继承的含义、作用和定义方法;掌握派生类构造函数和析构函数的定义方法、参数传递和执行顺序;掌握类继承方式下的访问控制、同名冲突解决方法和赋值兼容规则
9
类与类之间的关系(三)
类继承的综合实例;类继承习题课
掌握类继承在实际应用系统中的使用
10
多态性(一)
多态性的概念、含义和类型;静态多态性的原理和实现(运算符重载与与函数重载)
理解多态性的概念、含义和类型;掌握静态多态性的实现方法:包括函数重载和运算符重载两种方法
11
多态性(二)
动态多态性的原理和实现(继承、虚函数、基类指针、基类引用);纯虚函数与抽象类;综合实例
理解动态多态性的原理;掌握通过继承、虚函数、基类指针(或引用)实现动态多态性的方法
12
多态性习题课
模板
函数模板与类模板;
巩固多态性的相关知识;
模板的概念和定义;函数模块与类模板的使用方法与编程应用
13
泛型程序设计与C++STL
STL中涉及的一些概念、术语,以及它的结构、主要组件的使用方法。重点介绍容器、迭代器、算法的基本应用
了解STL与泛型程序设计方法
14
流类库与输入输出控制
I/O流的概念及流类库结构;输出流;输入流;输入输出流;文件的输入/输出
理解与掌握I/O流的概念、操作方法;理解与掌握文件操作的方式方法
15
面向对象编程初步与程序设计案例
面向对象程序设计基本知识、开发过程与综合案例
理解与掌握面向对象程序设计的基本知识、开发过程与综合应用
表2 实验教学进程表
周次
实验项目
名称
掌握程度
实验类型*
实验要求**
实验 1:Visual Studio 2010集成开发环境的使用
C++程序集成环境、开发过程和程序调试
熟悉C++程序集成环境、开发过程
验证性
必做
实验 2: 用C++实现面向过程的程序设计
C++程序集成环境;C++面向过程程序设计;引用、方式、默认参数和重载函数;异常处理
掌握C++程序集成环境的使用;掌握C++对C的改进和扩展知识并能正确编程使用;掌握C++的异常处理与编程应用
实验 3:类与对象的定义及使用(一)
类与对象的定义和使用;构造函数和析构函数
掌握类与对象的定义和使用;掌握构造函数和析构函数的相关概念;理解构造函数和析构函数的执行过程
实验 4:类与对象的定义及使用(二)
友元的定义和应用;对象数组、对象指针和对象引用的应用
掌握友元的定义和应用;掌握对象数组、对象指针和对象引用的应用
实验 5:类中数据的共享与保护
类中静态数据成员共享的实现方法;类中共享数据保护的实现方法
掌握类中静态数据成员共享的实现方法;掌握类中共享数据保护的实现方法
实验 6:类的组合实验
类组合的概念与作用;组合关系的构造函数与析构函数;对象成员的定义、构造与析构方法、私有成员与保护成员的访问
理解类组合的概念与作用;掌握对象成员的定义方法,理解对象成员的构造与析构方法;理解组合关系中构造函数与析构函数的调用次序;掌握对象成员中私有成员与保护成员的访问方法
实验 7:类的继承与派生实验
类继承的定义方法;派生类的构造函数与析构函数;访问控制;同名冲突;赋值兼容
掌握类继承的定义方法;掌握派生类构造函数与析构函数的正确定义方法;理解基类、派生类构造函数和析构函数的执行顺序和参数传递;理解访问控制、命名冲突、赋值兼容的含义与实现方法
实验 8:多态性实验(一)
函数重载实现静态多态性;运行符重载实现静态多态性
理解静态多态性的含义和原理;掌握用函数载重和运算符重载两种方法实现静态多态性
实验 8:多态性实验(二)
动态多态性的含义、原理和实现方法
理解态态多态性的含义和原理;掌握实现态态多态性的方法
实验 9:函数模板与类模板的应用
模板的概念与应用;函数模板的定义与使用;类模板的定义与使用
掌握模板的概念与应用;掌握函数模板的定义与编程应用;掌握类模板的定义与编程应用
实验 10:C++的I/O操作与文件的使用
自定义类中重载提取运算符>>和插入运算符<<实现输入与输出操作;文件操作的步骤与方法;文件操作编程
掌握在自定义类中重载提取运算符>>和插入运算符<<实现本类对象的输入与输出操作;掌握文件操作的步骤、方法与编程
16
一个简单管理系统的设计与实现
面向对象程序设计方法的开发过程与综合应用
理解面向对象程序设计方法的开发过程;基本掌握面向对象方法的综合应用
综合性
本课程的成绩采用百分制,成绩评定包括三个部分,具体分布情况见下表。
考核内容
评价标准及要求
权重
平时作业
1. 评价标准:作业参考答案。
2. 要求:按时完成作业。
15%
期中考试(闭卷)
1. 评价标准:试卷参考答案。
2. 要求:独立、按时完成考试。
期末笔试考试(闭卷)
70%
期末考试方式
开卷□ 闭卷√ 课程论文□ 实操□
1.学习本课程的方法、策略及教育资源的利用。
本课程的内容跨度较大,要多想多练,善于进行归纳总结,使所学知识条理化和系统化。注意听讲,老师所讲的内容和例题与教材往往不一致,是老师自己的经验总结,并且往往是重点和难点才值得拿到课堂上进行实例化教学,一般书中一看就明了的内容不值得也没必要在课堂上浪费时间,故课前预习与课后复习,尤其是课后有关实践类的复习与作业是非常有必要的,可以理解、加深及巩固课本内容。另外,课后复习及作业要及时完成,能当堂当天完成最好。这样才能对课堂内容有深刻的认识,拖得太久,内容一多,不但易忘,而且会产生不知如何下手,渐渐会“债多不愁”,逐渐抛弃了课程也被课程所抛弃,所以切忌依靠累积到最后和最后的总复习来学习本门课程。
2.学生完成本课程每周须耗费的时间
为掌握本课程的主要内容,按约1:1的比例配比课外学时(预习、复习和完成老师布置的作业),学生课外每周必须耗费的最少时间为4小时,学生完成本课程每周须耗费的最少时间为8小时。
3.学生的上课、实验、讨论、答疑、提交作业(论文)单元测试、期末考试的等方面的要求
课前预习,坚持上课,认真听讲,做不做笔记根据个人情况(不建议做笔记,以免误了听讲),积极参与教学互动,主动与老师探讨问题;课后认真复习,独立完成作业,至少每章要独立完成一个作业,这一点非常重要!一定要培养出独立思考的能力。勤于动脑,适量动笔,形成完整的方案后再开机检验而不是一上来就依靠计算机来验证(都没想好,验证什么?),培养自己的分析问题与解决问题的能力;必须参加实验课,亲自动手独立完成规定的实验内容,并提交合格的实验报告。
课程大纲下载
本站 所有信息归:东莞理工学院 版权所有
技术支持: 北京文华在线教育科技股份有限公司 建议在IE8以上浏览器1024*768分辨率下浏览本站