学历改变命运
24小时客服:4008135555/010-82335555
首页 > 教材大纲> 自考《面向对象程序设计》课程大纲说明

自考《面向对象程序设计》课程大纲说明

2007-08-07 15:15:00   文章来源:   字体:   打印
22

  一、课程性质及其设置目的和要求

  (一)课程的性质、地位和任务

  面向对象程序设计课程在高等教育自学考试计算机及应用专业(独立本科段)的考试计划中,是一门重要的专业课。它是为满足计算机应用领域对计算机应用人才的需要而设置的。本课程的任务是通过学习,使应考者为以后学习软件工程等后继课程及进行课程设计打下必备的基础,并且为以后从事应用软件开发提供合适的工具。

  (二)本课程的要求

  通过本课程的学习,要求应考者:

  1.应了解面向对象的思想和基本概念;

  2.应对C++语言有别于C语言的各种成分有较好的理解;

  3.能加深理解和掌握面向对象的核心概念——类和对象;

  4.能设计合理的类,并使用继承和派生构造应用程序:

  5.能熟练使用C++语言进行应用程序的开发。

  要求应考者能切实掌握C++程序设计语言作为实际工作中的工具,并为以后学习其它课程打下基础。

  本课程是一门实践性很强的课程,要求应考者不仅要掌握编程方法,而且能在计算机上调试和测试一般的程序。

  (三)本课程与有关课程的联系

  本课程的先行课程为计算机系统结构,以便对计算机结构、软硬件等概念有一个初步的了解。

  本课程的后继课程是软件工程,本课程是课程设计的任选课程之一,学好本门课程将有助于课程设计。

  二、课程内容与考核目标

  第1章 面向对象及C+ +基础知识

  (一)课程内容

  1.面向对象程序设计基础知识。

  2.基本程序结构。

  3.类型修饰符。

  4.函数原型。

  5.内联函数。

  6.引用。

  7.动态内存分配。

  8.编译指令。

  9.改变习惯重新思考。

  (二)自学要求

  本章主要介绍面向对象设计的基础知识和C+十语言对C语言的基本改进部分。这些改进部分包括基本程序结构、类型修饰符、函数原型、内联函数`引用和编译指令等,并且讨     论了如何改变习惯重新思考,利用己有知识学习C+十的问题。

  本章的要求是理解面向对象程序设计的思想及C+十语言中的新思想,目的是为学习C++的类打下基础。

  (三)考核知识点及考核要求

  1.面向对象程序设计基础知识,要求达到“识记”层次。

  1.1 面向对象程序设计的思想。

  1.2 C++语言与C语言的关系。

  2.基本程序结构,要求达到“综合应用”层次。

  2.l 程序的基本结构和作用,正确书写。

  2.2 通过对比C语言,认识C++的注释、换行、标准输人及输出语句。

  2.3 头文件及常量的定义。

  2.4 不使用宏来定义常量的意义。

  2.5 主函数的基本作用。

  3.类型修饰符,要求达到“领会”层次。

  3.1 const修饰符的使用方法。

  3.2 const修饰符的作用。

  4.函数原型,要求达到“综合应用”层次。

  4.1 函数原型的作用及意义。

  4.2 函数原型的使用方法。

  5.动态内存分配,要求达到“简单应用”层次。

  5.1 new的作用。

  5.2 delete的作用。

  6.内联函数,要求达到“综合应用”层次。

  6.1 内联函数的作用。

  6.2 内联函数的使用方法。

  7.引用,要求达到“综合应用”层次。

  7.1 引用的作用。

  7.2 引用的使用方法。

  8.编译指令,要求达到“领会”层次。

  8.1 编译指令的几种形式及其作用。

  8.2 在程序中应用编译指令。

  9.改变习惯重新思考,要求达到“识记”层次。

  9.1 应从哪几个方面初步转变思想。

  9.2 C+十的基本知识。

  9.3 使用已有知识学习C++。

  第2章 类和对象

  (一)课程内容

  1.定义类。

  2.使用类和对象。

  3.类的成员函数。

  4.成员函数的重载。

  5.this指针。

  6.有关类的其它知识。

  7.结构和联合。

  (二)自学要求

  理解C+十语言中类的基础知识及其使用,能够熟练利用类的概念进行编程。

  (三)考核知识点及考核要求

  1.定义类,要求达到“综合应用”层次。

  1.1 说明类的方法。

  1.2 类的标识符和类体。

  1.3 作用域运算符及成员函数的实现。

  2.使用类和对象,要求达到“综合应用”层次。

  2.1 对象说明的方法。

  2.2 访问类对象成员的方法。

  2.3 封装的实现方法。

  2.4 类的存取控制方法。

  3.内联成员函数,要求达到“综合应用”层次。

  3.1 内联成员函数的作用。

  3.2 内联成员函数的使用方法。

  4.成员函数的重载,要求达到“简单应用”层次。

  4.1 成员函数重载的作用。

  4.2 成员函数的重载方法。

  5.有关类的其它知识,要求达到“简单应用”层次。

  5.1 类的作用域 对象的存取及类的实例化。

  5.2 空类、嵌套类和this指针。

  6.结构和联合,要求达到“识记”层次。

  6.1 使用结构和联合定义类的方法。

  6.2 结构、联合与类的区别。

  第3章 构造函数与析构函数

  (一)课程内容

  1.初始化列表的使用。

  2.构造函数。

  3.析构函数

  4.构造函数类型转换。

  5.对象的初始化。

  6.对象赋值

  7.对象成员。

  (二)自学要求

  建立和使用对象、必须以正确初始化对象为前提。本章着重讨论了构造函数、析构函数及用构造函数初始化对象。要求掌握用构造函数初始化对象及理解析构函数的作用:掌握构造函数的类型转换、给对象赋值及使用对象成员。

  本章重点是构造函数,难点是用构造函数初始化对象。

  (三)考核知识点及考核要求

  1.初始化列表,要求达到“识记”层次。

  1.1 初始化对象的必要性。

  1.2 用初始化列表初始化对象。

  2.构造函数,要求达到“综合应用”层次。

  2.1 定义构造函数的方法。

  2.2 用运算符new建立动态对象。

  2.3 缺省构造函数,能运用对象数组。

  2.4 复制初始化构造函数的定义方法。

  3.析构函数,要求达到“简单应用”层次。

  3.1 析构函数定义及作用。

  3.2 析构函数何时被调用。

  3.3 用运算符delete删除动态对象的方法。

  3.4 缺省析构函数。

  4.构造函数类型转换,要求达到“领会”层次。

  4.1 隐藏对象的产生过程。

  4.2 构造函数类型转换。

  5.对象初始化和对象赋值,要求达到“领会”层次)

  5.1 复制初始化构造函数的使用。

  5.2 复制初始化构造函数和析构函数的执行方式。

  5.3 对象赋值方法。

  6.对象成员,要求达到“简单应用”层次。

  6.1 对象成员的定义方法。

  6.2 对象成员构造函数的定义方法。

  6.3 对象成员构造函数和析构函数的调用顺序。

  第4章 继承和派生类

  (一)课程内容

  1.继承和派生的基本概念。

  2.单一继承。

  3.赋值兼容规则。

  4.多重继承

  5.构造函数与析构函数调用顺序。

  6.两义性及其支配规则。

  7.虚基类。

  (二)自学要求

  继承与派生类是面向对象程序设计的一个重要组成部分。本章要求掌握单一继承、多重继承、两义性、支配规则和虚基类的概念;掌握派生类的访问权限,构造函数与析构函数的调用顺序;理解两义性及其支配规则,熟练运用作用域分辨符,掌握赋值兼容规则。

  (三)考核知识点及考核要求

  1.继承和派生的基本概念,要求达到“领会”层次。

  1.1 继承、基类与派生类的关系。

  1.2 性质约束和性质扩展。

  2.单一继承,要求达到“综合应用”层次。

  2.1 公有派生、私有派生和保护成员的访问权限。

  2.2 单一继承的概念和特点。

  2.3 挪单一继承。

  3.赋值兼容规则,要求达到“识记”层次。

  3.1 赋值兼容规则。

  3.2 赋值兼容规则在单一继承下的应用。

  3.3 赋值兼容规则在多重继承下的应用。

  4.多重继承,要求达到“识记”层次。

  4.1 单一继承与多重继承的区别。

  4.2 多重继承的访问权限。

  5.构造函数与析构函数的调用顺序,要求达到“简单应用”层次。

  5.1 派生类与基类中构造函数的调用顺序。

  5.2 派生类与基类中析构函数的调用顺序。

  5.3 单一继承中构造函数与析构函数执行顺序的关系。

  6.两义性及其支配规则,要求达到“识记”层次。

  6.1 C++作用域规则。

  6.2 如何避免两义性的方法。

  6.3 支配规则,能运用支配规则避免两义性。

  6.4 作用域分辨操作符的使用方法。

  7.虚基类,要求达到“识记”层次。

  7.1 虚基类的概念。

  7.2 虚基类的作用

  第5章 多态性与虚函数

  (一)课程内容

  1.多态性的概念。

  2.虚函数。

  3.虚函数的多态性

  4.虚析构函数

  (二)自学要求

  多态性也称后约束或动态约束,常用虚函数来实现。C+十支持两种多态性:编译时的多态性通过使用重载函数获得,运行时的多态性通过使用继承和虚函数获得。为了充分发挥C++的作用,应尽可能地使用多态性。它从语言实现上为代码重用提供了有力支持,不仅简化了程序,而且增加了程序的灵活性及耐用性。

  本章总的要求是:理解编译时多态性是静态联编所支持的,而运行时的多态性是动态联编所支持的:掌握虚函数的用法,并理解运用虚函数实现程序的多态性。

  本章重点和难点是:运行时的多态性和各成员函数的调用。

  (三)考核知识点及考核要求

  1.多态性的概念,应达到“识记”层次。

  1.1 多态性的概念。

  1.2 多态性的两种实现方法,以及它们各自的优点与局限性。

  2.虚函数,应达到“综合应用”层次。

  2.1 虚函数的概念,知道在什么情况下,分别使用静态联编和动态联编。

  2.2 虚函数的访问权限。

  2.3 分析在基类和派生类的成员函数中调用虚函数的情况。

  2.4 在构造函数中调用虚函数的情况。

  2.5 空的虚函数的作用。

  2.6 纯虚函数和抽象类的作用。

  3.虚函数的多态性,应当达到“领会”层次。

  3.1 区别多态与简单隐蔽。

  3.2 使用虚函数来实现多态性。

  4.虚析构函数,应达到“识记”层次。

  4.l 虚析构函数的作用。

  4.2 派生类的虚析构函数。

  第6章 进一步使用成员函数

  (一)课程内容

  1.静态成员

  2.友元函数

  3.const对象和volatile对象。

  4.转换函数

  5.指向类成员的指针。

  6.数组和类

  (二)自学要求

  了解静态成员、友元函数、用const和volatile修饰成员函数和转换函数的使用、类对象数组和类指针数组的使用。

  (三)考核知识点及考核要求

  1.静态成员函数,要求达到“领会”层次。

  1.l 静态成员的定义和使用。

  1.2 静态成员与一般成员函数的不同之处。

  2.友元函数,要求达到“领会”层次。

  2.1 友元函数的定义。

  2.2 友元函数的使用方法。

  2.3 友元函数关系的不可传递性。

  3.const对象和volatile对象,要求达到“识记”层次。

  3.1 const I于象和成员函数的定义及其使用方法。

  3.2 volatile成员函数的定义及其使用方法。

  4.转换函数,要求达到“识记”层次。

  4.1 转换函数的作用。

  4.2 转换函数的定义方法。

  5.指向类成员的指针,要求达到“识记”层次。

  5.1 指向类数据成员的指针的含义。

  5.2 指向类数据成员的指针的定义方法。

  6.数组和类,要求达到“识记”层次。

  6.1对象数组定义的方法。

  6.2 对象数组初始化的方法。

  6.3出对象数组内容的方法。

  第7章 运算符重载及流类库

  (一)课程内容

  1.运算符重载。

  2.类运算符和友元运算符。

  3.流类库。

  (二)自学要求

  本章在读者已熟悉C++运算符基础上提出重载概念,并详细讲述重载的功能与使用,然后讨论C++流类库,使读者对C++的流控制过程与使用有个初步了解。应考者应该注意如下知识要点:

  1.运算符重载的基础知识:

  2.流类库的概念:

  3.使用流类库进行文件存取的方法。

  (三)考核知识点及考核要求

  1.运算符重载,要求达到“识记”层次。

  1.1 运算符重载的概念。

  1.2 关键字operator的含义。

  2.类运算符和友元运算符,要求达到“识记”层次。

  2.1 类运算符

  2.2 友元运算符。

  2.3 增1和减I运算符的重载。

  3.流类库,要求达到“识记”层次。

  3.1 流类的基本类等级。

  3.2 预定义的流。

  3.3 文件流。

  3.4 格式控制。

  3.5 流的错误处理

  第8章 模  板

  (一)课程内容

  1.模板的基本概念及其定义方法。

  2.函数模板。

  3.类模板。

  4.模板与继承

  (二)学习要求

  这一章要求掌握函数模板的概念、处理方法及类模板的基本概念。需要注意的是,本章介绍使用模板设计类系的方法,与前面使用派生的方法具有本质的不同。

  (三)考核知识点及考核要求

  1.模板的概念,要求达到“识记”层次。

  1.1 模板的概念、有约束模板与无约束模板的区别。

  1.2 定义模板的方法。

  2.函数模板,要求达到“简单应用”层次。

  2.l 函数模板的概念,模板函数的处理方法。

  2.2 模板函数的重载和特定模板函数的概念,并能在实际程序设计中熟练运用。

  3.类模板,要求达到“识记”层次。

  3.1 类模板的成分及语法。

  3.2 类模板的对象。

  4.模板与继承,要求达到“识记”层次。

  4.1 模板与继承处理方式的不同。

  4.2 模板的动态特性。

  第9章 进一步掌握面向对象程序设计

  (一)课程内容

  1.面向对象的设计。

  2.设计中的几个问题。

  3.设计实例

  (二)学习要求

  学习了面向对象设计的各种基础知识,不一定就能在实践中正确运用。因为在学习中介绍的方法与实际应用的设计方法是有所区别的。在学习时,重点是讲述类的概念、构造方法及其行为特征。—旦涉及到应用,就不能仅看所设计的程序是否正确,还需要讲求效率和安全可靠性等。这一章主要归纳所学知识,从总体角度概括面向对象设计所要注意的一些具体问题,并给出典型设计实例。要求应考者能将面向对象设计的思想及方法应用到课程设计中去。

  (三)考核知识点及考核要求

  1.面向对象的设计,要求达到“识记”层次。

  1.1 应当尽量使类小而简单的意义。

  l.2 充分利用封装增加类的自身可靠性的意义。

  1.3 面向对象的设计方法。

  1.4 类群和类树的含义

  1.5 减少类型模糊的意义。

  1.6 混合使用new ,delete,malloc和free的危害性。

  2.设计中的几个问题,要求达到“识记”层次。

  2.l C++编译器在工作时会自动增加并调用哪些函数。

  2.2 组织类的典型方法。

  2.3 怎样建立和删除对象。

  2.4 对象初始化与对象赋值的区别。

  2.5 设计类接口的基本原则。

  2.6 公有继承的含义。

  2.7 利用分层技术实现“有一个”和“按……实现”的含义。

  2.8 尽量使用单一继承的意义。

  3.设计实例:要求达到“识记”层次。

  3.1 合并公共特征的基本思想。

  3.2 实现多态性的基本方法。

  (一)类型

  课程实验

  (二)实验大纲

  1.实验目的

  C+十语言程序设计上机操作实验是本课程必不可少的实践环节。上机实验的目的是使考生熟悉用高级语言解题的全过程,加深对语言的理解,得到程序设计基本方法和技巧的训练,从而能真正掌握C++语言这种工具,来解决实际问题。

  2.实验环境

  硬件环境:IBM - PC机及其兼容机。

  软件环境:1,操作系统Windows 95或Windows 98.

  2.Borland C++3.1或5.0,建议使用3. 1版本。

  3.Microsoft Visual C++5.0或6.0.

  3.实验时数

  本课程实验总计36学时。

  4.实验内容与要求

  实验一 练习设计、使用类并熟悉编程环境(8机时)

  内容:掌握C++的类的概念及其使用方法。

  要求:掌握从编辑含有类的C++源文件、存取文件、编译文件到运行的全过程,以及单步执行和调试程序的基本方法,并初步掌握类的设计和使用类的对象。

  参试题目:

  (1)设计一个用来表示直角坐标系上点的位置的Location类,然后在主程序中创建两个对象A和B,要求A在第三象限,B在第二象限,计算给定两点之间的距离并按如下格式输出结果:

  A(x1,yl),B(x2,y2)

  Distance=d

  其中x1,yl,x2,y2为指定值,d为计算结果。

  (2)分别使用指针和引用的方法改写这个程序。

  (3)把这个Location类的对象作为Rectangle类的对象的一个成员,即坐标平面上的一个矩形由—个位置和矩形的长和宽决定。设计矩形类Rectangle并输出给定点XI和71的值及长和宽的值。

  (4)熟悉C++环境的基本使用方法。

  实验二 熟悉类的特征(8机时)

  内容:编写含有基类和派生类,构造函数和析构函数的程序。

  要求:掌握C++的类的基本组成及其派生方法,学会使用构造函数、析构函数及成员函数,掌握它们的调用顺序。

  参试题目:

  (1)假设我们已开发了一个Location类,这个类描述屏幕上一个点的位置,成员函数用于计算两个点的距离。下面是Location类的头文件Location.h.

  // Location

  #if ! defined(LOCATION_H)

  #define LOCATION_H

  class Location{

  private:

  int X. Y:

  public:

  Location( int, int );

  int GetX(){return X;}

  int GetY(){return Y;}

  distance(Location&);

  ~Location( );

  }:

  #endif

  编写一个Location.app文件,给出没有实现的成员函数。要求在构造函数中给出创建不同对象时给出可供区别对象的信息,对析构函数的要求与此相同。测试点为(-10,⒛)和(-40, 60)。

  (2)再用Location类来定义一个椭圆类ellipse,对构造函数和析构函数的要求与Location类相同。

  (3)从椭圆类派生圆类circle,对构造函数和析构函数的要求与Location类相同。

  (4)使用Location类的成员函数distance求屏幕上一个圆的圆心和一个椭圆圆心之间的距离。

  提示:circle类通过它所定义的成员函数circle裁剪了椭圆类ellipse.假设椭圆类的两个

  轴分别为数据成员L1和I-2,circle类将ellipse的数据成员L1用作半径,而不使用L2.要注意维护circle类所描述的有关圆的概念:圆只有一个轴,称为半径。

  实验三 多态性练习(6机时)

  内容:编写含有虚函数和使用成员函数的程序。

  要求:掌握由继承和虚函数获得多态性的方法,学会利用成员函数访问类的对象的私有成员。

  (1)使用虚函数设计一个描述正方形的类Square,并具有求面积的成员函数getArea( )。从Square派生一个矩形类Rectangle,Rectangle也使用getArea()函数计算面积。提示:把正方形的其中一个边的成员函数设为虚函数,从而可以在Rectangle中重新按矩形的数据成员初始化该边的参数。

  (2)有一个汽车类vehicle,将它作为基类派生小车类car,卡车类truck和轮船类boat,定义这些类并定义一个虚函数用来显示各类信息。

  (3)设计一个菜单驱动程序,每一个菜单项都对应一个类以完成它的功能。定义一个抽象类作为所有这些菜单项的基类,在其中定义一个纯虚函数,作为所有菜单项类中完成一定功能的接口。

  实验四 运算符重载和流类库的练习(4机时)

  内容:编写含有运算符重载和流类库的程序。

  要求:了解运算符重载的基础知识及流类库的概念,练习使用流类库进行文件存取。

  参试题目:

  (1)为complex类重载加、二元减和一元减三个友元运算符。

  (2)重载“——”运算符。

  (3)从一个整数组成的文件中读人一个整数,然后将其扩大一倍之后,存入另一个文件中。

  实验五 模板的练习(2机时)

  内容:编写使用函数模板的程序。

  要求:了解函数模板的概念,练习编制函数模t反。

  参试题目:

  用模板函数实现三个数值中按更小值到更大值的排序程序。

  实验六 综合练习(8机时)

  内容:灵活使用C+十程序设计语言各成分,完成有实用意义的应用。

  要求:学会编制结构清晰、风格良好、符合C+十程序设计语言规则,并能体现其优点的C++程序。

  参试题目:

  (1)调试第9章9.3节的2个例子并理解其实现原理。

  (2)理解9.3.2中的格式输出控制。

  (3)参考9.3.2节的例子重新设计9.3.1节例子中的Show ( )成员函数,并增加一个PrintData函数,实现PrintData(d)式的显示方式。

自考交流群

扫码领取试题答案及解析

新人有礼