《面向对象程序设计语言》(含实验)教学大纲一、课程基本信息课程编号:2032106课程英文名称:Object-oriented programming language课程类型:学科专业主干课程(必修)学时/学分:72/3开课学期:第二学期考核方式:闭卷考试先修课程:计算机导论及计算机操作基础选用教材:《C++ 程序设计教程》. 郑莉. 机械工业出版社,2001年7月.主要参考书:1.《《C++面向对象程序设计》. 谭浩强. 中国铁道出版社,2006年.2.《C++ 程序设计教程. 钱能. 清华大学出版社,1999年4月.3.《C++ Primer》. 第三版. Stanley B Lippman JoseeLajoie著. 潘爱民张丽译. 中国电力出版社,2005年2月.二、课程性质、目的和任务C++程序设计语言是计算机应用类专业的一门专业必修课。
面向对象软件开发方法是吸收了软件工程领域的概念和有效的方法而发展起来的一种软件开发方法。
它集抽象性、封装性、继承性和多态性于一体,可以帮助人们开发出模块化、数据抽象程度高的,体现信息隐蔽、可复用、易修改、易扩充等特性的程序。
本课程主要介绍面向对象程序设计的方法和 C++ 语言的基本概念。
以 C++ 语言中的面向对象机制为主。
学习者在学习过程中可以通过大量的程序实例和相关练习,逐步掌握 C++ 的面向对象的功能,从而掌握面向对象程序设计的基本知识和基本技能。
通过本课程的学习,可以使学生熟悉面向对象 C++ 语言发展的历史、为什么要面向对象、面向对象语言分类、 C++ 中支持面向对象的特点及面向对象的软件开发环境 Microsoft Visual C++ ,理解和掌握面向对象程序设计( OOP )的基本思想及基本概念:抽象、继承、封装、多态性,掌握使用 C++ 语言进行面向对象编程的技术:函数重载、运算符重载、内联函数、虚函数、友元函数,编写实现“继承”和“多态性”的 C++ 程序,初步认识 VC++ 应用程序设计方法及过程。
三、课程学时分配四、理论课教学内容及要求第一章概述(1学时)【教学目的及要求】掌握:C++程序的开发步骤和基本的输入输出。
熟悉:VC++6.0集成开发环境各组成部分及其操作方法。
【教学重点】C++的开发步骤,基本输入输出,VC++6.0的开发环境的使用。
【教学难点】基本输入输出和VC++6.0的开发环境。
【讲授内容】第一节 C++的起源第二节 C++语言与C语言的关系第三节 C++语言与面向对象的程序设计第四节 C++程序的开发步骤第五节简单C++程序第六节基本输入输出第七节注释第二章 C++语言编程基础(4学时)【教学目的及要求】掌握:基本的数据类型、变量与常量;数组;运算符和表达式;数据类型转换和控制语句。
熟悉:基本的数据类型、表达式、控制语句。
【教学重点】基本的数据类型、变量与常量;数组;运算符和表达式;数据类型转换和控制语句。
【教学难点】数据类型、变量与常量;数组;运算符和表达式;控制语句。
【讲授内容】第一节字符集第二节词法记号和空白一、词法记号二、空白第三节基本数据类型第四节变量与常量一、变量二、常量第五节枚举类型第六节数组类型第七节关键字typedef第八节运算符第九节表达式第十节数据类型转换第十一节控制语句第十二节选择语句第十三节循环语句第十四节转移语句第三章函数(4学时)【教学目的及要求】掌握:函数的定义调用、参数的传递、内联函数、缺省值、作用域、重载。
熟悉:系统函数、递归调用。
【教学重点】函数的定义调用、参数的传递、内联函数、缺省值、作用域、重载。
【教学难点】参数的传递,作用域,重载。
【讲授内容】第一节函数的定义及调用一、定义函数二、声明函数三、函数调用四、函数调用的执行过程第二节函数调用时参数的传递第三节内联函数第四节带默认形参值的函数第五节作用域一、作用域二、局部变量与全局变量第六节递归调用第七节函数重载第八节系统函数第四章类与对象(4学时)【教学目的及要求】了解:面向对象的程序设计的相关概念。
掌握:类的声明、对象定义、构造函数析构函数、静态成员、友元、常对象、常成员。
熟悉:组合类、类的作用域及对象的生存期。
【教学重点】类的声明、对象定义、构造函数析构函数、静态成员、友元、常对象、常成员。
【教学难点】构造函数析构函数、静态成员、友元、常对象、常成员、组合类、类的作用域及对象的生存期。
【讲授内容】第一节概述第二节类的声明第三节声明对象第四节构造函数与析构函数一、构造函数二、析构函数第五节类的组合第六节静态成员一、静态数据成员二、静态成员函数第七节友元一、友元函数二、友元类第八节常对象、常成员函数与常数据成员一、常对象二、常数据成员三、常成员函数第九节类的作用域及对象的生存期一、类作用域二、对象生存期第五章指针与引用(4学时)【教学目的及要求】掌握:指针的定义及使用、动态分配内存、指针访问数组元素、引用、按引用方式传递参数。
熟悉:字符串处理函数、指针与引用的关系。
【教学重点】指针的定义及使用、动态分配内存、指针访问数组元素、引用、按引用方式传递参数。
【教学难点】指针的定义及使用、动态分配内存、指针访问数组元素、引用、按引用方式传递参数。
【讲授内容】第一节指针一、数据存储二、指针的声明及使用三、指针运算四、与对象有关的指针五、void和const指针第二节动态内存分配一、运算符new二、运算符delete第三节指针与数组一、用指针访问数组元素二、指针数组与数组指针第四节指针与函数一、指针作为函数的参数二、返回指针的函数三、函数指针四、带参数的主函数main()第五节字符串处理函数第六节引用第七节引用与函数一、把引用用作函数参数二、返回引用的函数三、拷贝构造函数与对象的引用调用第八节指针与引用第六章继承(6学时)【教学目的及要求】了解:继承的含义,掌握派生类的定义方法和实现;公有继承下基类成员对派生类成员和派生类对象的可见性,能正确地访问继承层次中的各种类成员;保护成员在继承中的作用,能够在适当的时候选择使用保护成员以便派生类成员可以访问基类的部分非公开的成员。
掌握:单继承、多继承中的构造函数和析构函数、二义性问题。
【教学重点】继承的含义,掌握派生类的定义方法和实现;公有继承下基类成员对派生类成员和派生类对象的可见性,能正确地访问继承层次中的各种类成员;保护成员在继承中的作用,能够在适当的时候选择使用保护成员以便派生类成员可以访问基类的部分非公开的成员。
【教学难点】单继承、多继承中的构造函数和析构函数、二义性问题。
【讲授内容】第一节继承与派生第二节单继承一、公有派生二、私有派生三、保护派生第三节多继承第四节派生类的构造函数与析构函数第五节二义性问题第六节虚基类第七节赋值兼容原则第七章运算符重载(6学时)【教学目的及要求】掌握:运算符重载的概念;几个常用运算符的重载方法。
【教学重点】常用运算符的重载方法。
【教学难点】常用运算符的重载方法。
【讲授内容】第一节运算符重载的语法第二节一元运算符第三节二元运算符的重载第四节特殊的运算符一、=运算符的重载二、++和--运算符的重载三、new 和delete运算符的重载四、[]的重载第八章多态与虚函数(2学时)【教学目的及要求】了解:抽象类的概念。
理解:多态性概念。
掌握:虚函数和纯虚函数的概念。
【教学重点】虚函数和纯虚函数的概念。
【教学难点】虚函数和纯虚函数的使用。
【讲授内容】第一节多态性概述第二节虚函数第三节抽象类第四节虚析构函数第五节综合实例第九章容器类(2学时)(选讲)【教学目的及要求】了解:常见的排序和查找算法。
理解:容器类的概念。
掌握:栈和队列模板。
【教学重点】容器类、栈和队列模板。
【教学难点】栈和队列模板。
【讲授内容】第一节数组类与链表类一、可直接访问的线性容器——数组类二、顺序访问容器——链表类第二节线性表、栈与队列一、线性表二、栈和队列第三节排序与查找一、排序二、查找第十章模板与标准模板库(4学时)【教学目的及要求】了解:标准模板库。
理解:模板的概念。
掌握:函数模板和类模板。
【教学重点】函数模板和类模板。
【教学难点】函数模板和类模板。
【讲授内容】第一节函数模板第二节类模板第三节标准模板库第十一章I/O流(4学时)【教学目的及要求】了解:C++的流,包括C++的预定义流;一般I/O流和文件流的关系;了解文件与文件流的关系;文件系统的概念,包括文件指针和关于文件的操作。
掌握:文件类的定义和相关操作的定义、使用方法;利用常用函数进行文件的打开、关闭、读写、定位等操作。
【教学重点】C++的流,一般I/O流和文件流的关系;了解文件与文件流的关系;文件系统的概念。
【教学难点】文件类的定义和相关操作的定义、使用方法;利用常用函数进行文件的打开、关闭、读写、定位等操作。
【讲授内容】第一节输入/输出流概述第二节标准输入/输出流第三节输入/输出格式控制第四节文件输入/输出第五节用户自定义类型的输入/输出第六节综合实例第十二章异常处理(2学时)【教学目的及要求】熟悉:标准库中的异常类;掌握:异常处理的使用。
【教学重点】异常处理的使用。
【教学难点】异常的处理。
【讲授内容】第一节异常处理的基本语法第二节异常处理的使用第三节标准C++库中的异常类五、实验课教学内容及目的实验项目设置及教学安排表注:实验类型:基本操作型、演示型、验证型、综合型、设计型等。
实验类别:基础、专业基础、专业实验要求:必做、选做实验一概述(1学时)【实验目的】1.熟悉VC++6.0的开发环境。
2.掌握C++的基本语法和输入输出。
【实验要求】•掌握VC++6.0的开发环境和基本的输入输出。
【实验题目】1.打开VC++6.0的开发环境。
2.编辑C++源程序3.链接运行源程序实验二 C++语言编程基础(2学时)【实验目的】1.掌握C++的基本语法和基本控制语句。
【实验要求】1.掌握基本数据类型、变量与常量;数组;运算符和表达式;数据类型转换和控制语句。
2.熟悉基本的数据类型、表达式、控制语句。
【实验题目】1.写一条for语句,计数条件为n从100到200,步长为2;然后用while和do…while 语句完成同样的循环。
2.已知x、y两个变量,写一条简单的if语句,把较小的的值赋给原本值较大的变量。
3.编写一个程序,运行时提示输入一个数字,再把这个数字显示出来。
4.C++有哪几种数据类型?简述其值域。
编程显示你使用的计算机中的各种数据类型的字节数。
5.打印ASCII码为32~127的字符。
6.运行下面的程序,观察其输出,体会i++与++i的差别。
#include <iostream.h>int main(){int myAge = 39; // initialize two integersint yourAge = 39;cout << "I am: " << myAge << " years old.\n";cout << "You are: " << yourAge << " years old\n";myAge++; // postfix increment++yourAge; // prefix incrementcout << "One year passes...\n";cout << "I am: " << myAge << " years old.\n";cout << "You are: " << yourAge << " years old\n";cout << "Another year passes\n";cout << "I am: " << myAge++ << " years old.\n";cout << "You are: " << ++yourAge << " years old\n";cout << "Let's print it again.\n";cout << "I am: " << myAge << " years old.\n";cout << "You are: " << yourAge << " years old\n";return 0;}7.编写一个完整的程序,运行时向用户提问"你考试考了多少分?(0~100)",接收输入后判断其等级,显示出来。