= 《面向对象程序设计(C++)》理论教学大纲 = 1. 课程名称:面向对象程序设计(Object-Oriented Programming (C++)) 1. 学分/总学时:3/54 1. 开课单位:计算机科学与工程学院 == 课程的性质、目的和任务 == 这门课程是讲授面向对象程序设计的课程,选用C++做为程序语言,开设本课程旨在向学生传授最纯粹的面向对象程序设计概念和最先进的可视化编程技术。 本课程的内容有: 1. C++语法知识,包括C++语言在面向过程方面的扩充、类与对象、构造函数和析构函数、类的静态成员、类的常成员、继承与派生、多态性和虚函数、友元、运算符重载、流类库的输入/输出、异常处理等; 2. C++标准模板库的用法,包括容器、算法、迭代子、函数对象等; 3. 面向对象的分析和设计思想、方法。 本课程不包括C语言的内容,要求学生已修过《高级语言程序设计》。本课程有理论课54学时,另外安排实验课18或者36学时,以及课外实践20-36学时(在另一门课《面向对象程序设计课程设计》中)。通过本课程的学习,要求学生达到: 1. 掌握C++的主要语法,能读懂C++编制的程序,能编写简单的C++程序;在掌握C++语言的同时,能够对现实世界中较简单的问题及其解决方法用计算机语言进行描述。深刻理解面向对象程序设计思想,认识面向对象方法相对于传统设计方法的优势; 2. 能够使用标准模板库,简化应用程序的设计。 3. 了解面向对象的一些分析和设计方法,掌握面向对象图形化表示方式。 == 学习本课程学生应掌握的前设课程知识 == 本课程的先行课程有:《高级语言程序设计》、《计算机导论》。 == 学时分配 == 课程授课时间为54学时,其中讲课54学时。 ||章节||理论||合计|| ||第1章||2||2|| ||第2章||4||4|| ||第3章||6||6|| ||第4章||6||6|| ||第5章||4||4|| ||第6章||4||4|| ||第7章||6||6|| ||第8章||6||6|| ||第9章||4||4|| ||第10章||6||6|| ||第11章||4||4|| ||第12章||2||2|| ||合计||54||54|| == 课程内容和基本要求 == 1. 概述(2学时) a. 计算机程序设计语言的发展 a. 面向对象的方法 a. 面向对象的软件开发 基本要求: 了解计算机程序设计语言的发展;理解面向对象的概念和方法;理解程序的开发过程和面向对象程序的开发过程。 1. C++简单程序设计(4学时) a. C++语言概述 a. 基本数据类型和表达式 a. 数据的输入与输出 基本要求: 掌握C++的新注释、作用域限定符、变量的声明位置;掌握符号常量const的用法;掌握基本的I/O流与cin、cout用法;掌握类型定义语句typedef和枚举类型enum。 1. 函数(6学时) a. 函数的定义与使用 a. 内联函数 a. 带默认形参值的函数 a. 函数重载 a. 函数模板 基本要求: 牢固掌握引用类型的使用;深刻理解函数的参数传递,值调用和引用调用;掌握内联函数、带默认形参值的函数的语法和适用场合;牢固掌握函数重载的用途、定义和静态联编机制;掌握函数模板的使用;理解template和typename保留字。 1. 类与对象(6学时) a. 面向对象的思想 a. 面向对象程序设计的基本特点 a. 类和对象 a. 构造函数和析构函数 a. 类的组合 a. 类模板 a. 面向对象标记 基本要求: 领会结构化程序设计和面向对象程序设计的思想和区别;掌握面向对象程序设计的基本概念:抽象、封装、继承和多态;牢固掌握类的声明,类成员的访问控制,类的成员函数,对象的声明等类与对象的基本语法内容;牢固掌握构造函数和析构函数,拷贝构造函数的概念和写法;掌握类的组合,前向引用声明;掌握类模板,template保留字,class保留字,类模板的声明和模板参数,模板类的实例化,类模板的成员函数。 1. C++程序的结构(4学时) a. 作用域与可见性 a. 生存期 a. 数据与函数 a. 静态成员 a. 友元 a. 共享数据的保护 基本要求: 领会作用域和可见性,对象的生存期的概念;理解数据成员在类内的共享;理解静态数据成员和静态函数成员的用法及static保留字;理解并掌握友元函数和友元类,friend保留字;理解并掌握常引用、常对象和常成员函数,const保留字。 1. 数组、指针与字符串(4学时) a. 数组 a. 指针 a. 动态内存分配 a. 字符串 基本要求: 深刻理解对象数组,对象指针;深刻理解指针参数,指针型函数和指向函数的指针;理解动态内存分配和new、delete运算;掌握字符串类string的定义和使用。 1. 继承与派生(6学时) a. 继承与派生 a. 访问控制 a. 派生类的构造和析构函数 a. 派生类成员的标识与访问 a. 赋值兼容规则 基本要求: 彻底掌握派生类的声明,派生的访问控制;理解派生类的构造和析构函数;深刻理解赋值兼容规则,了解虚基类的用法。 1. 多态性(6学时) a. 多态性概述 a. 运算符重载 a. 虚函数 a. 抽象类 基本要求: 理解多态的概念、种类和区别;彻底掌握运算符重载,掌握重载为成员函数、友元函数两种方法的用法;理解虚函数的概念:一般虚函数成员,虚析构函数;掌握纯虚函数和抽象类。 1. 群体类(4学时) a. 模板类和模板函数 a. 线性群体 基本要求: 掌握C++模板的基本用法,掌握使用模板编写数组类、链表类、栈类和队列类的方法。 1. 泛型程序设计与标准库(6学时) a. 名字空间的用法 a. 泛型程序设计概念 a. 标准模板库的容器 a. 标准模板库的迭代器 a. 标准模板库的算法 a. 函数对象 基本要求: 掌握名字空间的基本用途和用法;掌握泛型程序设计的思想;掌握标准模板库中的基本容器、迭代器和算法的简单用法,能够用它们简化程序的设计。 1. 流类库与输入/输出(4学时) a. I/O流的概念 a. 输出流 a. 输入流 a. 输入/输出流 基本要求: 理解I/O流的概念;掌握输出流,输出流对象的构造,格式控制及成员函数;掌握输入流,输入流对象的构造,提取运算符和操纵符及成员函数。 1. 异常处理(2学时) a. 异常处理的基本思想 a. C++异常处理的实现 a. 异常处理中的构造与析构 基本要求: 理解异常处理的基本思想;掌握C++异常处理的实现,异常处理中的构造和析构。 == 教材及学生参考书 == 教材: 1. 《C++语言程序设计》第3版 郑莉、董渊编著.清华大学出版社 2001 参考书和网站: 1. 《C++编程思想(第2版) 第1卷:标准C++导引》,(美)BRUCE ECKEL,PRENTICE HILL,2002 1. 《C++ Primer中文版(第4版)》,(美)Stanley B.Lippman,Josée LaJoie,Barbara E.Moo,Addison Wesley/Pearson,2006 1. 《C++程序设计语言》特别版,(美)Bjarne Stroustrup,ADDISON WESLEY,2002 == 课外学习要求 == 为了培养学生主动学习能力,综合分析和解决问题的能力,要求学生在课外阅读参考书目,并要有相当多的动手实践,培养类的设计与修改能力;掌握在继承环境下跟踪调试、出错信息处理等实践能力。 == 考核方式及成绩评定方法 == 期末采用闭卷考试形式。 总评成绩:作业、平时考勤及学习态度(含实验)占 30% ;期末闭卷考试占 70%。 == 其它说明 == C++语言的集成开发环境选用Dev-C++或者Eclipse-CDT或者KDeveloper。